From 3565aad630864ecdbe53fdaa501ea708555b3c7c Mon Sep 17 00:00:00 2001 From: Unit 193 Date: Sun, 30 Apr 2023 18:30:36 -0400 Subject: New upstream version 3.4.4+dfsg. --- SQLiteStudio3/SQLiteStudio3.pro | 10 +- .../CompletionHelperTest/CompletionHelperTest.pro | 2 +- SQLiteStudio3/Tests/LexerTest/tst_lexertest.cpp | 11 + SQLiteStudio3/Tests/ParserTest/tst_parsertest.cpp | 116 +- .../SelectResolverTest/tst_selectresolvertest.cpp | 78 +- SQLiteStudio3/Tests/TestUtils/TestUtils.pro | 2 +- SQLiteStudio3/Tests/TestUtils/configmock.cpp | 14 - SQLiteStudio3/Tests/TestUtils/configmock.h | 3 - .../Tests/TestUtils/extensionmanagermock.cpp | 5 + .../Tests/TestUtils/extensionmanagermock.h | 1 + SQLiteStudio3/Tests/TestUtils/test_common.pri | 4 +- SQLiteStudio3/Tests/testcommon.pri | 4 + SQLiteStudio3/Tests/testdirs.pri | 4 - SQLiteStudio3/common.pri | 62 + SQLiteStudio3/coreSQLiteStudio/Info.plist | 2 +- .../coreSQLiteStudio/chillout/LICENSE-chillout | 21 + SQLiteStudio3/coreSQLiteStudio/chillout/README | 4 + .../coreSQLiteStudio/chillout/chillout.cpp | 47 + SQLiteStudio3/coreSQLiteStudio/chillout/chillout.h | 42 + .../coreSQLiteStudio/chillout/common/common.cpp | 24 + .../coreSQLiteStudio/chillout/common/common.h | 24 + SQLiteStudio3/coreSQLiteStudio/chillout/defines.h | 16 + .../chillout/posix/posixcrashhandler.cpp | 146 + .../chillout/posix/posixcrashhandler.h | 45 + .../chillout/windows/StackWalker.cpp | 1382 +++ .../chillout/windows/StackWalker.h | 222 + .../chillout/windows/windowscrashhandler.cpp | 671 ++ .../chillout/windows/windowscrashhandler.h | 147 + .../coreSQLiteStudio/common/bistrhash.cpp | 25 + SQLiteStudio3/coreSQLiteStudio/common/bistrhash.h | 21 +- .../coreSQLiteStudio/common/compatibility.cpp | 7 + .../coreSQLiteStudio/common/compatibility.h | 3 + SQLiteStudio3/coreSQLiteStudio/common/global.h | 19 +- SQLiteStudio3/coreSQLiteStudio/common/utils.cpp | 39 +- SQLiteStudio3/coreSQLiteStudio/common/utils.h | 37 +- .../coreSQLiteStudio/common/utils_sql.cpp | 94 +- SQLiteStudio3/coreSQLiteStudio/common/utils_sql.h | 2 + .../coreSQLiteStudio/completioncomparer.cpp | 47 +- .../coreSQLiteStudio/completioncomparer.h | 5 +- .../coreSQLiteStudio/completionhelper.cpp | 89 +- SQLiteStudio3/coreSQLiteStudio/completionhelper.h | 26 +- SQLiteStudio3/coreSQLiteStudio/config_builder.h | 18 +- .../config_builder/cfgcategory.cpp | 20 +- .../coreSQLiteStudio/config_builder/cfgentry.cpp | 9 +- .../coreSQLiteStudio/config_builder/cfgentry.h | 3 +- .../config_builder/cfglazyinitializer.cpp | 2 +- .../coreSQLiteStudio/coreSQLiteStudio.pro | 49 +- .../coreSQLiteStudio/coreSQLiteStudio.qrc | 10 +- SQLiteStudio3/coreSQLiteStudio/csvformat.h | 1 + SQLiteStudio3/coreSQLiteStudio/csvserializer.cpp | 2 +- SQLiteStudio3/coreSQLiteStudio/datatype.cpp | 55 +- SQLiteStudio3/coreSQLiteStudio/datatype.h | 22 +- SQLiteStudio3/coreSQLiteStudio/db/abstractdb.cpp | 81 +- SQLiteStudio3/coreSQLiteStudio/db/abstractdb.h | 35 +- SQLiteStudio3/coreSQLiteStudio/db/abstractdb3.h | 70 +- SQLiteStudio3/coreSQLiteStudio/db/db.cpp | 2 +- SQLiteStudio3/coreSQLiteStudio/db/db.h | 38 +- SQLiteStudio3/coreSQLiteStudio/db/dbsqlite3.cpp | 10 + SQLiteStudio3/coreSQLiteStudio/db/dbsqlite3.h | 4 +- SQLiteStudio3/coreSQLiteStudio/db/invaliddb.cpp | 22 +- SQLiteStudio3/coreSQLiteStudio/db/invaliddb.h | 12 +- .../coreSQLiteStudio/db/queryexecutor.cpp | 105 +- SQLiteStudio3/coreSQLiteStudio/db/queryexecutor.h | 31 +- .../queryexecutorsteps/queryexecutoraddrowids.cpp | 37 +- .../db/queryexecutorsteps/queryexecutoraddrowids.h | 2 +- .../queryexecutorsteps/queryexecutorcellsize.cpp | 132 - .../db/queryexecutorsteps/queryexecutorcellsize.h | 62 - .../db/queryexecutorsteps/queryexecutorcolumns.cpp | 35 +- .../queryexecutorsteps/queryexecutorcolumntype.cpp | 47 +- .../queryexecutorsteps/queryexecutorcolumntype.h | 6 +- .../queryexecutordatasources.cpp | 3 +- .../db/queryexecutorsteps/queryexecutorfilter.cpp | 26 + .../db/queryexecutorsteps/queryexecutorfilter.h | 20 + .../db/queryexecutorsteps/queryexecutorlimit.cpp | 1 - .../queryexecutorreplaceviews.cpp | 75 +- .../queryexecutorsteps/queryexecutorreplaceviews.h | 10 + .../db/queryexecutorsteps/queryexecutorstep.cpp | 3 +- .../db/queryexecutorsteps/queryexecutorstep.h | 1 - SQLiteStudio3/coreSQLiteStudio/db/sqlquery.cpp | 81 + SQLiteStudio3/coreSQLiteStudio/db/sqlquery.h | 8 + .../coreSQLiteStudio/db/stdsqlite3driver.h | 7 + .../coreSQLiteStudio/dbobjectorganizer.cpp | 71 +- SQLiteStudio3/coreSQLiteStudio/dbobjectorganizer.h | 4 +- SQLiteStudio3/coreSQLiteStudio/expectedtoken.cpp | 2 +- SQLiteStudio3/coreSQLiteStudio/importworker.cpp | 7 +- SQLiteStudio3/coreSQLiteStudio/licenses/icu.txt | 519 ++ SQLiteStudio3/coreSQLiteStudio/log.cpp | 5 + SQLiteStudio3/coreSQLiteStudio/log.h | 1 + .../parser/ast/sqlitealtertable.cpp | 68 +- .../coreSQLiteStudio/parser/ast/sqlitealtertable.h | 5 + .../coreSQLiteStudio/parser/ast/sqlitecopy.cpp | 92 - .../coreSQLiteStudio/parser/ast/sqlitecopy.h | 32 - .../parser/ast/sqlitecreateindex.cpp | 10 + .../parser/ast/sqlitecreateindex.h | 2 + .../parser/ast/sqlitecreatetable.cpp | 56 +- .../parser/ast/sqlitecreatetable.h | 10 +- .../parser/ast/sqlitecreatetrigger.cpp | 10 + .../parser/ast/sqlitecreatetrigger.h | 2 + .../parser/ast/sqlitecreateview.cpp | 10 + .../coreSQLiteStudio/parser/ast/sqlitecreateview.h | 2 + .../parser/ast/sqliteddlwithdbcontext.h | 3 + .../coreSQLiteStudio/parser/ast/sqlitedelete.cpp | 24 +- .../coreSQLiteStudio/parser/ast/sqlitedelete.h | 13 +- .../coreSQLiteStudio/parser/ast/sqliteexpr.cpp | 43 + .../coreSQLiteStudio/parser/ast/sqliteexpr.h | 6 + .../coreSQLiteStudio/parser/ast/sqliteinsert.cpp | 34 +- .../coreSQLiteStudio/parser/ast/sqliteinsert.h | 16 +- .../coreSQLiteStudio/parser/ast/sqliteorderby.cpp | 20 +- .../parser/ast/sqlitequerytype.cpp | 5 +- .../coreSQLiteStudio/parser/ast/sqliteselect.cpp | 24 +- .../coreSQLiteStudio/parser/ast/sqliteselect.h | 4 +- .../coreSQLiteStudio/parser/ast/sqlitestatement.h | 6 + .../coreSQLiteStudio/parser/ast/sqliteupdate.cpp | 24 +- .../coreSQLiteStudio/parser/ast/sqliteupdate.h | 3 +- .../parser/ast/sqlitewindowdefinition.cpp | 2 +- .../coreSQLiteStudio/parser/ast/sqlitewith.cpp | 22 +- .../coreSQLiteStudio/parser/ast/sqlitewith.h | 10 +- SQLiteStudio3/coreSQLiteStudio/parser/keywords.cpp | 12 +- SQLiteStudio3/coreSQLiteStudio/parser/lempar.c | 4 +- SQLiteStudio3/coreSQLiteStudio/parser/lexer.cpp | 11 +- SQLiteStudio3/coreSQLiteStudio/parser/lexer.h | 7 + .../coreSQLiteStudio/parser/lexer_low_lev.cpp | 129 +- .../coreSQLiteStudio/parser/lexer_low_lev.h | 3 +- SQLiteStudio3/coreSQLiteStudio/parser/parser.cpp | 2 +- .../parser/parser_helper_stubs.cpp | 10 + .../coreSQLiteStudio/parser/parser_helper_stubs.h | 16 + .../coreSQLiteStudio/parser/parsercontext.cpp | 14 +- .../coreSQLiteStudio/parser/sqlite3_parse.cpp | 6834 +++++++-------- .../coreSQLiteStudio/parser/sqlite3_parse.h | 296 +- .../coreSQLiteStudio/parser/sqlite3_parse.y | 179 +- .../parser/statementtokenbuilder.cpp | 21 +- SQLiteStudio3/coreSQLiteStudio/parser/token.cpp | 2 + SQLiteStudio3/coreSQLiteStudio/parser/token.h | 3 +- .../coreSQLiteStudio/plugins/dbpluginsqlite3.cpp | 7 + .../coreSQLiteStudio/plugins/dbpluginsqlite3.h | 2 +- .../plugins/dbpluginstdfilebase.cpp | 6 + .../coreSQLiteStudio/plugins/populaterandom.cpp | 4 +- .../coreSQLiteStudio/plugins/populaterandom.h | 2 + .../plugins/populaterandomtext.cpp | 4 +- .../coreSQLiteStudio/plugins/populaterandomtext.h | 2 + .../coreSQLiteStudio/plugins/populatescript.cpp | 29 +- .../coreSQLiteStudio/plugins/scriptingplugin.h | 28 +- .../coreSQLiteStudio/plugins/scriptingqt.cpp | 157 +- .../coreSQLiteStudio/plugins/scriptingqt.h | 52 +- .../coreSQLiteStudio/plugins/scriptingqt.png | Bin 1750 -> 488 bytes .../plugins/scriptingqtdbproxy.cpp | 28 +- .../coreSQLiteStudio/plugins/scriptingqtdbproxy.h | 13 +- .../coreSQLiteStudio/plugins/scriptingsql.cpp | 29 +- .../coreSQLiteStudio/plugins/scriptingsql.h | 8 +- SQLiteStudio3/coreSQLiteStudio/querygenerator.cpp | 3 +- SQLiteStudio3/coreSQLiteStudio/querymodel.cpp | 3 +- SQLiteStudio3/coreSQLiteStudio/querymodel.h | 1 - SQLiteStudio3/coreSQLiteStudio/rsa/BigInt.cpp | 13 - SQLiteStudio3/coreSQLiteStudio/rsa/BigInt.h | 13 - SQLiteStudio3/coreSQLiteStudio/rsa/Key.cpp | 13 - SQLiteStudio3/coreSQLiteStudio/rsa/Key.h | 13 - SQLiteStudio3/coreSQLiteStudio/rsa/KeyPair.cpp | 13 - SQLiteStudio3/coreSQLiteStudio/rsa/KeyPair.h | 13 - .../coreSQLiteStudio/rsa/PrimeGenerator.cpp | 13 - .../coreSQLiteStudio/rsa/PrimeGenerator.h | 13 - SQLiteStudio3/coreSQLiteStudio/rsa/RSA.cpp | 13 - SQLiteStudio3/coreSQLiteStudio/rsa/RSA.h | 13 - SQLiteStudio3/coreSQLiteStudio/schemaresolver.cpp | 106 +- SQLiteStudio3/coreSQLiteStudio/schemaresolver.h | 12 +- SQLiteStudio3/coreSQLiteStudio/selectresolver.cpp | 296 +- SQLiteStudio3/coreSQLiteStudio/selectresolver.h | 58 +- .../services/codesnippetmanager.cpp | 119 + .../coreSQLiteStudio/services/codesnippetmanager.h | 42 + .../coreSQLiteStudio/services/collationmanager.h | 1 - SQLiteStudio3/coreSQLiteStudio/services/config.cpp | 59 + SQLiteStudio3/coreSQLiteStudio/services/config.h | 11 +- .../coreSQLiteStudio/services/functionmanager.h | 2 +- .../services/impl/collationmanagerimpl.cpp | 22 +- .../services/impl/collationmanagerimpl.h | 1 + .../coreSQLiteStudio/services/impl/configimpl.cpp | 115 +- .../coreSQLiteStudio/services/impl/configimpl.h | 13 +- .../services/impl/dbmanagerimpl.cpp | 30 +- .../services/impl/functionmanagerimpl.cpp | 82 +- .../services/impl/functionmanagerimpl.h | 1 + .../services/impl/pluginmanagerimpl.cpp | 44 +- .../services/impl/pluginmanagerimpl.h | 15 + .../services/impl/sqliteextensionmanagerimpl.cpp | 54 +- .../services/impl/sqliteextensionmanagerimpl.h | 3 + .../coreSQLiteStudio/services/notifymanager.cpp | 2 +- .../coreSQLiteStudio/services/notifymanager.h | 2 +- .../services/sqliteextensionmanager.h | 1 + SQLiteStudio3/coreSQLiteStudio/sqlfileexecutor.cpp | 223 + SQLiteStudio3/coreSQLiteStudio/sqlfileexecutor.h | 43 + SQLiteStudio3/coreSQLiteStudio/sqlhistorymodel.cpp | 2 - SQLiteStudio3/coreSQLiteStudio/sqlitestudio.cpp | 104 +- SQLiteStudio3/coreSQLiteStudio/sqlitestudio.h | 20 +- SQLiteStudio3/coreSQLiteStudio/tablemodifier.cpp | 74 +- SQLiteStudio3/coreSQLiteStudio/tablemodifier.h | 6 +- SQLiteStudio3/coreSQLiteStudio/translations.cpp | 19 +- .../translations/coreSQLiteStudio.ts | 1099 +++ .../translations/coreSQLiteStudio_af_ZA.ts | 1101 +++ .../translations/coreSQLiteStudio_ar_SA.ts | 1101 +++ .../translations/coreSQLiteStudio_ca_ES.ts | 1101 +++ .../translations/coreSQLiteStudio_cs_CZ.ts | 1101 +++ .../translations/coreSQLiteStudio_da_DK.ts | 1101 +++ .../translations/coreSQLiteStudio_de.qm | Bin 34589 -> 0 bytes .../translations/coreSQLiteStudio_de.ts | 1320 --- .../translations/coreSQLiteStudio_de_DE.ts | 1100 +++ .../translations/coreSQLiteStudio_el_GR.ts | 1101 +++ .../translations/coreSQLiteStudio_en_US.ts | 1101 +++ .../translations/coreSQLiteStudio_es.qm | Bin 23 -> 0 bytes .../translations/coreSQLiteStudio_es.ts | 1146 --- .../translations/coreSQLiteStudio_es_ES.ts | 1101 +++ .../translations/coreSQLiteStudio_fa_IR.ts | 1101 +++ .../translations/coreSQLiteStudio_fi_FI.ts | 1101 +++ .../translations/coreSQLiteStudio_fr.qm | Bin 31530 -> 0 bytes .../translations/coreSQLiteStudio_fr.ts | 1319 --- .../translations/coreSQLiteStudio_fr_FR.ts | 1101 +++ .../translations/coreSQLiteStudio_he_IL.ts | 1101 +++ .../translations/coreSQLiteStudio_hu_HU.ts | 1101 +++ .../translations/coreSQLiteStudio_it.qm | Bin 23 -> 0 bytes .../translations/coreSQLiteStudio_it.ts | 1146 --- .../translations/coreSQLiteStudio_it_IT.ts | 1101 +++ .../translations/coreSQLiteStudio_ja_JP.ts | 1101 +++ .../translations/coreSQLiteStudio_kaa.ts | 1101 +++ .../translations/coreSQLiteStudio_ko_KR.ts | 1101 +++ .../translations/coreSQLiteStudio_nl_NL.ts | 1101 +++ .../translations/coreSQLiteStudio_no_NO.ts | 1101 +++ .../translations/coreSQLiteStudio_pl.qm | Bin 34859 -> 0 bytes .../translations/coreSQLiteStudio_pl.ts | 1337 --- .../translations/coreSQLiteStudio_pl_PL.ts | 1101 +++ .../translations/coreSQLiteStudio_pt_BR.qm | Bin 2828 -> 0 bytes .../translations/coreSQLiteStudio_pt_BR.ts | 1428 ++- .../translations/coreSQLiteStudio_pt_PT.ts | 1101 +++ .../translations/coreSQLiteStudio_ro_RO.qm | Bin 30 -> 0 bytes .../translations/coreSQLiteStudio_ro_RO.ts | 1425 ++- .../translations/coreSQLiteStudio_ru.qm | Bin 32776 -> 0 bytes .../translations/coreSQLiteStudio_ru.ts | 1318 --- .../translations/coreSQLiteStudio_ru_RU.ts | 1101 +++ .../translations/coreSQLiteStudio_sk.qm | Bin 5124 -> 0 bytes .../translations/coreSQLiteStudio_sk.ts | 1178 --- .../translations/coreSQLiteStudio_sk_SK.ts | 1101 +++ .../translations/coreSQLiteStudio_sr_SP.ts | 1101 +++ .../translations/coreSQLiteStudio_sv_SE.ts | 1101 +++ .../translations/coreSQLiteStudio_tr_TR.ts | 1101 +++ .../translations/coreSQLiteStudio_uk_UA.ts | 1101 +++ .../translations/coreSQLiteStudio_vi_VN.ts | 1101 +++ .../translations/coreSQLiteStudio_zh_CN.qm | 1 - .../translations/coreSQLiteStudio_zh_CN.ts | 1428 ++- .../translations/coreSQLiteStudio_zh_TW.ts | 1101 +++ SQLiteStudio3/create_macosx_bundle.sh | 53 +- SQLiteStudio3/create_source_dist.sh | 4 +- SQLiteStudio3/dirs.pri | 50 - .../guiSQLiteStudio/common/datawidgetmapper.h | 4 +- .../guiSQLiteStudio/common/dbcombobox.cpp | 6 + SQLiteStudio3/guiSQLiteStudio/common/dbcombobox.h | 5 + .../guiSQLiteStudio/common/extactioncontainer.cpp | 2 +- .../guiSQLiteStudio/common/extactioncontainer.h | 22 +- .../guiSQLiteStudio/common/extlineedit.cpp | 12 +- SQLiteStudio3/guiSQLiteStudio/common/extlineedit.h | 2 + .../guiSQLiteStudio/common/immediatetooltip.cpp | 43 + .../guiSQLiteStudio/common/immediatetooltip.h | 22 + .../guiSQLiteStudio/common/mouseshortcut.cpp | 77 + .../guiSQLiteStudio/common/mouseshortcut.h | 59 + .../guiSQLiteStudio/completer/completerview.cpp | 8 + .../guiSQLiteStudio/completer/completerwindow.cpp | 88 +- .../guiSQLiteStudio/completer/completerwindow.h | 21 +- .../guiSQLiteStudio/completer/completerwindow.ui | 66 +- SQLiteStudio3/guiSQLiteStudio/configmapper.cpp | 50 +- SQLiteStudio3/guiSQLiteStudio/configmapper.h | 11 +- .../guiSQLiteStudio/datagrid/fkcombobox.cpp | 345 + .../guiSQLiteStudio/datagrid/fkcombobox.h | 60 + .../datagrid/sqldatasourcequerymodel.cpp | 156 + .../datagrid/sqldatasourcequerymodel.h | 46 + .../guiSQLiteStudio/datagrid/sqlqueryitem.cpp | 114 +- .../guiSQLiteStudio/datagrid/sqlqueryitem.h | 43 +- .../datagrid/sqlqueryitemdelegate.cpp | 395 +- .../datagrid/sqlqueryitemdelegate.h | 40 +- .../guiSQLiteStudio/datagrid/sqlquerymodel.cpp | 152 +- .../guiSQLiteStudio/datagrid/sqlquerymodel.h | 29 +- .../datagrid/sqlquerymodelcolumn.cpp | 46 +- .../guiSQLiteStudio/datagrid/sqlquerymodelcolumn.h | 9 +- .../guiSQLiteStudio/datagrid/sqlqueryview.cpp | 182 +- .../guiSQLiteStudio/datagrid/sqlqueryview.h | 53 +- .../guiSQLiteStudio/datagrid/sqltablemodel.cpp | 123 +- .../guiSQLiteStudio/datagrid/sqltablemodel.h | 24 +- .../guiSQLiteStudio/datagrid/sqlviewmodel.cpp | 14 +- .../guiSQLiteStudio/datagrid/sqlviewmodel.h | 13 +- SQLiteStudio3/guiSQLiteStudio/dataview.cpp | 51 +- SQLiteStudio3/guiSQLiteStudio/dataview.h | 12 +- SQLiteStudio3/guiSQLiteStudio/dblistmodel.cpp | 3 + SQLiteStudio3/guiSQLiteStudio/dblistmodel.h | 3 + SQLiteStudio3/guiSQLiteStudio/dbobjectdialogs.cpp | 36 +- SQLiteStudio3/guiSQLiteStudio/dbobjectdialogs.h | 26 +- SQLiteStudio3/guiSQLiteStudio/dbtree/dbtree.cpp | 302 +- SQLiteStudio3/guiSQLiteStudio/dbtree/dbtree.h | 42 +- .../guiSQLiteStudio/dbtree/dbtreemodel.cpp | 3 +- .../guiSQLiteStudio/dbtree/dbtreeview.cpp | 9 + SQLiteStudio3/guiSQLiteStudio/dbtree/dbtreeview.h | 1 + .../guiSQLiteStudio/dialogs/aboutdialog.cpp | 49 +- .../guiSQLiteStudio/dialogs/aboutdialog.h | 3 - .../guiSQLiteStudio/dialogs/aboutdialog.ui | 134 +- .../guiSQLiteStudio/dialogs/bindparamsdialog.cpp | 7 +- .../guiSQLiteStudio/dialogs/bindparamsdialog.h | 2 +- .../guiSQLiteStudio/dialogs/columndialog.cpp | 46 +- .../guiSQLiteStudio/dialogs/columndialog.ui | 4 +- .../guiSQLiteStudio/dialogs/configdialog.cpp | 446 +- .../guiSQLiteStudio/dialogs/configdialog.h | 32 +- .../guiSQLiteStudio/dialogs/configdialog.ui | 716 +- SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.cpp | 87 +- SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.h | 6 +- SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.ui | 17 +- .../guiSQLiteStudio/dialogs/exportdialog.cpp | 3 +- .../guiSQLiteStudio/dialogs/importdialog.cpp | 8 +- .../guiSQLiteStudio/dialogs/indexdialog.cpp | 24 +- .../guiSQLiteStudio/dialogs/indexdialog.h | 1 + .../guiSQLiteStudio/dialogs/languagedialog.cpp | 6 + .../guiSQLiteStudio/dialogs/languagedialog.h | 3 + .../guiSQLiteStudio/dialogs/newversiondialog.ui | 4 +- .../dialogs/populateconfigdialog.cpp | 4 +- .../guiSQLiteStudio/dialogs/populatedialog.cpp | 13 +- .../dialogs/triggercolumnsdialog.cpp | 5 +- .../guiSQLiteStudio/dialogs/triggerdialog.cpp | 17 +- .../guiSQLiteStudio/dialogs/triggerdialog.h | 1 + SQLiteStudio3/guiSQLiteStudio/extendedpalette.cpp | 66 +- SQLiteStudio3/guiSQLiteStudio/extendedpalette.h | 17 +- SQLiteStudio3/guiSQLiteStudio/formmanager.cpp | 4 +- SQLiteStudio3/guiSQLiteStudio/formmanager.h | 4 +- SQLiteStudio3/guiSQLiteStudio/formview.cpp | 58 +- SQLiteStudio3/guiSQLiteStudio/formview.h | 26 +- SQLiteStudio3/guiSQLiteStudio/guiSQLiteStudio.pro | 39 +- SQLiteStudio3/guiSQLiteStudio/guiSQLiteStudio.qrc | 13 - SQLiteStudio3/guiSQLiteStudio/iconmanager.cpp | 2 +- SQLiteStudio3/guiSQLiteStudio/iconmanager.h | 9 +- SQLiteStudio3/guiSQLiteStudio/icons.qrc | 7 + .../img/apply_filter_txt_strict.png | Bin 0 -> 581 bytes .../guiSQLiteStudio/img/code_assistant.png | Bin 0 -> 431 bytes SQLiteStudio3/guiSQLiteStudio/img/code_snippet.png | Bin 0 -> 568 bytes .../guiSQLiteStudio/img/restore_default.png | Bin 0 -> 708 bytes .../guiSQLiteStudio/img/selection_invert.png | Bin 0 -> 352 bytes .../guiSQLiteStudio/img/sqlitestudio_256.png | Bin 0 -> 53220 bytes .../guiSQLiteStudio/img/sqlitestudio_48.png | Bin 0 -> 4061 bytes .../guiSQLiteStudio/img/sqlitestudio_installer.png | Bin 0 -> 32235 bytes .../guiSQLiteStudio/img/sqlitestudio_opt.ico | Bin 0 -> 99678 bytes .../guiSQLiteStudio/img/window_close_all_left.png | Bin 0 -> 703 bytes .../guiSQLiteStudio/img/window_close_all_right.png | Bin 0 -> 677 bytes SQLiteStudio3/guiSQLiteStudio/mainwindow.cpp | 129 +- SQLiteStudio3/guiSQLiteStudio/mainwindow.h | 49 +- SQLiteStudio3/guiSQLiteStudio/mdiarea.cpp | 46 +- SQLiteStudio3/guiSQLiteStudio/mdiarea.h | 6 + SQLiteStudio3/guiSQLiteStudio/mdichild.h | 3 + SQLiteStudio3/guiSQLiteStudio/mdiwindow.cpp | 25 +- SQLiteStudio3/guiSQLiteStudio/mdiwindow.h | 2 + .../guiSQLiteStudio/multieditor/multieditor.cpp | 25 +- .../guiSQLiteStudio/multieditor/multieditor.h | 18 +- .../multieditor/multieditorbool.cpp | 2 + .../multieditor/multieditordate.cpp | 2 + .../multieditor/multieditordatetime.cpp | 2 + .../multieditor/multieditordialog.cpp | 5 + .../multieditor/multieditordialog.h | 1 + .../guiSQLiteStudio/multieditor/multieditorfk.cpp | 49 + .../guiSQLiteStudio/multieditor/multieditorfk.h | 29 + .../guiSQLiteStudio/multieditor/multieditorhex.cpp | 1 + .../multieditor/multieditornumeric.cpp | 2 + .../multieditor/multieditortext.cpp | 2 + .../guiSQLiteStudio/multieditor/multieditortext.h | 4 +- .../multieditor/multieditortime.cpp | 2 + .../guiSQLiteStudio/qtscriptsyntaxhighlighter.cpp | 700 +- .../guiSQLiteStudio/qtscriptsyntaxhighlighter.h | 51 +- .../guiSQLiteStudio/searchtextlocator.cpp | 41 +- SQLiteStudio3/guiSQLiteStudio/searchtextlocator.h | 1 + SQLiteStudio3/guiSQLiteStudio/sqleditor.cpp | 280 +- SQLiteStudio3/guiSQLiteStudio/sqleditor.h | 63 +- .../guiSQLiteStudio/sqlitesyntaxhighlighter.cpp | 165 +- .../guiSQLiteStudio/sqlitesyntaxhighlighter.h | 21 +- SQLiteStudio3/guiSQLiteStudio/statusfield.cpp | 17 +- SQLiteStudio3/guiSQLiteStudio/statusfield.h | 2 + SQLiteStudio3/guiSQLiteStudio/style.cpp | 59 +- SQLiteStudio3/guiSQLiteStudio/style.h | 11 + .../guiSQLiteStudio/syntaxhighlighterplugin.h | 2 + SQLiteStudio3/guiSQLiteStudio/taskbar.cpp | 4 +- SQLiteStudio3/guiSQLiteStudio/themetuner.cpp | 22 +- SQLiteStudio3/guiSQLiteStudio/themetuner.h | 6 +- .../translations/guiSQLiteStudio.ts | 7087 +++++++++++++++ .../translations/guiSQLiteStudio_af_ZA.ts | 7111 +++++++++++++++ .../translations/guiSQLiteStudio_ar_SA.ts | 7111 +++++++++++++++ .../translations/guiSQLiteStudio_ca_ES.ts | 7111 +++++++++++++++ .../translations/guiSQLiteStudio_cs_CZ.ts | 7111 +++++++++++++++ .../translations/guiSQLiteStudio_da_DK.ts | 7111 +++++++++++++++ .../translations/guiSQLiteStudio_de.qm | Bin 117878 -> 0 bytes .../translations/guiSQLiteStudio_de.ts | 7261 ---------------- .../translations/guiSQLiteStudio_de_DE.ts | 7107 +++++++++++++++ .../translations/guiSQLiteStudio_el_GR.ts | 7111 +++++++++++++++ .../translations/guiSQLiteStudio_en_US.ts | 7111 +++++++++++++++ .../translations/guiSQLiteStudio_es.qm | Bin 23 -> 0 bytes .../translations/guiSQLiteStudio_es.ts | 6612 -------------- .../translations/guiSQLiteStudio_es_ES.ts | 7111 +++++++++++++++ .../translations/guiSQLiteStudio_fa_IR.ts | 7111 +++++++++++++++ .../translations/guiSQLiteStudio_fi_FI.ts | 7111 +++++++++++++++ .../translations/guiSQLiteStudio_fr.qm | Bin 123779 -> 0 bytes .../translations/guiSQLiteStudio_fr.ts | 7133 --------------- .../translations/guiSQLiteStudio_fr_FR.ts | 7106 +++++++++++++++ .../translations/guiSQLiteStudio_he_IL.ts | 7111 +++++++++++++++ .../translations/guiSQLiteStudio_hu_HU.ts | 7111 +++++++++++++++ .../translations/guiSQLiteStudio_it.qm | Bin 23 -> 0 bytes .../translations/guiSQLiteStudio_it.ts | 6612 -------------- .../translations/guiSQLiteStudio_it_IT.ts | 7108 +++++++++++++++ .../translations/guiSQLiteStudio_ja_JP.ts | 7111 +++++++++++++++ .../translations/guiSQLiteStudio_kaa.ts | 7111 +++++++++++++++ .../translations/guiSQLiteStudio_ko_KR.ts | 7111 +++++++++++++++ .../translations/guiSQLiteStudio_nl_NL.ts | 7111 +++++++++++++++ .../translations/guiSQLiteStudio_no_NO.ts | 7111 +++++++++++++++ .../translations/guiSQLiteStudio_pl.qm | Bin 170072 -> 0 bytes .../translations/guiSQLiteStudio_pl.ts | 7399 ---------------- .../translations/guiSQLiteStudio_pl_PL.ts | 7111 +++++++++++++++ .../translations/guiSQLiteStudio_pt_BR.qm | Bin 23 -> 0 bytes .../translations/guiSQLiteStudio_pt_BR.ts | 8730 ++++++++++--------- .../translations/guiSQLiteStudio_pt_PT.ts | 7111 +++++++++++++++ .../translations/guiSQLiteStudio_ro_RO.qm | Bin 30 -> 0 bytes .../translations/guiSQLiteStudio_ro_RO.ts | 8723 ++++++++++--------- .../translations/guiSQLiteStudio_ru.qm | Bin 152875 -> 0 bytes .../translations/guiSQLiteStudio_ru.ts | 7379 ---------------- .../translations/guiSQLiteStudio_ru_RU.ts | 7108 +++++++++++++++ .../translations/guiSQLiteStudio_sk.qm | Bin 84002 -> 0 bytes .../translations/guiSQLiteStudio_sk.ts | 7262 ---------------- .../translations/guiSQLiteStudio_sk_SK.ts | 7111 +++++++++++++++ .../translations/guiSQLiteStudio_sr_SP.ts | 7111 +++++++++++++++ .../translations/guiSQLiteStudio_sv_SE.ts | 7111 +++++++++++++++ .../translations/guiSQLiteStudio_tr_TR.ts | 7111 +++++++++++++++ .../translations/guiSQLiteStudio_uk_UA.ts | 7111 +++++++++++++++ .../translations/guiSQLiteStudio_vi_VN.ts | 7111 +++++++++++++++ .../translations/guiSQLiteStudio_zh_CN.qm | Bin 43220 -> 0 bytes .../translations/guiSQLiteStudio_zh_CN.ts | 9047 ++++++++++---------- .../translations/guiSQLiteStudio_zh_TW.ts | 7106 +++++++++++++++ SQLiteStudio3/guiSQLiteStudio/uiconfig.cpp | 82 + SQLiteStudio3/guiSQLiteStudio/uiconfig.h | 137 +- SQLiteStudio3/guiSQLiteStudio/uiutils.cpp | 79 +- SQLiteStudio3/guiSQLiteStudio/uiutils.h | 8 +- .../guiSQLiteStudio/windows/codesnippeteditor.cpp | 350 + .../guiSQLiteStudio/windows/codesnippeteditor.h | 91 + .../guiSQLiteStudio/windows/codesnippeteditor.ui | 250 + .../windows/codesnippeteditormodel.cpp | 287 + .../windows/codesnippeteditormodel.h | 80 + .../guiSQLiteStudio/windows/collationseditor.cpp | 19 +- .../guiSQLiteStudio/windows/collationseditor.h | 6 + .../guiSQLiteStudio/windows/ddlhistorywindow.cpp | 24 +- .../guiSQLiteStudio/windows/ddlhistorywindow.h | 1 + .../guiSQLiteStudio/windows/ddlhistorywindow.ui | 18 +- .../guiSQLiteStudio/windows/editorwindow.cpp | 83 +- .../guiSQLiteStudio/windows/editorwindow.h | 29 +- .../guiSQLiteStudio/windows/editorwindow.ui | 4 +- .../guiSQLiteStudio/windows/functionseditor.cpp | 46 +- .../guiSQLiteStudio/windows/functionseditor.h | 7 +- .../guiSQLiteStudio/windows/functionseditor.ui | 25 +- .../windows/functionseditormodel.cpp | 18 +- .../guiSQLiteStudio/windows/functionseditormodel.h | 3 +- .../windows/sqliteextensioneditor.cpp | 27 +- .../windows/sqliteextensioneditor.h | 7 + .../windows/sqliteextensioneditor.ui | 12 + .../windows/sqliteextensioneditormodel.cpp | 2 +- .../windows/tablestructuremodel.cpp | 97 + .../guiSQLiteStudio/windows/tablestructuremodel.h | 1 + .../guiSQLiteStudio/windows/tablewindow.cpp | 80 +- .../guiSQLiteStudio/windows/tablewindow.h | 45 +- .../guiSQLiteStudio/windows/tablewindow.ui | 13 + .../guiSQLiteStudio/windows/viewwindow.cpp | 83 +- SQLiteStudio3/guiSQLiteStudio/windows/viewwindow.h | 28 +- SQLiteStudio3/lang.tcl | 358 +- SQLiteStudio3/plugins.pri | 6 +- SQLiteStudio3/sqlitestudio/installscript.qs | 64 - SQLiteStudio3/sqlitestudio/main.cpp | 21 +- SQLiteStudio3/sqlitestudio/register_file_types.ui | 64 - SQLiteStudio3/sqlitestudio/sqlitestudio.pro | 24 +- SQLiteStudio3/sqlitestudio/sqlitestudio.qrc | 16 +- .../sqlitestudio/translations/sqlitestudio.ts | 87 + .../translations/sqlitestudio_af_ZA.ts | 87 + .../translations/sqlitestudio_ar_SA.ts | 87 + .../translations/sqlitestudio_ca_ES.ts | 87 + .../translations/sqlitestudio_cs_CZ.ts | 87 + .../translations/sqlitestudio_da_DK.ts | 87 + .../sqlitestudio/translations/sqlitestudio_de.qm | Bin 2198 -> 0 bytes .../sqlitestudio/translations/sqlitestudio_de.ts | 88 - .../translations/sqlitestudio_de_DE.ts | 87 + .../translations/sqlitestudio_el_GR.ts | 87 + .../translations/sqlitestudio_en_US.ts | 87 + .../sqlitestudio/translations/sqlitestudio_es.qm | Bin 23 -> 0 bytes .../sqlitestudio/translations/sqlitestudio_es.ts | 82 - .../translations/sqlitestudio_es_ES.ts | 87 + .../translations/sqlitestudio_fa_IR.ts | 87 + .../translations/sqlitestudio_fi_FI.ts | 87 + .../sqlitestudio/translations/sqlitestudio_fr.qm | Bin 2323 -> 0 bytes .../sqlitestudio/translations/sqlitestudio_fr.ts | 86 - .../translations/sqlitestudio_fr_FR.ts | 87 + .../translations/sqlitestudio_he_IL.ts | 87 + .../translations/sqlitestudio_hu_HU.ts | 87 + .../sqlitestudio/translations/sqlitestudio_it.qm | Bin 23 -> 0 bytes .../sqlitestudio/translations/sqlitestudio_it.ts | 82 - .../translations/sqlitestudio_it_IT.ts | 87 + .../translations/sqlitestudio_ja_JP.ts | 87 + .../sqlitestudio/translations/sqlitestudio_kaa.ts | 87 + .../translations/sqlitestudio_ko_KR.ts | 87 + .../translations/sqlitestudio_nl_NL.ts | 87 + .../translations/sqlitestudio_no_NO.ts | 87 + .../sqlitestudio/translations/sqlitestudio_pl.qm | Bin 2810 -> 0 bytes .../sqlitestudio/translations/sqlitestudio_pl.ts | 71 - .../translations/sqlitestudio_pl_PL.ts | 87 + .../translations/sqlitestudio_pt_BR.qm | Bin 23 -> 0 bytes .../translations/sqlitestudio_pt_BR.ts | 101 +- .../translations/sqlitestudio_pt_PT.ts | 87 + .../translations/sqlitestudio_ro_RO.qm | Bin 30 -> 0 bytes .../translations/sqlitestudio_ro_RO.ts | 101 +- .../sqlitestudio/translations/sqlitestudio_ru.qm | Bin 2949 -> 0 bytes .../sqlitestudio/translations/sqlitestudio_ru.ts | 86 - .../translations/sqlitestudio_ru_RU.ts | 87 + .../sqlitestudio/translations/sqlitestudio_sk.qm | Bin 783 -> 0 bytes .../sqlitestudio/translations/sqlitestudio_sk.ts | 86 - .../translations/sqlitestudio_sk_SK.ts | 87 + .../translations/sqlitestudio_sr_SP.ts | 87 + .../translations/sqlitestudio_sv_SE.ts | 87 + .../translations/sqlitestudio_tr_TR.ts | 87 + .../translations/sqlitestudio_uk_UA.ts | 87 + .../translations/sqlitestudio_vi_VN.ts | 87 + .../translations/sqlitestudio_zh_CN.qm | Bin 361 -> 0 bytes .../translations/sqlitestudio_zh_CN.ts | 101 +- .../translations/sqlitestudio_zh_TW.ts | 87 + SQLiteStudio3/sqlitestudiocli/cli.cpp | 9 +- SQLiteStudio3/sqlitestudiocli/cli.h | 2 +- .../sqlitestudiocli/commands/clicommand.cpp | 2 +- .../sqlitestudiocli/commands/clicommandcd.cpp | 2 +- .../sqlitestudiocli/commands/clicommandclose.cpp | 6 +- .../sqlitestudiocli/commands/clicommanddblist.cpp | 2 +- .../sqlitestudiocli/commands/clicommanddesc.cpp | 6 +- .../sqlitestudiocli/commands/clicommandhelp.cpp | 5 +- .../sqlitestudiocli/commands/clicommandmode.cpp | 2 +- .../sqlitestudiocli/commands/clicommandopen.cpp | 4 +- .../sqlitestudiocli/commands/clicommandpwd.cpp | 2 +- .../sqlitestudiocli/commands/clicommandsql.cpp | 32 +- SQLiteStudio3/sqlitestudiocli/main.cpp | 106 +- SQLiteStudio3/sqlitestudiocli/sqlitestudiocli.pro | 26 +- SQLiteStudio3/sqlitestudiocli/sqlitestudiocli.qrc | 20 +- .../translations/sqlitestudiocli.ts | 833 ++ .../translations/sqlitestudiocli_af_ZA.ts | 876 ++ .../translations/sqlitestudiocli_ar_SA.ts | 876 ++ .../translations/sqlitestudiocli_ca_ES.ts | 876 ++ .../translations/sqlitestudiocli_cs_CZ.ts | 876 ++ .../translations/sqlitestudiocli_da_DK.ts | 876 ++ .../translations/sqlitestudiocli_de.qm | Bin 23 -> 0 bytes .../translations/sqlitestudiocli_de.ts | 788 -- .../translations/sqlitestudiocli_de_DE.ts | 876 ++ .../translations/sqlitestudiocli_el_GR.ts | 876 ++ .../translations/sqlitestudiocli_en_US.ts | 876 ++ .../translations/sqlitestudiocli_es.qm | Bin 23 -> 0 bytes .../translations/sqlitestudiocli_es.ts | 788 -- .../translations/sqlitestudiocli_es_ES.ts | 875 ++ .../translations/sqlitestudiocli_fa_IR.ts | 876 ++ .../translations/sqlitestudiocli_fi_FI.ts | 876 ++ .../translations/sqlitestudiocli_fr.qm | Bin 41642 -> 0 bytes .../translations/sqlitestudiocli_fr.ts | 830 -- .../translations/sqlitestudiocli_fr_FR.ts | 875 ++ .../translations/sqlitestudiocli_he_IL.ts | 876 ++ .../translations/sqlitestudiocli_hu_HU.ts | 876 ++ .../translations/sqlitestudiocli_it.qm | Bin 23 -> 0 bytes .../translations/sqlitestudiocli_it.ts | 788 -- .../translations/sqlitestudiocli_it_IT.ts | 876 ++ .../translations/sqlitestudiocli_ja_JP.ts | 876 ++ .../translations/sqlitestudiocli_kaa.ts | 876 ++ .../translations/sqlitestudiocli_ko_KR.ts | 876 ++ .../translations/sqlitestudiocli_nl_NL.ts | 876 ++ .../translations/sqlitestudiocli_no_NO.ts | 876 ++ .../translations/sqlitestudiocli_pl.qm | Bin 40792 -> 0 bytes .../translations/sqlitestudiocli_pl.ts | 690 -- .../translations/sqlitestudiocli_pl_PL.ts | 874 ++ .../translations/sqlitestudiocli_pt_BR.qm | Bin 23 -> 0 bytes .../translations/sqlitestudiocli_pt_BR.ts | 1013 ++- .../translations/sqlitestudiocli_pt_PT.ts | 876 ++ .../translations/sqlitestudiocli_ro_RO.qm | Bin 30 -> 0 bytes .../translations/sqlitestudiocli_ro_RO.ts | 1012 ++- .../translations/sqlitestudiocli_ru.qm | Bin 41595 -> 0 bytes .../translations/sqlitestudiocli_ru.ts | 829 -- .../translations/sqlitestudiocli_ru_RU.ts | 874 ++ .../translations/sqlitestudiocli_sk.qm | Bin 27 -> 0 bytes .../translations/sqlitestudiocli_sk.ts | 788 -- .../translations/sqlitestudiocli_sk_SK.ts | 876 ++ .../translations/sqlitestudiocli_sr_SP.ts | 876 ++ .../translations/sqlitestudiocli_sv_SE.ts | 876 ++ .../translations/sqlitestudiocli_tr_TR.ts | 876 ++ .../translations/sqlitestudiocli_uk_UA.ts | 876 ++ .../translations/sqlitestudiocli_vi_VN.ts | 876 ++ .../translations/sqlitestudiocli_zh_CN.qm | Bin 1327 -> 0 bytes .../translations/sqlitestudiocli_zh_CN.ts | 1013 ++- .../translations/sqlitestudiocli_zh_TW.ts | 876 ++ SQLiteStudio3/ts.xsd | 189 + 587 files changed, 319266 insertions(+), 88849 deletions(-) create mode 100644 SQLiteStudio3/Tests/testcommon.pri delete mode 100644 SQLiteStudio3/Tests/testdirs.pri create mode 100644 SQLiteStudio3/common.pri create mode 100644 SQLiteStudio3/coreSQLiteStudio/chillout/LICENSE-chillout create mode 100644 SQLiteStudio3/coreSQLiteStudio/chillout/README create mode 100644 SQLiteStudio3/coreSQLiteStudio/chillout/chillout.cpp create mode 100644 SQLiteStudio3/coreSQLiteStudio/chillout/chillout.h create mode 100644 SQLiteStudio3/coreSQLiteStudio/chillout/common/common.cpp create mode 100644 SQLiteStudio3/coreSQLiteStudio/chillout/common/common.h create mode 100644 SQLiteStudio3/coreSQLiteStudio/chillout/defines.h create mode 100644 SQLiteStudio3/coreSQLiteStudio/chillout/posix/posixcrashhandler.cpp create mode 100644 SQLiteStudio3/coreSQLiteStudio/chillout/posix/posixcrashhandler.h create mode 100644 SQLiteStudio3/coreSQLiteStudio/chillout/windows/StackWalker.cpp create mode 100644 SQLiteStudio3/coreSQLiteStudio/chillout/windows/StackWalker.h create mode 100644 SQLiteStudio3/coreSQLiteStudio/chillout/windows/windowscrashhandler.cpp create mode 100644 SQLiteStudio3/coreSQLiteStudio/chillout/windows/windowscrashhandler.h delete mode 100644 SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutorcellsize.cpp delete mode 100644 SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutorcellsize.h create mode 100644 SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutorfilter.cpp create mode 100644 SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutorfilter.h create mode 100644 SQLiteStudio3/coreSQLiteStudio/licenses/icu.txt delete mode 100644 SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecopy.cpp delete mode 100644 SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecopy.h create mode 100644 SQLiteStudio3/coreSQLiteStudio/services/codesnippetmanager.cpp create mode 100644 SQLiteStudio3/coreSQLiteStudio/services/codesnippetmanager.h create mode 100644 SQLiteStudio3/coreSQLiteStudio/sqlfileexecutor.cpp create mode 100644 SQLiteStudio3/coreSQLiteStudio/sqlfileexecutor.h create mode 100644 SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio.ts create mode 100644 SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_af_ZA.ts create mode 100644 SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_ar_SA.ts create mode 100644 SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_ca_ES.ts create mode 100644 SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_cs_CZ.ts create mode 100644 SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_da_DK.ts delete mode 100644 SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_de.qm delete mode 100644 SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_de.ts create mode 100644 SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_de_DE.ts create mode 100644 SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_el_GR.ts create mode 100644 SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_en_US.ts delete mode 100644 SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_es.qm delete mode 100644 SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_es.ts create mode 100644 SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_es_ES.ts create mode 100644 SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_fa_IR.ts create mode 100644 SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_fi_FI.ts delete mode 100644 SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_fr.qm delete mode 100644 SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_fr.ts create mode 100644 SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_fr_FR.ts create mode 100644 SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_he_IL.ts create mode 100644 SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_hu_HU.ts delete mode 100644 SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_it.qm delete mode 100644 SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_it.ts create mode 100644 SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_it_IT.ts create mode 100644 SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_ja_JP.ts create mode 100644 SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_kaa.ts create mode 100644 SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_ko_KR.ts create mode 100644 SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_nl_NL.ts create mode 100644 SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_no_NO.ts delete mode 100644 SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_pl.qm delete mode 100644 SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_pl.ts create mode 100644 SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_pl_PL.ts delete mode 100644 SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_pt_BR.qm create mode 100644 SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_pt_PT.ts delete mode 100644 SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_ro_RO.qm delete mode 100644 SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_ru.qm delete mode 100644 SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_ru.ts create mode 100644 SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_ru_RU.ts delete mode 100644 SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_sk.qm delete mode 100644 SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_sk.ts create mode 100644 SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_sk_SK.ts create mode 100644 SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_sr_SP.ts create mode 100644 SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_sv_SE.ts create mode 100644 SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_tr_TR.ts create mode 100644 SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_uk_UA.ts create mode 100644 SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_vi_VN.ts delete mode 100644 SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_zh_CN.qm create mode 100644 SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_zh_TW.ts delete mode 100644 SQLiteStudio3/dirs.pri create mode 100644 SQLiteStudio3/guiSQLiteStudio/common/immediatetooltip.cpp create mode 100644 SQLiteStudio3/guiSQLiteStudio/common/immediatetooltip.h create mode 100644 SQLiteStudio3/guiSQLiteStudio/common/mouseshortcut.cpp create mode 100644 SQLiteStudio3/guiSQLiteStudio/common/mouseshortcut.h create mode 100644 SQLiteStudio3/guiSQLiteStudio/datagrid/fkcombobox.cpp create mode 100644 SQLiteStudio3/guiSQLiteStudio/datagrid/fkcombobox.h create mode 100644 SQLiteStudio3/guiSQLiteStudio/datagrid/sqldatasourcequerymodel.cpp create mode 100644 SQLiteStudio3/guiSQLiteStudio/datagrid/sqldatasourcequerymodel.h create mode 100644 SQLiteStudio3/guiSQLiteStudio/img/apply_filter_txt_strict.png create mode 100644 SQLiteStudio3/guiSQLiteStudio/img/code_assistant.png create mode 100644 SQLiteStudio3/guiSQLiteStudio/img/code_snippet.png create mode 100644 SQLiteStudio3/guiSQLiteStudio/img/restore_default.png create mode 100644 SQLiteStudio3/guiSQLiteStudio/img/selection_invert.png create mode 100644 SQLiteStudio3/guiSQLiteStudio/img/sqlitestudio_256.png create mode 100644 SQLiteStudio3/guiSQLiteStudio/img/sqlitestudio_48.png create mode 100644 SQLiteStudio3/guiSQLiteStudio/img/sqlitestudio_installer.png create mode 100644 SQLiteStudio3/guiSQLiteStudio/img/sqlitestudio_opt.ico create mode 100644 SQLiteStudio3/guiSQLiteStudio/img/window_close_all_left.png create mode 100644 SQLiteStudio3/guiSQLiteStudio/img/window_close_all_right.png create mode 100644 SQLiteStudio3/guiSQLiteStudio/multieditor/multieditorfk.cpp create mode 100644 SQLiteStudio3/guiSQLiteStudio/multieditor/multieditorfk.h create mode 100644 SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio.ts create mode 100644 SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_af_ZA.ts create mode 100644 SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_ar_SA.ts create mode 100644 SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_ca_ES.ts create mode 100644 SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_cs_CZ.ts create mode 100644 SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_da_DK.ts delete mode 100644 SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_de.qm delete mode 100644 SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_de.ts create mode 100644 SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_de_DE.ts create mode 100644 SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_el_GR.ts create mode 100644 SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_en_US.ts delete mode 100644 SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_es.qm delete mode 100644 SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_es.ts create mode 100644 SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_es_ES.ts create mode 100644 SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_fa_IR.ts create mode 100644 SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_fi_FI.ts delete mode 100644 SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_fr.qm delete mode 100644 SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_fr.ts create mode 100644 SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_fr_FR.ts create mode 100644 SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_he_IL.ts create mode 100644 SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_hu_HU.ts delete mode 100644 SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_it.qm delete mode 100644 SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_it.ts create mode 100644 SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_it_IT.ts create mode 100644 SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_ja_JP.ts create mode 100644 SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_kaa.ts create mode 100644 SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_ko_KR.ts create mode 100644 SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_nl_NL.ts create mode 100644 SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_no_NO.ts delete mode 100644 SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_pl.qm delete mode 100644 SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_pl.ts create mode 100644 SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_pl_PL.ts delete mode 100644 SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_pt_BR.qm create mode 100644 SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_pt_PT.ts delete mode 100644 SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_ro_RO.qm delete mode 100644 SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_ru.qm delete mode 100644 SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_ru.ts create mode 100644 SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_ru_RU.ts delete mode 100644 SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_sk.qm delete mode 100644 SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_sk.ts create mode 100644 SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_sk_SK.ts create mode 100644 SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_sr_SP.ts create mode 100644 SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_sv_SE.ts create mode 100644 SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_tr_TR.ts create mode 100644 SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_uk_UA.ts create mode 100644 SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_vi_VN.ts delete mode 100644 SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_zh_CN.qm create mode 100644 SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_zh_TW.ts create mode 100644 SQLiteStudio3/guiSQLiteStudio/windows/codesnippeteditor.cpp create mode 100644 SQLiteStudio3/guiSQLiteStudio/windows/codesnippeteditor.h create mode 100644 SQLiteStudio3/guiSQLiteStudio/windows/codesnippeteditor.ui create mode 100644 SQLiteStudio3/guiSQLiteStudio/windows/codesnippeteditormodel.cpp create mode 100644 SQLiteStudio3/guiSQLiteStudio/windows/codesnippeteditormodel.h delete mode 100644 SQLiteStudio3/sqlitestudio/installscript.qs delete mode 100644 SQLiteStudio3/sqlitestudio/register_file_types.ui create mode 100644 SQLiteStudio3/sqlitestudio/translations/sqlitestudio.ts create mode 100644 SQLiteStudio3/sqlitestudio/translations/sqlitestudio_af_ZA.ts create mode 100644 SQLiteStudio3/sqlitestudio/translations/sqlitestudio_ar_SA.ts create mode 100644 SQLiteStudio3/sqlitestudio/translations/sqlitestudio_ca_ES.ts create mode 100644 SQLiteStudio3/sqlitestudio/translations/sqlitestudio_cs_CZ.ts create mode 100644 SQLiteStudio3/sqlitestudio/translations/sqlitestudio_da_DK.ts delete mode 100644 SQLiteStudio3/sqlitestudio/translations/sqlitestudio_de.qm delete mode 100644 SQLiteStudio3/sqlitestudio/translations/sqlitestudio_de.ts create mode 100644 SQLiteStudio3/sqlitestudio/translations/sqlitestudio_de_DE.ts create mode 100644 SQLiteStudio3/sqlitestudio/translations/sqlitestudio_el_GR.ts create mode 100644 SQLiteStudio3/sqlitestudio/translations/sqlitestudio_en_US.ts delete mode 100644 SQLiteStudio3/sqlitestudio/translations/sqlitestudio_es.qm delete mode 100644 SQLiteStudio3/sqlitestudio/translations/sqlitestudio_es.ts create mode 100644 SQLiteStudio3/sqlitestudio/translations/sqlitestudio_es_ES.ts create mode 100644 SQLiteStudio3/sqlitestudio/translations/sqlitestudio_fa_IR.ts create mode 100644 SQLiteStudio3/sqlitestudio/translations/sqlitestudio_fi_FI.ts delete mode 100644 SQLiteStudio3/sqlitestudio/translations/sqlitestudio_fr.qm delete mode 100644 SQLiteStudio3/sqlitestudio/translations/sqlitestudio_fr.ts create mode 100644 SQLiteStudio3/sqlitestudio/translations/sqlitestudio_fr_FR.ts create mode 100644 SQLiteStudio3/sqlitestudio/translations/sqlitestudio_he_IL.ts create mode 100644 SQLiteStudio3/sqlitestudio/translations/sqlitestudio_hu_HU.ts delete mode 100644 SQLiteStudio3/sqlitestudio/translations/sqlitestudio_it.qm delete mode 100644 SQLiteStudio3/sqlitestudio/translations/sqlitestudio_it.ts create mode 100644 SQLiteStudio3/sqlitestudio/translations/sqlitestudio_it_IT.ts create mode 100644 SQLiteStudio3/sqlitestudio/translations/sqlitestudio_ja_JP.ts create mode 100644 SQLiteStudio3/sqlitestudio/translations/sqlitestudio_kaa.ts create mode 100644 SQLiteStudio3/sqlitestudio/translations/sqlitestudio_ko_KR.ts create mode 100644 SQLiteStudio3/sqlitestudio/translations/sqlitestudio_nl_NL.ts create mode 100644 SQLiteStudio3/sqlitestudio/translations/sqlitestudio_no_NO.ts delete mode 100644 SQLiteStudio3/sqlitestudio/translations/sqlitestudio_pl.qm delete mode 100644 SQLiteStudio3/sqlitestudio/translations/sqlitestudio_pl.ts create mode 100644 SQLiteStudio3/sqlitestudio/translations/sqlitestudio_pl_PL.ts delete mode 100644 SQLiteStudio3/sqlitestudio/translations/sqlitestudio_pt_BR.qm create mode 100644 SQLiteStudio3/sqlitestudio/translations/sqlitestudio_pt_PT.ts delete mode 100644 SQLiteStudio3/sqlitestudio/translations/sqlitestudio_ro_RO.qm delete mode 100644 SQLiteStudio3/sqlitestudio/translations/sqlitestudio_ru.qm delete mode 100644 SQLiteStudio3/sqlitestudio/translations/sqlitestudio_ru.ts create mode 100644 SQLiteStudio3/sqlitestudio/translations/sqlitestudio_ru_RU.ts delete mode 100644 SQLiteStudio3/sqlitestudio/translations/sqlitestudio_sk.qm delete mode 100644 SQLiteStudio3/sqlitestudio/translations/sqlitestudio_sk.ts create mode 100644 SQLiteStudio3/sqlitestudio/translations/sqlitestudio_sk_SK.ts create mode 100644 SQLiteStudio3/sqlitestudio/translations/sqlitestudio_sr_SP.ts create mode 100644 SQLiteStudio3/sqlitestudio/translations/sqlitestudio_sv_SE.ts create mode 100644 SQLiteStudio3/sqlitestudio/translations/sqlitestudio_tr_TR.ts create mode 100644 SQLiteStudio3/sqlitestudio/translations/sqlitestudio_uk_UA.ts create mode 100644 SQLiteStudio3/sqlitestudio/translations/sqlitestudio_vi_VN.ts delete mode 100644 SQLiteStudio3/sqlitestudio/translations/sqlitestudio_zh_CN.qm create mode 100644 SQLiteStudio3/sqlitestudio/translations/sqlitestudio_zh_TW.ts create mode 100644 SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli.ts create mode 100644 SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_af_ZA.ts create mode 100644 SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_ar_SA.ts create mode 100644 SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_ca_ES.ts create mode 100644 SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_cs_CZ.ts create mode 100644 SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_da_DK.ts delete mode 100644 SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_de.qm delete mode 100644 SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_de.ts create mode 100644 SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_de_DE.ts create mode 100644 SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_el_GR.ts create mode 100644 SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_en_US.ts delete mode 100644 SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_es.qm delete mode 100644 SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_es.ts create mode 100644 SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_es_ES.ts create mode 100644 SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_fa_IR.ts create mode 100644 SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_fi_FI.ts delete mode 100644 SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_fr.qm delete mode 100644 SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_fr.ts create mode 100644 SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_fr_FR.ts create mode 100644 SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_he_IL.ts create mode 100644 SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_hu_HU.ts delete mode 100644 SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_it.qm delete mode 100644 SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_it.ts create mode 100644 SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_it_IT.ts create mode 100644 SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_ja_JP.ts create mode 100644 SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_kaa.ts create mode 100644 SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_ko_KR.ts create mode 100644 SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_nl_NL.ts create mode 100644 SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_no_NO.ts delete mode 100644 SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_pl.qm delete mode 100644 SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_pl.ts create mode 100644 SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_pl_PL.ts delete mode 100644 SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_pt_BR.qm create mode 100644 SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_pt_PT.ts delete mode 100644 SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_ro_RO.qm delete mode 100644 SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_ru.qm delete mode 100644 SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_ru.ts create mode 100644 SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_ru_RU.ts delete mode 100644 SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_sk.qm delete mode 100644 SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_sk.ts create mode 100644 SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_sk_SK.ts create mode 100644 SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_sr_SP.ts create mode 100644 SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_sv_SE.ts create mode 100644 SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_tr_TR.ts create mode 100644 SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_uk_UA.ts create mode 100644 SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_vi_VN.ts delete mode 100644 SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_zh_CN.qm create mode 100644 SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_zh_TW.ts create mode 100644 SQLiteStudio3/ts.xsd (limited to 'SQLiteStudio3') diff --git a/SQLiteStudio3/SQLiteStudio3.pro b/SQLiteStudio3/SQLiteStudio3.pro index e5ca357..1fd7959 100644 --- a/SQLiteStudio3/SQLiteStudio3.pro +++ b/SQLiteStudio3/SQLiteStudio3.pro @@ -37,8 +37,12 @@ contains(DEFINES, tests) { OUTPUT_DIR_NAME = output macx: { - bundle.commands = sh $$PWD/create_macosx_bundle.sh $$PWD/../$$OUTPUT_DIR_NAME $$QMAKE_QMAKE - dmg.commands = sh $$PWD/create_macosx_bundle.sh $$PWD/../$$OUTPUT_DIR_NAME $$QMAKE_QMAKE dmg - pkg.commands = sh $$PWD/create_macosx_bundle.sh $$PWD/../$$OUTPUT_DIR_NAME $$QMAKE_QMAKE dist + bundle.commands = sh \"$$PWD/create_macosx_bundle.sh\" \"$$PWD/../$$OUTPUT_DIR_NAME\" \"$$QMAKE_QMAKE\" + dmg.commands = sh \"$$PWD/create_macosx_bundle.sh\" \"$$PWD/../$$OUTPUT_DIR_NAME\" \"$$QMAKE_QMAKE\" dmg + pkg.commands = sh \"$$PWD/create_macosx_bundle.sh\" \"$$PWD/../$$OUTPUT_DIR_NAME\" \"$$QMAKE_QMAKE\" dist QMAKE_EXTRA_TARGETS += bundle dmg pkg } + +OTHER_FILES += \ + ../ChangeLog.md \ + ../SQLiteStudio-installer.xml diff --git a/SQLiteStudio3/Tests/CompletionHelperTest/CompletionHelperTest.pro b/SQLiteStudio3/Tests/CompletionHelperTest/CompletionHelperTest.pro index d4c1e99..76d4951 100644 --- a/SQLiteStudio3/Tests/CompletionHelperTest/CompletionHelperTest.pro +++ b/SQLiteStudio3/Tests/CompletionHelperTest/CompletionHelperTest.pro @@ -10,7 +10,7 @@ QT += testlib QT -= gui TARGET = tst_completionhelpertest -CONFIG += console +CONFIG += console testcase CONFIG -= app_bundle TEMPLATE = app diff --git a/SQLiteStudio3/Tests/LexerTest/tst_lexertest.cpp b/SQLiteStudio3/Tests/LexerTest/tst_lexertest.cpp index 0e44e7d..abdc76f 100644 --- a/SQLiteStudio3/Tests/LexerTest/tst_lexertest.cpp +++ b/SQLiteStudio3/Tests/LexerTest/tst_lexertest.cpp @@ -16,6 +16,7 @@ class LexerTest : public QObject void testHex1(); void testHex2(); void testBindParam1(); + void testBlobLiteral(); }; LexerTest::LexerTest() @@ -89,6 +90,16 @@ void LexerTest::testBindParam1() QVERIFY(bindTokens[4]->value == "@id"); } +void LexerTest::testBlobLiteral() +{ + QString sql = "SELECT X'010f0E'"; + + Lexer lex; + TokenList tokens = lex.tokenize(sql); + QCOMPARE(tokens.size(), 3); + QCOMPARE(tokens[2]->value, "X'010f0E'"); +} + QTEST_APPLESS_MAIN(LexerTest) #include "tst_lexertest.moc" diff --git a/SQLiteStudio3/Tests/ParserTest/tst_parsertest.cpp b/SQLiteStudio3/Tests/ParserTest/tst_parsertest.cpp index 6d537dc..eec1e39 100644 --- a/SQLiteStudio3/Tests/ParserTest/tst_parsertest.cpp +++ b/SQLiteStudio3/Tests/ParserTest/tst_parsertest.cpp @@ -2,7 +2,6 @@ #include "parser/ast/sqliteselect.h" #include "parser/ast/sqlitecreatetable.h" #include "parser/ast/sqliteinsert.h" -#include "parser/ast/sqlitewith.h" #include "parser/ast/sqliteupdate.h" #include "parser/keywords.h" #include "parser/lexer.h" @@ -58,9 +57,17 @@ class ParserTest : public QObject void testGetColumnTokensFromInsertUpsert(); void testGeneratedColumn(); void testWindowClause(); + void testWindowKwAsColumn(); void testFilterClause(); + void testFilterAsId(); void testUpdateFrom(); void testStringAsTableId(); + void testJsonPtrOp(); + void testUnfinishedSelectWithAliasForCompleter(); + void testUnfinishedSelectWithAliasStrict(); + void testBlobLiteral(); + void testBigDec(); + void testQuotedFunction(); }; ParserTest::ParserTest() @@ -559,6 +566,15 @@ void ParserTest::testWindowClause() verifyWindowClause(sql, select, ok); } +void ParserTest::testWindowKwAsColumn() +{ + QString sql = "SELECT window FROM test_table;"; + parser3->setLemonDebug(true); + bool res = parser3->parse(sql); + QVERIFY(res); + QVERIFY(parser3->getErrors().isEmpty()); +} + void ParserTest::verifyWindowClause(const QString& sql, SqliteSelectPtr& select, bool& ok) { bool res = parser3->parse(sql); @@ -646,6 +662,18 @@ void ParserTest::testFilterClause() QVERIFY(resCol->expr->filterOver->over->window->mode == SqliteWindowDefinition::Window::Mode::ORDER_BY); } +void ParserTest::testFilterAsId() +{ + QString sql = "CREATE TABLE aa2 (sdfsdfdf, filter)"; + bool res = parser3->parse(sql); + QVERIFY(res); + QVERIFY(parser3->getErrors().isEmpty()); + + SqliteCreateTablePtr create = parser3->getQueries().first().dynamicCast(); + QCOMPARE(create->columns.size(), 2); + QCOMPARE(create->columns[1]->name, "filter"); +} + void ParserTest::testUpdateFrom() { QString sql = "UPDATE inventory" @@ -674,6 +702,92 @@ void ParserTest::testStringAsTableId() QVERIFY(parser3->getErrors().isEmpty()); } +void ParserTest::testJsonPtrOp() +{ + QString sql = "SELECT '[\"a11\", \"a22\", {\"x\":\"a33\"}]' -> 2," + " '[\"a11\", \"a22\", {\"x\":\"a33\"}]' ->> 2"; + bool res = parser3->parse(sql); + QVERIFY(res); + QVERIFY(parser3->getErrors().isEmpty()); +} + +void ParserTest::testUnfinishedSelectWithAliasForCompleter() +{ + QString sql = "select * from a1 x where x."; + bool res = parser3->parse(sql, true); + QVERIFY(res); + QVERIFY(parser3->getErrors().isEmpty()); +} + +void ParserTest::testUnfinishedSelectWithAliasStrict() +{ + QString sql = "select * from a1 x where x."; + bool res = parser3->parse(sql); + QVERIFY(!res); + QVERIFY(!parser3->getErrors().isEmpty()); +} + +void ParserTest::testBlobLiteral() +{ + QString sql = "insert into tab1 values (X'010e0F', 'string''with''quotes')"; + bool res = parser3->parse(sql); + SqliteQueryPtr query = parser3->getQueries()[0]; + QVERIFY(res); + QVERIFY(parser3->getErrors().isEmpty()); + + SqliteInsertPtr insert = parser3->getQueries().first().dynamicCast(); + SqliteSelect::Core* core = insert->select->coreSelects[0]; + QCOMPARE(core->resultColumns.size(), 2); + + QCOMPARE(core->resultColumns[0]->expr->mode, SqliteExpr::Mode::LITERAL_VALUE); + QCOMPARE(core->resultColumns[0]->expr->literalValue.type(), QVariant::ByteArray); + QCOMPARE(core->resultColumns[0]->expr->literalValue.toByteArray().toHex(), "010e0f"); + QCOMPARE(core->resultColumns[1]->expr->mode, SqliteExpr::Mode::LITERAL_VALUE); + QCOMPARE(core->resultColumns[1]->expr->literalValue.type(), QVariant::String); + QCOMPARE(core->resultColumns[1]->expr->literalValue.toString(), "string''with''quotes"); + + core->resultColumns[0]->expr->rebuildTokens(); + QCOMPARE(core->resultColumns[0]->expr->tokens[0]->value, "X'010e0f'"); +} + +void ParserTest::testBigDec() +{ + QString sql = "select 9999999999999999999 + 9999999999999999999, 9999999999999999999.1 + 9999999999999999999.2, 9999.1 + 9999.2;"; + bool res = parser3->parse(sql); + SqliteQueryPtr query = parser3->getQueries()[0]; + QVERIFY(res); + QVERIFY(parser3->getErrors().isEmpty()); + SqliteSelectPtr select = parser3->getQueries().first().dynamicCast(); + SqliteSelect::Core* core = select->coreSelects[0]; + QCOMPARE(core->resultColumns[0]->expr->expr1->literalValue.type(), QVariant::Double); + QCOMPARE(core->resultColumns[1]->expr->expr1->literalValue.type(), QVariant::Double); + QCOMPARE(core->resultColumns[2]->expr->expr1->literalValue.type(), QVariant::Double); +} + +void ParserTest::testQuotedFunction() +{ + QString sql = "select \"abs\"(1)"; + bool res = parser3->parse(sql); + QVERIFY(res); + QVERIFY(parser3->getQueries().size() > 0); + + SqliteQueryPtr query = parser3->getQueries().first(); + QVERIFY(query); + + SqliteSelectPtr select = query.dynamicCast(); + QVERIFY(select); + QVERIFY(select->coreSelects.size() > 0); + QVERIFY(select->coreSelects.first()->resultColumns.size() > 0); + + SqliteSelect::Core::ResultColumn* rc = select->coreSelects.first()->resultColumns.first(); + SqliteExpr* e = rc->expr; + QVERIFY(e); + + QVERIFY(e->mode == SqliteExpr::Mode::FUNCTION); + QCOMPARE(e->function, "abs"); +} + + void ParserTest::initTestCase() { initKeywords(); diff --git a/SQLiteStudio3/Tests/SelectResolverTest/tst_selectresolvertest.cpp b/SQLiteStudio3/Tests/SelectResolverTest/tst_selectresolvertest.cpp index 78f0b53..bcb142e 100644 --- a/SQLiteStudio3/Tests/SelectResolverTest/tst_selectresolvertest.cpp +++ b/SQLiteStudio3/Tests/SelectResolverTest/tst_selectresolvertest.cpp @@ -29,10 +29,12 @@ class SelectResolverTest : public QObject void testWithCommonTableExpression(); void testWithCte2(); void testWithCte3(); + void testWithCte4(); void testStarWithJoinAndError(); void testTableFunction(); void testSubselect(); void testSubselectWithAlias(); + void testIssue4607(); }; SelectResolverTest::SelectResolverTest() @@ -214,7 +216,7 @@ void SelectResolverTest::testWithCte2() QList coreColumns = columns.first(); QVERIFY(coreColumns.size() == 2); - QCOMPARE(coreColumns[0].type, SelectResolver::Column::COLUMN); + QCOMPARE(coreColumns[0].type, SelectResolver::Column::OTHER); QCOMPARE(coreColumns[0].flags, SelectResolver::FROM_CTE_SELECT); QCOMPARE(coreColumns[0].database, "main"); QVERIFY(coreColumns[0].table.isNull()); @@ -222,7 +224,7 @@ void SelectResolverTest::testWithCte2() QVERIFY(coreColumns[0].alias.isNull()); QCOMPARE(coreColumns[0].displayName, "c1"); - QCOMPARE(coreColumns[1].type, SelectResolver::Column::COLUMN); + QCOMPARE(coreColumns[1].type, SelectResolver::Column::OTHER); QCOMPARE(coreColumns[1].flags, SelectResolver::FROM_CTE_SELECT); QCOMPARE(coreColumns[1].database, "main"); QVERIFY(coreColumns[1].table.isNull()); @@ -242,10 +244,11 @@ void SelectResolverTest::testWithCte3() QList coreColumns = columns.first(); QCOMPARE(coreColumns.size(), 3); - QCOMPARE(coreColumns[0].type, SelectResolver::Column::COLUMN); + QCOMPARE(coreColumns[0].type, SelectResolver::Column::OTHER); QCOMPARE(coreColumns[0].flags, SelectResolver::FROM_CTE_SELECT); QCOMPARE(coreColumns[0].database, "main"); QVERIFY(coreColumns[0].table.isNull()); + QCOMPARE(coreColumns[0].tableAlias, "t"); QCOMPARE(coreColumns[0].column, "x"); QVERIFY(coreColumns[0].alias.isNull()); QCOMPARE(coreColumns[0].displayName, "x"); @@ -254,19 +257,43 @@ void SelectResolverTest::testWithCte3() QCOMPARE(coreColumns[1].flags, SelectResolver::FROM_CTE_SELECT); QCOMPARE(coreColumns[1].database, "main"); QCOMPARE(coreColumns[1].table, "test2"); + QCOMPARE(coreColumns[1].tableAlias, "t"); QCOMPARE(coreColumns[1].column, "y"); QVERIFY(coreColumns[1].alias.isNull()); QCOMPARE(coreColumns[1].displayName, "y"); - QCOMPARE(coreColumns[2].type, SelectResolver::Column::COLUMN); + QCOMPARE(coreColumns[2].type, SelectResolver::Column::OTHER); QCOMPARE(coreColumns[2].flags, SelectResolver::FROM_CTE_SELECT); QCOMPARE(coreColumns[2].database, "main"); QVERIFY(coreColumns[2].table.isNull()); + QCOMPARE(coreColumns[2].tableAlias, "t"); QCOMPARE(coreColumns[2].column, "'z'"); QVERIFY(coreColumns[2].alias.isNull()); QCOMPARE(coreColumns[2].displayName, "'z'"); } +void SelectResolverTest::testWithCte4() +{ + QString sql = "WITH testcte AS (SELECT 3)" + "SELECT * FROM TESTCTE"; + + SelectResolver resolver(db, sql); + Parser parser; + QVERIFY(parser.parse(sql)); + + QList> columns = resolver.resolve(parser.getQueries().first().dynamicCast().data()); + QList coreColumns = columns.first(); + QVERIFY(coreColumns.size() == 1); + + QCOMPARE(coreColumns[0].type, SelectResolver::Column::OTHER); + QCOMPARE(coreColumns[0].flags, SelectResolver::FROM_CTE_SELECT); + QCOMPARE(coreColumns[0].database, "main"); + QVERIFY(coreColumns[0].table.isNull()); + QCOMPARE(coreColumns[0].column, "3"); + QVERIFY(coreColumns[0].alias.isNull()); + QCOMPARE(coreColumns[0].displayName, "3"); +} + void SelectResolverTest::testStarWithJoinAndError() { QString sql = "SELECT t1.*, t2.* FROM test t1 JOIN test2 USING (col1)"; @@ -335,6 +362,48 @@ void SelectResolverTest::testSubselectWithAlias() QVERIFY(coreColumns[2].oldTableAliases.first() == "secm"); } +void SelectResolverTest::testIssue4607() +{ + QString sql = "SELECT Trip.TripID AS [Trip Number]," + " P1.PlaceAlternates AS [Origin Alternates]," + " P2.PlaceAlternates AS [Destination Alternates]," + " Trip.ROWID AS ResCol_0" + " FROM Trip" + " INNER JOIN" + " (" + " SELECT 1 AS PlaceID," + " 2 AS PlaceAlternates" + " )" + " P1 ON Trip.TripID = P1.PlaceID" + " INNER JOIN" + " (" + " SELECT 1 AS PlaceID," + " 2 AS PlaceAlternates" + " GROUP BY PlaceID" + " )" + " P2 ON Trip.TripID = P2.PlaceID"; + + SelectResolver resolver(db, sql); + Parser parser; + QVERIFY(parser.parse(sql)); + + QList > columns = resolver.resolve(parser.getQueries().first().dynamicCast().data()); + QList coreColumns = columns.first(); + QVERIFY(coreColumns.size() == 4); + QVERIFY(coreColumns[0].table == "Trip"); + QVERIFY(coreColumns[0].tableAlias.isNull()); + QVERIFY(coreColumns[0].flags == 0); + QVERIFY(coreColumns[1].table.isNull()); + QVERIFY(coreColumns[1].tableAlias == "P1"); + QVERIFY(coreColumns[1].flags == 0); + QVERIFY(coreColumns[2].table.isNull()); + QVERIFY(coreColumns[2].tableAlias == "P2"); + QVERIFY(coreColumns[2].flags & SelectResolver::FROM_GROUPED_SELECT); + QVERIFY(coreColumns[3].table == "Trip"); + QVERIFY(coreColumns[3].tableAlias.isNull()); + QVERIFY(coreColumns[3].flags == 0); +} + void SelectResolverTest::initTestCase() { initKeywords(); @@ -346,6 +415,7 @@ void SelectResolverTest::initTestCase() db->exec("CREATE TABLE test (col1, col2, col3);"); db->exec("CREATE TABLE org (name TEXT PRIMARY KEY, boss TEXT REFERENCES org, height INT)"); db->exec("CREATE TABLE test2 (col1);"); + db->exec("CREATE TABLE Trip (TripID INTEGER PRIMARY KEY ASC);"); //SqlQueryPtr results = db->exec("SELECT name FROM sqlite_master"); } diff --git a/SQLiteStudio3/Tests/TestUtils/TestUtils.pro b/SQLiteStudio3/Tests/TestUtils/TestUtils.pro index 727fb74..3ea06e6 100644 --- a/SQLiteStudio3/Tests/TestUtils/TestUtils.pro +++ b/SQLiteStudio3/Tests/TestUtils/TestUtils.pro @@ -41,7 +41,7 @@ unix:!symbian { maemo5 { target.path = /opt/usr/lib } else { - target.path = /usr/lib + target.path = $$PREFIX/lib } INSTALLS += target } diff --git a/SQLiteStudio3/Tests/TestUtils/configmock.cpp b/SQLiteStudio3/Tests/TestUtils/configmock.cpp index c52fa1b..f5ce5c5 100644 --- a/SQLiteStudio3/Tests/TestUtils/configmock.cpp +++ b/SQLiteStudio3/Tests/TestUtils/configmock.cpp @@ -4,10 +4,6 @@ void ConfigMock::init() { } -void ConfigMock::cleanUp() -{ -} - const QString& ConfigMock::getConfigDir() { static const QString cfg; @@ -194,16 +190,6 @@ void ConfigMock::rollback() { } -bool ConfigMock::setCollations(const QList&) -{ - return true; -} - -QList ConfigMock::getCollations() const -{ - return QList(); -} - const QString &ConfigMock::getConfigDir() const { static QString s; diff --git a/SQLiteStudio3/Tests/TestUtils/configmock.h b/SQLiteStudio3/Tests/TestUtils/configmock.h index a8a5a2c..620548b 100644 --- a/SQLiteStudio3/Tests/TestUtils/configmock.h +++ b/SQLiteStudio3/Tests/TestUtils/configmock.h @@ -9,7 +9,6 @@ class ConfigMock : public Config { public: void init(); - void cleanUp(); const QString& getConfigDir(); void beginMassSave(); void commitMassSave(); @@ -51,8 +50,6 @@ class ConfigMock : public Config void begin(); void commit(); void rollback(); - bool setCollations(const QList&); - QList getCollations() const; const QString &getConfigDir() const; QString getConfigFilePath() const; bool isMassSaving() const; diff --git a/SQLiteStudio3/Tests/TestUtils/extensionmanagermock.cpp b/SQLiteStudio3/Tests/TestUtils/extensionmanagermock.cpp index dc4669b..d98fc42 100644 --- a/SQLiteStudio3/Tests/TestUtils/extensionmanagermock.cpp +++ b/SQLiteStudio3/Tests/TestUtils/extensionmanagermock.cpp @@ -17,3 +17,8 @@ QList ExtensionManagerMock::getExtensionFo { return QList(); } + +QStringList ExtensionManagerMock::getExtensionDirs() const +{ + return QStringList(); +} diff --git a/SQLiteStudio3/Tests/TestUtils/extensionmanagermock.h b/SQLiteStudio3/Tests/TestUtils/extensionmanagermock.h index 7a7a1f4..37bd634 100644 --- a/SQLiteStudio3/Tests/TestUtils/extensionmanagermock.h +++ b/SQLiteStudio3/Tests/TestUtils/extensionmanagermock.h @@ -12,6 +12,7 @@ class ExtensionManagerMock : public SqliteExtensionManager void setExtensions(const QList&); QList getAllExtensions() const; QList getExtensionForDatabase(const QString&) const; + QStringList getExtensionDirs() const; }; #endif // EXTENSIONMANAGERMOCK_H diff --git a/SQLiteStudio3/Tests/TestUtils/test_common.pri b/SQLiteStudio3/Tests/TestUtils/test_common.pri index 24d1479..4eb550b 100644 --- a/SQLiteStudio3/Tests/TestUtils/test_common.pri +++ b/SQLiteStudio3/Tests/TestUtils/test_common.pri @@ -1,5 +1,5 @@ -include($$PWD/../../dirs.pri) -include($$PWD/../testdirs.pri) +include($$PWD/../../common.pri) +include($$PWD/../testcommon.pri) CONFIG += c++17 diff --git a/SQLiteStudio3/Tests/testcommon.pri b/SQLiteStudio3/Tests/testcommon.pri new file mode 100644 index 0000000..131bd4d --- /dev/null +++ b/SQLiteStudio3/Tests/testcommon.pri @@ -0,0 +1,4 @@ +LIBS += -L$$PWD/../$$OUTPUT_DIR_NAME/SQLiteStudio + +INCLUDEPATH += $$PWD/TestUtils +DEPENDPATH += $$PWD/TestUtils diff --git a/SQLiteStudio3/Tests/testdirs.pri b/SQLiteStudio3/Tests/testdirs.pri deleted file mode 100644 index 131bd4d..0000000 --- a/SQLiteStudio3/Tests/testdirs.pri +++ /dev/null @@ -1,4 +0,0 @@ -LIBS += -L$$PWD/../$$OUTPUT_DIR_NAME/SQLiteStudio - -INCLUDEPATH += $$PWD/TestUtils -DEPENDPATH += $$PWD/TestUtils diff --git a/SQLiteStudio3/common.pri b/SQLiteStudio3/common.pri new file mode 100644 index 0000000..c3155a7 --- /dev/null +++ b/SQLiteStudio3/common.pri @@ -0,0 +1,62 @@ +OUTPUT_DIR_NAME = output +export(OUTPUT_DIR_NAME) + +DESTDIR = $$PWD/../$$OUTPUT_DIR_NAME/SQLiteStudio +OBJECTS_DIR = $$PWD/../$$OUTPUT_DIR_NAME/build +MOC_DIR = $$PWD/../$$OUTPUT_DIR_NAME/build +UI_DIR = $$PWD/../$$OUTPUT_DIR_NAME/build + +LIBS += -L$$DESTDIR + +macx: { + QMAKE_CXXFLAGS += -Wno-gnu-zero-variadic-macro-arguments -Wno-overloaded-virtual + INCLUDEPATH += $$PWD/../../include + LIBS += -L$$PWD/../../lib +} + +win32: { + INCLUDEPATH += $$PWD/../../include + LIBS += -L$$PWD/../../lib +} + +INCLUDEPATH += $$PWD/coreSQLiteStudio +DEPENDPATH += $$PWD/coreSQLiteStudio + +contains(QT, gui): { + INCLUDEPATH += $$PWD/guiSQLiteStudio $$PWD/../$$OUTPUT_DIR_NAME/build/guiSQLiteStudio + DEPENDPATH += $$PWD/guiSQLiteStudio +} + +win32|macx: { + CONFIG += portable +} + +portable { + QMAKE_LFLAGS += -Wl,-rpath,. + linux: { + LIBS += -L$$DESTDIR/lib + } +} + +unix: { + isEmpty(LIBDIR) { + LIBDIR = $$PREFIX/lib + } + export(LIBDIR) + isEmpty(BINDIR) { + BINDIR = $$PREFIX/bin + } + export(BINDIR) +} + +# Enable automatic translation files processing globally +QMAKE_RESOURCE_FLAGS += -name $${TARGET}_${QMAKE_FILE_BASE} +TRANSLATIONS += $$files($$_PRO_FILE_PWD_/translations/*.ts) +defined(TARGET, "var") { + DEFINES += "PROJECT_MODULE_NAME=$${TARGET}" +} +!isEmpty(TRANSLATIONS) { + CONFIG += lrelease embed_translations + QM_FILES_RESOURCE_PREFIX = /msg/translations +} + diff --git a/SQLiteStudio3/coreSQLiteStudio/Info.plist b/SQLiteStudio3/coreSQLiteStudio/Info.plist index 794e404..9b29626 100644 --- a/SQLiteStudio3/coreSQLiteStudio/Info.plist +++ b/SQLiteStudio3/coreSQLiteStudio/Info.plist @@ -46,4 +46,4 @@ - + \ No newline at end of file diff --git a/SQLiteStudio3/coreSQLiteStudio/chillout/LICENSE-chillout b/SQLiteStudio3/coreSQLiteStudio/chillout/LICENSE-chillout new file mode 100644 index 0000000..e0a4e10 --- /dev/null +++ b/SQLiteStudio3/coreSQLiteStudio/chillout/LICENSE-chillout @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 Taras Kushnir + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/SQLiteStudio3/coreSQLiteStudio/chillout/README b/SQLiteStudio3/coreSQLiteStudio/chillout/README new file mode 100644 index 0000000..b01444c --- /dev/null +++ b/SQLiteStudio3/coreSQLiteStudio/chillout/README @@ -0,0 +1,4 @@ +Chillout crash handler +https://gitlab.com/ribtoks/chillout + +This is subset of the original code. Some parts were removed, some were changed to adjust it for compilation with Mingw under Windows and to remove parts unused in SQLiteStudio. \ No newline at end of file diff --git a/SQLiteStudio3/coreSQLiteStudio/chillout/chillout.cpp b/SQLiteStudio3/coreSQLiteStudio/chillout/chillout.cpp new file mode 100644 index 0000000..87f8c79 --- /dev/null +++ b/SQLiteStudio3/coreSQLiteStudio/chillout/chillout.cpp @@ -0,0 +1,47 @@ +#include "chillout.h" + +#ifdef _WIN32 +#include "windows/windowscrashhandler.h" +#else +#include "posix/posixcrashhandler.h" +#endif + +namespace Debug { + void Chillout::init(const string_t &appName, const string_t &pathToDumpsDir) { + if (0 == m_InitCounter.fetch_add(1)) { +#ifdef _WIN32 + WindowsCrashHandler &handler = WindowsCrashHandler::getInstance(); +#else + PosixCrashHandler &handler = PosixCrashHandler::getInstance(); +#endif + handler.setup(appName, pathToDumpsDir); + } + } + + void Chillout::deinit() { +#ifdef _WIN32 + WindowsCrashHandler &handler = WindowsCrashHandler::getInstance(); +#else + PosixCrashHandler &handler = PosixCrashHandler::getInstance(); +#endif + handler.teardown(); + } + + void Chillout::setBacktraceCallback(const std::function &callback) { +#ifdef _WIN32 + WindowsCrashHandler &handler = WindowsCrashHandler::getInstance(); +#else + PosixCrashHandler &handler = PosixCrashHandler::getInstance(); +#endif + handler.setBacktraceCallback(callback); + } + + void Chillout::setCrashCallback(const std::function &callback) { +#ifdef _WIN32 + WindowsCrashHandler &handler = WindowsCrashHandler::getInstance(); +#else + PosixCrashHandler &handler = PosixCrashHandler::getInstance(); +#endif + handler.setCrashCallback(callback); + } +} diff --git a/SQLiteStudio3/coreSQLiteStudio/chillout/chillout.h b/SQLiteStudio3/coreSQLiteStudio/chillout/chillout.h new file mode 100644 index 0000000..2c8000a --- /dev/null +++ b/SQLiteStudio3/coreSQLiteStudio/chillout/chillout.h @@ -0,0 +1,42 @@ +#ifndef CHILLOUT_H +#define CHILLOUT_H + +#include +#include +#include +#include "common/common.h" + +namespace Debug { + class Chillout { + public: + static Chillout& getInstance() + { + static Chillout instance; // Guaranteed to be destroyed. + // Instantiated on first use. + return instance; + } + + public: +#ifdef _WIN32 + typedef std::wstring string_t; +#else + typedef std::string string_t; +#endif + + public: + void init(const string_t &appName, const string_t &pathToDumpsDir); + void deinit(); + void setBacktraceCallback(const std::function &callback); + void setCrashCallback(const std::function &callback); + + private: + Chillout(): m_InitCounter(0) {} + Chillout(Chillout const&); + void operator=(Chillout const&); + + private: + std::atomic_int m_InitCounter; + }; +} + +#endif // CHILLOUT_H diff --git a/SQLiteStudio3/coreSQLiteStudio/chillout/common/common.cpp b/SQLiteStudio3/coreSQLiteStudio/chillout/common/common.cpp new file mode 100644 index 0000000..2f51fc1 --- /dev/null +++ b/SQLiteStudio3/coreSQLiteStudio/chillout/common/common.cpp @@ -0,0 +1,24 @@ +#include "common.h" +#include +#include +#include + +namespace Debug { + tm now() { + time_t now = time(0); + return *localtime(&now); + } + +#ifdef _WIN32 + std::wostream& formatDateTime(std::wostream& out, const tm& t, const wchar_t* fmt) { + const std::time_put& dateWriter = std::use_facet >(out.getloc()); + const size_t n = wcslen(fmt); +#else + std::ostream& formatDateTime(std::ostream& out, const tm& t, const char* fmt) { + const std::time_put& dateWriter = std::use_facet >(out.getloc()); + const size_t n = strlen(fmt); +#endif + dateWriter.put(out, out, ' ', &t, fmt, fmt + n); + return out; + } +} diff --git a/SQLiteStudio3/coreSQLiteStudio/chillout/common/common.h b/SQLiteStudio3/coreSQLiteStudio/chillout/common/common.h new file mode 100644 index 0000000..85b479a --- /dev/null +++ b/SQLiteStudio3/coreSQLiteStudio/chillout/common/common.h @@ -0,0 +1,24 @@ +#ifndef COMMON_H +#define COMMON_H + +#include +#include + +#define CHILLOUT_DATETIME "%Y%m%d_%H%M%S" + +namespace Debug { + tm now(); +#ifdef _WIN32 + std::wostream& formatDateTime(std::wostream& out, const tm& t, const wchar_t *fmt); +#else + std::ostream& formatDateTime(std::ostream& out, const tm& t, const char* fmt); +#endif + + enum CrashDumpSize { + CrashDumpSmall, + CrashDumpNormal, + CrashDumpFull + }; +} + +#endif // COMMON_H diff --git a/SQLiteStudio3/coreSQLiteStudio/chillout/defines.h b/SQLiteStudio3/coreSQLiteStudio/chillout/defines.h new file mode 100644 index 0000000..59f8db8 --- /dev/null +++ b/SQLiteStudio3/coreSQLiteStudio/chillout/defines.h @@ -0,0 +1,16 @@ +#ifndef CHILLOUTDEFINES_H +#define CHILLOUTDEFINES_H + +#define CHILLOUT_EXIT_CODE 3 + +#define STRINGIZE_(x) #x +#define STRINGIZE(x) STRINGIZE_(x) + +#ifdef _WIN32 +#define WIDEN(quote) WIDEN2(quote) +#define WIDEN2(quote) L##quote +#else +#define WIDEN(quote) quote +#endif + +#endif // CHILLOUTDEFINES_H diff --git a/SQLiteStudio3/coreSQLiteStudio/chillout/posix/posixcrashhandler.cpp b/SQLiteStudio3/coreSQLiteStudio/chillout/posix/posixcrashhandler.cpp new file mode 100644 index 0000000..a9e95a6 --- /dev/null +++ b/SQLiteStudio3/coreSQLiteStudio/chillout/posix/posixcrashhandler.cpp @@ -0,0 +1,146 @@ +#include "posixcrashhandler.h" + +#ifndef _WIN32 + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "../defines.h" +#include "../common/common.h" + +#define KILOBYTE 1024 +#define DEMANGLE_MEMORY_SIZE (10*(KILOBYTE)) +#define STACK_MEMORY_SIZE (90*(KILOBYTE)) + +namespace Debug { + struct FreeDeleter { + void operator()(void* ptr) const { + free(ptr); + } + }; + + char *fake_alloc(char **memory, size_t size) { + char *allocated = *memory; + char *last = allocated + size; + *last = '\0'; + *memory += size + 1; + return allocated; + } + + void chilltrace(const char * const stackEntry) { + if (stackEntry) { + fputs(stackEntry,stderr); + } + } + + void posixSignalHandler( int signum, siginfo_t* si, void* ucontext ) { + (void)si; + (void)ucontext; + + auto &handler = PosixCrashHandler::getInstance(); + handler.handleCrash(); + + // If you caught one of the above signals, it is likely you just + // want to quit your program right now. + //exit( signum ); + std::_Exit(CHILLOUT_EXIT_CODE); + } + + PosixCrashHandler::PosixCrashHandler(): + m_stackMemory(nullptr), + m_demangleMemory(nullptr) + { + m_stackMemory = (char*)malloc(STACK_MEMORY_SIZE); + memset(&m_stackMemory[0], 0, STACK_MEMORY_SIZE); + + m_demangleMemory = (char*)malloc(DEMANGLE_MEMORY_SIZE); + memset(&m_demangleMemory[0], 0, DEMANGLE_MEMORY_SIZE); + + m_backtraceCallback = chilltrace; + } + + PosixCrashHandler::~PosixCrashHandler() { + free(m_stackMemory); + free(m_demangleMemory); + } + + void PosixCrashHandler::setup(const std::string &appName, const std::string &crashDirPath) { + struct sigaction sa; + sa.sa_sigaction = posixSignalHandler; + sigemptyset( &sa.sa_mask ); + +#ifdef __APPLE__ + /* for some reason we backtrace() doesn't work on osx + when we use an alternate stack */ + sa.sa_flags = SA_SIGINFO; +#else + sa.sa_flags = SA_SIGINFO | SA_ONSTACK; +#endif + + sigaction( SIGABRT, &sa, NULL ); + sigaction( SIGSEGV, &sa, NULL ); + sigaction( SIGBUS, &sa, NULL ); + sigaction( SIGILL, &sa, NULL ); + sigaction( SIGFPE, &sa, NULL ); + sigaction( SIGPIPE, &sa, NULL ); + sigaction( SIGTERM, &sa, NULL ); + + if (!crashDirPath.empty()) { + std::string path = crashDirPath; + while ((path.size() > 1) && + (path[path.size() - 1] == '/')) { + path.erase(path.size() - 1); + } + + std::stringstream s; + s << path << "/" << appName << "_"; + formatDateTime(s, now(), CHILLOUT_DATETIME); + s << ".bktr"; + m_backtraceFilePath = s.str(); + } + } + + void PosixCrashHandler::teardown() { + struct sigaction sa; + sigset_t mysigset; + + sigemptyset(&mysigset); + + sa.sa_handler = SIG_DFL; + sa.sa_mask = mysigset; + sa.sa_flags = 0; + + sigaction( SIGABRT, &sa, NULL ); + sigaction( SIGSEGV, &sa, NULL ); + sigaction( SIGBUS, &sa, NULL ); + sigaction( SIGILL, &sa, NULL ); + sigaction( SIGFPE, &sa, NULL ); + sigaction( SIGPIPE, &sa, NULL ); + sigaction( SIGTERM, &sa, NULL ); + } + + void PosixCrashHandler::handleCrash() { + if (m_crashCallback) { + m_crashCallback(); + } + } + + void PosixCrashHandler::setCrashCallback(const std::function &callback) { + m_crashCallback = callback; + } + + void PosixCrashHandler::setBacktraceCallback(const std::function &callback) { + m_backtraceCallback = callback; + } +} + +#endif diff --git a/SQLiteStudio3/coreSQLiteStudio/chillout/posix/posixcrashhandler.h b/SQLiteStudio3/coreSQLiteStudio/chillout/posix/posixcrashhandler.h new file mode 100644 index 0000000..f2036a7 --- /dev/null +++ b/SQLiteStudio3/coreSQLiteStudio/chillout/posix/posixcrashhandler.h @@ -0,0 +1,45 @@ +#ifndef POSIXCRASHHANDLER_H +#define POSIXCRASHHANDLER_H + +#ifndef _WIN32 + +#include +#include + +namespace Debug { + class PosixCrashHandler { + public: + static PosixCrashHandler& getInstance() + { + static PosixCrashHandler instance; // Guaranteed to be destroyed. + // Instantiated on first use. + return instance; + } + + private: + PosixCrashHandler(); + ~PosixCrashHandler(); + + public: + void setup(const std::string &appName, const std::string &crashDirPath); + void teardown(); + void handleCrash(); + void setCrashCallback(const std::function &callback); + void setBacktraceCallback(const std::function &callback); + + private: + void walkStackTrace(char *memory, size_t memorySize, int maxFrames=128); + char *dlDemangle(void *addr, char *symbol, int frameIndex, char *stackMemory); + + private: + std::function m_crashCallback; + std::function m_backtraceCallback; + char *m_stackMemory; + char *m_demangleMemory; + std::string m_backtraceFilePath; + }; +} + +#endif // _WIN32 + +#endif // POSIXCRASHHANDLER_H diff --git a/SQLiteStudio3/coreSQLiteStudio/chillout/windows/StackWalker.cpp b/SQLiteStudio3/coreSQLiteStudio/chillout/windows/StackWalker.cpp new file mode 100644 index 0000000..91d6824 --- /dev/null +++ b/SQLiteStudio3/coreSQLiteStudio/chillout/windows/StackWalker.cpp @@ -0,0 +1,1382 @@ +/********************************************************************** + * + * StackWalker.cpp + * http://stackwalker.codeplex.com/ + * + * + * History: + * 2005-07-27 v1 - First public release on http://www.codeproject.com/ + * http://www.codeproject.com/threads/StackWalker.asp + * 2005-07-28 v2 - Changed the params of the constructor and ShowCallstack + * (to simplify the usage) + * 2005-08-01 v3 - Changed to use 'CONTEXT_FULL' instead of CONTEXT_ALL + * (should also be enough) + * - Changed to compile correctly with the PSDK of VC7.0 + * (GetFileVersionInfoSizeA and GetFileVersionInfoA is wrongly defined: + * it uses LPSTR instead of LPCSTR as first paremeter) + * - Added declarations to support VC5/6 without using 'dbghelp.h' + * - Added a 'pUserData' member to the ShowCallstack function and the + * PReadProcessMemoryRoutine declaration (to pass some user-defined data, + * which can be used in the readMemoryFunction-callback) + * 2005-08-02 v4 - OnSymInit now also outputs the OS-Version by default + * - Added example for doing an exception-callstack-walking in main.cpp + * (thanks to owillebo: http://www.codeproject.com/script/profile/whos_who.asp?id=536268) + * 2005-08-05 v5 - Removed most Lint (http://www.gimpel.com/) errors... thanks to Okko Willeboordse! + * 2008-08-04 v6 - Fixed Bug: Missing LEAK-end-tag + * http://www.codeproject.com/KB/applications/leakfinder.aspx?msg=2502890#xx2502890xx + * Fixed Bug: Compiled with "WIN32_LEAN_AND_MEAN" + * http://www.codeproject.com/KB/applications/leakfinder.aspx?msg=1824718#xx1824718xx + * Fixed Bug: Compiling with "/Wall" + * http://www.codeproject.com/KB/threads/StackWalker.aspx?msg=2638243#xx2638243xx + * Fixed Bug: Now checking SymUseSymSrv + * http://www.codeproject.com/KB/threads/StackWalker.aspx?msg=1388979#xx1388979xx + * Fixed Bug: Support for recursive function calls + * http://www.codeproject.com/KB/threads/StackWalker.aspx?msg=1434538#xx1434538xx + * Fixed Bug: Missing FreeLibrary call in "GetModuleListTH32" + * http://www.codeproject.com/KB/threads/StackWalker.aspx?msg=1326923#xx1326923xx + * Fixed Bug: SymDia is number 7, not 9! + * 2008-09-11 v7 For some (undocumented) reason, dbhelp.h is needing a packing of 8! + * Thanks to Teajay which reported the bug... + * http://www.codeproject.com/KB/applications/leakfinder.aspx?msg=2718933#xx2718933xx + * 2008-11-27 v8 Debugging Tools for Windows are now stored in a different directory + * Thanks to Luiz Salamon which reported this "bug"... + * http://www.codeproject.com/KB/threads/StackWalker.aspx?msg=2822736#xx2822736xx + * 2009-04-10 v9 License slihtly corrected ( replaced) + * 2009-11-01 v10 Moved to http://stackwalker.codeplex.com/ + * 2009-11-02 v11 Now try to use IMAGEHLP_MODULE64_V3 if available + * 2010-04-15 v12 Added support for VS2010 RTM + * 2010-05-25 v13 Now using secure MyStrcCpy. Thanks to luke.simon: + * http://www.codeproject.com/KB/applications/leakfinder.aspx?msg=3477467#xx3477467xx + * 2013-01-07 v14 Runtime Check Error VS2010 Debug Builds fixed: + * http://stackwalker.codeplex.com/workitem/10511 + * + * + * LICENSE (http://www.opensource.org/licenses/bsd-license.php) + * + * Copyright (c) 2005-2013, Jochen Kalmbach + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * Neither the name of Jochen Kalmbach nor the names of its contributors may be + * used to endorse or promote products derived from this software without + * specific prior written permission. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + **********************************************************************/ +#ifdef _WIN32 + +#include +#include +#include +#include +#include "StackWalker.h" + +#pragma GCC diagnostic ignored "-Wcast-function-type" +#pragma GCC diagnostic ignored "-Wformat=" + +// If VC7 and later, then use the shipped 'dbghelp.h'-file +#pragma pack(push,8) +#if _MSC_VER >= 1300 +#include +#else +// inline the important dbghelp.h-declarations... +typedef enum { + SymNone = 0, + SymCoff, + SymCv, + SymPdb, + SymExport, + SymDeferred, + SymSym, + SymDia, + SymVirtual, + NumSymTypes +} SYM_TYPE; +typedef struct _IMAGEHLP_LINE64 { + DWORD SizeOfStruct; // set to sizeof(IMAGEHLP_LINE64) + PVOID Key; // internal + DWORD LineNumber; // line number in file + PCHAR FileName; // full filename + DWORD64 Address; // first instruction of line +} IMAGEHLP_LINE64, *PIMAGEHLP_LINE64; +typedef struct _IMAGEHLP_MODULE64 { + DWORD SizeOfStruct; // set to sizeof(IMAGEHLP_MODULE64) + DWORD64 BaseOfImage; // base load address of module + DWORD ImageSize; // virtual size of the loaded module + DWORD TimeDateStamp; // date/time stamp from pe header + DWORD CheckSum; // checksum from the pe header + DWORD NumSyms; // number of symbols in the symbol table + SYM_TYPE SymType; // type of symbols loaded + CHAR ModuleName[32]; // module name + CHAR ImageName[256]; // image name + CHAR LoadedImageName[256]; // symbol file name +} IMAGEHLP_MODULE64, *PIMAGEHLP_MODULE64; +typedef struct _IMAGEHLP_SYMBOL64 { + DWORD SizeOfStruct; // set to sizeof(IMAGEHLP_SYMBOL64) + DWORD64 Address; // virtual address including dll base address + DWORD Size; // estimated size of symbol, can be zero + DWORD Flags; // info about the symbols, see the SYMF defines + DWORD MaxNameLength; // maximum size of symbol name in 'Name' + CHAR Name[1]; // symbol name (null terminated string) +} IMAGEHLP_SYMBOL64, *PIMAGEHLP_SYMBOL64; +typedef enum { + AddrMode1616, + AddrMode1632, + AddrModeReal, + AddrModeFlat +} ADDRESS_MODE; +typedef struct _tagADDRESS64 { + DWORD64 Offset; + WORD Segment; + ADDRESS_MODE Mode; +} ADDRESS64, *LPADDRESS64; +typedef struct _KDHELP64 { + DWORD64 Thread; + DWORD ThCallbackStack; + DWORD ThCallbackBStore; + DWORD NextCallback; + DWORD FramePointer; + DWORD64 KiCallUserMode; + DWORD64 KeUserCallbackDispatcher; + DWORD64 SystemRangeStart; + DWORD64 Reserved[8]; +} KDHELP64, *PKDHELP64; +typedef struct _tagSTACKFRAME64 { + ADDRESS64 AddrPC; // program counter + ADDRESS64 AddrReturn; // return address + ADDRESS64 AddrFrame; // frame pointer + ADDRESS64 AddrStack; // stack pointer + ADDRESS64 AddrBStore; // backing store pointer + PVOID FuncTableEntry; // pointer to pdata/fpo or NULL + DWORD64 Params[4]; // possible arguments to the function + BOOL Far; // WOW far call + BOOL Virtual; // is this a virtual frame? + DWORD64 Reserved[3]; + KDHELP64 KdHelp; +} STACKFRAME64, *LPSTACKFRAME64; +typedef +BOOL +(__stdcall *PREAD_PROCESS_MEMORY_ROUTINE64)( + HANDLE hProcess, + DWORD64 qwBaseAddress, + PVOID lpBuffer, + DWORD nSize, + LPDWORD lpNumberOfBytesRead + ); +typedef +PVOID +(__stdcall *PFUNCTION_TABLE_ACCESS_ROUTINE64)( + HANDLE hProcess, + DWORD64 AddrBase + ); +typedef +DWORD64 +(__stdcall *PGET_MODULE_BASE_ROUTINE64)( + HANDLE hProcess, + DWORD64 Address + ); +typedef +DWORD64 +(__stdcall *PTRANSLATE_ADDRESS_ROUTINE64)( + HANDLE hProcess, + HANDLE hThread, + LPADDRESS64 lpaddr + ); +#define SYMOPT_CASE_INSENSITIVE 0x00000001 +#define SYMOPT_UNDNAME 0x00000002 +#define SYMOPT_DEFERRED_LOADS 0x00000004 +#define SYMOPT_NO_CPP 0x00000008 +#define SYMOPT_LOAD_LINES 0x00000010 +#define SYMOPT_OMAP_FIND_NEAREST 0x00000020 +#define SYMOPT_LOAD_ANYTHING 0x00000040 +#define SYMOPT_IGNORE_CVREC 0x00000080 +#define SYMOPT_NO_UNQUALIFIED_LOADS 0x00000100 +#define SYMOPT_FAIL_CRITICAL_ERRORS 0x00000200 +#define SYMOPT_EXACT_SYMBOLS 0x00000400 +#define SYMOPT_ALLOW_ABSOLUTE_SYMBOLS 0x00000800 +#define SYMOPT_IGNORE_NT_SYMPATH 0x00001000 +#define SYMOPT_INCLUDE_32BIT_MODULES 0x00002000 +#define SYMOPT_PUBLICS_ONLY 0x00004000 +#define SYMOPT_NO_PUBLICS 0x00008000 +#define SYMOPT_AUTO_PUBLICS 0x00010000 +#define SYMOPT_NO_IMAGE_SEARCH 0x00020000 +#define SYMOPT_SECURE 0x00040000 +#define SYMOPT_DEBUG 0x80000000 +#define UNDNAME_COMPLETE (0x0000) // Enable full undecoration +#define UNDNAME_NAME_ONLY (0x1000) // Crack only the name for primary declaration; +#endif // _MSC_VER < 1300 +#pragma pack(pop) + +// Some missing defines (for VC5/6): +#ifndef INVALID_FILE_ATTRIBUTES +#define INVALID_FILE_ATTRIBUTES ((DWORD)-1) +#endif + + +// secure-CRT_functions are only available starting with VC8 +#ifdef _MSC_VER +#if _MSC_VER < 1400 +#define strcpy_s(dst, len, src) strcpy(dst, src) +#define strncpy_s(dst, len, src, maxLen) strncpy(dst, len, src) +#define strcat_s(dst, len, src) strcat(dst, src) +#define _snprintf_s _snprintf +#define _tcscat_s _tcscat +#endif +#endif + +#ifdef __MINGW32__ +#define strcpy_s(dst, len, src) strcpy(dst, src) +#define strncpy_s(dst, len, src, maxLen) strncpy(dst, src, len) +#define strcat_s(dst, len, src) strcat(dst, src) +#define _snprintf_s _snprintf +#endif + +static void MyStrCpy(char* szDest, size_t nMaxDestSize, const char* szSrc) +{ + if (nMaxDestSize <= 0) return; + strncpy_s(szDest, nMaxDestSize, szSrc, _TRUNCATE); + szDest[nMaxDestSize-1] = 0; // INFO: _TRUNCATE will ensure that it is nul-terminated; but with older compilers (<1400) it uses "strncpy" and this does not!) +} // MyStrCpy + +// Normally it should be enough to use 'CONTEXT_FULL' (better would be 'CONTEXT_ALL') +#define USED_CONTEXT_FLAGS CONTEXT_FULL + + +class StackWalkerInternal +{ +public: + StackWalkerInternal(StackWalker *parent, HANDLE hProcess) + { + m_parent = parent; + m_hDbhHelp = NULL; + pSC = NULL; + m_hProcess = hProcess; + m_szSymPath = NULL; + pSFTA = NULL; + pSGLFA = NULL; + pSGMB = NULL; + pSGMI = NULL; + pSGO = NULL; + pSGSFA = NULL; + pSI = NULL; + pSLM = NULL; + pSSO = NULL; + pSW = NULL; + pUDSN = NULL; + pSGSP = NULL; + } + ~StackWalkerInternal() + { + if (pSC != NULL) + pSC(m_hProcess); // SymCleanup + if (m_hDbhHelp != NULL) + FreeLibrary(m_hDbhHelp); + m_hDbhHelp = NULL; + m_parent = NULL; + if(m_szSymPath != NULL) + free(m_szSymPath); + m_szSymPath = NULL; + } + BOOL Init(LPCSTR szSymPath) + { + if (m_parent == NULL) + return FALSE; + // Dynamically load the Entry-Points for dbghelp.dll: + // First try to load the newsest one from + TCHAR szTemp[4096]; + // But before wqe do this, we first check if the ".local" file exists + if (GetModuleFileName(NULL, szTemp, 4096) > 0) + { + _tcscat_s(szTemp, _T(".local")); + if (GetFileAttributes(szTemp) == INVALID_FILE_ATTRIBUTES) + { + // ".local" file does not exist, so we can try to load the dbghelp.dll from the "Debugging Tools for Windows" + // Ok, first try the new path according to the archtitecture: +#ifdef _M_IX86 + if ( (m_hDbhHelp == NULL) && (GetEnvironmentVariable(_T("ProgramFiles"), szTemp, 4096) > 0) ) + { + _tcscat_s(szTemp, _T("\\Debugging Tools for Windows (x86)\\dbghelp.dll")); + // now check if the file exists: + if (GetFileAttributes(szTemp) != INVALID_FILE_ATTRIBUTES) + { + m_hDbhHelp = LoadLibrary(szTemp); + } + } +#elif _M_X64 + if ( (m_hDbhHelp == NULL) && (GetEnvironmentVariable(_T("ProgramFiles"), szTemp, 4096) > 0) ) + { + _tcscat_s(szTemp, _T("\\Debugging Tools for Windows (x64)\\dbghelp.dll")); + // now check if the file exists: + if (GetFileAttributes(szTemp) != INVALID_FILE_ATTRIBUTES) + { + m_hDbhHelp = LoadLibrary(szTemp); + } + } +#elif _M_IA64 + if ( (m_hDbhHelp == NULL) && (GetEnvironmentVariable(_T("ProgramFiles"), szTemp, 4096) > 0) ) + { + _tcscat_s(szTemp, _T("\\Debugging Tools for Windows (ia64)\\dbghelp.dll")); + // now check if the file exists: + if (GetFileAttributes(szTemp) != INVALID_FILE_ATTRIBUTES) + { + m_hDbhHelp = LoadLibrary(szTemp); + } + } +#endif + // If still not found, try the old directories... + if ( (m_hDbhHelp == NULL) && (GetEnvironmentVariable(_T("ProgramFiles"), szTemp, 4096) > 0) ) + { + _tcscat_s(szTemp, _T("\\Debugging Tools for Windows\\dbghelp.dll")); + // now check if the file exists: + if (GetFileAttributes(szTemp) != INVALID_FILE_ATTRIBUTES) + { + m_hDbhHelp = LoadLibrary(szTemp); + } + } +#if defined _M_X64 || defined _M_IA64 + // Still not found? Then try to load the (old) 64-Bit version: + if ( (m_hDbhHelp == NULL) && (GetEnvironmentVariable(_T("ProgramFiles"), szTemp, 4096) > 0) ) + { + _tcscat_s(szTemp, _T("\\Debugging Tools for Windows 64-Bit\\dbghelp.dll")); + if (GetFileAttributes(szTemp) != INVALID_FILE_ATTRIBUTES) + { + m_hDbhHelp = LoadLibrary(szTemp); + } + } +#endif + } + } + if (m_hDbhHelp == NULL) // if not already loaded, try to load a default-one + m_hDbhHelp = LoadLibrary( _T("dbghelp.dll") ); + if (m_hDbhHelp == NULL) + return FALSE; + pSI = (tSI) GetProcAddress(m_hDbhHelp, "SymInitialize" ); + pSC = (tSC) GetProcAddress(m_hDbhHelp, "SymCleanup" ); + + pSW = (tSW) GetProcAddress(m_hDbhHelp, "StackWalk64" ); + pSGO = (tSGO) GetProcAddress(m_hDbhHelp, "SymGetOptions" ); + pSSO = (tSSO) GetProcAddress(m_hDbhHelp, "SymSetOptions" ); + + pSFTA = (tSFTA) GetProcAddress(m_hDbhHelp, "SymFunctionTableAccess64" ); + pSGLFA = (tSGLFA) GetProcAddress(m_hDbhHelp, "SymGetLineFromAddr64" ); + pSGMB = (tSGMB) GetProcAddress(m_hDbhHelp, "SymGetModuleBase64" ); + pSGMI = (tSGMI) GetProcAddress(m_hDbhHelp, "SymGetModuleInfo64" ); + pSGSFA = (tSGSFA) GetProcAddress(m_hDbhHelp, "SymGetSymFromAddr64" ); + pUDSN = (tUDSN) GetProcAddress(m_hDbhHelp, "UnDecorateSymbolName" ); + pSLM = (tSLM) GetProcAddress(m_hDbhHelp, "SymLoadModule64" ); + pSGSP =(tSGSP) GetProcAddress(m_hDbhHelp, "SymGetSearchPath" ); + + if ( pSC == NULL || pSFTA == NULL || pSGMB == NULL || pSGMI == NULL || + pSGO == NULL || pSGSFA == NULL || pSI == NULL || pSSO == NULL || + pSW == NULL || pUDSN == NULL || pSLM == NULL ) + { + FreeLibrary(m_hDbhHelp); + m_hDbhHelp = NULL; + pSC = NULL; + return FALSE; + } + + // SymInitialize + if (szSymPath != NULL) + m_szSymPath = _strdup(szSymPath); + if (this->pSI(m_hProcess, m_szSymPath, FALSE) == FALSE) + this->m_parent->OnDbgHelpErr("SymInitialize", GetLastError(), 0); + + DWORD symOptions = this->pSGO(); // SymGetOptions + symOptions |= SYMOPT_LOAD_LINES; + symOptions |= SYMOPT_FAIL_CRITICAL_ERRORS; + //symOptions |= SYMOPT_NO_PROMPTS; + // SymSetOptions + symOptions = this->pSSO(symOptions); + + char buf[StackWalker::STACKWALK_MAX_NAMELEN] = {0}; + if (this->pSGSP != NULL) + { + if (this->pSGSP(m_hProcess, buf, StackWalker::STACKWALK_MAX_NAMELEN) == FALSE) + this->m_parent->OnDbgHelpErr("SymGetSearchPath", GetLastError(), 0); + } + char szUserName[1024] = {0}; + DWORD dwSize = 1024; + GetUserNameA(szUserName, &dwSize); + this->m_parent->OnSymInit(buf, symOptions, szUserName); + + return TRUE; + } + + StackWalker *m_parent; + + HMODULE m_hDbhHelp; + HANDLE m_hProcess; + LPSTR m_szSymPath; + +#pragma pack(push,8) +struct IMAGEHLP_MODULE64_V3 { + DWORD SizeOfStruct; // set to sizeof(IMAGEHLP_MODULE64) + DWORD64 BaseOfImage; // base load address of module + DWORD ImageSize; // virtual size of the loaded module + DWORD TimeDateStamp; // date/time stamp from pe header + DWORD CheckSum; // checksum from the pe header + DWORD NumSyms; // number of symbols in the symbol table + SYM_TYPE SymType; // type of symbols loaded + CHAR ModuleName[32]; // module name + CHAR ImageName[256]; // image name + CHAR LoadedImageName[256]; // symbol file name + // new elements: 07-Jun-2002 + CHAR LoadedPdbName[256]; // pdb file name + DWORD CVSig; // Signature of the CV record in the debug directories + CHAR CVData[MAX_PATH * 3]; // Contents of the CV record + DWORD PdbSig; // Signature of PDB + GUID PdbSig70; // Signature of PDB (VC 7 and up) + DWORD PdbAge; // DBI age of pdb + BOOL PdbUnmatched; // loaded an unmatched pdb + BOOL DbgUnmatched; // loaded an unmatched dbg + BOOL LineNumbers; // we have line number information + BOOL GlobalSymbols; // we have internal symbol information + BOOL TypeInfo; // we have type information + // new elements: 17-Dec-2003 + BOOL SourceIndexed; // pdb supports source server + BOOL Publics; // contains public symbols +}; + +struct IMAGEHLP_MODULE64_V2 { + DWORD SizeOfStruct; // set to sizeof(IMAGEHLP_MODULE64) + DWORD64 BaseOfImage; // base load address of module + DWORD ImageSize; // virtual size of the loaded module + DWORD TimeDateStamp; // date/time stamp from pe header + DWORD CheckSum; // checksum from the pe header + DWORD NumSyms; // number of symbols in the symbol table + SYM_TYPE SymType; // type of symbols loaded + CHAR ModuleName[32]; // module name + CHAR ImageName[256]; // image name + CHAR LoadedImageName[256]; // symbol file name +}; +#pragma pack(pop) + + + // SymCleanup() + typedef BOOL (__stdcall *tSC)( IN HANDLE hProcess ); + tSC pSC; + + // SymFunctionTableAccess64() + typedef PVOID (__stdcall *tSFTA)( HANDLE hProcess, DWORD64 AddrBase ); + tSFTA pSFTA; + + // SymGetLineFromAddr64() + typedef BOOL (__stdcall *tSGLFA)( IN HANDLE hProcess, IN DWORD64 dwAddr, + OUT PDWORD pdwDisplacement, OUT PIMAGEHLP_LINE64 Line ); + tSGLFA pSGLFA; + + // SymGetModuleBase64() + typedef DWORD64 (__stdcall *tSGMB)( IN HANDLE hProcess, IN DWORD64 dwAddr ); + tSGMB pSGMB; + + // SymGetModuleInfo64() + typedef BOOL (__stdcall *tSGMI)( IN HANDLE hProcess, IN DWORD64 dwAddr, OUT IMAGEHLP_MODULE64_V3 *ModuleInfo ); + tSGMI pSGMI; + + // SymGetOptions() + typedef DWORD (__stdcall *tSGO)( VOID ); + tSGO pSGO; + + // SymGetSymFromAddr64() + typedef BOOL (__stdcall *tSGSFA)( IN HANDLE hProcess, IN DWORD64 dwAddr, + OUT PDWORD64 pdwDisplacement, OUT PIMAGEHLP_SYMBOL64 Symbol ); + tSGSFA pSGSFA; + + // SymInitialize() + typedef BOOL (__stdcall *tSI)( IN HANDLE hProcess, IN PSTR UserSearchPath, IN BOOL fInvadeProcess ); + tSI pSI; + + // SymLoadModule64() + typedef DWORD64 (__stdcall *tSLM)( IN HANDLE hProcess, IN HANDLE hFile, + IN PSTR ImageName, IN PSTR ModuleName, IN DWORD64 BaseOfDll, IN DWORD SizeOfDll ); + tSLM pSLM; + + // SymSetOptions() + typedef DWORD (__stdcall *tSSO)( IN DWORD SymOptions ); + tSSO pSSO; + + // StackWalk64() + typedef BOOL (__stdcall *tSW)( + DWORD MachineType, + HANDLE hProcess, + HANDLE hThread, + LPSTACKFRAME64 StackFrame, + PVOID ContextRecord, + PREAD_PROCESS_MEMORY_ROUTINE64 ReadMemoryRoutine, + PFUNCTION_TABLE_ACCESS_ROUTINE64 FunctionTableAccessRoutine, + PGET_MODULE_BASE_ROUTINE64 GetModuleBaseRoutine, + PTRANSLATE_ADDRESS_ROUTINE64 TranslateAddress ); + tSW pSW; + + // UnDecorateSymbolName() + typedef DWORD (__stdcall WINAPI *tUDSN)( PCSTR DecoratedName, PSTR UnDecoratedName, + DWORD UndecoratedLength, DWORD Flags ); + tUDSN pUDSN; + + typedef BOOL (__stdcall WINAPI *tSGSP)(HANDLE hProcess, PSTR SearchPath, DWORD SearchPathLength); + tSGSP pSGSP; + + +private: + // **************************************** ToolHelp32 ************************ + #define MAX_MODULE_NAME32 255 + #define TH32CS_SNAPMODULE 0x00000008 + #pragma pack( push, 8 ) + typedef struct tagMODULEENTRY32 + { + DWORD dwSize; + DWORD th32ModuleID; // This module + DWORD th32ProcessID; // owning process + DWORD GlblcntUsage; // Global usage count on the module + DWORD ProccntUsage; // Module usage count in th32ProcessID's context + BYTE * modBaseAddr; // Base address of module in th32ProcessID's context + DWORD modBaseSize; // Size in bytes of module starting at modBaseAddr + HMODULE hModule; // The hModule of this module in th32ProcessID's context + char szModule[MAX_MODULE_NAME32 + 1]; + char szExePath[MAX_PATH]; + } MODULEENTRY32; + typedef MODULEENTRY32 * PMODULEENTRY32; + typedef MODULEENTRY32 * LPMODULEENTRY32; + #pragma pack( pop ) + + BOOL GetModuleListTH32(HANDLE hProcess, DWORD pid) + { + // CreateToolhelp32Snapshot() + typedef HANDLE (__stdcall *tCT32S)(DWORD dwFlags, DWORD th32ProcessID); + // Module32First() + typedef BOOL (__stdcall *tM32F)(HANDLE hSnapshot, LPMODULEENTRY32 lpme); + // Module32Next() + typedef BOOL (__stdcall *tM32N)(HANDLE hSnapshot, LPMODULEENTRY32 lpme); + + // try both dlls... + const TCHAR *dllname[] = { _T("kernel32.dll"), _T("tlhelp32.dll") }; + HINSTANCE hToolhelp = NULL; + tCT32S pCT32S = NULL; + tM32F pM32F = NULL; + tM32N pM32N = NULL; + + HANDLE hSnap; + MODULEENTRY32 me; + me.dwSize = sizeof(me); + BOOL keepGoing; + size_t i; + + for (i = 0; i<(sizeof(dllname) / sizeof(dllname[0])); i++ ) + { + hToolhelp = LoadLibrary( dllname[i] ); + if (hToolhelp == NULL) + continue; + pCT32S = (tCT32S) GetProcAddress(hToolhelp, "CreateToolhelp32Snapshot"); + pM32F = (tM32F) GetProcAddress(hToolhelp, "Module32First"); + pM32N = (tM32N) GetProcAddress(hToolhelp, "Module32Next"); + if ( (pCT32S != NULL) && (pM32F != NULL) && (pM32N != NULL) ) + break; // found the functions! + FreeLibrary(hToolhelp); + hToolhelp = NULL; + } + + if (hToolhelp == NULL) + return FALSE; + + hSnap = pCT32S( TH32CS_SNAPMODULE, pid ); + if (hSnap == (HANDLE) -1) + { + FreeLibrary(hToolhelp); + return FALSE; + } + + keepGoing = !!pM32F( hSnap, &me ); + int cnt = 0; + while (keepGoing) + { + this->LoadModule(hProcess, me.szExePath, me.szModule, (DWORD64) me.modBaseAddr, me.modBaseSize); + cnt++; + keepGoing = !!pM32N( hSnap, &me ); + } + CloseHandle(hSnap); + FreeLibrary(hToolhelp); + if (cnt <= 0) + return FALSE; + return TRUE; + } // GetModuleListTH32 + + // **************************************** PSAPI ************************ + typedef struct _MODULEINFO { + LPVOID lpBaseOfDll; + DWORD SizeOfImage; + LPVOID EntryPoint; + } MODULEINFO, *LPMODULEINFO; + + BOOL GetModuleListPSAPI(HANDLE hProcess) + { + // EnumProcessModules() + typedef BOOL (__stdcall *tEPM)(HANDLE hProcess, HMODULE *lphModule, DWORD cb, LPDWORD lpcbNeeded ); + // GetModuleFileNameEx() + typedef DWORD (__stdcall *tGMFNE)(HANDLE hProcess, HMODULE hModule, LPSTR lpFilename, DWORD nSize ); + // GetModuleBaseName() + typedef DWORD (__stdcall *tGMBN)(HANDLE hProcess, HMODULE hModule, LPSTR lpFilename, DWORD nSize ); + // GetModuleInformation() + typedef BOOL (__stdcall *tGMI)(HANDLE hProcess, HMODULE hModule, LPMODULEINFO pmi, DWORD nSize ); + + HINSTANCE hPsapi; + tEPM pEPM; + tGMFNE pGMFNE; + tGMBN pGMBN; + tGMI pGMI; + + DWORD i; + //ModuleEntry e; + DWORD cbNeeded; + MODULEINFO mi; + HMODULE *hMods = 0; + char *tt = NULL; + char *tt2 = NULL; + const SIZE_T TTBUFLEN = 8096; + int cnt = 0; + + hPsapi = LoadLibrary( _T("psapi.dll") ); + if (hPsapi == NULL) + return FALSE; + + pEPM = (tEPM) GetProcAddress( hPsapi, "EnumProcessModules" ); + pGMFNE = (tGMFNE) GetProcAddress( hPsapi, "GetModuleFileNameExA" ); + pGMBN = (tGMFNE) GetProcAddress( hPsapi, "GetModuleBaseNameA" ); + pGMI = (tGMI) GetProcAddress( hPsapi, "GetModuleInformation" ); + if ( (pEPM == NULL) || (pGMFNE == NULL) || (pGMBN == NULL) || (pGMI == NULL) ) + { + // we couldn´t find all functions + FreeLibrary(hPsapi); + return FALSE; + } + + hMods = (HMODULE*) malloc(sizeof(HMODULE) * (TTBUFLEN / sizeof(HMODULE))); + tt = (char*) malloc(sizeof(char) * TTBUFLEN); + tt2 = (char*) malloc(sizeof(char) * TTBUFLEN); + if ( (hMods == NULL) || (tt == NULL) || (tt2 == NULL) ) + goto cleanup; + + if ( ! pEPM( hProcess, hMods, TTBUFLEN, &cbNeeded ) ) + { + //_ftprintf(fLogFile, _T("%lu: EPM failed, GetLastError = %lu\n"), g_dwShowCount, gle ); + goto cleanup; + } + + if ( cbNeeded > TTBUFLEN ) + { + //_ftprintf(fLogFile, _T("%lu: More than %lu module handles. Huh?\n"), g_dwShowCount, lenof( hMods ) ); + goto cleanup; + } + + for ( i = 0; i < cbNeeded / sizeof(hMods[0]); i++ ) + { + // base address, size + pGMI(hProcess, hMods[i], &mi, sizeof(mi)); + // image file name + tt[0] = 0; + pGMFNE(hProcess, hMods[i], tt, TTBUFLEN ); + // module name + tt2[0] = 0; + pGMBN(hProcess, hMods[i], tt2, TTBUFLEN ); + + DWORD dwRes = this->LoadModule(hProcess, tt, tt2, (DWORD64) mi.lpBaseOfDll, mi.SizeOfImage); + if (dwRes != ERROR_SUCCESS) + this->m_parent->OnDbgHelpErr("LoadModule", dwRes, 0); + cnt++; + } + + cleanup: + if (hPsapi != NULL) FreeLibrary(hPsapi); + if (tt2 != NULL) free(tt2); + if (tt != NULL) free(tt); + if (hMods != NULL) free(hMods); + + return cnt != 0; + } // GetModuleListPSAPI + + DWORD LoadModule(HANDLE hProcess, LPCSTR img, LPCSTR mod, DWORD64 baseAddr, DWORD size) + { + CHAR *szImg = _strdup(img); + CHAR *szMod = _strdup(mod); + DWORD result = ERROR_SUCCESS; + if ( (szImg == NULL) || (szMod == NULL) ) + result = ERROR_NOT_ENOUGH_MEMORY; + else + { + if (pSLM(hProcess, 0, szImg, szMod, baseAddr, size) == 0) + result = GetLastError(); + } + ULONGLONG fileVersion = 0; + if ( (m_parent != NULL) && (szImg != NULL) ) + { + // try to retrive the file-version: + if ( (this->m_parent->m_options & StackWalker::RetrieveFileVersion) != 0) + { + VS_FIXEDFILEINFO *fInfo = NULL; + DWORD dwHandle; + DWORD dwSize = GetFileVersionInfoSizeA(szImg, &dwHandle); + if (dwSize > 0) + { + LPVOID vData = malloc(dwSize); + if (vData != NULL) + { + if (GetFileVersionInfoA(szImg, dwHandle, dwSize, vData) != 0) + { + UINT len; + TCHAR szSubBlock[] = _T("\\"); + if (VerQueryValue(vData, szSubBlock, (LPVOID*) &fInfo, &len) == 0) + fInfo = NULL; + else + { + fileVersion = ((ULONGLONG)fInfo->dwFileVersionLS) + ((ULONGLONG)fInfo->dwFileVersionMS << 32); + } + } + free(vData); + } + } + } + + // Retrive some additional-infos about the module + IMAGEHLP_MODULE64_V3 Module; + const char *szSymType = "-unknown-"; + if (this->GetModuleInfo(hProcess, baseAddr, &Module) != FALSE) + { + switch(Module.SymType) + { + case SymNone: + szSymType = "-nosymbols-"; + break; + case SymCoff: // 1 + szSymType = "COFF"; + break; + case SymCv: // 2 + szSymType = "CV"; + break; + case SymPdb: // 3 + szSymType = "PDB"; + break; + case SymExport: // 4 + szSymType = "-exported-"; + break; + case SymDeferred: // 5 + szSymType = "-deferred-"; + break; + case SymSym: // 6 + szSymType = "SYM"; + break; + case 7: // SymDia: + szSymType = "DIA"; + break; + case 8: //SymVirtual: + szSymType = "Virtual"; + break; + default: + break; + } + } + LPCSTR pdbName = Module.LoadedImageName; + if (Module.LoadedPdbName[0] != 0) + pdbName = Module.LoadedPdbName; + this->m_parent->OnLoadModule(img, mod, baseAddr, size, result, szSymType, pdbName, fileVersion); + } + if (szImg != NULL) free(szImg); + if (szMod != NULL) free(szMod); + return result; + } +public: + BOOL LoadModules(HANDLE hProcess, DWORD dwProcessId) + { + // first try toolhelp32 + if (GetModuleListTH32(hProcess, dwProcessId)) + return true; + // then try psapi + return GetModuleListPSAPI(hProcess); + } + + + BOOL GetModuleInfo(HANDLE hProcess, DWORD64 baseAddr, IMAGEHLP_MODULE64_V3 *pModuleInfo) + { + memset(pModuleInfo, 0, sizeof(IMAGEHLP_MODULE64_V3)); + if(this->pSGMI == NULL) + { + SetLastError(ERROR_DLL_INIT_FAILED); + return FALSE; + } + // First try to use the larger ModuleInfo-Structure + pModuleInfo->SizeOfStruct = sizeof(IMAGEHLP_MODULE64_V3); + void *pData = malloc(4096); // reserve enough memory, so the bug in v6.3.5.1 does not lead to memory-overwrites... + if (pData == NULL) + { + SetLastError(ERROR_NOT_ENOUGH_MEMORY); + return FALSE; + } + memcpy(pData, pModuleInfo, sizeof(IMAGEHLP_MODULE64_V3)); + static bool s_useV3Version = true; + if (s_useV3Version) + { + if (this->pSGMI(hProcess, baseAddr, (IMAGEHLP_MODULE64_V3*) pData) != FALSE) + { + // only copy as much memory as is reserved... + memcpy(pModuleInfo, pData, sizeof(IMAGEHLP_MODULE64_V3)); + pModuleInfo->SizeOfStruct = sizeof(IMAGEHLP_MODULE64_V3); + free(pData); + return TRUE; + } + s_useV3Version = false; // to prevent unneccessarry calls with the larger struct... + } + + // could not retrive the bigger structure, try with the smaller one (as defined in VC7.1)... + pModuleInfo->SizeOfStruct = sizeof(IMAGEHLP_MODULE64_V2); + memcpy(pData, pModuleInfo, sizeof(IMAGEHLP_MODULE64_V2)); + if (this->pSGMI(hProcess, baseAddr, (IMAGEHLP_MODULE64_V3*) pData) != FALSE) + { + // only copy as much memory as is reserved... + memcpy(pModuleInfo, pData, sizeof(IMAGEHLP_MODULE64_V2)); + pModuleInfo->SizeOfStruct = sizeof(IMAGEHLP_MODULE64_V2); + free(pData); + return TRUE; + } + free(pData); + SetLastError(ERROR_DLL_INIT_FAILED); + return FALSE; + } +}; + +// ############################################################# +StackWalker::StackWalker(DWORD dwProcessId, HANDLE hProcess) +{ + this->m_options = OptionsAll; + this->m_modulesLoaded = FALSE; + this->m_hProcess = hProcess; + this->m_sw = new StackWalkerInternal(this, this->m_hProcess); + this->m_dwProcessId = dwProcessId; + this->m_szSymPath = NULL; + this->m_MaxRecursionCount = 1000; +} +StackWalker::StackWalker(int options, LPCSTR szSymPath, DWORD dwProcessId, HANDLE hProcess) +{ + this->m_options = options; + this->m_modulesLoaded = FALSE; + this->m_hProcess = hProcess; + this->m_sw = new StackWalkerInternal(this, this->m_hProcess); + this->m_dwProcessId = dwProcessId; + if (szSymPath != NULL) + { + this->m_szSymPath = _strdup(szSymPath); + this->m_options |= SymBuildPath; + } + else + this->m_szSymPath = NULL; + this->m_MaxRecursionCount = 1000; +} + +StackWalker::~StackWalker() +{ + if (m_szSymPath != NULL) + free(m_szSymPath); + m_szSymPath = NULL; + if (this->m_sw != NULL) + delete this->m_sw; + this->m_sw = NULL; +} + +BOOL StackWalker::LoadModules() +{ + if (this->m_sw == NULL) + { + SetLastError(ERROR_DLL_INIT_FAILED); + return FALSE; + } + if (m_modulesLoaded != FALSE) + return TRUE; + + // Build the sym-path: + char *szSymPath = NULL; + if ( (this->m_options & SymBuildPath) != 0) + { + const size_t nSymPathLen = 4096; + szSymPath = (char*) malloc(nSymPathLen); + if (szSymPath == NULL) + { + SetLastError(ERROR_NOT_ENOUGH_MEMORY); + return FALSE; + } + szSymPath[0] = 0; + // Now first add the (optional) provided sympath: + if (this->m_szSymPath != NULL) + { + strcat_s(szSymPath, nSymPathLen, this->m_szSymPath); + strcat_s(szSymPath, nSymPathLen, ";"); + } + + strcat_s(szSymPath, nSymPathLen, ".;"); + + const size_t nTempLen = 1024; + char szTemp[nTempLen]; + // Now add the current directory: + if (GetCurrentDirectoryA(nTempLen, szTemp) > 0) + { + szTemp[nTempLen-1] = 0; + strcat_s(szSymPath, nSymPathLen, szTemp); + strcat_s(szSymPath, nSymPathLen, ";"); + } + + // Now add the path for the main-module: + if (GetModuleFileNameA(NULL, szTemp, nTempLen) > 0) + { + szTemp[nTempLen-1] = 0; + for (char *p = (szTemp+strlen(szTemp)-1); p >= szTemp; --p) + { + // locate the rightmost path separator + if ( (*p == '\\') || (*p == '/') || (*p == ':') ) + { + *p = 0; + break; + } + } // for (search for path separator...) + if (strlen(szTemp) > 0) + { + strcat_s(szSymPath, nSymPathLen, szTemp); + strcat_s(szSymPath, nSymPathLen, ";"); + } + } + if (GetEnvironmentVariableA("_NT_SYMBOL_PATH", szTemp, nTempLen) > 0) + { + szTemp[nTempLen-1] = 0; + strcat_s(szSymPath, nSymPathLen, szTemp); + strcat_s(szSymPath, nSymPathLen, ";"); + } + if (GetEnvironmentVariableA("_NT_ALTERNATE_SYMBOL_PATH", szTemp, nTempLen) > 0) + { + szTemp[nTempLen-1] = 0; + strcat_s(szSymPath, nSymPathLen, szTemp); + strcat_s(szSymPath, nSymPathLen, ";"); + } + if (GetEnvironmentVariableA("SYSTEMROOT", szTemp, nTempLen) > 0) + { + szTemp[nTempLen-1] = 0; + strcat_s(szSymPath, nSymPathLen, szTemp); + strcat_s(szSymPath, nSymPathLen, ";"); + // also add the "system32"-directory: + strcat_s(szTemp, nTempLen, "\\system32"); + strcat_s(szSymPath, nSymPathLen, szTemp); + strcat_s(szSymPath, nSymPathLen, ";"); + } + + if ( (this->m_options & SymUseSymSrv) != 0) + { + if (GetEnvironmentVariableA("SYSTEMDRIVE", szTemp, nTempLen) > 0) + { + szTemp[nTempLen-1] = 0; + strcat_s(szSymPath, nSymPathLen, "SRV*"); + strcat_s(szSymPath, nSymPathLen, szTemp); + strcat_s(szSymPath, nSymPathLen, "\\websymbols"); + strcat_s(szSymPath, nSymPathLen, "*http://msdl.microsoft.com/download/symbols;"); + } + else + strcat_s(szSymPath, nSymPathLen, "SRV*c:\\websymbols*http://msdl.microsoft.com/download/symbols;"); + } + } // if SymBuildPath + + // First Init the whole stuff... + BOOL bRet = this->m_sw->Init(szSymPath); + if (szSymPath != NULL) + free(szSymPath); + + szSymPath = NULL; + if (bRet == FALSE) + { + this->OnDbgHelpErr("Error while initializing dbghelp.dll", 0, 0); + SetLastError(ERROR_DLL_INIT_FAILED); + return FALSE; + } + + bRet = this->m_sw->LoadModules(this->m_hProcess, this->m_dwProcessId); + if (bRet != FALSE) + m_modulesLoaded = TRUE; + return bRet; +} + + +// The following is used to pass the "userData"-Pointer to the user-provided readMemoryFunction +// This has to be done due to a problem with the "hProcess"-parameter in x64... +// Because this class is in no case multi-threading-enabled (because of the limitations +// of dbghelp.dll) it is "safe" to use a static-variable +static StackWalker::PReadProcessMemoryRoutine s_readMemoryFunction = NULL; +static LPVOID s_readMemoryFunction_UserData = NULL; + +BOOL StackWalker::ShowCallstack(HANDLE hThread, const CONTEXT *context, PReadProcessMemoryRoutine readMemoryFunction, LPVOID pUserData) +{ + CONTEXT c; + CallstackEntry csEntry; + IMAGEHLP_SYMBOL64 *pSym = NULL; + StackWalkerInternal::IMAGEHLP_MODULE64_V3 Module; + IMAGEHLP_LINE64 Line; + int frameNum; + bool bLastEntryCalled = true; + int curRecursionCount = 0; + + if (m_modulesLoaded == FALSE) + this->LoadModules(); // ignore the result... + + if (this->m_sw->m_hDbhHelp == NULL) + { + SetLastError(ERROR_DLL_INIT_FAILED); + return FALSE; + } + + s_readMemoryFunction = readMemoryFunction; + s_readMemoryFunction_UserData = pUserData; + + if (context == NULL) + { + // If no context is provided, capture the context + // See: https://stackwalker.codeplex.com/discussions/446958 +#if _WIN32_WINNT <= 0x0501 + // If we need to support XP, we need to use the "old way", because "GetThreadId" is not available! + if (hThread == GetCurrentThread()) +#else + if (GetThreadId(hThread) == GetCurrentThreadId()) +#endif + { + GET_CURRENT_CONTEXT_STACKWALKER_CODEPLEX(c, USED_CONTEXT_FLAGS); + } + else + { + SuspendThread(hThread); + memset(&c, 0, sizeof(CONTEXT)); + c.ContextFlags = USED_CONTEXT_FLAGS; + + // TODO: Detect if you want to get a thread context of a different process, which is running a different processor architecture... + // This does only work if we are x64 and the target process is x64 or x86; + // It cannnot work, if this process is x64 and the target process is x64... this is not supported... + // See also: http://www.howzatt.demon.co.uk/articles/DebuggingInWin64.html + if (GetThreadContext(hThread, &c) == FALSE) + { + ResumeThread(hThread); + return FALSE; + } + } + } + else + c = *context; + + // init STACKFRAME for first call + STACKFRAME64 s; // in/out stackframe + memset(&s, 0, sizeof(s)); + DWORD imageType; +#ifdef _M_IX86 + // normally, call ImageNtHeader() and use machine info from PE header + imageType = IMAGE_FILE_MACHINE_I386; + s.AddrPC.Offset = c.Eip; + s.AddrPC.Mode = AddrModeFlat; + s.AddrFrame.Offset = c.Ebp; + s.AddrFrame.Mode = AddrModeFlat; + s.AddrStack.Offset = c.Esp; + s.AddrStack.Mode = AddrModeFlat; +#elif _M_X64 + imageType = IMAGE_FILE_MACHINE_AMD64; + s.AddrPC.Offset = c.Rip; + s.AddrPC.Mode = AddrModeFlat; + s.AddrFrame.Offset = c.Rsp; + s.AddrFrame.Mode = AddrModeFlat; + s.AddrStack.Offset = c.Rsp; + s.AddrStack.Mode = AddrModeFlat; +#elif _M_IA64 + imageType = IMAGE_FILE_MACHINE_IA64; + s.AddrPC.Offset = c.StIIP; + s.AddrPC.Mode = AddrModeFlat; + s.AddrFrame.Offset = c.IntSp; + s.AddrFrame.Mode = AddrModeFlat; + s.AddrBStore.Offset = c.RsBSP; + s.AddrBStore.Mode = AddrModeFlat; + s.AddrStack.Offset = c.IntSp; + s.AddrStack.Mode = AddrModeFlat; +#else +#error "Platform not supported!" +#endif + + pSym = (IMAGEHLP_SYMBOL64 *) malloc(sizeof(IMAGEHLP_SYMBOL64) + STACKWALK_MAX_NAMELEN); + if (!pSym) goto cleanup; // not enough memory... + memset(pSym, 0, sizeof(IMAGEHLP_SYMBOL64) + STACKWALK_MAX_NAMELEN); + pSym->SizeOfStruct = sizeof(IMAGEHLP_SYMBOL64); + pSym->MaxNameLength = STACKWALK_MAX_NAMELEN; + + memset(&Line, 0, sizeof(Line)); + Line.SizeOfStruct = sizeof(Line); + + memset(&Module, 0, sizeof(Module)); + Module.SizeOfStruct = sizeof(Module); + + for (frameNum = 0; ; ++frameNum ) + { + // get next stack frame (StackWalk64(), SymFunctionTableAccess64(), SymGetModuleBase64()) + // if this returns ERROR_INVALID_ADDRESS (487) or ERROR_NOACCESS (998), you can + // assume that either you are done, or that the stack is so hosed that the next + // deeper frame could not be found. + // CONTEXT need not to be suplied if imageTyp is IMAGE_FILE_MACHINE_I386! + if ( ! this->m_sw->pSW(imageType, this->m_hProcess, hThread, &s, &c, myReadProcMem, this->m_sw->pSFTA, this->m_sw->pSGMB, NULL) ) + { + // INFO: "StackWalk64" does not set "GetLastError"... + this->OnDbgHelpErr("StackWalk64", 0, s.AddrPC.Offset); + break; + } + + csEntry.offset = s.AddrPC.Offset; + csEntry.name[0] = 0; + csEntry.undName[0] = 0; + csEntry.undFullName[0] = 0; + csEntry.offsetFromSmybol = 0; + csEntry.offsetFromLine = 0; + csEntry.lineFileName[0] = 0; + csEntry.lineNumber = 0; + csEntry.loadedImageName[0] = 0; + csEntry.moduleName[0] = 0; + if (s.AddrPC.Offset == s.AddrReturn.Offset) + { + if ( (this->m_MaxRecursionCount > 0) && (curRecursionCount > m_MaxRecursionCount) ) + { + this->OnDbgHelpErr("StackWalk64-Endless-Callstack!", 0, s.AddrPC.Offset); + break; + } + curRecursionCount++; + } + else + curRecursionCount = 0; + if (s.AddrPC.Offset != 0) + { + // we seem to have a valid PC + // show procedure info (SymGetSymFromAddr64()) + if (this->m_sw->pSGSFA(this->m_hProcess, s.AddrPC.Offset, &(csEntry.offsetFromSmybol), pSym) != FALSE) + { + MyStrCpy(csEntry.name, STACKWALK_MAX_NAMELEN, pSym->Name); + // UnDecorateSymbolName() + this->m_sw->pUDSN( pSym->Name, csEntry.undName, STACKWALK_MAX_NAMELEN, UNDNAME_NAME_ONLY ); + this->m_sw->pUDSN( pSym->Name, csEntry.undFullName, STACKWALK_MAX_NAMELEN, UNDNAME_COMPLETE ); + } + else + { + this->OnDbgHelpErr("SymGetSymFromAddr64", GetLastError(), s.AddrPC.Offset); + } + + // show line number info, NT5.0-method (SymGetLineFromAddr64()) + if (this->m_sw->pSGLFA != NULL ) + { // yes, we have SymGetLineFromAddr64() + if (this->m_sw->pSGLFA(this->m_hProcess, s.AddrPC.Offset, &(csEntry.offsetFromLine), &Line) != FALSE) + { + csEntry.lineNumber = Line.LineNumber; + MyStrCpy(csEntry.lineFileName, STACKWALK_MAX_NAMELEN, Line.FileName); + } + else + { + this->OnDbgHelpErr("SymGetLineFromAddr64", GetLastError(), s.AddrPC.Offset); + } + } // yes, we have SymGetLineFromAddr64() + + // show module info (SymGetModuleInfo64()) + if (this->m_sw->GetModuleInfo(this->m_hProcess, s.AddrPC.Offset, &Module ) != FALSE) + { // got module info OK + switch ( Module.SymType ) + { + case SymNone: + csEntry.symTypeString = "-nosymbols-"; + break; + case SymCoff: + csEntry.symTypeString = "COFF"; + break; + case SymCv: + csEntry.symTypeString = "CV"; + break; + case SymPdb: + csEntry.symTypeString = "PDB"; + break; + case SymExport: + csEntry.symTypeString = "-exported-"; + break; + case SymDeferred: + csEntry.symTypeString = "-deferred-"; + break; + case SymSym: + csEntry.symTypeString = "SYM"; + break; +#if API_VERSION_NUMBER >= 9 + case SymDia: + csEntry.symTypeString = "DIA"; + break; +#endif + case 8: //SymVirtual: + csEntry.symTypeString = "Virtual"; + break; + default: + //_snprintf( ty, sizeof(ty), "symtype=%ld", (long) Module.SymType ); + csEntry.symTypeString = NULL; + break; + } + + MyStrCpy(csEntry.moduleName, STACKWALK_MAX_NAMELEN, Module.ModuleName); + csEntry.baseOfImage = Module.BaseOfImage; + MyStrCpy(csEntry.loadedImageName, STACKWALK_MAX_NAMELEN, Module.LoadedImageName); + } // got module info OK + else + { + this->OnDbgHelpErr("SymGetModuleInfo64", GetLastError(), s.AddrPC.Offset); + } + } // we seem to have a valid PC + + CallstackEntryType et = nextEntry; + if (frameNum == 0) + et = firstEntry; + bLastEntryCalled = false; + this->OnCallstackEntry(et, csEntry); + + if (s.AddrReturn.Offset == 0) + { + bLastEntryCalled = true; + this->OnCallstackEntry(lastEntry, csEntry); + SetLastError(ERROR_SUCCESS); + break; + } + } // for ( frameNum ) + + cleanup: + if (pSym) free( pSym ); + + if (bLastEntryCalled == false) + this->OnCallstackEntry(lastEntry, csEntry); + + if (context == NULL) + ResumeThread(hThread); + + return TRUE; +} + +BOOL __stdcall StackWalker::myReadProcMem( + HANDLE hProcess, + DWORD64 qwBaseAddress, + PVOID lpBuffer, + DWORD nSize, + LPDWORD lpNumberOfBytesRead + ) +{ + if (s_readMemoryFunction == NULL) + { + SIZE_T st; + BOOL bRet = ReadProcessMemory(hProcess, (LPVOID) qwBaseAddress, lpBuffer, nSize, &st); + *lpNumberOfBytesRead = (DWORD) st; + //printf("ReadMemory: hProcess: %p, baseAddr: %p, buffer: %p, size: %d, read: %d, result: %d\n", hProcess, (LPVOID) qwBaseAddress, lpBuffer, nSize, (DWORD) st, (DWORD) bRet); + return bRet; + } + else + { + return s_readMemoryFunction(hProcess, qwBaseAddress, lpBuffer, nSize, lpNumberOfBytesRead, s_readMemoryFunction_UserData); + } +} + +void StackWalker::OnLoadModule(LPCSTR img, LPCSTR mod, DWORD64 baseAddr, DWORD size, DWORD result, LPCSTR symType, LPCSTR pdbName, ULONGLONG fileVersion) +{ + CHAR buffer[STACKWALK_MAX_NAMELEN]; + if (fileVersion == 0) + _snprintf_s(buffer, STACKWALK_MAX_NAMELEN, "%s:%s (%p), size: %d (result: %d), SymType: '%s', PDB: '%s'\n", img, mod, (LPVOID) baseAddr, size, result, symType, pdbName); + else + { + DWORD v4 = (DWORD) (fileVersion & 0xFFFF); + DWORD v3 = (DWORD) ((fileVersion>>16) & 0xFFFF); + DWORD v2 = (DWORD) ((fileVersion>>32) & 0xFFFF); + DWORD v1 = (DWORD) ((fileVersion>>48) & 0xFFFF); + _snprintf_s(buffer, STACKWALK_MAX_NAMELEN, "%s:%s (%p), size: %d (result: %d), SymType: '%s', PDB: '%s', fileVersion: %d.%d.%d.%d\n", img, mod, (LPVOID) baseAddr, size, result, symType, pdbName, v1, v2, v3, v4); + } + OnOutput(buffer); +} + +void StackWalker::OnCallstackEntry(CallstackEntryType eType, CallstackEntry &entry) +{ + CHAR buffer[STACKWALK_MAX_NAMELEN]; + if ( (eType != lastEntry) && (entry.offset != 0) ) + { + if (entry.name[0] == 0) + MyStrCpy(entry.name, STACKWALK_MAX_NAMELEN, "(function-name not available)"); + if (entry.undName[0] != 0) + MyStrCpy(entry.name, STACKWALK_MAX_NAMELEN, entry.undName); + if (entry.undFullName[0] != 0) + MyStrCpy(entry.name, STACKWALK_MAX_NAMELEN, entry.undFullName); + if (entry.lineFileName[0] == 0) + { + MyStrCpy(entry.lineFileName, STACKWALK_MAX_NAMELEN, "(filename not available)"); + if (entry.moduleName[0] == 0) + MyStrCpy(entry.moduleName, STACKWALK_MAX_NAMELEN, "(module-name not available)"); + _snprintf_s(buffer, STACKWALK_MAX_NAMELEN, "%p (%s): %s: %s\n", (LPVOID) entry.offset, entry.moduleName, entry.lineFileName, entry.name); + } + else + _snprintf_s(buffer, STACKWALK_MAX_NAMELEN, "%s (%d): %s\n", entry.lineFileName, entry.lineNumber, entry.name); + buffer[STACKWALK_MAX_NAMELEN-1] = 0; + OnOutput(buffer); + } +} + +void StackWalker::OnDbgHelpErr(LPCSTR szFuncName, DWORD gle, DWORD64 addr) +{ + CHAR buffer[STACKWALK_MAX_NAMELEN]; + _snprintf_s(buffer, STACKWALK_MAX_NAMELEN, "ERROR: %s, GetLastError: %d (Address: %p)\n", szFuncName, gle, (LPVOID) addr); + OnOutput(buffer); +} + +void StackWalker::OnSymInit(LPCSTR szSearchPath, DWORD symOptions, LPCSTR szUserName) +{ + CHAR buffer[STACKWALK_MAX_NAMELEN]; + _snprintf_s(buffer, STACKWALK_MAX_NAMELEN, "SymInit: Symbol-SearchPath: '%s', symOptions: %d, UserName: '%s'\n", szSearchPath, symOptions, szUserName); + OnOutput(buffer); + // Also display the OS-version +#if _MSC_VER <= 1200 + OSVERSIONINFOA ver; + ZeroMemory(&ver, sizeof(OSVERSIONINFOA)); + ver.dwOSVersionInfoSize = sizeof(ver); + if (GetVersionExA(&ver) != FALSE) + { + _snprintf_s(buffer, STACKWALK_MAX_NAMELEN, "OS-Version: %d.%d.%d (%s)\n", + ver.dwMajorVersion, ver.dwMinorVersion, ver.dwBuildNumber, + ver.szCSDVersion); + OnOutput(buffer); + } +#else + OSVERSIONINFOEXA ver; + ZeroMemory(&ver, sizeof(OSVERSIONINFOEXA)); + ver.dwOSVersionInfoSize = sizeof(ver); +#if _MSC_VER >= 1900 +#pragma warning(push) +#pragma warning(disable: 4996) +#endif + if (GetVersionExA( (OSVERSIONINFOA*) &ver) != FALSE) + { + _snprintf_s(buffer, STACKWALK_MAX_NAMELEN, "OS-Version: %d.%d.%d (%s) 0x%x-0x%x\n", + ver.dwMajorVersion, ver.dwMinorVersion, ver.dwBuildNumber, + ver.szCSDVersion, ver.wSuiteMask, ver.wProductType); + OnOutput(buffer); + } +#if _MSC_VER >= 1900 +#pragma warning(pop) +#endif +#endif +} + +void StackWalker::OnOutput(LPCSTR buffer) +{ + OutputDebugStringA(buffer); +} + +#endif diff --git a/SQLiteStudio3/coreSQLiteStudio/chillout/windows/StackWalker.h b/SQLiteStudio3/coreSQLiteStudio/chillout/windows/StackWalker.h new file mode 100644 index 0000000..cd1a982 --- /dev/null +++ b/SQLiteStudio3/coreSQLiteStudio/chillout/windows/StackWalker.h @@ -0,0 +1,222 @@ +/********************************************************************** + * + * StackWalker.h + * + * + * + * LICENSE (http://www.opensource.org/licenses/bsd-license.php) + * + * Copyright (c) 2005-2009, Jochen Kalmbach + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * Neither the name of Jochen Kalmbach nor the names of its contributors may be + * used to endorse or promote products derived from this software without + * specific prior written permission. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * **********************************************************************/ +// #pragma once is supported starting with _MCS_VER 1000, +// so we need not to check the version (because we only support _MSC_VER >= 1100)! +#pragma once + +#ifdef _WIN32 + +#include + +#if _MSC_VER >= 1900 +#pragma warning(disable : 4091) +#endif + +// special defines for VC5/6 (if no actual PSDK is installed): +#if _MSC_VER < 1300 +typedef unsigned __int64 DWORD64, *PDWORD64; +#if defined(_WIN64) +typedef unsigned __int64 SIZE_T, *PSIZE_T; +#else +typedef unsigned long SIZE_T, *PSIZE_T; +#endif +#endif // _MSC_VER < 1300 + +class StackWalkerInternal; // forward +class StackWalker +{ +public: + typedef enum StackWalkOptions + { + // No addition info will be retrived + // (only the address is available) + RetrieveNone = 0, + + // Try to get the symbol-name + RetrieveSymbol = 1, + + // Try to get the line for this symbol + RetrieveLine = 2, + + // Try to retrieve the module-infos + RetrieveModuleInfo = 4, + + // Also retrieve the version for the DLL/EXE + RetrieveFileVersion = 8, + + // Contains all the abouve + RetrieveVerbose = 0xF, + + // Generate a "good" symbol-search-path + SymBuildPath = 0x10, + + // Also use the public Microsoft-Symbol-Server + SymUseSymSrv = 0x20, + + // Contains all the abouve "Sym"-options + SymAll = 0x30, + + // Contains all options (default) + OptionsAll = 0x3F + } StackWalkOptions; + + StackWalker( + int options = OptionsAll, // 'int' is by design, to combine the enum-flags + LPCSTR szSymPath = NULL, + DWORD dwProcessId = GetCurrentProcessId(), + HANDLE hProcess = GetCurrentProcess() + ); + StackWalker(DWORD dwProcessId, HANDLE hProcess); + virtual ~StackWalker(); + + typedef BOOL (__stdcall *PReadProcessMemoryRoutine)( + HANDLE hProcess, + DWORD64 qwBaseAddress, + PVOID lpBuffer, + DWORD nSize, + LPDWORD lpNumberOfBytesRead, + LPVOID pUserData // optional data, which was passed in "ShowCallstack" + ); + + BOOL LoadModules(); + + BOOL ShowCallstack( + HANDLE hThread = GetCurrentThread(), + const CONTEXT *context = NULL, + PReadProcessMemoryRoutine readMemoryFunction = NULL, + LPVOID pUserData = NULL // optional to identify some data in the 'readMemoryFunction'-callback + ); + +#if _MSC_VER >= 1300 +// due to some reasons, the "STACKWALK_MAX_NAMELEN" must be declared as "public" +// in older compilers in order to use it... starting with VC7 we can declare it as "protected" +protected: +#endif + enum { STACKWALK_MAX_NAMELEN = 1024 }; // max name length for found symbols + +protected: + // Entry for each Callstack-Entry + typedef struct CallstackEntry + { + DWORD64 offset; // if 0, we have no valid entry + CHAR name[STACKWALK_MAX_NAMELEN]; + CHAR undName[STACKWALK_MAX_NAMELEN]; + CHAR undFullName[STACKWALK_MAX_NAMELEN]; + DWORD64 offsetFromSmybol; + DWORD offsetFromLine; + DWORD lineNumber; + CHAR lineFileName[STACKWALK_MAX_NAMELEN]; + DWORD symType; + LPCSTR symTypeString; + CHAR moduleName[STACKWALK_MAX_NAMELEN]; + DWORD64 baseOfImage; + CHAR loadedImageName[STACKWALK_MAX_NAMELEN]; + } CallstackEntry; + + enum CallstackEntryType {firstEntry, nextEntry, lastEntry}; + + virtual void OnSymInit(LPCSTR szSearchPath, DWORD symOptions, LPCSTR szUserName); + virtual void OnLoadModule(LPCSTR img, LPCSTR mod, DWORD64 baseAddr, DWORD size, DWORD result, LPCSTR symType, LPCSTR pdbName, ULONGLONG fileVersion); + virtual void OnCallstackEntry(CallstackEntryType eType, CallstackEntry &entry); + virtual void OnDbgHelpErr(LPCSTR szFuncName, DWORD gle, DWORD64 addr); + virtual void OnOutput(LPCSTR szText); + + StackWalkerInternal *m_sw; + HANDLE m_hProcess; + DWORD m_dwProcessId; + BOOL m_modulesLoaded; + LPSTR m_szSymPath; + + int m_options; + int m_MaxRecursionCount; + + static BOOL __stdcall myReadProcMem(HANDLE hProcess, DWORD64 qwBaseAddress, PVOID lpBuffer, DWORD nSize, LPDWORD lpNumberOfBytesRead); + + friend StackWalkerInternal; +}; // class StackWalker + + +// The "ugly" assembler-implementation is needed for systems before XP +// If you have a new PSDK and you only compile for XP and later, then you can use +// the "RtlCaptureContext" +// Currently there is no define which determines the PSDK-Version... +// So we just use the compiler-version (and assumes that the PSDK is +// the one which was installed by the VS-IDE) + +// INFO: If you want, you can use the RtlCaptureContext if you only target XP and later... +// But I currently use it in x64/IA64 environments... +#if defined(_M_IX86) && (_WIN32_WINNT <= 0x0500) && (_MSC_VER < 1400) + +//#if defined(_M_IX86) +#ifdef CURRENT_THREAD_VIA_EXCEPTION +// TODO: The following is not a "good" implementation, +// because the callstack is only valid in the "__except" block... +#define GET_CURRENT_CONTEXT_STACKWALKER_CODEPLEX(c, contextFlags) \ + do { \ + memset(&c, 0, sizeof(CONTEXT)); \ + EXCEPTION_POINTERS *pExp = NULL; \ + __try { \ + throw 0; \ + } __except( ( (pExp = GetExceptionInformation()) ? EXCEPTION_EXECUTE_HANDLER : EXCEPTION_EXECUTE_HANDLER)) {} \ + if (pExp != NULL) \ + memcpy(&c, pExp->ContextRecord, sizeof(CONTEXT)); \ + c.ContextFlags = contextFlags; \ + } while(0); +#else +// The following should be enough for walking the callstack... +#define GET_CURRENT_CONTEXT_STACKWALKER_CODEPLEX(c, contextFlags) \ + do { \ + memset(&c, 0, sizeof(CONTEXT)); \ + c.ContextFlags = contextFlags; \ + __asm call x \ + __asm x: pop eax \ + __asm mov c.Eip, eax \ + __asm mov c.Ebp, ebp \ + __asm mov c.Esp, esp \ + } while(0); +#endif + +#else + +// The following is defined for x86 (XP and higher), x64 and IA64: +#define GET_CURRENT_CONTEXT_STACKWALKER_CODEPLEX(c, contextFlags) \ + do { \ + memset(&c, 0, sizeof(CONTEXT)); \ + c.ContextFlags = contextFlags; \ + RtlCaptureContext(&c); \ +} while(0); +#endif + +#endif diff --git a/SQLiteStudio3/coreSQLiteStudio/chillout/windows/windowscrashhandler.cpp b/SQLiteStudio3/coreSQLiteStudio/chillout/windows/windowscrashhandler.cpp new file mode 100644 index 0000000..aa9767c --- /dev/null +++ b/SQLiteStudio3/coreSQLiteStudio/chillout/windows/windowscrashhandler.cpp @@ -0,0 +1,671 @@ +#ifdef _WIN32 + +#include "windowscrashhandler.h" +#include "../defines.h" + +#include +#include +#include "StackWalker.h" + +// minidump +#include +#include +//#include +#include +//#include +#include +#include + +#include +#include +#include +#include +#include "../common/common.h" + +#ifdef _MSC_VER +#if _MSC_VER < 1400 +#define strcpy_s(dst, len, src) strcpy(dst, src) +#define strncpy_s(dst, len, src, maxLen) strncpy(dst, len, src) +#define strcat_s(dst, len, src) strcat(dst, src) +#define _snprintf_s _snprintf +#define _tcscat_s _tcscat +#endif +#endif + +#ifdef __MINGW32__ +#define strcpy_s(dst, len, src) strcpy(dst, src) +#define strncpy_s(dst, len, src, maxLen) strncpy(dst, src, len) +#define strcat_s(dst, len, src) strcat(dst, src) +#define _snprintf_s _snprintf +#endif + +#define CR_SEH_EXCEPTION 0 //!< SEH exception. +#define CR_CPP_TERMINATE_CALL 1 //!< C++ terminate() call. +#define CR_CPP_UNEXPECTED_CALL 2 //!< C++ unexpected() call. +#define CR_CPP_PURE_CALL 3 //!< C++ pure virtual function call (VS .NET and later). +#define CR_CPP_NEW_OPERATOR_ERROR 4 //!< C++ new operator fault (VS .NET and later). +#define CR_CPP_SECURITY_ERROR 5 //!< Buffer overrun error (VS .NET only). +#define CR_CPP_INVALID_PARAMETER 6 //!< Invalid parameter exception (VS 2005 and later). +#define CR_CPP_SIGABRT 7 //!< C++ SIGABRT signal (abort). +#define CR_CPP_SIGFPE 8 //!< C++ SIGFPE signal (flotating point exception). +#define CR_CPP_SIGILL 9 //!< C++ SIGILL signal (illegal instruction). +#define CR_CPP_SIGINT 10 //!< C++ SIGINT signal (CTRL+C). +#define CR_CPP_SIGSEGV 11 //!< C++ SIGSEGV signal (invalid storage access). +#define CR_CPP_SIGTERM 12 //!< C++ SIGTERM signal (termination request). + +#define STRINGIZE_(x) #x +#define STRINGIZE(x) STRINGIZE_(x) + +#ifndef _AddressOfReturnAddress + // Taken from: http://msdn.microsoft.com/en-us/library/s975zw7k(VS.71).aspx + #ifdef __cplusplus + #define EXTERNC extern "C" + #else + #define EXTERNC + #endif + + // _ReturnAddress and _AddressOfReturnAddress should be prototyped before use + EXTERNC void * _AddressOfReturnAddress(void); + EXTERNC void * _ReturnAddress(void); +#endif + +#pragma GCC diagnostic ignored "-Wcast-function-type" + +namespace Debug { + class StackWalkerWithCallback : public StackWalker + { + public: + StackWalkerWithCallback(const std::function &callback): + StackWalker(RetrieveVerbose | SymBuildPath), + m_callback(callback) + { } + + protected: + virtual void OnOutput(LPCSTR szText) override { + m_callback(szText); + } + + private: + std::function m_callback; + }; + + BOOL PreventSetUnhandledExceptionFilter() + { + HMODULE hKernel32 = LoadLibrary(_T("kernel32.dll")); + if (hKernel32 == NULL) return FALSE; + void* pOrgEntry = reinterpret_cast(GetProcAddress(hKernel32, "SetUnhandledExceptionFilter")); + if (pOrgEntry == NULL) return FALSE; + +#ifdef _M_IX86 + // Code for x86: + // 33 C0 xor eax,eax + // C2 04 00 ret 4 + unsigned char szExecute[] = { 0x33, 0xC0, 0xC2, 0x04, 0x00 }; +#elif _M_X64 + // 33 C0 xor eax,eax + // C3 ret + unsigned char szExecute[] = { 0x33, 0xC0, 0xC3 }; +#else +#error "The following code only works for x86 and x64!" +#endif + + SIZE_T bytesWritten = 0; + BOOL bRet = WriteProcessMemory(GetCurrentProcess(), + pOrgEntry, szExecute, sizeof(szExecute), &bytesWritten); + return bRet; + } + + BOOL CALLBACK MyMiniDumpCallback( + PVOID pParam, + const PMINIDUMP_CALLBACK_INPUT pInput, + PMINIDUMP_CALLBACK_OUTPUT pOutput + ) + { + BOOL bRet = FALSE; + + // Check parameters + + if( pInput == 0 ) + return FALSE; + + if( pOutput == 0 ) + return FALSE; + + // Process the callbacks + WindowsCrashHandler *handler = (WindowsCrashHandler*)pParam; + + switch( pInput->CallbackType ) + { + case IncludeModuleCallback: + { + // Include the module into the dump + bRet = TRUE; + } + break; + + case IncludeThreadCallback: + { + // Include the thread into the dump + bRet = TRUE; + } + break; + + case ModuleCallback: + { + // Are data sections available for this module ? + if( pOutput->ModuleWriteFlags & ModuleWriteDataSeg ) + { + // Yes, they are, but do we need them? + + if( !handler->isDataSectionNeeded( pInput->Module.FullPath ) ) + { + pOutput->ModuleWriteFlags &= (~ModuleWriteDataSeg); + } + } + + if( !(pOutput->ModuleWriteFlags & ModuleReferencedByMemory) ) + { + // No, it does not - exclude it + pOutput->ModuleWriteFlags &= (~ModuleWriteModule); + } + + bRet = TRUE; + } + break; + + case ThreadCallback: + { + // Include all thread information into the minidump + bRet = TRUE; + } + break; + + case ThreadExCallback: + { + // Include this information + bRet = TRUE; + } + break; + + case MemoryCallback: + { + // We do not include any information here -> return FALSE + bRet = FALSE; + } + break; + + case CancelCallback: + break; + } + + return bRet; + + } + + void DoHandleCrash() { + WindowsCrashHandler &handler = WindowsCrashHandler::getInstance(); + handler.handleCrash(); + } + + // http://groups.google.com/group/crashrpt/browse_thread/thread/a1dbcc56acb58b27/fbd0151dd8e26daf?lnk=gst&q=stack+overflow#fbd0151dd8e26daf + // Thread procedure doing the dump for stack overflow. + DWORD WINAPI StackOverflowThreadFunction(LPVOID) { + DoHandleCrash(); + TerminateProcess(GetCurrentProcess(), CHILLOUT_EXIT_CODE); + return 0; + } + + static LONG WINAPI SehHandler(EXCEPTION_POINTERS*) { +#ifdef _DEBUG + fprintf(stderr, "Chillout SehHandler"); +#endif + + DoHandleCrash(); + + TerminateProcess(GetCurrentProcess(), CHILLOUT_EXIT_CODE); + + // unreachable + return EXCEPTION_EXECUTE_HANDLER; + } + + // The following code is intended to fix the issue with 32-bit applications in 64-bit environment. + // http://support.microsoft.com/kb/976038/en-us + // http://code.google.com/p/crashrpt/issues/detail?id=104 + void EnableCrashingOnCrashes() { + typedef BOOL (WINAPI *tGetPolicy)(LPDWORD lpFlags); + typedef BOOL (WINAPI *tSetPolicy)(DWORD dwFlags); + static const DWORD EXCEPTION_SWALLOWING = 0x1; + + const HMODULE kernel32 = LoadLibraryA("kernel32.dll"); + const tGetPolicy pGetPolicy = reinterpret_cast(GetProcAddress(kernel32, "GetProcessUserModeExceptionPolicy")); + const tSetPolicy pSetPolicy = reinterpret_cast(GetProcAddress(kernel32, "SetProcessUserModeExceptionPolicy")); + if(pGetPolicy && pSetPolicy) + { + DWORD dwFlags; + if(pGetPolicy(&dwFlags)) + { + // Turn off the filter + pSetPolicy(dwFlags & ~EXCEPTION_SWALLOWING); + } + } + } + + WindowsCrashHandler::WindowsCrashHandler() { + m_oldSehHandler = NULL; + +#if _MSC_VER>=1300 + m_prevPurec = NULL; + m_prevNewHandler = NULL; +#endif + +#if _MSC_VER>=1300 && _MSC_VER<1400 + m_prevSec = NULL; +#endif + +#if _MSC_VER>=1400 + m_prevInvpar = NULL; +#endif + + m_prevSigABRT = NULL; + m_prevSigINT = NULL; + m_prevSigTERM = NULL; + } + + void WindowsCrashHandler::setup(const std::wstring &appName, const std::wstring &dumpsDir) { + m_appName = appName; + + if (!appName.empty() && !dumpsDir.empty()) { + std::wstring path = dumpsDir; + while ((path.size() > 1) && + (path[path.size() - 1] == L'\\')) { + path.erase(path.size() - 1); + } + } + + EnableCrashingOnCrashes(); + setProcessExceptionHandlers(); + setThreadExceptionHandlers(); + } + + void WindowsCrashHandler::teardown() { + unsetProcessExceptionHandlers(); + unsetThreadExceptionHandlers(); + } + + void WindowsCrashHandler::setCrashCallback(const std::function &callback) { + m_crashCallback = callback; + } + + void WindowsCrashHandler::setBacktraceCallback(const std::function &callback) { + m_backtraceCallback = callback; + } + + void WindowsCrashHandler::handleCrash() { + std::lock_guard guard(m_crashMutex); + (void)guard; + + if (m_crashCallback) { + m_crashCallback(); + } + + // Terminate process + TerminateProcess(GetCurrentProcess(), CHILLOUT_EXIT_CODE); + } + + bool WindowsCrashHandler::isDataSectionNeeded(const WCHAR* pModuleName) { + if( pModuleName == 0 ) { + _ASSERTE( _T("Parameter is null.") ); + return false; + } + + // Extract the module name + + WCHAR szFileName[_MAX_FNAME] = L""; + _wsplitpath( pModuleName, NULL, NULL, szFileName, NULL ); + + // Compare the name with the list of known names and decide + // if contains app name in its path + if( wcsstr( pModuleName, m_appName.c_str() ) != 0 ) { + return true; + } else if( _wcsicmp( szFileName, L"ntdll" ) == 0 ) { + return true; + } else if( wcsstr( szFileName, L"Qt5" ) != 0 ) { + return true; + } + + // Complete + return false; + } + + void WindowsCrashHandler::setProcessExceptionHandlers() { + //SetErrorMode(SEM_NOGPFAULTERRORBOX | SEM_FAILCRITICALERRORS); + m_oldSehHandler = SetUnhandledExceptionFilter(SehHandler); +#if defined _M_X64 || defined _M_IX86 + if (m_oldSehHandler) + PreventSetUnhandledExceptionFilter(); +#endif + +#if _MSC_VER>=1300 + // Catch pure virtual function calls. + // Because there is one _purecall_handler for the whole process, + // calling this function immediately impacts all threads. The last + // caller on any thread sets the handler. + // http://msdn.microsoft.com/en-us/library/t296ys27.aspx + m_prevPurec = _set_purecall_handler(PureCallHandler); + + // Catch new operator memory allocation exceptions + //_set_new_mode(1); // Force malloc() to call new handler too + m_prevNewHandler = _set_new_handler(NewHandler); +#endif + +#if _MSC_VER>=1400 + // Catch invalid parameter exceptions. + m_prevInvpar = _set_invalid_parameter_handler(InvalidParameterHandler); +#endif + +#if _MSC_VER>=1300 && _MSC_VER<1400 + // Catch buffer overrun exceptions + // The _set_security_error_handler is deprecated in VC8 C++ run time library + m_prevSec = _set_security_error_handler(SecurityHandler); +#endif + +#if _MSC_VER>=1400 + _set_abort_behavior(0, _WRITE_ABORT_MSG); + _set_abort_behavior(_CALL_REPORTFAULT, _CALL_REPORTFAULT); +#endif + +#if defined(_MSC_VER) + // Disable all of the possible ways Windows conspires to make automated + // testing impossible. + + // ::SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOGPFAULTERRORBOX); + // ::_set_error_mode(_OUT_TO_STDERR); + + // _CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE | _CRTDBG_MODE_DEBUG); + // _CrtSetReportFile(_CRT_WARN, _CRTDBG_FILE_STDERR); + // _CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_FILE | _CRTDBG_MODE_DEBUG); + // _CrtSetReportFile(_CRT_ERROR, _CRTDBG_FILE_STDERR); + // _CrtSetReportMode(_CRT_ASSERT, _CRTDBG_MODE_FILE | _CRTDBG_MODE_DEBUG); + // _CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDERR); + + m_crtReportHook = _CrtSetReportHook(CrtReportHook); +#endif + + // Set up C++ signal handlers + SetConsoleCtrlHandler(ConsoleCtrlHandler, true); + + // Catch an abnormal program termination + m_prevSigABRT = signal(SIGABRT, SigabrtHandler); + + // Catch illegal instruction handler + m_prevSigINT = signal(SIGINT, SigintHandler); + + // Catch a termination request + m_prevSigINT = signal(SIGTERM, SigtermHandler); + } + + void WindowsCrashHandler::unsetProcessExceptionHandlers() { +#if _MSC_VER>=1300 + if(m_prevPurec!=NULL) { + _set_purecall_handler(m_prevPurec); + } + + if(m_prevNewHandler!=NULL) { + _set_new_handler(m_prevNewHandler); + } +#endif + +#if _MSC_VER>=1400 + if(m_prevInvpar!=NULL) { + _set_invalid_parameter_handler(m_prevInvpar); + } +#endif //_MSC_VER>=1400 + +#if _MSC_VER>=1300 && _MSC_VER<1400 + if(m_prevSec!=NULL) + _set_security_error_handler(m_prevSec); +#endif //_MSC_VER<1400 + + if(m_prevSigABRT!=NULL) { + signal(SIGABRT, m_prevSigABRT); + } + + if(m_prevSigINT!=NULL) { + signal(SIGINT, m_prevSigINT); + } + + if(m_prevSigTERM!=NULL) { + signal(SIGTERM, m_prevSigTERM); + } + + // Reset SEH exception filter + if (m_oldSehHandler) { + SetUnhandledExceptionFilter(m_oldSehHandler); + } + + m_oldSehHandler = NULL; + } + + int WindowsCrashHandler::setThreadExceptionHandlers() + { + DWORD dwThreadId = GetCurrentThreadId(); + + std::lock_guard guard(m_threadHandlersMutex); + + auto it = m_threadExceptionHandlers.find(dwThreadId); + if (it != m_threadExceptionHandlers.end()) { + // handlers are already set for the thread + return 1; // failed + } + + ThreadExceptionHandlers handlers; + + // Catch terminate() calls. + // In a multithreaded environment, terminate functions are maintained + // separately for each thread. Each new thread needs to install its own + // terminate function. Thus, each thread is in charge of its own termination handling. + // http://msdn.microsoft.com/en-us/library/t6fk7h29.aspx + handlers.m_prevTerm = std::set_terminate(TerminateHandler); + + // Catch unexpected() calls. + // In a multithreaded environment, unexpected functions are maintained + // separately for each thread. Each new thread needs to install its own + // unexpected function. Thus, each thread is in charge of its own unexpected handling. + // http://msdn.microsoft.com/en-us/library/h46t5b69.aspx + handlers.m_prevUnexp = std::set_unexpected(UnexpectedHandler); + + // Catch a floating point error + typedef void (*sigh)(int); + handlers.m_prevSigFPE = signal(SIGFPE, (sigh)SigfpeHandler); + + // Catch an illegal instruction + handlers.m_prevSigILL = signal(SIGILL, SigillHandler); + + // Catch illegal storage access errors + handlers.m_prevSigSEGV = signal(SIGSEGV, SigsegvHandler); + + m_threadExceptionHandlers[dwThreadId] = handlers; + + return 0; + } + + int WindowsCrashHandler::unsetThreadExceptionHandlers() { + DWORD dwThreadId = GetCurrentThreadId(); + std::lock_guard guard(m_threadHandlersMutex); + (void)guard; + + auto it = m_threadExceptionHandlers.find(dwThreadId); + if (it == m_threadExceptionHandlers.end()) { + return 1; + } + + ThreadExceptionHandlers* handlers = &(it->second); + + if(handlers->m_prevTerm!=NULL) { + std::set_terminate(handlers->m_prevTerm); + } + + if(handlers->m_prevUnexp!=NULL) { + std::set_unexpected(handlers->m_prevUnexp); + } + + if(handlers->m_prevSigFPE!=NULL) { + signal(SIGFPE, handlers->m_prevSigFPE); + } + + if(handlers->m_prevSigILL!=NULL) { + signal(SIGINT, handlers->m_prevSigILL); + } + + if(handlers->m_prevSigSEGV!=NULL) { + signal(SIGSEGV, handlers->m_prevSigSEGV); + } + + // Remove from the list + m_threadExceptionHandlers.erase(it); + + return 0; + } + + int __cdecl WindowsCrashHandler::CrtReportHook(int nReportType, char* szMsg, int* pnRet) { + (void)szMsg; + + switch (nReportType) { + case _CRT_WARN: + case _CRT_ERROR: + case _CRT_ASSERT: + // Put some debug code here + break; + } + + if (pnRet) { + *pnRet = 0; + } + + return TRUE; + } + + // CRT terminate() call handler + void __cdecl WindowsCrashHandler::TerminateHandler() { + // Abnormal program termination (terminate() function was called) + DoHandleCrash(); + } + + // CRT unexpected() call handler + void __cdecl WindowsCrashHandler::UnexpectedHandler() { + // Unexpected error (unexpected() function was called) + DoHandleCrash(); + } + + // CRT Pure virtual method call handler + void __cdecl WindowsCrashHandler::PureCallHandler() { + // Pure virtual function call + DoHandleCrash(); + } + + // CRT buffer overrun handler. Available in CRT 7.1 only +#if _MSC_VER>=1300 && _MSC_VER<1400 + void __cdecl WindowsCrashHandler::SecurityHandler(int code, void *x) + { + // Security error (buffer overrun). + + code; + x; + + EXCEPTION_POINTERS* pExceptionPtrs = (PEXCEPTION_POINTERS)_pxcptinfoptrs; + if (pExceptionPtrs == nullptr) { + GetExceptionPointers(CR_CPP_SECURITY_ERROR, &pExceptionPtrs); + } + + DoHandleCrash(pExceptionPtrs); + } +#endif + +#if _MSC_VER>=1400 + // CRT invalid parameter handler + void __cdecl WindowsCrashHandler::InvalidParameterHandler( + const wchar_t* expression, + const wchar_t* function, + const wchar_t* file, + unsigned int line, + uintptr_t pReserved) { + pReserved; + expression; + function; + file; + line; + + // fwprintf(stderr, L"Invalid parameter detected in function %s." + // L" File: %s Line: %d\n", function, file, line); + + // Retrieve exception information + EXCEPTION_POINTERS* pExceptionPtrs = NULL; + GetExceptionPointers(CR_CPP_INVALID_PARAMETER, &pExceptionPtrs); + + DoHandleCrash(pExceptionPtrs); + } +#endif + + // CRT new operator fault handler + int __cdecl WindowsCrashHandler::NewHandler(size_t) { + // 'new' operator memory allocation exception + DoHandleCrash(); + + // Unreacheable code + return 0; + } + + // CRT SIGABRT signal handler + void WindowsCrashHandler::SigabrtHandler(int) { + // Caught SIGABRT C++ signal + DoHandleCrash(); + } + + // CRT SIGFPE signal handler + void WindowsCrashHandler::SigfpeHandler(int /*code*/, int subcode) { + // Floating point exception (SIGFPE) + (void)subcode; + DoHandleCrash(); + } + + // CRT sigill signal handler + void WindowsCrashHandler::SigillHandler(int) { + // Illegal instruction (SIGILL) + DoHandleCrash(); + } + + // CRT sigint signal handler + void WindowsCrashHandler::SigintHandler(int) { + // Interruption (SIGINT) + DoHandleCrash(); + } + + // CRT SIGSEGV signal handler + void WindowsCrashHandler::SigsegvHandler(int) { + // Invalid storage access (SIGSEGV) + DoHandleCrash(); + } + + // CRT SIGTERM signal handler + void WindowsCrashHandler::SigtermHandler(int) { + // Termination request (SIGTERM) + DoHandleCrash(); + } + + // CRT SIGTERM signal handler + BOOL WINAPI WindowsCrashHandler::ConsoleCtrlHandler(DWORD type) { + // Termination request (CTRL_C_EVENT) + switch (type) + { + case CTRL_C_EVENT: + case CTRL_LOGOFF_EVENT: + case CTRL_SHUTDOWN_EVENT: + case CTRL_CLOSE_EVENT: + DoHandleCrash(); + break; + } + return false; + } +} + +#endif diff --git a/SQLiteStudio3/coreSQLiteStudio/chillout/windows/windowscrashhandler.h b/SQLiteStudio3/coreSQLiteStudio/chillout/windows/windowscrashhandler.h new file mode 100644 index 0000000..9d7e70f --- /dev/null +++ b/SQLiteStudio3/coreSQLiteStudio/chillout/windows/windowscrashhandler.h @@ -0,0 +1,147 @@ +#ifndef CRASHHANDLER_H +#define CRASHHANDLER_H + +#ifdef _WIN32 + +#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include "../common/common.h" + +#ifdef __MINGW32__ + typedef int (__cdecl *_CRT_REPORT_HOOK)(int,char *,int *); +#endif + +namespace Debug { + struct ThreadExceptionHandlers + { + ThreadExceptionHandlers() + { + m_prevTerm = NULL; + m_prevUnexp = NULL; + m_prevSigFPE = NULL; + m_prevSigILL = NULL; + m_prevSigSEGV = NULL; + } + + std::terminate_handler m_prevTerm; // Previous terminate handler + std::unexpected_handler m_prevUnexp; // Previous unexpected handler + void (__cdecl *m_prevSigFPE)(int); // Previous FPE handler + void (__cdecl *m_prevSigILL)(int); // Previous SIGILL handler + void (__cdecl *m_prevSigSEGV)(int); // Previous illegal storage access handler + }; + + // code mostly from https://www.codeproject.com/articles/207464/WebControls/ + class WindowsCrashHandler + { + public: + static WindowsCrashHandler& getInstance() + { + static WindowsCrashHandler instance; // Guaranteed to be destroyed. + // Instantiated on first use. + return instance; + } + + private: + WindowsCrashHandler(); + + public: + void setup(const std::wstring &appName, const std::wstring &dumpsDir); + void teardown(); + void setCrashCallback(const std::function &callback); + void setBacktraceCallback(const std::function &callback); + void handleCrash(); + + public: + bool isDataSectionNeeded(const WCHAR* pModuleName); + + public: + // Sets exception handlers that work on per-process basis + void setProcessExceptionHandlers(); + void unsetProcessExceptionHandlers(); + + // Installs C++ exception handlers that function on per-thread basis + int setThreadExceptionHandlers(); + int unsetThreadExceptionHandlers(); + + /* Exception handler functions. */ + + static int __cdecl CrtReportHook(int nReportType, char* szMsg, int* pnRet); + + static void __cdecl TerminateHandler(); + static void __cdecl UnexpectedHandler(); + + static void __cdecl PureCallHandler(); +#if _MSC_VER>=1300 && _MSC_VER<1400 + // Buffer overrun handler (deprecated in newest versions of Visual C++). + // Since CRT 8.0, you can't intercept the buffer overrun errors in your code. When a buffer overrun is detected, CRT invokes Dr. Watson directly + static void __cdecl SecurityHandler(int code, void *x); +#endif + +#if _MSC_VER>=1400 + static void __cdecl InvalidParameterHandler(const wchar_t* expression, + const wchar_t* function, const wchar_t* file, unsigned int line, uintptr_t pReserved); +#endif + + static int __cdecl NewHandler(size_t); + + static void SigabrtHandler(int); + static void SigfpeHandler(int /*code*/, int subcode); + static void SigintHandler(int); + static void SigillHandler(int); + static void SigsegvHandler(int); + static void SigtermHandler(int); + static BOOL WINAPI ConsoleCtrlHandler(DWORD type); + + private: + std::function m_crashCallback; + std::function m_backtraceCallback; + std::mutex m_crashMutex; + std::wstring m_appName; + + std::map m_threadExceptionHandlers; + std::mutex m_threadHandlersMutex; + + // Previous SEH exception filter. + LPTOP_LEVEL_EXCEPTION_FILTER m_oldSehHandler; + +#if _MSC_VER>=1300 + _purecall_handler m_prevPurec; // Previous pure virtual call exception filter. + _PNH m_prevNewHandler; // Previous new operator exception filter. +#endif + +#if _MSC_VER>=1400 + _invalid_parameter_handler m_prevInvpar; // Previous invalid parameter exception filter. +#endif + +#if _MSC_VER>=1300 && _MSC_VER<1400 + _secerr_handler_func m_prevSec; // Previous security exception filter. +#endif + + void (__cdecl *m_prevSigABRT)(int); // Previous SIGABRT handler. + void (__cdecl *m_prevSigINT)(int); // Previous SIGINT handler. + void (__cdecl *m_prevSigTERM)(int); // Previous SIGTERM handler. + }; +} + +#endif + +#endif // CRASHHANDLER_H + diff --git a/SQLiteStudio3/coreSQLiteStudio/common/bistrhash.cpp b/SQLiteStudio3/coreSQLiteStudio/common/bistrhash.cpp index 5aac017..f2c1b2c 100644 --- a/SQLiteStudio3/coreSQLiteStudio/common/bistrhash.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/common/bistrhash.cpp @@ -17,6 +17,15 @@ BiStrHash::BiStrHash(const BiStrHash& other) : hash(other.hash), inverted(other. { } +BiStrHash& BiStrHash::operator=(const BiStrHash& other) +{ + this->hash = other.hash; + this->inverted = other.inverted; + this->lowerHash = other.lowerHash; + this->lowerInverted = other.lowerInverted; + return *this; +} + void BiStrHash::insert(const QString& left, const QString& right) { if (lowerHash.contains(left.toLower())) @@ -163,6 +172,14 @@ QString BiStrHash::valueByLeft(const QString& left, Qt::CaseSensitivity cs) cons return hash.value(lowerHash.value(left.toLower())); } +QString BiStrHash::valueByLeft(const QString& left, const QString& defaultValue, Qt::CaseSensitivity cs) const +{ + if (containsLeft(left, cs)) + return valueByLeft(left, cs); + + return defaultValue; +} + QString BiStrHash::valueByRight(const QString& right, Qt::CaseSensitivity cs) const { if (cs == Qt::CaseSensitive) @@ -171,6 +188,14 @@ QString BiStrHash::valueByRight(const QString& right, Qt::CaseSensitivity cs) co return inverted.value(lowerInverted.value(right.toLower())); } +QString BiStrHash::valueByRight(const QString& right, const QString& defaultValue, Qt::CaseSensitivity cs) const +{ + if (containsRight(right, cs)) + return valueByRight(right, cs); + + return defaultValue; +} + QStringList BiStrHash::leftValues() const { return hash.keys(); diff --git a/SQLiteStudio3/coreSQLiteStudio/common/bistrhash.h b/SQLiteStudio3/coreSQLiteStudio/common/bistrhash.h index cec9b8a..0ad80ea 100644 --- a/SQLiteStudio3/coreSQLiteStudio/common/bistrhash.h +++ b/SQLiteStudio3/coreSQLiteStudio/common/bistrhash.h @@ -1,7 +1,6 @@ #ifndef BISTRHASH_H #define BISTRHASH_H -#include "bihash.h" #include "coreSQLiteStudio_global.h" #include #include @@ -44,6 +43,8 @@ class API_EXPORT BiStrHash */ BiStrHash(const BiStrHash& other); + BiStrHash& operator=(const BiStrHash& other); + /** * @brief Inserts entry into the hash. * @param left Left-side value to insert. @@ -122,6 +123,15 @@ class API_EXPORT BiStrHash */ QString valueByLeft(const QString& left, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + /** + * @brief Finds right-side value by matching the left-side value or returns defaultValue if not matched. + * @param left Left-side value to match. + * @param defaultValue Value to be returned if requested left key cannot be found. + * @param cs Case sensitivity flag. + * @return Right-side value, or provided default value if left-side value was not matched. + */ + QString valueByLeft(const QString& left, const QString& defaultValue, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + /** * @brief Finds left-side value by matching the right-side value. * @param right Right-side value to match. @@ -130,6 +140,15 @@ class API_EXPORT BiStrHash */ QString valueByRight(const QString& right, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + /** + * @brief Finds left-side value by matching the right-side value or returns defaultValue if not matched. + * @param right Right-side value to match. + * @param defaultValue Value to be returned if requested right key cannot be found. + * @param cs Case sensitivity flag. + * @return Left-side value, or provided default value if right-side value was not matched. + */ + QString valueByRight(const QString& right, const QString& defaultValue, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + /** * @brief Gives all left-side values. * @return List of values. diff --git a/SQLiteStudio3/coreSQLiteStudio/common/compatibility.cpp b/SQLiteStudio3/coreSQLiteStudio/common/compatibility.cpp index 9676105..c5918c4 100644 --- a/SQLiteStudio3/coreSQLiteStudio/common/compatibility.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/common/compatibility.cpp @@ -1,2 +1,9 @@ #include "compatibility.h" +void strSort(QStringList& collection, Qt::CaseSensitivity cs) +{ + std::stable_sort(collection.begin(), collection.end(), [cs](const QString& v1, const QString& v2) -> bool + { + return v1.compare(v2, cs) < 0; + }); +} diff --git a/SQLiteStudio3/coreSQLiteStudio/common/compatibility.h b/SQLiteStudio3/coreSQLiteStudio/common/compatibility.h index 5ed5c8b..97637b0 100644 --- a/SQLiteStudio3/coreSQLiteStudio/common/compatibility.h +++ b/SQLiteStudio3/coreSQLiteStudio/common/compatibility.h @@ -1,6 +1,7 @@ #ifndef COMPATIBILITY_H #define COMPATIBILITY_H +#include "coreSQLiteStudio_global.h" #include #include #include @@ -37,4 +38,6 @@ void sSort(T& collection, C cmp) std::sort(collection.begin(), collection.end(), cmp); } +API_EXPORT void strSort(QStringList& collection, Qt::CaseSensitivity cs); + #endif // COMPATIBILITY_H diff --git a/SQLiteStudio3/coreSQLiteStudio/common/global.h b/SQLiteStudio3/coreSQLiteStudio/common/global.h index e09391a..c056abb 100644 --- a/SQLiteStudio3/coreSQLiteStudio/common/global.h +++ b/SQLiteStudio3/coreSQLiteStudio/common/global.h @@ -39,9 +39,7 @@ var = nullptr; \ } -#define parser_safe_delete(var) \ - if (var) \ - delete var +#define parser_safe_delete(var) delete var #define static_char static constexpr const char @@ -74,4 +72,19 @@ #define STRINGIFY(s) _STRINGIFY(s) #define _STRINGIFY(s) #s +#define __SQLS_INIT_RESOURCE(proj, name) Q_INIT_RESOURCE(proj ## _ ## name) +#define __SQLS_CLEANUP_RESOURCE(proj, name) Q_CLEANUP_RESOURCE(proj ## _ ## name) +#define _SQLS_INIT_RESOURCE(pname, name) __SQLS_INIT_RESOURCE(pname, name) +#define _SQLS_CLEANUP_RESOURCE(pname, name) __SQLS_CLEANUP_RESOURCE(pname, name) + +// These are replacements for Qt's macros to cover customized resource naming, +// which is used to avoid duplication of qmake_qmake_qm_files resource initialization function across different shared libraries. +#ifdef PROJECT_MODULE_NAME +# define SQLS_INIT_RESOURCE(name) _SQLS_INIT_RESOURCE(PROJECT_MODULE_NAME, name) +# define SQLS_CLEANUP_RESOURCE(name) _SQLS_CLEANUP_RESOURCE(PROJECT_MODULE_NAME, name) +#else +# define SQLS_INIT_RESOURCE(name) +# define SQLS_CLEANUP_RESOURCE(name) +#endif + #endif // GLOBAL_H diff --git a/SQLiteStudio3/coreSQLiteStudio/common/utils.cpp b/SQLiteStudio3/coreSQLiteStudio/common/utils.cpp index 0b95a85..a572330 100644 --- a/SQLiteStudio3/coreSQLiteStudio/common/utils.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/common/utils.cpp @@ -54,6 +54,7 @@ void initUtils() { qRegisterMetaType>("QList"); qRegisterMetaType("DbObjectType"); + qRegisterMetaType>>("QList>"); } bool isXDigit(const QChar& c) @@ -805,7 +806,7 @@ QString getOsString() DistributionType getDistributionType() { #if defined(Q_OS_OSX) - return DistributionType::OSX_BOUNDLE; + return DistributionType::OSX_BUNDLE; #elif defined(PORTABLE_CONFIG) return DistributionType::PORTABLE; #else @@ -966,12 +967,14 @@ QStringList concat(const QList& list) QString doubleToString(const QVariant& val) { QString str = val.toString(); - if (str.contains("e")) + if (str.contains("e") || str.midRef(str.indexOf('.') + 1).length() > 14) + { str = QString::number(val.toDouble(), 'f', 14).remove(QRegExp("0*$")); + if (str.endsWith(".")) + str += "0"; + } else if (!str.contains('.')) str += ".0"; - else if (str.mid(str.indexOf('.') + 1).length() > 14) - str = QString::number(val.toDouble(), 'f', 14).remove(QRegExp("0*$")); return str; } @@ -1097,3 +1100,31 @@ uint qHash(const QVariant& var) // could not generate a hash for the given variant return -2; } + +QString indentMultiline(const QString& str) +{ + QStringList lines = str.split("\n"); + for (QString& line : lines) + line = line.prepend(" "); + + return lines.join("\n"); +} + +QString toNativePath(const QString& path) +{ + return QDir::toNativeSeparators(path); +} + +QStringList sharedLibFileFilters() +{ + static QStringList filters({ +#ifdef Q_OS_WIN + "*.dll" +#elif defined Q_OS_MACOS + "*.dylib" +#elif defined Q_OS_LINUX || Q_OS_BSD + "*.so" +#endif + }); + return filters; +} diff --git a/SQLiteStudio3/coreSQLiteStudio/common/utils.h b/SQLiteStudio3/coreSQLiteStudio/common/utils.h index f7317e2..0ceecc5 100644 --- a/SQLiteStudio3/coreSQLiteStudio/common/utils.h +++ b/SQLiteStudio3/coreSQLiteStudio/common/utils.h @@ -2,6 +2,7 @@ #define UTILS_H #include "coreSQLiteStudio_global.h" +#include #include #include #include @@ -66,6 +67,7 @@ API_EXPORT QStringList tokenizeArgs(const QString& str); API_EXPORT QStringList prefixEach(const QString& prefix, const QStringList& list); API_EXPORT QByteArray hashToBytes(const QHash& hash); API_EXPORT QHash bytesToHash(const QByteArray& bytes); +API_EXPORT QString indentMultiline(const QString& str); /** * @brief indexOf Extension to QStringList::indexOf(). * @@ -261,6 +263,7 @@ API_EXPORT QTextCodec* defaultCodec(); API_EXPORT QTextCodec* codecForName(const QString& name); API_EXPORT QStringList splitByLines(const QString& str); API_EXPORT QString joinLines(const QStringList& lines); +API_EXPORT QStringList sharedLibFileFilters(); API_EXPORT int sum(const QList& integers); API_EXPORT QString getOsString(); API_EXPORT bool validateEmail(const QString& email); @@ -289,7 +292,7 @@ API_EXPORT void sortWithReferenceList(QList& listToSort, const QList reverse(const QList& list) return result; } +template +QList map(const QList& list, std::function transformer) +{ + QList result; + for (const S& el : list) + result << transformer(el); + + return result; +} + +template +QHash toHash(const QList& list, std::function transformer) +{ + QHash result; + for (const S& el : list) + result[el] = transformer(el); + + return result; +} + +template +QSet map(const QSet& set, std::function transformer) +{ + QSet result; + for (const S& el : set) + result << transformer(el); + + return result; +} + template void removeDuplicates(QList& list) { @@ -328,6 +361,8 @@ API_EXPORT QVariant deserializeFromBytes(const QByteArray& bytes); API_EXPORT QString readFileContents(const QString& path, QString* err); +API_EXPORT QString toNativePath(const QString& path); + Q_DECLARE_METATYPE(QList) #endif // UTILS_H diff --git a/SQLiteStudio3/coreSQLiteStudio/common/utils_sql.cpp b/SQLiteStudio3/coreSQLiteStudio/common/utils_sql.cpp index c8d63e1..0122352 100644 --- a/SQLiteStudio3/coreSQLiteStudio/common/utils_sql.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/common/utils_sql.cpp @@ -4,14 +4,13 @@ #include "parser/token.h" #include "parser/lexer.h" #include "parser/keywords.h" -#include "log.h" #include #include #include #include #include -QString invalidIdCharacters = "[]()\"'@*.,+-=/%&|:; \t\n<>"; +QString invalidIdCharacters = "[](){}\"'@*.,+-=/#$%&|:; \t\n<>"; QHash> wrapperChars; QHash> wrapperEscapedEnding; QList sqlite3Wrappers; @@ -41,10 +40,15 @@ bool doesObjectNeedWrapping(const QString& str) if (str.isEmpty()) return true; - if (isObjWrapped(str)) - return false; + // It used to return false if object name looked to be wrapped already, + // but actually name [abc] is proper name that needs to be wrapped (i.e. "[abc]"). + // Bug reported for this was #4362 + //if (isObjWrapped(str)) + // return false; - if (isKeyword(str)) + // The "soft keyword" check added, as they don't require wrapping. + // For example: SELECT replace('abc', 'a', '1'); + if (isKeyword(str) && !isSoftKeyword(str)) return true; for (int i = 0; i < str.size(); i++) @@ -580,12 +584,80 @@ QString getQueryWithPosition(const QStringList& queries, int position, int* star return QString(); } +int getCursorFinalPositionForQueries(const QString& queries, int position) +{ + const static QSet whitespaceChars = {' ', '\t'}; + + int len = queries.length(); + if (position >= len || position < 1) + return position; + + if (!whitespaceChars.contains(queries[position]) && queries[position] != '\xa') + return position; + + // First checking characters at & after cursor - are they just whitespaces until end of line? + int newPos = position; + while (newPos < len) + { + QChar c = queries[newPos++]; + if (whitespaceChars.contains(c)) + continue; + else if (c == '\xa') + break; + else + return position; + } + + // Okay, only whitespaces after cursor, so let's check whats before cursor, + // until the ';' - is it just whitespaces too? + newPos = position; + while (newPos > 1 && whitespaceChars.contains(queries[newPos - 1])) + newPos--; + + if (queries[newPos - 1] == ';') + { + // Jackpot! Our cursor is just somewhere in whitespaces after the query. + // Let's consider that prior query as current. + return newPos - 1; + } + + return position; +} + QString getQueryWithPosition(const QString& queries, int position, int* startPos) { + position = getCursorFinalPositionForQueries(queries, position); QStringList queryList = splitQueries(queries); return getQueryWithPosition(queryList, position, startPos); } +QPair getQueryBoundriesForPosition(const QString& contents, int cursorPosition, bool fallBackToPreviousIfNecessary) +{ + int queryStartPos; + QString query = getQueryWithPosition(contents, cursorPosition, &queryStartPos); + TokenList tokens = Lexer::tokenize(query); + tokens.trim(); + tokens.trimRight(Token::OPERATOR, ";"); + + if (tokens.size() == 0 && fallBackToPreviousIfNecessary) + { + // Fallback + cursorPosition = contents.lastIndexOf(";", cursorPosition - 1); + if (cursorPosition > -1) + { + query = getQueryWithPosition(contents, cursorPosition, &queryStartPos); + tokens = Lexer::tokenize(query); + tokens.trim(); + tokens.trimRight(Token::OPERATOR, ";"); + } + } + + if (tokens.size() == 0) + return QPair(-1, -1); + + return QPair(tokens.first()->start + queryStartPos, tokens.last()->end + 1 + queryStartPos); +} + QString trimBindParamPrefix(const QString& param) { if (param == "?") @@ -822,3 +894,15 @@ SqliteDataType toSqliteDataType(const QString& typeStr) return SqliteDataType::UNKNOWN; } + +QByteArray blobFromLiteral(const QString& value) +{ + if (value.length() <= 3) + { + qCritical() << "Call to blobFromLiteral() with blob literal shorter or equal to 3 characters:" << value; + return QByteArray(); + } + + QString hex = value.mid(2, value.length() - 3); + return QByteArray::fromHex(hex.toLatin1()); +} diff --git a/SQLiteStudio3/coreSQLiteStudio/common/utils_sql.h b/SQLiteStudio3/coreSQLiteStudio/common/utils_sql.h index b9cfdcf..353faf3 100644 --- a/SQLiteStudio3/coreSQLiteStudio/common/utils_sql.h +++ b/SQLiteStudio3/coreSQLiteStudio/common/utils_sql.h @@ -78,6 +78,7 @@ API_EXPORT QStringList splitQueries(const QString& sql, bool keepEmptyQueries = API_EXPORT QStringList quickSplitQueries(const QString& sql, bool keepEmptyQueries = true, bool removeComments = false); API_EXPORT QString getQueryWithPosition(const QStringList& queries, int position, int* startPos = nullptr); API_EXPORT QString getQueryWithPosition(const QString& queries, int position, int* startPos = nullptr); +API_EXPORT QPair getQueryBoundriesForPosition(const QString& contents, int cursorPosition, bool fallBackToPreviousIfNecessary); API_EXPORT QList getQueriesWithParamNames(const QString& query); API_EXPORT QList getQueriesWithParamCount(const QString& query); API_EXPORT QueryWithParamNames getQueryWithParamNames(const QString& query); @@ -88,6 +89,7 @@ API_EXPORT QString getBindTokenName(const TokenPtr& token); API_EXPORT QueryAccessMode getQueryAccessMode(const QString& query, bool* isSelect = nullptr); API_EXPORT QStringList valueListToSqlList(const QList& values); API_EXPORT QString trimQueryEnd(const QString& query); +API_EXPORT QByteArray blobFromLiteral(const QString& value); #endif // UTILS_SQL_H diff --git a/SQLiteStudio3/coreSQLiteStudio/completioncomparer.cpp b/SQLiteStudio3/coreSQLiteStudio/completioncomparer.cpp index 28f383d..cd6e2a5 100644 --- a/SQLiteStudio3/coreSQLiteStudio/completioncomparer.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/completioncomparer.cpp @@ -1,8 +1,6 @@ #include "completioncomparer.h" #include "completionhelper.h" #include "parser/ast/sqliteselect.h" -#include "db/db.h" -#include "parser/token.h" #include CompletionComparer::CompletionComparer(CompletionHelper *helper) @@ -82,7 +80,7 @@ bool CompletionComparer::initSelect() contextTables = helper->originalCurrentSelectCore->getContextTables(false); contextDatabases = helper->originalCurrentSelectCore->getContextDatabases(false); - for (SqliteSelect::Core* core : helper->parentSelectCores) + for (SqliteSelect::Core*& core : helper->parentSelectCores) { parentContextColumns += core->getContextColumns(false); parentContextTables += core->getContextTables(false); @@ -124,6 +122,11 @@ bool CompletionComparer::compareColumns(const ExpectedTokenPtr& token1, const Ex case CompletionHelper::Context::CREATE_TABLE: result = compareColumnsForCreateTable(token1, token2, &ok); break; + case CompletionHelper::Context::INSERT_RETURNING: + case CompletionHelper::Context::UPDATE_RETURNING: + case CompletionHelper::Context::DELETE_RETURNING: + result = compareColumnsForReturning(token1, token2, &ok); + break; default: return compareValues(token1, token2); } @@ -136,8 +139,8 @@ bool CompletionComparer::compareColumns(const ExpectedTokenPtr& token1, const Ex return result; // Context info of the column has a strong meaning when sorting (system tables are pushed to the end) - bool firstIsSystem = token1->contextInfo.toLower().startsWith("sqlite_"); - bool secondIsSystem = token2->contextInfo.toLower().startsWith("sqlite_"); + bool firstIsSystem = token1->contextInfo.startsWith("sqlite_", Qt::CaseInsensitive); + bool secondIsSystem = token2->contextInfo.startsWith("sqlite_", Qt::CaseInsensitive); if (firstIsSystem && !secondIsSystem) return false; @@ -152,8 +155,8 @@ bool CompletionComparer::compareColumnsForSelectResCol(const ExpectedTokenPtr &t *result = true; // Checking if columns are on list of columns available in FROM clause - bool token1available = isTokenOnAvailableList(token1); - bool token2available = isTokenOnAvailableList(token2); + bool token1available = isTokenOnAvailableColumnList(token1); + bool token2available = isTokenOnAvailableColumnList(token2); if (token1available && !token2available) return true; @@ -161,8 +164,8 @@ bool CompletionComparer::compareColumnsForSelectResCol(const ExpectedTokenPtr &t return false; // Checking if columns are on list of columns available in FROM clause of any parent SELECT core - bool token1parentAvailable = isTokenOnParentAvailableList(token1); - bool token2parentAvailable = isTokenOnParentAvailableList(token2); + bool token1parentAvailable = isTokenOnParentAvailableColumnList(token1); + bool token2parentAvailable = isTokenOnParentAvailableColumnList(token2); if (token1parentAvailable && !token2parentAvailable) return true; @@ -217,6 +220,23 @@ bool CompletionComparer::compareColumnsForCreateTable(const ExpectedTokenPtr& to return false; } +bool CompletionComparer::compareColumnsForReturning(const ExpectedTokenPtr& token1, const ExpectedTokenPtr& token2, bool* result) +{ + *result = true; + + // Checking if columns are on list of columns available in FROM clause + bool token1available = isTokenOnAvailableColumnList(token1); + bool token2available = isTokenOnAvailableColumnList(token2); + if (token1available && !token2available) + return true; + + if (!token1available && token2available) + return false; + + *result = false; + return false; +} + bool CompletionComparer::compareTables(const ExpectedTokenPtr& token1, const ExpectedTokenPtr& token2) { if (!helper->parsedQuery || helper->parsedQuery->queryType != SqliteQueryType::Select) @@ -380,12 +400,15 @@ bool CompletionComparer::compareByContextOnly(const QString &token1, const QStri return false; } -bool CompletionComparer::isTokenOnAvailableList(const ExpectedTokenPtr &token) +bool CompletionComparer::isTokenOnAvailableColumnList(const ExpectedTokenPtr &token) { - return isTokenOnColumnList(token, helper->selectAvailableColumns); + if (helper->parsedQuery->queryType == SqliteQueryType::Select) + return isTokenOnColumnList(token, helper->selectAvailableColumns); + else + return isTokenOnColumnList(token, helper->theFromAvailableColumns); } -bool CompletionComparer::isTokenOnParentAvailableList(const ExpectedTokenPtr &token) +bool CompletionComparer::isTokenOnParentAvailableColumnList(const ExpectedTokenPtr &token) { return isTokenOnColumnList(token, helper->parentSelectAvailableColumns); } diff --git a/SQLiteStudio3/coreSQLiteStudio/completioncomparer.h b/SQLiteStudio3/coreSQLiteStudio/completioncomparer.h index 4d5dd79..92401a3 100644 --- a/SQLiteStudio3/coreSQLiteStudio/completioncomparer.h +++ b/SQLiteStudio3/coreSQLiteStudio/completioncomparer.h @@ -46,6 +46,7 @@ class CompletionComparer bool compareColumnsForUpdateCol(const ExpectedTokenPtr& token1, const ExpectedTokenPtr& token2, bool* result); bool compareColumnsForDeleteCol(const ExpectedTokenPtr& token1, const ExpectedTokenPtr& token2, bool* result); bool compareColumnsForCreateTable(const ExpectedTokenPtr& token1, const ExpectedTokenPtr& token2, bool* result); + bool compareColumnsForReturning(const ExpectedTokenPtr& token1, const ExpectedTokenPtr& token2, bool* result); bool compareTables(const ExpectedTokenPtr& token1, const ExpectedTokenPtr& token2); bool compareIndexes(const ExpectedTokenPtr& token1, const ExpectedTokenPtr& token2); bool compareTriggers(const ExpectedTokenPtr& token1, const ExpectedTokenPtr& token2); @@ -63,8 +64,8 @@ class CompletionComparer const QList& contextValues, bool handleSystemNames, bool* ok = nullptr); bool compareByContextOnly(const QString &token1, const QString &token2, const QStringList& contextValues, bool handleSystemNames, bool* ok); - bool isTokenOnAvailableList(const ExpectedTokenPtr& token); - bool isTokenOnParentAvailableList(const ExpectedTokenPtr& token); + bool isTokenOnAvailableColumnList(const ExpectedTokenPtr& token); + bool isTokenOnParentAvailableColumnList(const ExpectedTokenPtr& token); bool isTokenOnResultColumns(const ExpectedTokenPtr& token); static bool isTokenOnColumnList(const ExpectedTokenPtr& token, const QList& columnList); }; diff --git a/SQLiteStudio3/coreSQLiteStudio/completionhelper.cpp b/SQLiteStudio3/coreSQLiteStudio/completionhelper.cpp index 675a6a6..b38e42d 100644 --- a/SQLiteStudio3/coreSQLiteStudio/completionhelper.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/completionhelper.cpp @@ -1,6 +1,9 @@ #include "completionhelper.h" #include "completioncomparer.h" #include "db/db.h" +#include "parser/ast/sqlitedelete.h" +#include "parser/ast/sqliteinsert.h" +#include "parser/ast/sqliteupdate.h" #include "parser/keywords.h" #include "parser/parser.h" #include "parser/lexer.h" @@ -147,6 +150,7 @@ QList CompletionHelper::getExpectedTokens(TokenPtr token) switch (token->type) { case Token::CTX_ROWID_KW: + case Token::CTX_STRICT_KW: results += getExpectedToken(ExpectedToken::KEYWORD, token->value); break; case Token::CTX_NEW_KW: @@ -497,6 +501,16 @@ QList CompletionHelper::getObjects(ExpectedToken::Type type, c QList CompletionHelper::getColumns() { QList results; + switch (context) { + case Context::UPDATE_RETURNING: + case Context::INSERT_RETURNING: + case Context::DELETE_RETURNING: + results += getExpectedToken(ExpectedToken::OPERATOR, "*", QString(), QString(), 1); + break; + default: + break; + } + if (previousId) { if (twoIdsBack) @@ -896,6 +910,7 @@ void CompletionHelper::filterOtherId(QList &resultsSoFar, cons case Token::CTX_FK_MATCH: case Token::CTX_PRAGMA: case Token::CTX_ROWID_KW: + case Token::CTX_STRICT_KW: case Token::CTX_NEW_KW: case Token::CTX_OLD_KW: case Token::CTX_ERROR_MESSAGE: @@ -1055,6 +1070,21 @@ void CompletionHelper::extractQueryAdditionalInfo() { context = Context::EXPR; } + else if (isInUpdateReturning()) + { + context = Context::UPDATE_RETURNING; + extractUpdateAvailableColumnsAndTables(); + } + else if (isInInsertReturning()) + { + context = Context::INSERT_RETURNING; + extractInsertAvailableColumnsAndTables(); + } + else if (isInDeleteReturning()) + { + context = Context::DELETE_RETURNING; + extractDeleteAvailableColumnsAndTables(); + } } void CompletionHelper::detectSelectContext() @@ -1134,6 +1164,21 @@ bool CompletionHelper::isInCreateTrigger() return true; } +bool CompletionHelper::isInUpdateReturning() +{ + return isIn(SqliteQueryType::Update, "returning", "RETURNING"); +} + +bool CompletionHelper::isInDeleteReturning() +{ + return isIn(SqliteQueryType::Delete, "returning", "RETURNING"); +} + +bool CompletionHelper::isInInsertReturning() +{ + return isIn(SqliteQueryType::Insert, "returning", "RETURNING"); +} + bool CompletionHelper::isIn(SqliteQueryType queryType, const QString &tokenMapKey, const QString &prefixKeyword) { if (!parsedQuery) @@ -1266,7 +1311,8 @@ void CompletionHelper::initFunctions(Db* db) << "lag(expr)" << "lag(expr, offset)" << "lag(expr, offset, default)" << "lead(expr)" << "lead(expr, offset)" << "lead(expr, offset, default)" << "first_value(expr)" << "last_value(expr)" << "nth_value(expr, N)" - << "substring(X,Y,Z)" << "substring(X,Y)"; + << "substring(X,Y,Z)" << "substring(X,Y)" << "unixepoch(mod,mod,...)" + << "printf(format,...)" << "format(format,...)"; if (!db->isOpen()) return; @@ -1274,7 +1320,7 @@ void CompletionHelper::initFunctions(Db* db) // Parse what we already have QSet handledSignatures; static_qstring(sigTpl, "%1_%2"); - for (const QString& fn : sqlite3Functions) + for (QString& fn : sqlite3Functions) { int argStart = fn.lastIndexOf("("); int argEnd = fn.lastIndexOf(")"); @@ -1405,9 +1451,42 @@ void CompletionHelper::extractSelectAvailableColumnsAndTables() } } +void CompletionHelper::extractInsertAvailableColumnsAndTables() +{ + auto insert = parsedQuery.dynamicCast(); + extractAvailableColumnsAndTables(insert->database, insert->table); +} + +void CompletionHelper::extractDeleteAvailableColumnsAndTables() +{ + auto del = parsedQuery.dynamicCast(); + extractAvailableColumnsAndTables(del->database, del->table); +} + +void CompletionHelper::extractUpdateAvailableColumnsAndTables() +{ + auto update = parsedQuery.dynamicCast(); + theFromAvailableColumns = selectResolver->resolveAvailableColumns(update->from); + theFromAvailableTables = selectResolver->resolveTables(update->from); +} + +void CompletionHelper::extractAvailableColumnsAndTables(const QString& database, const QString& table) +{ + QStringList columnNames = schemaResolver->getTableColumns(database, table); + for (QString& colName : columnNames) { + SelectResolver::Column column; + column.type = SelectResolver::Column::COLUMN; + column.database = database; + column.table = table; + column.column = colName; + theFromAvailableColumns << column; + theFromAvailableTables << column.getTable(); + } +} + void CompletionHelper::extractTableAliasMap() { - for (SelectResolver::Column column : selectAvailableColumns) + for (SelectResolver::Column& column : selectAvailableColumns) { if (column.type != SelectResolver::Column::COLUMN) continue; @@ -1423,7 +1502,7 @@ void CompletionHelper::extractTableAliasMap() // Given the above, we can extract table aliases in an order from deepest // to shallowest, skipping any duplicates, becase the deeper alias is mentioned, // the higher is its priority. - for (SelectResolver::Column column : parentSelectAvailableColumns) + for (SelectResolver::Column& column : parentSelectAvailableColumns) { if (column.type != SelectResolver::Column::COLUMN) continue; @@ -1445,7 +1524,7 @@ void CompletionHelper::extractCreateTableColumns() return; SqliteCreateTablePtr createTable = parsedQuery.dynamicCast(); - for (SqliteCreateTable::Column* col : createTable->columns) + for (SqliteCreateTable::Column*& col : createTable->columns) favoredColumnNames << col->name; } diff --git a/SQLiteStudio3/coreSQLiteStudio/completionhelper.h b/SQLiteStudio3/coreSQLiteStudio/completionhelper.h index 8df1912..3cff8ec 100644 --- a/SQLiteStudio3/coreSQLiteStudio/completionhelper.h +++ b/SQLiteStudio3/coreSQLiteStudio/completionhelper.h @@ -64,7 +64,10 @@ class API_EXPORT CompletionHelper : public QObject DELETE_WHERE, CREATE_TABLE, CREATE_TRIGGER, - EXPR + EXPR, + INSERT_RETURNING, + UPDATE_RETURNING, + DELETE_RETURNING }; static void initFunctions(Db* db); @@ -125,6 +128,10 @@ class API_EXPORT CompletionHelper : public QObject void extractPreviousIdTokens(const TokenList& parsedTokens); void extractQueryAdditionalInfo(); void extractSelectAvailableColumnsAndTables(); + void extractInsertAvailableColumnsAndTables(); + void extractDeleteAvailableColumnsAndTables(); + void extractUpdateAvailableColumnsAndTables(); + void extractAvailableColumnsAndTables(const QString& database, const QString& table); bool extractSelectCore(); SqliteSelect::Core* extractSelectCore(SqliteQueryPtr query); void extractTableAliasMap(); @@ -135,6 +142,9 @@ class API_EXPORT CompletionHelper : public QObject bool isInDeleteWhere(); bool isInCreateTable(); bool isInCreateTrigger(); + bool isInUpdateReturning(); + bool isInDeleteReturning(); + bool isInInsertReturning(); bool isIn(SqliteQueryType queryType, const QString& tokenMapKey, const QString &prefixKeyword); bool isInExpr(); bool testQueryToken(int tokenPosition, Token::Type type, const QString& value, Qt::CaseSensitivity cs = Qt::CaseInsensitive); @@ -230,6 +240,20 @@ class API_EXPORT CompletionHelper : public QObject */ QSet selectAvailableTables; + /** + * @brief theFromAvailableColumns + * Available columns are columns that can be selected basing on what tables are mentioned in FROM clause + * of queries other than SELECT (so INSERT, UPDATE, DELETE), in their RETURNING clause. + */ + QList theFromAvailableColumns; + + /** + * @brief theFromAvailableTables + * Availble tables are tables mentioned in FROM clause of queries other than SELECT (so INSERT, UPDATE, DELETE), + * in their RETURNING clause. + */ + QSet theFromAvailableTables; + /** * @brief parentSelectCores * List of all parent select core objects in order: from direct parent, to the oldest parent. diff --git a/SQLiteStudio3/coreSQLiteStudio/config_builder.h b/SQLiteStudio3/coreSQLiteStudio/config_builder.h index f4e030e..4f651e5 100644 --- a/SQLiteStudio3/coreSQLiteStudio/config_builder.h +++ b/SQLiteStudio3/coreSQLiteStudio/config_builder.h @@ -6,7 +6,7 @@ #include "config_builder/cfgentry.h" #include "config_builder/cfglazyinitializer.h" -#define CFG_CATEGORIES(Type,Body) _CFG_CATEGORIES_WITH_METANAME_AND_TITLE(Type,Body,"",QString()) +#define CFG_CATEGORIES(Type,Body) _CFG_CATEGORIES_WITH_METANAME_AND_TITLE(Type,Body,"",QString(),API_EXPORT) #define CFG_CATEGORY(Name,Body) \ _CFG_CATEGORY_WITH_TITLE(Name,Body,QString()) @@ -34,24 +34,30 @@ #define CFG_INSTANCE(Type) (*Cfg::get##Type##Instance()) +#define CFG_DELETE_INSTANCE(Type) \ + if (Cfg::cfgMainInstance##Type) \ + delete Cfg::cfgMainInstance##Type; \ + Cfg::cfgMainInstance##Type = nullptr; + + // Macros below are kind of private. You should not need to use them explicitly. // They are called from macros above. #define _CFG_CATEGORIES_WITH_METANAME(Type,Body,MetaName) \ - _CFG_CATEGORIES_WITH_METANAME_AND_TITLE(Type,Body,MetaName,QString()) + _CFG_CATEGORIES_WITH_METANAME_AND_TITLE(Type,Body,MetaName,QString(),API_EXPORT) #define _CFG_CATEGORIES_WITH_TITLE(Type,Body,Title) \ - _CFG_CATEGORIES_WITH_METANAME_AND_TITLE(Type,Body,"",Title) + _CFG_CATEGORIES_WITH_METANAME_AND_TITLE(Type,Body,"",Title,API_EXPORT) -#define _CFG_CATEGORIES_WITH_METANAME_AND_TITLE(Type,Body,MetaName,Title) \ +#define _CFG_CATEGORIES_WITH_METANAME_AND_TITLE(Type,Body,MetaName,Title,ExportType) \ namespace Cfg\ {\ - struct API_EXPORT Type : public CfgMain\ + struct ExportType Type : public CfgMain\ {\ Type(bool persistable) : CfgMain(#Type, persistable, MetaName, Title) {}\ Body\ };\ - API_EXPORT Type* get##Type##Instance();\ + ExportType Type* get##Type##Instance();\ } #define _CFG_DEFINE(Type, Persistant) \ diff --git a/SQLiteStudio3/coreSQLiteStudio/config_builder/cfgcategory.cpp b/SQLiteStudio3/coreSQLiteStudio/config_builder/cfgcategory.cpp index a5c661e..6f5451d 100644 --- a/SQLiteStudio3/coreSQLiteStudio/config_builder/cfgcategory.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/config_builder/cfgcategory.cpp @@ -11,7 +11,7 @@ CfgCategory::CfgCategory(const CfgCategory &other) : lastCreatedCfgCategory = this; lastCreatedCfgMain->childs[name] = this; cfgParent = lastCreatedCfgMain; - for (CfgEntry* entry : childs) + for (CfgEntry*& entry : childs) entry->parent = this; } @@ -26,7 +26,10 @@ CfgCategory::CfgCategory(const QString &name, const QString &title) : CfgEntry *CfgCategory::getEntryByName(const QString& name) { - return childs[name]; + if (childs.contains(name)) + return childs[name]; + + return nullptr; } QString CfgCategory::toString() const @@ -44,32 +47,32 @@ void CfgCategory::translateTitle() // This needs to be "QObject::tr" and not just "tr", because this guarantees proper message context for retranslating // titles for objects initialized in global scope (as CfgCategories are). title = QObject::tr(title.toUtf8().constData()); - for (CfgEntry* entry : childs) + for (CfgEntry*& entry : childs) entry->translateTitle(); } void CfgCategory::reset() { - for (CfgEntry* entry : childs) + for (CfgEntry*& entry : childs) entry->reset(); } void CfgCategory::savepoint(bool transaction) { - for (CfgEntry* entry : childs) + for (CfgEntry*& entry : childs) entry->savepoint(transaction); } void CfgCategory::restore() { - for (CfgEntry* entry : childs) + for (CfgEntry*& entry : childs) entry->restore(); } void CfgCategory::release() { - for (CfgEntry* entry : childs) + for (CfgEntry*& entry : childs) entry->release(); } @@ -80,7 +83,8 @@ void CfgCategory::commit() void CfgCategory::rollback() { - rollback(); + for (CfgEntry*& entry : childs) + entry->rollback(); } void CfgCategory::begin() diff --git a/SQLiteStudio3/coreSQLiteStudio/config_builder/cfgentry.cpp b/SQLiteStudio3/coreSQLiteStudio/config_builder/cfgentry.cpp index 9a91ea8..bdbfd29 100644 --- a/SQLiteStudio3/coreSQLiteStudio/config_builder/cfgentry.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/config_builder/cfgentry.cpp @@ -56,7 +56,7 @@ QVariant CfgEntry::get() const return cfgVal; } -QVariant CfgEntry::getDefultValue() const +QVariant CfgEntry::getDefaultValue() const { if (defValueFunc) return (*defValueFunc)(); @@ -99,6 +99,11 @@ QString CfgEntry::getTitle() const return title; } +QString CfgEntry::getName() const +{ + return name; +} + void CfgEntry::translateTitle() { // This needs to be "QObject::tr" and not just "tr". See CfgCategory::translateTitle() for details. @@ -107,7 +112,7 @@ void CfgEntry::translateTitle() void CfgEntry::reset() { - set(getDefultValue()); + set(getDefaultValue()); } bool CfgEntry::isPersistable() const diff --git a/SQLiteStudio3/coreSQLiteStudio/config_builder/cfgentry.h b/SQLiteStudio3/coreSQLiteStudio/config_builder/cfgentry.h index 4c1bbb0..1b5bdd9 100644 --- a/SQLiteStudio3/coreSQLiteStudio/config_builder/cfgentry.h +++ b/SQLiteStudio3/coreSQLiteStudio/config_builder/cfgentry.h @@ -23,12 +23,13 @@ class API_EXPORT CfgEntry : public QObject virtual ~CfgEntry(); QVariant get() const; - QVariant getDefultValue() const; + QVariant getDefaultValue() const; void set(const QVariant& value); operator QString() const; void defineDefaultValueFunction(DefaultValueProviderFunc func); QString getFullKey() const; QString getTitle() const; + QString getName() const; void translateTitle(); void reset(); bool isPersistable() const; diff --git a/SQLiteStudio3/coreSQLiteStudio/config_builder/cfglazyinitializer.cpp b/SQLiteStudio3/coreSQLiteStudio/config_builder/cfglazyinitializer.cpp index 7e554a8..1f5fa5e 100644 --- a/SQLiteStudio3/coreSQLiteStudio/config_builder/cfglazyinitializer.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/config_builder/cfglazyinitializer.cpp @@ -18,7 +18,7 @@ void CfgLazyInitializer::init() if (!instances) instances = new QList(); - for (CfgLazyInitializer* initializer : *instances) + for (CfgLazyInitializer*& initializer : *instances) initializer->doInitialize(); } diff --git a/SQLiteStudio3/coreSQLiteStudio/coreSQLiteStudio.pro b/SQLiteStudio3/coreSQLiteStudio/coreSQLiteStudio.pro index bcd8148..ee78caa 100644 --- a/SQLiteStudio3/coreSQLiteStudio/coreSQLiteStudio.pro +++ b/SQLiteStudio3/coreSQLiteStudio/coreSQLiteStudio.pro @@ -4,7 +4,7 @@ # #------------------------------------------------- -include($$PWD/../dirs.pri) +include($$PWD/../common.pri) include($$PWD/../utils.pri) OBJECTS_DIR = $$OBJECTS_DIR/coreSQLiteStudio @@ -12,13 +12,13 @@ MOC_DIR = $$MOC_DIR/coreSQLiteStudio UI_DIR = $$UI_DIR/coreSQLiteStudio QT -= gui -QT += script network +QT += qml network TARGET = coreSQLiteStudio TEMPLATE = lib win32: { - LIBS += -lpsapi -limagehlp + LIBS += -lpsapi -limagehlp -lversion DEFINES += "SQLITE_API=\"__declspec(dllexport)\"" !debug: { @@ -26,7 +26,7 @@ win32: { THE_DEST = $${DESTDIR} THE_FILE ~= s,/,\\,g THE_DEST ~= s,/,\\,g - QMAKE_POST_LINK += $$QMAKE_COPY $$THE_FILE $$THE_DEST $$escape_expand(\\n\\t) + QMAKE_POST_LINK += "$$QMAKE_COPY $$THE_FILE $$THE_DEST $$escape_expand(\\n\\t);" } } @@ -39,10 +39,10 @@ linux: { macx: { out_file = $$DESTDIR/lib $$TARGET .dylib - QMAKE_POST_LINK += install_name_tool -change libsqlite3.dylib @loader_path/../Frameworks/libsqlite3.dylib $$join(out_file) - QMAKE_POST_LINK += $$QMAKE_MKDIR $$DESTDIR/SQLiteStudio.app - QMAKE_POST_LINK += ; $$QMAKE_MKDIR $$DESTDIR/SQLiteStudio.app/Contents - QMAKE_POST_LINK += ; $$QMAKE_COPY $$PWD/Info.plist $$DESTDIR/SQLiteStudio.app/Contents + QMAKE_POST_LINK += "install_name_tool -change libsqlite3.dylib @loader_path/../Frameworks/libsqlite3.dylib \"$$join(out_file)\"" + QMAKE_POST_LINK += "; $$QMAKE_MKDIR \"$$DESTDIR/SQLiteStudio.app\"" + QMAKE_POST_LINK += "; $$QMAKE_MKDIR \"$$DESTDIR/SQLiteStudio.app/Contents\"" + QMAKE_POST_LINK += "; $$QMAKE_COPY \"$$PWD/Info.plist\" \"$$DESTDIR/SQLiteStudio.app/Contents\"" LIBS += -L/usr/local/lib } @@ -57,24 +57,20 @@ portable { CONFIG += c++17 QMAKE_CXXFLAGS += -pedantic -TRANSLATIONS += translations/coreSQLiteStudio_ro_RO.ts \ - translations/coreSQLiteStudio_de.ts \ - translations/coreSQLiteStudio_it.ts \ - translations/coreSQLiteStudio_zh_CN.ts \ - translations/coreSQLiteStudio_sk.ts \ - translations/coreSQLiteStudio_ru.ts \ - translations/coreSQLiteStudio_pt_BR.ts \ - translations/coreSQLiteStudio_fr.ts \ - translations/coreSQLiteStudio_es.ts \ - translations/coreSQLiteStudio_pl.ts - SOURCES += sqlitestudio.cpp \ + chillout/chillout.cpp \ + chillout/common/common.cpp \ + chillout/posix/posixcrashhandler.cpp \ + chillout/windows/StackWalker.cpp \ + chillout/windows/windowscrashhandler.cpp \ common/compatibility.cpp \ db/queryexecutorsteps/queryexecutorcolumntype.cpp \ + db/queryexecutorsteps/queryexecutorfilter.cpp \ parser/ast/sqlitefilterover.cpp \ parser/ast/sqlitenulls.cpp \ parser/ast/sqlitewindowdefinition.cpp \ returncode.cpp \ + services/codesnippetmanager.cpp \ services/config.cpp \ common/nulldevice.cpp \ parser/lexer_low_lev.cpp \ @@ -112,7 +108,6 @@ SOURCES += sqlitestudio.cpp \ parser/ast/sqliteselect.cpp \ parser/ast/sqliteupdate.cpp \ parser/ast/sqlitevacuum.cpp \ - parser/ast/sqlitecopy.cpp \ parser/ast/sqliteemptyquery.cpp \ parser/parser_helper_stubs.cpp \ parser/ast/sqliteexpr.cpp \ @@ -147,7 +142,6 @@ SOURCES += sqlitestudio.cpp \ db/queryexecutorsteps/queryexecutoraddrowids.cpp \ db/queryexecutorsteps/queryexecutorlimit.cpp \ db/queryexecutorsteps/queryexecutorcolumns.cpp \ - db/queryexecutorsteps/queryexecutorcellsize.cpp \ db/queryexecutorsteps/queryexecutororder.cpp \ db/sqlerrorcodes.cpp \ common/readwritelocker.cpp \ @@ -156,6 +150,7 @@ SOURCES += sqlitestudio.cpp \ csvserializer.cpp \ db/queryexecutorsteps/queryexecutordatasources.cpp \ expectedtoken.cpp \ + sqlfileexecutor.cpp \ sqlhistorymodel.cpp \ db/queryexecutorsteps/queryexecutorexplainmode.cpp \ services/notifymanager.cpp \ @@ -240,14 +235,22 @@ SOURCES += sqlitestudio.cpp \ parser/ast/sqliteupsert.cpp HEADERS += sqlitestudio.h\ + chillout/chillout.h \ + chillout/common/common.h \ + chillout/defines.h \ + chillout/posix/posixcrashhandler.h \ + chillout/windows/StackWalker.h \ + chillout/windows/windowscrashhandler.h \ common/compatibility.h \ coreSQLiteStudio_global.h \ db/queryexecutorsteps/queryexecutorcolumntype.h \ + db/queryexecutorsteps/queryexecutorfilter.h \ db/sqlite3.h \ parser/ast/sqlitefilterover.h \ parser/ast/sqlitenulls.h \ parser/ast/sqlitewindowdefinition.h \ returncode.h \ + services/codesnippetmanager.h \ services/config.h \ common/nulldevice.h \ parser/lexer_low_lev.h \ @@ -285,7 +288,6 @@ HEADERS += sqlitestudio.h\ parser/ast/sqliteselect.h \ parser/ast/sqliteupdate.h \ parser/ast/sqlitevacuum.h \ - parser/ast/sqlitecopy.h \ parser/ast/sqlitequerytype.h \ parser/ast/sqliteemptyquery.h \ parser/parser_helper_stubs.h \ @@ -329,7 +331,6 @@ HEADERS += sqlitestudio.h\ db/queryexecutorsteps/queryexecutoraddrowids.h \ db/queryexecutorsteps/queryexecutorlimit.h \ db/queryexecutorsteps/queryexecutorcolumns.h \ - db/queryexecutorsteps/queryexecutorcellsize.h \ common/unused.h \ db/queryexecutorsteps/queryexecutororder.h \ common/readwritelocker.h \ @@ -337,6 +338,7 @@ HEADERS += sqlitestudio.h\ csvformat.h \ csvserializer.h \ db/queryexecutorsteps/queryexecutordatasources.h \ + sqlfileexecutor.h \ sqlhistorymodel.h \ db/queryexecutorsteps/queryexecutorexplainmode.h \ services/notifymanager.h \ @@ -475,4 +477,5 @@ RESOURCES += \ coreSQLiteStudio.qrc DISTFILES += \ + licenses/icu.txt \ licenses/mit.txt diff --git a/SQLiteStudio3/coreSQLiteStudio/coreSQLiteStudio.qrc b/SQLiteStudio3/coreSQLiteStudio/coreSQLiteStudio.qrc index f0bc89f..5ff8de8 100644 --- a/SQLiteStudio3/coreSQLiteStudio/coreSQLiteStudio.qrc +++ b/SQLiteStudio3/coreSQLiteStudio/coreSQLiteStudio.qrc @@ -18,14 +18,6 @@ licenses/diff_match.txt licenses/gpl.txt licenses/mit.txt - - - translations/coreSQLiteStudio_ro_RO.qm - translations/coreSQLiteStudio_pl.qm - translations/coreSQLiteStudio_ru.qm - translations/coreSQLiteStudio_fr.qm - translations/coreSQLiteStudio_sk.qm - translations/coreSQLiteStudio_zh_CN.qm - translations/coreSQLiteStudio_de.qm + licenses/icu.txt diff --git a/SQLiteStudio3/coreSQLiteStudio/csvformat.h b/SQLiteStudio3/coreSQLiteStudio/csvformat.h index 4b6df69..79807cb 100644 --- a/SQLiteStudio3/coreSQLiteStudio/csvformat.h +++ b/SQLiteStudio3/coreSQLiteStudio/csvformat.h @@ -24,6 +24,7 @@ struct API_EXPORT CsvFormat bool multipleColumnSeparators = false; int maxColumnSeparatorLength = 0; int maxRowSeparatorLength = 0; + bool quotationMark = true; static const CsvFormat DEFAULT; }; diff --git a/SQLiteStudio3/coreSQLiteStudio/csvserializer.cpp b/SQLiteStudio3/coreSQLiteStudio/csvserializer.cpp index aceba03..bc82265 100644 --- a/SQLiteStudio3/coreSQLiteStudio/csvserializer.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/csvserializer.cpp @@ -94,7 +94,7 @@ void typedDeserializeInternal(QTextStream& data, const CsvFormat& format, QList< data >> theChar; sepAsLast = false; - if (!quotes && theChar == '"' ) + if (format.quotationMark && !quotes && theChar == '"' ) { quotes = true; } diff --git a/SQLiteStudio3/coreSQLiteStudio/datatype.cpp b/SQLiteStudio3/coreSQLiteStudio/datatype.cpp index 4fbd7ef..36fe63c 100644 --- a/SQLiteStudio3/coreSQLiteStudio/datatype.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/datatype.cpp @@ -36,6 +36,18 @@ const QStringList DataType::names = []() -> QStringList return list; }(); +QList DataType::valuesForUiDropdown = {BLOB, INTEGER, NUMERIC, REAL, TEXT}; +QList DataType::strictValues = {ANY, INT, INTEGER, REAL, TEXT, BLOB}; + +const QStringList DataType::strictNames = []() -> QStringList +{ + QStringList list; + for (DataType::Enum& type : strictValues) + list << DataType::toString(type); + + return list; +}(); + DataType::DataType() { setEmpty(); @@ -130,22 +142,27 @@ QString DataType::toFullTypeString() const return str; } -bool DataType::isNumeric() +bool DataType::isNumeric() const { return isNumeric(type); } -bool DataType::isBinary() +bool DataType::isBinary() const { return isBinary(typeStr); } -bool DataType::isNull() +bool DataType::isStrict() const +{ + return isStrict(type); +} + +bool DataType::isNull() const { return type == ::DataType::unknown; } -bool DataType::isEmpty() +bool DataType::isEmpty() const { return typeStr.isEmpty(); } @@ -155,7 +172,7 @@ DataType& DataType::operator=(const DataType& other) this->type = other.type; this->typeStr = other.typeStr; this->precision = other.precision; - this->scale = scale; + this->scale = other.scale; return *this; } @@ -206,10 +223,21 @@ bool DataType::isNumeric(DataType::Enum e) case TEXT: case TIME: case VARCHAR: + case ANY: case unknown: break; } - return false; + return false; +} + +bool DataType::isStrict(Enum e) +{ + return strictValues.contains(e); +} + +bool DataType::isStrict(const QString& type) +{ + return isStrict(fromString(type, Qt::CaseInsensitive)); } bool DataType::isBinary(const QString& type) @@ -223,6 +251,21 @@ QList DataType::getAllTypes() return values; } +QList DataType::getAllTypesForUiDropdown() +{ + return valuesForUiDropdown; +} + +QList DataType::getStrictValues() +{ + return strictValues; +} + +QStringList DataType::getStrictValueNames() +{ + return strictNames; +} + QStringList DataType::getAllNames() { return names; diff --git a/SQLiteStudio3/coreSQLiteStudio/datatype.h b/SQLiteStudio3/coreSQLiteStudio/datatype.h index 9d8ca4e..06b4169 100644 --- a/SQLiteStudio3/coreSQLiteStudio/datatype.h +++ b/SQLiteStudio3/coreSQLiteStudio/datatype.h @@ -7,12 +7,12 @@ class API_EXPORT DataType : public QObject { - Q_OBJECT - Q_ENUMS(Enum) + Q_OBJECT public: enum Enum { + ANY, BIGINT, BLOB, BOOLEAN, @@ -32,6 +32,7 @@ class API_EXPORT DataType : public QObject VARCHAR, unknown }; + Q_ENUM(Enum) DataType(); DataType(const QString& fullTypeString); @@ -46,18 +47,24 @@ class API_EXPORT DataType : public QObject QString toString() const; QString toFullTypeString() const; void setEmpty(); - bool isNumeric(); - bool isBinary(); - bool isNull(); - bool isEmpty(); + bool isNumeric() const; + bool isBinary() const; + bool isStrict() const; + bool isNull() const; + bool isEmpty() const; DataType& operator=(const DataType& other); static QString toString(Enum e); static Enum fromString(QString key, Qt::CaseSensitivity cs = Qt::CaseSensitive); static bool isNumeric(Enum e); + static bool isStrict(Enum e); + static bool isStrict(const QString& type); static bool isBinary(const QString& type); static QList getAllTypes(); static QStringList getAllNames(); + static QList getAllTypesForUiDropdown(); + static QList getStrictValues(); + static QStringList getStrictValueNames(); private: Enum type = unknown; @@ -67,6 +74,9 @@ class API_EXPORT DataType : public QObject static QList values; static const QStringList names; + static QList valuesForUiDropdown; + static QList strictValues; + static const QStringList strictNames; }; #endif // DATATYPE_H diff --git a/SQLiteStudio3/coreSQLiteStudio/db/abstractdb.cpp b/SQLiteStudio3/coreSQLiteStudio/db/abstractdb.cpp index 9bfb46f..b137c1f 100644 --- a/SQLiteStudio3/coreSQLiteStudio/db/abstractdb.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/db/abstractdb.cpp @@ -1,15 +1,13 @@ #include "abstractdb.h" -#include "services/dbmanager.h" +#include "services/collationmanager.h" #include "common/utils.h" #include "asyncqueryrunner.h" #include "sqlresultsrow.h" #include "common/utils_sql.h" -#include "services/config.h" #include "sqlerrorresults.h" #include "sqlerrorcodes.h" #include "services/notifymanager.h" #include "services/sqliteextensionmanager.h" -#include "log.h" #include "parser/lexer.h" #include "common/compatibility.h" #include @@ -25,10 +23,12 @@ quint32 AbstractDb::asyncId = 1; AbstractDb::AbstractDb(const QString& name, const QString& path, const QHash& connOptions) : name(name), path(path), connOptions(connOptions) { + connect(SQLITESTUDIO, SIGNAL(aboutToQuit()), this, SLOT(appIsAboutToQuit())); } AbstractDb::~AbstractDb() { + disconnect(SQLITESTUDIO, SIGNAL(aboutToQuit()), this, SLOT(appIsAboutToQuit())); } bool AbstractDb::open() @@ -47,7 +47,11 @@ bool AbstractDb::close() if (deny) return false; - bool res = !isOpen() || closeQuiet(); + bool open = isOpen(); + if (open) + flushWal(); + + bool res = !open || closeQuiet(); if (res) emit disconnected(); @@ -71,7 +75,7 @@ bool AbstractDb::closeQuiet() registeredFunctions.clear(); registeredCollations.clear(); if (FUNCTIONS) // FUNCTIONS is already null when closing db while closing entire app - disconnect(FUNCTIONS, SIGNAL(functionListChanged()), this, SLOT(registerAllFunctions())); + disconnect(FUNCTIONS, SIGNAL(functionListChanged()), this, SLOT(registerUserFunctions())); return res; } @@ -89,40 +93,49 @@ bool AbstractDb::openForProbing() return res; } -void AbstractDb::registerAllFunctions() +void AbstractDb::registerUserFunctions() { - for (const RegisteredFunction& regFn : registeredFunctions) + QMutableSetIterator it(registeredFunctions); + while (it.hasNext()) { + const RegisteredFunction& regFn = it.next(); + if (regFn.builtIn) + continue; + if (!deregisterFunction(regFn.name, regFn.argCount)) qWarning() << "Failed to deregister custom SQL function:" << regFn.name; - } - registeredFunctions.clear(); + it.remove(); + } RegisteredFunction regFn; - for (FunctionManager::ScriptFunction* fnPtr : FUNCTIONS->getScriptFunctionsForDatabase(getName())) + for (FunctionManager::ScriptFunction*& fnPtr : FUNCTIONS->getScriptFunctionsForDatabase(getName())) { regFn.argCount = fnPtr->undefinedArgs ? -1 : fnPtr->arguments.count(); regFn.name = fnPtr->name; regFn.type = fnPtr->type; + regFn.deterministic = fnPtr->deterministic; registerFunction(regFn); } +} - for (FunctionManager::NativeFunction* fnPtr : FUNCTIONS->getAllNativeFunctions()) +void AbstractDb::registerBuiltInFunctions() +{ + RegisteredFunction regFn; + for (FunctionManager::NativeFunction*& fnPtr : FUNCTIONS->getAllNativeFunctions()) { regFn.argCount = fnPtr->undefinedArgs ? -1 : fnPtr->arguments.count(); regFn.name = fnPtr->name; regFn.type = fnPtr->type; + regFn.builtIn = true; + regFn.deterministic = fnPtr->deterministic; registerFunction(regFn); } - - disconnect(FUNCTIONS, SIGNAL(functionListChanged()), this, SLOT(registerAllFunctions())); - connect(FUNCTIONS, SIGNAL(functionListChanged()), this, SLOT(registerAllFunctions())); } -void AbstractDb::registerAllCollations() +void AbstractDb::registerUserCollations() { - for (const QString& name : registeredCollations) + for (QString& name : registeredCollations) { if (!deregisterCollation(name)) qWarning() << "Failed to deregister custom collation:" << name; @@ -130,16 +143,16 @@ void AbstractDb::registerAllCollations() registeredCollations.clear(); - for (const CollationManager::CollationPtr& collPtr : COLLATIONS->getCollationsForDatabase(getName())) + for (CollationManager::CollationPtr& collPtr : COLLATIONS->getCollationsForDatabase(getName())) registerCollation(collPtr->name); - disconnect(COLLATIONS, SIGNAL(collationListChanged()), this, SLOT(registerAllCollations())); - connect(COLLATIONS, SIGNAL(collationListChanged()), this, SLOT(registerAllCollations())); + disconnect(COLLATIONS, SIGNAL(collationListChanged()), this, SLOT(registerUserCollations())); + connect(COLLATIONS, SIGNAL(collationListChanged()), this, SLOT(registerUserCollations())); } void AbstractDb::loadExtensions() { - for (const SqliteExtensionManager::ExtensionPtr& extPtr : SQLITE_EXTENSIONS->getExtensionForDatabase(getName())) + for (SqliteExtensionManager::ExtensionPtr& extPtr : SQLITE_EXTENSIONS->getExtensionForDatabase(getName())) loadedExtensionCount += loadExtension(extPtr->filePath, extPtr->initFunc) ? 1 : 0; connect(SQLITE_EXTENSIONS, SIGNAL(extensionListChanged()), this, SLOT(reloadExtensions())); @@ -377,14 +390,20 @@ bool AbstractDb::openAndSetup() // Implementation specific initialization initAfterOpen(); + // Built-in SQL functions + registerBuiltInFunctions(); + // Load extension loadExtensions(); // Custom SQL functions - registerAllFunctions(); + registerUserFunctions(); // Custom collations - registerAllCollations(); + registerUserCollations(); + + disconnect(FUNCTIONS, SIGNAL(functionListChanged()), this, SLOT(registerUserFunctions())); + connect(FUNCTIONS, SIGNAL(functionListChanged()), this, SLOT(registerUserFunctions())); return result; } @@ -616,6 +635,12 @@ void AbstractDb::asyncQueryFinished(AsyncQueryRunner *runner) emit idle(); } +void AbstractDb::appIsAboutToQuit() +{ + if (isOpen()) + flushWal(); +} + QString AbstractDb::attach(Db* otherDb, bool silent) { QWriteLocker locker(&dbOperLock); @@ -716,7 +741,7 @@ QString AbstractDb::getUniqueNewObjectName(const QString &attachedDbName) QSet existingNames; SqlQueryPtr results = exec(QString("SELECT name FROM %1.sqlite_master").arg(dbName)); - for (SqlResultsRowPtr row : results->getAll()) + for (SqlResultsRowPtr& row : results->getAll()) existingNames << row->value(0).toString(); return randStrNotIn(16, existingNames, false); @@ -875,10 +900,10 @@ void AbstractDb::registerFunction(const AbstractDb::RegisteredFunction& function switch (function.type) { case FunctionManager::ScriptFunction::SCALAR: - successful = registerScalarFunction(function.name, function.argCount); + successful = registerScalarFunction(function.name, function.argCount, function.deterministic); break; case FunctionManager::ScriptFunction::AGGREGATE: - successful = registerAggregateFunction(function.name, function.argCount); + successful = registerAggregateFunction(function.name, function.argCount, function.deterministic); break; } @@ -888,6 +913,12 @@ void AbstractDb::registerFunction(const AbstractDb::RegisteredFunction& function qCritical() << "Could not register SQL function:" << function.name << function.argCount << function.type; } +void AbstractDb::flushWal() +{ + if (!flushWalInternal()) + notifyWarn(tr("Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2").arg(name, getErrorTextInternal())); +} + int qHash(const AbstractDb::RegisteredFunction& fn) { return qHash(fn.name) ^ fn.argCount ^ fn.type; diff --git a/SQLiteStudio3/coreSQLiteStudio/db/abstractdb.h b/SQLiteStudio3/coreSQLiteStudio/db/abstractdb.h index a465679..193f173 100644 --- a/SQLiteStudio3/coreSQLiteStudio/db/abstractdb.h +++ b/SQLiteStudio3/coreSQLiteStudio/db/abstractdb.h @@ -203,6 +203,8 @@ class API_EXPORT AbstractDb : public Db virtual void initAfterOpen(); + virtual bool flushWalInternal() = 0; + void checkForDroppedObject(const QString& query); bool registerCollation(const QString& name); bool deregisterCollation(const QString& name); @@ -341,6 +343,16 @@ class API_EXPORT AbstractDb : public Db * @brief Function type. */ FunctionManager::ScriptFunction::Type type; + + /** + * @brief The deterministic flag used for function registration. + */ + bool deterministic; + + /** + * @brief Flag indicating if this function is SQLiteStudio's built-in function or user's custom function. + */ + bool builtIn = false; }; friend int qHash(const AbstractDb::RegisteredFunction& fn); @@ -414,6 +426,23 @@ class API_EXPORT AbstractDb : public Db */ void registerFunction(const RegisteredFunction& function); + /** + * @brief Flushes any pending WAL log files into the db file. + * + * It actually makes a 'PRAGMA wal_checkpoint(FULL)' call on the database. + * It's called automatically upon closing the database. + */ + void flushWal(); + + /** + * @brief Registers SQLiteStudio's built-in functions in the db. + * + * This function is called once during opening the db. + * + * @see FunctionManager + */ + void registerBuiltInFunctions(); + /** * @brief Connection state lock. * @@ -457,14 +486,16 @@ class API_EXPORT AbstractDb : public Db */ void asyncQueryFinished(AsyncQueryRunner* runner); + void appIsAboutToQuit(); + public slots: bool open(); bool close(); bool openQuiet(); bool closeQuiet(); bool openForProbing(); - void registerAllFunctions(); - void registerAllCollations(); + void registerUserFunctions(); + void registerUserCollations(); void reloadExtensions(); }; diff --git a/SQLiteStudio3/coreSQLiteStudio/db/abstractdb3.h b/SQLiteStudio3/coreSQLiteStudio/db/abstractdb3.h index 72c1614..f8812e9 100644 --- a/SQLiteStudio3/coreSQLiteStudio/db/abstractdb3.h +++ b/SQLiteStudio3/coreSQLiteStudio/db/abstractdb3.h @@ -58,10 +58,11 @@ class AbstractDb3 : public AbstractDb bool initAfterCreated(); void initAfterOpen(); SqlQueryPtr prepare(const QString& query); - QString getTypeLabel(); + bool flushWalInternal(); + QString getTypeLabel() const; bool deregisterFunction(const QString& name, int argCount); - bool registerScalarFunction(const QString& name, int argCount); - bool registerAggregateFunction(const QString& name, int argCount); + bool registerScalarFunction(const QString& name, int argCount, bool deterministic); + bool registerAggregateFunction(const QString& name, int argCount, bool deterministic); bool registerCollationInternal(const QString& name); bool deregisterCollationInternal(const QString& name); @@ -121,6 +122,7 @@ class AbstractDb3 : public AbstractDb }; QString extractLastError(); + QString extractLastError(typename T::handle* handle); void cleanUp(); void resetError(); @@ -406,6 +408,22 @@ int AbstractDb3::getErrorCodeInternal() return dbErrorCode; } +template +bool AbstractDb3::flushWalInternal() +{ + resetError(); + if (!dbHandle) + return false; + + int res = T::wal_checkpoint_v2(dbHandle, nullptr, T::CHECKPOINT_FULL, nullptr, nullptr); + if (res != T::OK) + { + dbErrorMessage = QObject::tr("Could not run WAL checkpoint: %1").arg(extractLastError()); + dbErrorCode = res; + } + return res == T::OK; +} + template bool AbstractDb3::openInternal() { @@ -414,11 +432,11 @@ bool AbstractDb3::openInternal() int res = T::open_v2(path.toUtf8().constData(), &handle, T::OPEN_READWRITE|T::OPEN_CREATE, nullptr); if (res != T::OK) { + dbErrorMessage = QObject::tr("Could not open database: %1").arg(extractLastError(handle)); + dbErrorCode = res; if (handle) T::close(handle); - dbErrorMessage = QObject::tr("Could not open database: %1").arg(extractLastError()); - dbErrorCode = res; return false; } dbHandle = handle; @@ -469,7 +487,7 @@ SqlQueryPtr AbstractDb3::prepare(const QString& query) } template -QString AbstractDb3::getTypeLabel() +QString AbstractDb3::getTypeLabel() const { return T::label; } @@ -485,7 +503,7 @@ bool AbstractDb3::deregisterFunction(const QString& name, int argCount) } template -bool AbstractDb3::registerScalarFunction(const QString& name, int argCount) +bool AbstractDb3::registerScalarFunction(const QString& name, int argCount, bool deterministic) { if (!dbHandle) return false; @@ -495,7 +513,11 @@ bool AbstractDb3::registerScalarFunction(const QString& name, int argCount) userData->name = name; userData->argCount = argCount; - int res = T::create_function_v2(dbHandle, name.toUtf8().constData(), argCount, T::UTF8, userData, + int opts = T::UTF8; + if (deterministic) + opts |= T::DETERMINISTIC; + + int res = T::create_function_v2(dbHandle, name.toUtf8().constData(), argCount, opts, userData, &AbstractDb3::evaluateScalar, nullptr, nullptr, @@ -505,7 +527,7 @@ bool AbstractDb3::registerScalarFunction(const QString& name, int argCount) } template -bool AbstractDb3::registerAggregateFunction(const QString& name, int argCount) +bool AbstractDb3::registerAggregateFunction(const QString& name, int argCount, bool deterministic) { if (!dbHandle) return false; @@ -515,7 +537,11 @@ bool AbstractDb3::registerAggregateFunction(const QString& name, int argCount userData->name = name; userData->argCount = argCount; - int res = T::create_function_v2(dbHandle, name.toUtf8().constData(), argCount, T::UTF8, userData, + int opts = T::UTF8; + if (deterministic) + opts |= T::DETERMINISTIC; + + int res = T::create_function_v2(dbHandle, name.toUtf8().constData(), argCount, opts, userData, nullptr, &AbstractDb3::evaluateAggregateStep, &AbstractDb3::evaluateAggregateFinal, @@ -552,8 +578,14 @@ bool AbstractDb3::deregisterCollationInternal(const QString& name) template QString AbstractDb3::extractLastError() { - dbErrorCode = T::extended_errcode(dbHandle); - dbErrorMessage = QString::fromUtf8(T::errmsg(dbHandle)); + return extractLastError(dbHandle); +} + +template +QString AbstractDb3::extractLastError(typename T::handle* handle) +{ + dbErrorCode = T::extended_errcode(handle); + dbErrorMessage = QString::fromUtf8(T::errmsg(handle)); return dbErrorMessage; } @@ -799,11 +831,25 @@ void AbstractDb3::registerDefaultCollation(void* fnUserData, typename T::hand return; } + SqlQueryPtr results = db->exec("PRAGMA collation_list", Db::Flag::NO_LOCK|Db::Flag::SKIP_DROP_DETECTION); + if (results->isError()) + qWarning() << "Unable to query existing collations while registering needed collation" << collationName << ":" << db->getErrorText(); + + QStringList existingCollations = results->columnAsList("name"); + if (existingCollations.contains(collationName)) + { + qDebug() << "Requested collation" << collationName << "already exists. Probably different input encoding was expected," + << "but SQLite should deal with it. Skipping default collation registration."; + return; + } + int res = T::create_collation_v2(fnDbHandle, collationName, T::UTF8, nullptr, &AbstractDb3::evaluateDefaultCollation, nullptr); if (res != T::OK) qWarning() << "Could not register default collation in AbstractDb3::registerDefaultCollation()."; + else + qDebug() << "Registered default collation on demand, under name:" << collationName; } template diff --git a/SQLiteStudio3/coreSQLiteStudio/db/db.cpp b/SQLiteStudio3/coreSQLiteStudio/db/db.cpp index b3ad91b..11e47f2 100644 --- a/SQLiteStudio3/coreSQLiteStudio/db/db.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/db/db.cpp @@ -46,6 +46,6 @@ QDataStream &operator >>(QDataStream &in, Db*& myObj) QDebug operator<<(QDebug dbg, const Db* db) { - dbg.nospace() << "getName() << ">"; + dbg.nospace() << "getName() : 0x0) << ">"; return dbg.space(); } diff --git a/SQLiteStudio3/coreSQLiteStudio/db/db.h b/SQLiteStudio3/coreSQLiteStudio/db/db.h index d937fb7..1331fff 100644 --- a/SQLiteStudio3/coreSQLiteStudio/db/db.h +++ b/SQLiteStudio3/coreSQLiteStudio/db/db.h @@ -2,9 +2,7 @@ #define DB_H #include -#include "returncode.h" -#include "services/functionmanager.h" -#include "common/readwritelocker.h" +#include "common/global.h" #include "coreSQLiteStudio_global.h" #include "db/attachguard.h" #include "interruptable.h" @@ -604,7 +602,16 @@ class API_EXPORT Db : public QObject, public Interruptable * This is usually the same as DbPlugin::getTitle(), but getTitle() is used in list of plugins in configuration dialog, * while getTypeLabel() is used on databases list. */ - virtual QString getTypeLabel() = 0; + virtual QString getTypeLabel() const = 0; + + /** + * @brief Gets C++ class name implementing this particular Db instance. + * @return Class name. + * + * It can be used to distinguish between different drivers of Db instances. While getTypeLabel() can theoretically return + * same labels for two different drivers, this method will always return distinct class name. + */ + virtual QString getTypeClassName() const = 0; /** * @brief Initializes resources once the all derived Db classes are constructed. @@ -631,6 +638,7 @@ class API_EXPORT Db : public QObject, public Interruptable * @brief Registers scalar custom SQL function. * @param name Name of the function. * @param argCount Number of arguments accepted by the function (-1 for undefined). + * @param deterministic The deterministic function flag used when registering the function. * @return true on success, false on failure. * * Scalar functions are evaluated for each row and their result is used in place of function invokation. @@ -643,12 +651,13 @@ class API_EXPORT Db : public QObject, public Interruptable * * @see FunctionManager */ - virtual bool registerScalarFunction(const QString& name, int argCount) = 0; + virtual bool registerScalarFunction(const QString& name, int argCount, bool deterministic) = 0; /** * @brief Registers aggregate custom SQL function. * @param name Name of the function. * @param argCount Number of arguments accepted by the function (-1 for undefined). + * @param deterministic The deterministic function flag used when registering the function. * @return true on success, false on failure. * * Aggregate functions are used to aggregate many rows into single row. They are common in queries with GROUP BY statements. @@ -666,7 +675,7 @@ class API_EXPORT Db : public QObject, public Interruptable * * @see FunctionManager */ - virtual bool registerAggregateFunction(const QString& name, int argCount) = 0; + virtual bool registerAggregateFunction(const QString& name, int argCount, bool deterministic) = 0; /** * @brief Registers a collation sequence implementation in the database. @@ -707,6 +716,15 @@ class API_EXPORT Db : public QObject, public Interruptable */ virtual bool loadExtension(const QString& filePath, const QString& initFunc = QString()) = 0; + /** + * @brief Creates instance of same (derived) class with same construction parameters passed. + * @return Created instance. + * + * This is useful when one needs to operate on this database out of DbManager context, + * so ownership, connection/disconnection, deletion, etc. all belongs to the caller of this method. + */ + virtual Db* clone() const = 0; + signals: /** * @brief Emitted when the connection to the database was established. @@ -825,22 +843,20 @@ class API_EXPORT Db : public QObject, public Interruptable virtual bool closeQuiet() = 0; /** - * @brief Deregisters all funtions registered in the database and registers new (possibly the same) functions. + * @brief Deregisters previously registered user-defined functions and registers their fresh definition in the db. * * This slot is called from openAndSetup() and then every time user modifies custom SQL functions and commits changes to them. - * It deregisters all functions registered before in this database and registers new functions, currently defined for - * this database. * * @see FunctionManager */ - virtual void registerAllFunctions() = 0; + virtual void registerUserFunctions() = 0; /** * @brief Deregisters all collations registered in the database and registers new (possibly the same) collations. * * This slot is called from openAndsetup() and then every time user modifies custom collations and commits changes to them. */ - virtual void registerAllCollations() = 0; + virtual void registerUserCollations() = 0; }; QDataStream &operator<<(QDataStream &out, const Db* myObj); diff --git a/SQLiteStudio3/coreSQLiteStudio/db/dbsqlite3.cpp b/SQLiteStudio3/coreSQLiteStudio/db/dbsqlite3.cpp index 4778bb2..76ddd20 100644 --- a/SQLiteStudio3/coreSQLiteStudio/db/dbsqlite3.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/db/dbsqlite3.cpp @@ -14,3 +14,13 @@ bool DbSqlite3::complete(const QString& sql) { return Sqlite3::complete(sql.toUtf8().constData()); } + +Db* DbSqlite3::clone() const +{ + return new DbSqlite3(name, path, connOptions); +} + +QString DbSqlite3::getTypeClassName() const +{ + return "DbSqlite3"; +} diff --git a/SQLiteStudio3/coreSQLiteStudio/db/dbsqlite3.h b/SQLiteStudio3/coreSQLiteStudio/db/dbsqlite3.h index 1e7f6e2..54a4230 100644 --- a/SQLiteStudio3/coreSQLiteStudio/db/dbsqlite3.h +++ b/SQLiteStudio3/coreSQLiteStudio/db/dbsqlite3.h @@ -2,7 +2,6 @@ #define DBSQLITE3_H #include "abstractdb3.h" -#include "common/global.h" #include "stdsqlite3driver.h" #include "db/sqlite3.h" @@ -30,6 +29,9 @@ class API_EXPORT DbSqlite3 : public AbstractDb3 DbSqlite3(const QString& name, const QString& path); static bool complete(const QString& sql); + + Db* clone() const; + QString getTypeClassName() const; }; #endif // DBSQLITE3_H diff --git a/SQLiteStudio3/coreSQLiteStudio/db/invaliddb.cpp b/SQLiteStudio3/coreSQLiteStudio/db/invaliddb.cpp index e7acb7b..e001017 100644 --- a/SQLiteStudio3/coreSQLiteStudio/db/invaliddb.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/db/invaliddb.cpp @@ -241,11 +241,16 @@ int InvalidDb::getErrorCode() return 0; } -QString InvalidDb::getTypeLabel() +QString InvalidDb::getTypeLabel() const { return QStringLiteral("INVALID"); } +QString InvalidDb::getTypeClassName() const +{ + return "InvalidDb"; +} + bool InvalidDb::initAfterCreated() { return false; @@ -258,17 +263,19 @@ bool InvalidDb::deregisterFunction(const QString& name, int argCount) return false; } -bool InvalidDb::registerScalarFunction(const QString& name, int argCount) +bool InvalidDb::registerScalarFunction(const QString& name, int argCount, bool deterministic) { UNUSED(name); UNUSED(argCount); + UNUSED(deterministic); return false; } -bool InvalidDb::registerAggregateFunction(const QString& name, int argCount) +bool InvalidDb::registerAggregateFunction(const QString& name, int argCount, bool deterministic) { UNUSED(name); UNUSED(argCount); + UNUSED(deterministic); return false; } @@ -309,11 +316,11 @@ bool InvalidDb::closeQuiet() return false; } -void InvalidDb::registerAllFunctions() +void InvalidDb::registerUserFunctions() { } -void InvalidDb::registerAllCollations() +void InvalidDb::registerUserCollations() { } QString InvalidDb::getError() const @@ -339,6 +346,11 @@ bool InvalidDb::isComplete(const QString& sql) const return false; } +Db* InvalidDb::clone() const +{ + return new InvalidDb(name, path, connOptions); +} + void InvalidDb::interrupt() { } diff --git a/SQLiteStudio3/coreSQLiteStudio/db/invaliddb.h b/SQLiteStudio3/coreSQLiteStudio/db/invaliddb.h index c56da2e..2505079 100644 --- a/SQLiteStudio3/coreSQLiteStudio/db/invaliddb.h +++ b/SQLiteStudio3/coreSQLiteStudio/db/invaliddb.h @@ -48,11 +48,12 @@ class API_EXPORT InvalidDb : public Db QString getUniqueNewObjectName(const QString& attachedDbName); QString getErrorText(); int getErrorCode(); - QString getTypeLabel(); + QString getTypeLabel() const; + QString getTypeClassName() const; bool initAfterCreated(); bool deregisterFunction(const QString& name, int argCount); - bool registerScalarFunction(const QString& name, int argCount); - bool registerAggregateFunction(const QString& name, int argCount); + bool registerScalarFunction(const QString& name, int argCount, bool deterministic); + bool registerAggregateFunction(const QString& name, int argCount, bool deterministic); bool registerCollation(const QString& name); bool deregisterCollation(const QString& name); void interrupt(); @@ -61,6 +62,7 @@ class API_EXPORT InvalidDb : public Db void setError(const QString& value); bool loadExtension(const QString& filePath, const QString& initFunc); bool isComplete(const QString& sql) const; + Db* clone() const; public slots: bool open(); @@ -68,8 +70,8 @@ class API_EXPORT InvalidDb : public Db bool openQuiet(); bool openForProbing(); bool closeQuiet(); - void registerAllFunctions(); - void registerAllCollations(); + void registerUserFunctions(); + void registerUserCollations(); private: QString name; diff --git a/SQLiteStudio3/coreSQLiteStudio/db/queryexecutor.cpp b/SQLiteStudio3/coreSQLiteStudio/db/queryexecutor.cpp index 83dae5d..022bf47 100644 --- a/SQLiteStudio3/coreSQLiteStudio/db/queryexecutor.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/db/queryexecutor.cpp @@ -1,5 +1,5 @@ #include "queryexecutor.h" -#include "sqlerrorresults.h" +#include "db/queryexecutorsteps/queryexecutorfilter.h" #include "sqlerrorcodes.h" #include "services/dbmanager.h" #include "db/sqlerrorcodes.h" @@ -10,7 +10,6 @@ #include "queryexecutorsteps/queryexecutorattaches.h" #include "queryexecutorsteps/queryexecutorcountresults.h" #include "queryexecutorsteps/queryexecutorexecute.h" -#include "queryexecutorsteps/queryexecutorcellsize.h" #include "queryexecutorsteps/queryexecutorlimit.h" #include "queryexecutorsteps/queryexecutororder.h" #include "queryexecutorsteps/queryexecutorwrapdistinctresults.h" @@ -49,7 +48,7 @@ QueryExecutor::QueryExecutor(Db* db, const QString& query, QObject *parent) : setAutoDelete(false); connect(this, SIGNAL(executionFailed(int,QString)), this, SLOT(cleanupAfterExecFailed(int,QString))); - connect(DBLIST, SIGNAL(dbAboutToBeUnloaded(Db*, DbPlugin*)), this, SLOT(cleanupBeforeDbDestroy(Db*))); + connect(DBLIST, SIGNAL(dbAboutToBeUnloaded(Db*,DbPlugin*)), this, SLOT(cleanupBeforeDbDestroy(Db*))); connect(DBLIST, SIGNAL(dbRemoved(Db*)), this, SLOT(cleanupBeforeDbDestroy(Db*))); connect(simpleExecutor, &ChainExecutor::finished, this, &QueryExecutor::simpleExecutionFinished, Qt::DirectConnection); } @@ -82,6 +81,12 @@ void QueryExecutor::setupExecutionChain() executionChain.append(additionalStatelessSteps[AFTER_REPLACED_VIEWS]); executionChain.append(createSteps(AFTER_REPLACED_VIEWS)); + executionChain << new QueryExecutorFilter() + << new QueryExecutorParseQuery("after Filter"); + + executionChain.append(additionalStatelessSteps[AFTER_COLUMN_FILTERS]); + executionChain.append(createSteps(AFTER_COLUMN_FILTERS)); + executionChain << new QueryExecutorAddRowIds() << new QueryExecutorParseQuery("after AddRowIds"); @@ -105,14 +110,8 @@ void QueryExecutor::setupExecutionChain() executionChain.append(additionalStatelessSteps[AFTER_DISTINCT_WRAP]); executionChain.append(createSteps(AFTER_DISTINCT_WRAP)); - executionChain << new QueryExecutorCellSize() - << new QueryExecutorCountResults() - << new QueryExecutorParseQuery("after CellSize"); - - executionChain.append(additionalStatelessSteps[AFTER_CELL_SIZE_LIMIT]); - executionChain.append(createSteps(AFTER_CELL_SIZE_LIMIT)); - - executionChain << new QueryExecutorColumnType() + executionChain << new QueryExecutorCountResults() + << new QueryExecutorColumnType() << new QueryExecutorParseQuery("after ColumnType"); executionChain.append(additionalStatelessSteps[AFTER_COLUMN_TYPES]); @@ -130,13 +129,13 @@ void QueryExecutor::setupExecutionChain() executionChain << new QueryExecutorExecute(); - for (QueryExecutorStep* step : executionChain) + for (QueryExecutorStep*& step : executionChain) step->init(this, context); } void QueryExecutor::clearChain() { - for (QueryExecutorStep* step : executionChain) + for (QueryExecutorStep*& step : executionChain) { if (!allAdditionalStatelsssSteps.contains(step)) delete step; @@ -149,7 +148,7 @@ void QueryExecutor::executeChain() { // Go through all remaining steps bool result; - for (QueryExecutorStep* currentStep : executionChain) + for (QueryExecutorStep*& currentStep : executionChain) { if (isInterrupted()) { @@ -189,7 +188,9 @@ void QueryExecutor::stepFailed(QueryExecutorStep* currentStep) if (isInterrupted()) { + executionMutex.lock(); executionInProgress = false; + executionMutex.unlock(); emit executionFailed(SqlErrorCode::INTERRUPTED, tr("Execution interrupted.")); return; } @@ -416,7 +417,7 @@ QList QueryExecutor::getRowIdResultColumns( int QueryExecutor::getMetaColumnCount() const { int count = 0; - for (ResultRowIdColumnPtr rowIdCol : context->rowIdColumns) + for (ResultRowIdColumnPtr& rowIdCol : context->rowIdColumns) count += rowIdCol->queryExecutorAliasToColumn.size(); return count; @@ -450,7 +451,9 @@ void QueryExecutor::executeSimpleMethod() if (queriesForSimpleExecution.isEmpty()) queriesForSimpleExecution = quickSplitQueries(originalQuery, false, true); - QStringList queriesWithPagination = applyLimitForSimpleMethod(queriesForSimpleExecution); + QStringList queriesWithPagination = applyFiltersAndLimitAndOrderForSimpleMethod(queriesForSimpleExecution); + if (isExecutorLoggingEnabled()) + qDebug() << "Simple Execution Method query:" << queriesWithPagination.join("; "); simpleExecutor->setQueries(queriesWithPagination); simpleExecutor->setDb(db); @@ -479,7 +482,7 @@ void QueryExecutor::simpleExecutionFinished(SqlQueryPtr results) ResultColumnPtr resCol; context->resultColumns.clear(); - for (const QString& colName : results->getColumnNames()) + for (QString& colName : results->getColumnNames()) { resCol = ResultColumnPtr::create(); resCol->displayName = colName; @@ -558,7 +561,7 @@ bool QueryExecutor::simpleExecIsSelect() void QueryExecutor::cleanup() { Db* attDb = nullptr; - for (const QString& attDbName : context->dbNameToAttach.leftValues()) + for (QString& attDbName : context->dbNameToAttach.leftValues()) { attDb = DBLIST->getByName(attDbName, Qt::CaseInsensitive); if (attDbName.isNull()) @@ -597,29 +600,65 @@ bool QueryExecutor::handleRowCountingResults(quint32 asyncId, SqlQueryPtr result return true; } -QStringList QueryExecutor::applyLimitForSimpleMethod(const QStringList &queries) +QStringList QueryExecutor::applyFiltersAndLimitAndOrderForSimpleMethod(const QStringList &queries) { + static_qstring(filtersTpl, "SELECT * FROM (%1) WHERE %2"); static_qstring(tpl, "SELECT * FROM (%1) LIMIT %2 OFFSET %3"); - if (page < 0) - return queries; // no paging requested + static_qstring(sortTpl, "SELECT * FROM (%1) ORDER BY %2"); + static_qstring(sortColTpl, "%1 %2"); + + if (page < 0 && sortOrder.isEmpty()) + return queries; QStringList result = queries; QString lastQuery = queries.last(); bool isSelect = false; getQueryAccessMode(lastQuery, &isSelect); - if (isSelect) + + // FILTERS + QString filters = getFilters(); + if (isSelect && !filters.isEmpty()) { - result.removeLast(); - result << tpl.arg(trimQueryEnd(lastQuery), QString::number(resultsPerPage), QString::number(page * resultsPerPage)); + lastQuery = filtersTpl.arg( + trimQueryEnd(lastQuery), + filters + ); } + + // ORDER BY + if (!sortOrder.isEmpty()) + { + QStringList cols; + for (QueryExecutor::Sort& sort : sortOrder) + { + cols << sortColTpl.arg( + QString::number(sort.column + 1), // in ORDER BY column indexes are 1-based + (sort.order == QueryExecutor::Sort::DESC) ? "DESC" : "ASC" + ); + } + lastQuery = sortTpl.arg(trimQueryEnd(lastQuery), cols.join(", ")); + } + + // LIMIT + if (page >= 0 && isSelect) + { + lastQuery = tpl.arg( + trimQueryEnd(lastQuery), + QString::number(resultsPerPage), + QString::number(page * resultsPerPage) + ); + } + + result.removeLast(); + result << lastQuery; return result; } QList QueryExecutor::createSteps(QueryExecutor::StepPosition position) { QList steps; - for (StepFactory* factory : additionalStatefulStepFactories[position]) + for (StepFactory*& factory : additionalStatefulStepFactories[position]) steps << factory->produceQueryExecutorStep(); return steps; @@ -714,7 +753,7 @@ void QueryExecutor::handleErrorsFromSmartAndSimpleMethods(SqlQueryPtr results) { QString match; QString replaceName; - for (const QString& attachName : context->dbNameToAttach.rightValues()) + for (QString& attachName : context->dbNameToAttach.rightValues()) { match = attachName + "."; replaceName = wrapObjIfNeeded(context->dbNameToAttach.valueByRight(attachName)) + "."; @@ -752,7 +791,7 @@ bool QueryExecutor::wasDataModifyingQuery() const QList QueryExecutor::resolveColumnTypes(Db* db, QList& columns, bool noDbLocking) { QSet tables; - for (ResultColumnPtr col : columns) + for (ResultColumnPtr& col : columns) tables << Table(col->database, col->table); SchemaResolver resolver(db); @@ -774,7 +813,7 @@ QList QueryExecutor::resolveColumnTypes(Db* db, QList datatypeList; Table t; SqliteCreateTable::Column* parsedCol = nullptr; - for (ResultColumnPtr col : columns) + for (ResultColumnPtr& col : columns) { t = Table(col->database, col->table); if (!parsedTables.contains(t)) @@ -969,3 +1008,13 @@ int qHash(QueryExecutor::SourceTable sourceTable) return qHash(sourceTable.database + "." + sourceTable.table + "/" + sourceTable.alias); } + +QString QueryExecutor::getFilters() const +{ + return filters; +} + +void QueryExecutor::setFilters(const QString& newFilters) +{ + filters = newFilters; +} diff --git a/SQLiteStudio3/coreSQLiteStudio/db/queryexecutor.h b/SQLiteStudio3/coreSQLiteStudio/db/queryexecutor.h index ffbcb7b..c8d0b00 100644 --- a/SQLiteStudio3/coreSQLiteStudio/db/queryexecutor.h +++ b/SQLiteStudio3/coreSQLiteStudio/db/queryexecutor.h @@ -2,10 +2,10 @@ #define QUERYEXECUTOR_H #include "db/db.h" -#include "parser/token.h" -#include "selectresolver.h" #include "coreSQLiteStudio_global.h" #include "common/bistrhash.h" +#include "parser/ast/sqlitequery.h" +#include "parser/ast/sqlitequerytype.h" #include "datatype.h" #include #include @@ -15,7 +15,6 @@ /** @file */ class Parser; -class SqliteQuery; class QueryExecutorStep; class DbPlugin; class ChainExecutor; @@ -174,6 +173,10 @@ class API_EXPORT QueryExecutor : public QObject, public QRunnable * in COMPOUND_SELECT case. To learn about common table expression statement, * see http://sqlite.org/lang_with.html */ + VIEW_NOT_EXPANDED,/**< + * The data cell comes from a VIEW that was not expanded (because there were + * multi-level views), therefore it was impossible to get ROWID for the cell. + */ }; /** @@ -652,6 +655,14 @@ class API_EXPORT QueryExecutor : public QObject, public QRunnable * message from smart execution. */ QString errorMessageFromSmartExecution; + + /** + * @brief Flag indicating whether views were replaced/expanded. + * + * In other words, this flag tells whether the ReplaceViews step of query executor + * was executed, or skipped (due to many levels of views). False = skipped. + */ + bool viewsExpanded = false; }; /** @@ -679,8 +690,8 @@ class API_EXPORT QueryExecutor : public QObject, public QRunnable AFTER_REPLACED_COLUMNS, /**< After all columns have been explicitly listed in result list, together with unique alias names */ AFTER_ORDER, /**< After order clause was applied/modified */ AFTER_DISTINCT_WRAP, /**< After wrapping SELECT was added in case of DISTINCT or GROUP BY clauses were used */ - AFTER_CELL_SIZE_LIMIT, /**< After cell result size was limited to save memory usage */ AFTER_COLUMN_TYPES, /**< After typeof() result meta columns were added */ + AFTER_COLUMN_FILTERS, /**< After WHERE filters applied */ AFTER_ROW_LIMIT_AND_OFFSET, /**< After LIMIT and ORDER clauses were added/modified. This is the last possible moment, directly ahead of final query execution */ JUST_BEFORE_EXECUTION, /**< Same as AFTER_ROW_LIMIT_AND_OFFSET */ LAST /**< Same as AFTER_ROW_LIMIT_AND_OFFSET */ @@ -1077,6 +1088,9 @@ class API_EXPORT QueryExecutor : public QObject, public QRunnable bool getNoMetaColumns() const; void setNoMetaColumns(bool value); + void setFilters(const QString& newFilters); + QString getFilters() const; + void handleErrorsFromSmartAndSimpleMethods(SqlQueryPtr results); /** @@ -1222,7 +1236,7 @@ class API_EXPORT QueryExecutor : public QObject, public QRunnable */ bool handleRowCountingResults(quint32 asyncId, SqlQueryPtr results); - QStringList applyLimitForSimpleMethod(const QStringList &queries); + QStringList applyFiltersAndLimitAndOrderForSimpleMethod(const QStringList &queries); /** * @brief Creates instances of steps for all registered factories for given position. @@ -1347,6 +1361,13 @@ class API_EXPORT QueryExecutor : public QObject, public QRunnable */ int dataLengthLimit = -1; + /** + * @brief Optional filters to apply to the query. + * If not empty, it will be appended to the WHERE clause at the very end of execution chain, + * skipping complex result colum analysis, etc. + */ + QString filters; + /** * @brief Limit of queries, after which simple mode is used. * diff --git a/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutoraddrowids.cpp b/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutoraddrowids.cpp index a487623..d294b2c 100644 --- a/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutoraddrowids.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutoraddrowids.cpp @@ -1,7 +1,6 @@ #include "queryexecutoraddrowids.h" #include "parser/ast/sqliteselect.h" #include "selectresolver.h" -#include "common/utils_sql.h" #include "parser/ast/sqlitecreatetable.h" #include "schemaresolver.h" #include "common/compatibility.h" @@ -55,12 +54,14 @@ QHash> QueryExecutorAddRowIds::addR return rowIdColsMap; // Go trough subselects to add ROWID result columns there and collect rowId mapping to use here. - for (SqliteSelect* subSelect : getSubSelects(core)) + for (SqliteSelect*& subSelect : getSubSelects(core)) { unite(rowIdColsMap, addRowIdForTables(subSelect, ok, false)); if (!ok) return rowIdColsMap; + } + core->rebuildTokens(); // Getting all tables we need to get ROWID for SelectResolver resolver(db, select->tokens.detokenize(), context->dbNameToAttach); @@ -71,7 +72,11 @@ QHash> QueryExecutorAddRowIds::addR { if (table.flags & (SelectResolver::FROM_COMPOUND_SELECT | SelectResolver::FROM_DISTINCT_SELECT | SelectResolver::FROM_GROUPED_SELECT | SelectResolver::FROM_CTE_SELECT)) - continue; // we don't get ROWID from compound, distinct or aggregated subselects + continue; // we don't get ROWID from compound, distinct or aggregated subselects. + + // Tables from inside of view don't provide ROWID, if views were not expanded. + if (!context->viewsExpanded && table.flags & SelectResolver::FROM_VIEW) + continue; if (checkInWithClause(table, select->with)) continue; // we don't get ROWID from WITH clause, as it's likely to be recurrent and difficult. TODO: support columns from WITH clause @@ -94,7 +99,7 @@ QList QueryExecutorAddRowIds::getSubSelects(SqliteSelect::Core* c if (core->from->singleSource && core->from->singleSource->select) selects << core->from->singleSource->select; - for (SqliteSelect::Core::JoinSourceOther* otherSource : core->from->otherSources) + for (SqliteSelect::Core::JoinSourceOther*& otherSource : core->from->otherSources) { if (!otherSource->singleSource->select) continue; @@ -118,7 +123,7 @@ QHash QueryExecutorAddRowIds::getNextColNames(const SelectResol return colNames; } - if (createTable->withOutRowId.isNull()) + if (!createTable->withOutRowId) { // It's a regular ROWID table colNames[getNextColName()] = "ROWID"; @@ -142,7 +147,7 @@ QHash QueryExecutorAddRowIds::getNextColNames(const SelectResol SqliteCreateTable::Constraint* tableConstr = dynamic_cast(primaryKey); if (tableConstr) { - for (SqliteIndexedColumn* idxCol : tableConstr->indexedColumns) + for (SqliteIndexedColumn*& idxCol : tableConstr->indexedColumns) colNames[getNextColName()] = idxCol->name; return colNames; @@ -155,7 +160,11 @@ QHash QueryExecutorAddRowIds::getNextColNames(const SelectResol bool QueryExecutorAddRowIds::addResultColumns(SqliteSelect::Core* core, const SelectResolver::Table& table, QHash>& rowIdColsMap, bool isTopSelect) { - SelectResolver::Table keyTable = table; + SelectResolver::Table destilledTable = table; + if (destilledTable.database == "main" && destilledTable.originalDatabase.isNull()) + destilledTable.database = QString(); + + SelectResolver::Table keyTable = destilledTable; // If selecting from named subselect, where table in that subselect has no alias, we need to match // Table by table&database, but excluding alias. @@ -163,18 +172,20 @@ bool QueryExecutorAddRowIds::addResultColumns(SqliteSelect::Core* core, const Se { keyTable.tableAlias = QString(); if (!rowIdColsMap.contains(keyTable)) - keyTable = table; + { + keyTable = destilledTable; + } } // Aliased matching should be performed also against pushed (to old) aliases, due to multi-level subselects. if (!rowIdColsMap.contains(keyTable)) { - for (const SelectResolver::Table& rowIdColsMapTable : rowIdColsMap.keys()) + for (auto rowIdColsMapTable = rowIdColsMap.keyBegin(), end = rowIdColsMap.keyEnd(); rowIdColsMapTable != end; ++rowIdColsMapTable) { - if (!table.oldTableAliases.contains(rowIdColsMapTable.tableAlias, Qt::CaseInsensitive)) + if (!table.oldTableAliases.contains(rowIdColsMapTable->tableAlias, Qt::CaseInsensitive)) continue; - keyTable = rowIdColsMapTable; + keyTable = *rowIdColsMapTable; } } @@ -202,7 +213,7 @@ bool QueryExecutorAddRowIds::addResultColumns(SqliteSelect::Core* core, const Se while (it.hasNext()) { it.next(); - if (!addResultColumns(core, table, it.key(), it.value(), aliasOnlyAsSelectColumn)) + if (!addResultColumns(core, destilledTable, it.key(), it.value(), aliasOnlyAsSelectColumn)) return false; } @@ -228,7 +239,7 @@ bool QueryExecutorAddRowIds::checkInWithClause(const SelectResolver::Table &tabl SqliteWith::CommonTableExpression* cte = nullptr; QString nameToCompareWith = table.tableAlias.isNull() ? table.table : table.tableAlias; - for (SqliteWith::CommonTableExpression* cteItem : with->cteList) + for (SqliteWith::CommonTableExpression*& cteItem : with->cteList) { if (cteItem->table == nameToCompareWith) { diff --git a/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutoraddrowids.h b/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutoraddrowids.h index 1669542..bf4d263 100644 --- a/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutoraddrowids.h +++ b/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutoraddrowids.h @@ -2,7 +2,7 @@ #define QUERYEXECUTORADDROWIDS_H #include "queryexecutorstep.h" -#include "parser/token.h" +#include "selectresolver.h" /** * @brief Adds ROWID to result columns. diff --git a/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutorcellsize.cpp b/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutorcellsize.cpp deleted file mode 100644 index 352c74b..0000000 --- a/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutorcellsize.cpp +++ /dev/null @@ -1,132 +0,0 @@ -#include "queryexecutorcellsize.h" -#include - -bool QueryExecutorCellSize::exec() -{ - if (queryExecutor->getDataLengthLimit() < 0) - return true; - - SqliteSelectPtr select = getSelect(); - if (!select || select->explain) - return true; - - for (SqliteSelect::Core* core : select->coreSelects) - { - if (!applyDataLimit(select.data(), core)) - return false; - } - - updateQueries(); - return true; -} - -bool QueryExecutorCellSize::applyDataLimit(SqliteSelect* select, SqliteSelect::Core* core) -{ - if (core->tokensMap["selcollist"].size() == 0) - { - qCritical() << "No 'selcollist' in Select::Core. Cannot apply cell size limits."; - return false; - } - - bool first = true; - TokenList tokens; - - for (const QueryExecutor::ResultColumnPtr& col : context->resultColumns) - { - if (!first) - tokens += getSeparatorTokens(); - - tokens += getLimitTokens(col); - first = false; - } - - for (const QueryExecutor::ResultRowIdColumnPtr& col : context->rowIdColumns) - { - if (!first) - tokens += getSeparatorTokens(); - - tokens += getNoLimitTokens(col); - first = false; - } - - // Wrapping original select with new select with limited columns - select->tokens = wrapSelect(select->tokens, tokens); - - return true; -} - -TokenList QueryExecutorCellSize::getLimitTokens(const QueryExecutor::ResultColumnPtr& resCol) -{ - // CASE WHEN typeof(alias) IN ('real', 'integer', 'numeric', 'null') THEN alias ELSE substr(alias, 1, limit) END - TokenList newTokens; - newTokens << TokenPtr::create(Token::KEYWORD, "CASE") - << TokenPtr::create(Token::SPACE, " ") - << TokenPtr::create(Token::KEYWORD, "WHEN") - << TokenPtr::create(Token::SPACE, " ") - << TokenPtr::create(Token::OTHER, "typeof") - << TokenPtr::create(Token::PAR_LEFT, "(") - << TokenPtr::create(Token::OTHER, resCol->queryExecutorAlias) - << TokenPtr::create(Token::PAR_RIGHT, ")") - << TokenPtr::create(Token::SPACE, " ") - << TokenPtr::create(Token::KEYWORD, "IN") - << TokenPtr::create(Token::SPACE, " ") - << TokenPtr::create(Token::PAR_LEFT, "(") - << TokenPtr::create(Token::STRING, "'real'") - << TokenPtr::create(Token::OPERATOR, ",") - << TokenPtr::create(Token::SPACE, " ") - << TokenPtr::create(Token::STRING, "'integer'") - << TokenPtr::create(Token::OPERATOR, ",") - << TokenPtr::create(Token::SPACE, " ") - << TokenPtr::create(Token::STRING, "'numeric'") - << TokenPtr::create(Token::OPERATOR, ",") - << TokenPtr::create(Token::SPACE, " ") - << TokenPtr::create(Token::STRING, "'null'") - << TokenPtr::create(Token::PAR_RIGHT, ")") - << TokenPtr::create(Token::SPACE, " ") - << TokenPtr::create(Token::KEYWORD, "THEN") - << TokenPtr::create(Token::SPACE, " ") - << TokenPtr::create(Token::OTHER, resCol->queryExecutorAlias) - << TokenPtr::create(Token::SPACE, " ") - << TokenPtr::create(Token::KEYWORD, "ELSE") - << TokenPtr::create(Token::SPACE, " ") - << TokenPtr::create(Token::OTHER, "substr") - << TokenPtr::create(Token::PAR_LEFT, "(") - << TokenPtr::create(Token::OTHER, resCol->queryExecutorAlias) - << TokenPtr::create(Token::OPERATOR, ",") - << TokenPtr::create(Token::SPACE, " ") - << TokenPtr::create(Token::INTEGER, "1") - << TokenPtr::create(Token::OPERATOR, ",") - << TokenPtr::create(Token::SPACE, " ") - << TokenPtr::create(Token::INTEGER, QString::number(queryExecutor->getDataLengthLimit())) - << TokenPtr::create(Token::PAR_RIGHT, ")") - << TokenPtr::create(Token::SPACE, " ") - << TokenPtr::create(Token::KEYWORD, "END") - << TokenPtr::create(Token::SPACE, " ") - << TokenPtr::create(Token::KEYWORD, "AS") - << TokenPtr::create(Token::SPACE, " ") - << TokenPtr::create(Token::OTHER, resCol->queryExecutorAlias); - return newTokens; -} - -TokenList QueryExecutorCellSize::getNoLimitTokens(const QueryExecutor::ResultRowIdColumnPtr& resCol) -{ - TokenList newTokens; - bool first = true; - for (const QString& col : resCol->queryExecutorAliasToColumn.keys()) - { - if (!first) - newTokens += getSeparatorTokens(); - - newTokens << TokenPtr::create(Token::OTHER, col); - first = false; - } - return newTokens; -} - -TokenList QueryExecutorCellSize::getSeparatorTokens() -{ - TokenList newTokens; - newTokens << TokenPtr::create(Token::OPERATOR, ","); - newTokens << TokenPtr::create(Token::SPACE, " "); - return newTokens; -} diff --git a/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutorcellsize.h b/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutorcellsize.h deleted file mode 100644 index c174c69..0000000 --- a/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutorcellsize.h +++ /dev/null @@ -1,62 +0,0 @@ -#ifndef QUERYEXECUTORCELLSIZE_H -#define QUERYEXECUTORCELLSIZE_H - -#include "queryexecutorstep.h" - -/** - * @brief Applies per-cell byte size limit to the query. - * - * Size of data extracted for each cell is limited in order to avoid huge memory use - * when the database contains column with like 500MB values per row and the query - * returns for example 100 rows. - * - * This is accomplished by wrapping all result columns (except ROWID columns) with substr() SQL function. - * - * SQLiteStudio limits each column to SqlQueryModel::cellDataLengthLimit when displaying - * data in SqlQueryView. - * - * This feature is disabled by default in QueryExecutor and has to be enabled by defining - * QueryExecutor::setDataLengthLimit(). - */ -class QueryExecutorCellSize : public QueryExecutorStep -{ - Q_OBJECT - - public: - bool exec(); - - private: - /** - * @brief Applies limit function to all result columns in given SELECT. - * @param select Select that we want to limit. - * @param core Select's core that we want to limit. - * @return true on success, false on failure. - * - * This method is called for each core in the \p select. - */ - bool applyDataLimit(SqliteSelect* select, SqliteSelect::Core* core); - - /** - * @brief Generates tokens that will return limited value of the result column. - * @param resCol Result column to wrap. - * @return List of tokens. - */ - TokenList getLimitTokens(const QueryExecutor::ResultColumnPtr& resCol); - - /** - * @brief Generates tokens that will return unlimited value of the ROWID result column. - * @param resCol ROWID result column. - * @return List of tokens. - */ - TokenList getNoLimitTokens(const QueryExecutor::ResultRowIdColumnPtr& resCol); - - /** - * @brief Generates tokens representing result columns separator. - * @return List of tokens. - * - * Result columns separator tokens are just a period and a space. - */ - TokenList getSeparatorTokens(); -}; - -#endif // QUERYEXECUTORCELLSIZE_H diff --git a/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutorcolumns.cpp b/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutorcolumns.cpp index 5ababcd..d3f2eea 100644 --- a/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutorcolumns.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutorcolumns.cpp @@ -18,7 +18,7 @@ bool QueryExecutorColumns::exec() // Resolving result columns of the select SelectResolver resolver(db, queryExecutor->getOriginalQuery(), context->dbNameToAttach); resolver.resolveMultiCore = true; - QList columns = resolver.resolve(select.data()).first(); + QList columns = resolver.resolve(select->coreSelects.first()); if (resolver.hasErrors()) { @@ -34,22 +34,21 @@ bool QueryExecutorColumns::exec() // Deleting old result columns and defining new ones SqliteSelect::Core* core = select->coreSelects.first(); - for (SqliteSelect::Core::ResultColumn* resCol : core->resultColumns) + for (SqliteSelect::Core::ResultColumn*& resCol : core->resultColumns) delete resCol; core->resultColumns.clear(); // Count total rowId columns - for (const QueryExecutor::ResultRowIdColumnPtr& rowIdCol : context->rowIdColumns) + for (QueryExecutor::ResultRowIdColumnPtr& rowIdCol : context->rowIdColumns) rowIdColNames += rowIdCol->queryExecutorAliasToColumn.keys(); // Defining result columns QueryExecutor::ResultColumnPtr resultColumn; SqliteSelect::Core::ResultColumn* resultColumnForSelect = nullptr; bool rowIdColumn = false; - int i = 0; QSet usedAliases; - for (const SelectResolver::Column& col : columns) + for (SelectResolver::Column& col : columns) { // Convert column to QueryExecutor result column resultColumn = getResultColumn(col); @@ -68,8 +67,6 @@ bool QueryExecutorColumns::exec() if (!rowIdColumn) context->resultColumns << resultColumn; // store it in context for later usage by any step - - i++; } // qDebug() << "before: " << context->processedQuery; @@ -111,6 +108,9 @@ QueryExecutor::ResultColumnPtr QueryExecutorColumns::getResultColumn(const Selec if (resolvedColumn.flags & SelectResolver::FROM_CTE_SELECT) resultColumn->editionForbiddenReasons << QueryExecutor::ColumnEditionForbiddenReason::COMM_TAB_EXPR; + if (resolvedColumn.flags & SelectResolver::FROM_VIEW) + resultColumn->editionForbiddenReasons << QueryExecutor::ColumnEditionForbiddenReason::VIEW_NOT_EXPANDED; + resultColumn->database = resolvedColumn.originalDatabase; resultColumn->table = resolvedColumn.table; resultColumn->column = resolvedColumn.column; @@ -120,13 +120,10 @@ QueryExecutor::ResultColumnPtr QueryExecutorColumns::getResultColumn(const Selec } if (isRowIdColumnAlias(resultColumn->alias)) - { resultColumn->queryExecutorAlias = resultColumn->alias; - } else - { resultColumn->queryExecutorAlias = getNextColName(); - } + return resultColumn; } @@ -135,10 +132,10 @@ SqliteSelect::Core::ResultColumn* QueryExecutorColumns::getResultColumnForSelect SqliteSelect::Core::ResultColumn* selectResultColumn = new SqliteSelect::Core::ResultColumn(); QString colString = resultColumn->column; - if (col.aliasDefinedInSubQuery) // #2931 - colString = col.alias; + if (col.aliasDefinedInSubQuery) // #2819 (id from old tracker was 2931) + colString = wrapObjIfNeeded(col.alias); - if (!resultColumn->expression) + if (!resultColumn->expression && !col.aliasDefinedInSubQuery) // if alias defined in subquery, it's already wrapped colString = wrapObjIfNeeded(colString); Parser parser; @@ -149,6 +146,7 @@ SqliteSelect::Core::ResultColumn* QueryExecutorColumns::getResultColumnForSelect if (parser.getErrors().size() > 0) qWarning() << "The error was:" << parser.getErrors().first()->getFrom() << ":" << parser.getErrors().first()->getMessage(); + delete selectResultColumn; return nullptr; } @@ -189,7 +187,6 @@ SqliteSelect::Core::ResultColumn* QueryExecutorColumns::getResultColumnForSelect selectResultColumn->alias = aliasTpl.arg(aliasBase, QString::number(nextAliasCounter++)); usedAliases += selectResultColumn->alias; - selectResultColumn->alias = wrapObjIfNeeded(selectResultColumn->alias); return selectResultColumn; } @@ -204,7 +201,7 @@ QString QueryExecutorColumns::resolveAttachedDatabases(const QString &dbName) bool QueryExecutorColumns::isRowIdColumnAlias(const QString& alias) { - for (QueryExecutor::ResultRowIdColumnPtr rowIdColumn : context->rowIdColumns) + for (QueryExecutor::ResultRowIdColumnPtr& rowIdColumn : context->rowIdColumns) { if (rowIdColumn->queryExecutorAliasToColumn.keys().contains(alias)) return true; @@ -224,7 +221,7 @@ void QueryExecutorColumns::wrapWithAliasedColumns(SqliteSelect* select) QString baseColName; QString colName; static_qstring(colNameTpl, "%1:%2"); - for (const QueryExecutor::ResultColumnPtr& resCol : context->resultColumns) + for (QueryExecutor::ResultColumnPtr& resCol : context->resultColumns) { if (!first) outerColumns += sepTokens; @@ -253,9 +250,9 @@ void QueryExecutorColumns::wrapWithAliasedColumns(SqliteSelect* select) first = false; } - for (const QueryExecutor::ResultRowIdColumnPtr& rowIdColumn : context->rowIdColumns) + for (QueryExecutor::ResultRowIdColumnPtr& rowIdColumn : context->rowIdColumns) { - for (const QString& alias : rowIdColumn->queryExecutorAliasToColumn.keys()) + for (QString& alias : rowIdColumn->queryExecutorAliasToColumn.keys()) { if (!first) outerColumns += sepTokens; diff --git a/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutorcolumntype.cpp b/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutorcolumntype.cpp index fb788f4..d0f9387 100644 --- a/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutorcolumntype.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutorcolumntype.cpp @@ -1,4 +1,7 @@ #include "queryexecutorcolumntype.h" +#include "parser/parser.h" +#include +#include bool QueryExecutorColumnType::exec() { @@ -9,7 +12,22 @@ bool QueryExecutorColumnType::exec() if (!select || select->explain) return true; - addTypeColumns(select.data()); + static_qstring(selectTpl, "SELECT *, %1 FROM (%2)"); + + QStringList columns = addTypeColumns(); + QString newSelect = selectTpl.arg(columns.join(", "), select->detokenize()); + + Parser parser; + if (!parser.parse(newSelect) || parser.getQueries().size() == 0) + { + qWarning() << "Could not parse SELECT after applying typeof(). Tried to parse query:\n" << newSelect; + return false; + } + + context->parsedQueries.removeLast(); + context->parsedQueries << parser.getQueries().first(); + + updateQueries(); select->rebuildTokens(); updateQueries(); @@ -17,31 +35,16 @@ bool QueryExecutorColumnType::exec() return true; } -void QueryExecutorColumnType::addTypeColumns(SqliteSelect* select) +QStringList QueryExecutorColumnType::addTypeColumns() { - for (const QueryExecutor::ResultColumnPtr& resCol : context->resultColumns) + static_qstring(typeOfColTpl, "typeof(%1) AS %2"); + QStringList typeColumns; + for (QueryExecutor::ResultColumnPtr& resCol : context->resultColumns) { QString nextCol = getNextColName(); QString targetCol = resCol->queryExecutorAlias; - - for (SqliteSelect::Core* core : select->coreSelects) - { - SqliteSelect::Core::ResultColumn* realResCol = createRealTypeOfResCol(targetCol, nextCol); - core->resultColumns << realResCol; - realResCol->setParent(core); - } - + typeColumns << typeOfColTpl.arg(targetCol, nextCol); context->typeColumnToResultColumnAlias[nextCol] = targetCol; } -} - -SqliteSelect::Core::ResultColumn* QueryExecutorColumnType::createRealTypeOfResCol(const QString& targetCol, const QString& alias) -{ - SqliteExpr* targetColExpr = new SqliteExpr(); - targetColExpr->initId(targetCol); - - SqliteExpr* expr = new SqliteExpr(); - expr->initFunction("typeof", false, {targetColExpr}); - - return new SqliteSelect::Core::ResultColumn(expr, true, alias); + return typeColumns; } diff --git a/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutorcolumntype.h b/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutorcolumntype.h index f492313..92c6324 100644 --- a/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutorcolumntype.h +++ b/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutorcolumntype.h @@ -2,7 +2,7 @@ #define QUERYEXECUTORCOLUMNTYPE_H #include "queryexecutorstep.h" -#include "parser/ast/sqliteselect.h" +//#include "parser/ast/sqliteselect.h" class QueryExecutorColumnType : public QueryExecutorStep { @@ -12,8 +12,8 @@ class QueryExecutorColumnType : public QueryExecutorStep bool exec(); private: - void addTypeColumns(SqliteSelect* select); - SqliteSelect::Core::ResultColumn* createRealTypeOfResCol(const QString& targetCol, const QString& alias); + QStringList addTypeColumns(); +// SqliteSelect::Core::ResultColumn* createRealTypeOfResCol(const QString& targetCol, const QString& alias); }; #endif // QUERYEXECUTORCOLUMNTYPE_H diff --git a/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutordatasources.cpp b/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutordatasources.cpp index be7a873..9ff8026 100644 --- a/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutordatasources.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutordatasources.cpp @@ -1,6 +1,7 @@ #include "queryexecutordatasources.h" #include "parser/ast/sqliteselect.h" #include "selectresolver.h" +#include bool QueryExecutorDataSources::exec() { @@ -19,7 +20,7 @@ bool QueryExecutorDataSources::exec() SqliteSelect::Core* core = select->coreSelects.first(); QSet tables = resolver.resolveTables(core); - for (SelectResolver::Table resolvedTable : tables) + for (const SelectResolver::Table& resolvedTable : tables) { if (resolvedTable.flags & SelectResolver::FROM_CTE_SELECT) continue; diff --git a/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutorfilter.cpp b/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutorfilter.cpp new file mode 100644 index 0000000..bcc9ce4 --- /dev/null +++ b/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutorfilter.cpp @@ -0,0 +1,26 @@ +#include "queryexecutorfilter.h" +#include + +bool QueryExecutorFilter::exec() +{ +// qDebug() << "filters:" << queryExecutor->getFilters(); +// qDebug() << "q1:" << context->processedQuery; + if (queryExecutor->getFilters().trimmed().isEmpty()) + return true; + + SqliteSelectPtr select = getSelect(); + if (!select || select->explain) + return true; + + if (select->tokens.size() < 1) + return true; // shouldn't happen, but if happens, quit gracefully + + static_qstring(selectTpl, "SELECT * FROM (%1) WHERE %2"); + QString newSelect = selectTpl.arg(select->detokenize(), queryExecutor->getFilters()); + + int begin = select->tokens.first()->start; + int length = select->tokens.last()->end - select->tokens.first()->start + 1; + context->processedQuery = context->processedQuery.replace(begin, length, newSelect); +// qDebug() << "q2:" << context->processedQuery; + return true; +} diff --git a/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutorfilter.h b/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutorfilter.h new file mode 100644 index 0000000..0bb8459 --- /dev/null +++ b/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutorfilter.h @@ -0,0 +1,20 @@ +#ifndef QUERYEXECUTORFILTER_H +#define QUERYEXECUTORFILTER_H + +#include "queryexecutorstep.h" + +/** + * @brief Applies WHERE filtering to the query. + * + * This step is executed late in the execution chain. It is useful, when one wants to apply filtering + * without involving whole column/rowid analysis that is done in earlier executor steps. + */ +class QueryExecutorFilter : public QueryExecutorStep +{ + Q_OBJECT + + public: + bool exec(); +}; + +#endif // QUERYEXECUTORFILTER_H diff --git a/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutorlimit.cpp b/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutorlimit.cpp index af1d7a6..afa1297 100644 --- a/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutorlimit.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutorlimit.cpp @@ -1,5 +1,4 @@ #include "queryexecutorlimit.h" -#include "parser/ast/sqlitelimit.h" #include bool QueryExecutorLimit::exec() diff --git a/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutorreplaceviews.cpp b/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutorreplaceviews.cpp index 8195322..b6db4b2 100644 --- a/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutorreplaceviews.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutorreplaceviews.cpp @@ -1,5 +1,6 @@ #include "queryexecutorreplaceviews.h" #include "parser/ast/sqlitecreateview.h" +#include "parser/ast/sqliteselect.h" #include "schemaresolver.h" #include @@ -68,39 +69,20 @@ SqliteCreateViewPtr QueryExecutorReplaceViews::getView(const QString& database, void QueryExecutorReplaceViews::replaceViews(SqliteSelect* select) { SqliteSelect::Core* core = select->coreSelects.first(); - - QStringList viewsInDatabase; - SqliteCreateViewPtr view; - QList sources = core->getAllTypedStatements(); - QList viewSources; - QSet parents; + typedef QPair SourceViewPair; + SqliteCreateViewPtr view; + QList sourceViewPairs; for (SqliteSelect::Core::SingleSource* src : sources) { if (src->table.isNull()) continue; - viewsInDatabase = getViews(src->database); + QStringList viewsInDatabase = getViews(src->database); if (!viewsInDatabase.contains(src->table, Qt::CaseInsensitive)) continue; - parents << src->parentStatement(); - viewSources << src; - } - - if (parents.size() > 1) - { - // Multi-level views (view selecting from view, selecting from view...). - // Such constructs build up easily to huge, non-optimized queries. - // For performance reasons, we won't expand such views. - qDebug() << "Multi-level views. Skipping view expanding feature of query executor. Some columns won't be editable due to that. Number of different view parents:" - << parents.size(); - return; - } - - for (SqliteSelect::Core::SingleSource* src : viewSources) - { view = getView(src->database, src->table); if (!view) { @@ -109,15 +91,50 @@ void QueryExecutorReplaceViews::replaceViews(SqliteSelect* select) continue; } - QString alias = src->alias.isNull() ? view->view : src->alias; + if (usesAnyView(view->select, viewsInDatabase)) + { + // Multi-level views (view selecting from view, selecting from view...). + // Such constructs build up easily to huge, non-optimized queries. + // For performance reasons, we won't expand such views. + qDebug() << "Multi-level views. Skipping view expanding feature of query executor. Some columns won't be editable due to that."; + return; + } + + sourceViewPairs << SourceViewPair(src, view); + } + + for (SourceViewPair& pair : sourceViewPairs) + { + view = pair.second; + + QString alias = pair.first->alias.isNull() ? view->view : pair.first->alias; - src->select = view->select; - src->alias = alias; - src->database = QString(); - src->table = QString(); + pair.first->select = view->select; + pair.first->alias = alias; + pair.first->database = QString(); + pair.first->table = QString(); - replaceViews(src->select); + // replaceViews(pair.first->select); // No recursion, as we avoid multi-level expanding. + } + + context->viewsExpanded = true; +} + +bool QueryExecutorReplaceViews::usesAnyView(SqliteSelect* select, const QStringList& viewsInDatabase) +{ + for (SqliteSelect::Core*& core : select->coreSelects) + { + QList sources = core->getAllTypedStatements(); + for (SqliteSelect::Core::SingleSource* src : sources) + { + if (src->table.isNull()) + continue; + + if (viewsInDatabase.contains(src->table, Qt::CaseInsensitive)) + return true; + } } + return false; } uint qHash(const QueryExecutorReplaceViews::View& view) diff --git a/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutorreplaceviews.h b/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutorreplaceviews.h index 633b0bc..345934d 100644 --- a/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutorreplaceviews.h +++ b/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutorreplaceviews.h @@ -4,6 +4,8 @@ #include "queryexecutorstep.h" #include "parser/ast/sqlitecreateview.h" +class SchemaResolver; + /** * @brief Replaces all references to views in query with SELECTs from those views. * @@ -85,6 +87,14 @@ class QueryExecutorReplaceViews : public QueryExecutorStep */ void replaceViews(SqliteSelect* select); + /** + * @brief Tells whether particular SELECT statement has any View as a data source. + * @param select Parsed SELECT statement. + * @param viewsInDatabase Prepared list of views existing in the database. + * @return true if the SELECT uses at least one existing View. + */ + bool usesAnyView(SqliteSelect* select, const QStringList& viewsInDatabase); + /** * @brief Used for caching view list per database. */ diff --git a/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutorstep.cpp b/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutorstep.cpp index 72dbeec..26b137a 100644 --- a/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutorstep.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutorstep.cpp @@ -1,6 +1,5 @@ #include "queryexecutorstep.h" #include "db/queryexecutor.h" -#include "common/unused.h" QueryExecutorStep::~QueryExecutorStep() { @@ -17,7 +16,7 @@ void QueryExecutorStep::init(QueryExecutor *queryExecutor, QueryExecutor::Contex void QueryExecutorStep::updateQueries() { QString newQuery; - for (SqliteQueryPtr query : context->parsedQueries) + for (SqliteQueryPtr& query : context->parsedQueries) { newQuery += query->detokenize(); newQuery += "\n"; diff --git a/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutorstep.h b/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutorstep.h index fcc0cf6..cc89212 100644 --- a/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutorstep.h +++ b/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutorstep.h @@ -1,7 +1,6 @@ #ifndef QUERYEXECUTORSTEP_H #define QUERYEXECUTORSTEP_H -#include "db/sqlquery.h" #include "parser/ast/sqliteselect.h" #include "db/queryexecutor.h" #include diff --git a/SQLiteStudio3/coreSQLiteStudio/db/sqlquery.cpp b/SQLiteStudio3/coreSQLiteStudio/db/sqlquery.cpp index bef3ed8..0880344 100644 --- a/SQLiteStudio3/coreSQLiteStudio/db/sqlquery.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/db/sqlquery.cpp @@ -1,6 +1,7 @@ #include "sqlquery.h" #include "db/sqlerrorcodes.h" #include "common/utils_sql.h" +#include "common/unused.h" SqlQuery::~SqlQuery() { @@ -141,3 +142,83 @@ QString RowIdConditionBuilder::build() { return conditions.join(" AND "); } + +/********************** SqlQueryError ************************/ + +class API_EXPORT SqlQueryError : public SqlQuery +{ + public: + SqlQueryError(const QString& errorText, int errorCode); + virtual ~SqlQueryError(); + + QString getErrorText(); + int getErrorCode(); + QStringList getColumnNames(); + int columnCount(); + + protected: + SqlResultsRowPtr nextInternal(); + bool hasNextInternal(); + bool execInternal(const QList& args); + bool execInternal(const QHash& args); + + private: + QString errorText; + int errorCode = 0; +}; + +SqlQueryPtr SqlQuery::error(const QString& errorText, int errorCode) +{ + return SqlQueryPtr(new SqlQueryError(errorText, errorCode)); +} + +SqlQueryError::SqlQueryError(const QString& errorText, int errorCode) : + errorText(errorText), errorCode(errorCode) +{ +} + +SqlQueryError::~SqlQueryError() +{ +} + +QString SqlQueryError::getErrorText() +{ + return errorText; +} + +int SqlQueryError::getErrorCode() +{ + return errorCode; +} + +QStringList SqlQueryError::getColumnNames() +{ + return QStringList(); +} + +int SqlQueryError::columnCount() +{ + return 0; +} + +SqlResultsRowPtr SqlQueryError::nextInternal() +{ + return SqlResultsRowPtr(); +} + +bool SqlQueryError::hasNextInternal() +{ + return false; +} + +bool SqlQueryError::execInternal(const QList& args) +{ + UNUSED(args); + return false; +} + +bool SqlQueryError::execInternal(const QHash& args) +{ + UNUSED(args); + return false; +} diff --git a/SQLiteStudio3/coreSQLiteStudio/db/sqlquery.h b/SQLiteStudio3/coreSQLiteStudio/db/sqlquery.h index 17bb464..1eea25c 100644 --- a/SQLiteStudio3/coreSQLiteStudio/db/sqlquery.h +++ b/SQLiteStudio3/coreSQLiteStudio/db/sqlquery.h @@ -65,6 +65,14 @@ typedef QHash RowId; class API_EXPORT SqlQuery { public: + /** + * @brief Produces empty, erronous result. + * @param errorText Error message returned with #getErrorText() of the returned object. + * @param errorCode Error code returned with #getErrorText() of the returned object. + * @return SqlQuery object shared pointer with no results, but with error details populated. + */ + static SqlQueryPtr error(const QString& errorText, int errorCode); + /** * @brief Releases result resources. */ diff --git a/SQLiteStudio3/coreSQLiteStudio/db/stdsqlite3driver.h b/SQLiteStudio3/coreSQLiteStudio/db/stdsqlite3driver.h index 01894c2..c8a3ba3 100644 --- a/SQLiteStudio3/coreSQLiteStudio/db/stdsqlite3driver.h +++ b/SQLiteStudio3/coreSQLiteStudio/db/stdsqlite3driver.h @@ -11,6 +11,7 @@ static const int OPEN_READWRITE = UppercasePrefix##SQLITE_OPEN_READWRITE; \ static const int OPEN_CREATE = UppercasePrefix##SQLITE_OPEN_CREATE; \ static const int UTF8 = UppercasePrefix##SQLITE_UTF8; \ + static const int DETERMINISTIC = UppercasePrefix##SQLITE_DETERMINISTIC; \ static const int INTEGER = UppercasePrefix##SQLITE_INTEGER; \ static const int FLOAT = UppercasePrefix##SQLITE_FLOAT; \ static const int NULL_TYPE = UppercasePrefix##SQLITE_NULL; \ @@ -19,6 +20,10 @@ static const int BUSY = UppercasePrefix##SQLITE_BUSY; \ static const int ROW = UppercasePrefix##SQLITE_ROW; \ static const int DONE = UppercasePrefix##SQLITE_DONE; \ + static const int CHECKPOINT_PASSIVE = UppercasePrefix##SQLITE_CHECKPOINT_PASSIVE; \ + static const int CHECKPOINT_FULL = UppercasePrefix##SQLITE_CHECKPOINT_FULL; \ + static const int CHECKPOINT_RESTART = UppercasePrefix##SQLITE_CHECKPOINT_RESTART; \ + static const int CHECKPOINT_TRUNCATE = UppercasePrefix##SQLITE_CHECKPOINT_TRUNCATE; \ \ typedef Prefix##sqlite3 handle; \ typedef Prefix##sqlite3_stmt stmt; \ @@ -74,6 +79,8 @@ static int reset(stmt* arg) {return Prefix##sqlite3_reset(arg);} \ static int close(handle* arg) {return Prefix##sqlite3_close(arg);} \ static void free(void* arg) {return Prefix##sqlite3_free(arg);} \ + static int wal_checkpoint(handle* arg1, const char* arg2) {return Prefix##sqlite3_wal_checkpoint(arg1, arg2);} \ + static int wal_checkpoint_v2(handle* a1, const char* a2, int a3, int* a4, int* a5) {return Prefix##sqlite3_wal_checkpoint_v2(a1, a2, a3, a4, a5);} \ static int enable_load_extension(handle* arg1, int arg2) {return Prefix##sqlite3_enable_load_extension(arg1, arg2);} \ static int load_extension(handle *arg1, const char *arg2, const char *arg3, char **arg4) {return Prefix##sqlite3_load_extension(arg1, arg2, arg3, arg4);} \ static void* user_data(context* arg) {return Prefix##sqlite3_user_data(arg);} \ diff --git a/SQLiteStudio3/coreSQLiteStudio/dbobjectorganizer.cpp b/SQLiteStudio3/coreSQLiteStudio/dbobjectorganizer.cpp index 99110a0..1c206f9 100644 --- a/SQLiteStudio3/coreSQLiteStudio/dbobjectorganizer.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/dbobjectorganizer.cpp @@ -1,7 +1,6 @@ #include "dbobjectorganizer.h" #include "db/db.h" #include "common/utils_sql.h" -#include "datatype.h" #include "services/notifymanager.h" #include "db/attachguard.h" #include "common/compatibility.h" @@ -198,7 +197,7 @@ bool DbObjectOrganizer::processAll() // Attaching target db if needed AttachGuard attach; - if (!(referencedTables + srcTables).isEmpty()) + if (srcDb->getTypeClassName() == dstDb->getTypeClassName() && !(referencedTables + srcTables).isEmpty()) { attach = srcDb->guardedAttach(dstDb, true); attachName = attach->getName(); @@ -431,12 +430,16 @@ bool DbObjectOrganizer::copyTableToDb(const QString& table) bool DbObjectOrganizer::copyDataAsMiddleware(const QString& table) { - QStringList srcColumns = srcResolver->getTableColumns(srcTable); + static_qstring(selectTpl, "SELECT %1 FROM %2"); + static_qstring(insertTpl, "INSERT INTO %1 (%2) VALUES (%3)"); + + QStringList srcColumns = srcResolver->getTableColumns(srcTable, true); + QString srcColumnsStr = srcColumns.join(", "); QString wrappedSrcTable = wrapObjIfNeeded(srcTable); - SqlQueryPtr results = srcDb->prepare("SELECT * FROM " + wrappedSrcTable); + SqlQueryPtr results = srcDb->prepare(selectTpl.arg(srcColumnsStr, wrappedSrcTable)); if (!results->execute()) { - notifyError(tr("Error while copying data for table %1: %2").arg(table).arg(results->getErrorText())); + notifyError(tr("Error while copying data for table %1: %2").arg(table, results->getErrorText())); return false; } @@ -445,7 +448,7 @@ bool DbObjectOrganizer::copyDataAsMiddleware(const QString& table) argPlaceholderList << "?"; QString wrappedDstTable = wrapObjIfNeeded(table); - QString sql = "INSERT INTO " + wrappedDstTable + " VALUES (" + argPlaceholderList.join(", ") + ")"; + QString sql = insertTpl.arg(wrappedDstTable, srcColumnsStr, argPlaceholderList.join(", ")); SqlQueryPtr insertQuery = dstDb->prepare(sql); SqlResultsRowPtr row; @@ -455,14 +458,14 @@ bool DbObjectOrganizer::copyDataAsMiddleware(const QString& table) row = results->next(); if (!row) { - notifyError(tr("Error while copying data to table %1: %2").arg(table).arg(results->getErrorText())); + notifyError(tr("Error while copying data to table %1: %2").arg(table, results->getErrorText())); return false; } insertQuery->setArgs(row->valueList()); if (!insertQuery->execute()) { - notifyError(tr("Error while copying data to table %1: %2").arg(table).arg(insertQuery->getErrorText())); + notifyError(tr("Error while copying data to table %1: %2").arg(table, insertQuery->getErrorText())); return false; } @@ -480,12 +483,16 @@ bool DbObjectOrganizer::copyDataAsMiddleware(const QString& table) bool DbObjectOrganizer::copyDataUsingAttach(const QString& table) { + static_qstring(insertTpl, "INSERT INTO %1.%2 (%3) SELECT %3 FROM %4"); + QString wrappedSrcTable = wrapObjIfNeeded(srcTable); QString wrappedDstTable = wrapObjIfNeeded(table); - SqlQueryPtr results = srcDb->exec("INSERT INTO " + attachName + "." + wrappedDstTable + " SELECT * FROM " + wrappedSrcTable); + QStringList srcColumns = srcResolver->getTableColumns(srcTable, true); + QString srcColumnsStr = srcColumns.join(", "); + SqlQueryPtr results = srcDb->exec(insertTpl.arg(attachName, wrappedDstTable, srcColumnsStr, wrappedSrcTable)); if (results->isError()) { - notifyError(tr("Error while copying data to table %1: %2").arg(table).arg(results->getErrorText())); + notifyError(tr("Error while copying data to table %1: %2").arg(table, results->getErrorText())); return false; } return true; @@ -508,46 +515,36 @@ void DbObjectOrganizer::dropObject(const QString& name, const QString& type) if (results->isError()) { notifyWarn(tr("Error while dropping source view %1: %2\nTables, indexes, triggers and views copied to database %3 will remain.") - .arg(name).arg(results->getErrorText()).arg(dstDb->getName())); + .arg(name, results->getErrorText(), dstDb->getName())); } } bool DbObjectOrganizer::copyViewToDb(const QString& view) { - return copySimpleObjectToDb(view, tr("Error while creating view in target database: %1")); + return copySimpleObjectToDb(view, tr("Error while creating view in target database: %1"), SchemaResolver::VIEW); } bool DbObjectOrganizer::copyIndexToDb(const QString& index) { - return copySimpleObjectToDb(index, tr("Error while creating index in target database: %1")); + return copySimpleObjectToDb(index, tr("Error while creating index in target database: %1"),SchemaResolver::INDEX); } bool DbObjectOrganizer::copyTriggerToDb(const QString& trigger) { - return copySimpleObjectToDb(trigger, tr("Error while creating trigger in target database: %1")); + return copySimpleObjectToDb(trigger, tr("Error while creating trigger in target database: %1"), SchemaResolver::TRIGGER); } -bool DbObjectOrganizer::copySimpleObjectToDb(const QString& name, const QString& errorMessage) +bool DbObjectOrganizer::copySimpleObjectToDb(const QString& name, const QString& errorMessage, SchemaResolver::ObjectType objectType) { - QString ddl = srcResolver->getObjectDdl(name, SchemaResolver::ANY); + QString ddl = srcResolver->getObjectDdl(name, objectType); if (ddl.trimmed() == ";") // empty query, result of ignored errors in UI return true; - SqlQueryPtr result; - - if (!attachName.isNull()) - { - ddl = prefixSimpleObjectWithAttachName(name, ddl); - if (ddl.isNull()) - return false; - - result = srcDb->exec(ddl); - } - else - { - result = dstDb->exec(ddl); - } + ddl = processSimpleObjectAttachNameAndRename(name, ddl); + if (ddl.isNull()) + return false; + SqlQueryPtr result = srcDb->exec(ddl); if (result->isError()) { notifyError(errorMessage.arg(result->getErrorText())); @@ -572,7 +569,7 @@ void DbObjectOrganizer::collectReferencedTables(const QString& table, const StrH { QList parsedTables; SqliteCreateTablePtr parsedTable; - for (SqliteQueryPtr query : allParsedObjects.values()) + for (SqliteQueryPtr& query : allParsedObjects.values()) { parsedTable = query.dynamicCast(); if (parsedTable) @@ -670,8 +667,11 @@ bool DbObjectOrganizer::execConfirmFunctionInMainThread(const QStringList& table return res; } -QString DbObjectOrganizer::prefixSimpleObjectWithAttachName(const QString& objName, const QString& ddl) +QString DbObjectOrganizer::processSimpleObjectAttachNameAndRename(const QString& objName, const QString& ddl) { + if (attachName.isNull() && !renamed.contains(objName)) + return ddl; + Parser parser; if (!parser.parse(ddl)) { @@ -696,7 +696,12 @@ QString DbObjectOrganizer::prefixSimpleObjectWithAttachName(const QString& objNa return QString(); } - ddlWithDb->setTargetDatabase(attachName); + if (!attachName.isNull()) + ddlWithDb->setTargetDatabase(attachName); + + if (renamed.contains(objName)) + ddlWithDb->setObjectName(renamed[objName]); + query->rebuildTokens(); return query->tokens.detokenize(); } diff --git a/SQLiteStudio3/coreSQLiteStudio/dbobjectorganizer.h b/SQLiteStudio3/coreSQLiteStudio/dbobjectorganizer.h index c8a1f97..14a4b46 100644 --- a/SQLiteStudio3/coreSQLiteStudio/dbobjectorganizer.h +++ b/SQLiteStudio3/coreSQLiteStudio/dbobjectorganizer.h @@ -84,7 +84,7 @@ class API_EXPORT DbObjectOrganizer : public QObject, public QRunnable, public In bool copyViewToDb(const QString& view); bool copyIndexToDb(const QString& index); bool copyTriggerToDb(const QString& trigger); - bool copySimpleObjectToDb(const QString& name, const QString& errorMessage); + bool copySimpleObjectToDb(const QString& name, const QString& errorMessage, SchemaResolver::ObjectType objectType); QSet resolveReferencedTables(const QString& table, const QList& parsedTables); void collectReferencedTables(const QString& table, const StrHash& allParsedObjects); void collectReferencedIndexes(const QString& table); @@ -105,7 +105,7 @@ class API_EXPORT DbObjectOrganizer : public QObject, public QRunnable, public In bool rollback(); void emitFinished(bool success); bool execConfirmFunctionInMainThread(const QStringList& tables); - QString prefixSimpleObjectWithAttachName(const QString& objName, const QString& ddl); + QString processSimpleObjectAttachNameAndRename(const QString& objName, const QString& ddl); ReferencedTablesConfimFunction confirmFunction; NameConflictResolveFunction nameConflictResolveFunction; diff --git a/SQLiteStudio3/coreSQLiteStudio/expectedtoken.cpp b/SQLiteStudio3/coreSQLiteStudio/expectedtoken.cpp index a02f8c9..d6c6f4b 100644 --- a/SQLiteStudio3/coreSQLiteStudio/expectedtoken.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/expectedtoken.cpp @@ -64,7 +64,7 @@ int operator==(const ExpectedTokenPtr& ptr1, const ExpectedTokenPtr& ptr2) int qHash(const ExpectedToken& token) { - return token.type ^ qHash(token.value + "/" + token.value + "/" + token.contextInfo + "/" + token.label + "/" + token.prefix); + return token.type ^ qHash(token.value + "/" + token.contextInfo + "/" + token.label + "/" + token.prefix); } int qHash(const ExpectedTokenPtr& ptr) diff --git a/SQLiteStudio3/coreSQLiteStudio/importworker.cpp b/SQLiteStudio3/coreSQLiteStudio/importworker.cpp index 19cbd07..1a949a9 100644 --- a/SQLiteStudio3/coreSQLiteStudio/importworker.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/importworker.cpp @@ -140,14 +140,17 @@ bool ImportWorker::prepareTable() bool ImportWorker::importData(int& rowCount) { - static const QString insertTemplate = QStringLiteral("INSERT INTO %1 VALUES (%2)"); + static const QString insertTemplate = QStringLiteral("INSERT INTO %1 (%2) VALUES (%3)"); int colCount = targetColumns.size(); QStringList valList; for (int i = 0; i < colCount; i++) valList << "?"; - QString theInsert = insertTemplate.arg(wrapObjIfNeeded(table), valList.join(", ")); + QString theInsert = insertTemplate.arg(wrapObjIfNeeded(table), + targetColumns.join(", "), + valList.join(", ")); + SqlQueryPtr query = db->prepare(theInsert); query->setFlags(Db::Flag::SKIP_DROP_DETECTION|Db::Flag::SKIP_PARAM_COUNTING|Db::Flag::NO_LOCK); diff --git a/SQLiteStudio3/coreSQLiteStudio/licenses/icu.txt b/SQLiteStudio3/coreSQLiteStudio/licenses/icu.txt new file mode 100644 index 0000000..22472dc --- /dev/null +++ b/SQLiteStudio3/coreSQLiteStudio/licenses/icu.txt @@ -0,0 +1,519 @@ +UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE + +See Terms of Use +for definitions of Unicode Inc.’s Data Files and Software. + +NOTICE TO USER: Carefully read the following legal agreement. +BY DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S +DATA FILES ("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"), +YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE +TERMS AND CONDITIONS OF THIS AGREEMENT. +IF YOU DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE +THE DATA FILES OR SOFTWARE. + +COPYRIGHT AND PERMISSION NOTICE + +Copyright © 1991-2023 Unicode, Inc. All rights reserved. +Distributed under the Terms of Use in https://www.unicode.org/copyright.html. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Unicode data files and any associated documentation +(the "Data Files") or Unicode software and any associated documentation +(the "Software") to deal in the Data Files or Software +without restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, and/or sell copies of +the Data Files or Software, and to permit persons to whom the Data Files +or Software are furnished to do so, provided that either +(a) this copyright and permission notice appear with all copies +of the Data Files or Software, or +(b) this copyright and permission notice appear in associated +Documentation. + +THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT OF THIRD PARTY RIGHTS. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS +NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL +DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THE DATA FILES OR SOFTWARE. + +Except as contained in this notice, the name of a copyright holder +shall not be used in advertising or otherwise to promote the sale, +use or other dealings in these Data Files or Software without prior +written authorization of the copyright holder. + +---------------------------------------------------------------------- + +Third-Party Software Licenses + +This section contains third-party software notices and/or additional +terms for licensed third-party software components included within ICU +libraries. + +---------------------------------------------------------------------- + +ICU License - ICU 1.8.1 to ICU 57.1 + +COPYRIGHT AND PERMISSION NOTICE + +Copyright (c) 1995-2016 International Business Machines Corporation and others +All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, and/or sell copies of the Software, and to permit persons +to whom the Software is furnished to do so, provided that the above +copyright notice(s) and this permission notice appear in all copies of +the Software and that both the above copyright notice(s) and this +permission notice appear in supporting documentation. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY +SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER +RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF +CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +Except as contained in this notice, the name of a copyright holder +shall not be used in advertising or otherwise to promote the sale, use +or other dealings in this Software without prior written authorization +of the copyright holder. + +All trademarks and registered trademarks mentioned herein are the +property of their respective owners. + +---------------------------------------------------------------------- + +Chinese/Japanese Word Break Dictionary Data (cjdict.txt) + + # The Google Chrome software developed by Google is licensed under + # the BSD license. Other software included in this distribution is + # provided under other licenses, as set forth below. + # + # The BSD License + # http://opensource.org/licenses/bsd-license.php + # Copyright (C) 2006-2008, Google Inc. + # + # All rights reserved. + # + # Redistribution and use in source and binary forms, with or without + # modification, are permitted provided that the following conditions are met: + # + # Redistributions of source code must retain the above copyright notice, + # this list of conditions and the following disclaimer. + # Redistributions in binary form must reproduce the above + # copyright notice, this list of conditions and the following + # disclaimer in the documentation and/or other materials provided with + # the distribution. + # Neither the name of Google Inc. nor the names of its + # contributors may be used to endorse or promote products derived from + # this software without specific prior written permission. + # + # + # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + # CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + # INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + # BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + # LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + # + # + # The word list in cjdict.txt are generated by combining three word lists + # listed below with further processing for compound word breaking. The + # frequency is generated with an iterative training against Google web + # corpora. + # + # * Libtabe (Chinese) + # - https://sourceforge.net/project/?group_id=1519 + # - Its license terms and conditions are shown below. + # + # * IPADIC (Japanese) + # - http://chasen.aist-nara.ac.jp/chasen/distribution.html + # - Its license terms and conditions are shown below. + # + # ---------COPYING.libtabe ---- BEGIN-------------------- + # + # /* + # * Copyright (c) 1999 TaBE Project. + # * Copyright (c) 1999 Pai-Hsiang Hsiao. + # * All rights reserved. + # * + # * Redistribution and use in source and binary forms, with or without + # * modification, are permitted provided that the following conditions + # * are met: + # * + # * . Redistributions of source code must retain the above copyright + # * notice, this list of conditions and the following disclaimer. + # * . Redistributions in binary form must reproduce the above copyright + # * notice, this list of conditions and the following disclaimer in + # * the documentation and/or other materials provided with the + # * distribution. + # * . Neither the name of the TaBE Project nor the names of its + # * contributors may be used to endorse or promote products derived + # * from this software without specific prior written permission. + # * + # * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + # * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + # * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + # * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + # * REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + # * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + # * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + # * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + # * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + # * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + # * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + # * OF THE POSSIBILITY OF SUCH DAMAGE. + # */ + # + # /* + # * Copyright (c) 1999 Computer Systems and Communication Lab, + # * Institute of Information Science, Academia + # * Sinica. All rights reserved. + # * + # * Redistribution and use in source and binary forms, with or without + # * modification, are permitted provided that the following conditions + # * are met: + # * + # * . Redistributions of source code must retain the above copyright + # * notice, this list of conditions and the following disclaimer. + # * . Redistributions in binary form must reproduce the above copyright + # * notice, this list of conditions and the following disclaimer in + # * the documentation and/or other materials provided with the + # * distribution. + # * . Neither the name of the Computer Systems and Communication Lab + # * nor the names of its contributors may be used to endorse or + # * promote products derived from this software without specific + # * prior written permission. + # * + # * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + # * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + # * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + # * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + # * REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + # * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + # * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + # * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + # * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + # * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + # * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + # * OF THE POSSIBILITY OF SUCH DAMAGE. + # */ + # + # Copyright 1996 Chih-Hao Tsai @ Beckman Institute, + # University of Illinois + # c-tsai4@uiuc.edu http://casper.beckman.uiuc.edu/~c-tsai4 + # + # ---------------COPYING.libtabe-----END-------------------------------- + # + # + # ---------------COPYING.ipadic-----BEGIN------------------------------- + # + # Copyright 2000, 2001, 2002, 2003 Nara Institute of Science + # and Technology. All Rights Reserved. + # + # Use, reproduction, and distribution of this software is permitted. + # Any copy of this software, whether in its original form or modified, + # must include both the above copyright notice and the following + # paragraphs. + # + # Nara Institute of Science and Technology (NAIST), + # the copyright holders, disclaims all warranties with regard to this + # software, including all implied warranties of merchantability and + # fitness, in no event shall NAIST be liable for + # any special, indirect or consequential damages or any damages + # whatsoever resulting from loss of use, data or profits, whether in an + # action of contract, negligence or other tortuous action, arising out + # of or in connection with the use or performance of this software. + # + # A large portion of the dictionary entries + # originate from ICOT Free Software. The following conditions for ICOT + # Free Software applies to the current dictionary as well. + # + # Each User may also freely distribute the Program, whether in its + # original form or modified, to any third party or parties, PROVIDED + # that the provisions of Section 3 ("NO WARRANTY") will ALWAYS appear + # on, or be attached to, the Program, which is distributed substantially + # in the same form as set out herein and that such intended + # distribution, if actually made, will neither violate or otherwise + # contravene any of the laws and regulations of the countries having + # jurisdiction over the User or the intended distribution itself. + # + # NO WARRANTY + # + # The program was produced on an experimental basis in the course of the + # research and development conducted during the project and is provided + # to users as so produced on an experimental basis. Accordingly, the + # program is provided without any warranty whatsoever, whether express, + # implied, statutory or otherwise. The term "warranty" used herein + # includes, but is not limited to, any warranty of the quality, + # performance, merchantability and fitness for a particular purpose of + # the program and the nonexistence of any infringement or violation of + # any right of any third party. + # + # Each user of the program will agree and understand, and be deemed to + # have agreed and understood, that there is no warranty whatsoever for + # the program and, accordingly, the entire risk arising from or + # otherwise connected with the program is assumed by the user. + # + # Therefore, neither ICOT, the copyright holder, or any other + # organization that participated in or was otherwise related to the + # development of the program and their respective officials, directors, + # officers and other employees shall be held liable for any and all + # damages, including, without limitation, general, special, incidental + # and consequential damages, arising out of or otherwise in connection + # with the use or inability to use the program or any product, material + # or result produced or otherwise obtained by using the program, + # regardless of whether they have been advised of, or otherwise had + # knowledge of, the possibility of such damages at any time during the + # project or thereafter. Each user will be deemed to have agreed to the + # foregoing by his or her commencement of use of the program. The term + # "use" as used herein includes, but is not limited to, the use, + # modification, copying and distribution of the program and the + # production of secondary products from the program. + # + # In the case where the program, whether in its original form or + # modified, was distributed or delivered to or received by a user from + # any person, organization or entity other than ICOT, unless it makes or + # grants independently of ICOT any specific warranty to the user in + # writing, such person, organization or entity, will also be exempted + # from and not be held liable to the user for any such damages as noted + # above as far as the program is concerned. + # + # ---------------COPYING.ipadic-----END---------------------------------- + +---------------------------------------------------------------------- + +Lao Word Break Dictionary Data (laodict.txt) + + # Copyright (C) 2016 and later: Unicode, Inc. and others. + # License & terms of use: http://www.unicode.org/copyright.html + # Copyright (c) 2015 International Business Machines Corporation + # and others. All Rights Reserved. + # + # Project: https://github.com/rober42539/lao-dictionary + # Dictionary: https://github.com/rober42539/lao-dictionary/laodict.txt + # License: https://github.com/rober42539/lao-dictionary/LICENSE.txt + # (copied below) + # + # This file is derived from the above dictionary version of Nov 22, 2020 + # ---------------------------------------------------------------------- + # Copyright (C) 2013 Brian Eugene Wilson, Robert Martin Campbell. + # All rights reserved. + # + # Redistribution and use in source and binary forms, with or without + # modification, are permitted provided that the following conditions are met: + # + # Redistributions of source code must retain the above copyright notice, this + # list of conditions and the following disclaimer. Redistributions in binary + # form must reproduce the above copyright notice, this list of conditions and + # the following disclaimer in the documentation and/or other materials + # provided with the distribution. + # + # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + # INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + # OF THE POSSIBILITY OF SUCH DAMAGE. + # -------------------------------------------------------------------------- + +---------------------------------------------------------------------- + +Burmese Word Break Dictionary Data (burmesedict.txt) + + # Copyright (c) 2014 International Business Machines Corporation + # and others. All Rights Reserved. + # + # This list is part of a project hosted at: + # github.com/kanyawtech/myanmar-karen-word-lists + # + # -------------------------------------------------------------------------- + # Copyright (c) 2013, LeRoy Benjamin Sharon + # All rights reserved. + # + # Redistribution and use in source and binary forms, with or without + # modification, are permitted provided that the following conditions + # are met: Redistributions of source code must retain the above + # copyright notice, this list of conditions and the following + # disclaimer. Redistributions in binary form must reproduce the + # above copyright notice, this list of conditions and the following + # disclaimer in the documentation and/or other materials provided + # with the distribution. + # + # Neither the name Myanmar Karen Word Lists, nor the names of its + # contributors may be used to endorse or promote products derived + # from this software without specific prior written permission. + # + # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + # CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + # INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS + # BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED + # TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + # ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + # TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF + # THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + # SUCH DAMAGE. + # -------------------------------------------------------------------------- + +---------------------------------------------------------------------- + +Time Zone Database + + ICU uses the public domain data and code derived from Time Zone +Database for its time zone support. The ownership of the TZ database +is explained in BCP 175: Procedure for Maintaining the Time Zone +Database section 7. + + # 7. Database Ownership + # + # The TZ database itself is not an IETF Contribution or an IETF + # document. Rather it is a pre-existing and regularly updated work + # that is in the public domain, and is intended to remain in the + # public domain. Therefore, BCPs 78 [RFC5378] and 79 [RFC3979] do + # not apply to the TZ Database or contributions that individuals make + # to it. Should any claims be made and substantiated against the TZ + # Database, the organization that is providing the IANA + # Considerations defined in this RFC, under the memorandum of + # understanding with the IETF, currently ICANN, may act in accordance + # with all competent court orders. No ownership claims will be made + # by ICANN or the IETF Trust on the database or the code. Any person + # making a contribution to the database or code waives all rights to + # future claims in that contribution or in the TZ Database. + +---------------------------------------------------------------------- + +Google double-conversion + +Copyright 2006-2011, the V8 project authors. All rights reserved. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +---------------------------------------------------------------------- + +File: aclocal.m4 (only for ICU4C) +Section: pkg.m4 - Macros to locate and utilise pkg-config. + + +Copyright © 2004 Scott James Remnant . +Copyright © 2012-2015 Dan Nicholson + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +02111-1307, USA. + +As a special exception to the GNU General Public License, if you +distribute this file as part of a program that contains a +configuration script generated by Autoconf, you may include it under +the same distribution terms that you use for the rest of that +program. + + +(The condition for the exception is fulfilled because +ICU4C includes a configuration script generated by Autoconf, +namely the `configure` script.) + +---------------------------------------------------------------------- + +File: config.guess (only for ICU4C) + + +This file is free software; you can redistribute it and/or modify it +under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, see . + +As a special exception to the GNU General Public License, if you +distribute this file as part of a program that contains a +configuration script generated by Autoconf, you may include it under +the same distribution terms that you use for the rest of that +program. This Exception is an additional permission under section 7 +of the GNU General Public License, version 3 ("GPLv3"). + + +(The condition for the exception is fulfilled because +ICU4C includes a configuration script generated by Autoconf, +namely the `configure` script.) + +---------------------------------------------------------------------- + +File: install-sh (only for ICU4C) + + +Copyright 1991 by the Massachusetts Institute of Technology + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation, and that the name of M.I.T. not be used in advertising or +publicity pertaining to distribution of the software without specific, +written prior permission. M.I.T. makes no representations about the +suitability of this software for any purpose. It is provided "as is" +without express or implied warranty. diff --git a/SQLiteStudio3/coreSQLiteStudio/log.cpp b/SQLiteStudio3/coreSQLiteStudio/log.cpp index 60a22b2..5f9d72f 100644 --- a/SQLiteStudio3/coreSQLiteStudio/log.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/log.cpp @@ -75,3 +75,8 @@ void logExecutorAfterStep(const QString& str) qDebug() << getLogDateTime() << str; } + +bool isExecutorLoggingEnabled() +{ + return EXECUTOR_DEBUG; +} diff --git a/SQLiteStudio3/coreSQLiteStudio/log.h b/SQLiteStudio3/coreSQLiteStudio/log.h index 0167509..54691f5 100644 --- a/SQLiteStudio3/coreSQLiteStudio/log.h +++ b/SQLiteStudio3/coreSQLiteStudio/log.h @@ -15,6 +15,7 @@ API_EXPORT void logSql(Db* db, const QString& str, const QHash API_EXPORT void logSql(Db* db, const QString& str, const QList& args, Db::Flags flags); API_EXPORT void logExecutorStep(QueryExecutorStep* step); API_EXPORT void logExecutorAfterStep(const QString& str); +API_EXPORT bool isExecutorLoggingEnabled(); API_EXPORT void setSqlLoggingEnabled(bool enabled); API_EXPORT void setSqlLoggingFilter(const QString& filter); API_EXPORT void setExecutorLoggingEnabled(bool enabled); diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitealtertable.cpp b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitealtertable.cpp index 5ca593f..42cb59b 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitealtertable.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitealtertable.cpp @@ -8,7 +8,8 @@ SqliteAlterTable::SqliteAlterTable() } SqliteAlterTable::SqliteAlterTable(const SqliteAlterTable& other) - : SqliteQuery(other), command(other.command), newName(other.newName), database(other.database), table(other.table), columnKw(other.columnKw) + : SqliteQuery(other), command(other.command), newName(other.newName), database(other.database), table(other.table), + dropColumnName(other.dropColumnName), columnKw(other.columnKw) { DEEP_COPY_FIELD(SqliteCreateTable::Column, newColumn); } @@ -32,10 +33,17 @@ SqliteAlterTable::SqliteAlterTable(const QString& name1, const QString& name2, b column->setParent(this); } +SqliteAlterTable::SqliteAlterTable(const QString& name1, const QString& name2, bool columnKw, const QString& dropColumn) + : SqliteAlterTable() +{ + command = Command::DROP_COLUMN; + initName(name1, name2); + this->columnKw = columnKw; + this->dropColumnName = dropColumn; +} + SqliteAlterTable::~SqliteAlterTable() { -// if (newColumn) - // delete newColumn; } SqliteStatement* SqliteAlterTable::clone() @@ -43,6 +51,15 @@ SqliteStatement* SqliteAlterTable::clone() return new SqliteAlterTable(*this); } +QStringList SqliteAlterTable::getColumnsInStatement() +{ + QStringList list; + if (!dropColumnName.isNull()) + list << dropColumnName; + + return list; +} + QStringList SqliteAlterTable::getTablesInStatement() { QStringList list; @@ -60,6 +77,14 @@ QStringList SqliteAlterTable::getDatabasesInStatement() return getStrListFromValue(database); } +TokenList SqliteAlterTable::getColumnTokensInStatement() +{ + if (command == Command::DROP_COLUMN && tokensMap.contains("nm")) + return extractPrintableTokens(tokensMap["nm"]); + + return TokenList(); +} + TokenList SqliteAlterTable::getTableTokensInStatement() { return getObjectTokenListFromFullname(); @@ -110,17 +135,32 @@ TokenList SqliteAlterTable::rebuildTokensFromContents() builder.withOther(table).withSpace(); - if (newColumn) - { - builder.withKeyword("ADD").withSpace(); - if (columnKw) - builder.withKeyword("COLUMN").withSpace(); - - builder.withStatement(newColumn); - } - else if (!newName.isNull()) - { - builder.withKeyword("RENAME").withSpace().withKeyword("TO").withSpace().withOther(newName); + switch (command) { + case Command::RENAME: + { + builder.withKeyword("RENAME").withSpace().withKeyword("TO").withSpace().withOther(newName); + break; + } + case Command::ADD_COLUMN: + { + builder.withKeyword("ADD").withSpace(); + if (columnKw) + builder.withKeyword("COLUMN").withSpace(); + + builder.withStatement(newColumn); + break; + } + case Command::DROP_COLUMN: + { + builder.withKeyword("DROP").withSpace(); + if (columnKw) + builder.withKeyword("COLUMN").withSpace(); + + builder.withOther(dropColumnName); + break; + } + case Command::null: + break; } builder.withOperator(";"); diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitealtertable.h b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitealtertable.h index fbac3fe..1733dfc 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitealtertable.h +++ b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitealtertable.h @@ -11,6 +11,7 @@ class API_EXPORT SqliteAlterTable : public SqliteQuery { RENAME, ADD_COLUMN, + DROP_COLUMN, null }; @@ -18,12 +19,15 @@ class API_EXPORT SqliteAlterTable : public SqliteQuery SqliteAlterTable(const SqliteAlterTable& other); SqliteAlterTable(const QString& name1, const QString& name2, const QString& newName); SqliteAlterTable(const QString& name1, const QString& name2, bool columnKw, SqliteCreateTable::Column* column); + SqliteAlterTable(const QString& name1, const QString& name2, bool columnKw, const QString& dropColumn); ~SqliteAlterTable(); SqliteStatement* clone(); protected: + QStringList getColumnsInStatement(); QStringList getTablesInStatement(); QStringList getDatabasesInStatement(); + TokenList getColumnTokensInStatement(); TokenList getTableTokensInStatement(); TokenList getDatabaseTokensInStatement(); QList getFullObjectsInStatement(); @@ -37,6 +41,7 @@ class API_EXPORT SqliteAlterTable : public SqliteQuery QString newName = QString(); QString database = QString(); QString table = QString(); + QString dropColumnName = QString(); bool columnKw = false; SqliteCreateTable::Column* newColumn = nullptr; }; diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecopy.cpp b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecopy.cpp deleted file mode 100644 index c3ff500..0000000 --- a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecopy.cpp +++ /dev/null @@ -1,92 +0,0 @@ -#include "sqlitecopy.h" -#include "sqlitequerytype.h" - -#include - -SqliteCopy::SqliteCopy() -{ - queryType = SqliteQueryType::Copy; -} - -SqliteCopy::SqliteCopy(const SqliteCopy& other) : - SqliteQuery(other), onConflict(other.onConflict), database(other.database), table(other.table), file(other.file), delimiter(other.delimiter) -{ -} - -SqliteCopy::SqliteCopy(SqliteConflictAlgo onConflict, const QString &name1, const QString &name2, const QString &name3, const QString &delim) - : SqliteCopy() -{ - this->onConflict = onConflict; - - if (!name2.isNull()) - { - database = name1; - table = name2; - } - else - table = name1; - - file = name3; - delimiter = delim; -} - -SqliteStatement* SqliteCopy::clone() -{ - return new SqliteCopy(*this); -} - -QStringList SqliteCopy::getTablesInStatement() -{ - return getStrListFromValue(table); -} - -QStringList SqliteCopy::getDatabasesInStatement() -{ - return getStrListFromValue(database); -} - -TokenList SqliteCopy::getTableTokensInStatement() -{ - return getObjectTokenListFromNmDbnm(); -} - -TokenList SqliteCopy::getDatabaseTokensInStatement() -{ - return getDbTokenListFromNmDbnm(); -} - -QList SqliteCopy::getFullObjectsInStatement() -{ - QList result; - - FullObject fullObj = getFullObjectFromNmDbnm(FullObject::TABLE); - if (fullObj.isValid()) - result << fullObj; - - fullObj = getFirstDbFullObject(); - if (fullObj.isValid()) - result << fullObj; - - return result; -} - -TokenList SqliteCopy::rebuildTokensFromContents() -{ - StatementTokenBuilder builder; - builder.withTokens(SqliteQuery::rebuildTokensFromContents()); - builder.withKeyword("COPY").withSpace(); - if (onConflict != SqliteConflictAlgo::null) - builder.withKeyword("OR").withSpace().withKeyword(sqliteConflictAlgo(onConflict)).withSpace(); - - if (!database.isNull()) - builder.withOther(database).withSpace(); - - builder.withOther(table).withSpace().withKeyword("FROM").withSpace().withString(file); - - if (!delimiter.isNull()) - builder.withSpace().withKeyword("USING").withSpace().withKeyword("DELIMITERS").withSpace().withString(delimiter); - - builder.withOperator(";"); - - return builder.build(); -} diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecopy.h b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecopy.h deleted file mode 100644 index 1e4b5b7..0000000 --- a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecopy.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef SQLITECOPY_H -#define SQLITECOPY_H - -#include "sqlitequery.h" -#include "sqliteconflictalgo.h" - -class API_EXPORT SqliteCopy : public SqliteQuery -{ - public: - SqliteCopy(); - SqliteCopy(const SqliteCopy& other); - SqliteCopy(SqliteConflictAlgo onConflict, const QString& name1, const QString& name2, const QString& name3, const QString& delim = QString()); - SqliteStatement* clone(); - - SqliteConflictAlgo onConflict = SqliteConflictAlgo::null; - QString database = QString(); - QString table = QString(); - QString file = QString(); - QString delimiter = QString(); - - protected: - QStringList getTablesInStatement(); - QStringList getDatabasesInStatement(); - TokenList getTableTokensInStatement(); - TokenList getDatabaseTokensInStatement(); - QList getFullObjectsInStatement(); - TokenList rebuildTokensFromContents(); -}; - -typedef QSharedPointer SqliteCopyPtr; - -#endif // SQLITECOPY_H diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecreateindex.cpp b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecreateindex.cpp index b747c33..1749e9a 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecreateindex.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecreateindex.cpp @@ -172,3 +172,13 @@ void SqliteCreateIndex::setTargetDatabase(const QString& database) { this->database = database; } + +QString SqliteCreateIndex::getObjectName() const +{ + return index; +} + +void SqliteCreateIndex::setObjectName(const QString& name) +{ + index = name; +} diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecreateindex.h b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecreateindex.h index 870ed17..b8876a2 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecreateindex.h +++ b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecreateindex.h @@ -29,6 +29,8 @@ class API_EXPORT SqliteCreateIndex : public SqliteQuery, public SqliteTableRelat QString getTargetTable() const; QString getTargetDatabase() const; void setTargetDatabase(const QString& database); + QString getObjectName() const; + void setObjectName(const QString& name); bool uniqueKw = false; bool ifNotExistsKw = false; diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecreatetable.cpp b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecreatetable.cpp index d82270e..fff4036 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecreatetable.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecreatetable.cpp @@ -1,6 +1,6 @@ #include "sqlitecreatetable.h" +#include "parser/parser_helper_stubs.h" #include "parser/statementtokenbuilder.h" -#include "common/utils_sql.h" #include "common/global.h" const QRegExp SqliteCreateTable::Column::GENERATED_ALWAYS_REGEXP = QRegExp("GENERATED\\s+ALWAYS"); @@ -12,7 +12,7 @@ SqliteCreateTable::SqliteCreateTable() SqliteCreateTable::SqliteCreateTable(const SqliteCreateTable& other) : SqliteQuery(other), ifNotExistsKw(other.ifNotExistsKw), tempKw(other.tempKw), temporaryKw(other.temporaryKw), - database(other.database), table(other.table), withOutRowId(other.withOutRowId) + database(other.database), table(other.table), withOutRowId(other.withOutRowId), strict(other.strict) { DEEP_COPY_COLLECTION(Column, columns); DEEP_COPY_COLLECTION(Constraint, constraints); @@ -40,10 +40,11 @@ SqliteCreateTable::SqliteCreateTable(bool ifNotExistsKw, int temp, const QString } } -SqliteCreateTable::SqliteCreateTable(bool ifNotExistsKw, int temp, const QString& name1, const QString& name2, const QList& columns, const QList& constraints, const QString& withOutRowId) : +SqliteCreateTable::SqliteCreateTable(bool ifNotExistsKw, int temp, const QString& name1, const QString& name2, const QList& columns, const QList& constraints, const QList& options) : SqliteCreateTable(ifNotExistsKw, temp, name1, name2, columns, constraints) { - this->withOutRowId = withOutRowId; + this->withOutRowId = parserStubFindCreateTableOption(options, ParserStubCreateTableOption::WITHOUT_ROWID) != nullptr; + this->strict = parserStubFindCreateTableOption(options, ParserStubCreateTableOption::STRICT) != nullptr; } SqliteCreateTable::SqliteCreateTable(bool ifNotExistsKw, int temp, const QString &name1, const QString &name2, SqliteSelect *select) @@ -76,7 +77,7 @@ QList SqliteCreateTable::getConstraints(SqliteCr SqliteStatement* SqliteCreateTable::getPrimaryKey() const { - for (Constraint* constr : getConstraints(Constraint::PRIMARY_KEY)) + for (Constraint*& constr : getConstraints(Constraint::PRIMARY_KEY)) return constr; Column::Constraint* colConstr = nullptr; @@ -115,7 +116,7 @@ QStringList SqliteCreateTable::getPrimaryKeyColumns() const SqliteCreateTable::Column* SqliteCreateTable::getColumn(const QString& colName) { - for (Column* col : columns) + for (Column*& col : columns) { if (col->name.compare(colName, Qt::CaseInsensitive) == 0) return col; @@ -142,6 +143,18 @@ QList SqliteCreateTable::getColumnForeig return results; } +void SqliteCreateTable::removeColumnConstraint(Column::Constraint* constr) +{ + for (Column* col : columns) + { + if (col->constraints.contains(constr)) + { + col->constraints.removeOne(constr); + return; + } + } +} + QStringList SqliteCreateTable::getColumnNames() const { QStringList names; @@ -236,8 +249,21 @@ TokenList SqliteCreateTable::rebuildTokensFromContents() builder.withParRight(); - if (!withOutRowId.isNull()) + bool atLeastOneOption = false; + if (withOutRowId) + { builder.withSpace().withKeyword("WITHOUT").withSpace().withOther("ROWID"); + atLeastOneOption = true; + } + + if (strict) + { + if (atLeastOneOption) + builder.withOperator(","); + + builder.withSpace().withOther("STRICT"); + //atLeastOneOption = true; // to uncomment if there are further options down below + } } builder.withOperator(";"); @@ -564,7 +590,7 @@ bool SqliteCreateTable::Constraint::doesAffectColumn(const QString& columnName) int SqliteCreateTable::Constraint::getAffectedColumnIdx(const QString& columnName) { int i = 0; - for (SqliteIndexedColumn* idxCol : indexedColumns) + for (SqliteIndexedColumn*& idxCol : indexedColumns) { if (idxCol->name.compare(columnName, Qt::CaseInsensitive) == 0) return i; @@ -604,12 +630,12 @@ TokenList SqliteCreateTable::Constraint::rebuildTokensFromContents() { case SqliteCreateTable::Constraint::PRIMARY_KEY: { - builder.withKeyword("PRIMARY").withSpace().withKeyword("KEY").withSpace().withParLeft().withStatementList(indexedColumns).withParRight(); + builder.withKeyword("PRIMARY").withSpace().withKeyword("KEY").withSpace().withParLeft().withStatementList(indexedColumns); if (autoincrKw) builder.withSpace().withKeyword("AUTOINCREMENT"); - builder.withConflict(onConflict); + builder.withParRight().withConflict(onConflict); break; } case SqliteCreateTable::Constraint::UNIQUE: @@ -861,3 +887,13 @@ void SqliteCreateTable::setTargetDatabase(const QString& database) { this->database = database; } + +QString SqliteCreateTable::getObjectName() const +{ + return table; +} + +void SqliteCreateTable::setObjectName(const QString& name) +{ + table = name; +} diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecreatetable.h b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecreatetable.h index d34688c..5d797c1 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecreatetable.h +++ b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecreatetable.h @@ -15,6 +15,8 @@ #include #include +struct ParserStubCreateTableOption; + class API_EXPORT SqliteCreateTable : public SqliteQuery, public SqliteDdlWithDbContext { public: @@ -189,7 +191,7 @@ class API_EXPORT SqliteCreateTable : public SqliteQuery, public SqliteDdlWithDbC const QList& columns, const QList& constraints); SqliteCreateTable(bool ifNotExistsKw, int temp, const QString& name1, const QString& name2, const QList& columns, const QList& constraints, - const QString& withOutRowId); + const QList& options); SqliteCreateTable(bool ifNotExistsKw, int temp, const QString& name1, const QString& name2, SqliteSelect* select); ~SqliteCreateTable(); @@ -201,10 +203,13 @@ class API_EXPORT SqliteCreateTable : public SqliteQuery, public SqliteDdlWithDbC Column* getColumn(const QString& colName); QList getForeignKeysByTable(const QString& foreignTable) const; QList getColumnForeignKeysByTable(const QString& foreignTable) const; + void removeColumnConstraint(Column::Constraint* constr); QStringList getColumnNames() const; QHash getModifiedColumnsMap(bool lowercaseKeys = false, Qt::CaseSensitivity cs = Qt::CaseInsensitive) const; QString getTargetDatabase() const; void setTargetDatabase(const QString& database); + QString getObjectName() const; + void setObjectName(const QString& name); bool ifNotExistsKw = false; bool tempKw = false; @@ -213,8 +218,9 @@ class API_EXPORT SqliteCreateTable : public SqliteQuery, public SqliteDdlWithDbC QString table = QString(); QList columns; QList constraints; + bool withOutRowId = false; + bool strict = false; SqliteSelect* select = nullptr; - QString withOutRowId = QString(); protected: QStringList getTablesInStatement(); diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecreatetrigger.cpp b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecreatetrigger.cpp index 3f2c4e3..597395f 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecreatetrigger.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecreatetrigger.cpp @@ -370,3 +370,13 @@ void SqliteCreateTrigger::setTargetDatabase(const QString& database) { this->database = database; } + +QString SqliteCreateTrigger::getObjectName() const +{ + return trigger; +} + +void SqliteCreateTrigger::setObjectName(const QString& name) +{ + trigger = name; +} diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecreatetrigger.h b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecreatetrigger.h index ac7b81f..44b953a 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecreatetrigger.h +++ b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecreatetrigger.h @@ -66,6 +66,8 @@ class API_EXPORT SqliteCreateTrigger : public SqliteQuery, public SqliteTableRel QString getTargetTable() const; QString getTargetDatabase() const; void setTargetDatabase(const QString& database); + QString getObjectName() const; + void setObjectName(const QString& name); bool tempKw = false; bool temporaryKw = false; diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecreateview.cpp b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecreateview.cpp index f5b54e7..0e11619 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecreateview.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecreateview.cpp @@ -129,3 +129,13 @@ void SqliteCreateView::setTargetDatabase(const QString& database) { this->database = database; } + +QString SqliteCreateView::getObjectName() const +{ + return view; +} + +void SqliteCreateView::setObjectName(const QString& name) +{ + view = name; +} diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecreateview.h b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecreateview.h index 74f6b91..645532c 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecreateview.h +++ b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecreateview.h @@ -21,6 +21,8 @@ class API_EXPORT SqliteCreateView : public SqliteQuery, public SqliteDdlWithDbCo SqliteStatement* clone(); QString getTargetDatabase() const; void setTargetDatabase(const QString& database); + QString getObjectName() const; + void setObjectName(const QString& name); bool tempKw = false; bool temporaryKw = false; diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteddlwithdbcontext.h b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteddlwithdbcontext.h index cb64986..0daf378 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteddlwithdbcontext.h +++ b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteddlwithdbcontext.h @@ -9,6 +9,9 @@ class API_EXPORT SqliteDdlWithDbContext public: virtual QString getTargetDatabase() const = 0; virtual void setTargetDatabase(const QString& database) = 0; + + virtual QString getObjectName() const = 0; + virtual void setObjectName(const QString& name) = 0; }; typedef QSharedPointer SqliteDdlWithDbContextPtr; diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitedelete.cpp b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitedelete.cpp index dd4d7cb..faf92a4 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitedelete.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitedelete.cpp @@ -16,20 +16,21 @@ SqliteDelete::SqliteDelete(const SqliteDelete& other) : { DEEP_COPY_FIELD(SqliteExpr, where); DEEP_COPY_FIELD(SqliteWith, with); + DEEP_COPY_COLLECTION(SqliteResultColumn, returning); } -SqliteDelete::SqliteDelete(const QString &name1, const QString &name2, const QString& indexedByName, SqliteExpr *where, SqliteWith* with) +SqliteDelete::SqliteDelete(const QString &name1, const QString &name2, const QString& indexedByName, SqliteExpr *where, SqliteWith* with, const QList& returning) : SqliteDelete() { - init(name1, name2, where, with); + init(name1, name2, where, with, returning); this->indexedBy = indexedByName; this->indexedByKw = true; } -SqliteDelete::SqliteDelete(const QString &name1, const QString &name2, bool notIndexedKw, SqliteExpr *where, SqliteWith* with) +SqliteDelete::SqliteDelete(const QString &name1, const QString &name2, bool notIndexedKw, SqliteExpr *where, SqliteWith* with, const QList& returning) : SqliteDelete() { - init(name1, name2, where, with); + init(name1, name2, where, with, returning); this->notIndexedKw = notIndexedKw; } @@ -37,7 +38,7 @@ SqliteDelete::~SqliteDelete() { } -SqliteStatement*SqliteDelete::clone() +SqliteStatement* SqliteDelete::clone() { return new SqliteDelete(*this); } @@ -91,7 +92,7 @@ QList SqliteDelete::getFullObjectsInStatement() return result; } -void SqliteDelete::init(const QString &name1, const QString &name2, SqliteExpr *where, SqliteWith* with) +void SqliteDelete::init(const QString &name1, const QString &name2, SqliteExpr *where, SqliteWith* with, const QList& returning) { this->where = where; if (where) @@ -108,6 +109,10 @@ void SqliteDelete::init(const QString &name1, const QString &name2, SqliteExpr * } else table = name1; + + this->returning = returning; + for (SqliteResultColumn*& retCol : this->returning) + retCol->setParent(this); } TokenList SqliteDelete::rebuildTokensFromContents() @@ -131,6 +136,13 @@ TokenList SqliteDelete::rebuildTokensFromContents() if (where) builder.withSpace().withKeyword("WHERE").withStatement(where); + if (!returning.isEmpty()) + { + builder.withKeyword("RETURNING"); + for (SqliteResultColumn*& retCol : returning) + builder.withSpace().withStatement(retCol); + } + builder.withOperator(";"); return builder.build(); diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitedelete.h b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitedelete.h index 5d24619..faa38fe 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitedelete.h +++ b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitedelete.h @@ -2,8 +2,9 @@ #define SQLITEDELETE_H #include "sqlitequery.h" - +#include "sqliteselect.h" #include +#include class SqliteExpr; class SqliteWith; @@ -13,8 +14,10 @@ class API_EXPORT SqliteDelete : public SqliteQuery public: SqliteDelete(); SqliteDelete(const SqliteDelete& other); - SqliteDelete(const QString& name1, const QString& name2, const QString& indexedByName, SqliteExpr* where, SqliteWith* with); - SqliteDelete(const QString& name1, const QString& name2, bool notIndexedKw, SqliteExpr* where, SqliteWith* with); + SqliteDelete(const QString& name1, const QString& name2, const QString& indexedByName, SqliteExpr* where, SqliteWith* with, + const QList& returning); + SqliteDelete(const QString& name1, const QString& name2, bool notIndexedKw, SqliteExpr* where, SqliteWith* with, + const QList& returning); ~SqliteDelete(); SqliteStatement* clone(); @@ -28,7 +31,8 @@ class API_EXPORT SqliteDelete : public SqliteQuery TokenList rebuildTokensFromContents(); private: - void init(const QString& name1, const QString& name2, SqliteExpr* where, SqliteWith* with); + void init(const QString& name1, const QString& name2, SqliteExpr* where, SqliteWith* with, + const QList& returning); public: QString database = QString(); @@ -38,6 +42,7 @@ class API_EXPORT SqliteDelete : public SqliteQuery QString indexedBy = QString(); SqliteExpr* where = nullptr; SqliteWith* with = nullptr; + QList returning; }; typedef QSharedPointer SqliteDeletePtr; diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteexpr.cpp b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteexpr.cpp index e2c79ea..89c6b9b 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteexpr.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteexpr.cpp @@ -231,6 +231,19 @@ void SqliteExpr::initUnaryOp(SqliteExpr *expr, const QString& op) expr->setParent(this); } +void SqliteExpr::initPtrOp(SqliteExpr* expr1, const QString& op, SqliteExpr* expr2) +{ + mode = SqliteExpr::Mode::PTR_OP; + this->expr1 = expr1; + this->expr2 = expr2; + ptrOp = op; + if (expr1) + expr1->setParent(this); + + if (expr2) + expr2->setParent(this); +} + void SqliteExpr::initLike(SqliteExpr *expr1, bool notKw, LikeOp likeOp, SqliteExpr *expr2, SqliteExpr *expr3) { mode = SqliteExpr::Mode::LIKE; @@ -271,6 +284,19 @@ void SqliteExpr::initIs(SqliteExpr *expr1, bool notKw, SqliteExpr *expr2) expr2->setParent(this); } +void SqliteExpr::initDistinct(SqliteExpr* expr1, bool notKw, SqliteExpr* expr2) +{ + mode = SqliteExpr::Mode::DISTINCT; + this->expr1 = expr1; + this->notKw = notKw; + this->expr2 = expr2; + if (expr1) + expr1->setParent(this); + + if (expr2) + expr2->setParent(this); +} + void SqliteExpr::initBetween(SqliteExpr *expr1, bool notKw, SqliteExpr *expr2, SqliteExpr *expr3) { mode = SqliteExpr::Mode::BETWEEN; @@ -549,6 +575,9 @@ TokenList SqliteExpr::rebuildTokensFromContents() case SqliteExpr::Mode::BINARY_OP: builder.withStatement(expr1).withSpace().withOperator(binaryOp).withSpace().withStatement(expr2); break; + case SqliteExpr::Mode::PTR_OP: + builder.withStatement(expr1).withSpace().withOperator(ptrOp).withSpace().withStatement(expr2); + break; case SqliteExpr::Mode::FUNCTION: builder.withOther(function).withParLeft(); if (distinctKw) @@ -598,6 +627,9 @@ TokenList SqliteExpr::rebuildTokensFromContents() case SqliteExpr::Mode::IS: builder.withTokens(rebuildIs()); break; + case SqliteExpr::Mode::DISTINCT: + builder.withTokens(rebuildDistinct()); + break; case SqliteExpr::Mode::BETWEEN: builder.withTokens(rebuildBetween()); break; @@ -691,6 +723,17 @@ TokenList SqliteExpr::rebuildIs() return builder.build(); } +TokenList SqliteExpr::rebuildDistinct() +{ + StatementTokenBuilder builder; + builder.withStatement(expr1).withSpace().withKeyword("IS"); + if (notKw) + builder.withSpace().withKeyword("NOT"); + + builder.withSpace().withKeyword("DISTINCT").withSpace().withKeyword("FROM").withSpace().withStatement(expr2); + return builder.build(); +} + TokenList SqliteExpr::rebuildBetween() { StatementTokenBuilder builder; diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteexpr.h b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteexpr.h index ef4c7da..f5fc6c2 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteexpr.h +++ b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteexpr.h @@ -23,6 +23,7 @@ class API_EXPORT SqliteExpr : public SqliteStatement ID, UNARY_OP, BINARY_OP, + PTR_OP, FUNCTION, SUB_EXPR, ROW_VALUE, @@ -32,6 +33,7 @@ class API_EXPORT SqliteExpr : public SqliteStatement NULL_, NOTNULL, IS, + DISTINCT, BETWEEN, IN, EXISTS, @@ -85,9 +87,11 @@ class API_EXPORT SqliteExpr : public SqliteStatement void initWindowFunction(const QString& fnName, SqliteFilterOver* filterOver); void initBinOp(SqliteExpr* expr1, const QString& op, SqliteExpr* expr2); void initUnaryOp(SqliteExpr* expr, const QString& op); + void initPtrOp(SqliteExpr* expr1, const QString& op, SqliteExpr* expr2); void initLike(SqliteExpr* expr1, bool notKw, SqliteExpr::LikeOp likeOp, SqliteExpr* expr2, SqliteExpr* expr3 = nullptr); void initNull(SqliteExpr* expr, const QString& value); void initIs(SqliteExpr* expr1, bool notKw, SqliteExpr* expr2); + void initDistinct(SqliteExpr* expr1, bool notKw, SqliteExpr* expr2); void initBetween(SqliteExpr* expr1, bool notKw, SqliteExpr* expr2, SqliteExpr* expr3); void initIn(SqliteExpr* expr, bool notKw, const QList& exprList); void initIn(SqliteExpr* expr, bool notKw, SqliteSelect* select); @@ -108,6 +112,7 @@ class API_EXPORT SqliteExpr : public SqliteStatement QString column = QString(); QString unaryOp = QString(); QString binaryOp = QString(); + QString ptrOp = QString(); QString function = QString(); QString collation = QString(); QString ctime = QString(); @@ -144,6 +149,7 @@ class API_EXPORT SqliteExpr : public SqliteStatement TokenList rebuildLike(); TokenList rebuildNotNull(); TokenList rebuildIs(); + TokenList rebuildDistinct(); TokenList rebuildBetween(); TokenList rebuildIn(); TokenList rebuildCase(); diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteinsert.cpp b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteinsert.cpp index 906b385..5242fa6 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteinsert.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteinsert.cpp @@ -20,14 +20,14 @@ SqliteInsert::SqliteInsert(const SqliteInsert& other) : DEEP_COPY_FIELD(SqliteSelect, select); DEEP_COPY_FIELD(SqliteWith, with); DEEP_COPY_FIELD(SqliteUpsert, upsert); + DEEP_COPY_COLLECTION(SqliteResultColumn, returning); } SqliteInsert::SqliteInsert(bool replace, SqliteConflictAlgo onConflict, const QString &name1, const QString &name2, const QList &columns, - const QList &row, SqliteWith* with) : + const QList &row, SqliteWith* with, const QList& returning) : SqliteInsert() { - initName(name1, name2); - initMode(replace, onConflict); + init(name1, name2, replace, onConflict, returning); columnNames = columns; values = row; @@ -40,11 +40,10 @@ SqliteInsert::SqliteInsert(bool replace, SqliteConflictAlgo onConflict, const QS } SqliteInsert::SqliteInsert(bool replace, SqliteConflictAlgo onConflict, const QString &name1, const QString &name2, const QList &columns, - SqliteSelect *select, SqliteWith* with, SqliteUpsert* upsert) : + SqliteSelect *select, SqliteWith* with, SqliteUpsert* upsert, const QList& returning) : SqliteInsert() { - initName(name1, name2); - initMode(replace, onConflict); + init(name1, name2, replace, onConflict, returning); this->with = with; if (with) @@ -61,11 +60,10 @@ SqliteInsert::SqliteInsert(bool replace, SqliteConflictAlgo onConflict, const QS } SqliteInsert::SqliteInsert(bool replace, SqliteConflictAlgo onConflict, const QString &name1, const QString &name2, const QList &columns, - SqliteWith* with) : + SqliteWith* with, const QList& returning) : SqliteInsert() { - initName(name1, name2); - initMode(replace, onConflict); + init(name1, name2, replace, onConflict, returning); this->with = with; if (with) @@ -104,7 +102,7 @@ QStringList SqliteInsert::getDatabasesInStatement() TokenList SqliteInsert::getColumnTokensInStatement() { TokenList list; - for (TokenPtr token : getTokenListFromNamedKey("idlist_opt", -1)) + for (TokenPtr& token : getTokenListFromNamedKey("idlist_opt", -1)) { if (token->type != Token::OTHER && token->type != Token::KEYWORD) continue; @@ -153,7 +151,7 @@ QList SqliteInsert::getFullObjectsInStatement() return result; } -void SqliteInsert::initName(const QString& name1, const QString& name2) +void SqliteInsert::init(const QString& name1, const QString& name2, bool replace, SqliteConflictAlgo onConflict, const QList& returning) { if (!name2.isNull()) { @@ -162,12 +160,13 @@ void SqliteInsert::initName(const QString& name1, const QString& name2) } else table = name1; -} -void SqliteInsert::initMode(bool replace, SqliteConflictAlgo onConflict) -{ replaceKw = replace; this->onConflict = onConflict; + + this->returning = returning; + for (SqliteResultColumn*& retCol : this->returning) + retCol->setParent(this); } TokenList SqliteInsert::rebuildTokensFromContents() @@ -212,6 +211,13 @@ TokenList SqliteInsert::rebuildTokensFromContents() } } + if (!returning.isEmpty()) + { + builder.withKeyword("RETURNING"); + for (SqliteResultColumn*& retCol : returning) + builder.withSpace().withStatement(retCol); + } + builder.withOperator(";"); return builder.build(); diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteinsert.h b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteinsert.h index 40581cd..b409abc 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteinsert.h +++ b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteinsert.h @@ -3,10 +3,10 @@ #include "sqlitequery.h" #include "sqliteconflictalgo.h" +#include "sqliteselect.h" #include #include -class SqliteSelect; class SqliteExpr; class SqliteWith; class SqliteUpsert; @@ -18,11 +18,14 @@ class API_EXPORT SqliteInsert : public SqliteQuery SqliteInsert(const SqliteInsert& other); SqliteInsert(bool replace, SqliteConflictAlgo onConflict, const QString& name1, const QString& name2, const QList& columns, - const QList& row, SqliteWith* with); + const QList& row, SqliteWith* with, + const QList& returning); SqliteInsert(bool replace, SqliteConflictAlgo onConflict, const QString& name1, - const QString& name2, const QList& columns, SqliteSelect* select, SqliteWith* with, SqliteUpsert* upsert = nullptr); + const QString& name2, const QList& columns, SqliteSelect* select, SqliteWith* with, + SqliteUpsert* upsert, const QList& returning); SqliteInsert(bool replace, SqliteConflictAlgo onConflict, const QString& name1, - const QString& name2, const QList& columns, SqliteWith* with); + const QString& name2, const QList& columns, SqliteWith* with, + const QList& returning); ~SqliteInsert(); SqliteStatement* clone(); @@ -38,8 +41,8 @@ class API_EXPORT SqliteInsert : public SqliteQuery TokenList rebuildTokensFromContents(); private: - void initName(const QString& name1, const QString& name2); - void initMode(bool replace, SqliteConflictAlgo onConflict); + void init(const QString& name1, const QString& name2, bool replace, SqliteConflictAlgo onConflict, + const QList& returning); public: bool replaceKw = false; @@ -52,6 +55,7 @@ class API_EXPORT SqliteInsert : public SqliteQuery SqliteSelect* select = nullptr; SqliteWith* with = nullptr; SqliteUpsert* upsert = nullptr; + QList returning; }; typedef QSharedPointer SqliteInsertPtr; diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteorderby.cpp b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteorderby.cpp index 732c0a2..4db4b5d 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteorderby.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteorderby.cpp @@ -88,18 +88,20 @@ void SqliteOrderBy::setColumnName(const QString& name) void SqliteOrderBy::setCollation(const QString& name) { - if (expr && expr->mode == SqliteExpr::Mode::COLLATE) + if (!expr) + return; + + if (expr->mode == SqliteExpr::Mode::COLLATE) { expr->collation = name; + return; } - else - { - SqliteExpr* theExpr = expr; - SqliteExpr* collationExpr = new SqliteExpr(); - collationExpr->initCollate(theExpr, name); - theExpr->setParent(collationExpr); - collationExpr->setParent(this); - } + + SqliteExpr* collationExpr = new SqliteExpr(); + collationExpr->initCollate(expr, name); + expr->setParent(collationExpr); + collationExpr->setParent(this); + expr = collationExpr; } TokenList SqliteOrderBy::rebuildTokensFromContents() diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitequerytype.cpp b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitequerytype.cpp index 1c04ca6..b70778e 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitequerytype.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitequerytype.cpp @@ -60,9 +60,8 @@ QString sqliteQueryTypeToString(const SqliteQueryType& type) return "Update"; case SqliteQueryType::Vacuum: return "Vacuum"; - default: - return QString(); } + return QString(); } bool isDataReturningQuery(const SqliteQueryType& type) @@ -98,7 +97,7 @@ bool isDataReturningQuery(const SqliteQueryType& type) case SqliteQueryType::Savepoint: case SqliteQueryType::Update: case SqliteQueryType::Vacuum: - default: return false; } + return false; } diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteselect.cpp b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteselect.cpp index e0439d2..501f7f3 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteselect.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteselect.cpp @@ -118,7 +118,7 @@ SqliteSelect::CompoundOperator SqliteSelect::compoundOperator(const QString& op) void SqliteSelect::reset() { - for (Core* core : coreSelects) + for (Core*& core : coreSelects) delete core; coreSelects.clear(); @@ -443,7 +443,7 @@ QStringList SqliteSelect::Core::JoinConstraint::getColumnsInStatement() TokenList SqliteSelect::Core::JoinConstraint::getColumnTokensInStatement() { TokenList list; - for (TokenPtr token : getTokenListFromNamedKey("idlist", -1)) + for (TokenPtr& token : getTokenListFromNamedKey("idlist", -1)) { if (token->type == Token::OPERATOR) // a COMMA continue; @@ -573,7 +573,7 @@ SqliteSelect::Core::JoinSource::JoinSource(SqliteSelect::Core::SingleSource *sin if (singleSource) singleSource->setParent(this); - for (JoinSourceOther* other : otherSources) + for (JoinSourceOther*& other : otherSources) other->setParent(this); } @@ -666,11 +666,6 @@ TokenList SqliteSelect::Core::SingleSource::rebuildTokensFromContents() } TokenList SqliteSelect::Core::JoinOp::rebuildTokensFromContents() -{ - return rebuildTokensForSqlite3(); -} - -TokenList SqliteSelect::Core::JoinOp::rebuildTokensForSqlite3() { StatementTokenBuilder builder; if (comma) @@ -682,9 +677,16 @@ TokenList SqliteSelect::Core::JoinOp::rebuildTokensForSqlite3() if (naturalKw) builder.withKeyword("NATURAL").withSpace(); - if (leftKw) + if (leftKw || fullKw || rightKw) { - builder.withKeyword("LEFT").withSpace(); + if (leftKw) + builder.withKeyword("LEFT"); + else if (fullKw) + builder.withKeyword("FULL"); + else if (rightKw) + builder.withKeyword("RIGHT"); + + builder.withSpace(); if (outerKw) builder.withKeyword("OUTER").withSpace(); } @@ -780,7 +782,7 @@ TokenList SqliteSelect::rebuildTokensFromContents() if (with) builder.withStatement(with); - for (SqliteSelect::Core* core : coreSelects) + for (SqliteSelect::Core*& core : coreSelects) { if (core->compoundOp == CompoundOperator::UNION_ALL) { diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteselect.h b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteselect.h index 58babfe..dfed9c2 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteselect.h +++ b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteselect.h @@ -123,9 +123,6 @@ class API_EXPORT SqliteSelect : public SqliteQuery protected: TokenList rebuildTokensFromContents(); - - private: - TokenList rebuildTokensForSqlite3(); }; class API_EXPORT JoinConstraint : public SqliteStatement @@ -232,5 +229,6 @@ class API_EXPORT SqliteSelect : public SqliteQuery }; typedef QSharedPointer SqliteSelectPtr; +typedef SqliteSelect::Core::ResultColumn SqliteResultColumn; #endif // SQLITESELECT_H diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitestatement.h b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitestatement.h index 43a60ba..167321f 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitestatement.h +++ b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitestatement.h @@ -227,6 +227,12 @@ class API_EXPORT SqliteStatement : public QObject void processPostParsing(); virtual SqliteStatement* clone() = 0; + template + T* typeClone() + { + return dynamic_cast(clone()); + } + template void attach(QList& listMemberForChild, T* childStatementToAttach) { diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteupdate.cpp b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteupdate.cpp index 89c8195..55d8b34 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteupdate.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteupdate.cpp @@ -27,6 +27,7 @@ SqliteUpdate::SqliteUpdate(const SqliteUpdate& other) : DEEP_COPY_FIELD(SqliteExpr, where); DEEP_COPY_FIELD(SqliteWith, with); DEEP_COPY_FIELD(SqliteSelect::Core::JoinSource, from); + DEEP_COPY_COLLECTION(SqliteResultColumn, returning); } SqliteUpdate::~SqliteUpdate() @@ -34,7 +35,7 @@ SqliteUpdate::~SqliteUpdate() } SqliteUpdate::SqliteUpdate(SqliteConflictAlgo onConflict, const QString &name1, const QString &name2, bool notIndexedKw, const QString &indexedBy, - const QList& values, SqliteSelect::Core::JoinSource* from, SqliteExpr *where, SqliteWith* with) + const QList& values, SqliteSelect::Core::JoinSource* from, SqliteExpr *where, SqliteWith* with, const QList& returning) : SqliteUpdate() { this->onConflict = onConflict; @@ -64,8 +65,12 @@ SqliteUpdate::SqliteUpdate(SqliteConflictAlgo onConflict, const QString &name1, if (with) with->setParent(this); - for (const ColumnAndValue& keyValue : keyValueMap) + for (ColumnAndValue& keyValue : keyValueMap) keyValue.second->setParent(this); + + this->returning = returning; + for (SqliteResultColumn*& retCol : this->returning) + retCol->setParent(this); } SqliteStatement*SqliteUpdate::clone() @@ -75,7 +80,7 @@ SqliteStatement*SqliteUpdate::clone() SqliteExpr* SqliteUpdate::getValueForColumnSet(const QString& column) { - for (const ColumnAndValue& keyValue : keyValueMap) + for (ColumnAndValue& keyValue : keyValueMap) { if (keyValue.first == column) return keyValue.second; @@ -86,7 +91,7 @@ SqliteExpr* SqliteUpdate::getValueForColumnSet(const QString& column) QStringList SqliteUpdate::getColumnsInStatement() { QStringList columns; - for (const ColumnAndValue& keyValue : keyValueMap) + for (ColumnAndValue& keyValue : keyValueMap) { if (keyValue.first.type() == QVariant::StringList) columns += keyValue.first.toStringList(); @@ -120,7 +125,7 @@ TokenList SqliteUpdate::getColumnTokensInStatement() int end; int start = 0; SqliteExpr* expr = nullptr; - for (const ColumnAndValue& keyValue : keyValueMap) + for (ColumnAndValue& keyValue : keyValueMap) { expr = keyValue.second; end = setListTokens.indexOf(expr->tokens[0]); @@ -205,7 +210,7 @@ TokenList SqliteUpdate::rebuildTokensFromContents() builder.withKeyword("SET").withSpace(); bool first = true; - for (const ColumnAndValue& keyVal : keyValueMap) + for (ColumnAndValue& keyVal : keyValueMap) { if (!first) builder.withOperator(",").withSpace(); @@ -225,6 +230,13 @@ TokenList SqliteUpdate::rebuildTokensFromContents() if (where) builder.withSpace().withKeyword("WHERE").withStatement(where); + if (!returning.isEmpty()) + { + builder.withKeyword("RETURNING"); + for (SqliteResultColumn*& retCol : returning) + builder.withSpace().withStatement(retCol); + } + builder.withOperator(";"); return builder.build(); diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteupdate.h b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteupdate.h index e843bcd..be121b2 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteupdate.h +++ b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteupdate.h @@ -21,7 +21,7 @@ class API_EXPORT SqliteUpdate : public SqliteQuery ~SqliteUpdate(); SqliteUpdate(SqliteConflictAlgo onConflict, const QString& name1, const QString& name2, bool notIndexedKw, const QString& indexedBy, const QList& values, - SqliteSelect::Core::JoinSource* from, SqliteExpr* where, SqliteWith* with); + SqliteSelect::Core::JoinSource* from, SqliteExpr* where, SqliteWith* with, const QList& returning); SqliteStatement* clone(); SqliteExpr* getValueForColumnSet(const QString& column); @@ -36,6 +36,7 @@ class API_EXPORT SqliteUpdate : public SqliteQuery SqliteSelect::Core::JoinSource* from = nullptr; SqliteExpr* where = nullptr; SqliteWith* with = nullptr; + QList returning; protected: QStringList getColumnsInStatement(); diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitewindowdefinition.cpp b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitewindowdefinition.cpp index adf135f..69138b6 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitewindowdefinition.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitewindowdefinition.cpp @@ -265,7 +265,7 @@ SqliteWindowDefinition::Window::Frame::Bound::Bound(SqliteExpr* expr, const QStr if (upper == "UNBOUNDED PRECEDING") type = Type::UNBOUNDED_PRECEDING; else if (expr && upper == "PRECEDING") - type = Type::EXPR_FOLLOWING; + type = Type::EXPR_PRECEDING; else if (upper == "UNBOUNDED FOLLOWING") type = Type::UNBOUNDED_FOLLOWING; else if (expr && upper == "FOLLOWING") diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitewith.cpp b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitewith.cpp index 901ac56..c15b447 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitewith.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitewith.cpp @@ -36,19 +36,19 @@ SqliteWith::CommonTableExpression::CommonTableExpression() } SqliteWith::CommonTableExpression::CommonTableExpression(const SqliteWith::CommonTableExpression& other) : - SqliteStatement(other), table(other.table) + SqliteStatement(other), table(other.table), asMode(other.asMode) { DEEP_COPY_COLLECTION(SqliteIndexedColumn, indexedColumns); DEEP_COPY_FIELD(SqliteSelect, select); } -SqliteWith::CommonTableExpression::CommonTableExpression(const QString& tableName, const QList& indexedColumns, SqliteSelect* select) : - table(tableName), indexedColumns(indexedColumns), select(select) +SqliteWith::CommonTableExpression::CommonTableExpression(const QString& tableName, const QList& indexedColumns, SqliteSelect* select, AsMode asMode) : + table(tableName), indexedColumns(indexedColumns), select(select), asMode(asMode) { select->setParent(this); } -SqliteStatement*SqliteWith::CommonTableExpression::clone() +SqliteStatement* SqliteWith::CommonTableExpression::clone() { return new SqliteWith::CommonTableExpression(*this); } @@ -61,7 +61,19 @@ TokenList SqliteWith::CommonTableExpression::rebuildTokensFromContents() if (indexedColumns.size() > 0) builder.withSpace().withParLeft().withStatementList(indexedColumns).withParRight(); - builder.withSpace().withKeyword("AS").withSpace().withParLeft().withStatement(select).withParRight(); + builder.withSpace().withKeyword("AS"); + switch (asMode) { + case ANY: + break; + case MATERIALIZED: + builder.withKeyword("MATERIALIZED"); + break; + case NOT_MATERIALIZED: + builder.withKeyword("NOT").withSpace().withKeyword("MATERIALIZED"); + break; + } + + builder.withSpace().withParLeft().withStatement(select).withParRight(); return builder.build(); } diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitewith.h b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitewith.h index 30f8181..8429e53 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitewith.h +++ b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitewith.h @@ -12,15 +12,23 @@ class SqliteWith : public SqliteStatement class CommonTableExpression : public SqliteStatement { public: + enum AsMode { + ANY, + MATERIALIZED, + NOT_MATERIALIZED + }; + CommonTableExpression(); CommonTableExpression(const CommonTableExpression& other); - CommonTableExpression(const QString& tableName, const QList& indexedColumns, SqliteSelect* select); + CommonTableExpression(const QString& tableName, const QList& indexedColumns, SqliteSelect* select, + AsMode asMode); SqliteStatement* clone(); QString table; QList indexedColumns; SqliteSelect* select = nullptr; + AsMode asMode = ANY; protected: TokenList rebuildTokensFromContents(); diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/keywords.cpp b/SQLiteStudio3/coreSQLiteStudio/parser/keywords.cpp index a5651db..3d877c8 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/keywords.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/parser/keywords.cpp @@ -118,6 +118,7 @@ void initKeywords() keywords3["LIKE"] = TK3_LIKE_KW; keywords3["LIMIT"] = TK3_LIMIT; keywords3["MATCH"] = TK3_MATCH; + keywords3["MATERIALIZED"] = TK3_MATERIALIZED; keywords3["NATURAL"] = TK3_JOIN_KW; keywords3["NO"] = TK3_NO; keywords3["NOT"] = TK3_NOT; @@ -149,6 +150,7 @@ void initKeywords() keywords3["RENAME"] = TK3_RENAME; keywords3["REPLACE"] = TK3_REPLACE; keywords3["RESTRICT"] = TK3_RESTRICT; + keywords3["RETURNING"] = TK3_RETURNING; keywords3["RIGHT"] = TK3_JOIN_KW; keywords3["ROLLBACK"] = TK3_ROLLBACK; keywords3["ROW"] = TK3_ROW; @@ -192,11 +194,11 @@ void initKeywords() softKeywords3 << "ABORT" << "ACTION" << "AFTER" << "ALWAYS" << "ANALYZE" << "ASC" << "ATTACH" << "BEFORE" << "BEGIN" << "BY" << "CASCADE" << "CAST" << "COLUMNKW" << "CONFLICT" << "CURRENT" << "DATABASE" << "DEFERRED" << "DESC" << "DETACH" << "DO" << "EACH" << "END" << "EXCLUDE" << "EXCLUSIVE" << "EXPLAIN" << "FAIL" << "FIRST" << "FOLLOWING" << "FOR" << "GENERATED" << "GROUPS" - << "IGNORE" << "IMMEDIATE" << "INDEXED" << "INITIALLY" << "INSTEAD" << "LAST" << "LIKE_KW" << "MATCH" << "NO" << "NULLS" - << "OTHERS" << "PLAN" << "QUERY" << "KEY" << "OF" << "OFFSET" << "PARTITION" << "PRAGMA" << "PRECEDING" << "RAISE" << "RANGE" - << "RECURSIVE" << "RELEASE" << "REPLACE" << "RESTRICT" << "ROW" << "ROWS" << "ROLLBACK" << "SAVEPOINT" << "TEMP" << "TIES" - << "TRIGGER" << "UNBOUNDED" << "VACUUM" << "VIEW" << "VIRTUAL" << "WITH" << "WITHOUT" << "REINDEX" << "RENAME" << "IF" - << "CURRENT_DATE" << "CURRENT_TIME" << "CURRENT_TIMESTAMP"; + << "IGNORE" << "IMMEDIATE" << "INDEXED" << "INITIALLY" << "INSTEAD" << "LAST" << "LIKE_KW" << "MATCH" << "MATERIALIZED" << "NO" + << "NULLS" << "OTHERS" << "PLAN" << "QUERY" << "KEY" << "OF" << "OFFSET" << "PARTITION" << "PRAGMA" << "PRECEDING" << "RAISE" + << "RANGE" << "RECURSIVE" << "RELEASE" << "REPLACE" << "RESTRICT" << "ROW" << "ROWS" << "ROLLBACK" << "SAVEPOINT" << "TEMP" + << "TIES" << "TRIGGER" << "UNBOUNDED" << "VACUUM" << "VIEW" << "VIRTUAL" << "WITH" << "WITHOUT" << "REINDEX" << "RENAME" + << "IF" << "CURRENT_DATE" << "CURRENT_TIME" << "CURRENT_TIMESTAMP" << "WINDOW" << "OVER" << "FILTER"; } diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/lempar.c b/SQLiteStudio3/coreSQLiteStudio/parser/lempar.c index 3b239dc..5bb7412 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/lempar.c +++ b/SQLiteStudio3/coreSQLiteStudio/parser/lempar.c @@ -782,7 +782,7 @@ static void yy_reduce( #endif { yy_shift(yypParser,yyact,yygoto,&yygotominor); - if (parserContext->setupTokens) + if (parserContext->setupTokens && yypParser->yyidx >= 0) { QList* tokensPtr = yypParser->yystack[yypParser->yyidx].tokens; *tokensPtr = allTokensWithAllInherited + *tokensPtr; @@ -1023,4 +1023,4 @@ void Parse( } }while( yymajor!=YYNOCODE && yypParser->yyidx>=0 ); return; -} \ No newline at end of file +} diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/lexer.cpp b/SQLiteStudio3/coreSQLiteStudio/parser/lexer.cpp index bf5185b..8660583 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/lexer.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/parser/lexer.cpp @@ -1,6 +1,5 @@ #include "lexer.h" #include "keywords.h" -#include "log.h" #include "lexer_low_lev.h" #include "sqlite3_parse.h" #include "common/utils_sql.h" @@ -26,6 +25,7 @@ TokenList Lexer::process(const QString &sql) { TokenList resultList; int lgt; + TokenPtr prevToken; TokenPtr token; QString str = sql; @@ -37,7 +37,7 @@ TokenList Lexer::process(const QString &sql) else token = TokenPtr::create(); - lgt = lexerGetToken(str, token, 3, tolerant); + lgt = lexerGetToken(str, token, prevToken, 3, tolerant); if (lgt == 0) break; @@ -48,6 +48,8 @@ TokenList Lexer::process(const QString &sql) resultList << token; str = str.mid(lgt); pos += lgt; + if (!token->isWhitespace()) + prevToken = token; } return resultList; @@ -70,7 +72,7 @@ TokenPtr Lexer::getToken() else token = TokenPtr::create(); - int lgt = lexerGetToken(sqlToTokenize, token, 3, tolerant); + int lgt = lexerGetToken(sqlToTokenize, token, prevTokenProcessed, 3, tolerant); if (lgt == 0) return TokenPtr(); @@ -80,6 +82,8 @@ TokenPtr Lexer::getToken() sqlToTokenize = sqlToTokenize.mid(lgt); tokenPosition += lgt; + if (!token->isWhitespace()) + prevTokenProcessed = token; return token; } @@ -190,6 +194,7 @@ void Lexer::staticInit() createTokenType(TK3_ID_TRIG, Token::CTX_TRIGGER, ""); createTokenType(TK3_ID_TRIG_NEW, Token::CTX_TRIGGER_NEW, ""); createTokenType(TK3_CTX_ROWID_KW, Token::CTX_ROWID_KW, "ROWID"); + createTokenType(TK3_CTX_STRICT_KW, Token::CTX_STRICT_KW, "STRICT"); createTokenType(TK3_ID, Token::CTX_OLD_KW, "OLD"); createTokenType(TK3_ID, Token::CTX_NEW_KW, "NEW"); diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/lexer.h b/SQLiteStudio3/coreSQLiteStudio/parser/lexer.h index 10db9ce..07b2d06 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/lexer.h +++ b/SQLiteStudio3/coreSQLiteStudio/parser/lexer.h @@ -201,6 +201,13 @@ class API_EXPORT Lexer */ QString sqlToTokenize; + /** + * @brief Token produced by the lexer previously. + * + * This is used only by the stateful lexer processing (i.e. with getToken()) + */ + TokenPtr prevTokenProcessed; + /** * @brief Current tokenizer position in the sqlToTokenize. * diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/lexer_low_lev.cpp b/SQLiteStudio3/coreSQLiteStudio/parser/lexer_low_lev.cpp index 65f9222..6b76768 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/lexer_low_lev.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/parser/lexer_low_lev.cpp @@ -4,6 +4,7 @@ #include "sqlite3_parse.h" #include "common/utils.h" #include "common/utils_sql.h" +#include "common/unused.h" #include #include @@ -13,19 +14,131 @@ // Low-level lexer routines based on tokenizer from SQLite 3.7.15.2 // +int lexerGetToken(const QString& z, TokenPtr& token, bool tolerant); + bool isIdChar(const QChar& c) { return c.isPrint() && !c.isSpace() && !doesObjectNeedWrapping(c); } -int lexerGetToken(const QString& z, TokenPtr token, int sqliteVersion, bool tolerant) +// From SQLite source code: +/* +** The following three functions are called immediately after the tokenizer +** reads the keywords WINDOW, OVER and FILTER, respectively, to determine +** whether the token should be treated as a keyword or an SQL identifier. +** This cannot be handled by the usual lemon %fallback method, due to +** the ambiguity in some constructions. e.g. +** +** SELECT sum(x) OVER ... +** +** In the above, "OVER" might be a keyword, or it might be an alias for the +** sum(x) expression. If a "%fallback ID OVER" directive were added to +** grammar, then SQLite would always treat "OVER" as an alias, making it +** impossible to call a window-function without a FILTER clause. +** +** WINDOW is treated as a keyword if: +** +** * the following token is an identifier, or a keyword that can fallback +** to being an identifier, and +** * the token after than one is TK_AS. +** +** OVER is a keyword if: +** +** * the previous token was TK_RP, and +** * the next token is either TK_LP or an identifier. +** +** FILTER is a keyword if: +** +** * the previous token was TK_RP, and +** * the next token is TK_LP. +*/ + +int sqlite3ParserFallback(int iToken); // defined in parse.y +int lexerWindowSpecificGetToken(const QString& z, TokenPtr& token, const TokenPtr& prevToken, bool tolerant) +{ + int lgt = 0; + do + lgt += lexerGetToken(z.mid(lgt), token, prevToken, tolerant); + while (token->lemonType == TK3_SPACE); + + if ( + token->lemonType == TK3_ID || + token->lemonType == TK3_STRING || + token->lemonType == TK3_JOIN_KW || + token->lemonType == TK3_WINDOW || + token->lemonType == TK3_OVER || + sqlite3ParserFallback(token->lemonType) == TK3_ID + ) { + token->lemonType = TK3_ID; + token->type = Token::OTHER; + } + + return lgt; +} + +void lexerHandleWindowKeyword(const QString& z, TokenPtr& token, const TokenPtr& prevToken, bool tolerant) { - if (sqliteVersion < 3 || sqliteVersion > 3) + UNUSED(prevToken); + TokenPtr firstAfter = TokenPtr::create(); + int lgt = lexerWindowSpecificGetToken(z, firstAfter, token, tolerant); + if (firstAfter->lemonType != TK3_ID) { - qCritical() << "lexerGetToken() called with invalid sqliteVersion:" << sqliteVersion; - return 0; + token->lemonType = TK3_ID; + token->type = Token::OTHER; + return; + } + + TokenPtr secondAfter = TokenPtr::create(); + lexerWindowSpecificGetToken(z.mid(lgt), secondAfter, firstAfter, tolerant); + if (secondAfter->lemonType != TK3_AS) + { + token->lemonType = TK3_ID; + token->type = Token::OTHER; + return; + } +} + +void lexerHandleOverKeyword(const QString& z, TokenPtr& token, const TokenPtr& prevToken, bool tolerant) +{ + if (prevToken && prevToken->lemonType == TK3_RP) { + TokenPtr firstAfter = TokenPtr::create(); + lexerWindowSpecificGetToken(z, firstAfter, token, tolerant); + if (firstAfter->lemonType == TK3_LP || firstAfter->lemonType == TK3_ID) + return; // remains OVER keyword + } + token->lemonType = TK3_ID; + token->type = Token::OTHER; +} + +void lexerHandleFilterKeyword(const QString& z, TokenPtr& token, const TokenPtr& prevToken, bool tolerant) +{ + if (prevToken && prevToken->lemonType == TK3_RP) { + TokenPtr firstAfter = TokenPtr::create(); + lexerWindowSpecificGetToken(z, firstAfter, token, tolerant); + if (firstAfter->lemonType == TK3_LP) + return; // remains FILTER keyword } + token->lemonType = TK3_ID; + token->type = Token::OTHER; +} + +int lexerGetToken(const QString& z, TokenPtr& token, const TokenPtr& prevToken, int sqliteVersion, bool tolerant) +{ + UNUSED(sqliteVersion); + int lgt = lexerGetToken(z, token, tolerant); + if (token->lemonType == TK3_WINDOW) + lexerHandleWindowKeyword(z.mid(lgt), token, prevToken, tolerant); + else if (token->lemonType == TK3_OVER) + lexerHandleOverKeyword(z.mid(lgt), token, prevToken, tolerant); + else if (token->lemonType == TK3_FILTER) + lexerHandleFilterKeyword(z.mid(lgt), token, prevToken, tolerant); + + return lgt; +} + +int lexerGetToken(const QString& z, TokenPtr& token, bool tolerant) +{ if (tolerant && !token.dynamicCast()) { qCritical() << "lexerGetToken() called with tolerant=true, but not a TolerantToken entity!"; @@ -54,6 +167,12 @@ int lexerGetToken(const QString& z, TokenPtr token, int sqliteVersion, bool tole token->type = Token::COMMENT; return i; } + else if (charAt(z, 1) == '>') + { + token->lemonType = TK3_PTR; + token->type = Token::OPERATOR; + return (charAt(z, 2) == '>') ? 3 : 2; + } token->lemonType = TK3_MINUS; token->type = Token::OPERATOR; return 1; @@ -453,7 +572,7 @@ int lexerGetToken(const QString& z, TokenPtr token, int sqliteVersion, bool tole for (i = 1; isIdChar(charAt(z, i)); i++) {} - token->lemonType = getKeywordId3(z.mid(0, i)); + token->lemonType = getKeywordId3(z.mid(0, i)); if (token->lemonType == TK3_ID) token->type = Token::OTHER; diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/lexer_low_lev.h b/SQLiteStudio3/coreSQLiteStudio/parser/lexer_low_lev.h index d642177..4f2cc35 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/lexer_low_lev.h +++ b/SQLiteStudio3/coreSQLiteStudio/parser/lexer_low_lev.h @@ -11,6 +11,7 @@ * @brief Low level tokenizer function used by the Lexer. * @param z Query to tokenize. * @param[out] token Token container to fill with values. Can be also a TolerantToken. + * @param prevToken Previous token returned from this function (if this is a subsequent call), or empty pointer othwewise. It's required for a contextual logic. * @param sqliteVersion SQLite version, for which the tokenizer should work (currently only 3). * Version affects the list of recognized keywords, a BLOB expression and an object name wrapper with the grave accent character (`). * @param tolerant If true, then all multi-line and unfinished tokens (strings, comments) @@ -23,6 +24,6 @@ * Most of the method code was taken from SQLite tokenizer code. It is modified to support both SQLite 3 gramma * and other SQLiteStudio specific features. */ -int lexerGetToken(const QString& z, TokenPtr token, int sqliteVersion, bool tolerant = false); +int lexerGetToken(const QString& z, TokenPtr& token, const TokenPtr& prevToken, int sqliteVersion, bool tolerant = false); #endif // LEXER_LOW_LEV_H diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/parser.cpp b/SQLiteStudio3/coreSQLiteStudio/parser/parser.cpp index b54c786..b80d45a 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/parser.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/parser/parser.cpp @@ -214,7 +214,7 @@ void Parser::expectedTokenLookup(void* pParser) Token::CTX_ALIAS, Token::CTX_TABLE_NEW, Token::CTX_INDEX_NEW, Token::CTX_TRIGGER_NEW, Token::CTX_VIEW_NEW, Token::CTX_COLUMN_NEW, Token::CTX_TRANSACTION, Token::CTX_CONSTRAINT, Token::CTX_COLUMN_TYPE, Token::CTX_OLD_KW, Token::CTX_NEW_KW, - Token::CTX_ROWID_KW, Token::INVALID + Token::CTX_ROWID_KW, Token::CTX_STRICT_KW, Token::INVALID }); for (TokenPtr token : tokenSet) diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/parser_helper_stubs.cpp b/SQLiteStudio3/coreSQLiteStudio/parser/parser_helper_stubs.cpp index 8b14f07..b8534cc 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/parser_helper_stubs.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/parser/parser_helper_stubs.cpp @@ -75,3 +75,13 @@ bool ParserTermOrLiteral::isLiteral() const { return !nameMode; } + +ParserStubCreateTableOption* parserStubFindCreateTableOption(const QList& options, ParserStubCreateTableOption::Type type) +{ + return findFirst(options, [type](auto opt) -> bool {return opt->type == type;}); +} + +ParserStubCreateTableOption::ParserStubCreateTableOption(Type type) : + type(type) +{ +} diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/parser_helper_stubs.h b/SQLiteStudio3/coreSQLiteStudio/parser/parser_helper_stubs.h index 5160b10..ec71f8b 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/parser_helper_stubs.h +++ b/SQLiteStudio3/coreSQLiteStudio/parser/parser_helper_stubs.h @@ -68,6 +68,21 @@ struct ParserStubTransDetails SqliteConflictAlgo onConflict = SqliteConflictAlgo::null; }; +struct ParserStubCreateTableOption +{ + enum Type + { + WITHOUT_ROWID, + STRICT + }; + + ParserStubCreateTableOption(Type type); + + Type type; +}; + +ParserStubCreateTableOption* parserStubFindCreateTableOption(const QList& options, ParserStubCreateTableOption::Type type); + typedef QList ParserCreateTableColumnList; typedef QList ParserCreateTableConstraintList; typedef QList ParserCreateTableColumnConstraintList; @@ -83,6 +98,7 @@ typedef QList ParserSetValueList; typedef QList ParserIndexedColumnList; typedef QList ParserExprNestedList; typedef QList ParserWindowDefList; +typedef QList ParserCreateTableOptionList; /** * @brief Stores parameters for defferable foreign keys. diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/parsercontext.cpp b/SQLiteStudio3/coreSQLiteStudio/parser/parsercontext.cpp index a9eae82..a275882 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/parsercontext.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/parser/parsercontext.cpp @@ -167,9 +167,9 @@ const QList &ParserContext::getErrors() QVariant *ParserContext::handleNumberToken(const QString &tokenValue) { recentNumberIsCandidateForMaxNegative = false; + bool ok; if (tokenValue.startsWith("0x", Qt::CaseInsensitive)) { - bool ok; qint64 i64 = tokenValue.toLongLong(&ok, 16); if (!ok) { @@ -183,10 +183,12 @@ QVariant *ParserContext::handleNumberToken(const QString &tokenValue) recentNumberIsCandidateForMaxNegative = true; return new QVariant(static_cast(0L)); } - else - { - return new QVariant(QVariant(tokenValue).toLongLong()); - } + + QVariant varLong = QVariant(tokenValue).toLongLong(&ok); + if (!ok) + varLong = QVariant(tokenValue).toDouble(); + + return new QVariant(varLong); } bool ParserContext::isCandidateForMaxNegativeNumber() const @@ -196,7 +198,7 @@ bool ParserContext::isCandidateForMaxNegativeNumber() const void ParserContext::cleanUp() { - for (ParserError* err : errors) + for (ParserError*& err : errors) delete err; parsedQueries.clear(); diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/sqlite3_parse.cpp b/SQLiteStudio3/coreSQLiteStudio/parser/sqlite3_parse.cpp index c980096..7be06fb 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/sqlite3_parse.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/parser/sqlite3_parse.cpp @@ -22,7 +22,6 @@ #include "parser/ast/sqliteattach.h" #include "parser/ast/sqlitebegintrans.h" #include "parser/ast/sqlitecommittrans.h" -#include "parser/ast/sqlitecopy.h" #include "parser/ast/sqlitecreateindex.h" #include "parser/ast/sqlitecreatetable.h" #include "parser/ast/sqlitecreatetrigger.h" @@ -62,6 +61,7 @@ #define assert(X) Q_ASSERT(X) #define UNUSED_PARAMETER(X) (void)(X) #define DONT_INHERIT_TOKENS(X) noTokenInheritanceFields << X + /* Next is all token values, in a form suitable for use by makeheaders. ** This section will be null unless lemon is run with the -m switch. */ @@ -112,77 +112,80 @@ ** defined, then do no error processing. */ #define YYCODETYPE unsigned short int -#define YYNOCODE 321 +#define YYNOCODE 328 #define YYACTIONTYPE unsigned short int -#define YYWILDCARD 78 +#define YYWILDCARD 80 #define sqlite3_parseTOKENTYPE Token* typedef union { int yyinit; sqlite3_parseTOKENTYPE yy0; - SqliteWith* yy1; - SqliteLimit* yy4; - ParserDeferSubClause* yy9; - SqliteSelect::Core::JoinSource* yy31; - SqliteExpr::LikeOp* yy40; - SqliteWindowDefinition::Window::Frame* yy41; - ParserCreateTableColumnList* yy42; - ParserCreateTableColumnConstraintList* yy51; - ParserResultColumnList* yy53; - SqliteColumnType* yy57; - SqliteWindowDefinition::Window::Frame::Exclude* yy63; - ParserExprList* yy71; - SqliteCreateTrigger::Scope* yy83; - ParserStubTransDetails* yy84; - ParserStubExplain* yy91; - SqliteForeignKey::Condition::Reaction* yy104; - ParserQueryList* yy110; - SqliteCreateTable::Column* yy147; - SqliteCreateTrigger::Event* yy151; - ParserStubAlias* yy200; - ParserSetValueList* yy201; - SqliteSelect::Core::JoinOp* yy221; - ParserIndexedColumnList* yy223; - QVariant* yy229; - SqliteCreateTable::Constraint* yy246; - SqliteFilterOver* yy247; - SqliteFilterOver::Over* yy248; - SqliteWindowDefinition* yy266; - SqliteIndexedColumn* yy268; - SqliteSelect::Core::JoinConstraint* yy295; - ParserWindowDefList* yy299; - SqliteInitially* yy312; - SqliteSelect* yy313; + SqliteCreateTable::Column* yy3; + SqliteFilterOver::Over* yy11; + SqliteWith::CommonTableExpression::AsMode* yy21; + ParserResultColumnList* yy27; + SqliteSortOrder* yy35; + SqliteFilterOver::Filter* yy39; + SqliteQuery* yy41; + ParserDeferSubClause* yy53; + SqliteForeignKey::Condition::Reaction* yy106; + ParserOtherSourceList* yy107; + SqliteIndexedColumn* yy110; + ParserCreateTableConstraintList* yy115; + SqliteCreateTrigger::Time* yy120; + int* yy130; + SqliteConflictAlgo* yy136; + SqliteSelect::CompoundOperator* yy142; + SqliteWindowDefinition::Window::Frame::RangeOrRows* yy143; + SqliteWith::CommonTableExpression* yy146; + SqliteWindowDefinition::Window::Frame* yy149; + ParserFkConditionList* yy156; + SqliteWith* yy161; + SqliteWindowDefinition::Window* yy162; + ParserCteList* yy164; + QStringList* yy173; + SqliteFilterOver* yy181; + SqliteExpr* yy186; + SqliteForeignKey::Condition* yy205; + SqliteSelect::Core::JoinConstraint* yy215; + bool* yy225; + ParserOrderByList* yy226; + SqliteWindowDefinition::Window::Frame::Exclude* yy237; + ParserQueryList* yy240; + SqliteCreateTrigger::Event* yy259; + SqliteColumnType* yy267; + SqliteExpr::LikeOp* yy274; + SqliteWindowDefinition::Window::Frame::Bound* yy285; + SqliteSelect* yy297; + ParserIndexedBy* yy300; + ParserStubInsertOrReplace* yy308; + SqliteNulls* yy315; QString* yy319; - SqliteWindowDefinition::Window* yy334; - SqliteQuery* yy363; - SqliteSelect::CompoundOperator* yy382; - int* yy386; - SqliteFilterOver::Filter* yy397; - SqliteUpsert* yy400; - ParserOrderByList* yy403; - SqliteConflictAlgo* yy418; - SqliteWindowDefinition::Window::Frame::RangeOrRows* yy419; - ParserFullName* yy440; - SqliteSelect::Core::SingleSource* yy441; - SqliteWindowDefinition::Window::Frame::Bound* yy442; - SqliteWith::CommonTableExpression* yy446; - ParserOtherSourceList* yy451; - SqliteCreateTable::Column::Constraint* yy464; - SqliteSelect::Core* yy470; - ParserExprNestedList* yy486; - ParserCreateTableConstraintList* yy493; - ParserStubInsertOrReplace* yy504; - SqliteForeignKey::Condition* yy507; - SqliteExpr* yy512; - SqliteCreateTrigger::Time* yy532; - SqliteSortOrder* yy549; - QStringList* yy575; - SqliteNulls* yy579; - ParserFkConditionList* yy584; - ParserTermOrLiteral* yy590; - ParserIndexedBy* yy592; - ParserCteList* yy593; - bool* yy611; + ParserCreateTableColumnConstraintList* yy323; + SqliteUpsert* yy332; + SqliteLimit* yy360; + SqliteSelect::Core* yy378; + ParserTermOrLiteral* yy380; + ParserCreateTableColumnList* yy390; + QVariant* yy393; + ParserFullName* yy396; + SqliteCreateTable::Constraint* yy400; + SqliteCreateTable::Column::Constraint* yy448; + SqliteSelect::Core::JoinOp* yy449; + ParserCreateTableOptionList* yy455; + SqliteCreateTrigger::Scope* yy456; + ParserStubExplain* yy499; + ParserStubTransDetails* yy512; + ParserExprNestedList* yy522; + ParserWindowDefList* yy525; + SqliteSelect::Core::JoinSource* yy553; + SqliteWindowDefinition* yy562; + SqliteSelect::Core::SingleSource* yy595; + SqliteInitially* yy612; + ParserExprList* yy615; + ParserSetValueList* yy621; + ParserIndexedColumnList* yy627; + ParserStubAlias* yy628; + ParserStubCreateTableOption* yy629; } YYMINORTYPE; #ifndef YYSTACKDEPTH #define YYSTACKDEPTH 100 @@ -191,8 +194,8 @@ typedef union { #define sqlite3_parseARG_PDECL ,ParserContext* parserContext #define sqlite3_parseARG_FETCH ParserContext* parserContext = yypParser->parserContext #define sqlite3_parseARG_STORE yypParser->parserContext = parserContext -#define YYNSTATE 844 -#define YYNRULE 472 +#define YYNSTATE 870 +#define YYNRULE 487 #define YYFALLBACK 1 #define YY_NO_ACTION (YYNSTATE+YYNRULE+2) #define YY_ACCEPT_ACTION (YYNSTATE+YYNRULE+1) @@ -264,806 +267,778 @@ static const YYMINORTYPE yyzerominor = { 0 }; ** shifting non-terminals after a reduce. ** yy_default[] Default action for each state. */ -#define YY_ACTTAB_COUNT (3037) +#define YY_ACTTAB_COUNT (2866) static const YYACTIONTYPE yy_action[] = { - /* 0 */ 510, 625, 284, 836, 655, 288, 841, 64, 65, 509, - /* 10 */ 339, 626, 501, 795, 795, 62, 62, 63, 63, 63, - /* 20 */ 63, 351, 61, 61, 61, 61, 60, 60, 59, 59, - /* 30 */ 59, 58, 253, 485, 1085, 61, 61, 61, 61, 60, - /* 40 */ 60, 59, 59, 59, 58, 253, 835, 290, 794, 1085, - /* 50 */ 71, 506, 63, 63, 63, 63, 40, 61, 61, 61, - /* 60 */ 61, 60, 60, 59, 59, 59, 58, 253, 805, 635, - /* 70 */ 836, 347, 785, 836, 592, 70, 452, 54, 817, 88, - /* 80 */ 338, 835, 835, 59, 59, 59, 58, 253, 1085, 836, - /* 90 */ 806, 223, 836, 835, 51, 52, 693, 1085, 635, 508, - /* 100 */ 325, 53, 1012, 348, 261, 415, 622, 621, 88, 2, - /* 110 */ 1012, 835, 681, 117, 793, 286, 498, 1012, 324, 807, - /* 120 */ 833, 634, 834, 833, 510, 810, 157, 466, 453, 439, - /* 130 */ 436, 435, 793, 809, 808, 807, 501, 1012, 563, 682, - /* 140 */ 682, 611, 486, 746, 1078, 327, 677, 434, 366, 575, - /* 150 */ 1012, 254, 1012, 1012, 396, 403, 1012, 296, 425, 303, - /* 160 */ 749, 1012, 1012, 1012, 1012, 1012, 793, 274, 456, 793, - /* 170 */ 748, 783, 12, 356, 565, 506, 273, 586, 77, 69, - /* 180 */ 39, 138, 69, 1012, 701, 440, 22, 701, 768, 834, - /* 190 */ 833, 805, 834, 833, 14, 836, 785, 111, 1, 489, - /* 200 */ 798, 54, 702, 804, 835, 702, 587, 589, 834, 833, - /* 210 */ 588, 834, 833, 806, 223, 570, 659, 701, 51, 52, - /* 220 */ 701, 137, 508, 649, 706, 53, 1078, 836, 1029, 1029, - /* 230 */ 21, 412, 386, 2, 1078, 172, 117, 328, 793, 705, - /* 240 */ 498, 1078, 157, 807, 833, 439, 436, 435, 510, 810, - /* 250 */ 392, 75, 443, 188, 421, 250, 793, 809, 808, 807, - /* 260 */ 501, 1078, 784, 434, 1178, 275, 935, 835, 648, 56, - /* 270 */ 455, 366, 687, 686, 1078, 130, 1078, 1078, 174, 121, - /* 280 */ 326, 445, 321, 444, 159, 1078, 1078, 1078, 1078, 811, - /* 290 */ 793, 700, 812, 793, 162, 783, 12, 245, 319, 506, - /* 300 */ 60, 60, 59, 59, 59, 58, 253, 1078, 840, 526, - /* 310 */ 836, 650, 651, 513, 834, 833, 563, 805, 836, 798, - /* 320 */ 785, 717, 805, 23, 611, 54, 527, 526, 158, 257, - /* 330 */ 835, 797, 699, 695, 835, 835, 242, 241, 240, 806, - /* 340 */ 223, 523, 51, 52, 806, 208, 834, 833, 508, 53, - /* 350 */ 1063, 356, 564, 508, 384, 526, 171, 2, 1063, 523, - /* 360 */ 548, 77, 793, 786, 498, 1063, 431, 807, 833, 798, - /* 370 */ 578, 329, 836, 810, 723, 579, 466, 451, 729, 465, - /* 380 */ 793, 809, 808, 807, 835, 1063, 789, 523, 786, 547, - /* 390 */ 546, 388, 788, 545, 502, 475, 497, 366, 1063, 729, - /* 400 */ 1063, 1063, 754, 407, 798, 729, 692, 1160, 1160, 1063, - /* 410 */ 329, 1063, 1063, 76, 793, 635, 117, 793, 516, 783, - /* 420 */ 12, 786, 787, 835, 519, 88, 370, 108, 835, 834, - /* 430 */ 833, 1063, 319, 117, 464, 361, 479, 834, 833, 731, - /* 440 */ 836, 1163, 792, 836, 64, 65, 509, 339, 1160, 1160, - /* 450 */ 795, 795, 62, 62, 63, 63, 63, 63, 781, 61, - /* 460 */ 61, 61, 61, 60, 60, 59, 59, 59, 58, 253, - /* 470 */ 836, 807, 729, 722, 361, 55, 792, 810, 58, 253, - /* 480 */ 167, 73, 777, 776, 604, 809, 808, 807, 798, 1160, - /* 490 */ 1160, 834, 833, 729, 64, 65, 509, 339, 66, 729, - /* 500 */ 795, 795, 62, 62, 63, 63, 63, 63, 474, 61, - /* 510 */ 61, 61, 61, 60, 60, 59, 59, 59, 58, 253, - /* 520 */ 836, 770, 836, 798, 712, 771, 64, 65, 509, 339, - /* 530 */ 1160, 1160, 795, 795, 62, 62, 63, 63, 63, 63, - /* 540 */ 765, 61, 61, 61, 61, 60, 60, 59, 59, 59, - /* 550 */ 58, 253, 764, 729, 613, 836, 562, 562, 44, 834, - /* 560 */ 833, 191, 834, 833, 566, 805, 246, 685, 45, 454, - /* 570 */ 482, 365, 1160, 1160, 729, 772, 636, 252, 835, 662, - /* 580 */ 729, 1317, 184, 514, 3, 538, 613, 806, 208, 834, - /* 590 */ 833, 765, 1163, 313, 1163, 661, 508, 393, 835, 357, - /* 600 */ 1269, 742, 792, 764, 539, 540, 835, 1269, 130, 64, - /* 610 */ 65, 509, 339, 1160, 1160, 795, 795, 62, 62, 63, - /* 620 */ 63, 63, 63, 742, 61, 61, 61, 61, 60, 60, - /* 630 */ 59, 59, 59, 58, 253, 818, 792, 769, 158, 834, - /* 640 */ 833, 834, 833, 113, 566, 754, 836, 76, 64, 65, - /* 650 */ 509, 339, 1160, 1160, 795, 795, 62, 62, 63, 63, - /* 660 */ 63, 63, 488, 61, 61, 61, 61, 60, 60, 59, - /* 670 */ 59, 59, 58, 253, 834, 833, 541, 775, 836, 357, - /* 680 */ 1268, 330, 734, 473, 87, 814, 836, 1268, 836, 64, - /* 690 */ 65, 509, 339, 1160, 1160, 795, 795, 62, 62, 63, - /* 700 */ 63, 63, 63, 447, 61, 61, 61, 61, 60, 60, - /* 710 */ 59, 59, 59, 58, 253, 63, 63, 63, 63, 56, - /* 720 */ 61, 61, 61, 61, 60, 60, 59, 59, 59, 58, - /* 730 */ 253, 494, 64, 65, 509, 339, 370, 671, 795, 795, - /* 740 */ 62, 62, 63, 63, 63, 63, 813, 61, 61, 61, - /* 750 */ 61, 60, 60, 59, 59, 59, 58, 253, 811, 1086, - /* 760 */ 571, 812, 190, 488, 309, 834, 833, 312, 591, 64, - /* 770 */ 65, 509, 339, 469, 1086, 795, 795, 62, 62, 63, - /* 780 */ 63, 63, 63, 836, 61, 61, 61, 61, 60, 60, - /* 790 */ 59, 59, 59, 58, 253, 107, 1087, 834, 833, 836, - /* 800 */ 758, 798, 1164, 836, 485, 834, 833, 834, 833, 349, - /* 810 */ 802, 1087, 755, 1086, 78, 836, 468, 835, 64, 65, - /* 820 */ 509, 339, 1086, 571, 795, 795, 62, 62, 63, 63, - /* 830 */ 63, 63, 510, 61, 61, 61, 61, 60, 60, 59, - /* 840 */ 59, 59, 58, 253, 501, 1088, 271, 270, 1214, 836, - /* 850 */ 1087, 78, 603, 493, 791, 64, 65, 509, 339, 1087, - /* 860 */ 1088, 795, 795, 62, 62, 63, 63, 63, 63, 538, - /* 870 */ 61, 61, 61, 61, 60, 60, 59, 59, 59, 58, - /* 880 */ 253, 798, 835, 506, 1167, 777, 776, 20, 539, 398, - /* 890 */ 117, 675, 69, 1022, 580, 581, 409, 701, 337, 1088, - /* 900 */ 78, 753, 834, 833, 785, 391, 780, 779, 1088, 54, - /* 910 */ 8, 835, 167, 576, 745, 702, 805, 620, 834, 833, - /* 920 */ 798, 670, 834, 833, 327, 677, 51, 52, 44, 835, - /* 930 */ 701, 1277, 1277, 53, 834, 833, 390, 112, 806, 223, - /* 940 */ 1229, 2, 1170, 236, 235, 484, 793, 508, 498, 836, - /* 950 */ 282, 807, 833, 1164, 117, 1164, 712, 810, 68, 136, - /* 960 */ 399, 775, 782, 835, 793, 809, 808, 807, 807, 85, - /* 970 */ 714, 836, 835, 504, 810, 466, 467, 42, 576, 775, - /* 980 */ 1277, 1277, 809, 808, 807, 816, 759, 772, 499, 252, - /* 990 */ 86, 19, 767, 643, 442, 832, 366, 470, 793, 111, - /* 1000 */ 798, 793, 830, 783, 12, 27, 64, 65, 509, 339, - /* 1010 */ 836, 831, 795, 795, 62, 62, 63, 63, 63, 63, - /* 1020 */ 836, 61, 61, 61, 61, 60, 60, 59, 59, 59, - /* 1030 */ 58, 253, 50, 1229, 48, 64, 65, 509, 339, 74, - /* 1040 */ 544, 795, 795, 62, 62, 63, 63, 63, 63, 510, - /* 1050 */ 61, 61, 61, 61, 60, 60, 59, 59, 59, 58, - /* 1060 */ 253, 501, 1243, 532, 477, 136, 836, 329, 834, 833, - /* 1070 */ 483, 724, 4, 83, 836, 500, 780, 779, 835, 341, - /* 1080 */ 835, 335, 611, 798, 617, 617, 64, 65, 509, 339, - /* 1090 */ 834, 833, 795, 795, 62, 62, 63, 63, 63, 63, - /* 1100 */ 506, 61, 61, 61, 61, 60, 60, 59, 59, 59, - /* 1110 */ 58, 253, 480, 476, 798, 668, 720, 667, 586, 77, - /* 1120 */ 739, 785, 114, 168, 608, 1172, 54, 532, 6, 834, - /* 1130 */ 833, 265, 310, 756, 836, 744, 311, 481, 615, 834, - /* 1140 */ 833, 78, 608, 51, 52, 835, 1172, 587, 589, 775, - /* 1150 */ 53, 588, 1172, 374, 238, 510, 738, 805, 2, 736, - /* 1160 */ 271, 270, 836, 793, 689, 498, 836, 501, 807, 833, - /* 1170 */ 835, 56, 413, 247, 810, 117, 450, 724, 4, 806, - /* 1180 */ 223, 793, 809, 808, 807, 834, 833, 836, 508, 5, - /* 1190 */ 535, 836, 531, 834, 833, 717, 1172, 414, 836, 777, - /* 1200 */ 776, 729, 798, 537, 1172, 536, 506, 844, 835, 733, - /* 1210 */ 416, 1172, 805, 371, 761, 793, 466, 457, 793, 730, - /* 1220 */ 783, 12, 729, 78, 732, 835, 338, 785, 729, 805, - /* 1230 */ 18, 1172, 54, 798, 806, 118, 395, 366, 597, 835, - /* 1240 */ 718, 786, 835, 508, 1172, 641, 1172, 1172, 549, 51, - /* 1250 */ 52, 806, 118, 834, 833, 1172, 53, 1172, 1172, 737, - /* 1260 */ 508, 317, 17, 305, 2, 381, 786, 259, 111, 793, - /* 1270 */ 837, 498, 666, 713, 807, 833, 835, 1172, 843, 3, - /* 1280 */ 810, 834, 833, 487, 432, 834, 833, 793, 809, 808, - /* 1290 */ 807, 111, 754, 836, 529, 665, 713, 836, 406, 786, - /* 1300 */ 170, 602, 1165, 1277, 1277, 594, 834, 833, 110, 754, - /* 1310 */ 834, 833, 338, 842, 549, 640, 639, 834, 833, 602, - /* 1320 */ 707, 793, 529, 594, 793, 835, 783, 12, 631, 64, - /* 1330 */ 65, 509, 339, 492, 757, 795, 795, 62, 62, 63, - /* 1340 */ 63, 63, 63, 704, 61, 61, 61, 61, 60, 60, - /* 1350 */ 59, 59, 59, 58, 253, 64, 65, 509, 339, 298, - /* 1360 */ 16, 795, 795, 62, 62, 63, 63, 63, 63, 11, - /* 1370 */ 61, 61, 61, 61, 60, 60, 59, 59, 59, 58, - /* 1380 */ 253, 395, 64, 65, 509, 339, 743, 4, 795, 795, - /* 1390 */ 62, 62, 63, 63, 63, 63, 117, 61, 61, 61, - /* 1400 */ 61, 60, 60, 59, 59, 59, 58, 253, 422, 728, - /* 1410 */ 4, 559, 834, 833, 166, 168, 834, 833, 56, 496, - /* 1420 */ 757, 836, 727, 4, 64, 65, 509, 339, 49, 559, - /* 1430 */ 795, 795, 62, 62, 63, 63, 63, 63, 165, 61, - /* 1440 */ 61, 61, 61, 60, 60, 59, 59, 59, 58, 253, - /* 1450 */ 607, 836, 667, 709, 64, 65, 509, 339, 842, 676, - /* 1460 */ 795, 795, 62, 62, 63, 63, 63, 63, 708, 61, - /* 1470 */ 61, 61, 61, 60, 60, 59, 59, 59, 58, 253, - /* 1480 */ 164, 46, 725, 4, 64, 65, 509, 339, 163, 674, - /* 1490 */ 795, 795, 62, 62, 63, 63, 63, 63, 696, 61, - /* 1500 */ 61, 61, 61, 60, 60, 59, 59, 59, 58, 253, - /* 1510 */ 246, 685, 836, 454, 64, 65, 509, 339, 124, 657, - /* 1520 */ 795, 795, 62, 62, 63, 63, 63, 63, 460, 61, - /* 1530 */ 61, 61, 61, 60, 60, 59, 59, 59, 58, 253, - /* 1540 */ 834, 833, 419, 691, 64, 65, 509, 339, 458, 189, - /* 1550 */ 795, 795, 62, 62, 63, 63, 63, 63, 7, 61, - /* 1560 */ 61, 61, 61, 60, 60, 59, 59, 59, 58, 253, - /* 1570 */ 834, 833, 726, 4, 64, 65, 509, 339, 690, 316, - /* 1580 */ 795, 795, 62, 62, 63, 63, 63, 63, 15, 61, - /* 1590 */ 61, 61, 61, 60, 60, 59, 59, 59, 58, 253, - /* 1600 */ 612, 1193, 64, 65, 509, 339, 274, 456, 795, 795, - /* 1610 */ 62, 62, 63, 63, 63, 63, 825, 61, 61, 61, - /* 1620 */ 61, 60, 60, 59, 59, 59, 58, 253, 574, 688, - /* 1630 */ 836, 834, 833, 64, 65, 509, 339, 836, 28, 795, - /* 1640 */ 795, 62, 62, 63, 63, 63, 63, 684, 61, 61, - /* 1650 */ 61, 61, 60, 60, 59, 59, 59, 58, 253, 836, - /* 1660 */ 1244, 64, 65, 509, 339, 683, 836, 795, 795, 62, - /* 1670 */ 62, 63, 63, 63, 63, 510, 61, 61, 61, 61, - /* 1680 */ 60, 60, 59, 59, 59, 58, 253, 501, 1242, 420, - /* 1690 */ 477, 64, 65, 509, 339, 116, 168, 795, 795, 62, - /* 1700 */ 62, 63, 63, 63, 63, 798, 61, 61, 61, 61, - /* 1710 */ 60, 60, 59, 59, 59, 58, 253, 123, 600, 280, - /* 1720 */ 302, 255, 679, 805, 258, 168, 506, 421, 297, 401, - /* 1730 */ 337, 279, 115, 835, 353, 44, 835, 448, 337, 476, - /* 1740 */ 835, 823, 835, 835, 836, 806, 208, 785, 836, 834, - /* 1750 */ 833, 835, 54, 37, 508, 25, 834, 833, 293, 133, - /* 1760 */ 300, 127, 525, 821, 299, 44, 350, 836, 260, 51, - /* 1770 */ 52, 352, 178, 835, 263, 805, 53, 104, 834, 833, - /* 1780 */ 78, 510, 122, 441, 2, 834, 833, 333, 835, 793, - /* 1790 */ 525, 498, 805, 501, 807, 833, 477, 806, 223, 805, - /* 1800 */ 810, 713, 256, 754, 568, 835, 508, 793, 809, 808, - /* 1810 */ 807, 358, 835, 556, 806, 223, 167, 354, 759, 176, - /* 1820 */ 956, 806, 118, 508, 798, 78, 766, 623, 647, 836, - /* 1830 */ 508, 36, 506, 713, 267, 836, 638, 331, 438, 717, - /* 1840 */ 731, 793, 82, 247, 793, 478, 783, 12, 703, 836, - /* 1850 */ 318, 266, 835, 785, 433, 366, 836, 367, 54, 584, - /* 1860 */ 712, 836, 332, 834, 833, 81, 634, 834, 833, 24, - /* 1870 */ 169, 838, 366, 160, 449, 51, 52, 80, 826, 754, - /* 1880 */ 264, 517, 53, 824, 835, 289, 834, 833, 156, 561, - /* 1890 */ 2, 835, 324, 397, 717, 793, 835, 498, 835, 517, - /* 1900 */ 807, 833, 698, 616, 10, 510, 810, 835, 429, 380, - /* 1910 */ 187, 152, 822, 793, 809, 808, 807, 501, 247, 101, - /* 1920 */ 99, 64, 38, 509, 339, 835, 35, 795, 795, 62, - /* 1930 */ 62, 63, 63, 63, 63, 836, 61, 61, 61, 61, - /* 1940 */ 60, 60, 59, 59, 59, 58, 253, 793, 834, 833, - /* 1950 */ 793, 713, 783, 12, 834, 833, 506, 34, 33, 836, - /* 1960 */ 819, 805, 32, 555, 379, 98, 805, 644, 834, 833, - /* 1970 */ 552, 836, 805, 835, 835, 834, 833, 785, 717, 835, - /* 1980 */ 834, 833, 54, 806, 223, 835, 378, 697, 806, 223, - /* 1990 */ 836, 835, 508, 376, 806, 118, 555, 508, 694, 51, - /* 2000 */ 52, 97, 653, 508, 836, 805, 53, 595, 596, 590, - /* 2010 */ 585, 510, 410, 337, 2, 656, 552, 247, 835, 793, - /* 2020 */ 387, 498, 805, 501, 807, 833, 835, 806, 223, 836, - /* 2030 */ 810, 583, 105, 168, 805, 835, 508, 793, 809, 808, - /* 2040 */ 807, 366, 577, 377, 806, 118, 490, 835, 408, 336, - /* 2050 */ 147, 383, 754, 508, 834, 833, 806, 216, 295, 13, - /* 2060 */ 815, 292, 506, 181, 471, 508, 192, 624, 558, 92, - /* 2070 */ 534, 793, 619, 835, 793, 533, 783, 12, 834, 833, - /* 2080 */ 394, 337, 287, 785, 836, 366, 557, 803, 54, 139, - /* 2090 */ 834, 833, 515, 375, 835, 835, 90, 247, 790, 262, - /* 2100 */ 835, 759, 754, 582, 243, 51, 52, 109, 836, 834, - /* 2110 */ 833, 835, 53, 503, 754, 239, 369, 510, 368, 382, - /* 2120 */ 2, 315, 610, 834, 833, 793, 835, 498, 805, 501, - /* 2130 */ 807, 833, 839, 179, 805, 180, 810, 829, 827, 805, - /* 2140 */ 828, 835, 719, 793, 809, 808, 807, 835, 834, 833, - /* 2150 */ 806, 194, 835, 836, 177, 835, 806, 204, 836, 508, - /* 2160 */ 512, 806, 226, 285, 554, 508, 430, 553, 506, 759, - /* 2170 */ 508, 511, 715, 836, 805, 614, 835, 793, 836, 805, - /* 2180 */ 793, 72, 783, 12, 836, 835, 103, 835, 836, 785, - /* 2190 */ 175, 820, 835, 836, 54, 801, 806, 224, 800, 173, - /* 2200 */ 710, 806, 232, 834, 833, 508, 274, 836, 754, 836, - /* 2210 */ 508, 51, 52, 835, 754, 343, 606, 23, 53, 754, - /* 2220 */ 43, 569, 472, 510, 342, 805, 2, 834, 833, 67, - /* 2230 */ 836, 793, 186, 498, 253, 501, 807, 833, 835, 799, - /* 2240 */ 805, 836, 810, 752, 495, 805, 84, 806, 231, 793, - /* 2250 */ 809, 808, 807, 835, 754, 251, 508, 283, 835, 754, - /* 2260 */ 269, 550, 806, 233, 268, 47, 334, 806, 237, 57, - /* 2270 */ 835, 508, 834, 833, 506, 751, 508, 834, 833, 488, - /* 2280 */ 750, 161, 836, 793, 747, 601, 793, 389, 783, 12, - /* 2290 */ 1168, 741, 834, 833, 835, 785, 244, 834, 833, 134, - /* 2300 */ 54, 520, 463, 834, 833, 754, 756, 834, 833, 678, - /* 2310 */ 522, 735, 834, 833, 135, 835, 572, 51, 52, 459, - /* 2320 */ 754, 320, 835, 654, 53, 754, 834, 833, 834, 833, - /* 2330 */ 456, 805, 2, 1170, 835, 680, 835, 793, 551, 498, - /* 2340 */ 160, 560, 807, 833, 835, 663, 669, 510, 810, 834, - /* 2350 */ 833, 542, 664, 806, 272, 793, 809, 808, 807, 501, - /* 2360 */ 834, 833, 508, 446, 65, 509, 339, 385, 322, 795, - /* 2370 */ 795, 62, 62, 63, 63, 63, 63, 805, 61, 61, - /* 2380 */ 61, 61, 60, 60, 59, 59, 59, 58, 253, 793, - /* 2390 */ 835, 660, 793, 276, 783, 12, 760, 372, 506, 806, - /* 2400 */ 340, 834, 833, 632, 659, 805, 835, 716, 508, 314, - /* 2410 */ 307, 754, 805, 404, 658, 637, 835, 618, 835, 785, - /* 2420 */ 630, 360, 835, 835, 54, 835, 835, 806, 230, 155, - /* 2430 */ 629, 521, 628, 346, 806, 203, 508, 805, 507, 627, - /* 2440 */ 154, 51, 52, 508, 835, 308, 835, 359, 53, 30, - /* 2450 */ 835, 835, 102, 510, 428, 132, 2, 754, 835, 806, - /* 2460 */ 221, 793, 423, 498, 153, 501, 807, 833, 508, 249, - /* 2470 */ 294, 805, 810, 291, 281, 835, 805, 411, 277, 793, - /* 2480 */ 809, 808, 807, 835, 835, 754, 835, 835, 278, 835, - /* 2490 */ 306, 835, 754, 806, 225, 426, 31, 151, 806, 364, - /* 2500 */ 609, 835, 508, 131, 506, 100, 150, 508, 605, 149, - /* 2510 */ 185, 106, 418, 793, 599, 148, 793, 754, 783, 12, - /* 2520 */ 417, 593, 129, 128, 405, 785, 402, 146, 573, 96, - /* 2530 */ 54, 145, 400, 95, 144, 94, 143, 93, 142, 30, - /* 2540 */ 543, 141, 29, 530, 518, 26, 126, 51, 52, 373, - /* 2550 */ 528, 754, 524, 805, 53, 125, 754, 140, 805, 193, - /* 2560 */ 79, 778, 2, 344, 774, 763, 835, 793, 721, 498, - /* 2570 */ 491, 835, 834, 833, 711, 806, 363, 183, 810, 323, - /* 2580 */ 806, 362, 182, 655, 508, 793, 809, 808, 807, 508, - /* 2590 */ 437, 234, 598, 304, 424, 509, 339, 301, 355, 795, - /* 2600 */ 795, 62, 62, 63, 63, 63, 63, 9, 61, 61, - /* 2610 */ 61, 61, 60, 60, 59, 59, 59, 58, 253, 793, - /* 2620 */ 796, 773, 793, 762, 783, 12, 642, 805, 248, 345, - /* 2630 */ 427, 41, 505, 754, 805, 740, 652, 91, 754, 567, - /* 2640 */ 835, 805, 646, 78, 673, 645, 836, 835, 672, 806, - /* 2650 */ 220, 1318, 633, 805, 835, 1318, 806, 206, 508, 1318, - /* 2660 */ 805, 1318, 1318, 806, 219, 508, 835, 805, 1318, 1318, - /* 2670 */ 1318, 1318, 508, 835, 1318, 806, 218, 1318, 1318, 805, - /* 2680 */ 835, 805, 806, 205, 508, 1318, 1318, 1318, 1318, 806, - /* 2690 */ 202, 508, 835, 805, 835, 1318, 1318, 1318, 508, 1318, - /* 2700 */ 1318, 806, 119, 806, 201, 1318, 835, 754, 1318, 1318, - /* 2710 */ 508, 1318, 508, 1318, 754, 806, 199, 1318, 1318, 805, - /* 2720 */ 1318, 754, 1318, 1318, 508, 1318, 1318, 1318, 1318, 1318, - /* 2730 */ 1318, 1318, 835, 754, 1318, 1318, 1318, 1318, 1318, 1318, - /* 2740 */ 754, 806, 227, 1318, 1318, 1318, 1318, 754, 1318, 1318, - /* 2750 */ 508, 1318, 1318, 805, 1318, 1318, 805, 1318, 805, 754, - /* 2760 */ 1318, 754, 1318, 1318, 1318, 1318, 835, 1318, 1318, 835, - /* 2770 */ 1318, 835, 805, 754, 1318, 806, 229, 1318, 806, 222, - /* 2780 */ 806, 228, 1318, 1318, 508, 835, 1318, 508, 805, 508, - /* 2790 */ 1318, 1318, 1318, 1318, 806, 217, 1318, 1318, 1318, 754, - /* 2800 */ 805, 835, 1318, 508, 805, 1318, 1318, 1318, 1318, 1318, - /* 2810 */ 806, 214, 1318, 835, 1318, 1318, 1318, 835, 1318, 508, - /* 2820 */ 1318, 1318, 806, 198, 805, 1318, 806, 197, 1318, 1318, - /* 2830 */ 1318, 508, 1318, 754, 1318, 508, 754, 835, 754, 1318, - /* 2840 */ 805, 1318, 1318, 1318, 1318, 1318, 806, 196, 1318, 1318, - /* 2850 */ 1318, 1318, 754, 835, 805, 508, 805, 1318, 1318, 1318, - /* 2860 */ 805, 1318, 806, 195, 1318, 1318, 1318, 835, 754, 835, - /* 2870 */ 1318, 508, 1318, 835, 1318, 805, 806, 207, 806, 212, - /* 2880 */ 754, 1318, 806, 211, 754, 508, 1318, 508, 835, 1318, - /* 2890 */ 805, 508, 805, 1318, 805, 1318, 1318, 806, 120, 1318, - /* 2900 */ 1318, 1318, 1318, 835, 754, 835, 508, 835, 1318, 1318, - /* 2910 */ 1318, 1318, 806, 210, 806, 209, 806, 215, 1318, 805, - /* 2920 */ 754, 508, 1318, 508, 1318, 508, 1318, 1318, 1318, 1318, - /* 2930 */ 1318, 1318, 835, 1318, 754, 1318, 754, 1318, 1318, 1318, - /* 2940 */ 754, 806, 213, 1318, 1318, 1318, 1318, 1318, 1318, 1318, - /* 2950 */ 508, 1318, 1318, 805, 1318, 754, 805, 1318, 1318, 1318, - /* 2960 */ 1318, 1318, 1318, 1318, 1318, 1318, 835, 1318, 1318, 835, - /* 2970 */ 754, 1318, 754, 1318, 754, 806, 200, 1318, 806, 89, - /* 2980 */ 1318, 1318, 1318, 1318, 508, 1318, 1318, 462, 1318, 1318, - /* 2990 */ 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 754, - /* 3000 */ 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, - /* 3010 */ 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, - /* 3020 */ 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, - /* 3030 */ 1318, 1318, 1318, 754, 1318, 1318, 754, + /* 0 */ 530, 162, 431, 771, 456, 453, 452, 27, 67, 68, + /* 10 */ 529, 282, 521, 770, 818, 818, 65, 65, 66, 66, + /* 20 */ 66, 66, 451, 64, 64, 64, 64, 63, 63, 62, + /* 30 */ 62, 62, 61, 59, 263, 464, 1230, 807, 67, 68, + /* 40 */ 529, 282, 58, 116, 818, 818, 65, 65, 66, 66, + /* 50 */ 66, 66, 526, 64, 64, 64, 64, 63, 63, 62, + /* 60 */ 62, 62, 61, 59, 263, 681, 1280, 62, 62, 62, + /* 70 */ 61, 59, 263, 808, 432, 66, 66, 66, 66, 56, + /* 80 */ 64, 64, 64, 64, 63, 63, 62, 62, 62, 61, + /* 90 */ 59, 263, 834, 862, 14, 835, 53, 54, 715, 704, + /* 100 */ 704, 353, 828, 619, 55, 1042, 508, 633, 295, 781, + /* 110 */ 530, 299, 2, 1042, 343, 861, 861, 816, 1042, 354, + /* 120 */ 867, 518, 521, 830, 859, 829, 230, 672, 673, 833, + /* 130 */ 1108, 821, 324, 861, 528, 327, 816, 832, 831, 830, + /* 140 */ 406, 1042, 39, 143, 608, 80, 862, 128, 515, 291, + /* 150 */ 472, 265, 709, 708, 1042, 301, 1042, 1042, 828, 585, + /* 160 */ 1042, 290, 526, 366, 368, 1042, 1042, 1042, 1042, 1042, + /* 170 */ 1042, 816, 861, 609, 816, 611, 806, 12, 610, 364, + /* 180 */ 560, 829, 230, 808, 510, 506, 163, 351, 1042, 56, + /* 190 */ 528, 782, 132, 82, 861, 371, 587, 365, 21, 428, + /* 200 */ 561, 562, 367, 183, 805, 72, 53, 54, 109, 89, + /* 210 */ 723, 81, 497, 127, 55, 1108, 860, 859, 483, 468, + /* 220 */ 530, 560, 2, 1108, 862, 297, 448, 816, 1108, 724, + /* 230 */ 791, 518, 521, 830, 859, 861, 107, 809, 498, 833, + /* 240 */ 381, 561, 414, 8, 723, 172, 816, 832, 831, 830, + /* 250 */ 369, 1108, 181, 745, 821, 1059, 1059, 141, 72, 52, + /* 260 */ 758, 50, 809, 723, 1108, 502, 1108, 1108, 688, 860, + /* 270 */ 859, 861, 526, 563, 798, 1108, 1108, 1108, 1108, 861, + /* 280 */ 1108, 816, 724, 78, 816, 194, 806, 12, 386, 862, + /* 290 */ 734, 382, 687, 808, 334, 79, 809, 723, 1108, 56, + /* 300 */ 64, 64, 64, 64, 63, 63, 62, 62, 62, 61, + /* 310 */ 59, 263, 751, 858, 415, 798, 53, 54, 790, 614, + /* 320 */ 856, 722, 828, 116, 55, 1093, 742, 167, 413, 857, + /* 330 */ 469, 173, 2, 1093, 751, 42, 861, 816, 1093, 809, + /* 340 */ 751, 518, 821, 830, 859, 829, 230, 860, 859, 833, + /* 350 */ 1358, 190, 535, 3, 528, 487, 816, 832, 831, 830, + /* 360 */ 815, 1093, 711, 759, 809, 721, 717, 58, 122, 505, + /* 370 */ 522, 500, 746, 4, 1093, 817, 1093, 1093, 767, 828, + /* 380 */ 1197, 1197, 483, 470, 600, 1093, 828, 1093, 1093, 601, + /* 390 */ 1093, 816, 91, 861, 816, 815, 806, 12, 809, 44, + /* 400 */ 861, 113, 829, 215, 381, 307, 442, 317, 1093, 829, + /* 410 */ 123, 528, 860, 859, 1200, 284, 473, 423, 528, 67, + /* 420 */ 68, 529, 282, 1197, 1197, 818, 818, 65, 65, 66, + /* 430 */ 66, 66, 66, 74, 64, 64, 64, 64, 63, 63, + /* 440 */ 62, 62, 62, 61, 59, 263, 63, 63, 62, 62, + /* 450 */ 62, 61, 59, 263, 800, 799, 172, 332, 504, 73, + /* 460 */ 626, 775, 116, 1197, 1197, 821, 389, 247, 775, 67, + /* 470 */ 68, 529, 282, 69, 264, 818, 818, 65, 65, 66, + /* 480 */ 66, 66, 66, 412, 64, 64, 64, 64, 63, 63, + /* 490 */ 62, 62, 62, 61, 59, 263, 496, 58, 142, 753, + /* 500 */ 588, 734, 67, 68, 529, 282, 1197, 1197, 818, 818, + /* 510 */ 65, 65, 66, 66, 66, 66, 862, 64, 64, 64, + /* 520 */ 64, 63, 63, 62, 62, 62, 61, 59, 263, 788, + /* 530 */ 449, 703, 828, 830, 340, 116, 372, 1307, 177, 833, + /* 540 */ 657, 787, 1307, 45, 505, 363, 861, 832, 831, 830, + /* 550 */ 643, 92, 339, 254, 861, 829, 230, 407, 803, 802, + /* 560 */ 285, 1197, 1197, 380, 528, 342, 699, 795, 658, 261, + /* 570 */ 1200, 81, 1200, 66, 66, 66, 66, 40, 64, 64, + /* 580 */ 64, 64, 63, 63, 62, 62, 62, 61, 59, 263, + /* 590 */ 693, 862, 483, 484, 281, 280, 862, 1201, 286, 836, + /* 600 */ 67, 68, 529, 282, 1197, 1197, 818, 818, 65, 65, + /* 610 */ 66, 66, 66, 66, 381, 64, 64, 64, 64, 63, + /* 620 */ 63, 62, 62, 62, 61, 59, 263, 862, 1, 751, + /* 630 */ 430, 141, 798, 827, 812, 800, 799, 788, 647, 860, + /* 640 */ 859, 677, 328, 1197, 1197, 861, 409, 492, 648, 787, + /* 650 */ 87, 751, 67, 68, 529, 282, 861, 751, 818, 818, + /* 660 */ 65, 65, 66, 66, 66, 66, 862, 64, 64, 64, + /* 670 */ 64, 63, 63, 62, 62, 62, 61, 59, 263, 251, + /* 680 */ 250, 249, 67, 68, 529, 282, 1197, 1197, 818, 818, + /* 690 */ 65, 65, 66, 66, 66, 66, 176, 64, 64, 64, + /* 700 */ 64, 63, 63, 62, 62, 62, 61, 59, 263, 764, + /* 710 */ 502, 135, 777, 656, 860, 859, 657, 1266, 162, 860, + /* 720 */ 859, 456, 453, 452, 861, 811, 840, 92, 843, 357, + /* 730 */ 861, 350, 764, 255, 707, 531, 471, 841, 163, 451, + /* 740 */ 839, 684, 861, 584, 584, 467, 746, 4, 665, 459, + /* 750 */ 860, 859, 271, 1201, 644, 1201, 862, 683, 67, 68, + /* 760 */ 529, 282, 23, 491, 818, 818, 65, 65, 66, 66, + /* 770 */ 66, 66, 486, 64, 64, 64, 64, 63, 63, 62, + /* 780 */ 62, 62, 61, 59, 263, 67, 68, 529, 282, 860, + /* 790 */ 859, 818, 818, 65, 65, 66, 66, 66, 66, 751, + /* 800 */ 64, 64, 64, 64, 63, 63, 62, 62, 62, 61, + /* 810 */ 59, 263, 530, 1266, 866, 862, 636, 485, 344, 534, + /* 820 */ 457, 751, 503, 768, 521, 344, 180, 751, 597, 466, + /* 830 */ 633, 697, 861, 482, 419, 67, 68, 529, 282, 861, + /* 840 */ 386, 818, 818, 65, 65, 66, 66, 66, 66, 810, + /* 850 */ 64, 64, 64, 64, 63, 63, 62, 62, 62, 61, + /* 860 */ 59, 263, 821, 828, 526, 342, 699, 570, 80, 401, + /* 870 */ 353, 122, 119, 61, 59, 263, 842, 861, 585, 860, + /* 880 */ 859, 81, 744, 376, 861, 808, 829, 223, 692, 481, + /* 890 */ 376, 56, 135, 259, 804, 528, 569, 592, 568, 325, + /* 900 */ 283, 567, 633, 326, 965, 520, 803, 802, 53, 54, + /* 910 */ 22, 246, 245, 861, 371, 586, 55, 179, 126, 341, + /* 920 */ 462, 336, 461, 164, 2, 1207, 537, 71, 57, 816, + /* 930 */ 602, 603, 425, 518, 79, 830, 859, 334, 830, 608, + /* 940 */ 80, 833, 588, 165, 833, 775, 793, 1215, 816, 832, + /* 950 */ 831, 830, 832, 831, 830, 795, 519, 261, 197, 862, + /* 960 */ 789, 438, 1202, 354, 1315, 1315, 173, 690, 609, 689, + /* 970 */ 611, 255, 707, 610, 471, 613, 172, 861, 372, 1306, + /* 980 */ 798, 293, 821, 816, 1306, 821, 816, 792, 806, 12, + /* 990 */ 67, 68, 529, 282, 429, 861, 818, 818, 65, 65, + /* 1000 */ 66, 66, 66, 66, 435, 64, 64, 64, 64, 63, + /* 1010 */ 63, 62, 62, 62, 61, 59, 263, 67, 68, 529, + /* 1020 */ 282, 734, 81, 818, 818, 65, 65, 66, 66, 66, + /* 1030 */ 66, 780, 64, 64, 64, 64, 63, 63, 62, 62, + /* 1040 */ 62, 61, 59, 263, 67, 68, 529, 282, 662, 661, + /* 1050 */ 818, 818, 65, 65, 66, 66, 66, 66, 1251, 64, + /* 1060 */ 64, 64, 64, 63, 63, 62, 62, 62, 61, 59, + /* 1070 */ 263, 779, 512, 566, 778, 639, 639, 870, 67, 68, + /* 1080 */ 529, 282, 860, 859, 818, 818, 65, 65, 66, 66, + /* 1090 */ 66, 66, 51, 64, 64, 64, 64, 63, 63, 62, + /* 1100 */ 62, 62, 61, 59, 263, 821, 411, 794, 862, 67, + /* 1110 */ 68, 529, 282, 118, 698, 818, 818, 65, 65, 66, + /* 1120 */ 66, 66, 66, 437, 64, 64, 64, 64, 63, 63, + /* 1130 */ 62, 62, 62, 61, 59, 263, 834, 861, 862, 835, + /* 1140 */ 196, 67, 68, 529, 282, 696, 48, 818, 818, 65, + /* 1150 */ 65, 66, 66, 66, 66, 776, 64, 64, 64, 64, + /* 1160 */ 63, 63, 62, 62, 62, 61, 59, 263, 1204, 869, + /* 1170 */ 3, 436, 67, 68, 529, 282, 173, 679, 818, 818, + /* 1180 */ 65, 65, 66, 66, 66, 66, 868, 64, 64, 64, + /* 1190 */ 64, 63, 63, 62, 62, 62, 61, 59, 263, 774, + /* 1200 */ 267, 862, 622, 67, 68, 529, 282, 173, 195, 818, + /* 1210 */ 818, 65, 65, 66, 66, 66, 66, 735, 64, 64, + /* 1220 */ 64, 64, 63, 63, 62, 62, 62, 61, 59, 263, + /* 1230 */ 507, 860, 859, 309, 67, 68, 529, 282, 44, 331, + /* 1240 */ 818, 818, 65, 65, 66, 66, 66, 66, 862, 64, + /* 1250 */ 64, 64, 64, 63, 63, 62, 62, 62, 61, 59, + /* 1260 */ 263, 860, 859, 671, 729, 862, 67, 68, 529, 282, + /* 1270 */ 720, 28, 818, 818, 65, 65, 66, 66, 66, 66, + /* 1280 */ 735, 64, 64, 64, 64, 63, 63, 62, 62, 62, + /* 1290 */ 61, 59, 263, 460, 1281, 67, 68, 529, 282, 862, + /* 1300 */ 719, 818, 818, 65, 65, 66, 66, 66, 66, 670, + /* 1310 */ 64, 64, 64, 64, 63, 63, 62, 62, 62, 61, + /* 1320 */ 59, 263, 530, 1279, 860, 859, 304, 726, 320, 354, + /* 1330 */ 735, 44, 269, 81, 521, 837, 47, 494, 67, 68, + /* 1340 */ 529, 282, 861, 861, 818, 818, 65, 65, 66, 66, + /* 1350 */ 66, 66, 862, 64, 64, 64, 64, 63, 63, 62, + /* 1360 */ 62, 62, 61, 59, 263, 598, 46, 828, 530, 606, + /* 1370 */ 828, 860, 859, 590, 526, 509, 20, 716, 373, 517, + /* 1380 */ 521, 861, 554, 494, 861, 821, 862, 493, 860, 859, + /* 1390 */ 829, 230, 828, 829, 230, 808, 843, 256, 399, 528, + /* 1400 */ 501, 56, 528, 6, 862, 846, 861, 437, 44, 986, + /* 1410 */ 861, 112, 117, 122, 645, 829, 215, 122, 53, 54, + /* 1420 */ 526, 861, 860, 859, 528, 77, 55, 408, 417, 862, + /* 1430 */ 483, 474, 598, 493, 2, 751, 862, 766, 516, 816, + /* 1440 */ 778, 808, 861, 518, 513, 830, 859, 56, 554, 381, + /* 1450 */ 530, 833, 381, 499, 539, 828, 441, 751, 816, 832, + /* 1460 */ 831, 830, 521, 751, 53, 54, 22, 862, 861, 861, + /* 1470 */ 625, 629, 55, 689, 775, 860, 859, 862, 829, 215, + /* 1480 */ 2, 864, 122, 19, 266, 816, 739, 528, 551, 518, + /* 1490 */ 761, 830, 859, 816, 862, 861, 816, 833, 806, 12, + /* 1500 */ 861, 828, 526, 548, 816, 832, 831, 830, 821, 860, + /* 1510 */ 859, 345, 756, 642, 755, 861, 551, 828, 637, 81, + /* 1520 */ 820, 549, 548, 808, 829, 230, 5, 860, 859, 56, + /* 1530 */ 311, 861, 760, 528, 862, 765, 4, 775, 862, 816, + /* 1540 */ 829, 230, 816, 863, 806, 12, 53, 54, 754, 528, + /* 1550 */ 548, 122, 860, 859, 55, 752, 122, 403, 18, 860, + /* 1560 */ 859, 277, 2, 281, 280, 728, 821, 816, 122, 490, + /* 1570 */ 862, 518, 346, 830, 859, 753, 735, 276, 316, 833, + /* 1580 */ 727, 387, 268, 381, 750, 4, 816, 832, 831, 830, + /* 1590 */ 860, 859, 861, 17, 630, 557, 16, 256, 344, 381, + /* 1600 */ 860, 859, 1315, 1315, 800, 799, 821, 530, 559, 862, + /* 1610 */ 558, 593, 861, 630, 749, 4, 553, 860, 859, 521, + /* 1620 */ 411, 816, 494, 725, 816, 11, 806, 12, 67, 38, + /* 1630 */ 529, 282, 284, 473, 818, 818, 65, 65, 66, 66, + /* 1640 */ 66, 66, 821, 64, 64, 64, 64, 63, 63, 62, + /* 1650 */ 62, 62, 61, 59, 263, 828, 115, 860, 859, 526, + /* 1660 */ 348, 860, 859, 275, 747, 4, 862, 828, 422, 861, + /* 1670 */ 825, 353, 495, 735, 547, 58, 593, 851, 829, 123, + /* 1680 */ 808, 861, 828, 852, 828, 861, 56, 528, 171, 821, + /* 1690 */ 829, 123, 862, 860, 859, 353, 861, 861, 861, 528, + /* 1700 */ 868, 784, 547, 53, 54, 829, 230, 829, 123, 861, + /* 1710 */ 270, 55, 748, 4, 528, 730, 528, 256, 90, 2, + /* 1720 */ 274, 170, 347, 169, 816, 168, 635, 175, 518, 821, + /* 1730 */ 830, 859, 860, 859, 398, 862, 833, 775, 718, 174, + /* 1740 */ 129, 657, 402, 816, 832, 831, 830, 477, 828, 775, + /* 1750 */ 862, 541, 92, 313, 862, 861, 392, 312, 713, 635, + /* 1760 */ 850, 782, 861, 475, 381, 821, 775, 861, 739, 710, + /* 1770 */ 7, 829, 123, 849, 861, 712, 862, 663, 816, 256, + /* 1780 */ 528, 816, 861, 806, 12, 782, 68, 529, 282, 860, + /* 1790 */ 859, 818, 818, 65, 65, 66, 66, 66, 66, 847, + /* 1800 */ 64, 64, 64, 64, 63, 63, 62, 62, 62, 61, + /* 1810 */ 59, 263, 530, 15, 465, 860, 859, 706, 705, 81, + /* 1820 */ 390, 862, 121, 701, 521, 120, 273, 529, 282, 862, + /* 1830 */ 775, 818, 818, 65, 65, 66, 66, 66, 66, 396, + /* 1840 */ 64, 64, 64, 64, 63, 63, 62, 62, 62, 61, + /* 1850 */ 59, 263, 828, 138, 862, 848, 828, 862, 860, 859, + /* 1860 */ 37, 25, 72, 1052, 526, 669, 861, 723, 741, 861, + /* 1870 */ 861, 545, 862, 860, 859, 829, 230, 860, 859, 829, + /* 1880 */ 201, 845, 861, 353, 528, 808, 724, 458, 528, 862, + /* 1890 */ 545, 56, 660, 571, 36, 861, 862, 861, 455, 860, + /* 1900 */ 859, 723, 1315, 1315, 86, 739, 862, 333, 53, 54, + /* 1910 */ 524, 85, 488, 24, 530, 450, 55, 323, 545, 861, + /* 1920 */ 84, 862, 397, 828, 2, 678, 521, 714, 300, 816, + /* 1930 */ 161, 861, 583, 518, 381, 830, 859, 861, 775, 446, + /* 1940 */ 828, 833, 861, 739, 860, 859, 829, 211, 816, 832, + /* 1950 */ 831, 830, 860, 859, 861, 528, 339, 861, 638, 193, + /* 1960 */ 157, 571, 10, 829, 233, 815, 526, 105, 838, 745, + /* 1970 */ 862, 624, 528, 782, 574, 862, 395, 860, 859, 35, + /* 1980 */ 860, 859, 861, 816, 103, 828, 816, 808, 806, 12, + /* 1990 */ 624, 844, 814, 56, 34, 860, 859, 33, 862, 861, + /* 2000 */ 815, 828, 32, 102, 391, 775, 577, 393, 829, 231, + /* 2010 */ 53, 54, 860, 859, 394, 861, 530, 528, 55, 860, + /* 2020 */ 859, 574, 775, 616, 829, 241, 2, 330, 521, 860, + /* 2030 */ 859, 816, 828, 528, 828, 518, 101, 830, 859, 862, + /* 2040 */ 577, 618, 616, 833, 860, 859, 861, 828, 861, 828, + /* 2050 */ 816, 832, 831, 830, 862, 829, 240, 829, 242, 862, + /* 2060 */ 731, 861, 862, 861, 528, 308, 528, 775, 526, 612, + /* 2070 */ 829, 243, 829, 262, 607, 605, 862, 426, 828, 528, + /* 2080 */ 736, 528, 298, 775, 110, 816, 579, 581, 816, 808, + /* 2090 */ 806, 12, 861, 860, 859, 56, 861, 826, 860, 859, + /* 2100 */ 173, 829, 356, 296, 599, 306, 581, 575, 152, 739, + /* 2110 */ 528, 861, 53, 54, 775, 538, 775, 861, 530, 13, + /* 2120 */ 55, 860, 859, 861, 303, 862, 187, 828, 2, 775, + /* 2130 */ 521, 775, 580, 816, 538, 439, 198, 518, 556, 830, + /* 2140 */ 859, 861, 828, 96, 828, 833, 740, 555, 410, 861, + /* 2150 */ 829, 239, 816, 832, 831, 830, 861, 862, 861, 528, + /* 2160 */ 775, 862, 860, 859, 862, 829, 355, 829, 210, 144, + /* 2170 */ 526, 536, 94, 256, 528, 666, 528, 860, 859, 862, + /* 2180 */ 424, 248, 860, 859, 862, 860, 859, 816, 76, 828, + /* 2190 */ 816, 808, 806, 12, 1205, 604, 813, 56, 252, 860, + /* 2200 */ 859, 272, 862, 861, 828, 862, 114, 675, 385, 775, + /* 2210 */ 861, 185, 829, 228, 53, 54, 384, 865, 861, 294, + /* 2220 */ 530, 528, 55, 572, 775, 855, 775, 829, 232, 828, + /* 2230 */ 2, 1207, 521, 861, 854, 816, 528, 853, 634, 518, + /* 2240 */ 533, 830, 859, 861, 862, 184, 287, 833, 860, 859, + /* 2250 */ 383, 828, 829, 379, 816, 832, 831, 830, 862, 653, + /* 2260 */ 861, 528, 862, 523, 862, 861, 862, 182, 108, 447, + /* 2270 */ 532, 775, 526, 641, 829, 378, 737, 861, 75, 359, + /* 2280 */ 860, 859, 828, 528, 860, 859, 775, 860, 859, 816, + /* 2290 */ 861, 862, 816, 808, 806, 12, 861, 646, 178, 56, + /* 2300 */ 632, 824, 860, 859, 284, 829, 377, 860, 859, 358, + /* 2310 */ 823, 775, 862, 732, 528, 628, 53, 54, 23, 489, + /* 2320 */ 623, 591, 530, 192, 55, 860, 859, 861, 860, 859, + /* 2330 */ 43, 828, 2, 775, 521, 822, 70, 816, 166, 305, + /* 2340 */ 263, 518, 352, 830, 859, 861, 828, 88, 862, 833, + /* 2350 */ 862, 279, 861, 861, 829, 227, 816, 832, 831, 830, + /* 2360 */ 861, 480, 862, 528, 775, 700, 260, 860, 859, 829, + /* 2370 */ 213, 405, 278, 349, 526, 861, 49, 505, 528, 861, + /* 2380 */ 1209, 860, 859, 514, 596, 860, 859, 860, 859, 860, + /* 2390 */ 859, 816, 335, 828, 816, 808, 806, 12, 828, 773, + /* 2400 */ 594, 56, 1209, 772, 253, 404, 861, 861, 1209, 578, + /* 2410 */ 769, 763, 861, 775, 860, 859, 829, 226, 53, 54, + /* 2420 */ 862, 829, 225, 862, 676, 528, 55, 582, 775, 573, + /* 2430 */ 528, 139, 862, 828, 2, 860, 859, 757, 861, 816, + /* 2440 */ 140, 476, 473, 518, 702, 860, 859, 861, 165, 564, + /* 2450 */ 862, 833, 691, 686, 1209, 654, 829, 212, 816, 832, + /* 2460 */ 831, 830, 1209, 400, 463, 528, 542, 1209, 329, 861, + /* 2470 */ 685, 860, 859, 860, 859, 775, 576, 322, 828, 337, + /* 2480 */ 775, 420, 861, 681, 544, 860, 859, 682, 659, 680, + /* 2490 */ 1209, 861, 861, 816, 543, 861, 816, 828, 806, 12, + /* 2500 */ 375, 829, 238, 1209, 362, 1209, 1209, 652, 861, 828, + /* 2510 */ 528, 861, 651, 374, 1209, 775, 1209, 1209, 861, 1209, + /* 2520 */ 829, 237, 160, 861, 650, 527, 828, 649, 302, 528, + /* 2530 */ 106, 445, 829, 209, 30, 640, 777, 1209, 828, 861, + /* 2540 */ 861, 528, 861, 860, 859, 828, 860, 859, 159, 829, + /* 2550 */ 124, 158, 861, 292, 137, 860, 859, 288, 528, 861, + /* 2560 */ 775, 829, 208, 427, 828, 258, 289, 861, 829, 206, + /* 2570 */ 528, 861, 656, 860, 859, 31, 321, 528, 861, 775, + /* 2580 */ 861, 443, 156, 318, 199, 631, 104, 829, 234, 136, + /* 2590 */ 155, 775, 627, 314, 783, 154, 528, 191, 828, 111, + /* 2600 */ 828, 310, 828, 738, 434, 828, 621, 617, 775, 433, + /* 2610 */ 615, 134, 861, 153, 861, 421, 861, 828, 133, 861, + /* 2620 */ 775, 829, 236, 829, 229, 829, 235, 775, 829, 224, + /* 2630 */ 528, 861, 528, 595, 528, 151, 418, 528, 828, 100, + /* 2640 */ 829, 221, 416, 828, 150, 99, 775, 149, 98, 528, + /* 2650 */ 148, 97, 861, 147, 30, 565, 388, 861, 146, 29, + /* 2660 */ 552, 829, 205, 550, 131, 828, 829, 204, 546, 828, + /* 2670 */ 528, 828, 26, 130, 145, 528, 83, 540, 186, 861, + /* 2680 */ 775, 200, 775, 861, 775, 861, 360, 775, 829, 203, + /* 2690 */ 786, 801, 829, 202, 829, 214, 511, 528, 189, 775, + /* 2700 */ 828, 528, 188, 528, 60, 828, 797, 828, 743, 733, + /* 2710 */ 338, 677, 244, 315, 861, 454, 319, 440, 370, 861, + /* 2720 */ 775, 861, 620, 829, 219, 775, 819, 9, 829, 218, + /* 2730 */ 829, 125, 528, 796, 785, 41, 828, 528, 664, 528, + /* 2740 */ 444, 828, 361, 257, 525, 762, 674, 775, 668, 95, + /* 2750 */ 861, 775, 695, 775, 655, 861, 828, 667, 694, 829, + /* 2760 */ 217, 589, 828, 81, 829, 216, 862, 1359, 528, 1359, + /* 2770 */ 861, 1359, 1359, 528, 1359, 1359, 861, 1359, 1359, 829, + /* 2780 */ 222, 828, 775, 828, 1359, 829, 220, 775, 528, 775, + /* 2790 */ 1359, 1359, 1359, 1359, 528, 861, 1359, 861, 1359, 1359, + /* 2800 */ 1359, 1359, 1359, 1359, 829, 207, 829, 93, 1359, 1359, + /* 2810 */ 1359, 1359, 1359, 528, 1359, 479, 1359, 1359, 775, 1359, + /* 2820 */ 1359, 1359, 1359, 775, 1359, 1359, 1359, 1359, 1359, 1359, + /* 2830 */ 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 775, 1359, + /* 2840 */ 1359, 1359, 1359, 1359, 775, 1359, 1359, 1359, 1359, 1359, + /* 2850 */ 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, + /* 2860 */ 1359, 1359, 1359, 775, 1359, 775, }; static const YYCODETYPE yy_lookahead[] = { - /* 0 */ 4, 228, 67, 4, 231, 70, 106, 79, 80, 81, - /* 10 */ 82, 238, 16, 85, 86, 87, 88, 89, 90, 91, - /* 20 */ 92, 110, 94, 95, 96, 97, 98, 99, 100, 101, - /* 30 */ 102, 103, 104, 199, 106, 94, 95, 96, 97, 98, - /* 40 */ 99, 100, 101, 102, 103, 104, 212, 112, 129, 121, - /* 50 */ 88, 55, 89, 90, 91, 92, 93, 94, 95, 96, - /* 60 */ 97, 98, 99, 100, 101, 102, 103, 104, 199, 199, - /* 70 */ 4, 114, 76, 4, 59, 113, 207, 81, 208, 209, - /* 80 */ 199, 212, 212, 100, 101, 102, 103, 104, 160, 4, - /* 90 */ 221, 222, 4, 212, 98, 99, 100, 169, 199, 230, - /* 100 */ 129, 105, 106, 204, 234, 24, 236, 208, 209, 113, - /* 110 */ 114, 212, 285, 244, 118, 180, 120, 121, 147, 123, - /* 120 */ 124, 122, 123, 124, 4, 129, 127, 258, 259, 130, - /* 130 */ 131, 132, 136, 137, 138, 139, 16, 141, 78, 42, - /* 140 */ 43, 207, 308, 309, 24, 318, 319, 148, 279, 65, - /* 150 */ 154, 113, 156, 157, 75, 71, 160, 142, 143, 144, - /* 160 */ 31, 165, 166, 167, 168, 169, 170, 152, 153, 173, - /* 170 */ 41, 175, 176, 113, 114, 55, 250, 243, 244, 113, - /* 180 */ 83, 84, 113, 187, 118, 34, 260, 118, 307, 123, - /* 190 */ 124, 199, 123, 124, 113, 4, 76, 121, 113, 207, - /* 200 */ 4, 81, 136, 118, 212, 136, 272, 273, 123, 124, - /* 210 */ 276, 123, 124, 221, 222, 131, 140, 151, 98, 99, - /* 220 */ 151, 116, 230, 15, 136, 105, 106, 4, 162, 163, - /* 230 */ 296, 297, 81, 113, 114, 116, 244, 121, 118, 151, - /* 240 */ 120, 121, 127, 123, 124, 130, 131, 132, 4, 129, - /* 250 */ 258, 113, 44, 115, 199, 104, 136, 137, 138, 139, - /* 260 */ 16, 141, 114, 148, 180, 186, 115, 212, 60, 121, - /* 270 */ 154, 279, 156, 157, 154, 121, 156, 157, 127, 128, - /* 280 */ 129, 130, 131, 132, 133, 165, 166, 167, 168, 155, - /* 290 */ 170, 121, 158, 173, 124, 175, 176, 113, 147, 55, - /* 300 */ 98, 99, 100, 101, 102, 103, 104, 187, 191, 118, - /* 310 */ 4, 128, 129, 196, 123, 124, 78, 199, 4, 123, - /* 320 */ 76, 199, 199, 169, 207, 81, 135, 136, 43, 274, - /* 330 */ 212, 135, 162, 163, 212, 212, 142, 143, 144, 221, - /* 340 */ 222, 118, 98, 99, 221, 222, 123, 124, 230, 105, - /* 350 */ 106, 113, 114, 230, 146, 164, 121, 113, 114, 136, - /* 360 */ 243, 244, 118, 5, 120, 121, 81, 123, 124, 4, - /* 370 */ 7, 199, 4, 129, 121, 12, 258, 259, 35, 207, - /* 380 */ 136, 137, 138, 139, 212, 141, 114, 164, 30, 272, - /* 390 */ 273, 269, 114, 276, 36, 52, 207, 279, 154, 56, - /* 400 */ 156, 157, 279, 40, 4, 62, 100, 42, 43, 165, - /* 410 */ 199, 167, 168, 160, 170, 199, 244, 173, 301, 175, - /* 420 */ 176, 63, 114, 212, 208, 209, 141, 113, 212, 123, - /* 430 */ 124, 187, 147, 244, 262, 263, 313, 123, 124, 316, - /* 440 */ 4, 26, 136, 4, 79, 80, 81, 82, 83, 84, - /* 450 */ 85, 86, 87, 88, 89, 90, 91, 92, 114, 94, - /* 460 */ 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - /* 470 */ 4, 123, 35, 262, 263, 113, 170, 129, 103, 104, - /* 480 */ 115, 113, 137, 138, 170, 137, 138, 139, 123, 42, - /* 490 */ 43, 123, 124, 56, 79, 80, 81, 82, 51, 62, - /* 500 */ 85, 86, 87, 88, 89, 90, 91, 92, 165, 94, - /* 510 */ 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - /* 520 */ 4, 114, 4, 123, 159, 125, 79, 80, 81, 82, - /* 530 */ 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - /* 540 */ 10, 94, 95, 96, 97, 98, 99, 100, 101, 102, - /* 550 */ 103, 104, 22, 35, 118, 4, 117, 118, 121, 123, - /* 560 */ 124, 113, 123, 124, 78, 199, 245, 246, 121, 248, - /* 570 */ 52, 210, 42, 43, 56, 214, 215, 216, 212, 21, - /* 580 */ 62, 192, 193, 194, 195, 199, 150, 221, 222, 123, - /* 590 */ 124, 10, 177, 199, 179, 37, 230, 203, 212, 113, - /* 600 */ 114, 32, 136, 22, 218, 219, 212, 121, 121, 79, - /* 610 */ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, - /* 620 */ 90, 91, 92, 54, 94, 95, 96, 97, 98, 99, - /* 630 */ 100, 101, 102, 103, 104, 119, 170, 114, 43, 123, - /* 640 */ 124, 123, 124, 121, 78, 279, 4, 160, 79, 80, - /* 650 */ 81, 82, 42, 43, 85, 86, 87, 88, 89, 90, - /* 660 */ 91, 92, 165, 94, 95, 96, 97, 98, 99, 100, - /* 670 */ 101, 102, 103, 104, 123, 124, 290, 291, 4, 113, - /* 680 */ 114, 315, 316, 165, 187, 134, 4, 121, 4, 79, - /* 690 */ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, - /* 700 */ 90, 91, 92, 100, 94, 95, 96, 97, 98, 99, - /* 710 */ 100, 101, 102, 103, 104, 89, 90, 91, 92, 121, - /* 720 */ 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, - /* 730 */ 104, 115, 79, 80, 81, 82, 141, 212, 85, 86, - /* 740 */ 87, 88, 89, 90, 91, 92, 221, 94, 95, 96, - /* 750 */ 97, 98, 99, 100, 101, 102, 103, 104, 155, 106, - /* 760 */ 118, 158, 113, 165, 67, 123, 124, 70, 26, 79, - /* 770 */ 80, 81, 82, 38, 121, 85, 86, 87, 88, 89, - /* 780 */ 90, 91, 92, 4, 94, 95, 96, 97, 98, 99, - /* 790 */ 100, 101, 102, 103, 104, 113, 106, 123, 124, 4, - /* 800 */ 114, 4, 26, 4, 199, 123, 124, 123, 124, 112, - /* 810 */ 136, 121, 26, 160, 72, 4, 81, 212, 79, 80, - /* 820 */ 81, 82, 169, 181, 85, 86, 87, 88, 89, 90, - /* 830 */ 91, 92, 4, 94, 95, 96, 97, 98, 99, 100, - /* 840 */ 101, 102, 103, 104, 16, 106, 98, 99, 106, 4, - /* 850 */ 160, 72, 170, 207, 170, 79, 80, 81, 82, 169, - /* 860 */ 121, 85, 86, 87, 88, 89, 90, 91, 92, 199, - /* 870 */ 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, - /* 880 */ 104, 4, 212, 55, 177, 137, 138, 14, 218, 219, - /* 890 */ 244, 285, 113, 114, 142, 143, 144, 118, 199, 160, - /* 900 */ 72, 114, 123, 124, 76, 217, 218, 219, 169, 81, - /* 910 */ 113, 212, 115, 118, 309, 136, 199, 207, 123, 124, - /* 920 */ 123, 76, 123, 124, 318, 319, 98, 99, 121, 212, - /* 930 */ 151, 152, 153, 105, 123, 124, 237, 121, 221, 222, - /* 940 */ 13, 113, 114, 98, 99, 115, 118, 230, 120, 4, - /* 950 */ 199, 123, 124, 177, 244, 179, 159, 129, 113, 199, - /* 960 */ 290, 291, 114, 212, 136, 137, 138, 139, 123, 121, - /* 970 */ 159, 4, 212, 174, 129, 258, 259, 141, 183, 291, - /* 980 */ 152, 153, 137, 138, 139, 220, 287, 214, 215, 216, - /* 990 */ 113, 14, 114, 228, 229, 21, 279, 161, 170, 121, - /* 1000 */ 123, 173, 28, 175, 176, 49, 79, 80, 81, 82, - /* 1010 */ 4, 37, 85, 86, 87, 88, 89, 90, 91, 92, - /* 1020 */ 4, 94, 95, 96, 97, 98, 99, 100, 101, 102, - /* 1030 */ 103, 104, 177, 106, 179, 79, 80, 81, 82, 113, - /* 1040 */ 289, 85, 86, 87, 88, 89, 90, 91, 92, 4, - /* 1050 */ 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, - /* 1060 */ 104, 16, 106, 118, 19, 199, 4, 199, 123, 124, - /* 1070 */ 310, 311, 312, 57, 4, 217, 218, 219, 212, 255, - /* 1080 */ 212, 257, 207, 4, 117, 118, 79, 80, 81, 82, - /* 1090 */ 123, 124, 85, 86, 87, 88, 89, 90, 91, 92, - /* 1100 */ 55, 94, 95, 96, 97, 98, 99, 100, 101, 102, - /* 1110 */ 103, 104, 19, 68, 4, 239, 114, 241, 243, 244, - /* 1120 */ 46, 76, 115, 121, 118, 35, 81, 182, 83, 123, - /* 1130 */ 124, 263, 199, 117, 4, 114, 203, 44, 207, 123, - /* 1140 */ 124, 72, 136, 98, 99, 212, 56, 272, 273, 291, - /* 1150 */ 105, 276, 62, 302, 303, 4, 61, 199, 113, 66, - /* 1160 */ 98, 99, 4, 118, 114, 120, 4, 16, 123, 124, - /* 1170 */ 212, 121, 297, 280, 129, 244, 310, 311, 312, 221, - /* 1180 */ 222, 136, 137, 138, 139, 123, 124, 4, 230, 80, - /* 1190 */ 128, 4, 299, 123, 124, 199, 106, 128, 4, 137, - /* 1200 */ 138, 35, 123, 141, 114, 143, 55, 0, 212, 32, - /* 1210 */ 144, 121, 199, 201, 135, 170, 258, 259, 173, 54, - /* 1220 */ 175, 176, 56, 72, 61, 212, 199, 76, 62, 199, - /* 1230 */ 14, 141, 81, 123, 221, 222, 29, 279, 172, 212, - /* 1240 */ 170, 5, 212, 230, 154, 135, 156, 157, 118, 98, - /* 1250 */ 99, 221, 222, 123, 124, 165, 105, 167, 168, 166, - /* 1260 */ 230, 114, 14, 199, 113, 269, 30, 203, 121, 118, - /* 1270 */ 108, 120, 36, 214, 123, 124, 212, 187, 194, 195, - /* 1280 */ 129, 123, 124, 270, 114, 123, 124, 136, 137, 138, - /* 1290 */ 139, 121, 279, 4, 136, 59, 214, 4, 286, 63, - /* 1300 */ 270, 118, 26, 152, 153, 118, 123, 124, 113, 279, - /* 1310 */ 123, 124, 199, 106, 184, 212, 213, 123, 124, 136, - /* 1320 */ 261, 170, 164, 136, 173, 212, 175, 176, 134, 79, - /* 1330 */ 80, 81, 82, 306, 307, 85, 86, 87, 88, 89, - /* 1340 */ 90, 91, 92, 261, 94, 95, 96, 97, 98, 99, - /* 1350 */ 100, 101, 102, 103, 104, 79, 80, 81, 82, 207, - /* 1360 */ 14, 85, 86, 87, 88, 89, 90, 91, 92, 14, - /* 1370 */ 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, - /* 1380 */ 104, 29, 79, 80, 81, 82, 311, 312, 85, 86, - /* 1390 */ 87, 88, 89, 90, 91, 92, 244, 94, 95, 96, - /* 1400 */ 97, 98, 99, 100, 101, 102, 103, 104, 114, 311, - /* 1410 */ 312, 118, 123, 124, 14, 121, 123, 124, 121, 306, - /* 1420 */ 307, 4, 311, 312, 79, 80, 81, 82, 178, 136, - /* 1430 */ 85, 86, 87, 88, 89, 90, 91, 92, 114, 94, - /* 1440 */ 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - /* 1450 */ 239, 4, 241, 164, 79, 80, 81, 82, 106, 114, - /* 1460 */ 85, 86, 87, 88, 89, 90, 91, 92, 38, 94, - /* 1470 */ 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - /* 1480 */ 114, 178, 311, 312, 79, 80, 81, 82, 114, 114, - /* 1490 */ 85, 86, 87, 88, 89, 90, 91, 92, 162, 94, - /* 1500 */ 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - /* 1510 */ 245, 246, 4, 248, 79, 80, 81, 82, 116, 114, - /* 1520 */ 85, 86, 87, 88, 89, 90, 91, 92, 116, 94, - /* 1530 */ 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - /* 1540 */ 123, 124, 277, 100, 79, 80, 81, 82, 121, 114, - /* 1550 */ 85, 86, 87, 88, 89, 90, 91, 92, 113, 94, - /* 1560 */ 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - /* 1570 */ 123, 124, 311, 312, 79, 80, 81, 82, 114, 114, - /* 1580 */ 85, 86, 87, 88, 89, 90, 91, 92, 113, 94, - /* 1590 */ 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - /* 1600 */ 183, 106, 79, 80, 81, 82, 152, 153, 85, 86, - /* 1610 */ 87, 88, 89, 90, 91, 92, 108, 94, 95, 96, - /* 1620 */ 97, 98, 99, 100, 101, 102, 103, 104, 181, 155, - /* 1630 */ 4, 123, 124, 79, 80, 81, 82, 4, 115, 85, - /* 1640 */ 86, 87, 88, 89, 90, 91, 92, 114, 94, 95, - /* 1650 */ 96, 97, 98, 99, 100, 101, 102, 103, 104, 4, - /* 1660 */ 106, 79, 80, 81, 82, 114, 4, 85, 86, 87, - /* 1670 */ 88, 89, 90, 91, 92, 4, 94, 95, 96, 97, - /* 1680 */ 98, 99, 100, 101, 102, 103, 104, 16, 106, 114, - /* 1690 */ 19, 79, 80, 81, 82, 114, 121, 85, 86, 87, - /* 1700 */ 88, 89, 90, 91, 92, 4, 94, 95, 96, 97, - /* 1710 */ 98, 99, 100, 101, 102, 103, 104, 9, 114, 11, - /* 1720 */ 199, 13, 114, 199, 203, 121, 55, 199, 114, 199, - /* 1730 */ 199, 23, 114, 212, 26, 121, 212, 113, 199, 68, - /* 1740 */ 212, 108, 212, 212, 4, 221, 222, 76, 4, 123, - /* 1750 */ 124, 212, 81, 169, 230, 113, 123, 124, 114, 18, - /* 1760 */ 199, 53, 136, 108, 203, 121, 58, 4, 237, 98, - /* 1770 */ 99, 63, 64, 212, 49, 199, 105, 69, 123, 124, - /* 1780 */ 72, 4, 74, 115, 113, 123, 124, 224, 212, 118, - /* 1790 */ 164, 120, 199, 16, 123, 124, 19, 221, 222, 199, - /* 1800 */ 129, 214, 274, 279, 114, 212, 230, 136, 137, 138, - /* 1810 */ 139, 121, 212, 151, 221, 222, 115, 109, 287, 111, - /* 1820 */ 114, 221, 222, 230, 123, 72, 287, 121, 6, 4, - /* 1830 */ 230, 113, 55, 214, 258, 4, 8, 313, 49, 199, - /* 1840 */ 316, 170, 113, 280, 173, 68, 175, 176, 261, 4, - /* 1850 */ 114, 258, 212, 76, 49, 279, 4, 149, 81, 106, - /* 1860 */ 159, 4, 224, 123, 124, 113, 122, 123, 124, 113, - /* 1870 */ 270, 199, 279, 188, 189, 98, 99, 113, 199, 279, - /* 1880 */ 261, 118, 105, 199, 212, 199, 123, 124, 133, 203, - /* 1890 */ 113, 212, 147, 185, 199, 118, 212, 120, 212, 136, - /* 1900 */ 123, 124, 162, 120, 13, 4, 129, 212, 81, 269, - /* 1910 */ 115, 141, 199, 136, 137, 138, 139, 16, 280, 160, - /* 1920 */ 146, 79, 80, 81, 82, 212, 88, 85, 86, 87, - /* 1930 */ 88, 89, 90, 91, 92, 4, 94, 95, 96, 97, - /* 1940 */ 98, 99, 100, 101, 102, 103, 104, 170, 123, 124, - /* 1950 */ 173, 214, 175, 176, 123, 124, 55, 88, 88, 4, - /* 1960 */ 199, 199, 88, 118, 269, 171, 199, 136, 123, 124, - /* 1970 */ 118, 4, 199, 212, 212, 123, 124, 76, 199, 212, - /* 1980 */ 123, 124, 81, 221, 222, 212, 18, 162, 221, 222, - /* 1990 */ 4, 212, 230, 24, 221, 222, 151, 230, 261, 98, - /* 2000 */ 99, 146, 145, 230, 4, 199, 105, 153, 172, 106, - /* 2010 */ 106, 4, 25, 199, 113, 114, 164, 280, 212, 118, - /* 2020 */ 258, 120, 199, 16, 123, 124, 212, 221, 222, 4, - /* 2030 */ 129, 61, 50, 121, 199, 212, 230, 136, 137, 138, - /* 2040 */ 139, 279, 50, 270, 221, 222, 279, 212, 269, 282, - /* 2050 */ 141, 237, 279, 230, 123, 124, 221, 222, 180, 113, - /* 2060 */ 199, 112, 55, 161, 258, 230, 113, 136, 120, 112, - /* 2070 */ 114, 170, 117, 212, 173, 114, 175, 176, 123, 124, - /* 2080 */ 48, 199, 199, 76, 4, 279, 203, 199, 81, 110, - /* 2090 */ 123, 124, 47, 270, 212, 212, 211, 280, 199, 227, - /* 2100 */ 212, 287, 279, 136, 264, 98, 99, 227, 4, 123, - /* 2110 */ 124, 212, 105, 199, 279, 303, 305, 4, 305, 237, - /* 2120 */ 113, 114, 136, 123, 124, 118, 212, 120, 199, 16, - /* 2130 */ 123, 124, 198, 200, 199, 107, 129, 198, 64, 199, - /* 2140 */ 198, 212, 199, 136, 137, 138, 139, 212, 123, 124, - /* 2150 */ 221, 222, 212, 4, 200, 212, 221, 222, 4, 230, - /* 2160 */ 198, 221, 222, 199, 164, 230, 77, 203, 55, 287, - /* 2170 */ 230, 205, 199, 4, 199, 150, 212, 170, 4, 199, - /* 2180 */ 173, 121, 175, 176, 4, 212, 202, 212, 4, 76, - /* 2190 */ 73, 206, 212, 4, 81, 267, 221, 222, 246, 116, - /* 2200 */ 199, 221, 222, 123, 124, 230, 152, 4, 279, 4, - /* 2210 */ 230, 98, 99, 212, 279, 252, 136, 169, 105, 279, - /* 2220 */ 167, 117, 166, 4, 253, 199, 113, 123, 124, 168, - /* 2230 */ 4, 118, 254, 120, 104, 16, 123, 124, 212, 256, - /* 2240 */ 199, 4, 129, 81, 226, 199, 113, 221, 222, 136, - /* 2250 */ 137, 138, 139, 212, 279, 104, 230, 199, 212, 279, - /* 2260 */ 288, 203, 221, 222, 283, 177, 255, 221, 222, 280, - /* 2270 */ 212, 230, 123, 124, 55, 256, 230, 123, 124, 165, - /* 2280 */ 271, 199, 4, 170, 271, 136, 173, 45, 175, 176, - /* 2290 */ 177, 314, 123, 124, 212, 76, 27, 123, 124, 116, - /* 2300 */ 81, 117, 199, 123, 124, 279, 117, 123, 124, 199, - /* 2310 */ 136, 314, 123, 124, 267, 212, 136, 98, 99, 248, - /* 2320 */ 279, 199, 212, 199, 105, 279, 123, 124, 123, 124, - /* 2330 */ 153, 199, 113, 114, 212, 319, 212, 118, 184, 120, - /* 2340 */ 188, 136, 123, 124, 212, 233, 223, 4, 129, 123, - /* 2350 */ 124, 182, 223, 221, 222, 136, 137, 138, 139, 16, - /* 2360 */ 123, 124, 230, 141, 80, 81, 82, 39, 223, 85, - /* 2370 */ 86, 87, 88, 89, 90, 91, 92, 199, 94, 95, - /* 2380 */ 96, 97, 98, 99, 100, 101, 102, 103, 104, 170, - /* 2390 */ 212, 225, 173, 199, 175, 176, 170, 203, 55, 221, - /* 2400 */ 222, 123, 124, 199, 140, 199, 212, 170, 230, 199, - /* 2410 */ 199, 279, 199, 199, 223, 233, 212, 267, 212, 76, - /* 2420 */ 223, 226, 212, 212, 81, 212, 212, 221, 222, 116, - /* 2430 */ 223, 199, 223, 199, 221, 222, 230, 199, 199, 223, - /* 2440 */ 116, 98, 99, 230, 212, 199, 212, 226, 105, 171, - /* 2450 */ 212, 212, 202, 4, 226, 202, 113, 279, 212, 221, - /* 2460 */ 222, 118, 199, 120, 116, 16, 123, 124, 230, 267, - /* 2470 */ 199, 199, 129, 199, 199, 212, 199, 33, 199, 136, - /* 2480 */ 137, 138, 139, 212, 212, 279, 212, 212, 199, 212, - /* 2490 */ 294, 212, 279, 221, 222, 295, 177, 116, 221, 222, - /* 2500 */ 252, 212, 230, 79, 55, 240, 116, 230, 252, 116, - /* 2510 */ 275, 113, 141, 170, 278, 116, 173, 279, 175, 176, - /* 2520 */ 252, 240, 202, 202, 267, 76, 267, 116, 252, 242, - /* 2530 */ 81, 116, 77, 242, 116, 242, 116, 242, 116, 171, - /* 2540 */ 289, 116, 298, 20, 17, 298, 116, 98, 99, 267, - /* 2550 */ 267, 279, 267, 199, 105, 116, 279, 116, 199, 249, - /* 2560 */ 300, 291, 113, 251, 291, 224, 212, 118, 266, 120, - /* 2570 */ 284, 212, 123, 124, 268, 221, 222, 255, 129, 224, - /* 2580 */ 221, 222, 255, 231, 230, 136, 137, 138, 139, 230, - /* 2590 */ 225, 235, 252, 268, 268, 81, 82, 251, 197, 85, - /* 2600 */ 86, 87, 88, 89, 90, 91, 92, 249, 94, 95, - /* 2610 */ 96, 97, 98, 99, 100, 101, 102, 103, 104, 170, - /* 2620 */ 214, 214, 173, 214, 175, 176, 214, 199, 292, 247, - /* 2630 */ 293, 281, 241, 279, 199, 317, 232, 265, 279, 304, - /* 2640 */ 212, 199, 232, 72, 221, 232, 4, 212, 221, 221, - /* 2650 */ 222, 320, 236, 199, 212, 320, 221, 222, 230, 320, - /* 2660 */ 199, 320, 320, 221, 222, 230, 212, 199, 320, 320, - /* 2670 */ 320, 320, 230, 212, 320, 221, 222, 320, 320, 199, - /* 2680 */ 212, 199, 221, 222, 230, 320, 320, 320, 320, 221, - /* 2690 */ 222, 230, 212, 199, 212, 320, 320, 320, 230, 320, - /* 2700 */ 320, 221, 222, 221, 222, 320, 212, 279, 320, 320, - /* 2710 */ 230, 320, 230, 320, 279, 221, 222, 320, 320, 199, - /* 2720 */ 320, 279, 320, 320, 230, 320, 320, 320, 320, 320, - /* 2730 */ 320, 320, 212, 279, 320, 320, 320, 320, 320, 320, - /* 2740 */ 279, 221, 222, 320, 320, 320, 320, 279, 320, 320, - /* 2750 */ 230, 320, 320, 199, 320, 320, 199, 320, 199, 279, - /* 2760 */ 320, 279, 320, 320, 320, 320, 212, 320, 320, 212, - /* 2770 */ 320, 212, 199, 279, 320, 221, 222, 320, 221, 222, - /* 2780 */ 221, 222, 320, 320, 230, 212, 320, 230, 199, 230, - /* 2790 */ 320, 320, 320, 320, 221, 222, 320, 320, 320, 279, - /* 2800 */ 199, 212, 320, 230, 199, 320, 320, 320, 320, 320, - /* 2810 */ 221, 222, 320, 212, 320, 320, 320, 212, 320, 230, - /* 2820 */ 320, 320, 221, 222, 199, 320, 221, 222, 320, 320, - /* 2830 */ 320, 230, 320, 279, 320, 230, 279, 212, 279, 320, - /* 2840 */ 199, 320, 320, 320, 320, 320, 221, 222, 320, 320, - /* 2850 */ 320, 320, 279, 212, 199, 230, 199, 320, 320, 320, - /* 2860 */ 199, 320, 221, 222, 320, 320, 320, 212, 279, 212, - /* 2870 */ 320, 230, 320, 212, 320, 199, 221, 222, 221, 222, - /* 2880 */ 279, 320, 221, 222, 279, 230, 320, 230, 212, 320, - /* 2890 */ 199, 230, 199, 320, 199, 320, 320, 221, 222, 320, - /* 2900 */ 320, 320, 320, 212, 279, 212, 230, 212, 320, 320, - /* 2910 */ 320, 320, 221, 222, 221, 222, 221, 222, 320, 199, - /* 2920 */ 279, 230, 320, 230, 320, 230, 320, 320, 320, 320, - /* 2930 */ 320, 320, 212, 320, 279, 320, 279, 320, 320, 320, - /* 2940 */ 279, 221, 222, 320, 320, 320, 320, 320, 320, 320, - /* 2950 */ 230, 320, 320, 199, 320, 279, 199, 320, 320, 320, - /* 2960 */ 320, 320, 320, 320, 320, 320, 212, 320, 320, 212, - /* 2970 */ 279, 320, 279, 320, 279, 221, 222, 320, 221, 222, - /* 2980 */ 320, 320, 320, 320, 230, 320, 320, 230, 320, 320, - /* 2990 */ 320, 320, 320, 320, 320, 320, 320, 320, 320, 279, - /* 3000 */ 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, - /* 3010 */ 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, - /* 3020 */ 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, - /* 3030 */ 320, 320, 320, 279, 320, 320, 279, + /* 0 */ 4, 131, 24, 31, 134, 135, 136, 50, 81, 82, + /* 10 */ 83, 84, 16, 41, 87, 88, 89, 90, 91, 92, + /* 20 */ 93, 94, 152, 96, 97, 98, 99, 100, 101, 102, + /* 30 */ 103, 104, 105, 106, 107, 102, 109, 117, 81, 82, + /* 40 */ 83, 84, 122, 122, 87, 88, 89, 90, 91, 92, + /* 50 */ 93, 94, 56, 96, 97, 98, 99, 100, 101, 102, + /* 60 */ 103, 104, 105, 106, 107, 144, 109, 102, 103, 104, + /* 70 */ 105, 106, 107, 77, 148, 91, 92, 93, 94, 83, + /* 80 */ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + /* 90 */ 106, 107, 159, 4, 116, 162, 100, 101, 102, 42, + /* 100 */ 43, 203, 203, 177, 108, 109, 83, 211, 68, 44, + /* 110 */ 4, 71, 116, 117, 122, 217, 217, 121, 122, 203, + /* 120 */ 109, 125, 16, 127, 128, 226, 227, 132, 133, 133, + /* 130 */ 24, 4, 68, 217, 235, 71, 140, 141, 142, 143, + /* 140 */ 242, 145, 85, 86, 248, 249, 4, 9, 83, 11, + /* 150 */ 158, 13, 160, 161, 158, 115, 160, 161, 203, 80, + /* 160 */ 164, 23, 56, 113, 26, 169, 170, 171, 172, 173, + /* 170 */ 174, 175, 217, 277, 178, 279, 180, 181, 282, 115, + /* 180 */ 203, 226, 227, 77, 285, 162, 43, 288, 192, 83, + /* 190 */ 235, 293, 54, 117, 217, 116, 117, 59, 302, 303, + /* 200 */ 223, 224, 64, 65, 117, 116, 100, 101, 70, 122, + /* 210 */ 121, 73, 19, 75, 108, 109, 127, 128, 263, 264, + /* 220 */ 4, 203, 116, 117, 4, 185, 83, 121, 122, 140, + /* 230 */ 314, 125, 16, 127, 128, 217, 122, 5, 45, 133, + /* 240 */ 285, 223, 224, 116, 155, 118, 140, 141, 142, 143, + /* 250 */ 112, 145, 114, 122, 127, 166, 167, 203, 116, 182, + /* 260 */ 67, 184, 30, 121, 158, 203, 160, 161, 36, 127, + /* 270 */ 128, 217, 56, 296, 297, 169, 170, 171, 172, 217, + /* 280 */ 174, 175, 140, 116, 178, 118, 180, 181, 145, 4, + /* 290 */ 163, 153, 60, 77, 151, 164, 64, 155, 192, 83, + /* 300 */ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + /* 310 */ 106, 107, 35, 21, 296, 297, 100, 101, 117, 60, + /* 320 */ 28, 122, 203, 122, 108, 109, 117, 128, 190, 37, + /* 330 */ 211, 122, 116, 117, 57, 145, 217, 121, 122, 5, + /* 340 */ 63, 125, 4, 127, 128, 226, 227, 127, 128, 133, + /* 350 */ 196, 197, 198, 199, 235, 165, 140, 141, 142, 143, + /* 360 */ 140, 145, 117, 170, 30, 166, 167, 122, 249, 169, + /* 370 */ 36, 317, 318, 319, 158, 133, 160, 161, 316, 203, + /* 380 */ 42, 43, 263, 264, 7, 169, 203, 171, 172, 12, + /* 390 */ 174, 175, 192, 217, 178, 175, 180, 181, 64, 122, + /* 400 */ 217, 116, 226, 227, 285, 146, 147, 148, 192, 226, + /* 410 */ 227, 235, 127, 128, 26, 156, 157, 40, 235, 81, + /* 420 */ 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + /* 430 */ 92, 93, 94, 90, 96, 97, 98, 99, 100, 101, + /* 440 */ 102, 103, 104, 105, 106, 107, 100, 101, 102, 103, + /* 450 */ 104, 105, 106, 107, 141, 142, 118, 117, 275, 116, + /* 460 */ 175, 285, 122, 42, 43, 127, 308, 309, 285, 81, + /* 470 */ 82, 83, 84, 52, 116, 87, 88, 89, 90, 91, + /* 480 */ 92, 93, 94, 76, 96, 97, 98, 99, 100, 101, + /* 490 */ 102, 103, 104, 105, 106, 107, 320, 122, 119, 323, + /* 500 */ 80, 163, 81, 82, 83, 84, 85, 86, 87, 88, + /* 510 */ 89, 90, 91, 92, 93, 94, 4, 96, 97, 98, + /* 520 */ 99, 100, 101, 102, 103, 104, 105, 106, 107, 10, + /* 530 */ 117, 291, 203, 127, 133, 122, 116, 117, 119, 133, + /* 540 */ 203, 22, 122, 122, 169, 208, 217, 141, 142, 143, + /* 550 */ 213, 214, 151, 116, 217, 226, 227, 222, 223, 224, + /* 560 */ 153, 42, 43, 215, 235, 325, 326, 219, 220, 221, + /* 570 */ 182, 73, 184, 91, 92, 93, 94, 95, 96, 97, + /* 580 */ 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + /* 590 */ 217, 4, 263, 264, 100, 101, 4, 26, 191, 226, + /* 600 */ 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + /* 610 */ 91, 92, 93, 94, 285, 96, 97, 98, 99, 100, + /* 620 */ 101, 102, 103, 104, 105, 106, 107, 4, 116, 35, + /* 630 */ 132, 203, 297, 121, 117, 141, 142, 10, 233, 127, + /* 640 */ 128, 236, 203, 42, 43, 217, 207, 53, 243, 22, + /* 650 */ 58, 57, 81, 82, 83, 84, 217, 63, 87, 88, + /* 660 */ 89, 90, 91, 92, 93, 94, 4, 96, 97, 98, + /* 670 */ 99, 100, 101, 102, 103, 104, 105, 106, 107, 146, + /* 680 */ 147, 148, 81, 82, 83, 84, 85, 86, 87, 88, + /* 690 */ 89, 90, 91, 92, 93, 94, 122, 96, 97, 98, + /* 700 */ 99, 100, 101, 102, 103, 104, 105, 106, 107, 32, + /* 710 */ 203, 122, 120, 126, 127, 128, 203, 13, 131, 127, + /* 720 */ 128, 134, 135, 136, 217, 117, 213, 214, 203, 260, + /* 730 */ 217, 262, 55, 250, 251, 210, 253, 212, 43, 152, + /* 740 */ 225, 21, 217, 120, 121, 317, 318, 319, 233, 234, + /* 750 */ 127, 128, 239, 182, 241, 184, 4, 37, 81, 82, + /* 760 */ 83, 84, 173, 169, 87, 88, 89, 90, 91, 92, + /* 770 */ 93, 94, 38, 96, 97, 98, 99, 100, 101, 102, + /* 780 */ 103, 104, 105, 106, 107, 81, 82, 83, 84, 127, + /* 790 */ 128, 87, 88, 89, 90, 91, 92, 93, 94, 35, + /* 800 */ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + /* 810 */ 106, 107, 4, 109, 195, 4, 154, 83, 203, 200, + /* 820 */ 34, 57, 315, 316, 16, 203, 74, 63, 66, 79, + /* 830 */ 211, 291, 217, 211, 72, 81, 82, 83, 84, 217, + /* 840 */ 145, 87, 88, 89, 90, 91, 92, 93, 94, 117, + /* 850 */ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + /* 860 */ 106, 107, 4, 203, 56, 325, 326, 248, 249, 83, + /* 870 */ 203, 249, 118, 105, 106, 107, 124, 217, 80, 127, + /* 880 */ 128, 73, 267, 268, 217, 77, 226, 227, 77, 267, + /* 890 */ 268, 83, 122, 107, 117, 235, 277, 135, 279, 203, + /* 900 */ 255, 282, 211, 207, 118, 222, 223, 224, 100, 101, + /* 910 */ 265, 100, 101, 217, 116, 117, 108, 131, 132, 133, + /* 920 */ 134, 135, 136, 137, 116, 117, 307, 116, 116, 121, + /* 930 */ 146, 147, 148, 125, 164, 127, 128, 151, 127, 248, + /* 940 */ 249, 133, 80, 193, 133, 285, 117, 185, 140, 141, + /* 950 */ 142, 143, 141, 142, 143, 219, 220, 221, 116, 4, + /* 960 */ 293, 117, 26, 203, 156, 157, 122, 244, 277, 246, + /* 970 */ 279, 250, 251, 282, 253, 26, 118, 217, 116, 117, + /* 980 */ 297, 203, 4, 175, 122, 127, 178, 117, 180, 181, + /* 990 */ 81, 82, 83, 84, 303, 217, 87, 88, 89, 90, + /* 1000 */ 91, 92, 93, 94, 283, 96, 97, 98, 99, 100, + /* 1010 */ 101, 102, 103, 104, 105, 106, 107, 81, 82, 83, + /* 1020 */ 84, 163, 73, 87, 88, 89, 90, 91, 92, 93, + /* 1030 */ 94, 44, 96, 97, 98, 99, 100, 101, 102, 103, + /* 1040 */ 104, 105, 106, 107, 81, 82, 83, 84, 217, 218, + /* 1050 */ 87, 88, 89, 90, 91, 92, 93, 94, 109, 96, + /* 1060 */ 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + /* 1070 */ 107, 117, 312, 295, 314, 120, 121, 0, 81, 82, + /* 1080 */ 83, 84, 127, 128, 87, 88, 89, 90, 91, 92, + /* 1090 */ 93, 94, 183, 96, 97, 98, 99, 100, 101, 102, + /* 1100 */ 103, 104, 105, 106, 107, 127, 29, 129, 4, 81, + /* 1110 */ 82, 83, 84, 122, 117, 87, 88, 89, 90, 91, + /* 1120 */ 92, 93, 94, 203, 96, 97, 98, 99, 100, 101, + /* 1130 */ 102, 103, 104, 105, 106, 107, 159, 217, 4, 162, + /* 1140 */ 116, 81, 82, 83, 84, 117, 183, 87, 88, 89, + /* 1150 */ 90, 91, 92, 93, 94, 26, 96, 97, 98, 99, + /* 1160 */ 100, 101, 102, 103, 104, 105, 106, 107, 182, 198, + /* 1170 */ 199, 117, 81, 82, 83, 84, 122, 117, 87, 88, + /* 1180 */ 89, 90, 91, 92, 93, 94, 109, 96, 97, 98, + /* 1190 */ 99, 100, 101, 102, 103, 104, 105, 106, 107, 117, + /* 1200 */ 280, 4, 117, 81, 82, 83, 84, 122, 117, 87, + /* 1210 */ 88, 89, 90, 91, 92, 93, 94, 219, 96, 97, + /* 1220 */ 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + /* 1230 */ 162, 127, 128, 117, 81, 82, 83, 84, 122, 117, + /* 1240 */ 87, 88, 89, 90, 91, 92, 93, 94, 4, 96, + /* 1250 */ 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + /* 1260 */ 107, 127, 128, 15, 266, 4, 81, 82, 83, 84, + /* 1270 */ 166, 118, 87, 88, 89, 90, 91, 92, 93, 94, + /* 1280 */ 219, 96, 97, 98, 99, 100, 101, 102, 103, 104, + /* 1290 */ 105, 106, 107, 45, 109, 81, 82, 83, 84, 4, + /* 1300 */ 166, 87, 88, 89, 90, 91, 92, 93, 94, 61, + /* 1310 */ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + /* 1320 */ 106, 107, 4, 109, 127, 128, 117, 266, 203, 203, + /* 1330 */ 219, 122, 207, 73, 16, 138, 164, 19, 81, 82, + /* 1340 */ 83, 84, 217, 217, 87, 88, 89, 90, 91, 92, + /* 1350 */ 93, 94, 4, 96, 97, 98, 99, 100, 101, 102, + /* 1360 */ 103, 104, 105, 106, 107, 121, 164, 203, 4, 109, + /* 1370 */ 203, 127, 128, 117, 56, 211, 14, 266, 122, 211, + /* 1380 */ 16, 217, 121, 19, 217, 4, 4, 69, 127, 128, + /* 1390 */ 226, 227, 203, 226, 227, 77, 203, 286, 150, 235, + /* 1400 */ 118, 83, 235, 85, 4, 212, 217, 203, 122, 117, + /* 1410 */ 217, 116, 122, 249, 122, 226, 227, 249, 100, 101, + /* 1420 */ 56, 217, 127, 128, 235, 116, 108, 263, 203, 4, + /* 1430 */ 263, 264, 188, 69, 116, 35, 4, 117, 312, 121, + /* 1440 */ 314, 77, 217, 125, 211, 127, 128, 83, 187, 285, + /* 1450 */ 4, 133, 285, 53, 203, 203, 255, 57, 140, 141, + /* 1460 */ 142, 143, 16, 63, 100, 101, 265, 4, 217, 217, + /* 1470 */ 175, 244, 108, 246, 285, 127, 128, 4, 226, 227, + /* 1480 */ 116, 203, 249, 14, 280, 121, 203, 235, 140, 125, + /* 1490 */ 47, 127, 128, 175, 4, 217, 178, 133, 180, 181, + /* 1500 */ 217, 203, 56, 121, 140, 141, 142, 143, 127, 127, + /* 1510 */ 128, 322, 323, 211, 32, 217, 168, 203, 211, 73, + /* 1520 */ 139, 139, 140, 77, 226, 227, 82, 127, 128, 83, + /* 1530 */ 211, 217, 62, 235, 4, 318, 319, 285, 4, 175, + /* 1540 */ 226, 227, 178, 111, 180, 181, 100, 101, 62, 235, + /* 1550 */ 168, 249, 127, 128, 108, 55, 249, 274, 14, 127, + /* 1560 */ 128, 263, 116, 100, 101, 140, 4, 121, 249, 169, + /* 1570 */ 4, 125, 320, 127, 128, 323, 219, 263, 203, 133, + /* 1580 */ 155, 205, 207, 285, 318, 319, 140, 141, 142, 143, + /* 1590 */ 127, 128, 217, 14, 121, 132, 14, 286, 203, 285, + /* 1600 */ 127, 128, 156, 157, 141, 142, 4, 4, 145, 4, + /* 1610 */ 147, 121, 217, 140, 318, 319, 305, 127, 128, 16, + /* 1620 */ 29, 175, 19, 266, 178, 14, 180, 181, 81, 82, + /* 1630 */ 83, 84, 156, 157, 87, 88, 89, 90, 91, 92, + /* 1640 */ 93, 94, 4, 96, 97, 98, 99, 100, 101, 102, + /* 1650 */ 103, 104, 105, 106, 107, 203, 116, 127, 128, 56, + /* 1660 */ 229, 127, 128, 268, 318, 319, 4, 203, 292, 217, + /* 1670 */ 140, 203, 69, 219, 140, 122, 186, 111, 226, 227, + /* 1680 */ 77, 217, 203, 203, 203, 217, 83, 235, 14, 127, + /* 1690 */ 226, 227, 4, 127, 128, 203, 217, 217, 217, 235, + /* 1700 */ 109, 139, 168, 100, 101, 226, 227, 226, 227, 217, + /* 1710 */ 242, 108, 318, 319, 235, 38, 235, 286, 116, 116, + /* 1720 */ 266, 117, 229, 117, 121, 117, 121, 275, 125, 127, + /* 1730 */ 127, 128, 127, 128, 242, 4, 133, 285, 166, 275, + /* 1740 */ 119, 203, 263, 140, 141, 142, 143, 119, 203, 285, + /* 1750 */ 4, 213, 214, 203, 4, 217, 275, 207, 102, 154, + /* 1760 */ 203, 293, 217, 122, 285, 127, 285, 217, 203, 159, + /* 1770 */ 116, 226, 227, 111, 217, 117, 4, 139, 175, 286, + /* 1780 */ 235, 178, 217, 180, 181, 293, 82, 83, 84, 127, + /* 1790 */ 128, 87, 88, 89, 90, 91, 92, 93, 94, 111, + /* 1800 */ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + /* 1810 */ 106, 107, 4, 116, 116, 127, 128, 117, 117, 73, + /* 1820 */ 275, 4, 117, 117, 16, 117, 50, 83, 84, 4, + /* 1830 */ 285, 87, 88, 89, 90, 91, 92, 93, 94, 274, + /* 1840 */ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + /* 1850 */ 106, 107, 203, 18, 4, 203, 203, 4, 127, 128, + /* 1860 */ 173, 116, 116, 117, 56, 6, 217, 121, 203, 217, + /* 1870 */ 217, 121, 4, 127, 128, 226, 227, 127, 128, 226, + /* 1880 */ 227, 203, 217, 203, 235, 77, 140, 118, 235, 4, + /* 1890 */ 140, 83, 8, 121, 116, 217, 4, 217, 50, 127, + /* 1900 */ 128, 155, 156, 157, 116, 203, 4, 117, 100, 101, + /* 1910 */ 179, 116, 263, 116, 4, 50, 108, 203, 168, 217, + /* 1920 */ 116, 4, 242, 203, 116, 117, 16, 102, 203, 121, + /* 1930 */ 137, 217, 207, 125, 285, 127, 128, 217, 285, 83, + /* 1940 */ 203, 133, 217, 203, 127, 128, 226, 227, 140, 141, + /* 1950 */ 142, 143, 127, 128, 217, 235, 151, 217, 125, 118, + /* 1960 */ 145, 189, 13, 226, 227, 140, 56, 164, 203, 122, + /* 1970 */ 4, 121, 235, 293, 121, 4, 274, 127, 128, 90, + /* 1980 */ 127, 128, 217, 175, 150, 203, 178, 77, 180, 181, + /* 1990 */ 140, 123, 175, 83, 90, 127, 128, 90, 4, 217, + /* 2000 */ 175, 203, 90, 176, 24, 285, 121, 18, 226, 227, + /* 2010 */ 100, 101, 127, 128, 274, 217, 4, 235, 108, 127, + /* 2020 */ 128, 168, 285, 121, 226, 227, 116, 117, 16, 127, + /* 2030 */ 128, 121, 203, 235, 203, 125, 150, 127, 128, 4, + /* 2040 */ 155, 177, 140, 133, 127, 128, 217, 203, 217, 203, + /* 2050 */ 140, 141, 142, 143, 4, 226, 227, 226, 227, 4, + /* 2060 */ 168, 217, 4, 217, 235, 157, 235, 285, 56, 109, + /* 2070 */ 226, 227, 226, 227, 109, 62, 4, 25, 203, 235, + /* 2080 */ 163, 235, 203, 285, 51, 175, 207, 121, 178, 77, + /* 2090 */ 180, 181, 217, 127, 128, 83, 217, 203, 127, 128, + /* 2100 */ 122, 226, 227, 203, 51, 185, 140, 207, 145, 203, + /* 2110 */ 235, 217, 100, 101, 285, 121, 285, 217, 4, 116, + /* 2120 */ 108, 127, 128, 217, 115, 4, 165, 203, 116, 285, + /* 2130 */ 16, 285, 125, 121, 140, 203, 116, 125, 117, 127, + /* 2140 */ 128, 217, 203, 115, 203, 133, 175, 117, 49, 217, + /* 2150 */ 226, 227, 140, 141, 142, 143, 217, 4, 217, 235, + /* 2160 */ 285, 4, 127, 128, 4, 226, 227, 226, 227, 113, + /* 2170 */ 56, 48, 216, 286, 235, 140, 235, 127, 128, 4, + /* 2180 */ 274, 309, 127, 128, 4, 127, 128, 175, 116, 203, + /* 2190 */ 178, 77, 180, 181, 182, 140, 203, 83, 269, 127, + /* 2200 */ 128, 232, 4, 217, 203, 4, 232, 149, 311, 285, + /* 2210 */ 217, 110, 226, 227, 100, 101, 311, 202, 217, 203, + /* 2220 */ 4, 235, 108, 207, 285, 202, 285, 226, 227, 203, + /* 2230 */ 116, 117, 16, 217, 202, 121, 235, 65, 188, 125, + /* 2240 */ 202, 127, 128, 217, 4, 204, 203, 133, 127, 128, + /* 2250 */ 207, 203, 226, 227, 140, 141, 142, 143, 4, 138, + /* 2260 */ 217, 235, 4, 203, 4, 217, 4, 204, 206, 78, + /* 2270 */ 209, 285, 56, 120, 226, 227, 203, 217, 122, 257, + /* 2280 */ 127, 128, 203, 235, 127, 128, 285, 127, 128, 175, + /* 2290 */ 217, 4, 178, 77, 180, 181, 217, 140, 119, 83, + /* 2300 */ 140, 272, 127, 128, 156, 226, 227, 127, 128, 258, + /* 2310 */ 251, 285, 4, 203, 235, 140, 100, 101, 173, 170, + /* 2320 */ 140, 120, 4, 259, 108, 127, 128, 217, 127, 128, + /* 2330 */ 171, 203, 116, 285, 16, 261, 172, 121, 203, 203, + /* 2340 */ 107, 125, 231, 127, 128, 217, 203, 116, 4, 133, + /* 2350 */ 4, 294, 217, 217, 226, 227, 140, 141, 142, 143, + /* 2360 */ 217, 203, 4, 235, 285, 203, 107, 127, 128, 226, + /* 2370 */ 227, 118, 289, 260, 56, 217, 182, 169, 235, 217, + /* 2380 */ 35, 127, 128, 313, 186, 127, 128, 127, 128, 127, + /* 2390 */ 128, 175, 203, 203, 178, 77, 180, 181, 203, 261, + /* 2400 */ 140, 83, 57, 276, 27, 46, 217, 217, 63, 155, + /* 2410 */ 276, 321, 217, 285, 127, 128, 226, 227, 100, 101, + /* 2420 */ 4, 226, 227, 4, 203, 235, 108, 140, 285, 189, + /* 2430 */ 235, 119, 4, 203, 116, 127, 128, 321, 217, 121, + /* 2440 */ 272, 253, 157, 125, 326, 127, 128, 217, 193, 187, + /* 2450 */ 4, 133, 228, 228, 109, 203, 226, 227, 140, 141, + /* 2460 */ 142, 143, 117, 39, 145, 235, 120, 122, 203, 217, + /* 2470 */ 238, 127, 128, 127, 128, 285, 168, 203, 203, 228, + /* 2480 */ 285, 203, 217, 144, 140, 127, 128, 230, 238, 228, + /* 2490 */ 145, 217, 217, 175, 203, 217, 178, 203, 180, 181, + /* 2500 */ 231, 226, 227, 158, 203, 160, 161, 228, 217, 203, + /* 2510 */ 235, 217, 228, 231, 169, 285, 171, 172, 217, 174, + /* 2520 */ 226, 227, 119, 217, 228, 203, 203, 228, 203, 235, + /* 2530 */ 206, 231, 226, 227, 176, 272, 120, 192, 203, 217, + /* 2540 */ 217, 235, 217, 127, 128, 203, 127, 128, 119, 226, + /* 2550 */ 227, 119, 217, 203, 206, 127, 128, 203, 235, 217, + /* 2560 */ 285, 226, 227, 33, 203, 272, 203, 217, 226, 227, + /* 2570 */ 235, 217, 126, 127, 128, 182, 300, 235, 217, 285, + /* 2580 */ 217, 301, 119, 257, 174, 278, 245, 226, 227, 81, + /* 2590 */ 119, 285, 278, 257, 175, 119, 235, 281, 203, 116, + /* 2600 */ 203, 284, 203, 175, 145, 203, 278, 278, 285, 257, + /* 2610 */ 245, 206, 217, 119, 217, 272, 217, 203, 206, 217, + /* 2620 */ 285, 226, 227, 226, 227, 226, 227, 285, 226, 227, + /* 2630 */ 235, 217, 235, 257, 235, 119, 272, 235, 203, 247, + /* 2640 */ 226, 227, 78, 203, 119, 247, 285, 119, 247, 235, + /* 2650 */ 119, 247, 217, 119, 176, 295, 272, 217, 119, 304, + /* 2660 */ 20, 226, 227, 272, 119, 203, 226, 227, 272, 203, + /* 2670 */ 235, 203, 304, 119, 119, 235, 306, 17, 306, 217, + /* 2680 */ 285, 254, 285, 217, 285, 217, 256, 285, 226, 227, + /* 2690 */ 229, 297, 226, 227, 226, 227, 290, 235, 260, 285, + /* 2700 */ 203, 235, 260, 235, 286, 203, 297, 203, 271, 273, + /* 2710 */ 229, 236, 240, 256, 217, 230, 273, 273, 201, 217, + /* 2720 */ 285, 217, 257, 226, 227, 285, 219, 254, 226, 227, + /* 2730 */ 226, 227, 235, 219, 219, 287, 203, 235, 219, 235, + /* 2740 */ 299, 203, 252, 298, 246, 324, 237, 285, 237, 270, + /* 2750 */ 217, 285, 226, 285, 241, 217, 203, 237, 226, 226, + /* 2760 */ 227, 310, 203, 73, 226, 227, 4, 327, 235, 327, + /* 2770 */ 217, 327, 327, 235, 327, 327, 217, 327, 327, 226, + /* 2780 */ 227, 203, 285, 203, 327, 226, 227, 285, 235, 285, + /* 2790 */ 327, 327, 327, 327, 235, 217, 327, 217, 327, 327, + /* 2800 */ 327, 327, 327, 327, 226, 227, 226, 227, 327, 327, + /* 2810 */ 327, 327, 327, 235, 327, 235, 327, 327, 285, 327, + /* 2820 */ 327, 327, 327, 285, 327, 327, 327, 327, 327, 327, + /* 2830 */ 327, 327, 327, 327, 327, 327, 327, 327, 285, 327, + /* 2840 */ 327, 327, 327, 327, 285, 327, 327, 327, 327, 327, + /* 2850 */ 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, + /* 2860 */ 327, 327, 327, 285, 327, 285, }; -#define YY_SHIFT_USE_DFLT (-101) -#define YY_SHIFT_COUNT (513) -#define YY_SHIFT_MIN (-100) -#define YY_SHIFT_MAX (2642) +#define YY_SHIFT_USE_DFLT (-131) +#define YY_SHIFT_COUNT (534) +#define YY_SHIFT_MIN (-130) +#define YY_SHIFT_MAX (2762) static const short yy_shift_ofst[] = { - /* 0 */ 1352, 828, 1151, 1708, 1045, 1777, 1671, 2219, 2219, 2219, - /* 10 */ 1753, 244, 2113, 2343, 2343, 2343, 2343, 2343, 2343, 2449, - /* 20 */ 2343, 742, -4, 120, 2007, 1901, 2343, 2343, 2343, 2343, - /* 30 */ 2343, 2343, 2343, 2343, 2343, 2343, 2343, 2343, 2343, 2343, - /* 40 */ 2343, 2343, 2343, 2343, 2343, 2343, 2343, 2343, 2343, 2343, - /* 50 */ 2343, 2343, 2343, 2343, 2343, 2343, 2343, 2343, 2343, 2343, - /* 60 */ 2343, 2343, 2343, 2343, 2343, 2343, 2343, 2343, 2343, 779, - /* 70 */ 1062, 1062, -1, 518, 518, 1744, 66, 15, 1016, 1744, - /* 80 */ 2226, 2226, 2226, 2189, 2226, 748, 748, 2203, 400, 365, - /* 90 */ 151, 69, 1763, 1130, 1852, 1845, 1293, 682, 1187, 682, - /* 100 */ 1183, 1006, 436, 967, 2278, 2237, 2237, 2237, 2237, 285, - /* 110 */ 2237, 2226, 2203, 2203, 400, 1685, 1685, 1454, 530, 530, - /* 120 */ 956, 845, 191, 223, 306, 1626, 1158, 945, 439, 642, - /* 130 */ 314, 1236, 795, 1236, 88, 797, 343, 466, 85, 2184, - /* 140 */ 2174, 2169, 2154, 2000, 1662, 2205, 2104, 2180, 1447, 2149, - /* 150 */ 2080, 1986, 1967, 1417, 2025, 1955, 1931, 1194, 1857, 1831, - /* 160 */ 368, 1825, 1740, 1701, 1701, 1701, 1289, 811, 1070, 437, - /* 170 */ 437, 799, 684, 674, 551, 516, 84, 1655, 1633, 1508, - /* 180 */ 1162, 2203, 1166, 1166, 1207, 1069, 497, 2571, 2571, 2642, - /* 190 */ 2571, 2571, -101, -101, 447, 739, 690, 653, -72, 610, - /* 200 */ 610, 610, 610, 610, 610, 776, 415, 927, 569, 1582, - /* 210 */ 1554, 1523, 1495, 1465, 1435, 1405, 1375, 1345, 1303, 1276, - /* 220 */ 1250, 1007, 1842, 1612, 2284, 2514, 2514, -37, 626, 626, - /* 230 */ 626, 626, -59, 202, 115, 348, 348, -17, 566, 486, - /* 240 */ 208, 208, 208, 170, 1093, 358, 116, 97, 752, 363, - /* 250 */ 1110, 1079, 877, 196, 603, 974, 154, 487, 735, 735, - /* 260 */ 76, 1706, 595, 581, 735, 836, 598, 598, 855, 581, - /* 270 */ 345, 345, 375, 253, 134, 2527, 2441, 2439, 2430, 2523, - /* 280 */ 2523, 2425, 2368, 2422, 2455, 2420, 2455, 2418, 2455, 2415, - /* 290 */ 2455, 2411, 2089, 2048, 2399, 2089, 2424, 2048, 2371, 2398, - /* 300 */ 2393, 2048, 2390, 2424, 2048, 2381, 2319, 2444, 2348, 2089, - /* 310 */ 2324, 2133, 2089, 2313, 2133, 2222, 2222, 2222, 2222, 2328, - /* 320 */ 2133, 2222, 2264, 2222, 2328, 2222, 2222, 2152, 2177, 2183, - /* 330 */ 2269, 2269, 2242, 2242, 2061, 2114, 2088, 2151, 2133, 2162, - /* 340 */ 2130, 2061, 2053, 2056, 2048, 2054, 2083, 2117, 2060, 2089, - /* 350 */ 2074, 2074, 2028, 2028, 2028, 2028, -101, -101, -101, -101, - /* 360 */ -101, -101, -101, -101, -101, -101, 1090, -65, 238, 60, - /* 370 */ 194, 697, 79, -38, 1690, 1644, 1066, 1614, 81, 1604, - /* 380 */ 1575, 1294, 1170, 1147, 183, 558, -29, 1050, 1002, 129, - /* 390 */ 878, 848, 148, 138, 2045, 2032, 1979, 1957, 1961, 1956, - /* 400 */ 1948, 1953, 1902, 1949, 1946, 1909, 1878, 1992, 1912, 1982, - /* 410 */ 1970, 1987, 1904, 1903, 1854, 1836, 1855, 1969, 1968, 1794, - /* 420 */ 1874, 1870, 1869, 1838, 1774, 1759, 1891, 1770, 1795, 1783, - /* 430 */ 1827, 1745, 1755, 1764, 1805, 1756, 1752, 1736, 1729, 1789, - /* 440 */ 1828, 1718, 1668, 1822, 1642, 1725, 1741, 1618, 1584, 1624, - /* 450 */ 1608, 1581, 1551, 1533, 1427, 1474, 1475, 1464, 1445, 1427, - /* 460 */ 1443, 1412, 1402, 1336, 1374, 1366, 1297, 1324, 1430, 1400, - /* 470 */ 1195, 1297, 1355, 1346, 1248, 1216, 1165, 1163, 1177, 1109, - /* 480 */ 1095, 1074, 977, 1021, 926, 830, 816, 807, 873, 787, - /* 490 */ 707, 786, 522, 686, 649, 616, 522, 523, 448, 407, - /* 500 */ 344, 362, 308, 278, 272, 235, 184, 119, 105, -81, - /* 510 */ 38, -43, -89, -100, + /* 0 */ 1591, 808, 1446, 138, 1318, 1603, 1364, 2114, 2114, 2114, + /* 10 */ 1260, 216, 2012, 2216, 2318, 2216, 2216, 2216, 2216, 2216, + /* 20 */ 2216, 949, -4, 106, 1910, 1808, 2216, 2216, 2216, 2216, + /* 30 */ 2216, 2216, 2216, 2216, 2216, 2216, 2216, 2216, 2318, 2216, + /* 40 */ 2216, 2216, 2216, 2216, 2216, 2216, 2216, 2216, 2216, 2216, + /* 50 */ 2216, 2216, 2216, 2216, 2216, 2216, 2216, 2216, 2216, 2216, + /* 60 */ 2216, 2216, 2216, 2216, 2216, 2216, 2216, 2216, 2216, 2216, + /* 70 */ 2216, 2216, 1746, 1463, 1463, 587, 1400, 1400, 2446, 89, + /* 80 */ 259, 592, 752, 2446, 2419, 2419, 2419, 2416, 2419, 494, + /* 90 */ 494, 2258, 978, 338, 786, 142, 1994, 1772, 1853, 1885, + /* 100 */ 1966, 1295, 1902, 1295, 1850, 1473, 1605, 752, 955, 2358, + /* 110 */ 2428, 2428, 2428, 2428, 143, 2428, 2419, 2258, 2258, 978, + /* 120 */ 750, 750, 1476, 519, 519, -43, 811, 1382, 1750, 1825, + /* 130 */ 1534, 1348, 1261, 623, 1490, 285, 232, 1244, 232, 1425, + /* 140 */ 127, 594, 220, 512, 2346, 2344, 2262, 2240, 2308, 2254, + /* 150 */ 2287, 2201, 2260, 2198, 2180, 2175, 2160, 2055, 2050, 662, + /* 160 */ 2153, 2157, 2121, 2058, 2035, 2072, 1134, 1104, 858, 858, + /* 170 */ 858, 1892, 1917, 1971, 277, 277, 1731, 1817, 1530, 1197, + /* 180 */ 1868, 762, 1688, 1662, 1566, 1432, 2258, 2258, 764, 764, + /* 190 */ 1077, 498, 200, 2690, 2690, 2762, 2690, 2690, -131, -131, + /* 200 */ -131, 421, 601, 601, 601, 601, 601, 601, 601, 601, + /* 210 */ 601, 601, 571, 388, 704, 677, 1214, 1185, 1153, -73, + /* 220 */ 1122, 1091, 1060, 1028, 997, 963, 936, 909, 754, 1547, + /* 230 */ 1257, 1704, 1744, 1744, 482, -16, -16, -16, -16, -16, + /* 240 */ -16, 204, 346, -35, -130, 406, 406, 862, 420, 1248, + /* 250 */ 1248, 1248, 199, 193, 334, -8, 57, 784, 377, 1638, + /* 260 */ 1562, 1602, 768, 1381, -67, 292, 589, 770, 734, 734, + /* 270 */ -79, 1292, 695, 627, 734, 190, 375, 375, 77, 627, + /* 280 */ 313, 313, 23, 131, 977, 2660, 2660, 2555, 2554, 2545, + /* 290 */ 2640, 2640, 2539, 2478, 2534, 2564, 2531, 2564, 2528, 2564, + /* 300 */ 2525, 2564, 2516, 2191, 2145, 2494, 2191, 2508, 2410, 2145, + /* 310 */ 2410, 2459, 2483, 2476, 2410, 2145, 2471, 2508, 2410, 2145, + /* 320 */ 2463, 2393, 2530, 2432, 2191, 2429, 2231, 2191, 2403, 2231, + /* 330 */ 2319, 2319, 2319, 2319, 2424, 2231, 2319, 2339, 2319, 2424, + /* 340 */ 2319, 2319, 2255, 2285, 2312, 2377, 2377, 2359, 2359, 2164, + /* 350 */ 2208, 2194, 2253, 2259, 2231, 2233, 2233, 2164, 2159, 2149, + /* 360 */ 2145, 2148, 2179, 2156, 2191, 2172, 2172, 2101, 2101, 2101, + /* 370 */ 2101, -131, -131, -131, -131, -131, -131, -131, -131, -131, + /* 380 */ -131, 2345, 40, 407, 798, 79, 533, 64, 343, 1256, + /* 390 */ 1209, -74, 1116, -22, 1085, 1054, 844, 413, 340, -5, + /* 400 */ 720, 401, 245, 209, -28, 65, 201, 87, -80, 167, + /* 410 */ 2123, 2099, 2056, 2028, 2030, 2021, 2007, 2020, 1961, 2009, + /* 420 */ 2003, 1963, 1920, 2053, 1978, 2033, 2013, 2052, 1965, 1960, + /* 430 */ 1908, 1864, 1886, 1980, 1989, 1827, 1912, 1907, 1904, 1889, + /* 440 */ 1834, 1847, 1803, 1949, 1815, 1841, 1833, 1856, 1805, 1793, + /* 450 */ 1804, 1865, 1797, 1795, 1790, 1788, 1848, 1884, 1778, 1769, + /* 460 */ 1859, 1745, 1776, 1835, 1708, 1687, 1698, 1706, 1705, 1701, + /* 470 */ 1700, 1641, 1610, 1697, 1658, 1654, 1641, 1656, 1628, 1621, + /* 480 */ 1572, 1608, 1606, 1553, 1604, 1677, 1674, 1540, 1553, 1611, + /* 490 */ 1582, 1579, 1544, 1500, 1486, 1482, 1444, 1470, 1443, 1469, + /* 500 */ 1320, 1309, 1282, 1290, 1286, 1362, 1202, 1172, 1068, 1082, + /* 510 */ 986, 1129, 991, 954, 1024, 987, 991, 870, 842, 829, + /* 520 */ 777, 812, 732, 608, 517, 574, 437, 419, 379, 242, + /* 530 */ 358, 114, 76, 50, 11, }; -#define YY_REDUCE_USE_DFLT (-228) -#define YY_REDUCE_COUNT (365) -#define YY_REDUCE_MIN (-227) -#define YY_REDUCE_MAX (2757) +#define YY_REDUCE_USE_DFLT (-105) +#define YY_REDUCE_COUNT (380) +#define YY_REDUCE_MIN (-104) +#define YY_REDUCE_MAX (2580) static const short yy_reduce_ofst[] = { - /* 0 */ 389, -131, -8, 117, 1524, 366, 123, 958, 717, 118, - /* 10 */ -66, 1806, 1767, 1823, 1773, 1762, 1600, 1030, 1593, 1576, - /* 20 */ 1013, 875, 2757, 2754, 2720, 2695, 2693, 2691, 2676, 2661, - /* 30 */ 2657, 2655, 2641, 2625, 2605, 2601, 2589, 2573, 2559, 2557, - /* 40 */ 2554, 2520, 2494, 2482, 2480, 2468, 2461, 2454, 2442, 2435, - /* 50 */ 2428, 2359, 2354, 2277, 2272, 2238, 2213, 2206, 2178, 2132, - /* 60 */ 2046, 2041, 2026, 1980, 1975, 1940, 1935, 1929, 1835, 172, - /* 70 */ 670, 386, -130, 866, 760, -101, 211, 1265, 1113, 216, - /* 80 */ 1882, 1814, 1531, 1027, 699, 858, 688, -166, 361, 1737, - /* 90 */ 765, 868, 2194, 2058, 1964, 1883, 1686, 1528, 1561, 55, - /* 100 */ 1521, 1064, 933, 394, 751, 1779, 1695, 1640, 996, -227, - /* 110 */ 122, 1539, 605, -119, 773, 606, -173, 321, 1638, 1563, - /* 120 */ 893, 525, 2289, 2279, 2239, 1888, 1888, 2275, 2274, 2271, - /* 130 */ 2263, 1211, 2246, 876, 1888, 1619, 1261, 2239, 2234, 2232, - /* 140 */ 1888, 1888, 1888, 1888, 1888, 1888, 1888, 2214, 1888, 1888, - /* 150 */ 1888, 1888, 2211, 1888, 1888, 1888, 2210, 2204, 2124, 2122, - /* 160 */ 2110, 2103, 2082, 1587, 1082, 1059, 2001, 1973, 1943, 1171, - /* 170 */ 1111, 1914, 1899, 1888, 1861, 1761, 1012, 1713, 1684, 1679, - /* 180 */ 1672, 1530, 1098, 1075, 1084, 1152, 824, 931, 710, 1103, - /* 190 */ 646, 189, 851, -74, 1817, 1817, 1817, 1817, 1817, 1817, - /* 200 */ 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, - /* 210 */ 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, - /* 220 */ 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, - /* 230 */ 1817, 1817, 1817, 1817, 2416, 2427, 2423, 1817, 2335, 2335, - /* 240 */ 2413, 2410, 2404, 2372, 2318, 2391, 2382, 2350, 2337, 2336, - /* 250 */ 2412, 2409, 2407, 2406, 2358, 2401, 2340, 2346, 2326, 2325, - /* 260 */ 2365, 2356, 2352, 2355, 2306, 2302, 2327, 2322, 2286, 2341, - /* 270 */ 2273, 2270, 1817, 2312, 2310, 2260, 2150, 2285, 2283, 2247, - /* 280 */ 2244, 2282, 2251, 2150, 2295, 2150, 2293, 2150, 2291, 2150, - /* 290 */ 2287, 2259, 2321, 2276, 2257, 2320, 2281, 2268, 2236, 2235, - /* 300 */ 2150, 2256, 2150, 2265, 2248, 2150, 2200, 2196, 2202, 2253, - /* 310 */ 2150, 2228, 2250, 2150, 2221, 2216, 2209, 2207, 2197, 2182, - /* 320 */ 2195, 2191, 2166, 2145, 2112, 2129, 2123, 2016, 2071, 2047, - /* 330 */ 1997, 1977, 2013, 2009, 2019, 2011, 1981, 1972, 2018, 1989, - /* 340 */ 1817, 1983, 1978, 1971, 1963, 1952, 1928, 1985, 1966, 1984, - /* 350 */ 1954, 1933, 1962, 1942, 1939, 1934, 1813, 1811, 1812, 1880, - /* 360 */ 1872, 1840, 1817, 1817, 1817, 1885, + /* 0 */ 154, 119, 1164, 619, 1252, 1189, 176, 1167, 329, -45, + /* 10 */ -104, 1649, -101, 1545, 1481, 1479, 1464, 1452, 1314, 1298, + /* 20 */ 183, 691, 2580, 2578, 2559, 2553, 2538, 2533, 2504, 2502, + /* 30 */ 2497, 2468, 2466, 2462, 2440, 2435, 2414, 2402, 2399, 2397, + /* 40 */ 2395, 2361, 2342, 2335, 2323, 2306, 2294, 2275, 2230, 2195, + /* 50 */ 2190, 2143, 2128, 2079, 2048, 2026, 2001, 1986, 1941, 1939, + /* 60 */ 1924, 1875, 1846, 1844, 1831, 1829, 1798, 1782, 1737, 1720, + /* 70 */ 1653, 660, 622, 18, -23, 513, 428, 54, 337, 615, + /* 80 */ 721, 1126, 525, 1538, 1680, 1492, 1468, 760, -102, 683, + /* 90 */ 335, 507, 348, 1111, 515, 1395, 2043, 2016, 1900, 1879, + /* 100 */ 1725, 1204, 1550, 920, 1375, 1125, 696, 1193, 439, 778, + /* 110 */ 1906, 1740, 1702, 1565, 405, 1283, 667, 62, -84, 736, + /* 120 */ 540, 240, 483, 1493, 1431, 1311, 373, 2363, 2354, 2322, + /* 130 */ 1894, 1894, 2350, 2325, 2136, 1932, 1227, 1714, 723, 1894, + /* 140 */ 1454, 1394, 2322, 2301, 2291, 1894, 1894, 1894, 1894, 1894, + /* 150 */ 1894, 1894, 2278, 1894, 1894, 1894, 1894, 2274, 1894, 1894, + /* 160 */ 1894, 2265, 2252, 2221, 2189, 2162, 2158, 2135, 1357, 1061, + /* 170 */ 998, 2110, 2073, 1665, 1346, 1296, 2060, 1993, 1894, 1765, + /* 180 */ 1678, 1376, 1652, 1557, 1480, 1278, 1251, 1225, 1266, 1217, + /* 190 */ 971, 1319, 469, 1307, 1302, 831, 1233, 1168, 158, 1201, + /* 200 */ 645, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, + /* 210 */ 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, + /* 220 */ 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, + /* 230 */ 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, + /* 240 */ 1887, 1887, 1887, 1887, 2513, 2532, 2526, 2451, 2451, 2520, + /* 250 */ 2511, 2509, 2479, 2421, 2498, 2490, 2448, 2441, 2445, 2519, + /* 260 */ 2515, 2514, 1887, 2507, 2473, 2517, 2465, 2457, 2444, 2443, + /* 270 */ 2485, 2472, 2475, 2481, 2436, 2437, 2442, 2438, 2406, 2461, + /* 280 */ 2409, 2394, 2418, 2430, 2427, 2372, 2370, 2263, 2396, 2391, + /* 290 */ 2368, 2355, 2384, 2360, 2263, 2404, 2263, 2401, 2263, 2398, + /* 300 */ 2263, 2392, 2364, 2412, 2376, 2343, 2405, 2365, 2329, 2352, + /* 310 */ 2328, 2317, 2316, 2263, 2314, 2336, 2263, 2341, 2307, 2326, + /* 320 */ 2263, 2280, 2276, 2293, 2348, 2263, 2300, 2324, 2263, 2282, + /* 330 */ 2299, 2296, 2284, 2279, 2250, 2269, 2261, 2257, 2251, 2232, + /* 340 */ 2225, 2224, 2118, 2188, 2168, 2116, 2090, 2134, 2127, 2138, + /* 350 */ 2113, 2083, 2070, 2057, 2111, 1887, 1887, 2074, 2064, 2051, + /* 360 */ 2022, 2059, 2029, 2061, 2062, 2063, 2041, 2038, 2032, 2023, + /* 370 */ 2015, 1905, 1897, 1872, 1974, 1969, 1929, 1887, 1887, 1887, + /* 380 */ 1956, }; static const YYACTIONTYPE yy_default[] = { - /* 0 */ 849, 1158, 1158, 1277, 1158, 1158, 1158, 1158, 1158, 1158, - /* 10 */ 1277, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - /* 20 */ 1158, 1277, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - /* 30 */ 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - /* 40 */ 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - /* 50 */ 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - /* 60 */ 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1029, - /* 70 */ 1316, 1316, 1316, 1293, 1293, 1316, 1022, 1316, 1316, 1316, - /* 80 */ 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 896, 1018, - /* 90 */ 886, 1029, 1316, 1316, 1316, 1316, 1316, 1089, 1103, 1089, - /* 100 */ 1081, 1072, 1316, 1316, 1194, 1097, 1097, 1097, 1097, 969, - /* 110 */ 1097, 1316, 1316, 1316, 1316, 1129, 1128, 1316, 1057, 1057, - /* 120 */ 1160, 1316, 1247, 1252, 1316, 1316, 1316, 1316, 1316, 1316, - /* 130 */ 1090, 1316, 1316, 1316, 1030, 1018, 1293, 1316, 1316, 1316, - /* 140 */ 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1104, - /* 150 */ 1082, 1073, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, - /* 160 */ 1316, 1316, 1316, 1018, 1018, 1018, 1316, 1316, 1316, 1293, - /* 170 */ 1293, 1316, 1316, 1316, 1316, 1316, 883, 1316, 1316, 1316, - /* 180 */ 855, 1316, 1293, 1293, 849, 1277, 1051, 1277, 1277, 891, - /* 190 */ 1277, 1277, 1270, 1008, 1067, 1160, 1160, 1160, 1160, 1035, - /* 200 */ 1077, 1065, 1069, 1171, 1068, 1160, 1160, 1160, 1160, 1160, - /* 210 */ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, - /* 220 */ 1160, 1160, 1160, 1160, 1131, 1143, 1130, 1138, 1147, 1139, - /* 230 */ 1142, 1133, 1132, 1134, 1316, 1316, 1316, 1135, 1316, 1316, - /* 240 */ 1316, 1316, 1316, 1021, 1316, 1316, 991, 1316, 1316, 1221, - /* 250 */ 1316, 1316, 898, 1316, 1006, 858, 1076, 1019, 1047, 1047, - /* 260 */ 936, 960, 920, 1057, 1047, 1037, 1051, 1051, 1166, 1057, - /* 270 */ 1316, 1316, 1136, 1019, 1006, 1261, 1038, 1038, 1038, 1246, - /* 280 */ 1246, 1038, 1194, 1038, 982, 1038, 982, 1038, 982, 1038, - /* 290 */ 982, 1038, 880, 1076, 1038, 880, 973, 1076, 1109, 1093, - /* 300 */ 1038, 1076, 1038, 973, 1076, 1038, 1228, 1226, 1038, 880, - /* 310 */ 1038, 1179, 880, 1038, 1179, 971, 971, 971, 971, 952, - /* 320 */ 1179, 971, 936, 971, 952, 971, 971, 1312, 1316, 1038, - /* 330 */ 1303, 1303, 1060, 1060, 1066, 1051, 1316, 1185, 1179, 1160, - /* 340 */ 1137, 1066, 1064, 1061, 1076, 1316, 1038, 877, 955, 880, - /* 350 */ 866, 866, 854, 854, 854, 854, 1274, 1274, 1270, 938, - /* 360 */ 938, 1024, 1146, 1145, 1144, 907, 1159, 1316, 1316, 1316, - /* 370 */ 1316, 1316, 1316, 1195, 1316, 1316, 1316, 1316, 1316, 1316, - /* 380 */ 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, - /* 390 */ 1316, 1316, 1316, 1316, 1316, 850, 1316, 1316, 1316, 1316, - /* 400 */ 1316, 1264, 1316, 1316, 1316, 1316, 1316, 1316, 1225, 1224, - /* 410 */ 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, - /* 420 */ 1316, 1316, 1316, 1316, 1316, 1316, 1213, 1316, 1316, 1316, - /* 430 */ 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, - /* 440 */ 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, - /* 450 */ 1316, 1316, 1316, 1316, 994, 1000, 1316, 1316, 1316, 995, - /* 460 */ 1316, 1316, 1122, 1316, 1316, 1316, 1169, 1316, 1316, 1316, - /* 470 */ 1316, 1062, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, - /* 480 */ 1316, 1316, 1316, 1316, 1316, 1316, 1309, 1052, 1316, 1316, - /* 490 */ 1159, 1316, 1279, 1316, 1316, 1316, 1278, 1316, 1316, 1316, - /* 500 */ 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1123, 1122, 1161, - /* 510 */ 889, 1316, 864, 1316, 846, 851, 1263, 1260, 1262, 1257, - /* 520 */ 1258, 1256, 1259, 1255, 1253, 1254, 1251, 1249, 1248, 1250, - /* 530 */ 1245, 1241, 1201, 1199, 1197, 1206, 1205, 1204, 1203, 1202, - /* 540 */ 1198, 1196, 1200, 1192, 1191, 1100, 1079, 1070, 989, 1240, - /* 550 */ 1238, 1239, 1190, 1188, 1189, 988, 987, 986, 981, 980, - /* 560 */ 979, 978, 1267, 1276, 1275, 1273, 1272, 1271, 1265, 1266, - /* 570 */ 1177, 1176, 1174, 1173, 1175, 882, 1217, 1220, 1219, 1218, - /* 580 */ 1223, 1222, 1215, 1227, 1232, 1231, 1236, 1235, 1234, 1233, - /* 590 */ 1230, 1212, 1108, 1107, 1105, 1102, 1112, 1111, 1110, 1101, - /* 600 */ 1094, 1106, 1084, 1092, 1091, 1080, 1083, 974, 1075, 1071, - /* 610 */ 1074, 990, 1216, 985, 984, 983, 881, 876, 1040, 875, - /* 620 */ 874, 885, 958, 959, 967, 970, 965, 968, 964, 963, - /* 630 */ 962, 966, 961, 957, 888, 887, 897, 951, 934, 923, - /* 640 */ 890, 925, 922, 921, 926, 943, 942, 949, 948, 947, - /* 650 */ 946, 945, 941, 944, 940, 939, 927, 919, 918, 937, - /* 660 */ 917, 954, 953, 950, 916, 977, 976, 975, 972, 915, - /* 670 */ 914, 913, 912, 911, 910, 1157, 1315, 1311, 1314, 1313, - /* 680 */ 1310, 1156, 1162, 1150, 1148, 992, 1003, 1002, 1001, 998, - /* 690 */ 999, 1013, 1011, 1010, 1009, 1046, 1045, 1044, 1043, 1042, - /* 700 */ 1041, 1034, 1032, 1027, 1026, 1033, 1031, 1028, 1049, 1050, - /* 710 */ 1048, 1025, 1017, 1015, 1016, 1014, 1099, 1096, 1098, 1095, - /* 720 */ 1036, 1023, 1020, 1007, 1291, 1289, 1292, 1290, 1288, 1296, - /* 730 */ 1298, 1297, 1302, 1300, 1299, 1295, 1308, 1307, 1306, 1305, - /* 740 */ 1304, 1294, 1301, 1287, 1286, 1285, 1284, 1054, 1059, 1058, - /* 750 */ 1053, 997, 1161, 1149, 1159, 1153, 1282, 1280, 1283, 1182, - /* 760 */ 1184, 1187, 1186, 1183, 1056, 1055, 1181, 1180, 1281, 1152, - /* 770 */ 1127, 903, 901, 902, 1209, 1208, 1211, 1210, 1207, 905, - /* 780 */ 904, 900, 899, 1125, 1121, 1120, 1237, 1154, 1155, 1119, - /* 790 */ 1124, 1117, 1116, 1115, 1141, 1140, 1126, 1118, 892, 996, - /* 800 */ 993, 1151, 1114, 1039, 1113, 933, 932, 931, 930, 929, - /* 810 */ 928, 1005, 1004, 909, 924, 908, 906, 884, 879, 878, - /* 820 */ 873, 871, 868, 870, 867, 872, 869, 865, 863, 862, - /* 830 */ 861, 860, 859, 895, 894, 893, 889, 857, 856, 853, - /* 840 */ 852, 848, 847, 845, + /* 0 */ 875, 1195, 1195, 1315, 1195, 1195, 1195, 1195, 1195, 1195, + /* 10 */ 1315, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, + /* 20 */ 1195, 1315, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, + /* 30 */ 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, + /* 40 */ 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, + /* 50 */ 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, + /* 60 */ 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, + /* 70 */ 1195, 1195, 1059, 1357, 1357, 1357, 1334, 1334, 1357, 1052, + /* 80 */ 1357, 1357, 903, 1357, 1357, 1357, 1357, 1357, 1357, 1357, + /* 90 */ 1357, 1357, 926, 1048, 916, 1059, 1357, 1357, 1357, 1357, + /* 100 */ 1357, 1121, 1135, 1121, 1113, 1102, 1357, 1357, 1357, 1231, + /* 110 */ 1129, 1129, 1129, 1129, 999, 1129, 1357, 1357, 1357, 1357, + /* 120 */ 1163, 1162, 1357, 1087, 1087, 1197, 1357, 1284, 1289, 1156, + /* 130 */ 1357, 1357, 1357, 1357, 1357, 1122, 1357, 1357, 1357, 1060, + /* 140 */ 1048, 1334, 1156, 1357, 1357, 1357, 1357, 1357, 1357, 1357, + /* 150 */ 1357, 1357, 1357, 1357, 1136, 1114, 1103, 1357, 1357, 1357, + /* 160 */ 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1048, 1048, + /* 170 */ 1048, 1357, 1357, 1357, 1334, 1334, 1357, 1158, 1357, 1357, + /* 180 */ 1357, 913, 1357, 1357, 1357, 881, 1357, 1357, 1334, 1334, + /* 190 */ 875, 1315, 1081, 1315, 1315, 921, 1315, 1315, 1308, 1038, + /* 200 */ 1038, 1097, 1120, 1119, 1118, 1117, 1065, 1107, 1095, 1099, + /* 210 */ 1208, 1098, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, + /* 220 */ 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, + /* 230 */ 1197, 1165, 1179, 1164, 1172, 1184, 1173, 1178, 1177, 1176, + /* 240 */ 1167, 1166, 1168, 1169, 1357, 1357, 1357, 1357, 1357, 1357, + /* 250 */ 1357, 1357, 1051, 1357, 1357, 1021, 1357, 1357, 1258, 1357, + /* 260 */ 1357, 928, 1170, 1357, 1036, 884, 1106, 1049, 1077, 1077, + /* 270 */ 966, 990, 950, 1087, 1077, 1067, 1081, 1081, 1203, 1087, + /* 280 */ 1357, 1357, 1197, 1049, 1036, 1299, 1299, 1068, 1068, 1068, + /* 290 */ 1283, 1283, 1068, 1231, 1068, 1012, 1068, 1012, 1068, 1012, + /* 300 */ 1068, 1012, 1068, 910, 1106, 1068, 910, 1003, 1109, 1106, + /* 310 */ 1109, 1141, 1125, 1068, 1109, 1106, 1068, 1003, 1109, 1106, + /* 320 */ 1068, 1265, 1263, 1068, 910, 1068, 1216, 910, 1068, 1216, + /* 330 */ 1001, 1001, 1001, 1001, 982, 1216, 1001, 966, 1001, 982, + /* 340 */ 1001, 1001, 1353, 1357, 1068, 1344, 1344, 1090, 1090, 1096, + /* 350 */ 1081, 1357, 1357, 1222, 1216, 1183, 1171, 1096, 1094, 1091, + /* 360 */ 1106, 1357, 1068, 985, 910, 892, 892, 880, 880, 880, + /* 370 */ 880, 1312, 1312, 1308, 968, 968, 1054, 1182, 1181, 1180, + /* 380 */ 937, 1196, 1357, 1357, 1357, 1357, 1357, 1357, 1232, 1357, + /* 390 */ 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, + /* 400 */ 1357, 1357, 1357, 1357, 1357, 1318, 1357, 1357, 1357, 1357, + /* 410 */ 1357, 876, 1357, 1357, 1357, 1357, 1357, 1302, 1357, 1357, + /* 420 */ 1357, 1357, 1357, 1357, 1262, 1261, 1357, 1357, 1357, 1357, + /* 430 */ 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, + /* 440 */ 1357, 1110, 1357, 1250, 1357, 1357, 1357, 1357, 1357, 1357, + /* 450 */ 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, + /* 460 */ 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, + /* 470 */ 1357, 1024, 1030, 1357, 1357, 1357, 1025, 1357, 1357, 1154, + /* 480 */ 1357, 1357, 1357, 1206, 1357, 1357, 1357, 1357, 1092, 1357, + /* 490 */ 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, + /* 500 */ 1357, 1357, 1357, 1350, 1082, 1357, 1357, 1357, 1198, 1357, + /* 510 */ 1196, 1357, 1317, 1357, 1357, 1357, 1316, 1357, 1357, 1357, + /* 520 */ 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1155, 1154, 1198, + /* 530 */ 919, 899, 1357, 890, 1357, 872, 877, 1301, 1298, 1295, + /* 540 */ 1300, 1294, 1296, 1293, 1297, 1292, 1290, 1291, 1288, 1286, + /* 550 */ 1285, 1287, 1282, 1278, 1238, 1236, 1234, 1243, 1242, 1241, + /* 560 */ 1240, 1239, 1235, 1233, 1237, 1229, 1228, 1132, 1111, 1100, + /* 570 */ 1019, 1277, 1275, 1276, 1227, 1225, 1226, 1018, 1017, 1016, + /* 580 */ 1011, 1010, 1009, 1008, 1305, 1314, 1313, 1311, 1310, 1309, + /* 590 */ 1303, 1304, 1214, 1213, 1211, 1210, 1212, 912, 1254, 1257, + /* 600 */ 1256, 1255, 1260, 1259, 1252, 1264, 1269, 1268, 1273, 1272, + /* 610 */ 1271, 1270, 1267, 1249, 1140, 1139, 1137, 1134, 1144, 1143, + /* 620 */ 1142, 1133, 1126, 1138, 1116, 1124, 1123, 1112, 1115, 1004, + /* 630 */ 1105, 1101, 1104, 1020, 1253, 1015, 1014, 1013, 911, 902, + /* 640 */ 1070, 901, 900, 915, 988, 989, 997, 1000, 995, 998, + /* 650 */ 994, 993, 992, 996, 991, 987, 918, 917, 927, 981, + /* 660 */ 964, 953, 920, 955, 952, 951, 956, 973, 972, 979, + /* 670 */ 978, 977, 976, 975, 971, 974, 970, 969, 957, 949, + /* 680 */ 948, 967, 947, 984, 983, 980, 946, 1007, 1006, 1005, + /* 690 */ 1002, 945, 944, 943, 942, 941, 940, 1194, 1356, 1352, + /* 700 */ 1355, 1354, 1351, 1193, 1199, 1187, 1185, 1022, 1033, 1032, + /* 710 */ 1031, 1028, 1029, 1043, 1041, 1040, 1039, 1076, 1075, 1074, + /* 720 */ 1073, 1072, 1071, 1064, 1062, 1057, 1056, 1063, 1061, 1058, + /* 730 */ 1079, 1080, 1078, 1055, 1047, 1045, 1046, 1044, 1131, 1128, + /* 740 */ 1130, 1127, 1066, 1053, 1050, 1037, 1332, 1330, 1333, 1331, + /* 750 */ 1329, 1337, 1339, 1338, 1343, 1341, 1340, 1336, 1349, 1348, + /* 760 */ 1347, 1346, 1345, 1335, 1342, 1328, 1327, 1326, 1325, 1084, + /* 770 */ 1089, 1088, 1083, 1027, 1186, 1196, 1190, 1323, 1321, 1324, + /* 780 */ 1320, 1319, 1219, 1221, 1224, 1223, 1220, 1086, 1085, 1218, + /* 790 */ 1217, 1322, 1189, 1161, 933, 931, 932, 1246, 1245, 1248, + /* 800 */ 1247, 1244, 935, 934, 930, 929, 1159, 1153, 1152, 1274, + /* 810 */ 1191, 1192, 1151, 1157, 1149, 1148, 1147, 1175, 1174, 1160, + /* 820 */ 1150, 922, 1026, 1023, 1188, 1146, 1069, 1145, 963, 962, + /* 830 */ 961, 960, 959, 958, 1035, 1034, 939, 954, 938, 936, + /* 840 */ 914, 904, 909, 907, 908, 906, 905, 897, 894, 896, + /* 850 */ 893, 898, 895, 891, 889, 888, 887, 886, 885, 925, + /* 860 */ 924, 923, 919, 883, 882, 879, 878, 874, 873, 871, }; /* The next table maps tokens into fallback tokens. If a construct @@ -1122,6 +1097,7 @@ static const YYCODETYPE yyFallback[] = { 4, /* LAST => ID */ 4, /* LIKE_KW => ID */ 4, /* MATCH => ID */ + 4, /* MATERIALIZED => ID */ 4, /* NO => ID */ 4, /* NULLS => ID */ 4, /* OTHERS => ID */ @@ -1156,6 +1132,7 @@ static const YYCODETYPE yyFallback[] = { 4, /* RENAME => ID */ 4, /* CTIME_KW => ID */ 4, /* IF => ID */ + 4, /* FILTER => ID */ }; #endif /* YYFALLBACK */ @@ -1316,26 +1293,27 @@ static const char *const yyTokenName[] = { "FOLLOWING", "FOR", "GENERATED", "GROUPS", "IGNORE", "IMMEDIATE", "INDEXED", "INITIALLY", "INSTEAD", "LAST", "LIKE_KW", "MATCH", - "NO", "NULLS", "OTHERS", "PLAN", - "QUERY", "KEY", "OF", "OFFSET", - "PARTITION", "PRAGMA", "PRECEDING", "RAISE", - "RANGE", "RECURSIVE", "RELEASE", "REPLACE", - "RESTRICT", "ROW", "ROWS", "ROLLBACK", - "SAVEPOINT", "TEMP", "TIES", "TRIGGER", - "UNBOUNDED", "VACUUM", "VIEW", "VIRTUAL", - "WITH", "WITHOUT", "REINDEX", "RENAME", - "CTIME_KW", "IF", "ANY", "OR", - "AND", "NOT", "IS", "BETWEEN", - "IN", "ISNULL", "NOTNULL", "NE", - "EQ", "GT", "LE", "LT", - "GE", "ESCAPE", "BITAND", "BITOR", - "LSHIFT", "RSHIFT", "PLUS", "MINUS", - "STAR", "SLASH", "REM", "CONCAT", - "COLLATE", "BITNOT", "SEMI", "TRANSACTION", - "ID_TRANS", "COMMIT", "TO", "CREATE", - "TABLE", "LP", "RP", "AS", - "DOT", "ID_TAB_NEW", "ID_DB", "CTX_ROWID_KW", - "EXISTS", "COMMA", "ID_COL_NEW", "STRING", + "MATERIALIZED", "NO", "NULLS", "OTHERS", + "PLAN", "QUERY", "KEY", "OF", + "OFFSET", "PARTITION", "PRAGMA", "PRECEDING", + "RAISE", "RANGE", "RECURSIVE", "RELEASE", + "REPLACE", "RESTRICT", "ROW", "ROWS", + "ROLLBACK", "SAVEPOINT", "TEMP", "TIES", + "TRIGGER", "UNBOUNDED", "VACUUM", "VIEW", + "VIRTUAL", "WITH", "WITHOUT", "REINDEX", + "RENAME", "CTIME_KW", "IF", "FILTER", + "ANY", "OR", "AND", "NOT", + "IS", "BETWEEN", "IN", "ISNULL", + "NOTNULL", "NE", "EQ", "GT", + "LE", "LT", "GE", "ESCAPE", + "BITAND", "BITOR", "LSHIFT", "RSHIFT", + "PLUS", "MINUS", "STAR", "SLASH", + "REM", "CONCAT", "PTR", "COLLATE", + "BITNOT", "SEMI", "TRANSACTION", "ID_TRANS", + "COMMIT", "TO", "CREATE", "TABLE", + "LP", "RP", "AS", "DOT", + "ID_TAB_NEW", "ID_DB", "COMMA", "CTX_ROWID_KW", + "CTX_STRICT_KW", "EXISTS", "ID_COL_NEW", "STRING", "JOIN_KW", "ID_COL_TYPE", "RIGHT_ASSOC", "CONSTRAINT", "DEFAULT", "NULL", "PRIMARY", "UNIQUE", "CHECK", "REFERENCES", "ID_CONSTR", "ID_COLLATE", @@ -1347,44 +1325,45 @@ static const char *const yyTokenName[] = { "EXCEPT", "INTERSECT", "DISTINCT", "ID_ALIAS", "FROM", "USING", "JOIN", "ID_JOIN_OPTS", "ID_IDX", "ORDER", "GROUP", "HAVING", - "LIMIT", "WHERE", "ID_COL", "INTO", - "NOTHING", "ID_FN", "ID_ERR_MSG", "VARIABLE", - "CASE", "WHEN", "THEN", "ELSE", - "INDEX", "ID_IDX_NEW", "ID_PRAGMA", "ID_TRIG_NEW", - "ID_TRIG", "ALTER", "ADD", "WINDOW", - "OVER", "FILTER", "error", "cmd", + "LIMIT", "WHERE", "RETURNING", "ID_COL", + "INTO", "NOTHING", "ID_FN", "ID_ERR_MSG", + "VARIABLE", "CASE", "WHEN", "THEN", + "ELSE", "INDEX", "ID_IDX_NEW", "ID_PRAGMA", + "ID_TRIG_NEW", "ID_TRIG", "ALTER", "ADD", + "WINDOW", "OVER", "error", "cmd", "input", "cmdlist", "ecmd", "explain", "cmdx", "transtype", "trans_opt", "nm", "savepoint_opt", "temp", "ifnotexists", "fullname", "columnlist", "conslist_opt", "table_options", "select", - "column", "columnid", "type", "carglist", - "id", "id_opt", "ids", "typetoken", - "typename", "signed", "plus_num", "minus_num", - "ccons", "term", "expr", "onconf", - "sortorder", "autoinc", "idxlist_opt", "refargs", - "defer_subclause", "gen_always", "tnm", "refarg", - "refact", "init_deferred_pred_opt", "conslist", "tconscomma", - "tcons", "idxlist", "defer_subclause_opt", "resolvetype", - "orconf", "raisetype", "ifexists", "select_stmt", - "with", "selectnowith", "oneselect", "multiselect_op", - "values", "distinct", "selcollist", "from", - "where_opt", "groupby_opt", "having_opt", "orderby_opt", - "limit_opt", "window_clause", "nexprlist", "exprlist", - "sclp", "as", "joinsrc", "singlesrc", - "seltablist", "joinop", "joinconstr_opt", "dbnm", - "indexed_opt", "idlist", "sortlist", "nulls", - "delete_stmt", "update_stmt", "setlist", "idlist_opt", - "insert_stmt", "insert_cmd", "upsert", "exprx", - "not_opt", "likeop", "case_operand", "case_exprlist", - "case_else", "filter_over", "uniqueflag", "idxlist_single", - "collate", "vinto", "nmnum", "number", - "trigger_time", "trigger_event", "foreach_clause", "when_clause", - "trigger_cmd_list", "trigger_cmd", "database_kw_opt", "key_opt", - "kwcolumn_opt", "create_vtab", "vtabarglist", "vtabarg", - "vtabargtoken", "anylist", "wqlist", "wqcte", - "windowdefn_list", "windowdefn", "window", "frame_opt", - "range_or_rows", "frame_bound_s", "frame_exclude_opt", "frame_bound_e", - "frame_bound", "frame_exclude", "filter_clause", "over_clause", + "table_option", "column", "columnid", "type", + "carglist", "id", "id_opt", "ids", + "typetoken", "typename", "signed", "plus_num", + "minus_num", "ccons", "term", "expr", + "onconf", "sortorder", "autoinc", "idxlist_opt", + "refargs", "defer_subclause", "gen_always", "tnm", + "refarg", "refact", "init_deferred_pred_opt", "conslist", + "tconscomma", "tcons", "idxlist", "defer_subclause_opt", + "resolvetype", "orconf", "raisetype", "ifexists", + "select_stmt", "with", "selectnowith", "oneselect", + "multiselect_op", "values", "distinct", "selcollist", + "from", "where_opt", "groupby_opt", "having_opt", + "orderby_opt", "limit_opt", "window_clause", "nexprlist", + "exprlist", "sclp", "as", "joinsrc", + "singlesrc", "seltablist", "joinop", "joinconstr_opt", + "dbnm", "indexed_opt", "idlist", "sortlist", + "nulls", "delete_stmt", "returning", "update_stmt", + "setlist", "idlist_opt", "insert_stmt", "insert_cmd", + "upsert", "exprx", "not_opt", "likeop", + "case_operand", "case_exprlist", "case_else", "filter_over", + "uniqueflag", "idxlist_single", "collate", "vinto", + "nmnum", "number", "trigger_time", "trigger_event", + "foreach_clause", "when_clause", "trigger_cmd_list", "trigger_cmd", + "database_kw_opt", "key_opt", "kwcolumn_opt", "create_vtab", + "vtabarglist", "vtabarg", "vtabargtoken", "anylist", + "wqlist", "wqas", "wqcte", "windowdefn_list", + "windowdefn", "window", "frame_opt", "range_or_rows", + "frame_bound_s", "frame_exclude_opt", "frame_bound_e", "frame_bound", + "frame_exclude", "filter_clause", "over_clause", }; #endif /* NDEBUG */ @@ -1426,444 +1405,459 @@ static const char *const yyRuleName[] = { /* 31 */ "cmd ::= CREATE temp TABLE ifnotexists nm DOT ID_TAB_NEW", /* 32 */ "cmd ::= CREATE temp TABLE ifnotexists ID_DB|ID_TAB_NEW", /* 33 */ "table_options ::=", - /* 34 */ "table_options ::= WITHOUT nm", - /* 35 */ "table_options ::= WITHOUT CTX_ROWID_KW", - /* 36 */ "ifnotexists ::=", - /* 37 */ "ifnotexists ::= IF NOT EXISTS", - /* 38 */ "temp ::= TEMP", - /* 39 */ "temp ::=", - /* 40 */ "columnlist ::= columnlist COMMA column", - /* 41 */ "columnlist ::= column", - /* 42 */ "column ::= columnid type carglist", - /* 43 */ "columnid ::= nm", - /* 44 */ "columnid ::= ID_COL_NEW", - /* 45 */ "id ::= ID", - /* 46 */ "id_opt ::= id", - /* 47 */ "id_opt ::=", - /* 48 */ "ids ::= ID|STRING", - /* 49 */ "nm ::= id", - /* 50 */ "nm ::= STRING", - /* 51 */ "nm ::= JOIN_KW", - /* 52 */ "type ::=", - /* 53 */ "type ::= typetoken", - /* 54 */ "typetoken ::= typename", - /* 55 */ "typetoken ::= typename LP signed RP", - /* 56 */ "typetoken ::= typename LP signed COMMA signed RP", - /* 57 */ "typename ::= ids", - /* 58 */ "typename ::= typename ids", - /* 59 */ "typename ::= ID_COL_TYPE", - /* 60 */ "signed ::= plus_num", - /* 61 */ "signed ::= minus_num", - /* 62 */ "carglist ::= carglist ccons", - /* 63 */ "carglist ::=", - /* 64 */ "ccons ::= CONSTRAINT nm", - /* 65 */ "ccons ::= DEFAULT term", - /* 66 */ "ccons ::= DEFAULT LP expr RP", - /* 67 */ "ccons ::= DEFAULT PLUS term", - /* 68 */ "ccons ::= DEFAULT MINUS term", - /* 69 */ "ccons ::= DEFAULT id", - /* 70 */ "ccons ::= DEFAULT CTIME_KW", - /* 71 */ "ccons ::= NULL onconf", - /* 72 */ "ccons ::= NOT NULL onconf", - /* 73 */ "ccons ::= PRIMARY KEY sortorder onconf autoinc", - /* 74 */ "ccons ::= UNIQUE onconf", - /* 75 */ "ccons ::= CHECK LP expr RP", - /* 76 */ "ccons ::= REFERENCES nm idxlist_opt refargs", - /* 77 */ "ccons ::= defer_subclause", - /* 78 */ "ccons ::= COLLATE ids", - /* 79 */ "ccons ::= gen_always AS LP expr RP id_opt", - /* 80 */ "ccons ::= CONSTRAINT ID_CONSTR", - /* 81 */ "ccons ::= COLLATE ID_COLLATE", - /* 82 */ "ccons ::= REFERENCES ID_TAB", - /* 83 */ "ccons ::= CHECK LP RP", - /* 84 */ "term ::= NULL", - /* 85 */ "term ::= INTEGER", - /* 86 */ "term ::= FLOAT", - /* 87 */ "term ::= STRING|BLOB", - /* 88 */ "tnm ::= term", - /* 89 */ "tnm ::= nm", - /* 90 */ "gen_always ::= GENERATED ALWAYS", - /* 91 */ "gen_always ::=", - /* 92 */ "autoinc ::=", - /* 93 */ "autoinc ::= AUTOINCR", - /* 94 */ "refargs ::=", - /* 95 */ "refargs ::= refargs refarg", - /* 96 */ "refarg ::= MATCH nm", - /* 97 */ "refarg ::= ON INSERT refact", - /* 98 */ "refarg ::= ON DELETE refact", - /* 99 */ "refarg ::= ON UPDATE refact", - /* 100 */ "refarg ::= MATCH ID_FK_MATCH", - /* 101 */ "refact ::= SET NULL", - /* 102 */ "refact ::= SET DEFAULT", - /* 103 */ "refact ::= CASCADE", - /* 104 */ "refact ::= RESTRICT", - /* 105 */ "refact ::= NO ACTION", - /* 106 */ "defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt", - /* 107 */ "defer_subclause ::= DEFERRABLE init_deferred_pred_opt", - /* 108 */ "init_deferred_pred_opt ::=", - /* 109 */ "init_deferred_pred_opt ::= INITIALLY DEFERRED", - /* 110 */ "init_deferred_pred_opt ::= INITIALLY IMMEDIATE", - /* 111 */ "conslist_opt ::=", - /* 112 */ "conslist_opt ::= COMMA conslist", - /* 113 */ "conslist ::= conslist tconscomma tcons", - /* 114 */ "conslist ::= tcons", - /* 115 */ "tconscomma ::= COMMA", - /* 116 */ "tconscomma ::=", - /* 117 */ "tcons ::= CONSTRAINT nm", - /* 118 */ "tcons ::= PRIMARY KEY LP idxlist autoinc RP onconf", - /* 119 */ "tcons ::= UNIQUE LP idxlist RP onconf", - /* 120 */ "tcons ::= CHECK LP expr RP onconf", - /* 121 */ "tcons ::= FOREIGN KEY LP idxlist RP REFERENCES nm idxlist_opt refargs defer_subclause_opt", - /* 122 */ "tcons ::= CONSTRAINT ID_CONSTR", - /* 123 */ "tcons ::= FOREIGN KEY LP idxlist RP REFERENCES ID_TAB", - /* 124 */ "tcons ::= CHECK LP RP onconf", - /* 125 */ "defer_subclause_opt ::=", - /* 126 */ "defer_subclause_opt ::= defer_subclause", - /* 127 */ "onconf ::=", - /* 128 */ "onconf ::= ON CONFLICT resolvetype", - /* 129 */ "orconf ::=", - /* 130 */ "orconf ::= OR resolvetype", - /* 131 */ "resolvetype ::= raisetype", - /* 132 */ "resolvetype ::= IGNORE", - /* 133 */ "resolvetype ::= REPLACE", - /* 134 */ "cmd ::= DROP TABLE ifexists fullname", - /* 135 */ "cmd ::= DROP TABLE ifexists nm DOT ID_TAB", - /* 136 */ "cmd ::= DROP TABLE ifexists ID_DB|ID_TAB", - /* 137 */ "ifexists ::= IF EXISTS", - /* 138 */ "ifexists ::=", - /* 139 */ "cmd ::= CREATE temp VIEW ifnotexists fullname idxlist_opt AS select", - /* 140 */ "cmd ::= CREATE temp VIEW ifnotexists nm DOT ID_VIEW_NEW", - /* 141 */ "cmd ::= CREATE temp VIEW ifnotexists ID_DB|ID_VIEW_NEW", - /* 142 */ "cmd ::= DROP VIEW ifexists fullname", - /* 143 */ "cmd ::= DROP VIEW ifexists nm DOT ID_VIEW", - /* 144 */ "cmd ::= DROP VIEW ifexists ID_DB|ID_VIEW", - /* 145 */ "cmd ::= select_stmt", - /* 146 */ "select_stmt ::= select", - /* 147 */ "select ::= with selectnowith", - /* 148 */ "selectnowith ::= oneselect", - /* 149 */ "selectnowith ::= selectnowith multiselect_op oneselect", - /* 150 */ "selectnowith ::= values", - /* 151 */ "selectnowith ::= selectnowith COMMA values", - /* 152 */ "oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt", - /* 153 */ "oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt", - /* 154 */ "values ::= VALUES LP nexprlist RP", - /* 155 */ "values ::= values COMMA LP exprlist RP", - /* 156 */ "multiselect_op ::= UNION", - /* 157 */ "multiselect_op ::= UNION ALL", - /* 158 */ "multiselect_op ::= EXCEPT", - /* 159 */ "multiselect_op ::= INTERSECT", - /* 160 */ "distinct ::= DISTINCT", - /* 161 */ "distinct ::= ALL", - /* 162 */ "distinct ::=", - /* 163 */ "sclp ::= selcollist COMMA", - /* 164 */ "sclp ::=", - /* 165 */ "selcollist ::= sclp expr as", - /* 166 */ "selcollist ::= sclp STAR", - /* 167 */ "selcollist ::= sclp tnm DOT STAR", - /* 168 */ "selcollist ::= sclp", - /* 169 */ "selcollist ::= sclp ID_TAB DOT STAR", - /* 170 */ "as ::= AS nm", - /* 171 */ "as ::= ids", - /* 172 */ "as ::= AS ID_ALIAS", - /* 173 */ "as ::= ID_ALIAS", - /* 174 */ "as ::=", - /* 175 */ "from ::=", - /* 176 */ "from ::= FROM joinsrc", - /* 177 */ "joinsrc ::= singlesrc seltablist", - /* 178 */ "joinsrc ::=", - /* 179 */ "seltablist ::= seltablist joinop singlesrc joinconstr_opt", - /* 180 */ "seltablist ::=", - /* 181 */ "singlesrc ::= nm dbnm as indexed_opt", - /* 182 */ "singlesrc ::= LP select RP as", - /* 183 */ "singlesrc ::= LP joinsrc RP as", - /* 184 */ "singlesrc ::= nm dbnm LP exprlist RP as", - /* 185 */ "singlesrc ::=", - /* 186 */ "singlesrc ::= nm DOT", - /* 187 */ "singlesrc ::= nm DOT ID_TAB", - /* 188 */ "singlesrc ::= ID_DB|ID_TAB", - /* 189 */ "singlesrc ::= nm DOT ID_VIEW", - /* 190 */ "singlesrc ::= ID_DB|ID_VIEW", - /* 191 */ "joinconstr_opt ::= ON expr", - /* 192 */ "joinconstr_opt ::= USING LP idlist RP", - /* 193 */ "joinconstr_opt ::=", - /* 194 */ "dbnm ::=", - /* 195 */ "dbnm ::= DOT nm", - /* 196 */ "fullname ::= nm dbnm", - /* 197 */ "joinop ::= COMMA", - /* 198 */ "joinop ::= JOIN", - /* 199 */ "joinop ::= JOIN_KW JOIN", - /* 200 */ "joinop ::= JOIN_KW nm JOIN", - /* 201 */ "joinop ::= JOIN_KW nm nm JOIN", - /* 202 */ "joinop ::= ID_JOIN_OPTS", - /* 203 */ "indexed_opt ::=", - /* 204 */ "indexed_opt ::= INDEXED BY nm", - /* 205 */ "indexed_opt ::= NOT INDEXED", - /* 206 */ "indexed_opt ::= INDEXED BY ID_IDX", - /* 207 */ "orderby_opt ::=", - /* 208 */ "orderby_opt ::= ORDER BY sortlist", - /* 209 */ "sortlist ::= sortlist COMMA expr sortorder nulls", - /* 210 */ "sortlist ::= expr sortorder nulls", - /* 211 */ "sortorder ::= ASC", - /* 212 */ "sortorder ::= DESC", - /* 213 */ "sortorder ::=", - /* 214 */ "nulls ::= NULLS FIRST", - /* 215 */ "nulls ::= NULLS LAST", - /* 216 */ "nulls ::=", - /* 217 */ "groupby_opt ::=", - /* 218 */ "groupby_opt ::= GROUP BY nexprlist", - /* 219 */ "groupby_opt ::= GROUP BY", - /* 220 */ "having_opt ::=", - /* 221 */ "having_opt ::= HAVING expr", - /* 222 */ "limit_opt ::=", - /* 223 */ "limit_opt ::= LIMIT expr", - /* 224 */ "limit_opt ::= LIMIT expr OFFSET expr", - /* 225 */ "limit_opt ::= LIMIT expr COMMA expr", - /* 226 */ "cmd ::= delete_stmt", - /* 227 */ "delete_stmt ::= with DELETE FROM fullname indexed_opt where_opt", - /* 228 */ "delete_stmt ::= with DELETE FROM", - /* 229 */ "delete_stmt ::= with DELETE FROM nm DOT", - /* 230 */ "delete_stmt ::= with DELETE FROM nm DOT ID_TAB", - /* 231 */ "delete_stmt ::= with DELETE FROM ID_DB|ID_TAB", - /* 232 */ "where_opt ::=", - /* 233 */ "where_opt ::= WHERE expr", - /* 234 */ "where_opt ::= WHERE", - /* 235 */ "cmd ::= update_stmt", - /* 236 */ "update_stmt ::= with UPDATE orconf fullname indexed_opt SET setlist from where_opt", - /* 237 */ "update_stmt ::= with UPDATE orconf", - /* 238 */ "update_stmt ::= with UPDATE orconf nm DOT", - /* 239 */ "update_stmt ::= with UPDATE orconf nm DOT ID_TAB", - /* 240 */ "update_stmt ::= with UPDATE orconf ID_DB|ID_TAB", - /* 241 */ "setlist ::= setlist COMMA nm EQ expr", - /* 242 */ "setlist ::= setlist COMMA LP idlist RP EQ expr", - /* 243 */ "setlist ::= nm EQ expr", - /* 244 */ "setlist ::= LP idlist RP EQ expr", - /* 245 */ "setlist ::=", - /* 246 */ "setlist ::= setlist COMMA", - /* 247 */ "setlist ::= setlist COMMA ID_COL", - /* 248 */ "setlist ::= ID_COL", - /* 249 */ "idlist_opt ::=", - /* 250 */ "idlist_opt ::= LP idlist RP", - /* 251 */ "idlist ::= idlist COMMA nm", - /* 252 */ "idlist ::= nm", - /* 253 */ "idlist ::=", - /* 254 */ "idlist ::= idlist COMMA ID_COL", - /* 255 */ "idlist ::= ID_COL", - /* 256 */ "cmd ::= insert_stmt", - /* 257 */ "insert_stmt ::= with insert_cmd INTO fullname idlist_opt select upsert", - /* 258 */ "insert_stmt ::= with insert_cmd INTO fullname idlist_opt DEFAULT VALUES", - /* 259 */ "insert_stmt ::= with insert_cmd INTO", - /* 260 */ "insert_stmt ::= with insert_cmd INTO nm DOT", - /* 261 */ "insert_stmt ::= with insert_cmd INTO ID_DB|ID_TAB", - /* 262 */ "insert_stmt ::= with insert_cmd INTO nm DOT ID_TAB", - /* 263 */ "insert_cmd ::= INSERT orconf", - /* 264 */ "insert_cmd ::= REPLACE", - /* 265 */ "upsert ::=", - /* 266 */ "upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt", - /* 267 */ "upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING", - /* 268 */ "upsert ::= ON CONFLICT DO NOTHING", - /* 269 */ "exprx ::= expr not_opt IN ID_DB", - /* 270 */ "exprx ::= expr not_opt IN nm DOT ID_TAB", - /* 271 */ "exprx ::= ID_DB|ID_TAB|ID_COL|ID_FN", - /* 272 */ "exprx ::= tnm DOT ID_TAB|ID_COL", - /* 273 */ "exprx ::= tnm DOT nm DOT ID_COL", - /* 274 */ "exprx ::= expr COLLATE ID_COLLATE", - /* 275 */ "exprx ::= RAISE LP raisetype COMMA ID_ERR_MSG RP", - /* 276 */ "exprx ::= CTIME_KW", - /* 277 */ "exprx ::= LP nexprlist RP", - /* 278 */ "exprx ::= tnm", - /* 279 */ "exprx ::= tnm DOT nm", - /* 280 */ "exprx ::= tnm DOT nm DOT nm", - /* 281 */ "exprx ::= VARIABLE", - /* 282 */ "exprx ::= expr COLLATE ids", - /* 283 */ "exprx ::= CAST LP expr AS typetoken RP", - /* 284 */ "exprx ::= ID LP distinct exprlist RP", - /* 285 */ "exprx ::= ID LP STAR RP", - /* 286 */ "exprx ::= expr AND expr", - /* 287 */ "exprx ::= expr OR expr", - /* 288 */ "exprx ::= expr LT|GT|GE|LE expr", - /* 289 */ "exprx ::= expr EQ|NE expr", - /* 290 */ "exprx ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr", - /* 291 */ "exprx ::= expr PLUS|MINUS expr", - /* 292 */ "exprx ::= expr STAR|SLASH|REM expr", - /* 293 */ "exprx ::= expr CONCAT expr", - /* 294 */ "exprx ::= expr not_opt likeop expr", - /* 295 */ "exprx ::= expr not_opt likeop expr ESCAPE expr", - /* 296 */ "exprx ::= expr ISNULL|NOTNULL", - /* 297 */ "exprx ::= expr NOT NULL", - /* 298 */ "exprx ::= expr IS not_opt expr", - /* 299 */ "exprx ::= NOT expr", - /* 300 */ "exprx ::= BITNOT expr", - /* 301 */ "exprx ::= MINUS expr", - /* 302 */ "exprx ::= PLUS expr", - /* 303 */ "exprx ::= expr not_opt BETWEEN expr AND expr", - /* 304 */ "exprx ::= expr not_opt IN LP exprlist RP", - /* 305 */ "exprx ::= LP select RP", - /* 306 */ "exprx ::= expr not_opt IN LP select RP", - /* 307 */ "exprx ::= expr not_opt IN nm dbnm", - /* 308 */ "exprx ::= EXISTS LP select RP", - /* 309 */ "exprx ::= CASE case_operand case_exprlist case_else END", - /* 310 */ "exprx ::= RAISE LP IGNORE RP", - /* 311 */ "exprx ::= RAISE LP raisetype COMMA nm RP", - /* 312 */ "exprx ::= ID LP distinct exprlist RP filter_over", - /* 313 */ "exprx ::= ID LP STAR RP filter_over", - /* 314 */ "expr ::=", - /* 315 */ "expr ::= exprx", - /* 316 */ "not_opt ::=", - /* 317 */ "not_opt ::= NOT", - /* 318 */ "likeop ::= LIKE_KW|MATCH", - /* 319 */ "case_exprlist ::= case_exprlist WHEN expr THEN expr", - /* 320 */ "case_exprlist ::= WHEN expr THEN expr", - /* 321 */ "case_else ::= ELSE expr", - /* 322 */ "case_else ::=", - /* 323 */ "case_operand ::= exprx", - /* 324 */ "case_operand ::=", - /* 325 */ "exprlist ::= nexprlist", - /* 326 */ "exprlist ::=", - /* 327 */ "nexprlist ::= nexprlist COMMA expr", - /* 328 */ "nexprlist ::= exprx", - /* 329 */ "cmd ::= CREATE uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt", - /* 330 */ "cmd ::= CREATE uniqueflag INDEX ifnotexists nm dbnm ON ID_TAB", - /* 331 */ "cmd ::= CREATE uniqueflag INDEX ifnotexists nm DOT ID_IDX_NEW", - /* 332 */ "cmd ::= CREATE uniqueflag INDEX ifnotexists ID_DB|ID_IDX_NEW", - /* 333 */ "uniqueflag ::= UNIQUE", - /* 334 */ "uniqueflag ::=", - /* 335 */ "idxlist_opt ::=", - /* 336 */ "idxlist_opt ::= LP idxlist RP", - /* 337 */ "idxlist ::= idxlist COMMA idxlist_single", - /* 338 */ "idxlist ::= idxlist_single", - /* 339 */ "idxlist_single ::= nm collate sortorder", - /* 340 */ "idxlist_single ::= ID_COL", - /* 341 */ "collate ::=", - /* 342 */ "collate ::= COLLATE ids", - /* 343 */ "collate ::= COLLATE ID_COLLATE", - /* 344 */ "cmd ::= DROP INDEX ifexists fullname", - /* 345 */ "cmd ::= DROP INDEX ifexists nm DOT ID_IDX", - /* 346 */ "cmd ::= DROP INDEX ifexists ID_DB|ID_IDX", - /* 347 */ "cmd ::= VACUUM vinto", - /* 348 */ "cmd ::= VACUUM nm vinto", - /* 349 */ "vinto ::= INTO expr", - /* 350 */ "vinto ::=", - /* 351 */ "cmd ::= PRAGMA nm dbnm", - /* 352 */ "cmd ::= PRAGMA nm dbnm EQ nmnum", - /* 353 */ "cmd ::= PRAGMA nm dbnm LP nmnum RP", - /* 354 */ "cmd ::= PRAGMA nm dbnm EQ minus_num", - /* 355 */ "cmd ::= PRAGMA nm dbnm LP minus_num RP", - /* 356 */ "cmd ::= PRAGMA nm DOT ID_PRAGMA", - /* 357 */ "cmd ::= PRAGMA ID_DB|ID_PRAGMA", - /* 358 */ "nmnum ::= plus_num", - /* 359 */ "nmnum ::= nm", - /* 360 */ "nmnum ::= ON", - /* 361 */ "nmnum ::= DELETE", - /* 362 */ "nmnum ::= DEFAULT", - /* 363 */ "plus_num ::= PLUS number", - /* 364 */ "plus_num ::= number", - /* 365 */ "minus_num ::= MINUS number", - /* 366 */ "number ::= INTEGER", - /* 367 */ "number ::= FLOAT", - /* 368 */ "cmd ::= CREATE temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON nm foreach_clause when_clause BEGIN trigger_cmd_list END", - /* 369 */ "cmd ::= CREATE temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON nm foreach_clause when_clause", - /* 370 */ "cmd ::= CREATE temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON nm foreach_clause when_clause BEGIN trigger_cmd_list", - /* 371 */ "cmd ::= CREATE temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON ID_TAB", - /* 372 */ "cmd ::= CREATE temp TRIGGER ifnotexists nm DOT ID_TRIG_NEW", - /* 373 */ "cmd ::= CREATE temp TRIGGER ifnotexists ID_DB|ID_TRIG_NEW", - /* 374 */ "trigger_time ::= BEFORE", - /* 375 */ "trigger_time ::= AFTER", - /* 376 */ "trigger_time ::= INSTEAD OF", - /* 377 */ "trigger_time ::=", - /* 378 */ "trigger_event ::= DELETE", - /* 379 */ "trigger_event ::= INSERT", - /* 380 */ "trigger_event ::= UPDATE", - /* 381 */ "trigger_event ::= UPDATE OF idlist", - /* 382 */ "foreach_clause ::=", - /* 383 */ "foreach_clause ::= FOR EACH ROW", - /* 384 */ "when_clause ::=", - /* 385 */ "when_clause ::= WHEN expr", - /* 386 */ "trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI", - /* 387 */ "trigger_cmd_list ::= trigger_cmd SEMI", - /* 388 */ "trigger_cmd_list ::= SEMI", - /* 389 */ "trigger_cmd ::= update_stmt", - /* 390 */ "trigger_cmd ::= insert_stmt", - /* 391 */ "trigger_cmd ::= delete_stmt", - /* 392 */ "trigger_cmd ::= select_stmt", - /* 393 */ "raisetype ::= ROLLBACK|ABORT|FAIL", - /* 394 */ "cmd ::= DROP TRIGGER ifexists fullname", - /* 395 */ "cmd ::= DROP TRIGGER ifexists nm DOT ID_TRIG", - /* 396 */ "cmd ::= DROP TRIGGER ifexists ID_DB|ID_TRIG", - /* 397 */ "cmd ::= ATTACH database_kw_opt expr AS expr key_opt", - /* 398 */ "cmd ::= DETACH database_kw_opt expr", - /* 399 */ "key_opt ::=", - /* 400 */ "key_opt ::= KEY expr", - /* 401 */ "database_kw_opt ::= DATABASE", - /* 402 */ "database_kw_opt ::=", - /* 403 */ "cmd ::= REINDEX", - /* 404 */ "cmd ::= REINDEX nm dbnm", - /* 405 */ "cmd ::= REINDEX ID_COLLATE", - /* 406 */ "cmd ::= REINDEX nm DOT ID_TAB|ID_IDX", - /* 407 */ "cmd ::= REINDEX ID_DB|ID_IDX|ID_TAB", - /* 408 */ "cmd ::= ANALYZE", - /* 409 */ "cmd ::= ANALYZE nm dbnm", - /* 410 */ "cmd ::= ANALYZE nm DOT ID_TAB|ID_IDX", - /* 411 */ "cmd ::= ANALYZE ID_DB|ID_IDX|ID_TAB", - /* 412 */ "cmd ::= ALTER TABLE fullname RENAME TO nm", - /* 413 */ "cmd ::= ALTER TABLE fullname ADD kwcolumn_opt column", - /* 414 */ "cmd ::= ALTER TABLE fullname RENAME TO ID_TAB_NEW", - /* 415 */ "cmd ::= ALTER TABLE nm DOT ID_TAB", - /* 416 */ "cmd ::= ALTER TABLE ID_DB|ID_TAB", - /* 417 */ "kwcolumn_opt ::=", - /* 418 */ "kwcolumn_opt ::= COLUMNKW", - /* 419 */ "cmd ::= create_vtab", - /* 420 */ "create_vtab ::= CREATE VIRTUAL TABLE ifnotexists nm dbnm USING nm", - /* 421 */ "create_vtab ::= CREATE VIRTUAL TABLE ifnotexists nm dbnm USING nm LP vtabarglist RP", - /* 422 */ "create_vtab ::= CREATE VIRTUAL TABLE ifnotexists nm DOT ID_TAB_NEW", - /* 423 */ "create_vtab ::= CREATE VIRTUAL TABLE ifnotexists ID_DB|ID_TAB_NEW", - /* 424 */ "vtabarglist ::= vtabarg", - /* 425 */ "vtabarglist ::= vtabarglist COMMA vtabarg", - /* 426 */ "vtabarg ::=", - /* 427 */ "vtabarg ::= vtabarg vtabargtoken", - /* 428 */ "vtabargtoken ::= ANY", - /* 429 */ "vtabargtoken ::= LP anylist RP", - /* 430 */ "anylist ::=", - /* 431 */ "anylist ::= anylist LP anylist RP", - /* 432 */ "anylist ::= anylist ANY", - /* 433 */ "with ::=", - /* 434 */ "with ::= WITH wqlist", - /* 435 */ "with ::= WITH RECURSIVE wqlist", - /* 436 */ "wqlist ::= wqcte", - /* 437 */ "wqlist ::= wqlist COMMA wqcte", - /* 438 */ "wqlist ::= ID_TAB_NEW", - /* 439 */ "wqcte ::= nm idxlist_opt AS LP select RP", - /* 440 */ "windowdefn_list ::= windowdefn", - /* 441 */ "windowdefn_list ::= windowdefn_list COMMA windowdefn", - /* 442 */ "windowdefn ::= nm AS LP window RP", - /* 443 */ "window ::= PARTITION BY nexprlist orderby_opt frame_opt", - /* 444 */ "window ::= nm PARTITION BY nexprlist orderby_opt frame_opt", - /* 445 */ "window ::= ORDER BY sortlist frame_opt", - /* 446 */ "window ::= nm ORDER BY sortlist frame_opt", - /* 447 */ "window ::= frame_opt", - /* 448 */ "window ::= nm frame_opt", - /* 449 */ "frame_opt ::=", - /* 450 */ "frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt", - /* 451 */ "frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt", - /* 452 */ "range_or_rows ::= RANGE|ROWS|GROUPS", - /* 453 */ "frame_bound_s ::= frame_bound", - /* 454 */ "frame_bound_s ::= UNBOUNDED PRECEDING", - /* 455 */ "frame_bound_e ::= frame_bound", - /* 456 */ "frame_bound_e ::= UNBOUNDED FOLLOWING", - /* 457 */ "frame_bound ::= expr PRECEDING|FOLLOWING", - /* 458 */ "frame_bound ::= CURRENT ROW", - /* 459 */ "frame_exclude_opt ::=", - /* 460 */ "frame_exclude_opt ::= EXCLUDE frame_exclude", - /* 461 */ "frame_exclude ::= NO OTHERS", - /* 462 */ "frame_exclude ::= CURRENT ROW", - /* 463 */ "frame_exclude ::= GROUP", - /* 464 */ "frame_exclude ::= TIES", - /* 465 */ "window_clause ::= WINDOW windowdefn_list", - /* 466 */ "filter_over ::= filter_clause over_clause", - /* 467 */ "filter_over ::= over_clause", - /* 468 */ "filter_over ::= filter_clause", - /* 469 */ "over_clause ::= OVER LP window RP", - /* 470 */ "over_clause ::= OVER nm", - /* 471 */ "filter_clause ::= FILTER LP WHERE expr RP", + /* 34 */ "table_options ::= table_option", + /* 35 */ "table_options ::= table_options COMMA table_option", + /* 36 */ "table_option ::= WITHOUT nm", + /* 37 */ "table_option ::= nm", + /* 38 */ "table_option ::= WITHOUT CTX_ROWID_KW", + /* 39 */ "table_option ::= CTX_STRICT_KW", + /* 40 */ "ifnotexists ::=", + /* 41 */ "ifnotexists ::= IF NOT EXISTS", + /* 42 */ "temp ::= TEMP", + /* 43 */ "temp ::=", + /* 44 */ "columnlist ::= columnlist COMMA column", + /* 45 */ "columnlist ::= column", + /* 46 */ "column ::= columnid type carglist", + /* 47 */ "columnid ::= nm", + /* 48 */ "columnid ::= ID_COL_NEW", + /* 49 */ "id ::= ID", + /* 50 */ "id_opt ::= id", + /* 51 */ "id_opt ::=", + /* 52 */ "ids ::= ID|STRING", + /* 53 */ "nm ::= id", + /* 54 */ "nm ::= STRING", + /* 55 */ "nm ::= JOIN_KW", + /* 56 */ "type ::=", + /* 57 */ "type ::= typetoken", + /* 58 */ "typetoken ::= typename", + /* 59 */ "typetoken ::= typename LP signed RP", + /* 60 */ "typetoken ::= typename LP signed COMMA signed RP", + /* 61 */ "typename ::= ids", + /* 62 */ "typename ::= typename ids", + /* 63 */ "typename ::= ID_COL_TYPE", + /* 64 */ "signed ::= plus_num", + /* 65 */ "signed ::= minus_num", + /* 66 */ "carglist ::= carglist ccons", + /* 67 */ "carglist ::=", + /* 68 */ "ccons ::= CONSTRAINT nm", + /* 69 */ "ccons ::= DEFAULT term", + /* 70 */ "ccons ::= DEFAULT LP expr RP", + /* 71 */ "ccons ::= DEFAULT PLUS term", + /* 72 */ "ccons ::= DEFAULT MINUS term", + /* 73 */ "ccons ::= DEFAULT id", + /* 74 */ "ccons ::= DEFAULT CTIME_KW", + /* 75 */ "ccons ::= NULL onconf", + /* 76 */ "ccons ::= NOT NULL onconf", + /* 77 */ "ccons ::= PRIMARY KEY sortorder onconf autoinc", + /* 78 */ "ccons ::= UNIQUE onconf", + /* 79 */ "ccons ::= CHECK LP expr RP", + /* 80 */ "ccons ::= REFERENCES nm idxlist_opt refargs", + /* 81 */ "ccons ::= defer_subclause", + /* 82 */ "ccons ::= COLLATE ids", + /* 83 */ "ccons ::= gen_always AS LP expr RP id_opt", + /* 84 */ "ccons ::= CONSTRAINT ID_CONSTR", + /* 85 */ "ccons ::= COLLATE ID_COLLATE", + /* 86 */ "ccons ::= REFERENCES ID_TAB", + /* 87 */ "ccons ::= CHECK LP RP", + /* 88 */ "term ::= NULL", + /* 89 */ "term ::= INTEGER", + /* 90 */ "term ::= FLOAT", + /* 91 */ "term ::= STRING|BLOB", + /* 92 */ "tnm ::= term", + /* 93 */ "tnm ::= nm", + /* 94 */ "gen_always ::= GENERATED ALWAYS", + /* 95 */ "gen_always ::=", + /* 96 */ "autoinc ::=", + /* 97 */ "autoinc ::= AUTOINCR", + /* 98 */ "refargs ::=", + /* 99 */ "refargs ::= refargs refarg", + /* 100 */ "refarg ::= MATCH nm", + /* 101 */ "refarg ::= ON INSERT refact", + /* 102 */ "refarg ::= ON DELETE refact", + /* 103 */ "refarg ::= ON UPDATE refact", + /* 104 */ "refarg ::= MATCH ID_FK_MATCH", + /* 105 */ "refact ::= SET NULL", + /* 106 */ "refact ::= SET DEFAULT", + /* 107 */ "refact ::= CASCADE", + /* 108 */ "refact ::= RESTRICT", + /* 109 */ "refact ::= NO ACTION", + /* 110 */ "defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt", + /* 111 */ "defer_subclause ::= DEFERRABLE init_deferred_pred_opt", + /* 112 */ "init_deferred_pred_opt ::=", + /* 113 */ "init_deferred_pred_opt ::= INITIALLY DEFERRED", + /* 114 */ "init_deferred_pred_opt ::= INITIALLY IMMEDIATE", + /* 115 */ "conslist_opt ::=", + /* 116 */ "conslist_opt ::= COMMA conslist", + /* 117 */ "conslist ::= conslist tconscomma tcons", + /* 118 */ "conslist ::= tcons", + /* 119 */ "tconscomma ::= COMMA", + /* 120 */ "tconscomma ::=", + /* 121 */ "tcons ::= CONSTRAINT nm", + /* 122 */ "tcons ::= PRIMARY KEY LP idxlist autoinc RP onconf", + /* 123 */ "tcons ::= UNIQUE LP idxlist RP onconf", + /* 124 */ "tcons ::= CHECK LP expr RP onconf", + /* 125 */ "tcons ::= FOREIGN KEY LP idxlist RP REFERENCES nm idxlist_opt refargs defer_subclause_opt", + /* 126 */ "tcons ::= CONSTRAINT ID_CONSTR", + /* 127 */ "tcons ::= FOREIGN KEY LP idxlist RP REFERENCES ID_TAB", + /* 128 */ "tcons ::= CHECK LP RP onconf", + /* 129 */ "defer_subclause_opt ::=", + /* 130 */ "defer_subclause_opt ::= defer_subclause", + /* 131 */ "onconf ::=", + /* 132 */ "onconf ::= ON CONFLICT resolvetype", + /* 133 */ "orconf ::=", + /* 134 */ "orconf ::= OR resolvetype", + /* 135 */ "resolvetype ::= raisetype", + /* 136 */ "resolvetype ::= IGNORE", + /* 137 */ "resolvetype ::= REPLACE", + /* 138 */ "cmd ::= DROP TABLE ifexists fullname", + /* 139 */ "cmd ::= DROP TABLE ifexists nm DOT ID_TAB", + /* 140 */ "cmd ::= DROP TABLE ifexists ID_DB|ID_TAB", + /* 141 */ "ifexists ::= IF EXISTS", + /* 142 */ "ifexists ::=", + /* 143 */ "cmd ::= CREATE temp VIEW ifnotexists fullname idxlist_opt AS select", + /* 144 */ "cmd ::= CREATE temp VIEW ifnotexists nm DOT ID_VIEW_NEW", + /* 145 */ "cmd ::= CREATE temp VIEW ifnotexists ID_DB|ID_VIEW_NEW", + /* 146 */ "cmd ::= DROP VIEW ifexists fullname", + /* 147 */ "cmd ::= DROP VIEW ifexists nm DOT ID_VIEW", + /* 148 */ "cmd ::= DROP VIEW ifexists ID_DB|ID_VIEW", + /* 149 */ "cmd ::= select_stmt", + /* 150 */ "select_stmt ::= select", + /* 151 */ "select ::= with selectnowith", + /* 152 */ "selectnowith ::= oneselect", + /* 153 */ "selectnowith ::= selectnowith multiselect_op oneselect", + /* 154 */ "selectnowith ::= values", + /* 155 */ "selectnowith ::= selectnowith COMMA values", + /* 156 */ "oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt", + /* 157 */ "oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt", + /* 158 */ "values ::= VALUES LP nexprlist RP", + /* 159 */ "values ::= values COMMA LP exprlist RP", + /* 160 */ "multiselect_op ::= UNION", + /* 161 */ "multiselect_op ::= UNION ALL", + /* 162 */ "multiselect_op ::= EXCEPT", + /* 163 */ "multiselect_op ::= INTERSECT", + /* 164 */ "distinct ::= DISTINCT", + /* 165 */ "distinct ::= ALL", + /* 166 */ "distinct ::=", + /* 167 */ "sclp ::= selcollist COMMA", + /* 168 */ "sclp ::=", + /* 169 */ "selcollist ::= sclp expr as", + /* 170 */ "selcollist ::= sclp STAR", + /* 171 */ "selcollist ::= sclp tnm DOT STAR", + /* 172 */ "selcollist ::= sclp", + /* 173 */ "selcollist ::= sclp ID_TAB DOT STAR", + /* 174 */ "as ::= AS nm", + /* 175 */ "as ::= ids", + /* 176 */ "as ::= AS ID_ALIAS", + /* 177 */ "as ::= ID_ALIAS", + /* 178 */ "as ::=", + /* 179 */ "from ::=", + /* 180 */ "from ::= FROM joinsrc", + /* 181 */ "joinsrc ::= singlesrc seltablist", + /* 182 */ "joinsrc ::=", + /* 183 */ "seltablist ::= seltablist joinop singlesrc joinconstr_opt", + /* 184 */ "seltablist ::=", + /* 185 */ "singlesrc ::= nm dbnm as indexed_opt", + /* 186 */ "singlesrc ::= LP select RP as", + /* 187 */ "singlesrc ::= LP joinsrc RP as", + /* 188 */ "singlesrc ::= nm dbnm LP exprlist RP as", + /* 189 */ "singlesrc ::=", + /* 190 */ "singlesrc ::= nm DOT", + /* 191 */ "singlesrc ::= nm DOT ID_TAB", + /* 192 */ "singlesrc ::= ID_DB|ID_TAB", + /* 193 */ "singlesrc ::= nm DOT ID_VIEW", + /* 194 */ "singlesrc ::= ID_DB|ID_VIEW", + /* 195 */ "joinconstr_opt ::= ON expr", + /* 196 */ "joinconstr_opt ::= USING LP idlist RP", + /* 197 */ "joinconstr_opt ::=", + /* 198 */ "dbnm ::=", + /* 199 */ "dbnm ::= DOT nm", + /* 200 */ "fullname ::= nm dbnm", + /* 201 */ "joinop ::= COMMA", + /* 202 */ "joinop ::= JOIN", + /* 203 */ "joinop ::= JOIN_KW JOIN", + /* 204 */ "joinop ::= JOIN_KW nm JOIN", + /* 205 */ "joinop ::= JOIN_KW nm nm JOIN", + /* 206 */ "joinop ::= ID_JOIN_OPTS", + /* 207 */ "indexed_opt ::=", + /* 208 */ "indexed_opt ::= INDEXED BY nm", + /* 209 */ "indexed_opt ::= NOT INDEXED", + /* 210 */ "indexed_opt ::= INDEXED BY ID_IDX", + /* 211 */ "orderby_opt ::=", + /* 212 */ "orderby_opt ::= ORDER BY sortlist", + /* 213 */ "sortlist ::= sortlist COMMA expr sortorder nulls", + /* 214 */ "sortlist ::= expr sortorder nulls", + /* 215 */ "sortorder ::= ASC", + /* 216 */ "sortorder ::= DESC", + /* 217 */ "sortorder ::=", + /* 218 */ "nulls ::= NULLS FIRST", + /* 219 */ "nulls ::= NULLS LAST", + /* 220 */ "nulls ::=", + /* 221 */ "groupby_opt ::=", + /* 222 */ "groupby_opt ::= GROUP BY nexprlist", + /* 223 */ "groupby_opt ::= GROUP BY", + /* 224 */ "having_opt ::=", + /* 225 */ "having_opt ::= HAVING expr", + /* 226 */ "limit_opt ::=", + /* 227 */ "limit_opt ::= LIMIT expr", + /* 228 */ "limit_opt ::= LIMIT expr OFFSET expr", + /* 229 */ "limit_opt ::= LIMIT expr COMMA expr", + /* 230 */ "cmd ::= delete_stmt", + /* 231 */ "delete_stmt ::= with DELETE FROM fullname indexed_opt where_opt returning", + /* 232 */ "delete_stmt ::= with DELETE FROM", + /* 233 */ "delete_stmt ::= with DELETE FROM nm DOT", + /* 234 */ "delete_stmt ::= with DELETE FROM nm DOT ID_TAB", + /* 235 */ "delete_stmt ::= with DELETE FROM ID_DB|ID_TAB", + /* 236 */ "where_opt ::=", + /* 237 */ "where_opt ::= WHERE expr", + /* 238 */ "where_opt ::= WHERE", + /* 239 */ "returning ::=", + /* 240 */ "returning ::= RETURNING selcollist", + /* 241 */ "cmd ::= update_stmt", + /* 242 */ "update_stmt ::= with UPDATE orconf fullname indexed_opt SET setlist from where_opt returning", + /* 243 */ "update_stmt ::= with UPDATE orconf", + /* 244 */ "update_stmt ::= with UPDATE orconf nm DOT", + /* 245 */ "update_stmt ::= with UPDATE orconf nm DOT ID_TAB", + /* 246 */ "update_stmt ::= with UPDATE orconf ID_DB|ID_TAB", + /* 247 */ "setlist ::= setlist COMMA nm EQ expr", + /* 248 */ "setlist ::= setlist COMMA LP idlist RP EQ expr", + /* 249 */ "setlist ::= nm EQ expr", + /* 250 */ "setlist ::= LP idlist RP EQ expr", + /* 251 */ "setlist ::=", + /* 252 */ "setlist ::= setlist COMMA", + /* 253 */ "setlist ::= setlist COMMA ID_COL", + /* 254 */ "setlist ::= ID_COL", + /* 255 */ "idlist_opt ::=", + /* 256 */ "idlist_opt ::= LP idlist RP", + /* 257 */ "idlist ::= idlist COMMA nm", + /* 258 */ "idlist ::= nm", + /* 259 */ "idlist ::=", + /* 260 */ "idlist ::= idlist COMMA ID_COL", + /* 261 */ "idlist ::= ID_COL", + /* 262 */ "cmd ::= insert_stmt", + /* 263 */ "insert_stmt ::= with insert_cmd INTO fullname idlist_opt select upsert returning", + /* 264 */ "insert_stmt ::= with insert_cmd INTO fullname idlist_opt DEFAULT VALUES returning", + /* 265 */ "insert_stmt ::= with insert_cmd INTO", + /* 266 */ "insert_stmt ::= with insert_cmd INTO nm DOT", + /* 267 */ "insert_stmt ::= with insert_cmd INTO ID_DB|ID_TAB", + /* 268 */ "insert_stmt ::= with insert_cmd INTO nm DOT ID_TAB", + /* 269 */ "insert_cmd ::= INSERT orconf", + /* 270 */ "insert_cmd ::= REPLACE", + /* 271 */ "upsert ::=", + /* 272 */ "upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt", + /* 273 */ "upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING", + /* 274 */ "upsert ::= ON CONFLICT DO NOTHING", + /* 275 */ "exprx ::= expr not_opt IN ID_DB", + /* 276 */ "exprx ::= expr not_opt IN nm DOT ID_TAB", + /* 277 */ "exprx ::= ID_DB|ID_TAB|ID_COL|ID_FN", + /* 278 */ "exprx ::= tnm DOT ID_TAB|ID_COL", + /* 279 */ "exprx ::= tnm DOT nm DOT ID_COL", + /* 280 */ "exprx ::= expr COLLATE ID_COLLATE", + /* 281 */ "exprx ::= RAISE LP raisetype COMMA ID_ERR_MSG RP", + /* 282 */ "exprx ::= CTIME_KW", + /* 283 */ "exprx ::= LP nexprlist RP", + /* 284 */ "exprx ::= tnm", + /* 285 */ "exprx ::= tnm DOT nm", + /* 286 */ "exprx ::= tnm DOT", + /* 287 */ "exprx ::= tnm DOT nm DOT nm", + /* 288 */ "exprx ::= tnm DOT nm DOT", + /* 289 */ "exprx ::= VARIABLE", + /* 290 */ "exprx ::= expr COLLATE ids", + /* 291 */ "exprx ::= CAST LP expr AS typetoken RP", + /* 292 */ "exprx ::= ID LP distinct exprlist RP", + /* 293 */ "exprx ::= ID LP STAR RP", + /* 294 */ "exprx ::= expr AND expr", + /* 295 */ "exprx ::= expr OR expr", + /* 296 */ "exprx ::= expr LT|GT|GE|LE expr", + /* 297 */ "exprx ::= expr EQ|NE expr", + /* 298 */ "exprx ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr", + /* 299 */ "exprx ::= expr PLUS|MINUS expr", + /* 300 */ "exprx ::= expr STAR|SLASH|REM expr", + /* 301 */ "exprx ::= expr CONCAT expr", + /* 302 */ "exprx ::= expr not_opt likeop expr", + /* 303 */ "exprx ::= expr not_opt likeop expr ESCAPE expr", + /* 304 */ "exprx ::= expr ISNULL|NOTNULL", + /* 305 */ "exprx ::= expr NOT NULL", + /* 306 */ "exprx ::= expr IS not_opt expr", + /* 307 */ "exprx ::= expr IS NOT DISTINCT FROM expr", + /* 308 */ "exprx ::= expr IS DISTINCT FROM expr", + /* 309 */ "exprx ::= NOT expr", + /* 310 */ "exprx ::= BITNOT expr", + /* 311 */ "exprx ::= MINUS expr", + /* 312 */ "exprx ::= PLUS expr", + /* 313 */ "exprx ::= expr PTR expr", + /* 314 */ "exprx ::= expr not_opt BETWEEN expr AND expr", + /* 315 */ "exprx ::= expr not_opt IN LP exprlist RP", + /* 316 */ "exprx ::= LP select RP", + /* 317 */ "exprx ::= expr not_opt IN LP select RP", + /* 318 */ "exprx ::= expr not_opt IN nm dbnm", + /* 319 */ "exprx ::= EXISTS LP select RP", + /* 320 */ "exprx ::= CASE case_operand case_exprlist case_else END", + /* 321 */ "exprx ::= RAISE LP IGNORE RP", + /* 322 */ "exprx ::= RAISE LP raisetype COMMA nm RP", + /* 323 */ "exprx ::= ID LP distinct exprlist RP filter_over", + /* 324 */ "exprx ::= ID LP STAR RP filter_over", + /* 325 */ "expr ::=", + /* 326 */ "expr ::= exprx", + /* 327 */ "not_opt ::=", + /* 328 */ "not_opt ::= NOT", + /* 329 */ "likeop ::= LIKE_KW|MATCH", + /* 330 */ "case_exprlist ::= case_exprlist WHEN expr THEN expr", + /* 331 */ "case_exprlist ::= WHEN expr THEN expr", + /* 332 */ "case_else ::= ELSE expr", + /* 333 */ "case_else ::=", + /* 334 */ "case_operand ::= exprx", + /* 335 */ "case_operand ::=", + /* 336 */ "exprlist ::= nexprlist", + /* 337 */ "exprlist ::=", + /* 338 */ "nexprlist ::= nexprlist COMMA expr", + /* 339 */ "nexprlist ::= exprx", + /* 340 */ "cmd ::= CREATE uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt", + /* 341 */ "cmd ::= CREATE uniqueflag INDEX ifnotexists nm dbnm ON ID_TAB", + /* 342 */ "cmd ::= CREATE uniqueflag INDEX ifnotexists nm DOT ID_IDX_NEW", + /* 343 */ "cmd ::= CREATE uniqueflag INDEX ifnotexists ID_DB|ID_IDX_NEW", + /* 344 */ "uniqueflag ::= UNIQUE", + /* 345 */ "uniqueflag ::=", + /* 346 */ "idxlist_opt ::=", + /* 347 */ "idxlist_opt ::= LP idxlist RP", + /* 348 */ "idxlist ::= idxlist COMMA idxlist_single", + /* 349 */ "idxlist ::= idxlist_single", + /* 350 */ "idxlist_single ::= nm collate sortorder", + /* 351 */ "idxlist_single ::= ID_COL", + /* 352 */ "collate ::=", + /* 353 */ "collate ::= COLLATE ids", + /* 354 */ "collate ::= COLLATE ID_COLLATE", + /* 355 */ "cmd ::= DROP INDEX ifexists fullname", + /* 356 */ "cmd ::= DROP INDEX ifexists nm DOT ID_IDX", + /* 357 */ "cmd ::= DROP INDEX ifexists ID_DB|ID_IDX", + /* 358 */ "cmd ::= VACUUM vinto", + /* 359 */ "cmd ::= VACUUM nm vinto", + /* 360 */ "vinto ::= INTO expr", + /* 361 */ "vinto ::=", + /* 362 */ "cmd ::= PRAGMA nm dbnm", + /* 363 */ "cmd ::= PRAGMA nm dbnm EQ nmnum", + /* 364 */ "cmd ::= PRAGMA nm dbnm LP nmnum RP", + /* 365 */ "cmd ::= PRAGMA nm dbnm EQ minus_num", + /* 366 */ "cmd ::= PRAGMA nm dbnm LP minus_num RP", + /* 367 */ "cmd ::= PRAGMA nm DOT ID_PRAGMA", + /* 368 */ "cmd ::= PRAGMA ID_DB|ID_PRAGMA", + /* 369 */ "nmnum ::= plus_num", + /* 370 */ "nmnum ::= nm", + /* 371 */ "nmnum ::= ON", + /* 372 */ "nmnum ::= DELETE", + /* 373 */ "nmnum ::= DEFAULT", + /* 374 */ "plus_num ::= PLUS number", + /* 375 */ "plus_num ::= number", + /* 376 */ "minus_num ::= MINUS number", + /* 377 */ "number ::= INTEGER", + /* 378 */ "number ::= FLOAT", + /* 379 */ "cmd ::= CREATE temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON nm foreach_clause when_clause BEGIN trigger_cmd_list END", + /* 380 */ "cmd ::= CREATE temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON nm foreach_clause when_clause", + /* 381 */ "cmd ::= CREATE temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON nm foreach_clause when_clause BEGIN trigger_cmd_list", + /* 382 */ "cmd ::= CREATE temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON ID_TAB", + /* 383 */ "cmd ::= CREATE temp TRIGGER ifnotexists nm DOT ID_TRIG_NEW", + /* 384 */ "cmd ::= CREATE temp TRIGGER ifnotexists ID_DB|ID_TRIG_NEW", + /* 385 */ "trigger_time ::= BEFORE", + /* 386 */ "trigger_time ::= AFTER", + /* 387 */ "trigger_time ::= INSTEAD OF", + /* 388 */ "trigger_time ::=", + /* 389 */ "trigger_event ::= DELETE", + /* 390 */ "trigger_event ::= INSERT", + /* 391 */ "trigger_event ::= UPDATE", + /* 392 */ "trigger_event ::= UPDATE OF idlist", + /* 393 */ "foreach_clause ::=", + /* 394 */ "foreach_clause ::= FOR EACH ROW", + /* 395 */ "when_clause ::=", + /* 396 */ "when_clause ::= WHEN expr", + /* 397 */ "trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI", + /* 398 */ "trigger_cmd_list ::= trigger_cmd SEMI", + /* 399 */ "trigger_cmd_list ::= SEMI", + /* 400 */ "trigger_cmd ::= update_stmt", + /* 401 */ "trigger_cmd ::= insert_stmt", + /* 402 */ "trigger_cmd ::= delete_stmt", + /* 403 */ "trigger_cmd ::= select_stmt", + /* 404 */ "raisetype ::= ROLLBACK|ABORT|FAIL", + /* 405 */ "cmd ::= DROP TRIGGER ifexists fullname", + /* 406 */ "cmd ::= DROP TRIGGER ifexists nm DOT ID_TRIG", + /* 407 */ "cmd ::= DROP TRIGGER ifexists ID_DB|ID_TRIG", + /* 408 */ "cmd ::= ATTACH database_kw_opt expr AS expr key_opt", + /* 409 */ "cmd ::= DETACH database_kw_opt expr", + /* 410 */ "key_opt ::=", + /* 411 */ "key_opt ::= KEY expr", + /* 412 */ "database_kw_opt ::= DATABASE", + /* 413 */ "database_kw_opt ::=", + /* 414 */ "cmd ::= REINDEX", + /* 415 */ "cmd ::= REINDEX nm dbnm", + /* 416 */ "cmd ::= REINDEX ID_COLLATE", + /* 417 */ "cmd ::= REINDEX nm DOT ID_TAB|ID_IDX", + /* 418 */ "cmd ::= REINDEX ID_DB|ID_IDX|ID_TAB", + /* 419 */ "cmd ::= ANALYZE", + /* 420 */ "cmd ::= ANALYZE nm dbnm", + /* 421 */ "cmd ::= ANALYZE nm DOT ID_TAB|ID_IDX", + /* 422 */ "cmd ::= ANALYZE ID_DB|ID_IDX|ID_TAB", + /* 423 */ "cmd ::= ALTER TABLE fullname RENAME TO nm", + /* 424 */ "cmd ::= ALTER TABLE fullname ADD kwcolumn_opt column", + /* 425 */ "cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm", + /* 426 */ "cmd ::= ALTER TABLE fullname RENAME TO ID_TAB_NEW", + /* 427 */ "cmd ::= ALTER TABLE nm DOT ID_TAB", + /* 428 */ "cmd ::= ALTER TABLE ID_DB|ID_TAB", + /* 429 */ "kwcolumn_opt ::=", + /* 430 */ "kwcolumn_opt ::= COLUMNKW", + /* 431 */ "cmd ::= create_vtab", + /* 432 */ "create_vtab ::= CREATE VIRTUAL TABLE ifnotexists nm dbnm USING nm", + /* 433 */ "create_vtab ::= CREATE VIRTUAL TABLE ifnotexists nm dbnm USING nm LP vtabarglist RP", + /* 434 */ "create_vtab ::= CREATE VIRTUAL TABLE ifnotexists nm DOT ID_TAB_NEW", + /* 435 */ "create_vtab ::= CREATE VIRTUAL TABLE ifnotexists ID_DB|ID_TAB_NEW", + /* 436 */ "vtabarglist ::= vtabarg", + /* 437 */ "vtabarglist ::= vtabarglist COMMA vtabarg", + /* 438 */ "vtabarg ::=", + /* 439 */ "vtabarg ::= vtabarg vtabargtoken", + /* 440 */ "vtabargtoken ::= ANY", + /* 441 */ "vtabargtoken ::= LP anylist RP", + /* 442 */ "anylist ::=", + /* 443 */ "anylist ::= anylist LP anylist RP", + /* 444 */ "anylist ::= anylist ANY", + /* 445 */ "with ::=", + /* 446 */ "with ::= WITH wqlist", + /* 447 */ "with ::= WITH RECURSIVE wqlist", + /* 448 */ "wqas ::= AS", + /* 449 */ "wqas ::= AS MATERIALIZED", + /* 450 */ "wqas ::= AS NOT MATERIALIZED", + /* 451 */ "wqlist ::= wqcte", + /* 452 */ "wqlist ::= wqlist COMMA wqcte", + /* 453 */ "wqlist ::= ID_TAB_NEW", + /* 454 */ "wqcte ::= nm idxlist_opt wqas LP select RP", + /* 455 */ "windowdefn_list ::= windowdefn", + /* 456 */ "windowdefn_list ::= windowdefn_list COMMA windowdefn", + /* 457 */ "windowdefn ::= nm AS LP window RP", + /* 458 */ "window ::= PARTITION BY nexprlist orderby_opt frame_opt", + /* 459 */ "window ::= nm PARTITION BY nexprlist orderby_opt frame_opt", + /* 460 */ "window ::= ORDER BY sortlist frame_opt", + /* 461 */ "window ::= nm ORDER BY sortlist frame_opt", + /* 462 */ "window ::= frame_opt", + /* 463 */ "window ::= nm frame_opt", + /* 464 */ "frame_opt ::=", + /* 465 */ "frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt", + /* 466 */ "frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt", + /* 467 */ "range_or_rows ::= RANGE|ROWS|GROUPS", + /* 468 */ "frame_bound_s ::= frame_bound", + /* 469 */ "frame_bound_s ::= UNBOUNDED PRECEDING", + /* 470 */ "frame_bound_e ::= frame_bound", + /* 471 */ "frame_bound_e ::= UNBOUNDED FOLLOWING", + /* 472 */ "frame_bound ::= expr PRECEDING|FOLLOWING", + /* 473 */ "frame_bound ::= CURRENT ROW", + /* 474 */ "frame_exclude_opt ::=", + /* 475 */ "frame_exclude_opt ::= EXCLUDE frame_exclude", + /* 476 */ "frame_exclude ::= NO OTHERS", + /* 477 */ "frame_exclude ::= CURRENT ROW", + /* 478 */ "frame_exclude ::= GROUP", + /* 479 */ "frame_exclude ::= TIES", + /* 480 */ "window_clause ::= WINDOW windowdefn_list", + /* 481 */ "filter_over ::= filter_clause over_clause", + /* 482 */ "filter_over ::= over_clause", + /* 483 */ "filter_over ::= filter_clause", + /* 484 */ "over_clause ::= OVER LP window RP", + /* 485 */ "over_clause ::= OVER nm", + /* 486 */ "filter_clause ::= FILTER LP WHERE expr RP", }; #endif /* NDEBUG */ @@ -1944,384 +1938,399 @@ static void yy_destructor( ** which appear on the RHS of the rule, but which are not used ** inside the C code. */ - case 191: /* cmd */ - case 194: /* ecmd */ - case 196: /* cmdx */ - case 243: /* select_stmt */ - case 272: /* delete_stmt */ - case 273: /* update_stmt */ - case 276: /* insert_stmt */ - case 297: /* trigger_cmd */ - case 301: /* create_vtab */ -{ -parser_safe_delete((yypminor->yy363)); + case 195: /* cmd */ + case 198: /* ecmd */ + case 200: /* cmdx */ + case 248: /* select_stmt */ + case 277: /* delete_stmt */ + case 279: /* update_stmt */ + case 282: /* insert_stmt */ + case 303: /* trigger_cmd */ + case 307: /* create_vtab */ +{ +parser_safe_delete((yypminor->yy41)); } break; - case 195: /* explain */ + case 199: /* explain */ { -parser_safe_delete((yypminor->yy91)); +parser_safe_delete((yypminor->yy499)); } break; - case 197: /* transtype */ - case 198: /* trans_opt */ + case 201: /* transtype */ + case 202: /* trans_opt */ { -parser_safe_delete((yypminor->yy84)); +parser_safe_delete((yypminor->yy512)); } break; - case 199: /* nm */ - case 206: /* table_options */ - case 209: /* columnid */ - case 212: /* id */ - case 213: /* id_opt */ - case 214: /* ids */ - case 216: /* typename */ - case 267: /* dbnm */ - case 288: /* collate */ - case 303: /* vtabarg */ - case 304: /* vtabargtoken */ - case 305: /* anylist */ + case 203: /* nm */ + case 214: /* columnid */ + case 217: /* id */ + case 218: /* id_opt */ + case 219: /* ids */ + case 221: /* typename */ + case 272: /* dbnm */ + case 294: /* collate */ + case 309: /* vtabarg */ + case 310: /* vtabargtoken */ + case 311: /* anylist */ { parser_safe_delete((yypminor->yy319)); } break; - case 200: /* savepoint_opt */ - case 202: /* ifnotexists */ - case 225: /* autoinc */ - case 229: /* gen_always */ - case 235: /* tconscomma */ - case 242: /* ifexists */ - case 280: /* not_opt */ - case 286: /* uniqueflag */ - case 298: /* database_kw_opt */ - case 300: /* kwcolumn_opt */ -{ -parser_safe_delete((yypminor->yy611)); + case 204: /* savepoint_opt */ + case 206: /* ifnotexists */ + case 230: /* autoinc */ + case 234: /* gen_always */ + case 240: /* tconscomma */ + case 247: /* ifexists */ + case 286: /* not_opt */ + case 292: /* uniqueflag */ + case 304: /* database_kw_opt */ + case 306: /* kwcolumn_opt */ +{ +parser_safe_delete((yypminor->yy225)); } break; - case 201: /* temp */ - case 249: /* distinct */ + case 205: /* temp */ + case 254: /* distinct */ { -parser_safe_delete((yypminor->yy386)); +parser_safe_delete((yypminor->yy130)); } break; - case 203: /* fullname */ + case 207: /* fullname */ { -parser_safe_delete((yypminor->yy440)); +parser_safe_delete((yypminor->yy396)); } break; - case 204: /* columnlist */ + case 208: /* columnlist */ { -parser_safe_delete((yypminor->yy42)); +parser_safe_delete((yypminor->yy390)); } break; - case 205: /* conslist_opt */ - case 234: /* conslist */ + case 209: /* conslist_opt */ + case 239: /* conslist */ { -parser_safe_delete((yypminor->yy493)); +parser_safe_delete((yypminor->yy115)); } break; - case 207: /* select */ - case 245: /* selectnowith */ + case 210: /* table_options */ { -parser_safe_delete((yypminor->yy313)); +parser_safe_delete((yypminor->yy455)); } break; - case 208: /* column */ + case 211: /* select */ + case 250: /* selectnowith */ { -parser_safe_delete((yypminor->yy147)); +parser_safe_delete((yypminor->yy297)); } break; - case 210: /* type */ - case 215: /* typetoken */ + case 212: /* table_option */ { -parser_safe_delete((yypminor->yy57)); +parser_safe_delete((yypminor->yy629)); } break; - case 211: /* carglist */ + case 213: /* column */ { -parser_safe_delete((yypminor->yy51)); +parser_safe_delete((yypminor->yy3)); } break; - case 217: /* signed */ - case 218: /* plus_num */ - case 219: /* minus_num */ - case 221: /* term */ - case 290: /* nmnum */ - case 291: /* number */ -{ -parser_safe_delete((yypminor->yy229)); + case 215: /* type */ + case 220: /* typetoken */ +{ +parser_safe_delete((yypminor->yy267)); } break; - case 220: /* ccons */ + case 216: /* carglist */ { -parser_safe_delete((yypminor->yy464)); +parser_safe_delete((yypminor->yy323)); } break; - case 222: /* expr */ - case 252: /* where_opt */ - case 254: /* having_opt */ - case 279: /* exprx */ - case 282: /* case_operand */ - case 284: /* case_else */ - case 289: /* vinto */ - case 295: /* when_clause */ - case 299: /* key_opt */ + case 222: /* signed */ + case 223: /* plus_num */ + case 224: /* minus_num */ + case 226: /* term */ + case 296: /* nmnum */ + case 297: /* number */ +{ +parser_safe_delete((yypminor->yy393)); +} + break; + case 225: /* ccons */ { -parser_safe_delete((yypminor->yy512)); +parser_safe_delete((yypminor->yy448)); } break; - case 223: /* onconf */ - case 239: /* resolvetype */ - case 240: /* orconf */ + case 227: /* expr */ + case 257: /* where_opt */ + case 259: /* having_opt */ + case 285: /* exprx */ + case 288: /* case_operand */ + case 290: /* case_else */ + case 295: /* vinto */ + case 301: /* when_clause */ + case 305: /* key_opt */ +{ +parser_safe_delete((yypminor->yy186)); +} + break; + case 228: /* onconf */ + case 244: /* resolvetype */ + case 245: /* orconf */ { -parser_safe_delete((yypminor->yy418)); +parser_safe_delete((yypminor->yy136)); } break; - case 224: /* sortorder */ + case 229: /* sortorder */ { -parser_safe_delete((yypminor->yy549)); +parser_safe_delete((yypminor->yy35)); } break; - case 226: /* idxlist_opt */ - case 237: /* idxlist */ + case 231: /* idxlist_opt */ + case 242: /* idxlist */ { -parser_safe_delete((yypminor->yy223)); +parser_safe_delete((yypminor->yy627)); } break; - case 227: /* refargs */ + case 232: /* refargs */ { -parser_safe_delete((yypminor->yy584)); +parser_safe_delete((yypminor->yy156)); } break; - case 228: /* defer_subclause */ - case 238: /* defer_subclause_opt */ + case 233: /* defer_subclause */ + case 243: /* defer_subclause_opt */ { -parser_safe_delete((yypminor->yy9)); +parser_safe_delete((yypminor->yy53)); } break; - case 230: /* tnm */ + case 235: /* tnm */ { -parser_safe_delete((yypminor->yy590)); +parser_safe_delete((yypminor->yy380)); } break; - case 231: /* refarg */ + case 236: /* refarg */ { -parser_safe_delete((yypminor->yy507)); +parser_safe_delete((yypminor->yy205)); } break; - case 232: /* refact */ + case 237: /* refact */ { -parser_safe_delete((yypminor->yy104)); +parser_safe_delete((yypminor->yy106)); } break; - case 233: /* init_deferred_pred_opt */ + case 238: /* init_deferred_pred_opt */ { -parser_safe_delete((yypminor->yy312)); +parser_safe_delete((yypminor->yy612)); } break; - case 236: /* tcons */ + case 241: /* tcons */ { -parser_safe_delete((yypminor->yy246)); +parser_safe_delete((yypminor->yy400)); } break; - case 244: /* with */ + case 249: /* with */ { -parser_safe_delete((yypminor->yy1)); +parser_safe_delete((yypminor->yy161)); } break; - case 246: /* oneselect */ + case 251: /* oneselect */ { -parser_safe_delete((yypminor->yy470)); +parser_safe_delete((yypminor->yy378)); } break; - case 247: /* multiselect_op */ + case 252: /* multiselect_op */ { -parser_safe_delete((yypminor->yy382)); +parser_safe_delete((yypminor->yy142)); } break; - case 248: /* values */ + case 253: /* values */ { -parser_safe_delete((yypminor->yy486)); +parser_safe_delete((yypminor->yy522)); } break; - case 250: /* selcollist */ - case 260: /* sclp */ + case 255: /* selcollist */ + case 265: /* sclp */ + case 278: /* returning */ { -parser_safe_delete((yypminor->yy53)); +parser_safe_delete((yypminor->yy27)); } break; - case 251: /* from */ - case 262: /* joinsrc */ + case 256: /* from */ + case 267: /* joinsrc */ { -parser_safe_delete((yypminor->yy31)); +parser_safe_delete((yypminor->yy553)); } break; - case 253: /* groupby_opt */ - case 258: /* nexprlist */ - case 259: /* exprlist */ - case 283: /* case_exprlist */ + case 258: /* groupby_opt */ + case 263: /* nexprlist */ + case 264: /* exprlist */ + case 289: /* case_exprlist */ { -parser_safe_delete((yypminor->yy71)); +parser_safe_delete((yypminor->yy615)); } break; - case 255: /* orderby_opt */ - case 270: /* sortlist */ + case 260: /* orderby_opt */ + case 275: /* sortlist */ { -parser_safe_delete((yypminor->yy403)); +parser_safe_delete((yypminor->yy226)); } break; - case 256: /* limit_opt */ + case 261: /* limit_opt */ { -parser_safe_delete((yypminor->yy4)); +parser_safe_delete((yypminor->yy360)); } break; - case 257: /* window_clause */ - case 308: /* windowdefn_list */ + case 262: /* window_clause */ + case 315: /* windowdefn_list */ { -parser_safe_delete((yypminor->yy299)); +parser_safe_delete((yypminor->yy525)); } break; - case 261: /* as */ + case 266: /* as */ { -parser_safe_delete((yypminor->yy200)); +parser_safe_delete((yypminor->yy628)); } break; - case 263: /* singlesrc */ + case 268: /* singlesrc */ { -parser_safe_delete((yypminor->yy441)); +parser_safe_delete((yypminor->yy595)); } break; - case 264: /* seltablist */ + case 269: /* seltablist */ { -parser_safe_delete((yypminor->yy451)); +parser_safe_delete((yypminor->yy107)); } break; - case 265: /* joinop */ + case 270: /* joinop */ { -parser_safe_delete((yypminor->yy221)); +parser_safe_delete((yypminor->yy449)); } break; - case 266: /* joinconstr_opt */ + case 271: /* joinconstr_opt */ { -parser_safe_delete((yypminor->yy295)); +parser_safe_delete((yypminor->yy215)); } break; - case 268: /* indexed_opt */ + case 273: /* indexed_opt */ { -parser_safe_delete((yypminor->yy592)); +parser_safe_delete((yypminor->yy300)); } break; - case 269: /* idlist */ - case 275: /* idlist_opt */ - case 302: /* vtabarglist */ + case 274: /* idlist */ + case 281: /* idlist_opt */ + case 308: /* vtabarglist */ { -parser_safe_delete((yypminor->yy575)); +parser_safe_delete((yypminor->yy173)); } break; - case 271: /* nulls */ + case 276: /* nulls */ { -parser_safe_delete((yypminor->yy579)); +parser_safe_delete((yypminor->yy315)); } break; - case 274: /* setlist */ + case 280: /* setlist */ { -parser_safe_delete((yypminor->yy201)); +parser_safe_delete((yypminor->yy621)); } break; - case 277: /* insert_cmd */ + case 283: /* insert_cmd */ { -parser_safe_delete((yypminor->yy504)); +parser_safe_delete((yypminor->yy308)); } break; - case 278: /* upsert */ + case 284: /* upsert */ { -parser_safe_delete((yypminor->yy400)); +parser_safe_delete((yypminor->yy332)); } break; - case 281: /* likeop */ + case 287: /* likeop */ { -parser_safe_delete((yypminor->yy40)); +parser_safe_delete((yypminor->yy274)); } break; - case 285: /* filter_over */ + case 291: /* filter_over */ { -parser_safe_delete((yypminor->yy247)); +parser_safe_delete((yypminor->yy181)); } break; - case 287: /* idxlist_single */ + case 293: /* idxlist_single */ { -parser_safe_delete((yypminor->yy268)); +parser_safe_delete((yypminor->yy110)); } break; - case 292: /* trigger_time */ + case 298: /* trigger_time */ { -parser_safe_delete((yypminor->yy532)); +parser_safe_delete((yypminor->yy120)); } break; - case 293: /* trigger_event */ + case 299: /* trigger_event */ { -parser_safe_delete((yypminor->yy151)); +parser_safe_delete((yypminor->yy259)); } break; - case 294: /* foreach_clause */ + case 300: /* foreach_clause */ { -parser_safe_delete((yypminor->yy83)); +parser_safe_delete((yypminor->yy456)); } break; - case 296: /* trigger_cmd_list */ + case 302: /* trigger_cmd_list */ { -parser_safe_delete((yypminor->yy110)); +parser_safe_delete((yypminor->yy240)); } break; - case 306: /* wqlist */ + case 312: /* wqlist */ { -parser_safe_delete((yypminor->yy593)); +parser_safe_delete((yypminor->yy164)); } break; - case 307: /* wqcte */ + case 313: /* wqas */ { -parser_safe_delete((yypminor->yy446)); +parser_safe_delete((yypminor->yy21)); } break; - case 309: /* windowdefn */ + case 314: /* wqcte */ { -parser_safe_delete((yypminor->yy266)); +parser_safe_delete((yypminor->yy146)); } break; - case 310: /* window */ + case 316: /* windowdefn */ { -parser_safe_delete((yypminor->yy334)); +parser_safe_delete((yypminor->yy562)); } break; - case 311: /* frame_opt */ + case 317: /* window */ { -parser_safe_delete((yypminor->yy41)); +parser_safe_delete((yypminor->yy162)); } break; - case 312: /* range_or_rows */ + case 318: /* frame_opt */ { -parser_safe_delete((yypminor->yy419)); +parser_safe_delete((yypminor->yy149)); } break; - case 313: /* frame_bound_s */ - case 315: /* frame_bound_e */ + case 319: /* range_or_rows */ { -parser_safe_delete((yypminor->yy442)); +parser_safe_delete((yypminor->yy143)); } break; - case 316: /* frame_bound */ + case 320: /* frame_bound_s */ + case 322: /* frame_bound_e */ { -parser_safe_delete((yypminor->yy442));parser_safe_delete((yypminor->yy442));parser_safe_delete((yypminor->yy442)); +parser_safe_delete((yypminor->yy285)); } break; - case 318: /* filter_clause */ + case 323: /* frame_bound */ { -parser_safe_delete((yypminor->yy397)); +parser_safe_delete((yypminor->yy285));parser_safe_delete((yypminor->yy285));parser_safe_delete((yypminor->yy285)); } break; - case 319: /* over_clause */ + case 325: /* filter_clause */ { -parser_safe_delete((yypminor->yy248)); +parser_safe_delete((yypminor->yy39)); +} + break; + case 326: /* over_clause */ +{ +parser_safe_delete((yypminor->yy11)); } break; default: break; /* If no destructor action specified: do nothing */ @@ -2572,478 +2581,493 @@ static const struct { YYCODETYPE lhs; /* Symbol on the left-hand side of the rule */ unsigned char nrhs; /* Number of right-hand side symbols in the rule */ } yyRuleInfo[] = { - { 192, 1 }, - { 193, 2 }, - { 193, 1 }, - { 194, 1 }, - { 194, 3 }, - { 195, 0 }, - { 195, 1 }, - { 195, 3 }, { 196, 1 }, - { 191, 3 }, - { 198, 0 }, - { 198, 1 }, - { 198, 2 }, - { 198, 2 }, - { 197, 0 }, - { 197, 1 }, + { 197, 2 }, { 197, 1 }, - { 197, 1 }, - { 191, 2 }, - { 191, 2 }, - { 191, 2 }, + { 198, 1 }, + { 198, 3 }, + { 199, 0 }, + { 199, 1 }, + { 199, 3 }, { 200, 1 }, - { 200, 0 }, - { 191, 2 }, - { 191, 3 }, - { 191, 5 }, - { 191, 2 }, - { 191, 3 }, - { 191, 5 }, - { 191, 10 }, - { 191, 7 }, - { 191, 7 }, - { 191, 5 }, - { 206, 0 }, - { 206, 2 }, - { 206, 2 }, + { 195, 3 }, { 202, 0 }, - { 202, 3 }, - { 201, 1 }, + { 202, 1 }, + { 202, 2 }, + { 202, 2 }, { 201, 0 }, - { 204, 3 }, + { 201, 1 }, + { 201, 1 }, + { 201, 1 }, + { 195, 2 }, + { 195, 2 }, + { 195, 2 }, { 204, 1 }, - { 208, 3 }, - { 209, 1 }, - { 209, 1 }, - { 212, 1 }, - { 213, 1 }, - { 213, 0 }, - { 214, 1 }, - { 199, 1 }, - { 199, 1 }, - { 199, 1 }, + { 204, 0 }, + { 195, 2 }, + { 195, 3 }, + { 195, 5 }, + { 195, 2 }, + { 195, 3 }, + { 195, 5 }, + { 195, 10 }, + { 195, 7 }, + { 195, 7 }, + { 195, 5 }, { 210, 0 }, { 210, 1 }, - { 215, 1 }, - { 215, 4 }, - { 215, 6 }, - { 216, 1 }, - { 216, 2 }, - { 216, 1 }, - { 217, 1 }, + { 210, 3 }, + { 212, 2 }, + { 212, 1 }, + { 212, 2 }, + { 212, 1 }, + { 206, 0 }, + { 206, 3 }, + { 205, 1 }, + { 205, 0 }, + { 208, 3 }, + { 208, 1 }, + { 213, 3 }, + { 214, 1 }, + { 214, 1 }, { 217, 1 }, - { 211, 2 }, - { 211, 0 }, - { 220, 2 }, - { 220, 2 }, - { 220, 4 }, - { 220, 3 }, - { 220, 3 }, - { 220, 2 }, - { 220, 2 }, - { 220, 2 }, - { 220, 3 }, - { 220, 5 }, - { 220, 2 }, - { 220, 4 }, - { 220, 4 }, + { 218, 1 }, + { 218, 0 }, + { 219, 1 }, + { 203, 1 }, + { 203, 1 }, + { 203, 1 }, + { 215, 0 }, + { 215, 1 }, { 220, 1 }, - { 220, 2 }, + { 220, 4 }, { 220, 6 }, - { 220, 2 }, - { 220, 2 }, - { 220, 2 }, - { 220, 3 }, - { 221, 1 }, - { 221, 1 }, { 221, 1 }, + { 221, 2 }, { 221, 1 }, - { 230, 1 }, - { 230, 1 }, - { 229, 2 }, - { 229, 0 }, - { 225, 0 }, + { 222, 1 }, + { 222, 1 }, + { 216, 2 }, + { 216, 0 }, + { 225, 2 }, + { 225, 2 }, + { 225, 4 }, + { 225, 3 }, + { 225, 3 }, + { 225, 2 }, + { 225, 2 }, + { 225, 2 }, + { 225, 3 }, + { 225, 5 }, + { 225, 2 }, + { 225, 4 }, + { 225, 4 }, { 225, 1 }, - { 227, 0 }, - { 227, 2 }, - { 231, 2 }, - { 231, 3 }, - { 231, 3 }, - { 231, 3 }, - { 231, 2 }, - { 232, 2 }, - { 232, 2 }, - { 232, 1 }, - { 232, 1 }, - { 232, 2 }, - { 228, 3 }, - { 228, 2 }, - { 233, 0 }, - { 233, 2 }, - { 233, 2 }, - { 205, 0 }, - { 205, 2 }, - { 234, 3 }, - { 234, 1 }, + { 225, 2 }, + { 225, 6 }, + { 225, 2 }, + { 225, 2 }, + { 225, 2 }, + { 225, 3 }, + { 226, 1 }, + { 226, 1 }, + { 226, 1 }, + { 226, 1 }, { 235, 1 }, - { 235, 0 }, + { 235, 1 }, + { 234, 2 }, + { 234, 0 }, + { 230, 0 }, + { 230, 1 }, + { 232, 0 }, + { 232, 2 }, { 236, 2 }, - { 236, 7 }, - { 236, 5 }, - { 236, 5 }, - { 236, 10 }, + { 236, 3 }, + { 236, 3 }, + { 236, 3 }, { 236, 2 }, - { 236, 7 }, - { 236, 4 }, + { 237, 2 }, + { 237, 2 }, + { 237, 1 }, + { 237, 1 }, + { 237, 2 }, + { 233, 3 }, + { 233, 2 }, { 238, 0 }, - { 238, 1 }, - { 223, 0 }, - { 223, 3 }, - { 240, 0 }, - { 240, 2 }, - { 239, 1 }, + { 238, 2 }, + { 238, 2 }, + { 209, 0 }, + { 209, 2 }, + { 239, 3 }, { 239, 1 }, - { 239, 1 }, - { 191, 4 }, - { 191, 6 }, - { 191, 4 }, - { 242, 2 }, - { 242, 0 }, - { 191, 8 }, - { 191, 7 }, - { 191, 5 }, - { 191, 4 }, - { 191, 6 }, - { 191, 4 }, - { 191, 1 }, + { 240, 1 }, + { 240, 0 }, + { 241, 2 }, + { 241, 7 }, + { 241, 5 }, + { 241, 5 }, + { 241, 10 }, + { 241, 2 }, + { 241, 7 }, + { 241, 4 }, + { 243, 0 }, { 243, 1 }, - { 207, 2 }, - { 245, 1 }, - { 245, 3 }, - { 245, 1 }, - { 245, 3 }, - { 246, 9 }, - { 246, 10 }, - { 248, 4 }, - { 248, 5 }, - { 247, 1 }, + { 228, 0 }, + { 228, 3 }, + { 245, 0 }, + { 245, 2 }, + { 244, 1 }, + { 244, 1 }, + { 244, 1 }, + { 195, 4 }, + { 195, 6 }, + { 195, 4 }, { 247, 2 }, - { 247, 1 }, - { 247, 1 }, - { 249, 1 }, - { 249, 1 }, - { 249, 0 }, - { 260, 2 }, - { 260, 0 }, + { 247, 0 }, + { 195, 8 }, + { 195, 7 }, + { 195, 5 }, + { 195, 4 }, + { 195, 6 }, + { 195, 4 }, + { 195, 1 }, + { 248, 1 }, + { 211, 2 }, + { 250, 1 }, { 250, 3 }, - { 250, 2 }, - { 250, 4 }, { 250, 1 }, - { 250, 4 }, - { 261, 2 }, - { 261, 1 }, - { 261, 2 }, - { 261, 1 }, - { 261, 0 }, - { 251, 0 }, - { 251, 2 }, - { 262, 2 }, - { 262, 0 }, - { 264, 4 }, - { 264, 0 }, - { 263, 4 }, - { 263, 4 }, - { 263, 4 }, - { 263, 6 }, - { 263, 0 }, - { 263, 2 }, - { 263, 3 }, - { 263, 1 }, - { 263, 3 }, - { 263, 1 }, + { 250, 3 }, + { 251, 9 }, + { 251, 10 }, + { 253, 4 }, + { 253, 5 }, + { 252, 1 }, + { 252, 2 }, + { 252, 1 }, + { 252, 1 }, + { 254, 1 }, + { 254, 1 }, + { 254, 0 }, + { 265, 2 }, + { 265, 0 }, + { 255, 3 }, + { 255, 2 }, + { 255, 4 }, + { 255, 1 }, + { 255, 4 }, { 266, 2 }, - { 266, 4 }, + { 266, 1 }, + { 266, 2 }, + { 266, 1 }, { 266, 0 }, - { 267, 0 }, + { 256, 0 }, + { 256, 2 }, { 267, 2 }, - { 203, 2 }, - { 265, 1 }, - { 265, 1 }, - { 265, 2 }, - { 265, 3 }, - { 265, 4 }, - { 265, 1 }, + { 267, 0 }, + { 269, 4 }, + { 269, 0 }, + { 268, 4 }, + { 268, 4 }, + { 268, 4 }, + { 268, 6 }, { 268, 0 }, - { 268, 3 }, { 268, 2 }, { 268, 3 }, - { 255, 0 }, - { 255, 3 }, - { 270, 5 }, - { 270, 3 }, - { 224, 1 }, - { 224, 1 }, - { 224, 0 }, - { 271, 2 }, + { 268, 1 }, + { 268, 3 }, + { 268, 1 }, { 271, 2 }, + { 271, 4 }, { 271, 0 }, - { 253, 0 }, - { 253, 3 }, - { 253, 2 }, - { 254, 0 }, - { 254, 2 }, - { 256, 0 }, - { 256, 2 }, - { 256, 4 }, - { 256, 4 }, - { 191, 1 }, - { 272, 6 }, - { 272, 3 }, - { 272, 5 }, - { 272, 6 }, - { 272, 4 }, - { 252, 0 }, - { 252, 2 }, - { 252, 1 }, - { 191, 1 }, - { 273, 9 }, + { 272, 0 }, + { 272, 2 }, + { 207, 2 }, + { 270, 1 }, + { 270, 1 }, + { 270, 2 }, + { 270, 3 }, + { 270, 4 }, + { 270, 1 }, + { 273, 0 }, { 273, 3 }, - { 273, 5 }, - { 273, 6 }, - { 273, 4 }, - { 274, 5 }, - { 274, 7 }, - { 274, 3 }, - { 274, 5 }, - { 274, 0 }, - { 274, 2 }, - { 274, 3 }, - { 274, 1 }, - { 275, 0 }, + { 273, 2 }, + { 273, 3 }, + { 260, 0 }, + { 260, 3 }, + { 275, 5 }, { 275, 3 }, - { 269, 3 }, - { 269, 1 }, - { 269, 0 }, - { 269, 3 }, - { 269, 1 }, - { 191, 1 }, - { 276, 7 }, - { 276, 7 }, - { 276, 3 }, - { 276, 5 }, - { 276, 4 }, - { 276, 6 }, - { 277, 2 }, - { 277, 1 }, + { 229, 1 }, + { 229, 1 }, + { 229, 0 }, + { 276, 2 }, + { 276, 2 }, + { 276, 0 }, + { 258, 0 }, + { 258, 3 }, + { 258, 2 }, + { 259, 0 }, + { 259, 2 }, + { 261, 0 }, + { 261, 2 }, + { 261, 4 }, + { 261, 4 }, + { 195, 1 }, + { 277, 7 }, + { 277, 3 }, + { 277, 5 }, + { 277, 6 }, + { 277, 4 }, + { 257, 0 }, + { 257, 2 }, + { 257, 1 }, { 278, 0 }, - { 278, 11 }, - { 278, 8 }, - { 278, 4 }, - { 279, 4 }, - { 279, 6 }, - { 279, 1 }, - { 279, 3 }, - { 279, 5 }, - { 279, 3 }, - { 279, 6 }, - { 279, 1 }, - { 279, 3 }, - { 279, 1 }, + { 278, 2 }, + { 195, 1 }, + { 279, 10 }, { 279, 3 }, { 279, 5 }, - { 279, 1 }, - { 279, 3 }, { 279, 6 }, - { 279, 5 }, - { 279, 4 }, - { 279, 3 }, - { 279, 3 }, - { 279, 3 }, - { 279, 3 }, - { 279, 3 }, - { 279, 3 }, - { 279, 3 }, - { 279, 3 }, { 279, 4 }, - { 279, 6 }, - { 279, 2 }, - { 279, 3 }, - { 279, 4 }, - { 279, 2 }, - { 279, 2 }, - { 279, 2 }, - { 279, 2 }, - { 279, 6 }, - { 279, 6 }, - { 279, 3 }, - { 279, 6 }, - { 279, 5 }, - { 279, 4 }, - { 279, 5 }, - { 279, 4 }, - { 279, 6 }, - { 279, 6 }, - { 279, 5 }, - { 222, 0 }, - { 222, 1 }, + { 280, 5 }, + { 280, 7 }, + { 280, 3 }, + { 280, 5 }, { 280, 0 }, + { 280, 2 }, + { 280, 3 }, { 280, 1 }, - { 281, 1 }, - { 283, 5 }, - { 283, 4 }, - { 284, 2 }, + { 281, 0 }, + { 281, 3 }, + { 274, 3 }, + { 274, 1 }, + { 274, 0 }, + { 274, 3 }, + { 274, 1 }, + { 195, 1 }, + { 282, 8 }, + { 282, 8 }, + { 282, 3 }, + { 282, 5 }, + { 282, 4 }, + { 282, 6 }, + { 283, 2 }, + { 283, 1 }, { 284, 0 }, - { 282, 1 }, - { 282, 0 }, - { 259, 1 }, - { 259, 0 }, - { 258, 3 }, - { 258, 1 }, - { 191, 12 }, - { 191, 8 }, - { 191, 7 }, - { 191, 5 }, - { 286, 1 }, + { 284, 11 }, + { 284, 8 }, + { 284, 4 }, + { 285, 4 }, + { 285, 6 }, + { 285, 1 }, + { 285, 3 }, + { 285, 5 }, + { 285, 3 }, + { 285, 6 }, + { 285, 1 }, + { 285, 3 }, + { 285, 1 }, + { 285, 3 }, + { 285, 2 }, + { 285, 5 }, + { 285, 4 }, + { 285, 1 }, + { 285, 3 }, + { 285, 6 }, + { 285, 5 }, + { 285, 4 }, + { 285, 3 }, + { 285, 3 }, + { 285, 3 }, + { 285, 3 }, + { 285, 3 }, + { 285, 3 }, + { 285, 3 }, + { 285, 3 }, + { 285, 4 }, + { 285, 6 }, + { 285, 2 }, + { 285, 3 }, + { 285, 4 }, + { 285, 6 }, + { 285, 5 }, + { 285, 2 }, + { 285, 2 }, + { 285, 2 }, + { 285, 2 }, + { 285, 3 }, + { 285, 6 }, + { 285, 6 }, + { 285, 3 }, + { 285, 6 }, + { 285, 5 }, + { 285, 4 }, + { 285, 5 }, + { 285, 4 }, + { 285, 6 }, + { 285, 6 }, + { 285, 5 }, + { 227, 0 }, + { 227, 1 }, { 286, 0 }, - { 226, 0 }, - { 226, 3 }, - { 237, 3 }, - { 237, 1 }, - { 287, 3 }, + { 286, 1 }, { 287, 1 }, + { 289, 5 }, + { 289, 4 }, + { 290, 2 }, + { 290, 0 }, + { 288, 1 }, { 288, 0 }, - { 288, 2 }, - { 288, 2 }, - { 191, 4 }, - { 191, 6 }, - { 191, 4 }, - { 191, 2 }, - { 191, 3 }, - { 289, 2 }, - { 289, 0 }, - { 191, 3 }, - { 191, 5 }, - { 191, 6 }, - { 191, 5 }, - { 191, 6 }, - { 191, 4 }, - { 191, 2 }, - { 290, 1 }, - { 290, 1 }, - { 290, 1 }, - { 290, 1 }, - { 290, 1 }, - { 218, 2 }, - { 218, 1 }, - { 219, 2 }, - { 291, 1 }, - { 291, 1 }, - { 191, 15 }, - { 191, 12 }, - { 191, 14 }, - { 191, 10 }, - { 191, 7 }, - { 191, 5 }, - { 292, 1 }, + { 264, 1 }, + { 264, 0 }, + { 263, 3 }, + { 263, 1 }, + { 195, 12 }, + { 195, 8 }, + { 195, 7 }, + { 195, 5 }, { 292, 1 }, - { 292, 2 }, { 292, 0 }, - { 293, 1 }, - { 293, 1 }, - { 293, 1 }, + { 231, 0 }, + { 231, 3 }, + { 242, 3 }, + { 242, 1 }, { 293, 3 }, + { 293, 1 }, { 294, 0 }, - { 294, 3 }, - { 295, 0 }, + { 294, 2 }, + { 294, 2 }, + { 195, 4 }, + { 195, 6 }, + { 195, 4 }, + { 195, 2 }, + { 195, 3 }, { 295, 2 }, - { 296, 3 }, - { 296, 2 }, + { 295, 0 }, + { 195, 3 }, + { 195, 5 }, + { 195, 6 }, + { 195, 5 }, + { 195, 6 }, + { 195, 4 }, + { 195, 2 }, { 296, 1 }, + { 296, 1 }, + { 296, 1 }, + { 296, 1 }, + { 296, 1 }, + { 223, 2 }, + { 223, 1 }, + { 224, 2 }, { 297, 1 }, { 297, 1 }, - { 297, 1 }, - { 297, 1 }, - { 241, 1 }, - { 191, 4 }, - { 191, 6 }, - { 191, 4 }, - { 191, 6 }, - { 191, 3 }, - { 299, 0 }, - { 299, 2 }, + { 195, 15 }, + { 195, 12 }, + { 195, 14 }, + { 195, 10 }, + { 195, 7 }, + { 195, 5 }, { 298, 1 }, + { 298, 1 }, + { 298, 2 }, { 298, 0 }, - { 191, 1 }, - { 191, 3 }, - { 191, 2 }, - { 191, 4 }, - { 191, 2 }, - { 191, 1 }, - { 191, 3 }, - { 191, 4 }, - { 191, 2 }, - { 191, 6 }, - { 191, 6 }, - { 191, 6 }, - { 191, 5 }, - { 191, 3 }, + { 299, 1 }, + { 299, 1 }, + { 299, 1 }, + { 299, 3 }, { 300, 0 }, - { 300, 1 }, - { 191, 1 }, - { 301, 8 }, - { 301, 11 }, - { 301, 7 }, - { 301, 5 }, - { 302, 1 }, + { 300, 3 }, + { 301, 0 }, + { 301, 2 }, { 302, 3 }, - { 303, 0 }, - { 303, 2 }, - { 304, 1 }, - { 304, 3 }, + { 302, 2 }, + { 302, 1 }, + { 303, 1 }, + { 303, 1 }, + { 303, 1 }, + { 303, 1 }, + { 246, 1 }, + { 195, 4 }, + { 195, 6 }, + { 195, 4 }, + { 195, 6 }, + { 195, 3 }, { 305, 0 }, - { 305, 4 }, { 305, 2 }, - { 244, 0 }, - { 244, 2 }, - { 244, 3 }, - { 306, 1 }, - { 306, 3 }, + { 304, 1 }, + { 304, 0 }, + { 195, 1 }, + { 195, 3 }, + { 195, 2 }, + { 195, 4 }, + { 195, 2 }, + { 195, 1 }, + { 195, 3 }, + { 195, 4 }, + { 195, 2 }, + { 195, 6 }, + { 195, 6 }, + { 195, 6 }, + { 195, 6 }, + { 195, 5 }, + { 195, 3 }, + { 306, 0 }, { 306, 1 }, - { 307, 6 }, + { 195, 1 }, + { 307, 8 }, + { 307, 11 }, + { 307, 7 }, + { 307, 5 }, { 308, 1 }, { 308, 3 }, - { 309, 5 }, - { 310, 5 }, - { 310, 6 }, - { 310, 4 }, - { 310, 5 }, + { 309, 0 }, + { 309, 2 }, { 310, 1 }, - { 310, 2 }, + { 310, 3 }, { 311, 0 }, - { 311, 3 }, - { 311, 6 }, - { 312, 1 }, + { 311, 4 }, + { 311, 2 }, + { 249, 0 }, + { 249, 2 }, + { 249, 3 }, { 313, 1 }, { 313, 2 }, + { 313, 3 }, + { 312, 1 }, + { 312, 3 }, + { 312, 1 }, + { 314, 6 }, { 315, 1 }, - { 315, 2 }, - { 316, 2 }, - { 316, 2 }, - { 314, 0 }, - { 314, 2 }, - { 317, 2 }, - { 317, 2 }, - { 317, 1 }, + { 315, 3 }, + { 316, 5 }, + { 317, 5 }, + { 317, 6 }, + { 317, 4 }, + { 317, 5 }, { 317, 1 }, - { 257, 2 }, - { 285, 2 }, - { 285, 1 }, - { 285, 1 }, - { 319, 4 }, - { 319, 2 }, - { 318, 5 }, + { 317, 2 }, + { 318, 0 }, + { 318, 3 }, + { 318, 6 }, + { 319, 1 }, + { 320, 1 }, + { 320, 2 }, + { 322, 1 }, + { 322, 2 }, + { 323, 2 }, + { 323, 2 }, + { 321, 0 }, + { 321, 2 }, + { 324, 2 }, + { 324, 2 }, + { 324, 1 }, + { 324, 1 }, + { 262, 2 }, + { 291, 2 }, + { 291, 1 }, + { 291, 1 }, + { 326, 4 }, + { 326, 2 }, + { 325, 5 }, }; static void yy_accept(yyParser*); /* Forward Declaration */ @@ -3103,279 +3127,299 @@ static void yy_reduce( ** break; */ case 1: /* cmdlist ::= cmdlist ecmd */ -{parserContext->addQuery(yymsp[0].minor.yy363); DONT_INHERIT_TOKENS("cmdlist");} +{parserContext->addQuery(yymsp[0].minor.yy41); DONT_INHERIT_TOKENS("cmdlist");} break; case 2: /* cmdlist ::= ecmd */ -{parserContext->addQuery(yymsp[0].minor.yy363);} +{parserContext->addQuery(yymsp[0].minor.yy41);} break; case 3: /* ecmd ::= SEMI */ -{yygotominor.yy363 = new SqliteEmptyQuery();} +{yygotominor.yy41 = new SqliteEmptyQuery();} break; case 4: /* ecmd ::= explain cmdx SEMI */ { - yygotominor.yy363 = yymsp[-1].minor.yy363; - yygotominor.yy363->explain = yymsp[-2].minor.yy91->explain; - yygotominor.yy363->queryPlan = yymsp[-2].minor.yy91->queryPlan; - delete yymsp[-2].minor.yy91; - objectForTokens = yygotominor.yy363; + yygotominor.yy41 = yymsp[-1].minor.yy41; + yygotominor.yy41->explain = yymsp[-2].minor.yy499->explain; + yygotominor.yy41->queryPlan = yymsp[-2].minor.yy499->queryPlan; + delete yymsp[-2].minor.yy499; + objectForTokens = yygotominor.yy41; } break; case 5: /* explain ::= */ -{yygotominor.yy91 = new ParserStubExplain(false, false);} +{yygotominor.yy499 = new ParserStubExplain(false, false);} break; case 6: /* explain ::= EXPLAIN */ -{yygotominor.yy91 = new ParserStubExplain(true, false);} +{yygotominor.yy499 = new ParserStubExplain(true, false);} break; case 7: /* explain ::= EXPLAIN QUERY PLAN */ -{yygotominor.yy91 = new ParserStubExplain(true, true);} +{yygotominor.yy499 = new ParserStubExplain(true, true);} break; case 8: /* cmdx ::= cmd */ - case 389: /* trigger_cmd ::= update_stmt */ yytestcase(yyruleno==389); - case 390: /* trigger_cmd ::= insert_stmt */ yytestcase(yyruleno==390); - case 391: /* trigger_cmd ::= delete_stmt */ yytestcase(yyruleno==391); - case 392: /* trigger_cmd ::= select_stmt */ yytestcase(yyruleno==392); - case 419: /* cmd ::= create_vtab */ yytestcase(yyruleno==419); -{yygotominor.yy363 = yymsp[0].minor.yy363;} + case 400: /* trigger_cmd ::= update_stmt */ yytestcase(yyruleno==400); + case 401: /* trigger_cmd ::= insert_stmt */ yytestcase(yyruleno==401); + case 402: /* trigger_cmd ::= delete_stmt */ yytestcase(yyruleno==402); + case 403: /* trigger_cmd ::= select_stmt */ yytestcase(yyruleno==403); + case 431: /* cmd ::= create_vtab */ yytestcase(yyruleno==431); +{yygotominor.yy41 = yymsp[0].minor.yy41;} break; case 9: /* cmd ::= BEGIN transtype trans_opt */ { - yygotominor.yy363 = new SqliteBeginTrans( - yymsp[-1].minor.yy84->type, - yymsp[0].minor.yy84->transactionKw, - yymsp[0].minor.yy84->name + yygotominor.yy41 = new SqliteBeginTrans( + yymsp[-1].minor.yy512->type, + yymsp[0].minor.yy512->transactionKw, + yymsp[0].minor.yy512->name ); - delete yymsp[0].minor.yy84; - delete yymsp[-1].minor.yy84; - objectForTokens = yygotominor.yy363; + delete yymsp[0].minor.yy512; + delete yymsp[-1].minor.yy512; + objectForTokens = yygotominor.yy41; } break; case 10: /* trans_opt ::= */ case 14: /* transtype ::= */ yytestcase(yyruleno==14); -{yygotominor.yy84 = new ParserStubTransDetails();} +{yygotominor.yy512 = new ParserStubTransDetails();} break; case 11: /* trans_opt ::= TRANSACTION */ { - yygotominor.yy84 = new ParserStubTransDetails(); - yygotominor.yy84->transactionKw = true; + yygotominor.yy512 = new ParserStubTransDetails(); + yygotominor.yy512->transactionKw = true; } break; case 12: /* trans_opt ::= TRANSACTION nm */ case 13: /* trans_opt ::= TRANSACTION ID_TRANS */ yytestcase(yyruleno==13); { - yygotominor.yy84 = new ParserStubTransDetails(); - yygotominor.yy84->transactionKw = true; - yygotominor.yy84->name = *(yymsp[0].minor.yy319); + yygotominor.yy512 = new ParserStubTransDetails(); + yygotominor.yy512->transactionKw = true; + yygotominor.yy512->name = *(yymsp[0].minor.yy319); delete yymsp[0].minor.yy319; } break; case 15: /* transtype ::= DEFERRED */ { - yygotominor.yy84 = new ParserStubTransDetails(); - yygotominor.yy84->type = SqliteBeginTrans::Type::DEFERRED; + yygotominor.yy512 = new ParserStubTransDetails(); + yygotominor.yy512->type = SqliteBeginTrans::Type::DEFERRED; } break; case 16: /* transtype ::= IMMEDIATE */ { - yygotominor.yy84 = new ParserStubTransDetails(); - yygotominor.yy84->type = SqliteBeginTrans::Type::IMMEDIATE; + yygotominor.yy512 = new ParserStubTransDetails(); + yygotominor.yy512->type = SqliteBeginTrans::Type::IMMEDIATE; } break; case 17: /* transtype ::= EXCLUSIVE */ { - yygotominor.yy84 = new ParserStubTransDetails(); - yygotominor.yy84->type = SqliteBeginTrans::Type::EXCLUSIVE; + yygotominor.yy512 = new ParserStubTransDetails(); + yygotominor.yy512->type = SqliteBeginTrans::Type::EXCLUSIVE; } break; case 18: /* cmd ::= COMMIT trans_opt */ { - yygotominor.yy363 = new SqliteCommitTrans( - yymsp[0].minor.yy84->transactionKw, - yymsp[0].minor.yy84->name, + yygotominor.yy41 = new SqliteCommitTrans( + yymsp[0].minor.yy512->transactionKw, + yymsp[0].minor.yy512->name, false ); - delete yymsp[0].minor.yy84; - objectForTokens = yygotominor.yy363; + delete yymsp[0].minor.yy512; + objectForTokens = yygotominor.yy41; } break; case 19: /* cmd ::= END trans_opt */ { - yygotominor.yy363 = new SqliteCommitTrans( - yymsp[0].minor.yy84->transactionKw, - yymsp[0].minor.yy84->name, + yygotominor.yy41 = new SqliteCommitTrans( + yymsp[0].minor.yy512->transactionKw, + yymsp[0].minor.yy512->name, true ); - delete yymsp[0].minor.yy84; - objectForTokens = yygotominor.yy363; + delete yymsp[0].minor.yy512; + objectForTokens = yygotominor.yy41; } break; case 20: /* cmd ::= ROLLBACK trans_opt */ { - yygotominor.yy363 = new SqliteRollback( - yymsp[0].minor.yy84->transactionKw, - yymsp[0].minor.yy84->name + yygotominor.yy41 = new SqliteRollback( + yymsp[0].minor.yy512->transactionKw, + yymsp[0].minor.yy512->name ); - delete yymsp[0].minor.yy84; - objectForTokens = yygotominor.yy363; + delete yymsp[0].minor.yy512; + objectForTokens = yygotominor.yy41; } break; case 21: /* savepoint_opt ::= SAVEPOINT */ - case 37: /* ifnotexists ::= IF NOT EXISTS */ yytestcase(yyruleno==37); - case 90: /* gen_always ::= GENERATED ALWAYS */ yytestcase(yyruleno==90); - case 93: /* autoinc ::= AUTOINCR */ yytestcase(yyruleno==93); - case 115: /* tconscomma ::= COMMA */ yytestcase(yyruleno==115); - case 137: /* ifexists ::= IF EXISTS */ yytestcase(yyruleno==137); - case 317: /* not_opt ::= NOT */ yytestcase(yyruleno==317); - case 333: /* uniqueflag ::= UNIQUE */ yytestcase(yyruleno==333); - case 401: /* database_kw_opt ::= DATABASE */ yytestcase(yyruleno==401); - case 417: /* kwcolumn_opt ::= */ yytestcase(yyruleno==417); -{yygotominor.yy611 = new bool(true);} + case 41: /* ifnotexists ::= IF NOT EXISTS */ yytestcase(yyruleno==41); + case 94: /* gen_always ::= GENERATED ALWAYS */ yytestcase(yyruleno==94); + case 97: /* autoinc ::= AUTOINCR */ yytestcase(yyruleno==97); + case 119: /* tconscomma ::= COMMA */ yytestcase(yyruleno==119); + case 141: /* ifexists ::= IF EXISTS */ yytestcase(yyruleno==141); + case 328: /* not_opt ::= NOT */ yytestcase(yyruleno==328); + case 344: /* uniqueflag ::= UNIQUE */ yytestcase(yyruleno==344); + case 412: /* database_kw_opt ::= DATABASE */ yytestcase(yyruleno==412); + case 429: /* kwcolumn_opt ::= */ yytestcase(yyruleno==429); +{yygotominor.yy225 = new bool(true);} break; case 22: /* savepoint_opt ::= */ - case 36: /* ifnotexists ::= */ yytestcase(yyruleno==36); - case 91: /* gen_always ::= */ yytestcase(yyruleno==91); - case 92: /* autoinc ::= */ yytestcase(yyruleno==92); - case 116: /* tconscomma ::= */ yytestcase(yyruleno==116); - case 138: /* ifexists ::= */ yytestcase(yyruleno==138); - case 316: /* not_opt ::= */ yytestcase(yyruleno==316); - case 334: /* uniqueflag ::= */ yytestcase(yyruleno==334); - case 402: /* database_kw_opt ::= */ yytestcase(yyruleno==402); - case 418: /* kwcolumn_opt ::= COLUMNKW */ yytestcase(yyruleno==418); -{yygotominor.yy611 = new bool(false);} + case 40: /* ifnotexists ::= */ yytestcase(yyruleno==40); + case 95: /* gen_always ::= */ yytestcase(yyruleno==95); + case 96: /* autoinc ::= */ yytestcase(yyruleno==96); + case 120: /* tconscomma ::= */ yytestcase(yyruleno==120); + case 142: /* ifexists ::= */ yytestcase(yyruleno==142); + case 327: /* not_opt ::= */ yytestcase(yyruleno==327); + case 345: /* uniqueflag ::= */ yytestcase(yyruleno==345); + case 413: /* database_kw_opt ::= */ yytestcase(yyruleno==413); + case 430: /* kwcolumn_opt ::= COLUMNKW */ yytestcase(yyruleno==430); +{yygotominor.yy225 = new bool(false);} break; case 23: /* cmd ::= SAVEPOINT nm */ { - yygotominor.yy363 = new SqliteSavepoint(*(yymsp[0].minor.yy319)); + yygotominor.yy41 = new SqliteSavepoint(*(yymsp[0].minor.yy319)); delete yymsp[0].minor.yy319; - objectForTokens = yygotominor.yy363; + objectForTokens = yygotominor.yy41; } break; case 24: /* cmd ::= RELEASE savepoint_opt nm */ { - yygotominor.yy363 = new SqliteRelease(*(yymsp[-1].minor.yy611), *(yymsp[0].minor.yy319)); + yygotominor.yy41 = new SqliteRelease(*(yymsp[-1].minor.yy225), *(yymsp[0].minor.yy319)); delete yymsp[0].minor.yy319; - objectForTokens = yygotominor.yy363; + objectForTokens = yygotominor.yy41; } break; case 25: /* cmd ::= ROLLBACK trans_opt TO savepoint_opt nm */ case 26: /* cmd ::= SAVEPOINT ID_TRANS */ yytestcase(yyruleno==26); { - yygotominor.yy363 = new SqliteRollback( - yymsp[-3].minor.yy84->transactionKw, - *(yymsp[-1].minor.yy611), + yygotominor.yy41 = new SqliteRollback( + yymsp[-3].minor.yy512->transactionKw, + *(yymsp[-1].minor.yy225), *(yymsp[0].minor.yy319) ); - delete yymsp[-1].minor.yy611; - delete yymsp[-3].minor.yy84; - objectForTokens = yygotominor.yy363; + delete yymsp[-1].minor.yy225; + delete yymsp[-3].minor.yy512; + objectForTokens = yygotominor.yy41; } break; case 27: /* cmd ::= RELEASE savepoint_opt ID_TRANS */ case 28: /* cmd ::= ROLLBACK trans_opt TO savepoint_opt ID_TRANS */ yytestcase(yyruleno==28); -{ yy_destructor(yypParser,200,&yymsp[-1].minor); +{ yy_destructor(yypParser,204,&yymsp[-1].minor); } break; case 29: /* cmd ::= CREATE temp TABLE ifnotexists fullname LP columnlist conslist_opt RP table_options */ { - yygotominor.yy363 = new SqliteCreateTable( - *(yymsp[-6].minor.yy611), - *(yymsp[-8].minor.yy386), - yymsp[-5].minor.yy440->name1, - yymsp[-5].minor.yy440->name2, - *(yymsp[-3].minor.yy42), - *(yymsp[-2].minor.yy493), - *(yymsp[0].minor.yy319) + yygotominor.yy41 = new SqliteCreateTable( + *(yymsp[-6].minor.yy225), + *(yymsp[-8].minor.yy130), + yymsp[-5].minor.yy396->name1, + yymsp[-5].minor.yy396->name2, + *(yymsp[-3].minor.yy390), + *(yymsp[-2].minor.yy115), + *(yymsp[0].minor.yy455) ); - delete yymsp[-6].minor.yy611; - delete yymsp[-8].minor.yy386; - delete yymsp[-3].minor.yy42; - delete yymsp[-2].minor.yy493; - delete yymsp[-5].minor.yy440; - delete yymsp[0].minor.yy319; - objectForTokens = yygotominor.yy363; + delete yymsp[-6].minor.yy225; + delete yymsp[-8].minor.yy130; + delete yymsp[-3].minor.yy390; + delete yymsp[-2].minor.yy115; + delete yymsp[-5].minor.yy396; + delete yymsp[0].minor.yy455; + objectForTokens = yygotominor.yy41; } break; case 30: /* cmd ::= CREATE temp TABLE ifnotexists fullname AS select */ { - yygotominor.yy363 = new SqliteCreateTable( - *(yymsp[-3].minor.yy611), - *(yymsp[-5].minor.yy386), - yymsp[-2].minor.yy440->name1, - yymsp[-2].minor.yy440->name2, - yymsp[0].minor.yy313 + yygotominor.yy41 = new SqliteCreateTable( + *(yymsp[-3].minor.yy225), + *(yymsp[-5].minor.yy130), + yymsp[-2].minor.yy396->name1, + yymsp[-2].minor.yy396->name2, + yymsp[0].minor.yy297 ); - delete yymsp[-3].minor.yy611; - delete yymsp[-5].minor.yy386; - delete yymsp[-2].minor.yy440; - objectForTokens = yygotominor.yy363; + delete yymsp[-3].minor.yy225; + delete yymsp[-5].minor.yy130; + delete yymsp[-2].minor.yy396; + objectForTokens = yygotominor.yy41; } break; case 31: /* cmd ::= CREATE temp TABLE ifnotexists nm DOT ID_TAB_NEW */ - case 140: /* cmd ::= CREATE temp VIEW ifnotexists nm DOT ID_VIEW_NEW */ yytestcase(yyruleno==140); - case 372: /* cmd ::= CREATE temp TRIGGER ifnotexists nm DOT ID_TRIG_NEW */ yytestcase(yyruleno==372); -{ yy_destructor(yypParser,201,&yymsp[-5].minor); - yy_destructor(yypParser,199,&yymsp[-2].minor); + case 144: /* cmd ::= CREATE temp VIEW ifnotexists nm DOT ID_VIEW_NEW */ yytestcase(yyruleno==144); + case 383: /* cmd ::= CREATE temp TRIGGER ifnotexists nm DOT ID_TRIG_NEW */ yytestcase(yyruleno==383); +{ yy_destructor(yypParser,205,&yymsp[-5].minor); + yy_destructor(yypParser,203,&yymsp[-2].minor); } break; case 32: /* cmd ::= CREATE temp TABLE ifnotexists ID_DB|ID_TAB_NEW */ - case 141: /* cmd ::= CREATE temp VIEW ifnotexists ID_DB|ID_VIEW_NEW */ yytestcase(yyruleno==141); - case 373: /* cmd ::= CREATE temp TRIGGER ifnotexists ID_DB|ID_TRIG_NEW */ yytestcase(yyruleno==373); -{ yy_destructor(yypParser,201,&yymsp[-3].minor); + case 145: /* cmd ::= CREATE temp VIEW ifnotexists ID_DB|ID_VIEW_NEW */ yytestcase(yyruleno==145); + case 384: /* cmd ::= CREATE temp TRIGGER ifnotexists ID_DB|ID_TRIG_NEW */ yytestcase(yyruleno==384); +{ yy_destructor(yypParser,205,&yymsp[-3].minor); } break; case 33: /* table_options ::= */ - case 194: /* dbnm ::= */ yytestcase(yyruleno==194); - case 341: /* collate ::= */ yytestcase(yyruleno==341); - case 426: /* vtabarg ::= */ yytestcase(yyruleno==426); - case 430: /* anylist ::= */ yytestcase(yyruleno==430); -{yygotominor.yy319 = new QString();} +{yygotominor.yy455 = new ParserCreateTableOptionList();} break; - case 34: /* table_options ::= WITHOUT nm */ - case 35: /* table_options ::= WITHOUT CTX_ROWID_KW */ yytestcase(yyruleno==35); + case 34: /* table_options ::= table_option */ +{ + yygotominor.yy455 = new ParserCreateTableOptionList(); + yygotominor.yy455->append(yymsp[0].minor.yy629); + } + break; + case 35: /* table_options ::= table_options COMMA table_option */ +{ + yymsp[-2].minor.yy455->append(yymsp[0].minor.yy629); + yygotominor.yy455 = yymsp[-2].minor.yy455; + DONT_INHERIT_TOKENS("table_options"); + } + break; + case 36: /* table_option ::= WITHOUT nm */ { if (yymsp[0].minor.yy319->toLower() != "rowid") parserContext->errorAtToken(QString("Invalid table option: %1").arg(*(yymsp[0].minor.yy319))); - yygotominor.yy319 = yymsp[0].minor.yy319; + yygotominor.yy629 = new ParserStubCreateTableOption(ParserStubCreateTableOption::WITHOUT_ROWID); + delete yymsp[0].minor.yy319; } break; - case 38: /* temp ::= TEMP */ -{yygotominor.yy386 = new int( (yymsp[0].minor.yy0->value.length() > 4) ? 2 : 1 );} + case 37: /* table_option ::= nm */ + case 38: /* table_option ::= WITHOUT CTX_ROWID_KW */ yytestcase(yyruleno==38); + case 39: /* table_option ::= CTX_STRICT_KW */ yytestcase(yyruleno==39); +{ + if (yymsp[0].minor.yy319->toLower() != "strict") + parserContext->errorAtToken(QString("Invalid table option: %1").arg(*(yymsp[0].minor.yy319))); + + yygotominor.yy629 = new ParserStubCreateTableOption(ParserStubCreateTableOption::STRICT); + delete yymsp[0].minor.yy319; + } + break; + case 42: /* temp ::= TEMP */ +{yygotominor.yy130 = new int( (yymsp[0].minor.yy0->value.length() > 4) ? 2 : 1 );} break; - case 39: /* temp ::= */ - case 162: /* distinct ::= */ yytestcase(yyruleno==162); -{yygotominor.yy386 = new int(0);} + case 43: /* temp ::= */ + case 166: /* distinct ::= */ yytestcase(yyruleno==166); +{yygotominor.yy130 = new int(0);} break; - case 40: /* columnlist ::= columnlist COMMA column */ + case 44: /* columnlist ::= columnlist COMMA column */ { - yymsp[-2].minor.yy42->append(yymsp[0].minor.yy147); - yygotominor.yy42 = yymsp[-2].minor.yy42; + yymsp[-2].minor.yy390->append(yymsp[0].minor.yy3); + yygotominor.yy390 = yymsp[-2].minor.yy390; DONT_INHERIT_TOKENS("columnlist"); } break; - case 41: /* columnlist ::= column */ + case 45: /* columnlist ::= column */ { - yygotominor.yy42 = new ParserCreateTableColumnList(); - yygotominor.yy42->append(yymsp[0].minor.yy147); + yygotominor.yy390 = new ParserCreateTableColumnList(); + yygotominor.yy390->append(yymsp[0].minor.yy3); } break; - case 42: /* column ::= columnid type carglist */ + case 46: /* column ::= columnid type carglist */ { - yygotominor.yy147 = new SqliteCreateTable::Column(*(yymsp[-2].minor.yy319), yymsp[-1].minor.yy57, *(yymsp[0].minor.yy51)); + yygotominor.yy3 = new SqliteCreateTable::Column(*(yymsp[-2].minor.yy319), yymsp[-1].minor.yy267, *(yymsp[0].minor.yy323)); delete yymsp[-2].minor.yy319; - delete yymsp[0].minor.yy51; - objectForTokens = yygotominor.yy147; + delete yymsp[0].minor.yy323; + objectForTokens = yygotominor.yy3; } break; - case 43: /* columnid ::= nm */ - case 44: /* columnid ::= ID_COL_NEW */ yytestcase(yyruleno==44); - case 49: /* nm ::= id */ yytestcase(yyruleno==49); - case 57: /* typename ::= ids */ yytestcase(yyruleno==57); - case 195: /* dbnm ::= DOT nm */ yytestcase(yyruleno==195); - case 342: /* collate ::= COLLATE ids */ yytestcase(yyruleno==342); - case 343: /* collate ::= COLLATE ID_COLLATE */ yytestcase(yyruleno==343); + case 47: /* columnid ::= nm */ + case 48: /* columnid ::= ID_COL_NEW */ yytestcase(yyruleno==48); + case 53: /* nm ::= id */ yytestcase(yyruleno==53); + case 61: /* typename ::= ids */ yytestcase(yyruleno==61); + case 199: /* dbnm ::= DOT nm */ yytestcase(yyruleno==199); + case 353: /* collate ::= COLLATE ids */ yytestcase(yyruleno==353); + case 354: /* collate ::= COLLATE ID_COLLATE */ yytestcase(yyruleno==354); {yygotominor.yy319 = yymsp[0].minor.yy319;} break; - case 45: /* id ::= ID */ + case 49: /* id ::= ID */ { yygotominor.yy319 = new QString( stripObjName( @@ -3384,2006 +3428,2096 @@ static void yy_reduce( ); } break; - case 46: /* id_opt ::= id */ + case 50: /* id_opt ::= id */ { yygotominor.yy319 = yymsp[0].minor.yy319; } break; - case 47: /* id_opt ::= */ + case 51: /* id_opt ::= */ { yygotominor.yy319 = new QString(); } break; - case 48: /* ids ::= ID|STRING */ - case 51: /* nm ::= JOIN_KW */ yytestcase(yyruleno==51); + case 52: /* ids ::= ID|STRING */ + case 55: /* nm ::= JOIN_KW */ yytestcase(yyruleno==55); {yygotominor.yy319 = new QString(yymsp[0].minor.yy0->value);} break; - case 50: /* nm ::= STRING */ + case 54: /* nm ::= STRING */ {yygotominor.yy319 = new QString(stripString(yymsp[0].minor.yy0->value));} break; - case 52: /* type ::= */ -{yygotominor.yy57 = nullptr;} + case 56: /* type ::= */ +{yygotominor.yy267 = nullptr;} break; - case 53: /* type ::= typetoken */ -{yygotominor.yy57 = yymsp[0].minor.yy57;} + case 57: /* type ::= typetoken */ +{yygotominor.yy267 = yymsp[0].minor.yy267;} break; - case 54: /* typetoken ::= typename */ + case 58: /* typetoken ::= typename */ { - yygotominor.yy57 = new SqliteColumnType(*(yymsp[0].minor.yy319)); + yygotominor.yy267 = new SqliteColumnType(*(yymsp[0].minor.yy319)); delete yymsp[0].minor.yy319; - objectForTokens = yygotominor.yy57; + objectForTokens = yygotominor.yy267; } break; - case 55: /* typetoken ::= typename LP signed RP */ + case 59: /* typetoken ::= typename LP signed RP */ { - yygotominor.yy57 = new SqliteColumnType(*(yymsp[-3].minor.yy319), *(yymsp[-1].minor.yy229)); + yygotominor.yy267 = new SqliteColumnType(*(yymsp[-3].minor.yy319), *(yymsp[-1].minor.yy393)); delete yymsp[-3].minor.yy319; - delete yymsp[-1].minor.yy229; - objectForTokens = yygotominor.yy57; + delete yymsp[-1].minor.yy393; + objectForTokens = yygotominor.yy267; } break; - case 56: /* typetoken ::= typename LP signed COMMA signed RP */ + case 60: /* typetoken ::= typename LP signed COMMA signed RP */ { - yygotominor.yy57 = new SqliteColumnType(*(yymsp[-5].minor.yy319), *(yymsp[-3].minor.yy229), *(yymsp[-1].minor.yy229)); + yygotominor.yy267 = new SqliteColumnType(*(yymsp[-5].minor.yy319), *(yymsp[-3].minor.yy393), *(yymsp[-1].minor.yy393)); delete yymsp[-5].minor.yy319; - delete yymsp[-3].minor.yy229; - delete yymsp[-1].minor.yy229; - objectForTokens = yygotominor.yy57; + delete yymsp[-3].minor.yy393; + delete yymsp[-1].minor.yy393; + objectForTokens = yygotominor.yy267; } break; - case 58: /* typename ::= typename ids */ - case 59: /* typename ::= ID_COL_TYPE */ yytestcase(yyruleno==59); + case 62: /* typename ::= typename ids */ + case 63: /* typename ::= ID_COL_TYPE */ yytestcase(yyruleno==63); { yymsp[-1].minor.yy319->append(" " + *(yymsp[0].minor.yy319)); delete yymsp[0].minor.yy319; yygotominor.yy319 = yymsp[-1].minor.yy319; } break; - case 60: /* signed ::= plus_num */ - case 61: /* signed ::= minus_num */ yytestcase(yyruleno==61); - case 358: /* nmnum ::= plus_num */ yytestcase(yyruleno==358); - case 363: /* plus_num ::= PLUS number */ yytestcase(yyruleno==363); - case 364: /* plus_num ::= number */ yytestcase(yyruleno==364); -{yygotominor.yy229 = yymsp[0].minor.yy229;} + case 64: /* signed ::= plus_num */ + case 65: /* signed ::= minus_num */ yytestcase(yyruleno==65); + case 369: /* nmnum ::= plus_num */ yytestcase(yyruleno==369); + case 374: /* plus_num ::= PLUS number */ yytestcase(yyruleno==374); + case 375: /* plus_num ::= number */ yytestcase(yyruleno==375); +{yygotominor.yy393 = yymsp[0].minor.yy393;} break; - case 62: /* carglist ::= carglist ccons */ + case 66: /* carglist ::= carglist ccons */ { - yymsp[-1].minor.yy51->append(yymsp[0].minor.yy464); - yygotominor.yy51 = yymsp[-1].minor.yy51; + yymsp[-1].minor.yy323->append(yymsp[0].minor.yy448); + yygotominor.yy323 = yymsp[-1].minor.yy323; DONT_INHERIT_TOKENS("carglist"); } break; - case 63: /* carglist ::= */ -{yygotominor.yy51 = new ParserCreateTableColumnConstraintList();} + case 67: /* carglist ::= */ +{yygotominor.yy323 = new ParserCreateTableColumnConstraintList();} break; - case 64: /* ccons ::= CONSTRAINT nm */ + case 68: /* ccons ::= CONSTRAINT nm */ { - yygotominor.yy464 = new SqliteCreateTable::Column::Constraint(); - yygotominor.yy464->initDefNameOnly(*(yymsp[0].minor.yy319)); + yygotominor.yy448 = new SqliteCreateTable::Column::Constraint(); + yygotominor.yy448->initDefNameOnly(*(yymsp[0].minor.yy319)); delete yymsp[0].minor.yy319; - objectForTokens = yygotominor.yy464; + objectForTokens = yygotominor.yy448; } break; - case 65: /* ccons ::= DEFAULT term */ + case 69: /* ccons ::= DEFAULT term */ { - yygotominor.yy464 = new SqliteCreateTable::Column::Constraint(); - yygotominor.yy464->initDefTerm(*(yymsp[0].minor.yy229)); - delete yymsp[0].minor.yy229; - objectForTokens = yygotominor.yy464; + yygotominor.yy448 = new SqliteCreateTable::Column::Constraint(); + yygotominor.yy448->initDefTerm(*(yymsp[0].minor.yy393)); + delete yymsp[0].minor.yy393; + objectForTokens = yygotominor.yy448; } break; - case 66: /* ccons ::= DEFAULT LP expr RP */ + case 70: /* ccons ::= DEFAULT LP expr RP */ { - yygotominor.yy464 = new SqliteCreateTable::Column::Constraint(); - yygotominor.yy464->initDefExpr(yymsp[-1].minor.yy512); - objectForTokens = yygotominor.yy464; + yygotominor.yy448 = new SqliteCreateTable::Column::Constraint(); + yygotominor.yy448->initDefExpr(yymsp[-1].minor.yy186); + objectForTokens = yygotominor.yy448; } break; - case 67: /* ccons ::= DEFAULT PLUS term */ + case 71: /* ccons ::= DEFAULT PLUS term */ { - yygotominor.yy464 = new SqliteCreateTable::Column::Constraint(); - yygotominor.yy464->initDefTerm(*(yymsp[0].minor.yy229), false); - delete yymsp[0].minor.yy229; - objectForTokens = yygotominor.yy464; + yygotominor.yy448 = new SqliteCreateTable::Column::Constraint(); + yygotominor.yy448->initDefTerm(*(yymsp[0].minor.yy393), false); + delete yymsp[0].minor.yy393; + objectForTokens = yygotominor.yy448; } break; - case 68: /* ccons ::= DEFAULT MINUS term */ + case 72: /* ccons ::= DEFAULT MINUS term */ { - yygotominor.yy464 = new SqliteCreateTable::Column::Constraint(); - yygotominor.yy464->initDefTerm(*(yymsp[0].minor.yy229), true); - delete yymsp[0].minor.yy229; - objectForTokens = yygotominor.yy464; + yygotominor.yy448 = new SqliteCreateTable::Column::Constraint(); + yygotominor.yy448->initDefTerm(*(yymsp[0].minor.yy393), true); + delete yymsp[0].minor.yy393; + objectForTokens = yygotominor.yy448; } break; - case 69: /* ccons ::= DEFAULT id */ + case 73: /* ccons ::= DEFAULT id */ { - yygotominor.yy464 = new SqliteCreateTable::Column::Constraint(); - yygotominor.yy464->initDefId(*(yymsp[0].minor.yy319)); + yygotominor.yy448 = new SqliteCreateTable::Column::Constraint(); + yygotominor.yy448->initDefId(*(yymsp[0].minor.yy319)); delete yymsp[0].minor.yy319; - objectForTokens = yygotominor.yy464; + objectForTokens = yygotominor.yy448; } break; - case 70: /* ccons ::= DEFAULT CTIME_KW */ + case 74: /* ccons ::= DEFAULT CTIME_KW */ { - yygotominor.yy464 = new SqliteCreateTable::Column::Constraint(); - yygotominor.yy464->initDefCTime(yymsp[0].minor.yy0->value); - objectForTokens = yygotominor.yy464; + yygotominor.yy448 = new SqliteCreateTable::Column::Constraint(); + yygotominor.yy448->initDefCTime(yymsp[0].minor.yy0->value); + objectForTokens = yygotominor.yy448; } break; - case 71: /* ccons ::= NULL onconf */ + case 75: /* ccons ::= NULL onconf */ { - yygotominor.yy464 = new SqliteCreateTable::Column::Constraint(); - yygotominor.yy464->initNull(*(yymsp[0].minor.yy418)); - delete yymsp[0].minor.yy418; - objectForTokens = yygotominor.yy464; + yygotominor.yy448 = new SqliteCreateTable::Column::Constraint(); + yygotominor.yy448->initNull(*(yymsp[0].minor.yy136)); + delete yymsp[0].minor.yy136; + objectForTokens = yygotominor.yy448; } break; - case 72: /* ccons ::= NOT NULL onconf */ + case 76: /* ccons ::= NOT NULL onconf */ { - yygotominor.yy464 = new SqliteCreateTable::Column::Constraint(); - yygotominor.yy464->initNotNull(*(yymsp[0].minor.yy418)); - delete yymsp[0].minor.yy418; - objectForTokens = yygotominor.yy464; + yygotominor.yy448 = new SqliteCreateTable::Column::Constraint(); + yygotominor.yy448->initNotNull(*(yymsp[0].minor.yy136)); + delete yymsp[0].minor.yy136; + objectForTokens = yygotominor.yy448; } break; - case 73: /* ccons ::= PRIMARY KEY sortorder onconf autoinc */ + case 77: /* ccons ::= PRIMARY KEY sortorder onconf autoinc */ { - yygotominor.yy464 = new SqliteCreateTable::Column::Constraint(); - yygotominor.yy464->initPk(*(yymsp[-2].minor.yy549), *(yymsp[-1].minor.yy418), *(yymsp[0].minor.yy611)); - delete yymsp[-2].minor.yy549; - delete yymsp[0].minor.yy611; - delete yymsp[-1].minor.yy418; - objectForTokens = yygotominor.yy464; + yygotominor.yy448 = new SqliteCreateTable::Column::Constraint(); + yygotominor.yy448->initPk(*(yymsp[-2].minor.yy35), *(yymsp[-1].minor.yy136), *(yymsp[0].minor.yy225)); + delete yymsp[-2].minor.yy35; + delete yymsp[0].minor.yy225; + delete yymsp[-1].minor.yy136; + objectForTokens = yygotominor.yy448; } break; - case 74: /* ccons ::= UNIQUE onconf */ + case 78: /* ccons ::= UNIQUE onconf */ { - yygotominor.yy464 = new SqliteCreateTable::Column::Constraint(); - yygotominor.yy464->initUnique(*(yymsp[0].minor.yy418)); - delete yymsp[0].minor.yy418; - objectForTokens = yygotominor.yy464; + yygotominor.yy448 = new SqliteCreateTable::Column::Constraint(); + yygotominor.yy448->initUnique(*(yymsp[0].minor.yy136)); + delete yymsp[0].minor.yy136; + objectForTokens = yygotominor.yy448; } break; - case 75: /* ccons ::= CHECK LP expr RP */ + case 79: /* ccons ::= CHECK LP expr RP */ { - yygotominor.yy464 = new SqliteCreateTable::Column::Constraint(); - yygotominor.yy464->initCheck(yymsp[-1].minor.yy512); - objectForTokens = yygotominor.yy464; + yygotominor.yy448 = new SqliteCreateTable::Column::Constraint(); + yygotominor.yy448->initCheck(yymsp[-1].minor.yy186); + objectForTokens = yygotominor.yy448; } break; - case 76: /* ccons ::= REFERENCES nm idxlist_opt refargs */ + case 80: /* ccons ::= REFERENCES nm idxlist_opt refargs */ { - yygotominor.yy464 = new SqliteCreateTable::Column::Constraint(); - yygotominor.yy464->initFk(*(yymsp[-2].minor.yy319), *(yymsp[-1].minor.yy223), *(yymsp[0].minor.yy584)); + yygotominor.yy448 = new SqliteCreateTable::Column::Constraint(); + yygotominor.yy448->initFk(*(yymsp[-2].minor.yy319), *(yymsp[-1].minor.yy627), *(yymsp[0].minor.yy156)); delete yymsp[-2].minor.yy319; - delete yymsp[0].minor.yy584; - delete yymsp[-1].minor.yy223; - objectForTokens = yygotominor.yy464; + delete yymsp[0].minor.yy156; + delete yymsp[-1].minor.yy627; + objectForTokens = yygotominor.yy448; } break; - case 77: /* ccons ::= defer_subclause */ + case 81: /* ccons ::= defer_subclause */ { - yygotominor.yy464 = new SqliteCreateTable::Column::Constraint(); - yygotominor.yy464->initDefer(yymsp[0].minor.yy9->initially, yymsp[0].minor.yy9->deferrable); - delete yymsp[0].minor.yy9; - objectForTokens = yygotominor.yy464; + yygotominor.yy448 = new SqliteCreateTable::Column::Constraint(); + yygotominor.yy448->initDefer(yymsp[0].minor.yy53->initially, yymsp[0].minor.yy53->deferrable); + delete yymsp[0].minor.yy53; + objectForTokens = yygotominor.yy448; } break; - case 78: /* ccons ::= COLLATE ids */ + case 82: /* ccons ::= COLLATE ids */ { - yygotominor.yy464 = new SqliteCreateTable::Column::Constraint(); - yygotominor.yy464->initColl(*(yymsp[0].minor.yy319)); + yygotominor.yy448 = new SqliteCreateTable::Column::Constraint(); + yygotominor.yy448->initColl(*(yymsp[0].minor.yy319)); delete yymsp[0].minor.yy319; - objectForTokens = yygotominor.yy464; + objectForTokens = yygotominor.yy448; } break; - case 79: /* ccons ::= gen_always AS LP expr RP id_opt */ - case 80: /* ccons ::= CONSTRAINT ID_CONSTR */ yytestcase(yyruleno==80); - case 81: /* ccons ::= COLLATE ID_COLLATE */ yytestcase(yyruleno==81); - case 82: /* ccons ::= REFERENCES ID_TAB */ yytestcase(yyruleno==82); + case 83: /* ccons ::= gen_always AS LP expr RP id_opt */ + case 84: /* ccons ::= CONSTRAINT ID_CONSTR */ yytestcase(yyruleno==84); + case 85: /* ccons ::= COLLATE ID_COLLATE */ yytestcase(yyruleno==85); + case 86: /* ccons ::= REFERENCES ID_TAB */ yytestcase(yyruleno==86); { if (!yymsp[0].minor.yy319->isNull() && yymsp[0].minor.yy319->toLower() != "stored" && yymsp[0].minor.yy319->toLower() != "virtual") parserContext->errorAtToken(QString("Invalid generated column type: %1").arg(*(yymsp[0].minor.yy319))); - yygotominor.yy464 = new SqliteCreateTable::Column::Constraint(); - yygotominor.yy464->initGeneratedAs(yymsp[-2].minor.yy512, *(yymsp[-5].minor.yy611), *(yymsp[0].minor.yy319)); - delete yymsp[-5].minor.yy611; + yygotominor.yy448 = new SqliteCreateTable::Column::Constraint(); + yygotominor.yy448->initGeneratedAs(yymsp[-2].minor.yy186, *(yymsp[-5].minor.yy225), *(yymsp[0].minor.yy319)); + delete yymsp[-5].minor.yy225; delete yymsp[0].minor.yy319; - objectForTokens = yygotominor.yy464; + objectForTokens = yygotominor.yy448; } break; - case 83: /* ccons ::= CHECK LP RP */ + case 87: /* ccons ::= CHECK LP RP */ { - yygotominor.yy464 = new SqliteCreateTable::Column::Constraint(); - yygotominor.yy464->initCheck(); - objectForTokens = yygotominor.yy464; + yygotominor.yy448 = new SqliteCreateTable::Column::Constraint(); + yygotominor.yy448->initCheck(); + objectForTokens = yygotominor.yy448; parserContext->minorErrorAfterLastToken("Syntax error"); } break; - case 84: /* term ::= NULL */ -{yygotominor.yy229 = new QVariant();} + case 88: /* term ::= NULL */ +{yygotominor.yy393 = new QVariant();} break; - case 85: /* term ::= INTEGER */ - case 366: /* number ::= INTEGER */ yytestcase(yyruleno==366); -{yygotominor.yy229 = parserContext->handleNumberToken(yymsp[0].minor.yy0->value);} + case 89: /* term ::= INTEGER */ + case 377: /* number ::= INTEGER */ yytestcase(yyruleno==377); +{yygotominor.yy393 = parserContext->handleNumberToken(yymsp[0].minor.yy0->value);} break; - case 86: /* term ::= FLOAT */ - case 367: /* number ::= FLOAT */ yytestcase(yyruleno==367); -{yygotominor.yy229 = new QVariant(QVariant(yymsp[0].minor.yy0->value).toDouble());} + case 90: /* term ::= FLOAT */ + case 378: /* number ::= FLOAT */ yytestcase(yyruleno==378); +{yygotominor.yy393 = new QVariant(QVariant(yymsp[0].minor.yy0->value).toDouble());} break; - case 87: /* term ::= STRING|BLOB */ -{yygotominor.yy229 = new QVariant(stripString(yymsp[0].minor.yy0->value));} + case 91: /* term ::= STRING|BLOB */ +{ + if (yymsp[0].minor.yy0->value.length() >= 3 && yymsp[0].minor.yy0->value.startsWith("x'", Qt::CaseInsensitive)) + yygotominor.yy393 = new QVariant(blobFromLiteral(yymsp[0].minor.yy0->value)); + else + yygotominor.yy393 = new QVariant(stripString(yymsp[0].minor.yy0->value)); + } break; - case 88: /* tnm ::= term */ + case 92: /* tnm ::= term */ { - yygotominor.yy590 = new ParserTermOrLiteral(*(yymsp[0].minor.yy229)); - delete yymsp[0].minor.yy229; + yygotominor.yy380 = new ParserTermOrLiteral(*(yymsp[0].minor.yy393)); + delete yymsp[0].minor.yy393; } break; - case 89: /* tnm ::= nm */ + case 93: /* tnm ::= nm */ { - yygotominor.yy590 = new ParserTermOrLiteral(*(yymsp[0].minor.yy319)); + yygotominor.yy380 = new ParserTermOrLiteral(*(yymsp[0].minor.yy319)); delete yymsp[0].minor.yy319; } break; - case 94: /* refargs ::= */ -{yygotominor.yy584 = new ParserFkConditionList();} + case 98: /* refargs ::= */ +{yygotominor.yy156 = new ParserFkConditionList();} break; - case 95: /* refargs ::= refargs refarg */ + case 99: /* refargs ::= refargs refarg */ { - yymsp[-1].minor.yy584->append(yymsp[0].minor.yy507); - yygotominor.yy584 = yymsp[-1].minor.yy584; + yymsp[-1].minor.yy156->append(yymsp[0].minor.yy205); + yygotominor.yy156 = yymsp[-1].minor.yy156; DONT_INHERIT_TOKENS("refargs"); } break; - case 96: /* refarg ::= MATCH nm */ + case 100: /* refarg ::= MATCH nm */ { - yygotominor.yy507 = new SqliteForeignKey::Condition(*(yymsp[0].minor.yy319)); + yygotominor.yy205 = new SqliteForeignKey::Condition(*(yymsp[0].minor.yy319)); delete yymsp[0].minor.yy319; } break; - case 97: /* refarg ::= ON INSERT refact */ -{yygotominor.yy507 = new SqliteForeignKey::Condition(SqliteForeignKey::Condition::INSERT, *(yymsp[0].minor.yy104)); delete yymsp[0].minor.yy104;} + case 101: /* refarg ::= ON INSERT refact */ +{yygotominor.yy205 = new SqliteForeignKey::Condition(SqliteForeignKey::Condition::INSERT, *(yymsp[0].minor.yy106)); delete yymsp[0].minor.yy106;} break; - case 98: /* refarg ::= ON DELETE refact */ -{yygotominor.yy507 = new SqliteForeignKey::Condition(SqliteForeignKey::Condition::DELETE, *(yymsp[0].minor.yy104)); delete yymsp[0].minor.yy104;} + case 102: /* refarg ::= ON DELETE refact */ +{yygotominor.yy205 = new SqliteForeignKey::Condition(SqliteForeignKey::Condition::DELETE, *(yymsp[0].minor.yy106)); delete yymsp[0].minor.yy106;} break; - case 99: /* refarg ::= ON UPDATE refact */ - case 100: /* refarg ::= MATCH ID_FK_MATCH */ yytestcase(yyruleno==100); -{yygotominor.yy507 = new SqliteForeignKey::Condition(SqliteForeignKey::Condition::UPDATE, *(yymsp[0].minor.yy104)); delete yymsp[0].minor.yy104;} + case 103: /* refarg ::= ON UPDATE refact */ + case 104: /* refarg ::= MATCH ID_FK_MATCH */ yytestcase(yyruleno==104); +{yygotominor.yy205 = new SqliteForeignKey::Condition(SqliteForeignKey::Condition::UPDATE, *(yymsp[0].minor.yy106)); delete yymsp[0].minor.yy106;} break; - case 101: /* refact ::= SET NULL */ -{yygotominor.yy104 = new SqliteForeignKey::Condition::Reaction(SqliteForeignKey::Condition::SET_NULL);} + case 105: /* refact ::= SET NULL */ +{yygotominor.yy106 = new SqliteForeignKey::Condition::Reaction(SqliteForeignKey::Condition::SET_NULL);} break; - case 102: /* refact ::= SET DEFAULT */ -{yygotominor.yy104 = new SqliteForeignKey::Condition::Reaction(SqliteForeignKey::Condition::SET_DEFAULT);} + case 106: /* refact ::= SET DEFAULT */ +{yygotominor.yy106 = new SqliteForeignKey::Condition::Reaction(SqliteForeignKey::Condition::SET_DEFAULT);} break; - case 103: /* refact ::= CASCADE */ -{yygotominor.yy104 = new SqliteForeignKey::Condition::Reaction(SqliteForeignKey::Condition::CASCADE);} + case 107: /* refact ::= CASCADE */ +{yygotominor.yy106 = new SqliteForeignKey::Condition::Reaction(SqliteForeignKey::Condition::CASCADE);} break; - case 104: /* refact ::= RESTRICT */ -{yygotominor.yy104 = new SqliteForeignKey::Condition::Reaction(SqliteForeignKey::Condition::RESTRICT);} + case 108: /* refact ::= RESTRICT */ +{yygotominor.yy106 = new SqliteForeignKey::Condition::Reaction(SqliteForeignKey::Condition::RESTRICT);} break; - case 105: /* refact ::= NO ACTION */ -{yygotominor.yy104 = new SqliteForeignKey::Condition::Reaction(SqliteForeignKey::Condition::NO_ACTION);} + case 109: /* refact ::= NO ACTION */ +{yygotominor.yy106 = new SqliteForeignKey::Condition::Reaction(SqliteForeignKey::Condition::NO_ACTION);} break; - case 106: /* defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */ + case 110: /* defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */ { - yygotominor.yy9 = new ParserDeferSubClause(SqliteDeferrable::NOT_DEFERRABLE, *(yymsp[0].minor.yy312)); - delete yymsp[0].minor.yy312; + yygotominor.yy53 = new ParserDeferSubClause(SqliteDeferrable::NOT_DEFERRABLE, *(yymsp[0].minor.yy612)); + delete yymsp[0].minor.yy612; } break; - case 107: /* defer_subclause ::= DEFERRABLE init_deferred_pred_opt */ + case 111: /* defer_subclause ::= DEFERRABLE init_deferred_pred_opt */ { - yygotominor.yy9 = new ParserDeferSubClause(SqliteDeferrable::DEFERRABLE, *(yymsp[0].minor.yy312)); - delete yymsp[0].minor.yy312; + yygotominor.yy53 = new ParserDeferSubClause(SqliteDeferrable::DEFERRABLE, *(yymsp[0].minor.yy612)); + delete yymsp[0].minor.yy612; } break; - case 108: /* init_deferred_pred_opt ::= */ -{yygotominor.yy312 = new SqliteInitially(SqliteInitially::null);} + case 112: /* init_deferred_pred_opt ::= */ +{yygotominor.yy612 = new SqliteInitially(SqliteInitially::null);} break; - case 109: /* init_deferred_pred_opt ::= INITIALLY DEFERRED */ -{yygotominor.yy312 = new SqliteInitially(SqliteInitially::DEFERRED);} + case 113: /* init_deferred_pred_opt ::= INITIALLY DEFERRED */ +{yygotominor.yy612 = new SqliteInitially(SqliteInitially::DEFERRED);} break; - case 110: /* init_deferred_pred_opt ::= INITIALLY IMMEDIATE */ -{yygotominor.yy312 = new SqliteInitially(SqliteInitially::IMMEDIATE);} + case 114: /* init_deferred_pred_opt ::= INITIALLY IMMEDIATE */ +{yygotominor.yy612 = new SqliteInitially(SqliteInitially::IMMEDIATE);} break; - case 111: /* conslist_opt ::= */ -{yygotominor.yy493 = new ParserCreateTableConstraintList();} + case 115: /* conslist_opt ::= */ +{yygotominor.yy115 = new ParserCreateTableConstraintList();} break; - case 112: /* conslist_opt ::= COMMA conslist */ -{yygotominor.yy493 = yymsp[0].minor.yy493;} + case 116: /* conslist_opt ::= COMMA conslist */ +{yygotominor.yy115 = yymsp[0].minor.yy115;} break; - case 113: /* conslist ::= conslist tconscomma tcons */ + case 117: /* conslist ::= conslist tconscomma tcons */ { - yymsp[0].minor.yy246->afterComma = *(yymsp[-1].minor.yy611); - yymsp[-2].minor.yy493->append(yymsp[0].minor.yy246); - yygotominor.yy493 = yymsp[-2].minor.yy493; - delete yymsp[-1].minor.yy611; + yymsp[0].minor.yy400->afterComma = *(yymsp[-1].minor.yy225); + yymsp[-2].minor.yy115->append(yymsp[0].minor.yy400); + yygotominor.yy115 = yymsp[-2].minor.yy115; + delete yymsp[-1].minor.yy225; DONT_INHERIT_TOKENS("conslist"); } break; - case 114: /* conslist ::= tcons */ + case 118: /* conslist ::= tcons */ { - yygotominor.yy493 = new ParserCreateTableConstraintList(); - yygotominor.yy493->append(yymsp[0].minor.yy246); + yygotominor.yy115 = new ParserCreateTableConstraintList(); + yygotominor.yy115->append(yymsp[0].minor.yy400); } break; - case 117: /* tcons ::= CONSTRAINT nm */ + case 121: /* tcons ::= CONSTRAINT nm */ { - yygotominor.yy246 = new SqliteCreateTable::Constraint(); - yygotominor.yy246->initNameOnly(*(yymsp[0].minor.yy319)); + yygotominor.yy400 = new SqliteCreateTable::Constraint(); + yygotominor.yy400->initNameOnly(*(yymsp[0].minor.yy319)); delete yymsp[0].minor.yy319; - objectForTokens = yygotominor.yy246; + objectForTokens = yygotominor.yy400; } break; - case 118: /* tcons ::= PRIMARY KEY LP idxlist autoinc RP onconf */ + case 122: /* tcons ::= PRIMARY KEY LP idxlist autoinc RP onconf */ { - yygotominor.yy246 = new SqliteCreateTable::Constraint(); - yygotominor.yy246->initPk(*(yymsp[-3].minor.yy223), *(yymsp[-2].minor.yy611), *(yymsp[0].minor.yy418)); - delete yymsp[-2].minor.yy611; - delete yymsp[0].minor.yy418; - delete yymsp[-3].minor.yy223; - objectForTokens = yygotominor.yy246; + yygotominor.yy400 = new SqliteCreateTable::Constraint(); + yygotominor.yy400->initPk(*(yymsp[-3].minor.yy627), *(yymsp[-2].minor.yy225), *(yymsp[0].minor.yy136)); + delete yymsp[-2].minor.yy225; + delete yymsp[0].minor.yy136; + delete yymsp[-3].minor.yy627; + objectForTokens = yygotominor.yy400; } break; - case 119: /* tcons ::= UNIQUE LP idxlist RP onconf */ + case 123: /* tcons ::= UNIQUE LP idxlist RP onconf */ { - yygotominor.yy246 = new SqliteCreateTable::Constraint(); - yygotominor.yy246->initUnique(*(yymsp[-2].minor.yy223), *(yymsp[0].minor.yy418)); - delete yymsp[0].minor.yy418; - delete yymsp[-2].minor.yy223; - objectForTokens = yygotominor.yy246; + yygotominor.yy400 = new SqliteCreateTable::Constraint(); + yygotominor.yy400->initUnique(*(yymsp[-2].minor.yy627), *(yymsp[0].minor.yy136)); + delete yymsp[0].minor.yy136; + delete yymsp[-2].minor.yy627; + objectForTokens = yygotominor.yy400; } break; - case 120: /* tcons ::= CHECK LP expr RP onconf */ + case 124: /* tcons ::= CHECK LP expr RP onconf */ { - yygotominor.yy246 = new SqliteCreateTable::Constraint(); - yygotominor.yy246->initCheck(yymsp[-2].minor.yy512, *(yymsp[0].minor.yy418)); - objectForTokens = yygotominor.yy246; + yygotominor.yy400 = new SqliteCreateTable::Constraint(); + yygotominor.yy400->initCheck(yymsp[-2].minor.yy186, *(yymsp[0].minor.yy136)); + objectForTokens = yygotominor.yy400; } break; - case 121: /* tcons ::= FOREIGN KEY LP idxlist RP REFERENCES nm idxlist_opt refargs defer_subclause_opt */ - case 122: /* tcons ::= CONSTRAINT ID_CONSTR */ yytestcase(yyruleno==122); - case 123: /* tcons ::= FOREIGN KEY LP idxlist RP REFERENCES ID_TAB */ yytestcase(yyruleno==123); + case 125: /* tcons ::= FOREIGN KEY LP idxlist RP REFERENCES nm idxlist_opt refargs defer_subclause_opt */ + case 126: /* tcons ::= CONSTRAINT ID_CONSTR */ yytestcase(yyruleno==126); + case 127: /* tcons ::= FOREIGN KEY LP idxlist RP REFERENCES ID_TAB */ yytestcase(yyruleno==127); { - yygotominor.yy246 = new SqliteCreateTable::Constraint(); - yygotominor.yy246->initFk( - *(yymsp[-6].minor.yy223), + yygotominor.yy400 = new SqliteCreateTable::Constraint(); + yygotominor.yy400->initFk( + *(yymsp[-6].minor.yy627), *(yymsp[-3].minor.yy319), - *(yymsp[-2].minor.yy223), - *(yymsp[-1].minor.yy584), - yymsp[0].minor.yy9->initially, - yymsp[0].minor.yy9->deferrable + *(yymsp[-2].minor.yy627), + *(yymsp[-1].minor.yy156), + yymsp[0].minor.yy53->initially, + yymsp[0].minor.yy53->deferrable ); delete yymsp[-3].minor.yy319; - delete yymsp[-1].minor.yy584; - delete yymsp[0].minor.yy9; - delete yymsp[-2].minor.yy223; - delete yymsp[-6].minor.yy223; - objectForTokens = yygotominor.yy246; + delete yymsp[-1].minor.yy156; + delete yymsp[0].minor.yy53; + delete yymsp[-2].minor.yy627; + delete yymsp[-6].minor.yy627; + objectForTokens = yygotominor.yy400; } break; - case 124: /* tcons ::= CHECK LP RP onconf */ + case 128: /* tcons ::= CHECK LP RP onconf */ { - yygotominor.yy246 = new SqliteCreateTable::Constraint(); - yygotominor.yy246->initCheck(); - objectForTokens = yygotominor.yy246; + yygotominor.yy400 = new SqliteCreateTable::Constraint(); + yygotominor.yy400->initCheck(); + objectForTokens = yygotominor.yy400; parserContext->minorErrorAfterLastToken("Syntax error"); - yy_destructor(yypParser,223,&yymsp[0].minor); + yy_destructor(yypParser,228,&yymsp[0].minor); } break; - case 125: /* defer_subclause_opt ::= */ -{yygotominor.yy9 = new ParserDeferSubClause(SqliteDeferrable::null, SqliteInitially::null);} - break; - case 126: /* defer_subclause_opt ::= defer_subclause */ -{yygotominor.yy9 = yymsp[0].minor.yy9;} - break; - case 127: /* onconf ::= */ - case 129: /* orconf ::= */ yytestcase(yyruleno==129); -{yygotominor.yy418 = new SqliteConflictAlgo(SqliteConflictAlgo::null);} - break; - case 128: /* onconf ::= ON CONFLICT resolvetype */ - case 130: /* orconf ::= OR resolvetype */ yytestcase(yyruleno==130); -{yygotominor.yy418 = yymsp[0].minor.yy418;} - break; - case 131: /* resolvetype ::= raisetype */ - case 132: /* resolvetype ::= IGNORE */ yytestcase(yyruleno==132); - case 133: /* resolvetype ::= REPLACE */ yytestcase(yyruleno==133); -{yygotominor.yy418 = new SqliteConflictAlgo(sqliteConflictAlgo(yymsp[0].minor.yy0->value));} - break; - case 134: /* cmd ::= DROP TABLE ifexists fullname */ -{ - yygotominor.yy363 = new SqliteDropTable(*(yymsp[-1].minor.yy611), yymsp[0].minor.yy440->name1, yymsp[0].minor.yy440->name2); - delete yymsp[-1].minor.yy611; - delete yymsp[0].minor.yy440; - objectForTokens = yygotominor.yy363; - } - break; - case 135: /* cmd ::= DROP TABLE ifexists nm DOT ID_TAB */ - case 136: /* cmd ::= DROP TABLE ifexists ID_DB|ID_TAB */ yytestcase(yyruleno==136); - case 143: /* cmd ::= DROP VIEW ifexists nm DOT ID_VIEW */ yytestcase(yyruleno==143); - case 144: /* cmd ::= DROP VIEW ifexists ID_DB|ID_VIEW */ yytestcase(yyruleno==144); - case 187: /* singlesrc ::= nm DOT ID_TAB */ yytestcase(yyruleno==187); - case 188: /* singlesrc ::= ID_DB|ID_TAB */ yytestcase(yyruleno==188); - case 189: /* singlesrc ::= nm DOT ID_VIEW */ yytestcase(yyruleno==189); - case 190: /* singlesrc ::= ID_DB|ID_VIEW */ yytestcase(yyruleno==190); - case 331: /* cmd ::= CREATE uniqueflag INDEX ifnotexists nm DOT ID_IDX_NEW */ yytestcase(yyruleno==331); - case 332: /* cmd ::= CREATE uniqueflag INDEX ifnotexists ID_DB|ID_IDX_NEW */ yytestcase(yyruleno==332); - case 345: /* cmd ::= DROP INDEX ifexists nm DOT ID_IDX */ yytestcase(yyruleno==345); - case 346: /* cmd ::= DROP INDEX ifexists ID_DB|ID_IDX */ yytestcase(yyruleno==346); - case 356: /* cmd ::= PRAGMA nm DOT ID_PRAGMA */ yytestcase(yyruleno==356); - case 357: /* cmd ::= PRAGMA ID_DB|ID_PRAGMA */ yytestcase(yyruleno==357); - case 395: /* cmd ::= DROP TRIGGER ifexists nm DOT ID_TRIG */ yytestcase(yyruleno==395); - case 396: /* cmd ::= DROP TRIGGER ifexists ID_DB|ID_TRIG */ yytestcase(yyruleno==396); - case 406: /* cmd ::= REINDEX nm DOT ID_TAB|ID_IDX */ yytestcase(yyruleno==406); - case 407: /* cmd ::= REINDEX ID_DB|ID_IDX|ID_TAB */ yytestcase(yyruleno==407); - case 410: /* cmd ::= ANALYZE nm DOT ID_TAB|ID_IDX */ yytestcase(yyruleno==410); - case 411: /* cmd ::= ANALYZE ID_DB|ID_IDX|ID_TAB */ yytestcase(yyruleno==411); - case 415: /* cmd ::= ALTER TABLE nm DOT ID_TAB */ yytestcase(yyruleno==415); - case 416: /* cmd ::= ALTER TABLE ID_DB|ID_TAB */ yytestcase(yyruleno==416); - case 422: /* create_vtab ::= CREATE VIRTUAL TABLE ifnotexists nm DOT ID_TAB_NEW */ yytestcase(yyruleno==422); - case 423: /* create_vtab ::= CREATE VIRTUAL TABLE ifnotexists ID_DB|ID_TAB_NEW */ yytestcase(yyruleno==423); -{ yy_destructor(yypParser,199,&yymsp[-2].minor); + case 129: /* defer_subclause_opt ::= */ +{yygotominor.yy53 = new ParserDeferSubClause(SqliteDeferrable::null, SqliteInitially::null);} + break; + case 130: /* defer_subclause_opt ::= defer_subclause */ +{yygotominor.yy53 = yymsp[0].minor.yy53;} + break; + case 131: /* onconf ::= */ + case 133: /* orconf ::= */ yytestcase(yyruleno==133); +{yygotominor.yy136 = new SqliteConflictAlgo(SqliteConflictAlgo::null);} + break; + case 132: /* onconf ::= ON CONFLICT resolvetype */ + case 134: /* orconf ::= OR resolvetype */ yytestcase(yyruleno==134); +{yygotominor.yy136 = yymsp[0].minor.yy136;} + break; + case 135: /* resolvetype ::= raisetype */ + case 136: /* resolvetype ::= IGNORE */ yytestcase(yyruleno==136); + case 137: /* resolvetype ::= REPLACE */ yytestcase(yyruleno==137); +{yygotominor.yy136 = new SqliteConflictAlgo(sqliteConflictAlgo(yymsp[0].minor.yy0->value));} + break; + case 138: /* cmd ::= DROP TABLE ifexists fullname */ +{ + yygotominor.yy41 = new SqliteDropTable(*(yymsp[-1].minor.yy225), yymsp[0].minor.yy396->name1, yymsp[0].minor.yy396->name2); + delete yymsp[-1].minor.yy225; + delete yymsp[0].minor.yy396; + objectForTokens = yygotominor.yy41; + } + break; + case 139: /* cmd ::= DROP TABLE ifexists nm DOT ID_TAB */ + case 140: /* cmd ::= DROP TABLE ifexists ID_DB|ID_TAB */ yytestcase(yyruleno==140); + case 147: /* cmd ::= DROP VIEW ifexists nm DOT ID_VIEW */ yytestcase(yyruleno==147); + case 148: /* cmd ::= DROP VIEW ifexists ID_DB|ID_VIEW */ yytestcase(yyruleno==148); + case 191: /* singlesrc ::= nm DOT ID_TAB */ yytestcase(yyruleno==191); + case 192: /* singlesrc ::= ID_DB|ID_TAB */ yytestcase(yyruleno==192); + case 193: /* singlesrc ::= nm DOT ID_VIEW */ yytestcase(yyruleno==193); + case 194: /* singlesrc ::= ID_DB|ID_VIEW */ yytestcase(yyruleno==194); + case 342: /* cmd ::= CREATE uniqueflag INDEX ifnotexists nm DOT ID_IDX_NEW */ yytestcase(yyruleno==342); + case 343: /* cmd ::= CREATE uniqueflag INDEX ifnotexists ID_DB|ID_IDX_NEW */ yytestcase(yyruleno==343); + case 356: /* cmd ::= DROP INDEX ifexists nm DOT ID_IDX */ yytestcase(yyruleno==356); + case 357: /* cmd ::= DROP INDEX ifexists ID_DB|ID_IDX */ yytestcase(yyruleno==357); + case 367: /* cmd ::= PRAGMA nm DOT ID_PRAGMA */ yytestcase(yyruleno==367); + case 368: /* cmd ::= PRAGMA ID_DB|ID_PRAGMA */ yytestcase(yyruleno==368); + case 406: /* cmd ::= DROP TRIGGER ifexists nm DOT ID_TRIG */ yytestcase(yyruleno==406); + case 407: /* cmd ::= DROP TRIGGER ifexists ID_DB|ID_TRIG */ yytestcase(yyruleno==407); + case 417: /* cmd ::= REINDEX nm DOT ID_TAB|ID_IDX */ yytestcase(yyruleno==417); + case 418: /* cmd ::= REINDEX ID_DB|ID_IDX|ID_TAB */ yytestcase(yyruleno==418); + case 421: /* cmd ::= ANALYZE nm DOT ID_TAB|ID_IDX */ yytestcase(yyruleno==421); + case 422: /* cmd ::= ANALYZE ID_DB|ID_IDX|ID_TAB */ yytestcase(yyruleno==422); + case 427: /* cmd ::= ALTER TABLE nm DOT ID_TAB */ yytestcase(yyruleno==427); + case 428: /* cmd ::= ALTER TABLE ID_DB|ID_TAB */ yytestcase(yyruleno==428); + case 434: /* create_vtab ::= CREATE VIRTUAL TABLE ifnotexists nm DOT ID_TAB_NEW */ yytestcase(yyruleno==434); + case 435: /* create_vtab ::= CREATE VIRTUAL TABLE ifnotexists ID_DB|ID_TAB_NEW */ yytestcase(yyruleno==435); +{ yy_destructor(yypParser,203,&yymsp[-2].minor); } break; - case 139: /* cmd ::= CREATE temp VIEW ifnotexists fullname idxlist_opt AS select */ + case 143: /* cmd ::= CREATE temp VIEW ifnotexists fullname idxlist_opt AS select */ { - yygotominor.yy363 = new SqliteCreateView(*(yymsp[-6].minor.yy386), *(yymsp[-4].minor.yy611), yymsp[-3].minor.yy440->name1, yymsp[-3].minor.yy440->name2, yymsp[0].minor.yy313, *(yymsp[-2].minor.yy223)); - delete yymsp[-6].minor.yy386; - delete yymsp[-4].minor.yy611; - delete yymsp[-3].minor.yy440; - delete yymsp[-2].minor.yy223; - objectForTokens = yygotominor.yy363; + yygotominor.yy41 = new SqliteCreateView(*(yymsp[-6].minor.yy130), *(yymsp[-4].minor.yy225), yymsp[-3].minor.yy396->name1, yymsp[-3].minor.yy396->name2, yymsp[0].minor.yy297, *(yymsp[-2].minor.yy627)); + delete yymsp[-6].minor.yy130; + delete yymsp[-4].minor.yy225; + delete yymsp[-3].minor.yy396; + delete yymsp[-2].minor.yy627; + objectForTokens = yygotominor.yy41; } break; - case 142: /* cmd ::= DROP VIEW ifexists fullname */ + case 146: /* cmd ::= DROP VIEW ifexists fullname */ { - yygotominor.yy363 = new SqliteDropView(*(yymsp[-1].minor.yy611), yymsp[0].minor.yy440->name1, yymsp[0].minor.yy440->name2); - delete yymsp[-1].minor.yy611; - delete yymsp[0].minor.yy440; - objectForTokens = yygotominor.yy363; + yygotominor.yy41 = new SqliteDropView(*(yymsp[-1].minor.yy225), yymsp[0].minor.yy396->name1, yymsp[0].minor.yy396->name2); + delete yymsp[-1].minor.yy225; + delete yymsp[0].minor.yy396; + objectForTokens = yygotominor.yy41; } break; - case 145: /* cmd ::= select_stmt */ - case 226: /* cmd ::= delete_stmt */ yytestcase(yyruleno==226); - case 235: /* cmd ::= update_stmt */ yytestcase(yyruleno==235); - case 256: /* cmd ::= insert_stmt */ yytestcase(yyruleno==256); + case 149: /* cmd ::= select_stmt */ + case 230: /* cmd ::= delete_stmt */ yytestcase(yyruleno==230); + case 241: /* cmd ::= update_stmt */ yytestcase(yyruleno==241); + case 262: /* cmd ::= insert_stmt */ yytestcase(yyruleno==262); { - yygotominor.yy363 = yymsp[0].minor.yy363; - objectForTokens = yygotominor.yy363; + yygotominor.yy41 = yymsp[0].minor.yy41; + objectForTokens = yygotominor.yy41; } break; - case 146: /* select_stmt ::= select */ + case 150: /* select_stmt ::= select */ { - yygotominor.yy363 = yymsp[0].minor.yy313; + yygotominor.yy41 = yymsp[0].minor.yy297; // since it's used in trigger: - objectForTokens = yygotominor.yy363; + objectForTokens = yygotominor.yy41; } break; - case 147: /* select ::= with selectnowith */ + case 151: /* select ::= with selectnowith */ { - yygotominor.yy313 = yymsp[0].minor.yy313; - yymsp[0].minor.yy313->setWith(yymsp[-1].minor.yy1); - objectForTokens = yygotominor.yy313; + yygotominor.yy297 = yymsp[0].minor.yy297; + yymsp[0].minor.yy297->setWith(yymsp[-1].minor.yy161); + objectForTokens = yygotominor.yy297; } break; - case 148: /* selectnowith ::= oneselect */ + case 152: /* selectnowith ::= oneselect */ { - yygotominor.yy313 = SqliteSelect::append(yymsp[0].minor.yy470); - objectForTokens = yygotominor.yy313; + yygotominor.yy297 = SqliteSelect::append(yymsp[0].minor.yy378); + objectForTokens = yygotominor.yy297; } break; - case 149: /* selectnowith ::= selectnowith multiselect_op oneselect */ + case 153: /* selectnowith ::= selectnowith multiselect_op oneselect */ { - yygotominor.yy313 = SqliteSelect::append(yymsp[-2].minor.yy313, *(yymsp[-1].minor.yy382), yymsp[0].minor.yy470); - delete yymsp[-1].minor.yy382; - objectForTokens = yygotominor.yy313; + yygotominor.yy297 = SqliteSelect::append(yymsp[-2].minor.yy297, *(yymsp[-1].minor.yy142), yymsp[0].minor.yy378); + delete yymsp[-1].minor.yy142; + objectForTokens = yygotominor.yy297; } break; - case 150: /* selectnowith ::= values */ + case 154: /* selectnowith ::= values */ { - yygotominor.yy313 = SqliteSelect::append(*(yymsp[0].minor.yy486)); - delete yymsp[0].minor.yy486; - objectForTokens = yygotominor.yy313; + yygotominor.yy297 = SqliteSelect::append(*(yymsp[0].minor.yy522)); + delete yymsp[0].minor.yy522; + objectForTokens = yygotominor.yy297; } break; - case 151: /* selectnowith ::= selectnowith COMMA values */ + case 155: /* selectnowith ::= selectnowith COMMA values */ { - yygotominor.yy313 = SqliteSelect::append(yymsp[-2].minor.yy313, SqliteSelect::CompoundOperator::UNION_ALL, *(yymsp[0].minor.yy486)); - delete yymsp[0].minor.yy486; - objectForTokens = yygotominor.yy313; + yygotominor.yy297 = SqliteSelect::append(yymsp[-2].minor.yy297, SqliteSelect::CompoundOperator::UNION_ALL, *(yymsp[0].minor.yy522)); + delete yymsp[0].minor.yy522; + objectForTokens = yygotominor.yy297; } break; - case 152: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */ + case 156: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */ { - yygotominor.yy470 = new SqliteSelect::Core( - *(yymsp[-7].minor.yy386), - *(yymsp[-6].minor.yy53), - yymsp[-5].minor.yy31, - yymsp[-4].minor.yy512, - *(yymsp[-3].minor.yy71), - yymsp[-2].minor.yy512, - *(yymsp[-1].minor.yy403), - yymsp[0].minor.yy4 + yygotominor.yy378 = new SqliteSelect::Core( + *(yymsp[-7].minor.yy130), + *(yymsp[-6].minor.yy27), + yymsp[-5].minor.yy553, + yymsp[-4].minor.yy186, + *(yymsp[-3].minor.yy615), + yymsp[-2].minor.yy186, + *(yymsp[-1].minor.yy226), + yymsp[0].minor.yy360 ); - delete yymsp[-6].minor.yy53; - delete yymsp[-7].minor.yy386; - delete yymsp[-3].minor.yy71; - delete yymsp[-1].minor.yy403; - objectForTokens = yygotominor.yy470; - } - break; - case 153: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt */ -{ - yygotominor.yy470 = new SqliteSelect::Core( - *(yymsp[-8].minor.yy386), - *(yymsp[-7].minor.yy53), - yymsp[-6].minor.yy31, - yymsp[-5].minor.yy512, - *(yymsp[-4].minor.yy71), - yymsp[-3].minor.yy512, - *(yymsp[-2].minor.yy299), - *(yymsp[-1].minor.yy403), - yymsp[0].minor.yy4 + delete yymsp[-6].minor.yy27; + delete yymsp[-7].minor.yy130; + delete yymsp[-3].minor.yy615; + delete yymsp[-1].minor.yy226; + objectForTokens = yygotominor.yy378; + } + break; + case 157: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt */ +{ + yygotominor.yy378 = new SqliteSelect::Core( + *(yymsp[-8].minor.yy130), + *(yymsp[-7].minor.yy27), + yymsp[-6].minor.yy553, + yymsp[-5].minor.yy186, + *(yymsp[-4].minor.yy615), + yymsp[-3].minor.yy186, + *(yymsp[-2].minor.yy525), + *(yymsp[-1].minor.yy226), + yymsp[0].minor.yy360 ); - delete yymsp[-7].minor.yy53; - delete yymsp[-8].minor.yy386; - delete yymsp[-4].minor.yy71; - delete yymsp[-1].minor.yy403; - delete yymsp[-2].minor.yy299; - objectForTokens = yygotominor.yy470; + delete yymsp[-7].minor.yy27; + delete yymsp[-8].minor.yy130; + delete yymsp[-4].minor.yy615; + delete yymsp[-1].minor.yy226; + delete yymsp[-2].minor.yy525; + objectForTokens = yygotominor.yy378; } break; - case 154: /* values ::= VALUES LP nexprlist RP */ + case 158: /* values ::= VALUES LP nexprlist RP */ { - yygotominor.yy486 = new ParserExprNestedList(); - yygotominor.yy486->append(*(yymsp[-1].minor.yy71)); - delete yymsp[-1].minor.yy71; + yygotominor.yy522 = new ParserExprNestedList(); + yygotominor.yy522->append(*(yymsp[-1].minor.yy615)); + delete yymsp[-1].minor.yy615; } break; - case 155: /* values ::= values COMMA LP exprlist RP */ + case 159: /* values ::= values COMMA LP exprlist RP */ { - yymsp[-4].minor.yy486->append(*(yymsp[-1].minor.yy71)); - yygotominor.yy486 = yymsp[-4].minor.yy486; - delete yymsp[-1].minor.yy71; + yymsp[-4].minor.yy522->append(*(yymsp[-1].minor.yy615)); + yygotominor.yy522 = yymsp[-4].minor.yy522; + delete yymsp[-1].minor.yy615; DONT_INHERIT_TOKENS("values"); } break; - case 156: /* multiselect_op ::= UNION */ -{yygotominor.yy382 = new SqliteSelect::CompoundOperator(SqliteSelect::CompoundOperator::UNION);} + case 160: /* multiselect_op ::= UNION */ +{yygotominor.yy142 = new SqliteSelect::CompoundOperator(SqliteSelect::CompoundOperator::UNION);} break; - case 157: /* multiselect_op ::= UNION ALL */ -{yygotominor.yy382 = new SqliteSelect::CompoundOperator(SqliteSelect::CompoundOperator::UNION_ALL);} + case 161: /* multiselect_op ::= UNION ALL */ +{yygotominor.yy142 = new SqliteSelect::CompoundOperator(SqliteSelect::CompoundOperator::UNION_ALL);} break; - case 158: /* multiselect_op ::= EXCEPT */ -{yygotominor.yy382 = new SqliteSelect::CompoundOperator(SqliteSelect::CompoundOperator::EXCEPT);} + case 162: /* multiselect_op ::= EXCEPT */ +{yygotominor.yy142 = new SqliteSelect::CompoundOperator(SqliteSelect::CompoundOperator::EXCEPT);} break; - case 159: /* multiselect_op ::= INTERSECT */ -{yygotominor.yy382 = new SqliteSelect::CompoundOperator(SqliteSelect::CompoundOperator::INTERSECT);} + case 163: /* multiselect_op ::= INTERSECT */ +{yygotominor.yy142 = new SqliteSelect::CompoundOperator(SqliteSelect::CompoundOperator::INTERSECT);} break; - case 160: /* distinct ::= DISTINCT */ -{yygotominor.yy386 = new int(1);} + case 164: /* distinct ::= DISTINCT */ +{yygotominor.yy130 = new int(1);} break; - case 161: /* distinct ::= ALL */ -{yygotominor.yy386 = new int(2);} + case 165: /* distinct ::= ALL */ +{yygotominor.yy130 = new int(2);} break; - case 163: /* sclp ::= selcollist COMMA */ -{yygotominor.yy53 = yymsp[-1].minor.yy53;} + case 167: /* sclp ::= selcollist COMMA */ +{yygotominor.yy27 = yymsp[-1].minor.yy27;} break; - case 164: /* sclp ::= */ -{yygotominor.yy53 = new ParserResultColumnList();} + case 168: /* sclp ::= */ + case 239: /* returning ::= */ yytestcase(yyruleno==239); +{yygotominor.yy27 = new ParserResultColumnList();} break; - case 165: /* selcollist ::= sclp expr as */ + case 169: /* selcollist ::= sclp expr as */ { SqliteSelect::Core::ResultColumn* obj = new SqliteSelect::Core::ResultColumn( - yymsp[-1].minor.yy512, - yymsp[0].minor.yy200 ? yymsp[0].minor.yy200->asKw : false, - yymsp[0].minor.yy200 ? yymsp[0].minor.yy200->name : QString() + yymsp[-1].minor.yy186, + yymsp[0].minor.yy628 ? yymsp[0].minor.yy628->asKw : false, + yymsp[0].minor.yy628 ? yymsp[0].minor.yy628->name : QString() ); - yymsp[-2].minor.yy53->append(obj); - yygotominor.yy53 = yymsp[-2].minor.yy53; - delete yymsp[0].minor.yy200; + yymsp[-2].minor.yy27->append(obj); + yygotominor.yy27 = yymsp[-2].minor.yy27; + delete yymsp[0].minor.yy628; objectForTokens = obj; DONT_INHERIT_TOKENS("sclp"); } break; - case 166: /* selcollist ::= sclp STAR */ + case 170: /* selcollist ::= sclp STAR */ { SqliteSelect::Core::ResultColumn* obj = new SqliteSelect::Core::ResultColumn(true); - yymsp[-1].minor.yy53->append(obj); - yygotominor.yy53 = yymsp[-1].minor.yy53; + yymsp[-1].minor.yy27->append(obj); + yygotominor.yy27 = yymsp[-1].minor.yy27; objectForTokens = obj; DONT_INHERIT_TOKENS("sclp"); } break; - case 167: /* selcollist ::= sclp tnm DOT STAR */ + case 171: /* selcollist ::= sclp tnm DOT STAR */ { SqliteSelect::Core::ResultColumn* obj = new SqliteSelect::Core::ResultColumn( true, - yymsp[-2].minor.yy590->toName() + yymsp[-2].minor.yy380->toName() ); - if (!yymsp[-2].minor.yy590->isName()) + if (!yymsp[-2].minor.yy380->isName()) parserContext->errorAtToken("Syntax error ", -3); - yymsp[-3].minor.yy53->append(obj); - yygotominor.yy53 = yymsp[-3].minor.yy53; - delete yymsp[-2].minor.yy590; + yymsp[-3].minor.yy27->append(obj); + yygotominor.yy27 = yymsp[-3].minor.yy27; + delete yymsp[-2].minor.yy380; objectForTokens = obj; DONT_INHERIT_TOKENS("sclp"); } break; - case 168: /* selcollist ::= sclp */ - case 169: /* selcollist ::= sclp ID_TAB DOT STAR */ yytestcase(yyruleno==169); + case 172: /* selcollist ::= sclp */ + case 173: /* selcollist ::= sclp ID_TAB DOT STAR */ yytestcase(yyruleno==173); { parserContext->minorErrorBeforeNextToken("Syntax error"); - yygotominor.yy53 = yymsp[0].minor.yy53; + yygotominor.yy27 = yymsp[0].minor.yy27; } break; - case 170: /* as ::= AS nm */ + case 174: /* as ::= AS nm */ { - yygotominor.yy200 = new ParserStubAlias(*(yymsp[0].minor.yy319), true); + yygotominor.yy628 = new ParserStubAlias(*(yymsp[0].minor.yy319), true); delete yymsp[0].minor.yy319; } break; - case 171: /* as ::= ids */ - case 172: /* as ::= AS ID_ALIAS */ yytestcase(yyruleno==172); - case 173: /* as ::= ID_ALIAS */ yytestcase(yyruleno==173); + case 175: /* as ::= ids */ + case 176: /* as ::= AS ID_ALIAS */ yytestcase(yyruleno==176); + case 177: /* as ::= ID_ALIAS */ yytestcase(yyruleno==177); { - yygotominor.yy200 = new ParserStubAlias(*(yymsp[0].minor.yy319), false); + yygotominor.yy628 = new ParserStubAlias(*(yymsp[0].minor.yy319), false); delete yymsp[0].minor.yy319; } break; - case 174: /* as ::= */ -{yygotominor.yy200 = nullptr;} + case 178: /* as ::= */ +{yygotominor.yy628 = nullptr;} break; - case 175: /* from ::= */ -{yygotominor.yy31 = nullptr;} + case 179: /* from ::= */ +{yygotominor.yy553 = nullptr;} break; - case 176: /* from ::= FROM joinsrc */ -{yygotominor.yy31 = yymsp[0].minor.yy31;} + case 180: /* from ::= FROM joinsrc */ +{yygotominor.yy553 = yymsp[0].minor.yy553;} break; - case 177: /* joinsrc ::= singlesrc seltablist */ + case 181: /* joinsrc ::= singlesrc seltablist */ { - yygotominor.yy31 = new SqliteSelect::Core::JoinSource( - yymsp[-1].minor.yy441, - *(yymsp[0].minor.yy451) + yygotominor.yy553 = new SqliteSelect::Core::JoinSource( + yymsp[-1].minor.yy595, + *(yymsp[0].minor.yy107) ); - delete yymsp[0].minor.yy451; - objectForTokens = yygotominor.yy31; + delete yymsp[0].minor.yy107; + objectForTokens = yygotominor.yy553; } break; - case 178: /* joinsrc ::= */ + case 182: /* joinsrc ::= */ { parserContext->minorErrorBeforeNextToken("Syntax error"); - yygotominor.yy31 = new SqliteSelect::Core::JoinSource(); - objectForTokens = yygotominor.yy31; + yygotominor.yy553 = new SqliteSelect::Core::JoinSource(); + objectForTokens = yygotominor.yy553; } break; - case 179: /* seltablist ::= seltablist joinop singlesrc joinconstr_opt */ + case 183: /* seltablist ::= seltablist joinop singlesrc joinconstr_opt */ { SqliteSelect::Core::JoinSourceOther* src = - new SqliteSelect::Core::JoinSourceOther(yymsp[-2].minor.yy221, yymsp[-1].minor.yy441, yymsp[0].minor.yy295); + new SqliteSelect::Core::JoinSourceOther(yymsp[-2].minor.yy449, yymsp[-1].minor.yy595, yymsp[0].minor.yy215); - yymsp[-3].minor.yy451->append(src); - yygotominor.yy451 = yymsp[-3].minor.yy451; + yymsp[-3].minor.yy107->append(src); + yygotominor.yy107 = yymsp[-3].minor.yy107; objectForTokens = src; DONT_INHERIT_TOKENS("seltablist"); } break; - case 180: /* seltablist ::= */ + case 184: /* seltablist ::= */ { - yygotominor.yy451 = new ParserOtherSourceList(); + yygotominor.yy107 = new ParserOtherSourceList(); } break; - case 181: /* singlesrc ::= nm dbnm as indexed_opt */ + case 185: /* singlesrc ::= nm dbnm as indexed_opt */ { - yygotominor.yy441 = new SqliteSelect::Core::SingleSource( + yygotominor.yy595 = new SqliteSelect::Core::SingleSource( *(yymsp[-3].minor.yy319), *(yymsp[-2].minor.yy319), - yymsp[-1].minor.yy200 ? yymsp[-1].minor.yy200->asKw : false, - yymsp[-1].minor.yy200 ? yymsp[-1].minor.yy200->name : QString(), - yymsp[0].minor.yy592 ? yymsp[0].minor.yy592->notIndexedKw : false, - yymsp[0].minor.yy592 ? yymsp[0].minor.yy592->indexedBy : QString() + yymsp[-1].minor.yy628 ? yymsp[-1].minor.yy628->asKw : false, + yymsp[-1].minor.yy628 ? yymsp[-1].minor.yy628->name : QString(), + yymsp[0].minor.yy300 ? yymsp[0].minor.yy300->notIndexedKw : false, + yymsp[0].minor.yy300 ? yymsp[0].minor.yy300->indexedBy : QString() ); delete yymsp[-3].minor.yy319; delete yymsp[-2].minor.yy319; - delete yymsp[-1].minor.yy200; - if (yymsp[0].minor.yy592) - delete yymsp[0].minor.yy592; - objectForTokens = yygotominor.yy441; + delete yymsp[-1].minor.yy628; + if (yymsp[0].minor.yy300) + delete yymsp[0].minor.yy300; + objectForTokens = yygotominor.yy595; } break; - case 182: /* singlesrc ::= LP select RP as */ + case 186: /* singlesrc ::= LP select RP as */ { - yygotominor.yy441 = new SqliteSelect::Core::SingleSource( - yymsp[-2].minor.yy313, - yymsp[0].minor.yy200 ? yymsp[0].minor.yy200->asKw : false, - yymsp[0].minor.yy200 ? yymsp[0].minor.yy200->name : QString() + yygotominor.yy595 = new SqliteSelect::Core::SingleSource( + yymsp[-2].minor.yy297, + yymsp[0].minor.yy628 ? yymsp[0].minor.yy628->asKw : false, + yymsp[0].minor.yy628 ? yymsp[0].minor.yy628->name : QString() ); - delete yymsp[0].minor.yy200; - objectForTokens = yygotominor.yy441; + delete yymsp[0].minor.yy628; + objectForTokens = yygotominor.yy595; } break; - case 183: /* singlesrc ::= LP joinsrc RP as */ + case 187: /* singlesrc ::= LP joinsrc RP as */ { - yygotominor.yy441 = new SqliteSelect::Core::SingleSource( - yymsp[-2].minor.yy31, - yymsp[0].minor.yy200 ? yymsp[0].minor.yy200->asKw : false, - yymsp[0].minor.yy200 ? yymsp[0].minor.yy200->name : QString() + yygotominor.yy595 = new SqliteSelect::Core::SingleSource( + yymsp[-2].minor.yy553, + yymsp[0].minor.yy628 ? yymsp[0].minor.yy628->asKw : false, + yymsp[0].minor.yy628 ? yymsp[0].minor.yy628->name : QString() ); - delete yymsp[0].minor.yy200; - objectForTokens = yygotominor.yy441; + delete yymsp[0].minor.yy628; + objectForTokens = yygotominor.yy595; } break; - case 184: /* singlesrc ::= nm dbnm LP exprlist RP as */ + case 188: /* singlesrc ::= nm dbnm LP exprlist RP as */ { - yygotominor.yy441 = new SqliteSelect::Core::SingleSource( + yygotominor.yy595 = new SqliteSelect::Core::SingleSource( *(yymsp[-5].minor.yy319), *(yymsp[-4].minor.yy319), - yymsp[0].minor.yy200 ? yymsp[0].minor.yy200->asKw : false, - yymsp[0].minor.yy200 ? yymsp[0].minor.yy200->name : QString(), - *(yymsp[-2].minor.yy71) + yymsp[0].minor.yy628 ? yymsp[0].minor.yy628->asKw : false, + yymsp[0].minor.yy628 ? yymsp[0].minor.yy628->name : QString(), + *(yymsp[-2].minor.yy615) ); delete yymsp[-5].minor.yy319; delete yymsp[-4].minor.yy319; - delete yymsp[0].minor.yy200; - if (yymsp[-2].minor.yy71) - delete yymsp[-2].minor.yy71; + delete yymsp[0].minor.yy628; + if (yymsp[-2].minor.yy615) + delete yymsp[-2].minor.yy615; - objectForTokens = yygotominor.yy441; + objectForTokens = yygotominor.yy595; } break; - case 185: /* singlesrc ::= */ + case 189: /* singlesrc ::= */ { parserContext->minorErrorBeforeNextToken("Syntax error"); - yygotominor.yy441 = new SqliteSelect::Core::SingleSource(); - objectForTokens = yygotominor.yy441; + yygotominor.yy595 = new SqliteSelect::Core::SingleSource(); + objectForTokens = yygotominor.yy595; } break; - case 186: /* singlesrc ::= nm DOT */ + case 190: /* singlesrc ::= nm DOT */ { parserContext->minorErrorBeforeNextToken("Syntax error"); - yygotominor.yy441 = new SqliteSelect::Core::SingleSource(); - yygotominor.yy441->database = *(yymsp[-1].minor.yy319); + yygotominor.yy595 = new SqliteSelect::Core::SingleSource(); + yygotominor.yy595->database = *(yymsp[-1].minor.yy319); delete yymsp[-1].minor.yy319; - objectForTokens = yygotominor.yy441; + objectForTokens = yygotominor.yy595; } break; - case 191: /* joinconstr_opt ::= ON expr */ + case 195: /* joinconstr_opt ::= ON expr */ { - yygotominor.yy295 = new SqliteSelect::Core::JoinConstraint(yymsp[0].minor.yy512); - objectForTokens = yygotominor.yy295; + yygotominor.yy215 = new SqliteSelect::Core::JoinConstraint(yymsp[0].minor.yy186); + objectForTokens = yygotominor.yy215; } break; - case 192: /* joinconstr_opt ::= USING LP idlist RP */ + case 196: /* joinconstr_opt ::= USING LP idlist RP */ { - yygotominor.yy295 = new SqliteSelect::Core::JoinConstraint(*(yymsp[-1].minor.yy575)); - delete yymsp[-1].minor.yy575; - objectForTokens = yygotominor.yy295; + yygotominor.yy215 = new SqliteSelect::Core::JoinConstraint(*(yymsp[-1].minor.yy173)); + delete yymsp[-1].minor.yy173; + objectForTokens = yygotominor.yy215; } break; - case 193: /* joinconstr_opt ::= */ -{yygotominor.yy295 = nullptr;} + case 197: /* joinconstr_opt ::= */ +{yygotominor.yy215 = nullptr;} + break; + case 198: /* dbnm ::= */ + case 352: /* collate ::= */ yytestcase(yyruleno==352); + case 438: /* vtabarg ::= */ yytestcase(yyruleno==438); + case 442: /* anylist ::= */ yytestcase(yyruleno==442); +{yygotominor.yy319 = new QString();} break; - case 196: /* fullname ::= nm dbnm */ + case 200: /* fullname ::= nm dbnm */ { - yygotominor.yy440 = new ParserFullName(); - yygotominor.yy440->name1 = *(yymsp[-1].minor.yy319); - yygotominor.yy440->name2 = *(yymsp[0].minor.yy319); + yygotominor.yy396 = new ParserFullName(); + yygotominor.yy396->name1 = *(yymsp[-1].minor.yy319); + yygotominor.yy396->name2 = *(yymsp[0].minor.yy319); delete yymsp[-1].minor.yy319; delete yymsp[0].minor.yy319; } break; - case 197: /* joinop ::= COMMA */ + case 201: /* joinop ::= COMMA */ { - yygotominor.yy221 = new SqliteSelect::Core::JoinOp(true); - objectForTokens = yygotominor.yy221; + yygotominor.yy449 = new SqliteSelect::Core::JoinOp(true); + objectForTokens = yygotominor.yy449; } break; - case 198: /* joinop ::= JOIN */ + case 202: /* joinop ::= JOIN */ { - yygotominor.yy221 = new SqliteSelect::Core::JoinOp(false); - objectForTokens = yygotominor.yy221; + yygotominor.yy449 = new SqliteSelect::Core::JoinOp(false); + objectForTokens = yygotominor.yy449; } break; - case 199: /* joinop ::= JOIN_KW JOIN */ + case 203: /* joinop ::= JOIN_KW JOIN */ { - yygotominor.yy221 = new SqliteSelect::Core::JoinOp(yymsp[-1].minor.yy0->value); - objectForTokens = yygotominor.yy221; + yygotominor.yy449 = new SqliteSelect::Core::JoinOp(yymsp[-1].minor.yy0->value); + objectForTokens = yygotominor.yy449; } break; - case 200: /* joinop ::= JOIN_KW nm JOIN */ + case 204: /* joinop ::= JOIN_KW nm JOIN */ { - yygotominor.yy221 = new SqliteSelect::Core::JoinOp(yymsp[-2].minor.yy0->value, *(yymsp[-1].minor.yy319)); + yygotominor.yy449 = new SqliteSelect::Core::JoinOp(yymsp[-2].minor.yy0->value, *(yymsp[-1].minor.yy319)); delete yymsp[-1].minor.yy319; - objectForTokens = yygotominor.yy221; + objectForTokens = yygotominor.yy449; } break; - case 201: /* joinop ::= JOIN_KW nm nm JOIN */ - case 202: /* joinop ::= ID_JOIN_OPTS */ yytestcase(yyruleno==202); + case 205: /* joinop ::= JOIN_KW nm nm JOIN */ + case 206: /* joinop ::= ID_JOIN_OPTS */ yytestcase(yyruleno==206); { - yygotominor.yy221 = new SqliteSelect::Core::JoinOp(yymsp[-3].minor.yy0->value, *(yymsp[-2].minor.yy319), *(yymsp[-1].minor.yy319)); + yygotominor.yy449 = new SqliteSelect::Core::JoinOp(yymsp[-3].minor.yy0->value, *(yymsp[-2].minor.yy319), *(yymsp[-1].minor.yy319)); delete yymsp[-2].minor.yy319; - objectForTokens = yygotominor.yy221; + objectForTokens = yygotominor.yy449; } break; - case 203: /* indexed_opt ::= */ -{yygotominor.yy592 = nullptr;} + case 207: /* indexed_opt ::= */ +{yygotominor.yy300 = nullptr;} break; - case 204: /* indexed_opt ::= INDEXED BY nm */ + case 208: /* indexed_opt ::= INDEXED BY nm */ { - yygotominor.yy592 = new ParserIndexedBy(*(yymsp[0].minor.yy319)); + yygotominor.yy300 = new ParserIndexedBy(*(yymsp[0].minor.yy319)); delete yymsp[0].minor.yy319; } break; - case 205: /* indexed_opt ::= NOT INDEXED */ - case 206: /* indexed_opt ::= INDEXED BY ID_IDX */ yytestcase(yyruleno==206); -{yygotominor.yy592 = new ParserIndexedBy(true);} + case 209: /* indexed_opt ::= NOT INDEXED */ + case 210: /* indexed_opt ::= INDEXED BY ID_IDX */ yytestcase(yyruleno==210); +{yygotominor.yy300 = new ParserIndexedBy(true);} break; - case 207: /* orderby_opt ::= */ -{yygotominor.yy403 = new ParserOrderByList();} + case 211: /* orderby_opt ::= */ +{yygotominor.yy226 = new ParserOrderByList();} break; - case 208: /* orderby_opt ::= ORDER BY sortlist */ -{yygotominor.yy403 = yymsp[0].minor.yy403;} + case 212: /* orderby_opt ::= ORDER BY sortlist */ +{yygotominor.yy226 = yymsp[0].minor.yy226;} break; - case 209: /* sortlist ::= sortlist COMMA expr sortorder nulls */ + case 213: /* sortlist ::= sortlist COMMA expr sortorder nulls */ { - SqliteOrderBy* obj = new SqliteOrderBy(yymsp[-2].minor.yy512, *(yymsp[-1].minor.yy549), *(yymsp[0].minor.yy579)); - yymsp[-4].minor.yy403->append(obj); - yygotominor.yy403 = yymsp[-4].minor.yy403; - delete yymsp[-1].minor.yy549; - delete yymsp[0].minor.yy579; + SqliteOrderBy* obj = new SqliteOrderBy(yymsp[-2].minor.yy186, *(yymsp[-1].minor.yy35), *(yymsp[0].minor.yy315)); + yymsp[-4].minor.yy226->append(obj); + yygotominor.yy226 = yymsp[-4].minor.yy226; + delete yymsp[-1].minor.yy35; + delete yymsp[0].minor.yy315; objectForTokens = obj; DONT_INHERIT_TOKENS("sortlist"); } break; - case 210: /* sortlist ::= expr sortorder nulls */ + case 214: /* sortlist ::= expr sortorder nulls */ { - SqliteOrderBy* obj = new SqliteOrderBy(yymsp[-2].minor.yy512, *(yymsp[-1].minor.yy549), *(yymsp[0].minor.yy579)); - yygotominor.yy403 = new ParserOrderByList(); - yygotominor.yy403->append(obj); - delete yymsp[-1].minor.yy549; - delete yymsp[0].minor.yy579; + SqliteOrderBy* obj = new SqliteOrderBy(yymsp[-2].minor.yy186, *(yymsp[-1].minor.yy35), *(yymsp[0].minor.yy315)); + yygotominor.yy226 = new ParserOrderByList(); + yygotominor.yy226->append(obj); + delete yymsp[-1].minor.yy35; + delete yymsp[0].minor.yy315; objectForTokens = obj; } break; - case 211: /* sortorder ::= ASC */ -{yygotominor.yy549 = new SqliteSortOrder(SqliteSortOrder::ASC);} + case 215: /* sortorder ::= ASC */ +{yygotominor.yy35 = new SqliteSortOrder(SqliteSortOrder::ASC);} break; - case 212: /* sortorder ::= DESC */ -{yygotominor.yy549 = new SqliteSortOrder(SqliteSortOrder::DESC);} + case 216: /* sortorder ::= DESC */ +{yygotominor.yy35 = new SqliteSortOrder(SqliteSortOrder::DESC);} break; - case 213: /* sortorder ::= */ -{yygotominor.yy549 = new SqliteSortOrder(SqliteSortOrder::null);} + case 217: /* sortorder ::= */ +{yygotominor.yy35 = new SqliteSortOrder(SqliteSortOrder::null);} break; - case 214: /* nulls ::= NULLS FIRST */ -{yygotominor.yy579 = new SqliteNulls(SqliteNulls::FIRST);} + case 218: /* nulls ::= NULLS FIRST */ +{yygotominor.yy315 = new SqliteNulls(SqliteNulls::FIRST);} break; - case 215: /* nulls ::= NULLS LAST */ -{yygotominor.yy579 = new SqliteNulls(SqliteNulls::LAST);} + case 219: /* nulls ::= NULLS LAST */ +{yygotominor.yy315 = new SqliteNulls(SqliteNulls::LAST);} break; - case 216: /* nulls ::= */ -{yygotominor.yy579 = new SqliteNulls(SqliteNulls::null);} + case 220: /* nulls ::= */ +{yygotominor.yy315 = new SqliteNulls(SqliteNulls::null);} break; - case 217: /* groupby_opt ::= */ - case 326: /* exprlist ::= */ yytestcase(yyruleno==326); -{yygotominor.yy71 = new ParserExprList();} + case 221: /* groupby_opt ::= */ + case 337: /* exprlist ::= */ yytestcase(yyruleno==337); +{yygotominor.yy615 = new ParserExprList();} break; - case 218: /* groupby_opt ::= GROUP BY nexprlist */ - case 325: /* exprlist ::= nexprlist */ yytestcase(yyruleno==325); -{yygotominor.yy71 = yymsp[0].minor.yy71;} + case 222: /* groupby_opt ::= GROUP BY nexprlist */ + case 336: /* exprlist ::= nexprlist */ yytestcase(yyruleno==336); +{yygotominor.yy615 = yymsp[0].minor.yy615;} break; - case 219: /* groupby_opt ::= GROUP BY */ + case 223: /* groupby_opt ::= GROUP BY */ { parserContext->minorErrorBeforeNextToken("Syntax error"); - yygotominor.yy71 = new ParserExprList(); + yygotominor.yy615 = new ParserExprList(); } break; - case 220: /* having_opt ::= */ - case 232: /* where_opt ::= */ yytestcase(yyruleno==232); - case 322: /* case_else ::= */ yytestcase(yyruleno==322); - case 324: /* case_operand ::= */ yytestcase(yyruleno==324); - case 350: /* vinto ::= */ yytestcase(yyruleno==350); - case 384: /* when_clause ::= */ yytestcase(yyruleno==384); - case 399: /* key_opt ::= */ yytestcase(yyruleno==399); -{yygotominor.yy512 = nullptr;} + case 224: /* having_opt ::= */ + case 236: /* where_opt ::= */ yytestcase(yyruleno==236); + case 333: /* case_else ::= */ yytestcase(yyruleno==333); + case 335: /* case_operand ::= */ yytestcase(yyruleno==335); + case 361: /* vinto ::= */ yytestcase(yyruleno==361); + case 395: /* when_clause ::= */ yytestcase(yyruleno==395); + case 410: /* key_opt ::= */ yytestcase(yyruleno==410); +{yygotominor.yy186 = nullptr;} break; - case 221: /* having_opt ::= HAVING expr */ - case 233: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==233); - case 315: /* expr ::= exprx */ yytestcase(yyruleno==315); - case 321: /* case_else ::= ELSE expr */ yytestcase(yyruleno==321); - case 323: /* case_operand ::= exprx */ yytestcase(yyruleno==323); - case 349: /* vinto ::= INTO expr */ yytestcase(yyruleno==349); - case 385: /* when_clause ::= WHEN expr */ yytestcase(yyruleno==385); - case 400: /* key_opt ::= KEY expr */ yytestcase(yyruleno==400); -{yygotominor.yy512 = yymsp[0].minor.yy512;} + case 225: /* having_opt ::= HAVING expr */ + case 237: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==237); + case 326: /* expr ::= exprx */ yytestcase(yyruleno==326); + case 332: /* case_else ::= ELSE expr */ yytestcase(yyruleno==332); + case 334: /* case_operand ::= exprx */ yytestcase(yyruleno==334); + case 360: /* vinto ::= INTO expr */ yytestcase(yyruleno==360); + case 396: /* when_clause ::= WHEN expr */ yytestcase(yyruleno==396); + case 411: /* key_opt ::= KEY expr */ yytestcase(yyruleno==411); +{yygotominor.yy186 = yymsp[0].minor.yy186;} break; - case 222: /* limit_opt ::= */ -{yygotominor.yy4 = nullptr;} + case 226: /* limit_opt ::= */ +{yygotominor.yy360 = nullptr;} break; - case 223: /* limit_opt ::= LIMIT expr */ + case 227: /* limit_opt ::= LIMIT expr */ { - yygotominor.yy4 = new SqliteLimit(yymsp[0].minor.yy512); - objectForTokens = yygotominor.yy4; + yygotominor.yy360 = new SqliteLimit(yymsp[0].minor.yy186); + objectForTokens = yygotominor.yy360; } break; - case 224: /* limit_opt ::= LIMIT expr OFFSET expr */ + case 228: /* limit_opt ::= LIMIT expr OFFSET expr */ { - yygotominor.yy4 = new SqliteLimit(yymsp[-2].minor.yy512, yymsp[0].minor.yy512, true); - objectForTokens = yygotominor.yy4; + yygotominor.yy360 = new SqliteLimit(yymsp[-2].minor.yy186, yymsp[0].minor.yy186, true); + objectForTokens = yygotominor.yy360; } break; - case 225: /* limit_opt ::= LIMIT expr COMMA expr */ + case 229: /* limit_opt ::= LIMIT expr COMMA expr */ { - yygotominor.yy4 = new SqliteLimit(yymsp[-2].minor.yy512, yymsp[0].minor.yy512, false); - objectForTokens = yygotominor.yy4; + yygotominor.yy360 = new SqliteLimit(yymsp[-2].minor.yy186, yymsp[0].minor.yy186, false); + objectForTokens = yygotominor.yy360; } break; - case 227: /* delete_stmt ::= with DELETE FROM fullname indexed_opt where_opt */ + case 231: /* delete_stmt ::= with DELETE FROM fullname indexed_opt where_opt returning */ { - if (yymsp[-1].minor.yy592) + if (yymsp[-2].minor.yy300) { - if (!yymsp[-1].minor.yy592->indexedBy.isNull()) + if (!yymsp[-2].minor.yy300->indexedBy.isNull()) { - yygotominor.yy363 = new SqliteDelete( - yymsp[-2].minor.yy440->name1, - yymsp[-2].minor.yy440->name2, - yymsp[-1].minor.yy592->indexedBy, - yymsp[0].minor.yy512, - yymsp[-5].minor.yy1 + yygotominor.yy41 = new SqliteDelete( + yymsp[-3].minor.yy396->name1, + yymsp[-3].minor.yy396->name2, + yymsp[-2].minor.yy300->indexedBy, + yymsp[-1].minor.yy186, + yymsp[-6].minor.yy161, + *(yymsp[0].minor.yy27) ); } else { - yygotominor.yy363 = new SqliteDelete( - yymsp[-2].minor.yy440->name1, - yymsp[-2].minor.yy440->name2, - yymsp[-1].minor.yy592->notIndexedKw, - yymsp[0].minor.yy512, - yymsp[-5].minor.yy1 + yygotominor.yy41 = new SqliteDelete( + yymsp[-3].minor.yy396->name1, + yymsp[-3].minor.yy396->name2, + yymsp[-2].minor.yy300->notIndexedKw, + yymsp[-1].minor.yy186, + yymsp[-6].minor.yy161, + *(yymsp[0].minor.yy27) ); } - delete yymsp[-1].minor.yy592; + delete yymsp[-2].minor.yy300; } else { - yygotominor.yy363 = new SqliteDelete( - yymsp[-2].minor.yy440->name1, - yymsp[-2].minor.yy440->name2, + yygotominor.yy41 = new SqliteDelete( + yymsp[-3].minor.yy396->name1, + yymsp[-3].minor.yy396->name2, false, - yymsp[0].minor.yy512, - yymsp[-5].minor.yy1 + yymsp[-1].minor.yy186, + yymsp[-6].minor.yy161, + *(yymsp[0].minor.yy27) ); } - delete yymsp[-2].minor.yy440; + delete yymsp[-3].minor.yy396; + delete yymsp[0].minor.yy27; // since it's used in trigger: - objectForTokens = yygotominor.yy363; + objectForTokens = yygotominor.yy41; } break; - case 228: /* delete_stmt ::= with DELETE FROM */ + case 232: /* delete_stmt ::= with DELETE FROM */ { parserContext->minorErrorBeforeNextToken("Syntax error"); SqliteDelete* q = new SqliteDelete(); - q->with = yymsp[-2].minor.yy1; - yygotominor.yy363 = q; - objectForTokens = yygotominor.yy363; + q->with = yymsp[-2].minor.yy161; + yygotominor.yy41 = q; + objectForTokens = yygotominor.yy41; } break; - case 229: /* delete_stmt ::= with DELETE FROM nm DOT */ + case 233: /* delete_stmt ::= with DELETE FROM nm DOT */ { parserContext->minorErrorBeforeNextToken("Syntax error"); SqliteDelete* q = new SqliteDelete(); - q->with = yymsp[-4].minor.yy1; + q->with = yymsp[-4].minor.yy161; q->database = *(yymsp[-1].minor.yy319); - yygotominor.yy363 = q; - objectForTokens = yygotominor.yy363; + yygotominor.yy41 = q; + objectForTokens = yygotominor.yy41; delete yymsp[-1].minor.yy319; } break; - case 230: /* delete_stmt ::= with DELETE FROM nm DOT ID_TAB */ - case 239: /* update_stmt ::= with UPDATE orconf nm DOT ID_TAB */ yytestcase(yyruleno==239); -{ yy_destructor(yypParser,244,&yymsp[-5].minor); - yy_destructor(yypParser,199,&yymsp[-2].minor); + case 234: /* delete_stmt ::= with DELETE FROM nm DOT ID_TAB */ + case 245: /* update_stmt ::= with UPDATE orconf nm DOT ID_TAB */ yytestcase(yyruleno==245); +{ yy_destructor(yypParser,249,&yymsp[-5].minor); + yy_destructor(yypParser,203,&yymsp[-2].minor); } break; - case 231: /* delete_stmt ::= with DELETE FROM ID_DB|ID_TAB */ - case 240: /* update_stmt ::= with UPDATE orconf ID_DB|ID_TAB */ yytestcase(yyruleno==240); -{ yy_destructor(yypParser,244,&yymsp[-3].minor); + case 235: /* delete_stmt ::= with DELETE FROM ID_DB|ID_TAB */ + case 246: /* update_stmt ::= with UPDATE orconf ID_DB|ID_TAB */ yytestcase(yyruleno==246); +{ yy_destructor(yypParser,249,&yymsp[-3].minor); } break; - case 234: /* where_opt ::= WHERE */ + case 238: /* where_opt ::= WHERE */ { parserContext->minorErrorBeforeNextToken("Syntax error"); - yygotominor.yy512 = new SqliteExpr(); + yygotominor.yy186 = new SqliteExpr(); } break; - case 236: /* update_stmt ::= with UPDATE orconf fullname indexed_opt SET setlist from where_opt */ + case 240: /* returning ::= RETURNING selcollist */ +{yygotominor.yy27 = yymsp[0].minor.yy27;} + break; + case 242: /* update_stmt ::= with UPDATE orconf fullname indexed_opt SET setlist from where_opt returning */ { - yygotominor.yy363 = new SqliteUpdate( - *(yymsp[-6].minor.yy418), - yymsp[-5].minor.yy440->name1, - yymsp[-5].minor.yy440->name2, - yymsp[-4].minor.yy592 ? yymsp[-4].minor.yy592->notIndexedKw : false, - yymsp[-4].minor.yy592 ? yymsp[-4].minor.yy592->indexedBy : QString(), - *(yymsp[-2].minor.yy201), - yymsp[-1].minor.yy31, - yymsp[0].minor.yy512, - yymsp[-8].minor.yy1 + yygotominor.yy41 = new SqliteUpdate( + *(yymsp[-7].minor.yy136), + yymsp[-6].minor.yy396->name1, + yymsp[-6].minor.yy396->name2, + yymsp[-5].minor.yy300 ? yymsp[-5].minor.yy300->notIndexedKw : false, + yymsp[-5].minor.yy300 ? yymsp[-5].minor.yy300->indexedBy : QString(), + *(yymsp[-3].minor.yy621), + yymsp[-2].minor.yy553, + yymsp[-1].minor.yy186, + yymsp[-9].minor.yy161, + *(yymsp[0].minor.yy27) ); - delete yymsp[-6].minor.yy418; - delete yymsp[-5].minor.yy440; - delete yymsp[-2].minor.yy201; - if (yymsp[-4].minor.yy592) - delete yymsp[-4].minor.yy592; + delete yymsp[-7].minor.yy136; + delete yymsp[-6].minor.yy396; + delete yymsp[-3].minor.yy621; + delete yymsp[0].minor.yy27; + if (yymsp[-5].minor.yy300) + delete yymsp[-5].minor.yy300; // since it's used in trigger: - objectForTokens = yygotominor.yy363; + objectForTokens = yygotominor.yy41; } break; - case 237: /* update_stmt ::= with UPDATE orconf */ + case 243: /* update_stmt ::= with UPDATE orconf */ { parserContext->minorErrorBeforeNextToken("Syntax error"); SqliteUpdate* q = new SqliteUpdate(); - q->with = yymsp[-2].minor.yy1; - yygotominor.yy363 = q; - objectForTokens = yygotominor.yy363; - delete yymsp[0].minor.yy418; + q->with = yymsp[-2].minor.yy161; + yygotominor.yy41 = q; + objectForTokens = yygotominor.yy41; + delete yymsp[0].minor.yy136; } break; - case 238: /* update_stmt ::= with UPDATE orconf nm DOT */ + case 244: /* update_stmt ::= with UPDATE orconf nm DOT */ { parserContext->minorErrorBeforeNextToken("Syntax error"); SqliteUpdate* q = new SqliteUpdate(); - q->with = yymsp[-4].minor.yy1; + q->with = yymsp[-4].minor.yy161; q->database = *(yymsp[-1].minor.yy319); - yygotominor.yy363 = q; - objectForTokens = yygotominor.yy363; - delete yymsp[-2].minor.yy418; + yygotominor.yy41 = q; + objectForTokens = yygotominor.yy41; + delete yymsp[-2].minor.yy136; delete yymsp[-1].minor.yy319; } break; - case 241: /* setlist ::= setlist COMMA nm EQ expr */ + case 247: /* setlist ::= setlist COMMA nm EQ expr */ { - yymsp[-4].minor.yy201->append(ParserSetValue(*(yymsp[-2].minor.yy319), yymsp[0].minor.yy512)); - yygotominor.yy201 = yymsp[-4].minor.yy201; + yymsp[-4].minor.yy621->append(ParserSetValue(*(yymsp[-2].minor.yy319), yymsp[0].minor.yy186)); + yygotominor.yy621 = yymsp[-4].minor.yy621; delete yymsp[-2].minor.yy319; } break; - case 242: /* setlist ::= setlist COMMA LP idlist RP EQ expr */ + case 248: /* setlist ::= setlist COMMA LP idlist RP EQ expr */ { - yymsp[-6].minor.yy201->append(ParserSetValue(*(yymsp[-3].minor.yy575), yymsp[0].minor.yy512)); - yygotominor.yy201 = yymsp[-6].minor.yy201; - delete yymsp[-3].minor.yy575; + yymsp[-6].minor.yy621->append(ParserSetValue(*(yymsp[-3].minor.yy173), yymsp[0].minor.yy186)); + yygotominor.yy621 = yymsp[-6].minor.yy621; + delete yymsp[-3].minor.yy173; } break; - case 243: /* setlist ::= nm EQ expr */ + case 249: /* setlist ::= nm EQ expr */ { - yygotominor.yy201 = new ParserSetValueList(); - yygotominor.yy201->append(ParserSetValue(*(yymsp[-2].minor.yy319), yymsp[0].minor.yy512)); + yygotominor.yy621 = new ParserSetValueList(); + yygotominor.yy621->append(ParserSetValue(*(yymsp[-2].minor.yy319), yymsp[0].minor.yy186)); delete yymsp[-2].minor.yy319; } break; - case 244: /* setlist ::= LP idlist RP EQ expr */ + case 250: /* setlist ::= LP idlist RP EQ expr */ { - yygotominor.yy201 = new ParserSetValueList(); - yygotominor.yy201->append(ParserSetValue(*(yymsp[-3].minor.yy575), yymsp[0].minor.yy512)); - delete yymsp[-3].minor.yy575; + yygotominor.yy621 = new ParserSetValueList(); + yygotominor.yy621->append(ParserSetValue(*(yymsp[-3].minor.yy173), yymsp[0].minor.yy186)); + delete yymsp[-3].minor.yy173; } break; - case 245: /* setlist ::= */ + case 251: /* setlist ::= */ { parserContext->minorErrorBeforeNextToken("Syntax error"); - yygotominor.yy201 = new ParserSetValueList(); + yygotominor.yy621 = new ParserSetValueList(); } break; - case 246: /* setlist ::= setlist COMMA */ + case 252: /* setlist ::= setlist COMMA */ { parserContext->minorErrorBeforeNextToken("Syntax error"); - yygotominor.yy201 = yymsp[-1].minor.yy201; + yygotominor.yy621 = yymsp[-1].minor.yy621; } break; - case 247: /* setlist ::= setlist COMMA ID_COL */ - case 248: /* setlist ::= ID_COL */ yytestcase(yyruleno==248); -{ yy_destructor(yypParser,274,&yymsp[-2].minor); + case 253: /* setlist ::= setlist COMMA ID_COL */ + case 254: /* setlist ::= ID_COL */ yytestcase(yyruleno==254); +{ yy_destructor(yypParser,280,&yymsp[-2].minor); } break; - case 249: /* idlist_opt ::= */ -{yygotominor.yy575 = new QStringList();} + case 255: /* idlist_opt ::= */ +{yygotominor.yy173 = new QStringList();} break; - case 250: /* idlist_opt ::= LP idlist RP */ -{yygotominor.yy575 = yymsp[-1].minor.yy575;} + case 256: /* idlist_opt ::= LP idlist RP */ +{yygotominor.yy173 = yymsp[-1].minor.yy173;} break; - case 251: /* idlist ::= idlist COMMA nm */ + case 257: /* idlist ::= idlist COMMA nm */ { - yygotominor.yy575 = yymsp[-2].minor.yy575; - *(yygotominor.yy575) << *(yymsp[0].minor.yy319); + yygotominor.yy173 = yymsp[-2].minor.yy173; + *(yygotominor.yy173) << *(yymsp[0].minor.yy319); delete yymsp[0].minor.yy319; } break; - case 252: /* idlist ::= nm */ + case 258: /* idlist ::= nm */ { - yygotominor.yy575 = new QStringList(); - *(yygotominor.yy575) << *(yymsp[0].minor.yy319); + yygotominor.yy173 = new QStringList(); + *(yygotominor.yy173) << *(yymsp[0].minor.yy319); delete yymsp[0].minor.yy319; } break; - case 253: /* idlist ::= */ + case 259: /* idlist ::= */ { parserContext->minorErrorBeforeNextToken("Syntax error"); - yygotominor.yy575 = new QStringList(); + yygotominor.yy173 = new QStringList(); } break; - case 254: /* idlist ::= idlist COMMA ID_COL */ - case 255: /* idlist ::= ID_COL */ yytestcase(yyruleno==255); -{ yy_destructor(yypParser,269,&yymsp[-2].minor); + case 260: /* idlist ::= idlist COMMA ID_COL */ + case 261: /* idlist ::= ID_COL */ yytestcase(yyruleno==261); +{ yy_destructor(yypParser,274,&yymsp[-2].minor); } break; - case 257: /* insert_stmt ::= with insert_cmd INTO fullname idlist_opt select upsert */ -{ - yygotominor.yy363 = new SqliteInsert( - yymsp[-5].minor.yy504->replace, - yymsp[-5].minor.yy504->orConflict, - yymsp[-3].minor.yy440->name1, - yymsp[-3].minor.yy440->name2, - *(yymsp[-2].minor.yy575), - yymsp[-1].minor.yy313, - yymsp[-6].minor.yy1, - yymsp[0].minor.yy400 + case 263: /* insert_stmt ::= with insert_cmd INTO fullname idlist_opt select upsert returning */ +{ + yygotominor.yy41 = new SqliteInsert( + yymsp[-6].minor.yy308->replace, + yymsp[-6].minor.yy308->orConflict, + yymsp[-4].minor.yy396->name1, + yymsp[-4].minor.yy396->name2, + *(yymsp[-3].minor.yy173), + yymsp[-2].minor.yy297, + yymsp[-7].minor.yy161, + yymsp[-1].minor.yy332, + *(yymsp[0].minor.yy27) ); - delete yymsp[-3].minor.yy440; - delete yymsp[-5].minor.yy504; - delete yymsp[-2].minor.yy575; + delete yymsp[-4].minor.yy396; + delete yymsp[-6].minor.yy308; + delete yymsp[-3].minor.yy173; + delete yymsp[0].minor.yy27; // since it's used in trigger: - objectForTokens = yygotominor.yy363; + objectForTokens = yygotominor.yy41; } break; - case 258: /* insert_stmt ::= with insert_cmd INTO fullname idlist_opt DEFAULT VALUES */ + case 264: /* insert_stmt ::= with insert_cmd INTO fullname idlist_opt DEFAULT VALUES returning */ { - yygotominor.yy363 = new SqliteInsert( - yymsp[-5].minor.yy504->replace, - yymsp[-5].minor.yy504->orConflict, - yymsp[-3].minor.yy440->name1, - yymsp[-3].minor.yy440->name2, - *(yymsp[-2].minor.yy575), - yymsp[-6].minor.yy1 + yygotominor.yy41 = new SqliteInsert( + yymsp[-6].minor.yy308->replace, + yymsp[-6].minor.yy308->orConflict, + yymsp[-4].minor.yy396->name1, + yymsp[-4].minor.yy396->name2, + *(yymsp[-3].minor.yy173), + yymsp[-7].minor.yy161, + *(yymsp[0].minor.yy27) ); - delete yymsp[-3].minor.yy440; - delete yymsp[-5].minor.yy504; - delete yymsp[-2].minor.yy575; + delete yymsp[-4].minor.yy396; + delete yymsp[-6].minor.yy308; + delete yymsp[-3].minor.yy173; + delete yymsp[0].minor.yy27; // since it's used in trigger: - objectForTokens = yygotominor.yy363; + objectForTokens = yygotominor.yy41; } break; - case 259: /* insert_stmt ::= with insert_cmd INTO */ + case 265: /* insert_stmt ::= with insert_cmd INTO */ { parserContext->minorErrorBeforeNextToken("Syntax error"); SqliteInsert* q = new SqliteInsert(); - q->replaceKw = yymsp[-1].minor.yy504->replace; - q->onConflict = yymsp[-1].minor.yy504->orConflict; - q->with = yymsp[-2].minor.yy1; - yygotominor.yy363 = q; - objectForTokens = yygotominor.yy363; - delete yymsp[-1].minor.yy504; + q->replaceKw = yymsp[-1].minor.yy308->replace; + q->onConflict = yymsp[-1].minor.yy308->orConflict; + q->with = yymsp[-2].minor.yy161; + yygotominor.yy41 = q; + objectForTokens = yygotominor.yy41; + delete yymsp[-1].minor.yy308; } break; - case 260: /* insert_stmt ::= with insert_cmd INTO nm DOT */ + case 266: /* insert_stmt ::= with insert_cmd INTO nm DOT */ { parserContext->minorErrorBeforeNextToken("Syntax error"); SqliteInsert* q = new SqliteInsert(); - q->replaceKw = yymsp[-3].minor.yy504->replace; - q->onConflict = yymsp[-3].minor.yy504->orConflict; - q->with = yymsp[-4].minor.yy1; + q->replaceKw = yymsp[-3].minor.yy308->replace; + q->onConflict = yymsp[-3].minor.yy308->orConflict; + q->with = yymsp[-4].minor.yy161; q->database = *(yymsp[-1].minor.yy319); - yygotominor.yy363 = q; - objectForTokens = yygotominor.yy363; - delete yymsp[-3].minor.yy504; + yygotominor.yy41 = q; + objectForTokens = yygotominor.yy41; + delete yymsp[-3].minor.yy308; delete yymsp[-1].minor.yy319; } break; - case 261: /* insert_stmt ::= with insert_cmd INTO ID_DB|ID_TAB */ -{ yy_destructor(yypParser,244,&yymsp[-3].minor); - yy_destructor(yypParser,277,&yymsp[-2].minor); + case 267: /* insert_stmt ::= with insert_cmd INTO ID_DB|ID_TAB */ +{ yy_destructor(yypParser,249,&yymsp[-3].minor); + yy_destructor(yypParser,283,&yymsp[-2].minor); } break; - case 262: /* insert_stmt ::= with insert_cmd INTO nm DOT ID_TAB */ -{ yy_destructor(yypParser,244,&yymsp[-5].minor); - yy_destructor(yypParser,277,&yymsp[-4].minor); - yy_destructor(yypParser,199,&yymsp[-2].minor); + case 268: /* insert_stmt ::= with insert_cmd INTO nm DOT ID_TAB */ +{ yy_destructor(yypParser,249,&yymsp[-5].minor); + yy_destructor(yypParser,283,&yymsp[-4].minor); + yy_destructor(yypParser,203,&yymsp[-2].minor); } break; - case 263: /* insert_cmd ::= INSERT orconf */ + case 269: /* insert_cmd ::= INSERT orconf */ { - yygotominor.yy504 = new ParserStubInsertOrReplace(false, *(yymsp[0].minor.yy418)); - delete yymsp[0].minor.yy418; + yygotominor.yy308 = new ParserStubInsertOrReplace(false, *(yymsp[0].minor.yy136)); + delete yymsp[0].minor.yy136; } break; - case 264: /* insert_cmd ::= REPLACE */ -{yygotominor.yy504 = new ParserStubInsertOrReplace(true);} + case 270: /* insert_cmd ::= REPLACE */ +{yygotominor.yy308 = new ParserStubInsertOrReplace(true);} break; - case 265: /* upsert ::= */ + case 271: /* upsert ::= */ { - yygotominor.yy400 = nullptr; + yygotominor.yy332 = nullptr; } break; - case 266: /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt */ + case 272: /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt */ { - yygotominor.yy400 = new SqliteUpsert(*(yymsp[-7].minor.yy403), yymsp[-5].minor.yy512, *(yymsp[-1].minor.yy201), yymsp[0].minor.yy512); - delete yymsp[-7].minor.yy403; - delete yymsp[-1].minor.yy201; - objectForTokens = yygotominor.yy400; + yygotominor.yy332 = new SqliteUpsert(*(yymsp[-7].minor.yy226), yymsp[-5].minor.yy186, *(yymsp[-1].minor.yy621), yymsp[0].minor.yy186); + delete yymsp[-7].minor.yy226; + delete yymsp[-1].minor.yy621; + objectForTokens = yygotominor.yy332; } break; - case 267: /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING */ + case 273: /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING */ { - yygotominor.yy400 = new SqliteUpsert(*(yymsp[-4].minor.yy403), yymsp[-2].minor.yy512); - delete yymsp[-4].minor.yy403; - objectForTokens = yygotominor.yy400; + yygotominor.yy332 = new SqliteUpsert(*(yymsp[-4].minor.yy226), yymsp[-2].minor.yy186); + delete yymsp[-4].minor.yy226; + objectForTokens = yygotominor.yy332; } break; - case 268: /* upsert ::= ON CONFLICT DO NOTHING */ + case 274: /* upsert ::= ON CONFLICT DO NOTHING */ { - yygotominor.yy400 = new SqliteUpsert(); - objectForTokens = yygotominor.yy400; + yygotominor.yy332 = new SqliteUpsert(); + objectForTokens = yygotominor.yy332; } break; - case 269: /* exprx ::= expr not_opt IN ID_DB */ -{ yy_destructor(yypParser,222,&yymsp[-3].minor); + case 275: /* exprx ::= expr not_opt IN ID_DB */ +{ yy_destructor(yypParser,227,&yymsp[-3].minor); } break; - case 270: /* exprx ::= expr not_opt IN nm DOT ID_TAB */ - case 271: /* exprx ::= ID_DB|ID_TAB|ID_COL|ID_FN */ yytestcase(yyruleno==271); -{ yy_destructor(yypParser,222,&yymsp[-5].minor); - yy_destructor(yypParser,199,&yymsp[-2].minor); + case 276: /* exprx ::= expr not_opt IN nm DOT ID_TAB */ + case 277: /* exprx ::= ID_DB|ID_TAB|ID_COL|ID_FN */ yytestcase(yyruleno==277); +{ yy_destructor(yypParser,227,&yymsp[-5].minor); + yy_destructor(yypParser,203,&yymsp[-2].minor); } break; - case 272: /* exprx ::= tnm DOT ID_TAB|ID_COL */ -{ yy_destructor(yypParser,230,&yymsp[-2].minor); + case 278: /* exprx ::= tnm DOT ID_TAB|ID_COL */ +{ yy_destructor(yypParser,235,&yymsp[-2].minor); } break; - case 273: /* exprx ::= tnm DOT nm DOT ID_COL */ -{ yy_destructor(yypParser,230,&yymsp[-4].minor); - yy_destructor(yypParser,199,&yymsp[-2].minor); + case 279: /* exprx ::= tnm DOT nm DOT ID_COL */ +{ yy_destructor(yypParser,235,&yymsp[-4].minor); + yy_destructor(yypParser,203,&yymsp[-2].minor); } break; - case 274: /* exprx ::= expr COLLATE ID_COLLATE */ - case 275: /* exprx ::= RAISE LP raisetype COMMA ID_ERR_MSG RP */ yytestcase(yyruleno==275); -{ yy_destructor(yypParser,222,&yymsp[-2].minor); + case 280: /* exprx ::= expr COLLATE ID_COLLATE */ + case 281: /* exprx ::= RAISE LP raisetype COMMA ID_ERR_MSG RP */ yytestcase(yyruleno==281); +{ yy_destructor(yypParser,227,&yymsp[-2].minor); } break; - case 276: /* exprx ::= CTIME_KW */ + case 282: /* exprx ::= CTIME_KW */ { - yygotominor.yy512 = new SqliteExpr(); - yygotominor.yy512->initCTime(yymsp[0].minor.yy0->value); - objectForTokens = yygotominor.yy512; + yygotominor.yy186 = new SqliteExpr(); + yygotominor.yy186->initCTime(yymsp[0].minor.yy0->value); + objectForTokens = yygotominor.yy186; } break; - case 277: /* exprx ::= LP nexprlist RP */ + case 283: /* exprx ::= LP nexprlist RP */ { - yygotominor.yy512 = new SqliteExpr(); - yygotominor.yy512->initRowValue(*(yymsp[-1].minor.yy71)); - delete yymsp[-1].minor.yy71; - objectForTokens = yygotominor.yy512; + yygotominor.yy186 = new SqliteExpr(); + yygotominor.yy186->initRowValue(*(yymsp[-1].minor.yy615)); + delete yymsp[-1].minor.yy615; + objectForTokens = yygotominor.yy186; } break; - case 278: /* exprx ::= tnm */ + case 284: /* exprx ::= tnm */ { - yygotominor.yy512 = new SqliteExpr(); - if (yymsp[0].minor.yy590->isLiteral()) - yygotominor.yy512->initLiteral(yymsp[0].minor.yy590->toLiteral()); + yygotominor.yy186 = new SqliteExpr(); + if (yymsp[0].minor.yy380->isLiteral()) + yygotominor.yy186->initLiteral(yymsp[0].minor.yy380->toLiteral()); else - yygotominor.yy512->initId(yymsp[0].minor.yy590->toName()); + yygotominor.yy186->initId(yymsp[0].minor.yy380->toName()); //parserContext->errorBeforeLastToken("Syntax error "); - delete yymsp[0].minor.yy590; - objectForTokens = yygotominor.yy512; + delete yymsp[0].minor.yy380; + objectForTokens = yygotominor.yy186; } break; - case 279: /* exprx ::= tnm DOT nm */ + case 285: /* exprx ::= tnm DOT nm */ { - yygotominor.yy512 = new SqliteExpr(); - if (yymsp[-2].minor.yy590->isName()) - yygotominor.yy512->initId(yymsp[-2].minor.yy590->toName(), *(yymsp[0].minor.yy319)); + yygotominor.yy186 = new SqliteExpr(); + if (yymsp[-2].minor.yy380->isName()) + yygotominor.yy186->initId(yymsp[-2].minor.yy380->toName(), *(yymsp[0].minor.yy319)); else parserContext->errorAtToken("Syntax error ", -3); - delete yymsp[-2].minor.yy590; + delete yymsp[-2].minor.yy380; delete yymsp[0].minor.yy319; - objectForTokens = yygotominor.yy512; + objectForTokens = yygotominor.yy186; } break; - case 280: /* exprx ::= tnm DOT nm DOT nm */ + case 286: /* exprx ::= tnm DOT */ { - yygotominor.yy512 = new SqliteExpr(); - if (yymsp[-4].minor.yy590->isName()) - yygotominor.yy512->initId(yymsp[-4].minor.yy590->toName(), *(yymsp[-2].minor.yy319), *(yymsp[0].minor.yy319)); + yygotominor.yy186 = new SqliteExpr(); + objectForTokens = yygotominor.yy186; + if (yymsp[-1].minor.yy380->isName()) + { + yygotominor.yy186->initId(yymsp[-1].minor.yy380->toName(), QString()); + parserContext->minorErrorAfterLastToken("Syntax error "); + } + else + parserContext->errorAtToken("Syntax error ", -3); + + delete yymsp[-1].minor.yy380; + } + break; + case 287: /* exprx ::= tnm DOT nm DOT nm */ +{ + yygotominor.yy186 = new SqliteExpr(); + if (yymsp[-4].minor.yy380->isName()) + yygotominor.yy186->initId(yymsp[-4].minor.yy380->toName(), *(yymsp[-2].minor.yy319), *(yymsp[0].minor.yy319)); else parserContext->errorAtToken("Syntax error ", -5); - delete yymsp[-4].minor.yy590; + delete yymsp[-4].minor.yy380; delete yymsp[-2].minor.yy319; delete yymsp[0].minor.yy319; - objectForTokens = yygotominor.yy512; + objectForTokens = yygotominor.yy186; + } + break; + case 288: /* exprx ::= tnm DOT nm DOT */ +{ + yygotominor.yy186 = new SqliteExpr(); + objectForTokens = yygotominor.yy186; + if (yymsp[-3].minor.yy380->isName()) + { + yygotominor.yy186->initId(yymsp[-3].minor.yy380->toName(), *(yymsp[-1].minor.yy319), QString()); + parserContext->minorErrorAfterLastToken("Syntax error "); + } + else + parserContext->errorAtToken("Syntax error ", -5); + + delete yymsp[-3].minor.yy380; + delete yymsp[-1].minor.yy319; } break; - case 281: /* exprx ::= VARIABLE */ + case 289: /* exprx ::= VARIABLE */ { - yygotominor.yy512 = new SqliteExpr(); - yygotominor.yy512->initBindParam(yymsp[0].minor.yy0->value); - objectForTokens = yygotominor.yy512; + yygotominor.yy186 = new SqliteExpr(); + yygotominor.yy186->initBindParam(yymsp[0].minor.yy0->value); + objectForTokens = yygotominor.yy186; } break; - case 282: /* exprx ::= expr COLLATE ids */ + case 290: /* exprx ::= expr COLLATE ids */ { - yygotominor.yy512 = new SqliteExpr(); - yygotominor.yy512->initCollate(yymsp[-2].minor.yy512, *(yymsp[0].minor.yy319)); + yygotominor.yy186 = new SqliteExpr(); + yygotominor.yy186->initCollate(yymsp[-2].minor.yy186, *(yymsp[0].minor.yy319)); delete yymsp[0].minor.yy319; - objectForTokens = yygotominor.yy512; + objectForTokens = yygotominor.yy186; + } + break; + case 291: /* exprx ::= CAST LP expr AS typetoken RP */ +{ + yygotominor.yy186 = new SqliteExpr(); + yygotominor.yy186->initCast(yymsp[-3].minor.yy186, yymsp[-1].minor.yy267); + objectForTokens = yygotominor.yy186; + } + break; + case 292: /* exprx ::= ID LP distinct exprlist RP */ +{ + yygotominor.yy186 = new SqliteExpr(); + yygotominor.yy186->initFunction(stripObjName(yymsp[-4].minor.yy0->value), *(yymsp[-2].minor.yy130), *(yymsp[-1].minor.yy615)); + delete yymsp[-2].minor.yy130; + delete yymsp[-1].minor.yy615; + objectForTokens = yygotominor.yy186; } break; - case 283: /* exprx ::= CAST LP expr AS typetoken RP */ + case 293: /* exprx ::= ID LP STAR RP */ { - yygotominor.yy512 = new SqliteExpr(); - yygotominor.yy512->initCast(yymsp[-3].minor.yy512, yymsp[-1].minor.yy57); - objectForTokens = yygotominor.yy512; + yygotominor.yy186 = new SqliteExpr(); + yygotominor.yy186->initFunction(stripObjName(yymsp[-3].minor.yy0->value), true); + objectForTokens = yygotominor.yy186; } break; - case 284: /* exprx ::= ID LP distinct exprlist RP */ + case 294: /* exprx ::= expr AND expr */ + case 295: /* exprx ::= expr OR expr */ yytestcase(yyruleno==295); + case 296: /* exprx ::= expr LT|GT|GE|LE expr */ yytestcase(yyruleno==296); + case 297: /* exprx ::= expr EQ|NE expr */ yytestcase(yyruleno==297); + case 298: /* exprx ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ yytestcase(yyruleno==298); + case 299: /* exprx ::= expr PLUS|MINUS expr */ yytestcase(yyruleno==299); + case 300: /* exprx ::= expr STAR|SLASH|REM expr */ yytestcase(yyruleno==300); + case 301: /* exprx ::= expr CONCAT expr */ yytestcase(yyruleno==301); { - yygotominor.yy512 = new SqliteExpr(); - yygotominor.yy512->initFunction(yymsp[-4].minor.yy0->value, *(yymsp[-2].minor.yy386), *(yymsp[-1].minor.yy71)); - delete yymsp[-2].minor.yy386; - delete yymsp[-1].minor.yy71; - objectForTokens = yygotominor.yy512; + yygotominor.yy186 = new SqliteExpr(); + yygotominor.yy186->initBinOp(yymsp[-2].minor.yy186, yymsp[-1].minor.yy0->value, yymsp[0].minor.yy186); + objectForTokens = yygotominor.yy186; } break; - case 285: /* exprx ::= ID LP STAR RP */ + case 302: /* exprx ::= expr not_opt likeop expr */ { - yygotominor.yy512 = new SqliteExpr(); - yygotominor.yy512->initFunction(yymsp[-3].minor.yy0->value, true); - objectForTokens = yygotominor.yy512; + yygotominor.yy186 = new SqliteExpr(); + yygotominor.yy186->initLike(yymsp[-3].minor.yy186, *(yymsp[-2].minor.yy225), *(yymsp[-1].minor.yy274), yymsp[0].minor.yy186); + delete yymsp[-2].minor.yy225; + delete yymsp[-1].minor.yy274; + objectForTokens = yygotominor.yy186; } break; - case 286: /* exprx ::= expr AND expr */ - case 287: /* exprx ::= expr OR expr */ yytestcase(yyruleno==287); - case 288: /* exprx ::= expr LT|GT|GE|LE expr */ yytestcase(yyruleno==288); - case 289: /* exprx ::= expr EQ|NE expr */ yytestcase(yyruleno==289); - case 290: /* exprx ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ yytestcase(yyruleno==290); - case 291: /* exprx ::= expr PLUS|MINUS expr */ yytestcase(yyruleno==291); - case 292: /* exprx ::= expr STAR|SLASH|REM expr */ yytestcase(yyruleno==292); - case 293: /* exprx ::= expr CONCAT expr */ yytestcase(yyruleno==293); + case 303: /* exprx ::= expr not_opt likeop expr ESCAPE expr */ { - yygotominor.yy512 = new SqliteExpr(); - yygotominor.yy512->initBinOp(yymsp[-2].minor.yy512, yymsp[-1].minor.yy0->value, yymsp[0].minor.yy512); - objectForTokens = yygotominor.yy512; + yygotominor.yy186 = new SqliteExpr(); + yygotominor.yy186->initLike(yymsp[-5].minor.yy186, *(yymsp[-4].minor.yy225), *(yymsp[-3].minor.yy274), yymsp[-2].minor.yy186, yymsp[0].minor.yy186); + delete yymsp[-4].minor.yy225; + delete yymsp[-3].minor.yy274; + objectForTokens = yygotominor.yy186; } break; - case 294: /* exprx ::= expr not_opt likeop expr */ + case 304: /* exprx ::= expr ISNULL|NOTNULL */ { - yygotominor.yy512 = new SqliteExpr(); - yygotominor.yy512->initLike(yymsp[-3].minor.yy512, *(yymsp[-2].minor.yy611), *(yymsp[-1].minor.yy40), yymsp[0].minor.yy512); - delete yymsp[-2].minor.yy611; - delete yymsp[-1].minor.yy40; - objectForTokens = yygotominor.yy512; + yygotominor.yy186 = new SqliteExpr(); + yygotominor.yy186->initNull(yymsp[-1].minor.yy186, yymsp[0].minor.yy0->value); + objectForTokens = yygotominor.yy186; } break; - case 295: /* exprx ::= expr not_opt likeop expr ESCAPE expr */ + case 305: /* exprx ::= expr NOT NULL */ { - yygotominor.yy512 = new SqliteExpr(); - yygotominor.yy512->initLike(yymsp[-5].minor.yy512, *(yymsp[-4].minor.yy611), *(yymsp[-3].minor.yy40), yymsp[-2].minor.yy512, yymsp[0].minor.yy512); - delete yymsp[-4].minor.yy611; - delete yymsp[-3].minor.yy40; - objectForTokens = yygotominor.yy512; + yygotominor.yy186 = new SqliteExpr(); + yygotominor.yy186->initNull(yymsp[-2].minor.yy186, "NOT NULL"); + objectForTokens = yygotominor.yy186; } break; - case 296: /* exprx ::= expr ISNULL|NOTNULL */ + case 306: /* exprx ::= expr IS not_opt expr */ { - yygotominor.yy512 = new SqliteExpr(); - yygotominor.yy512->initNull(yymsp[-1].minor.yy512, yymsp[0].minor.yy0->value); - objectForTokens = yygotominor.yy512; + yygotominor.yy186 = new SqliteExpr(); + yygotominor.yy186->initIs(yymsp[-3].minor.yy186, *(yymsp[-1].minor.yy225), yymsp[0].minor.yy186); + delete yymsp[-1].minor.yy225; + objectForTokens = yygotominor.yy186; } break; - case 297: /* exprx ::= expr NOT NULL */ + case 307: /* exprx ::= expr IS NOT DISTINCT FROM expr */ { - yygotominor.yy512 = new SqliteExpr(); - yygotominor.yy512->initNull(yymsp[-2].minor.yy512, "NOT NULL"); - objectForTokens = yygotominor.yy512; + yygotominor.yy186 = new SqliteExpr(); + yygotominor.yy186->initDistinct(yymsp[-5].minor.yy186, true, yymsp[0].minor.yy186); + objectForTokens = yygotominor.yy186; } break; - case 298: /* exprx ::= expr IS not_opt expr */ + case 308: /* exprx ::= expr IS DISTINCT FROM expr */ { - yygotominor.yy512 = new SqliteExpr(); - yygotominor.yy512->initIs(yymsp[-3].minor.yy512, *(yymsp[-1].minor.yy611), yymsp[0].minor.yy512); - delete yymsp[-1].minor.yy611; - objectForTokens = yygotominor.yy512; + yygotominor.yy186 = new SqliteExpr(); + yygotominor.yy186->initDistinct(yymsp[-4].minor.yy186, false, yymsp[0].minor.yy186); + objectForTokens = yygotominor.yy186; } break; - case 299: /* exprx ::= NOT expr */ + case 309: /* exprx ::= NOT expr */ { - yygotominor.yy512 = new SqliteExpr(); - yygotominor.yy512->initUnaryOp(yymsp[0].minor.yy512, yymsp[-1].minor.yy0->value); + yygotominor.yy186 = new SqliteExpr(); + yygotominor.yy186->initUnaryOp(yymsp[0].minor.yy186, yymsp[-1].minor.yy0->value); } break; - case 300: /* exprx ::= BITNOT expr */ - case 302: /* exprx ::= PLUS expr */ yytestcase(yyruleno==302); + case 310: /* exprx ::= BITNOT expr */ + case 312: /* exprx ::= PLUS expr */ yytestcase(yyruleno==312); { - yygotominor.yy512 = new SqliteExpr(); - yygotominor.yy512->initUnaryOp(yymsp[0].minor.yy512, yymsp[-1].minor.yy0->value); - objectForTokens = yygotominor.yy512; + yygotominor.yy186 = new SqliteExpr(); + yygotominor.yy186->initUnaryOp(yymsp[0].minor.yy186, yymsp[-1].minor.yy0->value); + objectForTokens = yygotominor.yy186; } break; - case 301: /* exprx ::= MINUS expr */ + case 311: /* exprx ::= MINUS expr */ { - yygotominor.yy512 = new SqliteExpr(); - if (yymsp[0].minor.yy512->mode == SqliteExpr::Mode::LITERAL_VALUE && + yygotominor.yy186 = new SqliteExpr(); + if (yymsp[0].minor.yy186->mode == SqliteExpr::Mode::LITERAL_VALUE && parserContext->isCandidateForMaxNegativeNumber() && - yymsp[0].minor.yy512->literalValue == static_cast(0L)) + yymsp[0].minor.yy186->literalValue == static_cast(0L)) { - yygotominor.yy512->initLiteral(std::numeric_limits::min()); - delete yymsp[0].minor.yy512; + yygotominor.yy186->initLiteral(std::numeric_limits::min()); + delete yymsp[0].minor.yy186; } else { - yygotominor.yy512->initUnaryOp(yymsp[0].minor.yy512, yymsp[-1].minor.yy0->value); + yygotominor.yy186->initUnaryOp(yymsp[0].minor.yy186, yymsp[-1].minor.yy0->value); } - objectForTokens = yygotominor.yy512; + objectForTokens = yygotominor.yy186; } break; - case 303: /* exprx ::= expr not_opt BETWEEN expr AND expr */ + case 313: /* exprx ::= expr PTR expr */ { - yygotominor.yy512 = new SqliteExpr(); - yygotominor.yy512->initBetween(yymsp[-5].minor.yy512, *(yymsp[-4].minor.yy611), yymsp[-2].minor.yy512, yymsp[0].minor.yy512); - delete yymsp[-4].minor.yy611; - objectForTokens = yygotominor.yy512; + yygotominor.yy186 = new SqliteExpr(); + yygotominor.yy186->initPtrOp(yymsp[-2].minor.yy186, yymsp[-1].minor.yy0->value, yymsp[0].minor.yy186); + objectForTokens = yygotominor.yy186; } break; - case 304: /* exprx ::= expr not_opt IN LP exprlist RP */ + case 314: /* exprx ::= expr not_opt BETWEEN expr AND expr */ { - yygotominor.yy512 = new SqliteExpr(); - yygotominor.yy512->initIn(yymsp[-5].minor.yy512, *(yymsp[-4].minor.yy611), *(yymsp[-1].minor.yy71)); - delete yymsp[-4].minor.yy611; - delete yymsp[-1].minor.yy71; - objectForTokens = yygotominor.yy512; + yygotominor.yy186 = new SqliteExpr(); + yygotominor.yy186->initBetween(yymsp[-5].minor.yy186, *(yymsp[-4].minor.yy225), yymsp[-2].minor.yy186, yymsp[0].minor.yy186); + delete yymsp[-4].minor.yy225; + objectForTokens = yygotominor.yy186; } break; - case 305: /* exprx ::= LP select RP */ + case 315: /* exprx ::= expr not_opt IN LP exprlist RP */ { - yygotominor.yy512 = new SqliteExpr(); - yygotominor.yy512->initSubSelect(yymsp[-1].minor.yy313); - objectForTokens = yygotominor.yy512; + yygotominor.yy186 = new SqliteExpr(); + yygotominor.yy186->initIn(yymsp[-5].minor.yy186, *(yymsp[-4].minor.yy225), *(yymsp[-1].minor.yy615)); + delete yymsp[-4].minor.yy225; + delete yymsp[-1].minor.yy615; + objectForTokens = yygotominor.yy186; } break; - case 306: /* exprx ::= expr not_opt IN LP select RP */ + case 316: /* exprx ::= LP select RP */ { - yygotominor.yy512 = new SqliteExpr(); - yygotominor.yy512->initIn(yymsp[-5].minor.yy512, *(yymsp[-4].minor.yy611), yymsp[-1].minor.yy313); - delete yymsp[-4].minor.yy611; - objectForTokens = yygotominor.yy512; + yygotominor.yy186 = new SqliteExpr(); + yygotominor.yy186->initSubSelect(yymsp[-1].minor.yy297); + objectForTokens = yygotominor.yy186; } break; - case 307: /* exprx ::= expr not_opt IN nm dbnm */ + case 317: /* exprx ::= expr not_opt IN LP select RP */ { - yygotominor.yy512 = new SqliteExpr(); - yygotominor.yy512->initIn(yymsp[-4].minor.yy512, *(yymsp[-3].minor.yy611), *(yymsp[-1].minor.yy319), *(yymsp[0].minor.yy319)); - delete yymsp[-3].minor.yy611; + yygotominor.yy186 = new SqliteExpr(); + yygotominor.yy186->initIn(yymsp[-5].minor.yy186, *(yymsp[-4].minor.yy225), yymsp[-1].minor.yy297); + delete yymsp[-4].minor.yy225; + objectForTokens = yygotominor.yy186; + } + break; + case 318: /* exprx ::= expr not_opt IN nm dbnm */ +{ + yygotominor.yy186 = new SqliteExpr(); + yygotominor.yy186->initIn(yymsp[-4].minor.yy186, *(yymsp[-3].minor.yy225), *(yymsp[-1].minor.yy319), *(yymsp[0].minor.yy319)); + delete yymsp[-3].minor.yy225; delete yymsp[-1].minor.yy319; - objectForTokens = yygotominor.yy512; + objectForTokens = yygotominor.yy186; } break; - case 308: /* exprx ::= EXISTS LP select RP */ + case 319: /* exprx ::= EXISTS LP select RP */ { - yygotominor.yy512 = new SqliteExpr(); - yygotominor.yy512->initExists(yymsp[-1].minor.yy313); - objectForTokens = yygotominor.yy512; + yygotominor.yy186 = new SqliteExpr(); + yygotominor.yy186->initExists(yymsp[-1].minor.yy297); + objectForTokens = yygotominor.yy186; } break; - case 309: /* exprx ::= CASE case_operand case_exprlist case_else END */ + case 320: /* exprx ::= CASE case_operand case_exprlist case_else END */ { - yygotominor.yy512 = new SqliteExpr(); - yygotominor.yy512->initCase(yymsp[-3].minor.yy512, *(yymsp[-2].minor.yy71), yymsp[-1].minor.yy512); - delete yymsp[-2].minor.yy71; - objectForTokens = yygotominor.yy512; + yygotominor.yy186 = new SqliteExpr(); + yygotominor.yy186->initCase(yymsp[-3].minor.yy186, *(yymsp[-2].minor.yy615), yymsp[-1].minor.yy186); + delete yymsp[-2].minor.yy615; + objectForTokens = yygotominor.yy186; } break; - case 310: /* exprx ::= RAISE LP IGNORE RP */ + case 321: /* exprx ::= RAISE LP IGNORE RP */ { - yygotominor.yy512 = new SqliteExpr(); - yygotominor.yy512->initRaise(yymsp[-1].minor.yy0->value); - objectForTokens = yygotominor.yy512; + yygotominor.yy186 = new SqliteExpr(); + yygotominor.yy186->initRaise(yymsp[-1].minor.yy0->value); + objectForTokens = yygotominor.yy186; } break; - case 311: /* exprx ::= RAISE LP raisetype COMMA nm RP */ + case 322: /* exprx ::= RAISE LP raisetype COMMA nm RP */ { - yygotominor.yy512 = new SqliteExpr(); - yygotominor.yy512->initRaise(yymsp[-3].minor.yy0->value, *(yymsp[-1].minor.yy319)); + yygotominor.yy186 = new SqliteExpr(); + yygotominor.yy186->initRaise(yymsp[-3].minor.yy0->value, *(yymsp[-1].minor.yy319)); delete yymsp[-1].minor.yy319; - objectForTokens = yygotominor.yy512; + objectForTokens = yygotominor.yy186; } break; - case 312: /* exprx ::= ID LP distinct exprlist RP filter_over */ + case 323: /* exprx ::= ID LP distinct exprlist RP filter_over */ { - yygotominor.yy512 = new SqliteExpr(); - yygotominor.yy512->initWindowFunction(yymsp[-5].minor.yy0->value, *(yymsp[-3].minor.yy386), *(yymsp[-2].minor.yy71), yymsp[0].minor.yy247); - delete yymsp[-3].minor.yy386; - delete yymsp[-2].minor.yy71; - objectForTokens = yygotominor.yy512; + yygotominor.yy186 = new SqliteExpr(); + yygotominor.yy186->initWindowFunction(stripObjName(yymsp[-5].minor.yy0->value), *(yymsp[-3].minor.yy130), *(yymsp[-2].minor.yy615), yymsp[0].minor.yy181); + delete yymsp[-3].minor.yy130; + delete yymsp[-2].minor.yy615; + objectForTokens = yygotominor.yy186; } break; - case 313: /* exprx ::= ID LP STAR RP filter_over */ + case 324: /* exprx ::= ID LP STAR RP filter_over */ { - yygotominor.yy512 = new SqliteExpr(); - yygotominor.yy512->initWindowFunction(yymsp[-4].minor.yy0->value, yymsp[0].minor.yy247); - objectForTokens = yygotominor.yy512; + yygotominor.yy186 = new SqliteExpr(); + yygotominor.yy186->initWindowFunction(stripObjName(yymsp[-4].minor.yy0->value), yymsp[0].minor.yy181); + objectForTokens = yygotominor.yy186; } break; - case 314: /* expr ::= */ + case 325: /* expr ::= */ { - yygotominor.yy512 = new SqliteExpr(); - objectForTokens = yygotominor.yy512; + yygotominor.yy186 = new SqliteExpr(); + objectForTokens = yygotominor.yy186; parserContext->minorErrorAfterLastToken("Syntax error "); } break; - case 318: /* likeop ::= LIKE_KW|MATCH */ -{yygotominor.yy40 = new SqliteExpr::LikeOp(SqliteExpr::likeOp(yymsp[0].minor.yy0->value));} + case 329: /* likeop ::= LIKE_KW|MATCH */ +{yygotominor.yy274 = new SqliteExpr::LikeOp(SqliteExpr::likeOp(yymsp[0].minor.yy0->value));} break; - case 319: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */ + case 330: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */ { - yymsp[-4].minor.yy71->append(yymsp[-2].minor.yy512); - yymsp[-4].minor.yy71->append(yymsp[0].minor.yy512); - yygotominor.yy71 = yymsp[-4].minor.yy71; + yymsp[-4].minor.yy615->append(yymsp[-2].minor.yy186); + yymsp[-4].minor.yy615->append(yymsp[0].minor.yy186); + yygotominor.yy615 = yymsp[-4].minor.yy615; } break; - case 320: /* case_exprlist ::= WHEN expr THEN expr */ + case 331: /* case_exprlist ::= WHEN expr THEN expr */ { - yygotominor.yy71 = new ParserExprList(); - yygotominor.yy71->append(yymsp[-2].minor.yy512); - yygotominor.yy71->append(yymsp[0].minor.yy512); + yygotominor.yy615 = new ParserExprList(); + yygotominor.yy615->append(yymsp[-2].minor.yy186); + yygotominor.yy615->append(yymsp[0].minor.yy186); } break; - case 327: /* nexprlist ::= nexprlist COMMA expr */ + case 338: /* nexprlist ::= nexprlist COMMA expr */ { - yymsp[-2].minor.yy71->append(yymsp[0].minor.yy512); - yygotominor.yy71 = yymsp[-2].minor.yy71; + yymsp[-2].minor.yy615->append(yymsp[0].minor.yy186); + yygotominor.yy615 = yymsp[-2].minor.yy615; DONT_INHERIT_TOKENS("nexprlist"); } break; - case 328: /* nexprlist ::= exprx */ + case 339: /* nexprlist ::= exprx */ { - yygotominor.yy71 = new ParserExprList(); - yygotominor.yy71->append(yymsp[0].minor.yy512); + yygotominor.yy615 = new ParserExprList(); + yygotominor.yy615->append(yymsp[0].minor.yy186); } break; - case 329: /* cmd ::= CREATE uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ + case 340: /* cmd ::= CREATE uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ { - yygotominor.yy363 = new SqliteCreateIndex( - *(yymsp[-10].minor.yy611), - *(yymsp[-8].minor.yy611), + yygotominor.yy41 = new SqliteCreateIndex( + *(yymsp[-10].minor.yy225), + *(yymsp[-8].minor.yy225), *(yymsp[-7].minor.yy319), *(yymsp[-6].minor.yy319), *(yymsp[-4].minor.yy319), - *(yymsp[-2].minor.yy403), - yymsp[0].minor.yy512 + *(yymsp[-2].minor.yy226), + yymsp[0].minor.yy186 ); - delete yymsp[-8].minor.yy611; - delete yymsp[-10].minor.yy611; + delete yymsp[-8].minor.yy225; + delete yymsp[-10].minor.yy225; delete yymsp[-7].minor.yy319; delete yymsp[-6].minor.yy319; delete yymsp[-4].minor.yy319; - delete yymsp[-2].minor.yy403; - objectForTokens = yygotominor.yy363; + delete yymsp[-2].minor.yy226; + objectForTokens = yygotominor.yy41; } break; - case 330: /* cmd ::= CREATE uniqueflag INDEX ifnotexists nm dbnm ON ID_TAB */ -{ yy_destructor(yypParser,199,&yymsp[-3].minor); + case 341: /* cmd ::= CREATE uniqueflag INDEX ifnotexists nm dbnm ON ID_TAB */ +{ yy_destructor(yypParser,203,&yymsp[-3].minor); } break; - case 335: /* idxlist_opt ::= */ -{yygotominor.yy223 = new ParserIndexedColumnList();} + case 346: /* idxlist_opt ::= */ +{yygotominor.yy627 = new ParserIndexedColumnList();} break; - case 336: /* idxlist_opt ::= LP idxlist RP */ -{yygotominor.yy223 = yymsp[-1].minor.yy223;} + case 347: /* idxlist_opt ::= LP idxlist RP */ +{yygotominor.yy627 = yymsp[-1].minor.yy627;} break; - case 337: /* idxlist ::= idxlist COMMA idxlist_single */ + case 348: /* idxlist ::= idxlist COMMA idxlist_single */ { - yymsp[-2].minor.yy223->append(yymsp[0].minor.yy268); - yygotominor.yy223 = yymsp[-2].minor.yy223; + yymsp[-2].minor.yy627->append(yymsp[0].minor.yy110); + yygotominor.yy627 = yymsp[-2].minor.yy627; DONT_INHERIT_TOKENS("idxlist"); } break; - case 338: /* idxlist ::= idxlist_single */ + case 349: /* idxlist ::= idxlist_single */ { - yygotominor.yy223 = new ParserIndexedColumnList(); - yygotominor.yy223->append(yymsp[0].minor.yy268); + yygotominor.yy627 = new ParserIndexedColumnList(); + yygotominor.yy627->append(yymsp[0].minor.yy110); } break; - case 339: /* idxlist_single ::= nm collate sortorder */ - case 340: /* idxlist_single ::= ID_COL */ yytestcase(yyruleno==340); + case 350: /* idxlist_single ::= nm collate sortorder */ + case 351: /* idxlist_single ::= ID_COL */ yytestcase(yyruleno==351); { SqliteIndexedColumn* obj = new SqliteIndexedColumn( *(yymsp[-2].minor.yy319), *(yymsp[-1].minor.yy319), - *(yymsp[0].minor.yy549) + *(yymsp[0].minor.yy35) ); - yygotominor.yy268 = obj; - delete yymsp[0].minor.yy549; + yygotominor.yy110 = obj; + delete yymsp[0].minor.yy35; delete yymsp[-2].minor.yy319; delete yymsp[-1].minor.yy319; - objectForTokens = yygotominor.yy268; + objectForTokens = yygotominor.yy110; } break; - case 344: /* cmd ::= DROP INDEX ifexists fullname */ + case 355: /* cmd ::= DROP INDEX ifexists fullname */ { - yygotominor.yy363 = new SqliteDropIndex(*(yymsp[-1].minor.yy611), yymsp[0].minor.yy440->name1, yymsp[0].minor.yy440->name2); - delete yymsp[-1].minor.yy611; - delete yymsp[0].minor.yy440; - objectForTokens = yygotominor.yy363; + yygotominor.yy41 = new SqliteDropIndex(*(yymsp[-1].minor.yy225), yymsp[0].minor.yy396->name1, yymsp[0].minor.yy396->name2); + delete yymsp[-1].minor.yy225; + delete yymsp[0].minor.yy396; + objectForTokens = yygotominor.yy41; } break; - case 347: /* cmd ::= VACUUM vinto */ + case 358: /* cmd ::= VACUUM vinto */ { - yygotominor.yy363 = new SqliteVacuum(yymsp[0].minor.yy512); - objectForTokens = yygotominor.yy363; + yygotominor.yy41 = new SqliteVacuum(yymsp[0].minor.yy186); + objectForTokens = yygotominor.yy41; } break; - case 348: /* cmd ::= VACUUM nm vinto */ + case 359: /* cmd ::= VACUUM nm vinto */ { - yygotominor.yy363 = new SqliteVacuum(*(yymsp[-1].minor.yy319), yymsp[0].minor.yy512); + yygotominor.yy41 = new SqliteVacuum(*(yymsp[-1].minor.yy319), yymsp[0].minor.yy186); delete yymsp[-1].minor.yy319; - objectForTokens = yygotominor.yy363; + objectForTokens = yygotominor.yy41; } break; - case 351: /* cmd ::= PRAGMA nm dbnm */ + case 362: /* cmd ::= PRAGMA nm dbnm */ { - yygotominor.yy363 = new SqlitePragma(*(yymsp[-1].minor.yy319), *(yymsp[0].minor.yy319)); + yygotominor.yy41 = new SqlitePragma(*(yymsp[-1].minor.yy319), *(yymsp[0].minor.yy319)); delete yymsp[-1].minor.yy319; delete yymsp[0].minor.yy319; - objectForTokens = yygotominor.yy363; + objectForTokens = yygotominor.yy41; } break; - case 352: /* cmd ::= PRAGMA nm dbnm EQ nmnum */ - case 354: /* cmd ::= PRAGMA nm dbnm EQ minus_num */ yytestcase(yyruleno==354); + case 363: /* cmd ::= PRAGMA nm dbnm EQ nmnum */ + case 365: /* cmd ::= PRAGMA nm dbnm EQ minus_num */ yytestcase(yyruleno==365); { - yygotominor.yy363 = new SqlitePragma(*(yymsp[-3].minor.yy319), *(yymsp[-2].minor.yy319), *(yymsp[0].minor.yy229), true); + yygotominor.yy41 = new SqlitePragma(*(yymsp[-3].minor.yy319), *(yymsp[-2].minor.yy319), *(yymsp[0].minor.yy393), true); delete yymsp[-3].minor.yy319; delete yymsp[-2].minor.yy319; - delete yymsp[0].minor.yy229; - objectForTokens = yygotominor.yy363; + delete yymsp[0].minor.yy393; + objectForTokens = yygotominor.yy41; } break; - case 353: /* cmd ::= PRAGMA nm dbnm LP nmnum RP */ - case 355: /* cmd ::= PRAGMA nm dbnm LP minus_num RP */ yytestcase(yyruleno==355); + case 364: /* cmd ::= PRAGMA nm dbnm LP nmnum RP */ + case 366: /* cmd ::= PRAGMA nm dbnm LP minus_num RP */ yytestcase(yyruleno==366); { - yygotominor.yy363 = new SqlitePragma(*(yymsp[-4].minor.yy319), *(yymsp[-3].minor.yy319), *(yymsp[-1].minor.yy229), false); + yygotominor.yy41 = new SqlitePragma(*(yymsp[-4].minor.yy319), *(yymsp[-3].minor.yy319), *(yymsp[-1].minor.yy393), false); delete yymsp[-4].minor.yy319; delete yymsp[-3].minor.yy319; - delete yymsp[-1].minor.yy229; - objectForTokens = yygotominor.yy363; + delete yymsp[-1].minor.yy393; + objectForTokens = yygotominor.yy41; } break; - case 359: /* nmnum ::= nm */ + case 370: /* nmnum ::= nm */ { - yygotominor.yy229 = new QVariant(*(yymsp[0].minor.yy319)); + yygotominor.yy393 = new QVariant(*(yymsp[0].minor.yy319)); delete yymsp[0].minor.yy319; } break; - case 360: /* nmnum ::= ON */ - case 361: /* nmnum ::= DELETE */ yytestcase(yyruleno==361); - case 362: /* nmnum ::= DEFAULT */ yytestcase(yyruleno==362); -{yygotominor.yy229 = new QVariant(yymsp[0].minor.yy0->value);} + case 371: /* nmnum ::= ON */ + case 372: /* nmnum ::= DELETE */ yytestcase(yyruleno==372); + case 373: /* nmnum ::= DEFAULT */ yytestcase(yyruleno==373); +{yygotominor.yy393 = new QVariant(yymsp[0].minor.yy0->value);} break; - case 365: /* minus_num ::= MINUS number */ + case 376: /* minus_num ::= MINUS number */ { - if (yymsp[0].minor.yy229->type() == QVariant::Double) - *(yymsp[0].minor.yy229) = -(yymsp[0].minor.yy229->toDouble()); - else if (yymsp[0].minor.yy229->type() == QVariant::LongLong) + if (yymsp[0].minor.yy393->type() == QVariant::Double) + *(yymsp[0].minor.yy393) = -(yymsp[0].minor.yy393->toDouble()); + else if (yymsp[0].minor.yy393->type() == QVariant::LongLong) { if (parserContext->isCandidateForMaxNegativeNumber()) - *(yymsp[0].minor.yy229) = std::numeric_limits::min(); + *(yymsp[0].minor.yy393) = std::numeric_limits::min(); else - *(yymsp[0].minor.yy229) = -(yymsp[0].minor.yy229->toLongLong()); + *(yymsp[0].minor.yy393) = -(yymsp[0].minor.yy393->toLongLong()); } else Q_ASSERT_X(true, "producing minus number", "QVariant is neither of Double or LongLong."); - yygotominor.yy229 = yymsp[0].minor.yy229; + yygotominor.yy393 = yymsp[0].minor.yy393; } break; - case 368: /* cmd ::= CREATE temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON nm foreach_clause when_clause BEGIN trigger_cmd_list END */ + case 379: /* cmd ::= CREATE temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON nm foreach_clause when_clause BEGIN trigger_cmd_list END */ { - yygotominor.yy363 = new SqliteCreateTrigger( - *(yymsp[-13].minor.yy386), - *(yymsp[-11].minor.yy611), + yygotominor.yy41 = new SqliteCreateTrigger( + *(yymsp[-13].minor.yy130), + *(yymsp[-11].minor.yy225), *(yymsp[-10].minor.yy319), *(yymsp[-9].minor.yy319), *(yymsp[-5].minor.yy319), - *(yymsp[-8].minor.yy532), - yymsp[-7].minor.yy151, - *(yymsp[-4].minor.yy83), - yymsp[-3].minor.yy512, - *(yymsp[-1].minor.yy110), + *(yymsp[-8].minor.yy120), + yymsp[-7].minor.yy259, + *(yymsp[-4].minor.yy456), + yymsp[-3].minor.yy186, + *(yymsp[-1].minor.yy240), 3 ); - delete yymsp[-11].minor.yy611; - delete yymsp[-13].minor.yy386; - delete yymsp[-8].minor.yy532; - delete yymsp[-4].minor.yy83; + delete yymsp[-11].minor.yy225; + delete yymsp[-13].minor.yy130; + delete yymsp[-8].minor.yy120; + delete yymsp[-4].minor.yy456; delete yymsp[-10].minor.yy319; delete yymsp[-5].minor.yy319; delete yymsp[-9].minor.yy319; - delete yymsp[-1].minor.yy110; - objectForTokens = yygotominor.yy363; + delete yymsp[-1].minor.yy240; + objectForTokens = yygotominor.yy41; } break; - case 369: /* cmd ::= CREATE temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON nm foreach_clause when_clause */ + case 380: /* cmd ::= CREATE temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON nm foreach_clause when_clause */ { QList CL; - yygotominor.yy363 = new SqliteCreateTrigger( - *(yymsp[-10].minor.yy386), - *(yymsp[-8].minor.yy611), + yygotominor.yy41 = new SqliteCreateTrigger( + *(yymsp[-10].minor.yy130), + *(yymsp[-8].minor.yy225), *(yymsp[-7].minor.yy319), *(yymsp[-6].minor.yy319), *(yymsp[-2].minor.yy319), - *(yymsp[-5].minor.yy532), - yymsp[-4].minor.yy151, - *(yymsp[-1].minor.yy83), - yymsp[0].minor.yy512, + *(yymsp[-5].minor.yy120), + yymsp[-4].minor.yy259, + *(yymsp[-1].minor.yy456), + yymsp[0].minor.yy186, CL, 3 ); - delete yymsp[-8].minor.yy611; - delete yymsp[-10].minor.yy386; - delete yymsp[-5].minor.yy532; - delete yymsp[-1].minor.yy83; + delete yymsp[-8].minor.yy225; + delete yymsp[-10].minor.yy130; + delete yymsp[-5].minor.yy120; + delete yymsp[-1].minor.yy456; delete yymsp[-7].minor.yy319; delete yymsp[-2].minor.yy319; delete yymsp[-6].minor.yy319; - objectForTokens = yygotominor.yy363; + objectForTokens = yygotominor.yy41; parserContext->minorErrorAfterLastToken("Syntax error"); } break; - case 370: /* cmd ::= CREATE temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON nm foreach_clause when_clause BEGIN trigger_cmd_list */ + case 381: /* cmd ::= CREATE temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON nm foreach_clause when_clause BEGIN trigger_cmd_list */ { - yygotominor.yy363 = new SqliteCreateTrigger( - *(yymsp[-12].minor.yy386), - *(yymsp[-10].minor.yy611), + yygotominor.yy41 = new SqliteCreateTrigger( + *(yymsp[-12].minor.yy130), + *(yymsp[-10].minor.yy225), *(yymsp[-9].minor.yy319), *(yymsp[-8].minor.yy319), *(yymsp[-4].minor.yy319), - *(yymsp[-7].minor.yy532), - yymsp[-6].minor.yy151, - *(yymsp[-3].minor.yy83), - yymsp[-2].minor.yy512, - *(yymsp[0].minor.yy110), + *(yymsp[-7].minor.yy120), + yymsp[-6].minor.yy259, + *(yymsp[-3].minor.yy456), + yymsp[-2].minor.yy186, + *(yymsp[0].minor.yy240), 3 ); - delete yymsp[-10].minor.yy611; - delete yymsp[-12].minor.yy386; - delete yymsp[-7].minor.yy532; - delete yymsp[-3].minor.yy83; + delete yymsp[-10].minor.yy225; + delete yymsp[-12].minor.yy130; + delete yymsp[-7].minor.yy120; + delete yymsp[-3].minor.yy456; delete yymsp[-9].minor.yy319; delete yymsp[-4].minor.yy319; delete yymsp[-8].minor.yy319; - delete yymsp[0].minor.yy110; - objectForTokens = yygotominor.yy363; + delete yymsp[0].minor.yy240; + objectForTokens = yygotominor.yy41; parserContext->minorErrorAfterLastToken("Syntax error"); } break; - case 371: /* cmd ::= CREATE temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON ID_TAB */ -{ yy_destructor(yypParser,201,&yymsp[-8].minor); - yy_destructor(yypParser,199,&yymsp[-5].minor); - yy_destructor(yypParser,292,&yymsp[-3].minor); - yy_destructor(yypParser,293,&yymsp[-2].minor); + case 382: /* cmd ::= CREATE temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON ID_TAB */ +{ yy_destructor(yypParser,205,&yymsp[-8].minor); + yy_destructor(yypParser,203,&yymsp[-5].minor); + yy_destructor(yypParser,298,&yymsp[-3].minor); + yy_destructor(yypParser,299,&yymsp[-2].minor); } break; - case 374: /* trigger_time ::= BEFORE */ -{yygotominor.yy532 = new SqliteCreateTrigger::Time(SqliteCreateTrigger::Time::BEFORE);} + case 385: /* trigger_time ::= BEFORE */ +{yygotominor.yy120 = new SqliteCreateTrigger::Time(SqliteCreateTrigger::Time::BEFORE);} break; - case 375: /* trigger_time ::= AFTER */ -{yygotominor.yy532 = new SqliteCreateTrigger::Time(SqliteCreateTrigger::Time::AFTER);} + case 386: /* trigger_time ::= AFTER */ +{yygotominor.yy120 = new SqliteCreateTrigger::Time(SqliteCreateTrigger::Time::AFTER);} break; - case 376: /* trigger_time ::= INSTEAD OF */ -{yygotominor.yy532 = new SqliteCreateTrigger::Time(SqliteCreateTrigger::Time::INSTEAD_OF);} + case 387: /* trigger_time ::= INSTEAD OF */ +{yygotominor.yy120 = new SqliteCreateTrigger::Time(SqliteCreateTrigger::Time::INSTEAD_OF);} break; - case 377: /* trigger_time ::= */ -{yygotominor.yy532 = new SqliteCreateTrigger::Time(SqliteCreateTrigger::Time::null);} + case 388: /* trigger_time ::= */ +{yygotominor.yy120 = new SqliteCreateTrigger::Time(SqliteCreateTrigger::Time::null);} break; - case 378: /* trigger_event ::= DELETE */ + case 389: /* trigger_event ::= DELETE */ { - yygotominor.yy151 = new SqliteCreateTrigger::Event(SqliteCreateTrigger::Event::DELETE); - objectForTokens = yygotominor.yy151; + yygotominor.yy259 = new SqliteCreateTrigger::Event(SqliteCreateTrigger::Event::DELETE); + objectForTokens = yygotominor.yy259; } break; - case 379: /* trigger_event ::= INSERT */ + case 390: /* trigger_event ::= INSERT */ { - yygotominor.yy151 = new SqliteCreateTrigger::Event(SqliteCreateTrigger::Event::INSERT); - objectForTokens = yygotominor.yy151; + yygotominor.yy259 = new SqliteCreateTrigger::Event(SqliteCreateTrigger::Event::INSERT); + objectForTokens = yygotominor.yy259; } break; - case 380: /* trigger_event ::= UPDATE */ + case 391: /* trigger_event ::= UPDATE */ { - yygotominor.yy151 = new SqliteCreateTrigger::Event(SqliteCreateTrigger::Event::UPDATE); - objectForTokens = yygotominor.yy151; + yygotominor.yy259 = new SqliteCreateTrigger::Event(SqliteCreateTrigger::Event::UPDATE); + objectForTokens = yygotominor.yy259; } break; - case 381: /* trigger_event ::= UPDATE OF idlist */ + case 392: /* trigger_event ::= UPDATE OF idlist */ { - yygotominor.yy151 = new SqliteCreateTrigger::Event(*(yymsp[0].minor.yy575)); - delete yymsp[0].minor.yy575; - objectForTokens = yygotominor.yy151; + yygotominor.yy259 = new SqliteCreateTrigger::Event(*(yymsp[0].minor.yy173)); + delete yymsp[0].minor.yy173; + objectForTokens = yygotominor.yy259; } break; - case 382: /* foreach_clause ::= */ -{yygotominor.yy83 = new SqliteCreateTrigger::Scope(SqliteCreateTrigger::Scope::null);} + case 393: /* foreach_clause ::= */ +{yygotominor.yy456 = new SqliteCreateTrigger::Scope(SqliteCreateTrigger::Scope::null);} break; - case 383: /* foreach_clause ::= FOR EACH ROW */ -{yygotominor.yy83 = new SqliteCreateTrigger::Scope(SqliteCreateTrigger::Scope::FOR_EACH_ROW);} + case 394: /* foreach_clause ::= FOR EACH ROW */ +{yygotominor.yy456 = new SqliteCreateTrigger::Scope(SqliteCreateTrigger::Scope::FOR_EACH_ROW);} break; - case 386: /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ + case 397: /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ { - yymsp[-2].minor.yy110->append(yymsp[-1].minor.yy363); - yygotominor.yy110 = yymsp[-2].minor.yy110; + yymsp[-2].minor.yy240->append(yymsp[-1].minor.yy41); + yygotominor.yy240 = yymsp[-2].minor.yy240; DONT_INHERIT_TOKENS("trigger_cmd_list"); } break; - case 387: /* trigger_cmd_list ::= trigger_cmd SEMI */ + case 398: /* trigger_cmd_list ::= trigger_cmd SEMI */ { - yygotominor.yy110 = new ParserQueryList(); - yygotominor.yy110->append(yymsp[-1].minor.yy363); + yygotominor.yy240 = new ParserQueryList(); + yygotominor.yy240->append(yymsp[-1].minor.yy41); } break; - case 388: /* trigger_cmd_list ::= SEMI */ + case 399: /* trigger_cmd_list ::= SEMI */ { - yygotominor.yy110 = new ParserQueryList(); + yygotominor.yy240 = new ParserQueryList(); parserContext->minorErrorAfterLastToken("Syntax error"); } break; - case 393: /* raisetype ::= ROLLBACK|ABORT|FAIL */ + case 404: /* raisetype ::= ROLLBACK|ABORT|FAIL */ {yygotominor.yy0 = yymsp[0].minor.yy0;} break; - case 394: /* cmd ::= DROP TRIGGER ifexists fullname */ + case 405: /* cmd ::= DROP TRIGGER ifexists fullname */ { - yygotominor.yy363 = new SqliteDropTrigger(*(yymsp[-1].minor.yy611), yymsp[0].minor.yy440->name1, yymsp[0].minor.yy440->name2); - delete yymsp[-1].minor.yy611; - delete yymsp[0].minor.yy440; - objectForTokens = yygotominor.yy363; + yygotominor.yy41 = new SqliteDropTrigger(*(yymsp[-1].minor.yy225), yymsp[0].minor.yy396->name1, yymsp[0].minor.yy396->name2); + delete yymsp[-1].minor.yy225; + delete yymsp[0].minor.yy396; + objectForTokens = yygotominor.yy41; } break; - case 397: /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ + case 408: /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ { - yygotominor.yy363 = new SqliteAttach(*(yymsp[-4].minor.yy611), yymsp[-3].minor.yy512, yymsp[-1].minor.yy512, yymsp[0].minor.yy512); - delete yymsp[-4].minor.yy611; - objectForTokens = yygotominor.yy363; + yygotominor.yy41 = new SqliteAttach(*(yymsp[-4].minor.yy225), yymsp[-3].minor.yy186, yymsp[-1].minor.yy186, yymsp[0].minor.yy186); + delete yymsp[-4].minor.yy225; + objectForTokens = yygotominor.yy41; } break; - case 398: /* cmd ::= DETACH database_kw_opt expr */ + case 409: /* cmd ::= DETACH database_kw_opt expr */ { - yygotominor.yy363 = new SqliteDetach(*(yymsp[-1].minor.yy611), yymsp[0].minor.yy512); - delete yymsp[-1].minor.yy611; - objectForTokens = yygotominor.yy363; + yygotominor.yy41 = new SqliteDetach(*(yymsp[-1].minor.yy225), yymsp[0].minor.yy186); + delete yymsp[-1].minor.yy225; + objectForTokens = yygotominor.yy41; } break; - case 403: /* cmd ::= REINDEX */ -{yygotominor.yy363 = new SqliteReindex();} + case 414: /* cmd ::= REINDEX */ +{yygotominor.yy41 = new SqliteReindex();} break; - case 404: /* cmd ::= REINDEX nm dbnm */ - case 405: /* cmd ::= REINDEX ID_COLLATE */ yytestcase(yyruleno==405); + case 415: /* cmd ::= REINDEX nm dbnm */ + case 416: /* cmd ::= REINDEX ID_COLLATE */ yytestcase(yyruleno==416); { - yygotominor.yy363 = new SqliteReindex(*(yymsp[-1].minor.yy319), *(yymsp[0].minor.yy319)); + yygotominor.yy41 = new SqliteReindex(*(yymsp[-1].minor.yy319), *(yymsp[0].minor.yy319)); delete yymsp[-1].minor.yy319; delete yymsp[0].minor.yy319; - objectForTokens = yygotominor.yy363; + objectForTokens = yygotominor.yy41; } break; - case 408: /* cmd ::= ANALYZE */ + case 419: /* cmd ::= ANALYZE */ { - yygotominor.yy363 = new SqliteAnalyze(); - objectForTokens = yygotominor.yy363; + yygotominor.yy41 = new SqliteAnalyze(); + objectForTokens = yygotominor.yy41; } break; - case 409: /* cmd ::= ANALYZE nm dbnm */ + case 420: /* cmd ::= ANALYZE nm dbnm */ { - yygotominor.yy363 = new SqliteAnalyze(*(yymsp[-1].minor.yy319), *(yymsp[0].minor.yy319)); + yygotominor.yy41 = new SqliteAnalyze(*(yymsp[-1].minor.yy319), *(yymsp[0].minor.yy319)); delete yymsp[-1].minor.yy319; delete yymsp[0].minor.yy319; - objectForTokens = yygotominor.yy363; + objectForTokens = yygotominor.yy41; } break; - case 412: /* cmd ::= ALTER TABLE fullname RENAME TO nm */ + case 423: /* cmd ::= ALTER TABLE fullname RENAME TO nm */ { - yygotominor.yy363 = new SqliteAlterTable( - yymsp[-3].minor.yy440->name1, - yymsp[-3].minor.yy440->name2, + yygotominor.yy41 = new SqliteAlterTable( + yymsp[-3].minor.yy396->name1, + yymsp[-3].minor.yy396->name2, *(yymsp[0].minor.yy319) ); delete yymsp[0].minor.yy319; - delete yymsp[-3].minor.yy440; - objectForTokens = yygotominor.yy363; + delete yymsp[-3].minor.yy396; + objectForTokens = yygotominor.yy41; } break; - case 413: /* cmd ::= ALTER TABLE fullname ADD kwcolumn_opt column */ + case 424: /* cmd ::= ALTER TABLE fullname ADD kwcolumn_opt column */ { - yygotominor.yy363 = new SqliteAlterTable( - yymsp[-3].minor.yy440->name1, - yymsp[-3].minor.yy440->name2, - *(yymsp[-1].minor.yy611), - yymsp[0].minor.yy147 + yygotominor.yy41 = new SqliteAlterTable( + yymsp[-3].minor.yy396->name1, + yymsp[-3].minor.yy396->name2, + *(yymsp[-1].minor.yy225), + yymsp[0].minor.yy3 ); - delete yymsp[-1].minor.yy611; - delete yymsp[-3].minor.yy440; - objectForTokens = yygotominor.yy363; + delete yymsp[-1].minor.yy225; + delete yymsp[-3].minor.yy396; + objectForTokens = yygotominor.yy41; } break; - case 414: /* cmd ::= ALTER TABLE fullname RENAME TO ID_TAB_NEW */ -{ yy_destructor(yypParser,203,&yymsp[-3].minor); + case 425: /* cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ +{ + yygotominor.yy41 = new SqliteAlterTable( + yymsp[-3].minor.yy396->name1, + yymsp[-3].minor.yy396->name2, + *(yymsp[-1].minor.yy225), + *(yymsp[0].minor.yy319) + ); + delete yymsp[-1].minor.yy225; + delete yymsp[-3].minor.yy396; + delete yymsp[0].minor.yy319; + } + break; + case 426: /* cmd ::= ALTER TABLE fullname RENAME TO ID_TAB_NEW */ +{ yy_destructor(yypParser,207,&yymsp[-3].minor); } break; - case 420: /* create_vtab ::= CREATE VIRTUAL TABLE ifnotexists nm dbnm USING nm */ + case 432: /* create_vtab ::= CREATE VIRTUAL TABLE ifnotexists nm dbnm USING nm */ { - yygotominor.yy363 = new SqliteCreateVirtualTable( - *(yymsp[-4].minor.yy611), + yygotominor.yy41 = new SqliteCreateVirtualTable( + *(yymsp[-4].minor.yy225), *(yymsp[-3].minor.yy319), *(yymsp[-2].minor.yy319), *(yymsp[0].minor.yy319) ); - delete yymsp[-4].minor.yy611; + delete yymsp[-4].minor.yy225; delete yymsp[-3].minor.yy319; delete yymsp[-2].minor.yy319; delete yymsp[0].minor.yy319; - objectForTokens = yygotominor.yy363; + objectForTokens = yygotominor.yy41; } break; - case 421: /* create_vtab ::= CREATE VIRTUAL TABLE ifnotexists nm dbnm USING nm LP vtabarglist RP */ + case 433: /* create_vtab ::= CREATE VIRTUAL TABLE ifnotexists nm dbnm USING nm LP vtabarglist RP */ { - yygotominor.yy363 = new SqliteCreateVirtualTable( - *(yymsp[-7].minor.yy611), + yygotominor.yy41 = new SqliteCreateVirtualTable( + *(yymsp[-7].minor.yy225), *(yymsp[-6].minor.yy319), *(yymsp[-5].minor.yy319), *(yymsp[-3].minor.yy319), - *(yymsp[-1].minor.yy575) + *(yymsp[-1].minor.yy173) ); delete yymsp[-6].minor.yy319; delete yymsp[-5].minor.yy319; delete yymsp[-3].minor.yy319; - delete yymsp[-7].minor.yy611; - delete yymsp[-1].minor.yy575; - objectForTokens = yygotominor.yy363; + delete yymsp[-7].minor.yy225; + delete yymsp[-1].minor.yy173; + objectForTokens = yygotominor.yy41; } break; - case 424: /* vtabarglist ::= vtabarg */ + case 436: /* vtabarglist ::= vtabarg */ { - yygotominor.yy575 = new QStringList(); - yygotominor.yy575->append((yymsp[0].minor.yy319)->mid(1)); // mid(1) to skip the first whitespace added in vtabarg + yygotominor.yy173 = new QStringList(); + yygotominor.yy173->append((yymsp[0].minor.yy319)->mid(1)); // mid(1) to skip the first whitespace added in vtabarg delete yymsp[0].minor.yy319; } break; - case 425: /* vtabarglist ::= vtabarglist COMMA vtabarg */ + case 437: /* vtabarglist ::= vtabarglist COMMA vtabarg */ { - yymsp[-2].minor.yy575->append((yymsp[0].minor.yy319)->mid(1)); // mid(1) to skip the first whitespace added in vtabarg - yygotominor.yy575 = yymsp[-2].minor.yy575; + yymsp[-2].minor.yy173->append((yymsp[0].minor.yy319)->mid(1)); // mid(1) to skip the first whitespace added in vtabarg + yygotominor.yy173 = yymsp[-2].minor.yy173; delete yymsp[0].minor.yy319; DONT_INHERIT_TOKENS("vtabarglist"); } break; - case 427: /* vtabarg ::= vtabarg vtabargtoken */ + case 439: /* vtabarg ::= vtabarg vtabargtoken */ { yymsp[-1].minor.yy319->append(" "+ *(yymsp[0].minor.yy319)); yygotominor.yy319 = yymsp[-1].minor.yy319; delete yymsp[0].minor.yy319; } break; - case 428: /* vtabargtoken ::= ANY */ + case 440: /* vtabargtoken ::= ANY */ { yygotominor.yy319 = new QString(yymsp[0].minor.yy0->value); } break; - case 429: /* vtabargtoken ::= LP anylist RP */ + case 441: /* vtabargtoken ::= LP anylist RP */ { yygotominor.yy319 = new QString("("); yygotominor.yy319->append(*(yymsp[-1].minor.yy319)); @@ -5391,7 +5525,7 @@ static void yy_reduce( delete yymsp[-1].minor.yy319; } break; - case 431: /* anylist ::= anylist LP anylist RP */ + case 443: /* anylist ::= anylist LP anylist RP */ { yygotominor.yy319 = yymsp[-3].minor.yy319; yygotominor.yy319->append("("); @@ -5401,258 +5535,268 @@ static void yy_reduce( DONT_INHERIT_TOKENS("anylist"); } break; - case 432: /* anylist ::= anylist ANY */ + case 444: /* anylist ::= anylist ANY */ { yygotominor.yy319 = yymsp[-1].minor.yy319; yygotominor.yy319->append(yymsp[0].minor.yy0->value); DONT_INHERIT_TOKENS("anylist"); } break; - case 433: /* with ::= */ -{yygotominor.yy1 = nullptr;} + case 445: /* with ::= */ +{yygotominor.yy161 = nullptr;} break; - case 434: /* with ::= WITH wqlist */ + case 446: /* with ::= WITH wqlist */ { - yygotominor.yy1 = new SqliteWith(); - yygotominor.yy1->cteList = *(yymsp[0].minor.yy593); - delete yymsp[0].minor.yy593; - objectForTokens = yygotominor.yy1; + yygotominor.yy161 = new SqliteWith(); + yygotominor.yy161->cteList = *(yymsp[0].minor.yy164); + delete yymsp[0].minor.yy164; + objectForTokens = yygotominor.yy161; } break; - case 435: /* with ::= WITH RECURSIVE wqlist */ + case 447: /* with ::= WITH RECURSIVE wqlist */ { - yygotominor.yy1 = new SqliteWith(); - yygotominor.yy1->cteList = *(yymsp[0].minor.yy593); - yygotominor.yy1->recursive = true; - delete yymsp[0].minor.yy593; - objectForTokens = yygotominor.yy1; + yygotominor.yy161 = new SqliteWith(); + yygotominor.yy161->cteList = *(yymsp[0].minor.yy164); + yygotominor.yy161->recursive = true; + delete yymsp[0].minor.yy164; + objectForTokens = yygotominor.yy161; } break; - case 436: /* wqlist ::= wqcte */ + case 448: /* wqas ::= AS */ +{yygotominor.yy21 = new SqliteWith::CommonTableExpression::AsMode(SqliteWith::CommonTableExpression::ANY);} + break; + case 449: /* wqas ::= AS MATERIALIZED */ +{yygotominor.yy21 = new SqliteWith::CommonTableExpression::AsMode(SqliteWith::CommonTableExpression::MATERIALIZED);} + break; + case 450: /* wqas ::= AS NOT MATERIALIZED */ +{yygotominor.yy21 = new SqliteWith::CommonTableExpression::AsMode(SqliteWith::CommonTableExpression::NOT_MATERIALIZED);} + break; + case 451: /* wqlist ::= wqcte */ { - yygotominor.yy593 = new ParserCteList(); - yygotominor.yy593->append(yymsp[0].minor.yy446); + yygotominor.yy164 = new ParserCteList(); + yygotominor.yy164->append(yymsp[0].minor.yy146); } break; - case 437: /* wqlist ::= wqlist COMMA wqcte */ + case 452: /* wqlist ::= wqlist COMMA wqcte */ { - yygotominor.yy593 = yymsp[-2].minor.yy593; - yygotominor.yy593->append(yymsp[0].minor.yy446); + yygotominor.yy164 = yymsp[-2].minor.yy164; + yygotominor.yy164->append(yymsp[0].minor.yy146); DONT_INHERIT_TOKENS("wqlist"); } break; - case 438: /* wqlist ::= ID_TAB_NEW */ + case 453: /* wqlist ::= ID_TAB_NEW */ { parserContext->minorErrorBeforeNextToken("Syntax error"); } break; - case 439: /* wqcte ::= nm idxlist_opt AS LP select RP */ + case 454: /* wqcte ::= nm idxlist_opt wqas LP select RP */ { - yygotominor.yy446 = new SqliteWith::CommonTableExpression(*(yymsp[-5].minor.yy319), *(yymsp[-4].minor.yy223), yymsp[-1].minor.yy313); + yygotominor.yy146 = new SqliteWith::CommonTableExpression(*(yymsp[-5].minor.yy319), *(yymsp[-4].minor.yy627), yymsp[-1].minor.yy297, *(yymsp[-3].minor.yy21)); delete yymsp[-5].minor.yy319; - delete yymsp[-4].minor.yy223; - objectForTokens = yygotominor.yy446; + delete yymsp[-4].minor.yy627; + delete yymsp[-3].minor.yy21; + objectForTokens = yygotominor.yy146; } break; - case 440: /* windowdefn_list ::= windowdefn */ + case 455: /* windowdefn_list ::= windowdefn */ { - yygotominor.yy299 = new ParserWindowDefList(); - yygotominor.yy299->append(yymsp[0].minor.yy266); + yygotominor.yy525 = new ParserWindowDefList(); + yygotominor.yy525->append(yymsp[0].minor.yy562); } break; - case 441: /* windowdefn_list ::= windowdefn_list COMMA windowdefn */ + case 456: /* windowdefn_list ::= windowdefn_list COMMA windowdefn */ { - yymsp[-2].minor.yy299->append(yymsp[0].minor.yy266); - yygotominor.yy299 = yymsp[-2].minor.yy299; + yymsp[-2].minor.yy525->append(yymsp[0].minor.yy562); + yygotominor.yy525 = yymsp[-2].minor.yy525; DONT_INHERIT_TOKENS("windowdefn_list"); } break; - case 442: /* windowdefn ::= nm AS LP window RP */ + case 457: /* windowdefn ::= nm AS LP window RP */ { - yygotominor.yy266 = new SqliteWindowDefinition(*(yymsp[-4].minor.yy319), yymsp[-1].minor.yy334); + yygotominor.yy562 = new SqliteWindowDefinition(*(yymsp[-4].minor.yy319), yymsp[-1].minor.yy162); delete yymsp[-4].minor.yy319; - objectForTokens = yygotominor.yy266; + objectForTokens = yygotominor.yy562; } break; - case 443: /* window ::= PARTITION BY nexprlist orderby_opt frame_opt */ + case 458: /* window ::= PARTITION BY nexprlist orderby_opt frame_opt */ { - yygotominor.yy334 = new SqliteWindowDefinition::Window(); - yygotominor.yy334->initPartitionBy(QString(), *(yymsp[-2].minor.yy71), *(yymsp[-1].minor.yy403), yymsp[0].minor.yy41); - delete yymsp[-2].minor.yy71; - delete yymsp[-1].minor.yy403; - objectForTokens = yygotominor.yy334; + yygotominor.yy162 = new SqliteWindowDefinition::Window(); + yygotominor.yy162->initPartitionBy(QString(), *(yymsp[-2].minor.yy615), *(yymsp[-1].minor.yy226), yymsp[0].minor.yy149); + delete yymsp[-2].minor.yy615; + delete yymsp[-1].minor.yy226; + objectForTokens = yygotominor.yy162; } break; - case 444: /* window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ + case 459: /* window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ { - yygotominor.yy334 = new SqliteWindowDefinition::Window(); - yygotominor.yy334->initPartitionBy(*(yymsp[-5].minor.yy319), *(yymsp[-2].minor.yy71), *(yymsp[-1].minor.yy403), yymsp[0].minor.yy41); - delete yymsp[-2].minor.yy71; + yygotominor.yy162 = new SqliteWindowDefinition::Window(); + yygotominor.yy162->initPartitionBy(*(yymsp[-5].minor.yy319), *(yymsp[-2].minor.yy615), *(yymsp[-1].minor.yy226), yymsp[0].minor.yy149); + delete yymsp[-2].minor.yy615; delete yymsp[-5].minor.yy319; - delete yymsp[-1].minor.yy403; - objectForTokens = yygotominor.yy334; + delete yymsp[-1].minor.yy226; + objectForTokens = yygotominor.yy162; } break; - case 445: /* window ::= ORDER BY sortlist frame_opt */ + case 460: /* window ::= ORDER BY sortlist frame_opt */ { - yygotominor.yy334 = new SqliteWindowDefinition::Window(); - yygotominor.yy334->initOrderBy(QString(), *(yymsp[-1].minor.yy403), yymsp[0].minor.yy41); - delete yymsp[-1].minor.yy403; - objectForTokens = yygotominor.yy334; + yygotominor.yy162 = new SqliteWindowDefinition::Window(); + yygotominor.yy162->initOrderBy(QString(), *(yymsp[-1].minor.yy226), yymsp[0].minor.yy149); + delete yymsp[-1].minor.yy226; + objectForTokens = yygotominor.yy162; } break; - case 446: /* window ::= nm ORDER BY sortlist frame_opt */ + case 461: /* window ::= nm ORDER BY sortlist frame_opt */ { - yygotominor.yy334 = new SqliteWindowDefinition::Window(); - yygotominor.yy334->initOrderBy(*(yymsp[-4].minor.yy319), *(yymsp[-1].minor.yy403), yymsp[0].minor.yy41); - delete yymsp[-1].minor.yy403; + yygotominor.yy162 = new SqliteWindowDefinition::Window(); + yygotominor.yy162->initOrderBy(*(yymsp[-4].minor.yy319), *(yymsp[-1].minor.yy226), yymsp[0].minor.yy149); + delete yymsp[-1].minor.yy226; delete yymsp[-4].minor.yy319; - objectForTokens = yygotominor.yy334; + objectForTokens = yygotominor.yy162; } break; - case 447: /* window ::= frame_opt */ + case 462: /* window ::= frame_opt */ { - yygotominor.yy334 = new SqliteWindowDefinition::Window(); - yygotominor.yy334->init(QString(), yymsp[0].minor.yy41); - objectForTokens = yygotominor.yy334; + yygotominor.yy162 = new SqliteWindowDefinition::Window(); + yygotominor.yy162->init(QString(), yymsp[0].minor.yy149); + objectForTokens = yygotominor.yy162; } break; - case 448: /* window ::= nm frame_opt */ + case 463: /* window ::= nm frame_opt */ { - yygotominor.yy334 = new SqliteWindowDefinition::Window(); - yygotominor.yy334->init(QString(), yymsp[0].minor.yy41); + yygotominor.yy162 = new SqliteWindowDefinition::Window(); + yygotominor.yy162->init(QString(), yymsp[0].minor.yy149); delete yymsp[-1].minor.yy319; - objectForTokens = yygotominor.yy334; + objectForTokens = yygotominor.yy162; } break; - case 449: /* frame_opt ::= */ -{yygotominor.yy41 = nullptr;} + case 464: /* frame_opt ::= */ +{yygotominor.yy149 = nullptr;} break; - case 450: /* frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ + case 465: /* frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ { - yygotominor.yy41 = new SqliteWindowDefinition::Window::Frame(*(yymsp[-2].minor.yy419), yymsp[-1].minor.yy442, nullptr, *(yymsp[0].minor.yy63)); - delete yymsp[-2].minor.yy419; - delete yymsp[0].minor.yy63; - objectForTokens = yygotominor.yy41; + yygotominor.yy149 = new SqliteWindowDefinition::Window::Frame(*(yymsp[-2].minor.yy143), yymsp[-1].minor.yy285, nullptr, *(yymsp[0].minor.yy237)); + delete yymsp[-2].minor.yy143; + delete yymsp[0].minor.yy237; + objectForTokens = yygotominor.yy149; } break; - case 451: /* frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ + case 466: /* frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ { - yygotominor.yy41 = new SqliteWindowDefinition::Window::Frame(*(yymsp[-5].minor.yy419), yymsp[-3].minor.yy442, yymsp[-1].minor.yy442, *(yymsp[0].minor.yy63)); - delete yymsp[-5].minor.yy419; - delete yymsp[0].minor.yy63; - objectForTokens = yygotominor.yy41; + yygotominor.yy149 = new SqliteWindowDefinition::Window::Frame(*(yymsp[-5].minor.yy143), yymsp[-3].minor.yy285, yymsp[-1].minor.yy285, *(yymsp[0].minor.yy237)); + delete yymsp[-5].minor.yy143; + delete yymsp[0].minor.yy237; + objectForTokens = yygotominor.yy149; } break; - case 452: /* range_or_rows ::= RANGE|ROWS|GROUPS */ + case 467: /* range_or_rows ::= RANGE|ROWS|GROUPS */ { - yygotominor.yy419 = new SqliteWindowDefinition::Window::Frame::RangeOrRows( + yygotominor.yy143 = new SqliteWindowDefinition::Window::Frame::RangeOrRows( SqliteWindowDefinition::Window::Frame::toRangeOrRows(yymsp[0].minor.yy0->value) ); } break; - case 453: /* frame_bound_s ::= frame_bound */ - case 455: /* frame_bound_e ::= frame_bound */ yytestcase(yyruleno==455); + case 468: /* frame_bound_s ::= frame_bound */ + case 470: /* frame_bound_e ::= frame_bound */ yytestcase(yyruleno==470); { - yygotominor.yy442 = yymsp[0].minor.yy442; - objectForTokens = yygotominor.yy442; + yygotominor.yy285 = yymsp[0].minor.yy285; + objectForTokens = yygotominor.yy285; } break; - case 454: /* frame_bound_s ::= UNBOUNDED PRECEDING */ - case 456: /* frame_bound_e ::= UNBOUNDED FOLLOWING */ yytestcase(yyruleno==456); - case 458: /* frame_bound ::= CURRENT ROW */ yytestcase(yyruleno==458); + case 469: /* frame_bound_s ::= UNBOUNDED PRECEDING */ + case 471: /* frame_bound_e ::= UNBOUNDED FOLLOWING */ yytestcase(yyruleno==471); + case 473: /* frame_bound ::= CURRENT ROW */ yytestcase(yyruleno==473); { - yygotominor.yy442 = new SqliteWindowDefinition::Window::Frame::Bound(nullptr, yymsp[-1].minor.yy0->value + " " + yymsp[0].minor.yy0->value); - objectForTokens = yygotominor.yy442; + yygotominor.yy285 = new SqliteWindowDefinition::Window::Frame::Bound(nullptr, yymsp[-1].minor.yy0->value + " " + yymsp[0].minor.yy0->value); + objectForTokens = yygotominor.yy285; } break; - case 457: /* frame_bound ::= expr PRECEDING|FOLLOWING */ + case 472: /* frame_bound ::= expr PRECEDING|FOLLOWING */ { - yygotominor.yy442 = new SqliteWindowDefinition::Window::Frame::Bound(yymsp[-1].minor.yy512, yymsp[0].minor.yy0->value); - objectForTokens = yygotominor.yy442; + yygotominor.yy285 = new SqliteWindowDefinition::Window::Frame::Bound(yymsp[-1].minor.yy186, yymsp[0].minor.yy0->value); + objectForTokens = yygotominor.yy285; } break; - case 459: /* frame_exclude_opt ::= */ + case 474: /* frame_exclude_opt ::= */ { - yygotominor.yy63 = new SqliteWindowDefinition::Window::Frame::Exclude( + yygotominor.yy237 = new SqliteWindowDefinition::Window::Frame::Exclude( SqliteWindowDefinition::Window::Frame::Exclude::null ); } break; - case 460: /* frame_exclude_opt ::= EXCLUDE frame_exclude */ + case 475: /* frame_exclude_opt ::= EXCLUDE frame_exclude */ { - yygotominor.yy63 = yymsp[0].minor.yy63; + yygotominor.yy237 = yymsp[0].minor.yy237; } break; - case 461: /* frame_exclude ::= NO OTHERS */ + case 476: /* frame_exclude ::= NO OTHERS */ { - yygotominor.yy63 = new SqliteWindowDefinition::Window::Frame::Exclude( + yygotominor.yy237 = new SqliteWindowDefinition::Window::Frame::Exclude( SqliteWindowDefinition::Window::Frame::Exclude::NO_OTHERS ); } break; - case 462: /* frame_exclude ::= CURRENT ROW */ + case 477: /* frame_exclude ::= CURRENT ROW */ { - yygotominor.yy63 = new SqliteWindowDefinition::Window::Frame::Exclude( + yygotominor.yy237 = new SqliteWindowDefinition::Window::Frame::Exclude( SqliteWindowDefinition::Window::Frame::Exclude::CURRENT_ROW ); } break; - case 463: /* frame_exclude ::= GROUP */ + case 478: /* frame_exclude ::= GROUP */ { - yygotominor.yy63 = new SqliteWindowDefinition::Window::Frame::Exclude( + yygotominor.yy237 = new SqliteWindowDefinition::Window::Frame::Exclude( SqliteWindowDefinition::Window::Frame::Exclude::GROUP ); } break; - case 464: /* frame_exclude ::= TIES */ + case 479: /* frame_exclude ::= TIES */ { - yygotominor.yy63 = new SqliteWindowDefinition::Window::Frame::Exclude( + yygotominor.yy237 = new SqliteWindowDefinition::Window::Frame::Exclude( SqliteWindowDefinition::Window::Frame::Exclude::TIES ); } break; - case 465: /* window_clause ::= WINDOW windowdefn_list */ + case 480: /* window_clause ::= WINDOW windowdefn_list */ { - yygotominor.yy299 = yymsp[0].minor.yy299; + yygotominor.yy525 = yymsp[0].minor.yy525; } break; - case 466: /* filter_over ::= filter_clause over_clause */ + case 481: /* filter_over ::= filter_clause over_clause */ { - yygotominor.yy247 = new SqliteFilterOver(yymsp[-1].minor.yy397, yymsp[0].minor.yy248); - objectForTokens = yygotominor.yy247; + yygotominor.yy181 = new SqliteFilterOver(yymsp[-1].minor.yy39, yymsp[0].minor.yy11); + objectForTokens = yygotominor.yy181; } break; - case 467: /* filter_over ::= over_clause */ + case 482: /* filter_over ::= over_clause */ { - yygotominor.yy247 = new SqliteFilterOver(nullptr, yymsp[0].minor.yy248); - objectForTokens = yygotominor.yy247; + yygotominor.yy181 = new SqliteFilterOver(nullptr, yymsp[0].minor.yy11); + objectForTokens = yygotominor.yy181; } break; - case 468: /* filter_over ::= filter_clause */ + case 483: /* filter_over ::= filter_clause */ { - yygotominor.yy247 = new SqliteFilterOver(yymsp[0].minor.yy397, nullptr); - objectForTokens = yygotominor.yy247; + yygotominor.yy181 = new SqliteFilterOver(yymsp[0].minor.yy39, nullptr); + objectForTokens = yygotominor.yy181; } break; - case 469: /* over_clause ::= OVER LP window RP */ + case 484: /* over_clause ::= OVER LP window RP */ { - yygotominor.yy248 = new SqliteFilterOver::Over(yymsp[-1].minor.yy334); - objectForTokens = yygotominor.yy248; + yygotominor.yy11 = new SqliteFilterOver::Over(yymsp[-1].minor.yy162); + objectForTokens = yygotominor.yy11; } break; - case 470: /* over_clause ::= OVER nm */ + case 485: /* over_clause ::= OVER nm */ { - yygotominor.yy248 = new SqliteFilterOver::Over(*(yymsp[0].minor.yy319)); + yygotominor.yy11 = new SqliteFilterOver::Over(*(yymsp[0].minor.yy319)); delete yymsp[0].minor.yy319; - objectForTokens = yygotominor.yy248; + objectForTokens = yygotominor.yy11; } break; - case 471: /* filter_clause ::= FILTER LP WHERE expr RP */ + case 486: /* filter_clause ::= FILTER LP WHERE expr RP */ { - yygotominor.yy397 = new SqliteFilterOver::Filter(yymsp[-1].minor.yy512); - objectForTokens = yygotominor.yy397; - } + yygotominor.yy39 = new SqliteFilterOver::Filter(yymsp[-1].minor.yy186); + objectForTokens = yygotominor.yy39; + } break; default: /* (0) input ::= cmdlist */ yytestcase(yyruleno==0); @@ -5746,7 +5890,7 @@ static void yy_reduce( #endif { yy_shift(yypParser,yyact,yygoto,&yygotominor); - if (parserContext->setupTokens) + if (parserContext->setupTokens && yypParser->yyidx >= 0) { QList* tokensPtr = yypParser->yystack[yypParser->yyidx].tokens; *tokensPtr = allTokensWithAllInherited + *tokensPtr; @@ -5988,4 +6132,8 @@ void sqlite3_parse( } }while( yymajor!=YYNOCODE && yypParser->yyidx>=0 ); return; -} \ No newline at end of file +} + +int sqlite3ParserFallback(int iToken) { + return yyFallback[iToken]; +} diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/sqlite3_parse.h b/SQLiteStudio3/coreSQLiteStudio/parser/sqlite3_parse.h index 200b09c..6dedaad 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/sqlite3_parse.h +++ b/SQLiteStudio3/coreSQLiteStudio/parser/sqlite3_parse.h @@ -41,149 +41,153 @@ #define TK3_LAST 41 #define TK3_LIKE_KW 42 #define TK3_MATCH 43 -#define TK3_NO 44 -#define TK3_NULLS 45 -#define TK3_OTHERS 46 -#define TK3_PLAN 47 -#define TK3_QUERY 48 -#define TK3_KEY 49 -#define TK3_OF 50 -#define TK3_OFFSET 51 -#define TK3_PARTITION 52 -#define TK3_PRAGMA 53 -#define TK3_PRECEDING 54 -#define TK3_RAISE 55 -#define TK3_RANGE 56 -#define TK3_RECURSIVE 57 -#define TK3_RELEASE 58 -#define TK3_REPLACE 59 -#define TK3_RESTRICT 60 -#define TK3_ROW 61 -#define TK3_ROWS 62 -#define TK3_ROLLBACK 63 -#define TK3_SAVEPOINT 64 -#define TK3_TEMP 65 -#define TK3_TIES 66 -#define TK3_TRIGGER 67 -#define TK3_UNBOUNDED 68 -#define TK3_VACUUM 69 -#define TK3_VIEW 70 -#define TK3_VIRTUAL 71 -#define TK3_WITH 72 -#define TK3_WITHOUT 73 -#define TK3_REINDEX 74 -#define TK3_RENAME 75 -#define TK3_CTIME_KW 76 -#define TK3_IF 77 -#define TK3_ANY 78 -#define TK3_OR 79 -#define TK3_AND 80 -#define TK3_NOT 81 -#define TK3_IS 82 -#define TK3_BETWEEN 83 -#define TK3_IN 84 -#define TK3_ISNULL 85 -#define TK3_NOTNULL 86 -#define TK3_NE 87 -#define TK3_EQ 88 -#define TK3_GT 89 -#define TK3_LE 90 -#define TK3_LT 91 -#define TK3_GE 92 -#define TK3_ESCAPE 93 -#define TK3_BITAND 94 -#define TK3_BITOR 95 -#define TK3_LSHIFT 96 -#define TK3_RSHIFT 97 -#define TK3_PLUS 98 -#define TK3_MINUS 99 -#define TK3_STAR 100 -#define TK3_SLASH 101 -#define TK3_REM 102 -#define TK3_CONCAT 103 -#define TK3_COLLATE 104 -#define TK3_BITNOT 105 -#define TK3_SEMI 106 -#define TK3_TRANSACTION 107 -#define TK3_ID_TRANS 108 -#define TK3_COMMIT 109 -#define TK3_TO 110 -#define TK3_CREATE 111 -#define TK3_TABLE 112 -#define TK3_LP 113 -#define TK3_RP 114 -#define TK3_AS 115 -#define TK3_DOT 116 -#define TK3_ID_TAB_NEW 117 -#define TK3_ID_DB 118 -#define TK3_CTX_ROWID_KW 119 -#define TK3_EXISTS 120 -#define TK3_COMMA 121 -#define TK3_ID_COL_NEW 122 -#define TK3_STRING 123 -#define TK3_JOIN_KW 124 -#define TK3_ID_COL_TYPE 125 -#define TK3_RIGHT_ASSOC 126 -#define TK3_CONSTRAINT 127 -#define TK3_DEFAULT 128 -#define TK3_NULL 129 -#define TK3_PRIMARY 130 -#define TK3_UNIQUE 131 -#define TK3_CHECK 132 -#define TK3_REFERENCES 133 -#define TK3_ID_CONSTR 134 -#define TK3_ID_COLLATE 135 -#define TK3_ID_TAB 136 -#define TK3_INTEGER 137 -#define TK3_FLOAT 138 -#define TK3_BLOB 139 -#define TK3_AUTOINCR 140 -#define TK3_ON 141 -#define TK3_INSERT 142 -#define TK3_DELETE 143 -#define TK3_UPDATE 144 -#define TK3_ID_FK_MATCH 145 -#define TK3_SET 146 -#define TK3_DEFERRABLE 147 -#define TK3_FOREIGN 148 -#define TK3_DROP 149 -#define TK3_ID_VIEW_NEW 150 -#define TK3_ID_VIEW 151 -#define TK3_SELECT 152 -#define TK3_VALUES 153 -#define TK3_UNION 154 -#define TK3_ALL 155 -#define TK3_EXCEPT 156 -#define TK3_INTERSECT 157 -#define TK3_DISTINCT 158 -#define TK3_ID_ALIAS 159 -#define TK3_FROM 160 -#define TK3_USING 161 -#define TK3_JOIN 162 -#define TK3_ID_JOIN_OPTS 163 -#define TK3_ID_IDX 164 -#define TK3_ORDER 165 -#define TK3_GROUP 166 -#define TK3_HAVING 167 -#define TK3_LIMIT 168 -#define TK3_WHERE 169 -#define TK3_ID_COL 170 -#define TK3_INTO 171 -#define TK3_NOTHING 172 -#define TK3_ID_FN 173 -#define TK3_ID_ERR_MSG 174 -#define TK3_VARIABLE 175 -#define TK3_CASE 176 -#define TK3_WHEN 177 -#define TK3_THEN 178 -#define TK3_ELSE 179 -#define TK3_INDEX 180 -#define TK3_ID_IDX_NEW 181 -#define TK3_ID_PRAGMA 182 -#define TK3_ID_TRIG_NEW 183 -#define TK3_ID_TRIG 184 -#define TK3_ALTER 185 -#define TK3_ADD 186 -#define TK3_WINDOW 187 -#define TK3_OVER 188 -#define TK3_FILTER 189 +#define TK3_MATERIALIZED 44 +#define TK3_NO 45 +#define TK3_NULLS 46 +#define TK3_OTHERS 47 +#define TK3_PLAN 48 +#define TK3_QUERY 49 +#define TK3_KEY 50 +#define TK3_OF 51 +#define TK3_OFFSET 52 +#define TK3_PARTITION 53 +#define TK3_PRAGMA 54 +#define TK3_PRECEDING 55 +#define TK3_RAISE 56 +#define TK3_RANGE 57 +#define TK3_RECURSIVE 58 +#define TK3_RELEASE 59 +#define TK3_REPLACE 60 +#define TK3_RESTRICT 61 +#define TK3_ROW 62 +#define TK3_ROWS 63 +#define TK3_ROLLBACK 64 +#define TK3_SAVEPOINT 65 +#define TK3_TEMP 66 +#define TK3_TIES 67 +#define TK3_TRIGGER 68 +#define TK3_UNBOUNDED 69 +#define TK3_VACUUM 70 +#define TK3_VIEW 71 +#define TK3_VIRTUAL 72 +#define TK3_WITH 73 +#define TK3_WITHOUT 74 +#define TK3_REINDEX 75 +#define TK3_RENAME 76 +#define TK3_CTIME_KW 77 +#define TK3_IF 78 +#define TK3_FILTER 79 +#define TK3_ANY 80 +#define TK3_OR 81 +#define TK3_AND 82 +#define TK3_NOT 83 +#define TK3_IS 84 +#define TK3_BETWEEN 85 +#define TK3_IN 86 +#define TK3_ISNULL 87 +#define TK3_NOTNULL 88 +#define TK3_NE 89 +#define TK3_EQ 90 +#define TK3_GT 91 +#define TK3_LE 92 +#define TK3_LT 93 +#define TK3_GE 94 +#define TK3_ESCAPE 95 +#define TK3_BITAND 96 +#define TK3_BITOR 97 +#define TK3_LSHIFT 98 +#define TK3_RSHIFT 99 +#define TK3_PLUS 100 +#define TK3_MINUS 101 +#define TK3_STAR 102 +#define TK3_SLASH 103 +#define TK3_REM 104 +#define TK3_CONCAT 105 +#define TK3_PTR 106 +#define TK3_COLLATE 107 +#define TK3_BITNOT 108 +#define TK3_SEMI 109 +#define TK3_TRANSACTION 110 +#define TK3_ID_TRANS 111 +#define TK3_COMMIT 112 +#define TK3_TO 113 +#define TK3_CREATE 114 +#define TK3_TABLE 115 +#define TK3_LP 116 +#define TK3_RP 117 +#define TK3_AS 118 +#define TK3_DOT 119 +#define TK3_ID_TAB_NEW 120 +#define TK3_ID_DB 121 +#define TK3_COMMA 122 +#define TK3_CTX_ROWID_KW 123 +#define TK3_CTX_STRICT_KW 124 +#define TK3_EXISTS 125 +#define TK3_ID_COL_NEW 126 +#define TK3_STRING 127 +#define TK3_JOIN_KW 128 +#define TK3_ID_COL_TYPE 129 +#define TK3_RIGHT_ASSOC 130 +#define TK3_CONSTRAINT 131 +#define TK3_DEFAULT 132 +#define TK3_NULL 133 +#define TK3_PRIMARY 134 +#define TK3_UNIQUE 135 +#define TK3_CHECK 136 +#define TK3_REFERENCES 137 +#define TK3_ID_CONSTR 138 +#define TK3_ID_COLLATE 139 +#define TK3_ID_TAB 140 +#define TK3_INTEGER 141 +#define TK3_FLOAT 142 +#define TK3_BLOB 143 +#define TK3_AUTOINCR 144 +#define TK3_ON 145 +#define TK3_INSERT 146 +#define TK3_DELETE 147 +#define TK3_UPDATE 148 +#define TK3_ID_FK_MATCH 149 +#define TK3_SET 150 +#define TK3_DEFERRABLE 151 +#define TK3_FOREIGN 152 +#define TK3_DROP 153 +#define TK3_ID_VIEW_NEW 154 +#define TK3_ID_VIEW 155 +#define TK3_SELECT 156 +#define TK3_VALUES 157 +#define TK3_UNION 158 +#define TK3_ALL 159 +#define TK3_EXCEPT 160 +#define TK3_INTERSECT 161 +#define TK3_DISTINCT 162 +#define TK3_ID_ALIAS 163 +#define TK3_FROM 164 +#define TK3_USING 165 +#define TK3_JOIN 166 +#define TK3_ID_JOIN_OPTS 167 +#define TK3_ID_IDX 168 +#define TK3_ORDER 169 +#define TK3_GROUP 170 +#define TK3_HAVING 171 +#define TK3_LIMIT 172 +#define TK3_WHERE 173 +#define TK3_RETURNING 174 +#define TK3_ID_COL 175 +#define TK3_INTO 176 +#define TK3_NOTHING 177 +#define TK3_ID_FN 178 +#define TK3_ID_ERR_MSG 179 +#define TK3_VARIABLE 180 +#define TK3_CASE 181 +#define TK3_WHEN 182 +#define TK3_THEN 183 +#define TK3_ELSE 184 +#define TK3_INDEX 185 +#define TK3_ID_IDX_NEW 186 +#define TK3_ID_PRAGMA 187 +#define TK3_ID_TRIG_NEW 188 +#define TK3_ID_TRIG 189 +#define TK3_ALTER 190 +#define TK3_ADD 191 +#define TK3_WINDOW 192 +#define TK3_OVER 193 diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/sqlite3_parse.y b/SQLiteStudio3/coreSQLiteStudio/parser/sqlite3_parse.y index 1510c49..4b1dda4 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/sqlite3_parse.y +++ b/SQLiteStudio3/coreSQLiteStudio/parser/sqlite3_parse.y @@ -27,7 +27,6 @@ #include "parser/ast/sqliteattach.h" #include "parser/ast/sqlitebegintrans.h" #include "parser/ast/sqlitecommittrans.h" -#include "parser/ast/sqlitecopy.h" #include "parser/ast/sqlitecreateindex.h" #include "parser/ast/sqlitecreatetable.h" #include "parser/ast/sqlitecreatetrigger.h" @@ -67,6 +66,13 @@ #define assert(X) Q_ASSERT(X) #define UNUSED_PARAMETER(X) (void)(X) #define DONT_INHERIT_TOKENS(X) noTokenInheritanceFields << X + +} + +%code { +int sqlite3ParserFallback(int iToken) { + return yyFallback[iToken]; +} } // These are extra tokens used by the lexer but never seen by the @@ -84,10 +90,10 @@ %fallback ID ABORT ACTION AFTER ALWAYS ANALYZE ASC ATTACH BEFORE BEGIN BY CASCADE CAST COLUMNKW CONFLICT CURRENT DATABASE DEFERRED DESC DETACH DO EACH END EXCLUDE EXCLUSIVE EXPLAIN FAIL FIRST FOLLOWING FOR - GENERATED GROUPS IGNORE IMMEDIATE INDEXED INITIALLY INSTEAD LAST LIKE_KW MATCH NO NULLS OTHERS PLAN + GENERATED GROUPS IGNORE IMMEDIATE INDEXED INITIALLY INSTEAD LAST LIKE_KW MATCH MATERIALIZED NO NULLS OTHERS PLAN QUERY KEY OF OFFSET PARTITION PRAGMA PRECEDING RAISE RANGE RECURSIVE RELEASE REPLACE RESTRICT ROW ROWS ROLLBACK SAVEPOINT TEMP TIES TRIGGER UNBOUNDED VACUUM VIEW VIRTUAL WITH WITHOUT - REINDEX RENAME CTIME_KW IF + REINDEX RENAME CTIME_KW IF FILTER . %wildcard ANY. @@ -110,7 +116,7 @@ %left BITAND BITOR LSHIFT RSHIFT. %left PLUS MINUS. %left STAR SLASH REM. -%left CONCAT. +%left CONCAT PTR. %left COLLATE. %right BITNOT. @@ -252,7 +258,7 @@ cmd(X) ::= CREATE temp(T) TABLE ifnotexists(E) fullname(N) LP columnlist(CL) conslist_opt(CS) RP - table_options(F). { + table_options(O). { X = new SqliteCreateTable( *(E), *(T), @@ -260,14 +266,14 @@ cmd(X) ::= CREATE temp(T) TABLE N->name2, *(CL), *(CS), - *(F) + *(O) ); delete E; delete T; delete CL; delete CS; delete N; - delete F; + delete O; objectForTokens = X; } cmd(X) ::= CREATE temp(T) TABLE @@ -290,16 +296,38 @@ cmd ::= CREATE temp TABLE ifnotexists cmd ::= CREATE temp TABLE ifnotexists ID_DB|ID_TAB_NEW. {} -%type table_options {QString*} +%type table_options {ParserCreateTableOptionList*} %destructor table_options {parser_safe_delete($$);} -table_options(X) ::= . {X = new QString();} -table_options(X) ::= WITHOUT nm(N). { +table_options(X) ::= . {X = new ParserCreateTableOptionList();} +table_options(X) ::= table_option(O). { + X = new ParserCreateTableOptionList(); + X->append(O); + } +table_options(X) ::= table_options(L) COMMA + table_option(O). { + L->append(O); + X = L; + DONT_INHERIT_TOKENS("table_options"); + } + +%type table_option {ParserStubCreateTableOption*} +%destructor table_option {parser_safe_delete($$);} +table_option(X) ::= WITHOUT nm(N). { if (N->toLower() != "rowid") parserContext->errorAtToken(QString("Invalid table option: %1").arg(*(N))); - X = N; + X = new ParserStubCreateTableOption(ParserStubCreateTableOption::WITHOUT_ROWID); + delete N; + } +table_option(X) ::= nm(N). { + if (N->toLower() != "strict") + parserContext->errorAtToken(QString("Invalid table option: %1").arg(*(N))); + + X = new ParserStubCreateTableOption(ParserStubCreateTableOption::STRICT); + delete N; } -table_options ::= WITHOUT CTX_ROWID_KW. {} +table_option ::= WITHOUT CTX_ROWID_KW. {} +table_option ::= CTX_STRICT_KW. {} %type ifnotexists {bool*} %destructor ifnotexists {parser_safe_delete($$);} @@ -568,7 +596,12 @@ ccons(X) ::= CHECK LP RP. { term(X) ::= NULL. {X = new QVariant();} term(X) ::= INTEGER(N). {X = parserContext->handleNumberToken(N->value);} term(X) ::= FLOAT(N). {X = new QVariant(QVariant(N->value).toDouble());} -term(X) ::= STRING|BLOB(S). {X = new QVariant(stripString(S->value));} +term(X) ::= STRING|BLOB(S). { + if (S->value.length() >= 3 && S->value.startsWith("x'", Qt::CaseInsensitive)) + X = new QVariant(blobFromLiteral(S->value)); + else + X = new QVariant(stripString(S->value)); + } // Term Literal or Name. String falls under Term, but can be falled back to Name if necessary in the context. // On the other hand - if name is ID, it cannot be falled back to Term, as ID is never a Literal value. @@ -1277,7 +1310,8 @@ cmd(X) ::= delete_stmt(S). { delete_stmt(X) ::= with(WI) DELETE FROM fullname(N) indexed_opt(I) - where_opt(W). { + where_opt(W) + returning(R). { if (I) { if (!I->indexedBy.isNull()) @@ -1287,7 +1321,8 @@ delete_stmt(X) ::= with(WI) DELETE FROM N->name2, I->indexedBy, W, - WI + WI, + *(R) ); } else @@ -1297,7 +1332,8 @@ delete_stmt(X) ::= with(WI) DELETE FROM N->name2, I->notIndexedKw, W, - WI + WI, + *(R) ); } delete I; @@ -1309,10 +1345,12 @@ delete_stmt(X) ::= with(WI) DELETE FROM N->name2, false, W, - WI + WI, + *(R) ); } delete N; + delete R; // since it's used in trigger: objectForTokens = X; } @@ -1349,6 +1387,11 @@ where_opt(X) ::= WHERE. { X = new SqliteExpr(); } +%type returning {ParserResultColumnList*} +%destructor returning {parser_safe_delete($$);} +returning(X) ::= . {X = new ParserResultColumnList();} +returning(X) ::= RETURNING selcollist(L). {X = L;} + ////////////////////////// The UPDATE command //////////////////////////////// cmd(X) ::= update_stmt(S). { @@ -1361,7 +1404,7 @@ cmd(X) ::= update_stmt(S). { update_stmt(X) ::= with(WI) UPDATE orconf(C) fullname(N) indexed_opt(I) SET setlist(L) from(F) - where_opt(W). { + where_opt(W) returning(R). { X = new SqliteUpdate( *(C), N->name1, @@ -1371,11 +1414,13 @@ update_stmt(X) ::= with(WI) UPDATE orconf(C) *(L), F, W, - WI + WI, + *(R) ); delete C; delete N; delete L; + delete R; if (I) delete I; // since it's used in trigger: @@ -1481,7 +1526,7 @@ cmd(X) ::= insert_stmt(S). { insert_stmt(X) ::= with(W) insert_cmd(C) INTO fullname(N) idlist_opt(I) select(S) - upsert(U). { + upsert(U) returning(R). { X = new SqliteInsert( C->replace, C->orConflict, @@ -1490,29 +1535,33 @@ insert_stmt(X) ::= with(W) insert_cmd(C) *(I), S, W, - U + U, + *(R) ); delete N; delete C; delete I; + delete R; // since it's used in trigger: objectForTokens = X; } insert_stmt(X) ::= with(W) insert_cmd(C) INTO fullname(N) idlist_opt(I) DEFAULT - VALUES. { + VALUES returning(R). { X = new SqliteInsert( C->replace, C->orConflict, N->name1, N->name2, *(I), - W + W, + *(R) ); delete N; delete C; delete I; + delete R; // since it's used in trigger: objectForTokens = X; } @@ -1564,8 +1613,7 @@ upsert(X) ::= . { upsert(X) ::= ON CONFLICT LP sortlist(C) RP where_opt(CW) DO UPDATE SET setlist(S) - where_opt(SW). - { + where_opt(SW). { X = new SqliteUpsert(*(C), CW, *(S), SW); delete C; delete S; @@ -1591,8 +1639,8 @@ exprx ::= expr not_opt IN ID_DB. [IN] {} exprx ::= expr not_opt IN nm DOT ID_TAB. [IN] {} exprx ::= ID_DB|ID_TAB|ID_COL|ID_FN. {} -exprx ::= tnm DOT ID_TAB|ID_COL. {} -exprx ::= tnm DOT nm DOT ID_COL. {} +exprx ::= tnm DOT ID_TAB|ID_COL. {} +exprx ::= tnm DOT nm DOT ID_COL. {} exprx ::= expr COLLATE ID_COLLATE. {} exprx ::= RAISE LP raisetype COMMA ID_ERR_MSG RP. {} @@ -1631,6 +1679,19 @@ exprx(X) ::= tnm(N1) DOT nm(N2). { delete N2; objectForTokens = X; } +exprx(X) ::= tnm(N1) DOT. { + X = new SqliteExpr(); + objectForTokens = X; + if (N1->isName()) + { + X->initId(N1->toName(), QString()); + parserContext->minorErrorAfterLastToken("Syntax error "); + } + else + parserContext->errorAtToken("Syntax error ", -3); + + delete N1; + } exprx(X) ::= tnm(N1) DOT nm(N2) DOT nm(N3). { X = new SqliteExpr(); if (N1->isName()) @@ -1643,6 +1704,20 @@ exprx(X) ::= tnm(N1) DOT nm(N2) DOT nm(N3). { delete N3; objectForTokens = X; } +exprx(X) ::= tnm(N1) DOT nm(N2) DOT. { + X = new SqliteExpr(); + objectForTokens = X; + if (N1->isName()) + { + X->initId(N1->toName(), *(N2), QString()); + parserContext->minorErrorAfterLastToken("Syntax error "); + } + else + parserContext->errorAtToken("Syntax error ", -5); + + delete N1; + delete N2; + } exprx(X) ::= VARIABLE(V). { X = new SqliteExpr(); X->initBindParam(V->value); @@ -1663,14 +1738,14 @@ exprx(X) ::= CAST LP expr(E) AS typetoken(T) exprx(X) ::= ID(I) LP distinct(D) exprlist(L) RP. { X = new SqliteExpr(); - X->initFunction(I->value, *(D), *(L)); + X->initFunction(stripObjName(I->value), *(D), *(L)); delete D; delete L; objectForTokens = X; } exprx(X) ::= ID(I) LP STAR RP. { X = new SqliteExpr(); - X->initFunction(I->value, true); + X->initFunction(stripObjName(I->value), true); objectForTokens = X; } exprx(X) ::= expr(E1) AND(O) expr(E2). { @@ -1752,6 +1827,18 @@ exprx(X) ::= expr(E1) IS not_opt(N) delete N; objectForTokens = X; } +exprx(X) ::= expr(E1) IS NOT DISTINCT FROM + expr(E2). { + X = new SqliteExpr(); + X->initDistinct(E1, true, E2); + objectForTokens = X; + } +exprx(X) ::= expr(E1) IS DISTINCT FROM + expr(E2). { + X = new SqliteExpr(); + X->initDistinct(E1, false, E2); + objectForTokens = X; + } exprx(X) ::= NOT(O) expr(E). { X = new SqliteExpr(); X->initUnaryOp(E, O->value); @@ -1781,6 +1868,11 @@ exprx(X) ::= PLUS(O) expr(E). [BITNOT] { X->initUnaryOp(E, O->value); objectForTokens = X; } +exprx(X) ::= expr(E1) PTR(O) expr(E2). { + X = new SqliteExpr(); + X->initPtrOp(E1, O->value, E2); + objectForTokens = X; + } exprx(X) ::= expr(E1) not_opt(N) BETWEEN expr(E2) AND expr(E3). [BETWEEN] { @@ -1846,7 +1938,7 @@ exprx(X) ::= RAISE LP raisetype(R) COMMA exprx(X) ::= ID(I) LP distinct(D) exprlist(E) RP filter_over(F). { X = new SqliteExpr(); - X->initWindowFunction(I->value, *(D), *(E), F); + X->initWindowFunction(stripObjName(I->value), *(D), *(E), F); delete D; delete E; objectForTokens = X; @@ -1854,7 +1946,7 @@ exprx(X) ::= ID(I) LP distinct(D) exprx(X) ::= ID(I) LP STAR RP filter_over(F). { X = new SqliteExpr(); - X->initWindowFunction(I->value, F); + X->initWindowFunction(stripObjName(I->value), F); objectForTokens = X; } @@ -2378,6 +2470,18 @@ cmd(X) ::= ALTER TABLE fullname(FN) ADD delete FN; objectForTokens = X; } +cmd(X) ::= ALTER TABLE fullname(FN) DROP + kwcolumn_opt(K) nm(N). { + X = new SqliteAlterTable( + FN->name1, + FN->name2, + *(K), + *(N) + ); + delete K; + delete FN; + delete N; + } cmd ::= ALTER TABLE fullname RENAME TO ID_TAB_NEW. {} @@ -2508,6 +2612,12 @@ with(X) ::= WITH RECURSIVE wqlist(W). { objectForTokens = X; } +%type wqas {SqliteWith::CommonTableExpression::AsMode*} +%destructor wqas {parser_safe_delete($$);} +wqas(X) ::= AS. {X = new SqliteWith::CommonTableExpression::AsMode(SqliteWith::CommonTableExpression::ANY);} +wqas(X) ::= AS MATERIALIZED. {X = new SqliteWith::CommonTableExpression::AsMode(SqliteWith::CommonTableExpression::MATERIALIZED);} +wqas(X) ::= AS NOT MATERIALIZED. {X = new SqliteWith::CommonTableExpression::AsMode(SqliteWith::CommonTableExpression::NOT_MATERIALIZED);} + %type wqlist {ParserCteList*} %destructor wqlist {parser_safe_delete($$);} @@ -2527,11 +2637,12 @@ wqlist ::= ID_TAB_NEW. { %type wqcte {SqliteWith::CommonTableExpression*} %destructor wqcte {parser_safe_delete($$);} -wqcte(X) ::= nm(N) idxlist_opt(IL) AS +wqcte(X) ::= nm(N) idxlist_opt(IL) wqas(A) LP select(S) RP. { - X = new SqliteWith::CommonTableExpression(*(N), *(IL), S); + X = new SqliteWith::CommonTableExpression(*(N), *(IL), S, *(A)); delete N; delete IL; + delete A; objectForTokens = X; } @@ -2764,4 +2875,4 @@ filter_clause(X) ::= FILTER LP WHERE expr(E) RP. { X = new SqliteFilterOver::Filter(E); objectForTokens = X; - } + } diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/statementtokenbuilder.cpp b/SQLiteStudio3/coreSQLiteStudio/parser/statementtokenbuilder.cpp index faf8c8e..abe2578 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/statementtokenbuilder.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/parser/statementtokenbuilder.cpp @@ -1,6 +1,7 @@ #include "statementtokenbuilder.h" #include "parser/ast/sqlitestatement.h" #include "common/utils_sql.h" +#include "common/global.h" #include StatementTokenBuilder& StatementTokenBuilder::withKeyword(const QString& value) @@ -23,7 +24,7 @@ StatementTokenBuilder&StatementTokenBuilder::withStringPossiblyOther(const QStri if (value.contains("\"")) return withOther(wrapObjIfNeeded(value)); else - return withOther(wrapObjName(value, NameWrapper::DOUBLE_QUOTE)); + return withOther(wrapObjName(value, NameWrapper::DOUBLE_QUOTE), false); } StatementTokenBuilder& StatementTokenBuilder::withOtherList(const QList& value, const QString& separator) @@ -91,7 +92,7 @@ StatementTokenBuilder& StatementTokenBuilder::withBlob(const QString& value) StatementTokenBuilder& StatementTokenBuilder::withString(const QString& value) { - return with(Token::STRING, wrapStringIfNeeded(value)); + return with(Token::STRING, wrapString(value)); } StatementTokenBuilder& StatementTokenBuilder::withConflict(SqliteConflictAlgo onConflict) @@ -145,6 +146,13 @@ StatementTokenBuilder& StatementTokenBuilder::withLiteralValue(const QVariant& v return *this; } + if (value.userType() == QVariant::ByteArray) + { + static_qstring(blobLiteral, "X'%1'"); + withBlob(blobLiteral.arg(QString::fromLatin1(value.toByteArray().toHex()))); + return *this; + } + bool ok; if (value.userType() == QVariant::Double) { @@ -163,14 +171,7 @@ StatementTokenBuilder& StatementTokenBuilder::withLiteralValue(const QVariant& v return *this; } - QString str = value.toString(); - if (str.startsWith("x'", Qt::CaseInsensitive) && str.endsWith("'")) - { - withBlob(str); - return *this; - } - - withString(str); + withString(value.toString()); return *this; } diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/token.cpp b/SQLiteStudio3/coreSQLiteStudio/parser/token.cpp index 41980b4..84f2023 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/token.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/parser/token.cpp @@ -58,6 +58,8 @@ const QString Token::typeToString(Token::Type type) { case Token::CTX_ROWID_KW: return "CTX_ROWID_KW"; + case Token::CTX_STRICT_KW: + return "CTX_STRICT_KW"; case Token::CTX_NEW_KW: return "CTX_NEW_KW"; case Token::CTX_OLD_KW: diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/token.h b/SQLiteStudio3/coreSQLiteStudio/parser/token.h index 1088d9e..d977963 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/token.h +++ b/SQLiteStudio3/coreSQLiteStudio/parser/token.h @@ -101,7 +101,8 @@ struct API_EXPORT Token CTX_ROWID_KW = 0x0034, /**< ROWID keywords is valid at this token position (see isRowIdKeyword()). */ CTX_NEW_KW = 0x0035, /**< The NEW keyword is valid at this token position. */ CTX_OLD_KW = 0x0036, /**< The OLD keyword is valid at this token position. */ - CTX_ERROR_MESSAGE = 0x0037 /**< Error message string is valid at this token position. */ + CTX_ERROR_MESSAGE = 0x0037, /**< Error message string is valid at this token position. */ + CTX_STRICT_KW = 0x0038, /**< STRICT keyword is valid at this token position. */ }; /** diff --git a/SQLiteStudio3/coreSQLiteStudio/plugins/dbpluginsqlite3.cpp b/SQLiteStudio3/coreSQLiteStudio/plugins/dbpluginsqlite3.cpp index 4a19489..854e7b4 100644 --- a/SQLiteStudio3/coreSQLiteStudio/plugins/dbpluginsqlite3.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/plugins/dbpluginsqlite3.cpp @@ -10,6 +10,9 @@ Db* DbPluginSqlite3::getInstance(const QString& name, const QString& path, const if (!db->openForProbing()) { + if (errorMessage) + *errorMessage = db->getErrorText(); + delete db; return nullptr; } @@ -17,9 +20,13 @@ Db* DbPluginSqlite3::getInstance(const QString& name, const QString& path, const SqlQueryPtr results = db->exec("SELECT * FROM sqlite_master"); if (results->isError()) { + if (errorMessage) + *errorMessage = db->getErrorText(); + delete db; return nullptr; } + results.clear(); db->closeQuiet(); return db; diff --git a/SQLiteStudio3/coreSQLiteStudio/plugins/dbpluginsqlite3.h b/SQLiteStudio3/coreSQLiteStudio/plugins/dbpluginsqlite3.h index 79b762a..417c93e 100644 --- a/SQLiteStudio3/coreSQLiteStudio/plugins/dbpluginsqlite3.h +++ b/SQLiteStudio3/coreSQLiteStudio/plugins/dbpluginsqlite3.h @@ -10,7 +10,7 @@ class DbPluginSqlite3 : public BuiltInPlugin, public DbPlugin SQLITESTUDIO_PLUGIN_TITLE("SQLite 3") SQLITESTUDIO_PLUGIN_DESC("SQLite 3 databases support.") - SQLITESTUDIO_PLUGIN_VERSION(10000) + SQLITESTUDIO_PLUGIN_VERSION(10001) SQLITESTUDIO_PLUGIN_AUTHOR("sqlitestudio.pl") public: diff --git a/SQLiteStudio3/coreSQLiteStudio/plugins/dbpluginstdfilebase.cpp b/SQLiteStudio3/coreSQLiteStudio/plugins/dbpluginstdfilebase.cpp index b890c26..5887eac 100644 --- a/SQLiteStudio3/coreSQLiteStudio/plugins/dbpluginstdfilebase.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/plugins/dbpluginstdfilebase.cpp @@ -11,6 +11,9 @@ Db *DbPluginStdFileBase::getInstance(const QString &name, const QString &path, c if (!db->openForProbing()) { + if (errorMessage) + *errorMessage = db->getErrorText(); + delete db; return nullptr; } @@ -18,6 +21,9 @@ Db *DbPluginStdFileBase::getInstance(const QString &name, const QString &path, c SqlQueryPtr results = db->exec("SELECT * FROM sqlite_master"); if (results->isError()) { + if (errorMessage) + *errorMessage = db->getErrorText(); + delete db; return nullptr; } diff --git a/SQLiteStudio3/coreSQLiteStudio/plugins/populaterandom.cpp b/SQLiteStudio3/coreSQLiteStudio/plugins/populaterandom.cpp index 149e92b..e1d9f98 100644 --- a/SQLiteStudio3/coreSQLiteStudio/plugins/populaterandom.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/plugins/populaterandom.cpp @@ -22,7 +22,7 @@ bool PopulateRandomEngine::beforePopulating(Db* db, const QString& table) { UNUSED(db); UNUSED(table); - QRandomGenerator::system()->seed(QDateTime::currentDateTime().toTime_t()); + randomGenerator = QRandomGenerator::securelySeeded(); range = cfg.PopulateRandom.MaxValue.get() - cfg.PopulateRandom.MinValue.get() + 1; return (range > 0); } @@ -30,7 +30,7 @@ bool PopulateRandomEngine::beforePopulating(Db* db, const QString& table) QVariant PopulateRandomEngine::nextValue(bool& nextValueError) { UNUSED(nextValueError); - QString randValue = QString::number((QRandomGenerator::system()->generate() % range) + cfg.PopulateRandom.MinValue.get()); + QString randValue = QString::number((randomGenerator.generate() % range) + cfg.PopulateRandom.MinValue.get()); return (cfg.PopulateRandom.Prefix.get() + randValue + cfg.PopulateRandom.Suffix.get()); } diff --git a/SQLiteStudio3/coreSQLiteStudio/plugins/populaterandom.h b/SQLiteStudio3/coreSQLiteStudio/plugins/populaterandom.h index f4e9feb..29bb02b 100644 --- a/SQLiteStudio3/coreSQLiteStudio/plugins/populaterandom.h +++ b/SQLiteStudio3/coreSQLiteStudio/plugins/populaterandom.h @@ -4,6 +4,7 @@ #include "builtinplugin.h" #include "populateplugin.h" #include "config_builder.h" +#include CFG_CATEGORIES(PopulateRandomConfig, CFG_CATEGORY(PopulateRandom, @@ -43,5 +44,6 @@ class PopulateRandomEngine : public PopulateEngine private: CFG_LOCAL(PopulateRandomConfig, cfg) int range; + QRandomGenerator randomGenerator; }; #endif // POPULATERANDOM_H diff --git a/SQLiteStudio3/coreSQLiteStudio/plugins/populaterandomtext.cpp b/SQLiteStudio3/coreSQLiteStudio/plugins/populaterandomtext.cpp index e2f8733..33ac1d6 100644 --- a/SQLiteStudio3/coreSQLiteStudio/plugins/populaterandomtext.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/plugins/populaterandomtext.cpp @@ -23,7 +23,7 @@ bool PopulateRandomTextEngine::beforePopulating(Db* db, const QString& table) { UNUSED(db); UNUSED(table); - QRandomGenerator::system()->seed(QDateTime::currentDateTime().toTime_t()); + randomGenerator = QRandomGenerator::securelySeeded(); range = cfg.PopulateRandomText.MaxLength.get() - cfg.PopulateRandomText.MinLength.get() + 1; chars = ""; @@ -55,7 +55,7 @@ bool PopulateRandomTextEngine::beforePopulating(Db* db, const QString& table) QVariant PopulateRandomTextEngine::nextValue(bool& nextValueError) { UNUSED(nextValueError); - int lgt = (QRandomGenerator::system()->generate() % range) + cfg.PopulateRandomText.MinLength.get(); + int lgt = (randomGenerator.generate() % range) + cfg.PopulateRandomText.MinLength.get(); return randStr(lgt, chars); } diff --git a/SQLiteStudio3/coreSQLiteStudio/plugins/populaterandomtext.h b/SQLiteStudio3/coreSQLiteStudio/plugins/populaterandomtext.h index 892b302..fdc5c43 100644 --- a/SQLiteStudio3/coreSQLiteStudio/plugins/populaterandomtext.h +++ b/SQLiteStudio3/coreSQLiteStudio/plugins/populaterandomtext.h @@ -4,6 +4,7 @@ #include "builtinplugin.h" #include "populateplugin.h" #include "config_builder.h" +#include CFG_CATEGORIES(PopulateRandomTextConfig, CFG_CATEGORY(PopulateRandomText, @@ -47,6 +48,7 @@ class PopulateRandomTextEngine : public PopulateEngine CFG_LOCAL(PopulateRandomTextConfig, cfg) int range; QString chars; + QRandomGenerator randomGenerator; }; #endif // POPULATERANDOMTEXT_H diff --git a/SQLiteStudio3/coreSQLiteStudio/plugins/populatescript.cpp b/SQLiteStudio3/coreSQLiteStudio/plugins/populatescript.cpp index 79a8ac1..8c356f9 100644 --- a/SQLiteStudio3/coreSQLiteStudio/plugins/populatescript.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/plugins/populatescript.cpp @@ -4,6 +4,27 @@ #include "services/pluginmanager.h" #include "services/notifymanager.h" +class PopulateFunctionInfoImpl : public ScriptingPlugin::FunctionInfo +{ + public: + PopulateFunctionInfoImpl(bool rowCount) + { + args = QStringList({"dbName", "tableName"}); + if (rowCount) + args << "rowCount"; + } + + QString getName() const {return QString();} + QStringList getArguments() const {return args;} + bool getUndefinedArgs() const {return false;} + + private: + QStringList args; +}; + +PopulateFunctionInfoImpl populateInitFunctionInfo(false); +PopulateFunctionInfoImpl populateNextFunctionInfo(true); + PopulateScript::PopulateScript() { } @@ -49,9 +70,9 @@ bool PopulateScriptEngine::beforePopulating(Db* db, const QString& table) if (!initCode.trimmed().isEmpty()) { if (dbAwarePlugin) - dbAwarePlugin->evaluate(context, initCode, evalArgs, db); + dbAwarePlugin->evaluate(context, initCode, populateInitFunctionInfo, evalArgs, db); else - scriptingPlugin->evaluate(context, initCode, evalArgs); + scriptingPlugin->evaluate(context, initCode, populateInitFunctionInfo, evalArgs); if (scriptingPlugin->hasError(context)) { @@ -71,9 +92,9 @@ QVariant PopulateScriptEngine::nextValue(bool& nextValueError) { QVariant result; if (dbAwarePlugin) - result = dbAwarePlugin->evaluate(context, cfg.PopulateScript.Code.get(), evalArgs, db); + result = dbAwarePlugin->evaluate(context, cfg.PopulateScript.Code.get(), populateNextFunctionInfo, evalArgs, db); else - result = scriptingPlugin->evaluate(context, cfg.PopulateScript.Code.get(), evalArgs); + result = scriptingPlugin->evaluate(context, cfg.PopulateScript.Code.get(), populateNextFunctionInfo, evalArgs); if (scriptingPlugin->hasError(context)) { diff --git a/SQLiteStudio3/coreSQLiteStudio/plugins/scriptingplugin.h b/SQLiteStudio3/coreSQLiteStudio/plugins/scriptingplugin.h index d081073..80aa758 100644 --- a/SQLiteStudio3/coreSQLiteStudio/plugins/scriptingplugin.h +++ b/SQLiteStudio3/coreSQLiteStudio/plugins/scriptingplugin.h @@ -15,33 +15,45 @@ class ScriptingPlugin : virtual public Plugin virtual ~Context() {} }; + class FunctionInfo + { + public: + virtual QString getName() const = 0; + virtual QStringList getArguments() const = 0; + virtual bool getUndefinedArgs() const = 0; + }; + virtual QString getLanguage() const = 0; virtual Context* createContext() = 0; virtual void releaseContext(Context* context) = 0; virtual void resetContext(Context* context) = 0; virtual void setVariable(Context* context, const QString& name, const QVariant& value) = 0; virtual QVariant getVariable(Context* context, const QString& name) = 0; - virtual QVariant evaluate(Context* context, const QString& code, const QList& args = QList()) = 0; + virtual QVariant evaluate(Context* context, const QString& code, const FunctionInfo& funcInfo, + const QList& args = QList()) = 0; virtual bool hasError(Context* context) const = 0; virtual QString getErrorMessage(Context* context) const = 0; - virtual QVariant evaluate(const QString& code, const QList& args = QList(), QString* errorMessage = nullptr) = 0; + virtual QVariant evaluate(const QString& code, const FunctionInfo& funcInfo, const QList& args = QList(), + QString* errorMessage = nullptr) = 0; virtual QString getIconPath() const = 0; }; class DbAwareScriptingPlugin : public ScriptingPlugin { public: - virtual QVariant evaluate(Context* context, const QString& code, const QList& args, Db* db, bool locking = false) = 0; - virtual QVariant evaluate(const QString& code, const QList& args, Db* db, bool locking = false, QString* errorMessage = nullptr) = 0; + virtual QVariant evaluate(Context* context, const QString& code, const FunctionInfo& funcInfo, const QList& args, + Db* db, bool locking = false) = 0; + virtual QVariant evaluate(const QString& code, const FunctionInfo& funcInfo, const QList& args, Db* db, + bool locking = false, QString* errorMessage = nullptr) = 0; - QVariant evaluate(Context* context, const QString& code, const QList& args) + QVariant evaluate(Context* context, const QString& code, const FunctionInfo& funcInfo, const QList& args) { - return evaluate(context, code, args, nullptr, true); + return evaluate(context, code, funcInfo, args, nullptr, true); } - QVariant evaluate(const QString& code, const QList& args, QString* errorMessage = nullptr) + QVariant evaluate(const QString& code, const FunctionInfo& funcInfo, const QList& args, QString* errorMessage = nullptr) { - return evaluate(code, args, nullptr, true, errorMessage); + return evaluate(code, funcInfo, args, nullptr, true, errorMessage); } }; diff --git a/SQLiteStudio3/coreSQLiteStudio/plugins/scriptingqt.cpp b/SQLiteStudio3/coreSQLiteStudio/plugins/scriptingqt.cpp index f88fa85..5305f24 100644 --- a/SQLiteStudio3/coreSQLiteStudio/plugins/scriptingqt.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/plugins/scriptingqt.cpp @@ -1,42 +1,39 @@ #include "scriptingqt.h" -#include "common/unused.h" #include "common/global.h" #include "scriptingqtdbproxy.h" -#include +#include "services/notifymanager.h" +#include #include #include #include -static QScriptValue scriptingQtDebug(QScriptContext *context, QScriptEngine *engine) +ScriptingQt::ScriptingQt() { - UNUSED(engine); - QStringList args; - for (int i = 0; i < context->argumentCount(); i++) - args << context->argument(i).toString(); - - qDebug() << "[ScriptingQt]" << args; - return QScriptValue(); + managedMainContextsMutex = new QMutex(); } -ScriptingQt::ScriptingQt() +ScriptingQt::~ScriptingQt() { - mainEngineMutex = new QMutex(); + safe_delete(managedMainContextsMutex); } -ScriptingQt::~ScriptingQt() +QJSValueList ScriptingQt::toValueList(QJSEngine* engine, const QList& values) { - safe_delete(mainEngineMutex); + QJSValueList result; + for (const QVariant& value : values) + result << engine->toScriptValue(value); + + return result; } QString ScriptingQt::getLanguage() const { - return QStringLiteral("QtScript"); + return QStringLiteral("JavaScript"); } ScriptingPlugin::Context* ScriptingQt::createContext() { ContextQt* ctx = new ContextQt; - ctx->engine->pushContext(); contexts << ctx; return ctx; } @@ -56,60 +53,54 @@ void ScriptingQt::resetContext(ScriptingPlugin::Context* context) ContextQt* ctx = getContext(context); if (!ctx) return; - - ctx->engine->popContext(); - ctx->engine->pushContext(); } -QVariant ScriptingQt::evaluate(const QString& code, const QList& args, Db* db, bool locking, QString* errorMessage) +QVariant ScriptingQt::evaluate(const QString& code, const FunctionInfo& funcInfo, const QList& args, Db* db, bool locking, QString* errorMessage) { - QMutexLocker locker(mainEngineMutex); - - // Enter a new context - QScriptContext* engineContext = mainContext->engine->pushContext(); - // Call the function - QVariant result = evaluate(mainContext, engineContext, code, args, db, locking); + ContextQt* context = getMainContext(); + QVariant result = evaluate(context, code, funcInfo, args, db, locking); // Handle errors - if (!mainContext->error.isEmpty()) - *errorMessage = mainContext->error; - - // Leave the context to reset "this". - mainContext->engine->popContext(); + if (!context->error.isEmpty()) + *errorMessage = context->error; return result; } -QVariant ScriptingQt::evaluate(ScriptingPlugin::Context* context, const QString& code, const QList& args, Db* db, bool locking) +QVariant ScriptingQt::evaluate(ScriptingPlugin::Context* context, const QString& code, const FunctionInfo& funcInfo, const QList& args, Db* db, bool locking) { ContextQt* ctx = getContext(context); if (!ctx) return QVariant(); - return evaluate(ctx, ctx->engine->currentContext(), code, args, db, locking); + return evaluate(ctx, code, funcInfo, args, db, locking); } -QVariant ScriptingQt::evaluate(ContextQt* ctx, QScriptContext* engineContext, const QString& code, const QList& args, Db* db, bool locking) +QVariant ScriptingQt::evaluate(ContextQt* ctx, const QString& code, const FunctionInfo& funcInfo, const QList& args, Db* db, bool locking) { // Define function to call - QScriptValue functionValue = getFunctionValue(ctx, code); + QJSValue functionValue = getFunctionValue(ctx, code, funcInfo); // Db for this evaluation ctx->dbProxy->setDb(db); ctx->dbProxy->setUseDbLocking(locking); // Call the function - QScriptValue result; + QJSValue result; if (args.size() > 0) - result = functionValue.call(engineContext->activationObject(), ctx->engine->toScriptValue(args)); + result = functionValue.call(toValueList(ctx->engine, args)); else - result = functionValue.call(engineContext->activationObject()); + result = functionValue.call(); // Handle errors ctx->error.clear(); - if (ctx->engine->hasUncaughtException()) - ctx->error = ctx->engine->uncaughtException().toString(); + if (result.isError()) + { + ctx->error = QString("Uncaught exception at line %1: %2").arg( + result.property("lineNumber").toString(), + result.toString()); + } ctx->dbProxy->setDb(nullptr); ctx->dbProxy->setUseDbLocking(false); @@ -117,6 +108,20 @@ QVariant ScriptingQt::evaluate(ContextQt* ctx, QScriptContext* engineContext, co return convertVariant(result.toVariant()); } +ScriptingQt::ContextQt* ScriptingQt::getMainContext() +{ + if (mainContext.hasLocalData()) + return mainContext.localData(); + + ContextQt* context = new ContextQt(); + mainContext.setLocalData(context); + + QMutexLocker locker(managedMainContextsMutex); + managedMainContexts << context; + + return context; +} + QVariant ScriptingQt::convertVariant(const QVariant& value, bool wrapStrings) { switch (value.type()) @@ -148,7 +153,7 @@ QVariant ScriptingQt::convertVariant(const QVariant& value, bool wrapStrings) case QVariant::List: { QStringList list; - for (const QVariant& var : value.toList()) + for (QVariant& var : value.toList()) list << convertVariant(var, true).toString(); return "[" + list.join(", ") + "]"; @@ -176,7 +181,7 @@ void ScriptingQt::setVariable(ScriptingPlugin::Context* context, const QString& if (!ctx) return; - ctx->engine->globalObject().setProperty(name, ctx->engine->newVariant(value)); + ctx->engine->globalObject().setProperty(name, ctx->engine->toScriptValue(value)); } QVariant ScriptingQt::getVariable(ScriptingPlugin::Context* context, const QString& name) @@ -185,7 +190,7 @@ QVariant ScriptingQt::getVariable(ScriptingPlugin::Context* context, const QStri if (!ctx) return QVariant(); - QScriptValue value = ctx->engine->globalObject().property(name); + QJSValue value = ctx->engine->globalObject().property(name); return convertVariant(value.toVariant()); } @@ -214,20 +219,28 @@ QString ScriptingQt::getIconPath() const bool ScriptingQt::init() { - QMutexLocker locker(mainEngineMutex); - mainContext = new ContextQt; return true; } void ScriptingQt::deinit() { - for (Context* ctx : contexts) + for (Context*& ctx : contexts) delete ctx; contexts.clear(); - QMutexLocker locker(mainEngineMutex); - safe_delete(mainContext); + QMutexLocker locker(managedMainContextsMutex); + for (ContextQt*& ctx : managedMainContexts) + { +#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0) + ctx->engine->setInterrupted(true); +#else + // FIXME No way to cleanly interrupt QJSEngine before Qt 5.14 +#endif + delete ctx; + } + + managedMainContexts.clear(); } ScriptingQt::ContextQt* ScriptingQt::getContext(ScriptingPlugin::Context* context) const @@ -239,31 +252,30 @@ ScriptingQt::ContextQt* ScriptingQt::getContext(ScriptingPlugin::Context* contex return ctx; } -QScriptValue ScriptingQt::getFunctionValue(ContextQt* ctx, const QString& code) +QJSValue ScriptingQt::getFunctionValue(ContextQt* ctx, const QString& code, const FunctionInfo& funcInfo) { - static const QString fnDef = QStringLiteral("(function () {%1\n})"); + static const QString fnDef = QStringLiteral("(function (%1) {%2\n})"); - QScriptProgram* prog = nullptr; - if (!ctx->scriptCache.contains(code)) - { - prog = new QScriptProgram(fnDef.arg(code)); - ctx->scriptCache.insert(code, prog); - } - else - { - prog = ctx->scriptCache[code]; - } - return ctx->engine->evaluate(*prog); + QString fullCode = fnDef.arg(funcInfo.getArguments().join(", "), code); + QJSValue* func = ctx->scriptCache[fullCode]; + if (func) + return *func; + + func = new QJSValue(ctx->engine->evaluate(fullCode)); + ctx->scriptCache.insert(fullCode, func); + return *func; } ScriptingQt::ContextQt::ContextQt() { - engine = new QScriptEngine(); + engine = new QJSEngine(); + engine->installExtensions(QJSEngine::ConsoleExtension); - dbProxy = new ScriptingQtDbProxy(); - dbProxyScriptValue = engine->newQObject(dbProxy, QScriptEngine::QtOwnership, QScriptEngine::ExcludeDeleteLater); + dbProxy = new ScriptingQtDbProxy(engine); + dbProxyScriptValue = engine->newQObject(dbProxy); + console = new ScriptingQtConsole(engine); - engine->globalObject().setProperty("debug", engine->newFunction(scriptingQtDebug)); + engine->globalObject().setProperty("console", engine->newQObject(console)); engine->globalObject().setProperty("db", dbProxyScriptValue); scriptCache.setMaxCost(cacheSize); @@ -271,6 +283,19 @@ ScriptingQt::ContextQt::ContextQt() ScriptingQt::ContextQt::~ContextQt() { - safe_delete(engine); + safe_delete(console); safe_delete(dbProxy); + safe_delete(engine); +} + +ScriptingQtConsole::ScriptingQtConsole(QJSEngine* engine) : + QObject(), engine(engine) +{ +} + +QJSValue ScriptingQtConsole::log(const QJSValue& value) +{ + static_qstring(tpl, "[JS] %1"); + NOTIFY_MANAGER->info(tpl.arg(ScriptingQt::convertVariant(value.toVariant()).toString())); + return QJSValue(); } diff --git a/SQLiteStudio3/coreSQLiteStudio/plugins/scriptingqt.h b/SQLiteStudio3/coreSQLiteStudio/plugins/scriptingqt.h index 125789a..a7e156c 100644 --- a/SQLiteStudio3/coreSQLiteStudio/plugins/scriptingqt.h +++ b/SQLiteStudio3/coreSQLiteStudio/plugins/scriptingqt.h @@ -6,33 +6,35 @@ #include #include #include -#include -#include +#include +#include -class QScriptEngine; class QMutex; -class QScriptContext; class ScriptingQtDbProxy; +class ScriptingQtConsole; class ScriptingQt : public BuiltInPlugin, public DbAwareScriptingPlugin { Q_OBJECT - SQLITESTUDIO_PLUGIN_TITLE("Qt scripting") - SQLITESTUDIO_PLUGIN_DESC("Qt scripting support.") - SQLITESTUDIO_PLUGIN_VERSION(10000) + SQLITESTUDIO_PLUGIN_TITLE("JavaScript scripting") + SQLITESTUDIO_PLUGIN_DESC("JavaScript scripting support.") + SQLITESTUDIO_PLUGIN_VERSION(10100) SQLITESTUDIO_PLUGIN_AUTHOR("sqlitestudio.pl") public: ScriptingQt(); ~ScriptingQt(); + static QJSValueList toValueList(QJSEngine* engine, const QList& values); + static QVariant convertVariant(const QVariant& value, bool wrapStrings = false); + QString getLanguage() const; Context* createContext(); void releaseContext(Context* context); void resetContext(Context* context); - QVariant evaluate(const QString& code, const QList& args, Db* db, bool locking = false, QString* errorMessage = nullptr); - QVariant evaluate(Context* context, const QString& code, const QList& args, Db* db, bool locking = false); + QVariant evaluate(const QString& code, const FunctionInfo& funcInfo, const QList& args, Db* db, bool locking = false, QString* errorMessage = nullptr); + QVariant evaluate(Context* context, const QString& code, const FunctionInfo& funcInfo, const QList& args, Db* db, bool locking = false); void setVariable(Context* context, const QString& name, const QVariant& value); QVariant getVariable(Context* context, const QString& name); bool hasError(Context* context) const; @@ -50,23 +52,39 @@ class ScriptingQt : public BuiltInPlugin, public DbAwareScriptingPlugin ContextQt(); ~ContextQt(); - QScriptEngine* engine = nullptr; - QCache scriptCache; + QJSEngine* engine = nullptr; + QCache scriptCache; QString error; ScriptingQtDbProxy* dbProxy = nullptr; - QScriptValue dbProxyScriptValue; + ScriptingQtConsole* console = nullptr; + QJSValue dbProxyScriptValue; }; ContextQt* getContext(ScriptingPlugin::Context* context) const; - QScriptValue getFunctionValue(ContextQt* ctx, const QString& code); - QVariant evaluate(ContextQt* ctx, QScriptContext* engineContext, const QString& code, const QList& args, Db* db, bool locking); - QVariant convertVariant(const QVariant& value, bool wrapStrings = false); + QJSValue getFunctionValue(ContextQt* ctx, const QString& code, const FunctionInfo& funcInfo); + QVariant evaluate(ContextQt* ctx, const QString& code, const FunctionInfo& funcInfo, const QList& args, Db* db, bool locking); + ContextQt* getMainContext(); static const constexpr int cacheSize = 5; - ContextQt* mainContext = nullptr; + QThreadStorage mainContext; QList contexts; - QMutex* mainEngineMutex = nullptr; + QList managedMainContexts; + QMutex* managedMainContextsMutex = nullptr; +}; + +class ScriptingQtConsole : public QObject +{ + Q_OBJECT + + public: + ScriptingQtConsole(QJSEngine* engine); + + private: + QJSEngine* engine = nullptr; + + public slots: + QJSValue log(const QJSValue& value); }; #endif // SCRIPTINGQT_H diff --git a/SQLiteStudio3/coreSQLiteStudio/plugins/scriptingqt.png b/SQLiteStudio3/coreSQLiteStudio/plugins/scriptingqt.png index 220ea27..ce8e60a 100644 Binary files a/SQLiteStudio3/coreSQLiteStudio/plugins/scriptingqt.png and b/SQLiteStudio3/coreSQLiteStudio/plugins/scriptingqt.png differ diff --git a/SQLiteStudio3/coreSQLiteStudio/plugins/scriptingqtdbproxy.cpp b/SQLiteStudio3/coreSQLiteStudio/plugins/scriptingqtdbproxy.cpp index ff3c7ee..cc9fa2d 100644 --- a/SQLiteStudio3/coreSQLiteStudio/plugins/scriptingqtdbproxy.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/plugins/scriptingqtdbproxy.cpp @@ -1,11 +1,11 @@ +#include "scriptingqt.h" #include "scriptingqtdbproxy.h" #include "db/db.h" #include "db/sqlquery.h" -#include -#include +#include -ScriptingQtDbProxy::ScriptingQtDbProxy(QObject *parent) : - QObject(parent) +ScriptingQtDbProxy::ScriptingQtDbProxy(QJSEngine* engine, QObject *parent) : + QObject(parent), engine(engine) { } Db* ScriptingQtDbProxy::getDb() const @@ -40,12 +40,12 @@ QHash ScriptingQtDbProxy::mapToHash(const QMap& listArgs, const QMap& mapArgs, - bool singleCell, const QScriptValue* funcPtr) + bool singleCell, const QJSValue* funcPtr) { if (!db) { QString funcName = singleCell ? QStringLiteral("db.onecolumn()") : QStringLiteral("db.eval()"); - context()->throwError(tr("No database available in current context, while called QtScript's %1 command.").arg(funcName)); + engine->throwError(tr("No database available in current context, while called JavaScript's %1 command.").arg(funcName)); return evalInternalErrorResult(singleCell); } @@ -62,7 +62,7 @@ QVariant ScriptingQtDbProxy::evalInternal(const QString& sql, const QListisError()) { QString funcName = singleCell ? QStringLiteral("db.onecolumn()") : QStringLiteral("db.eval()"); - context()->throwError(tr("Error from %1: %2").arg(funcName, results->getErrorText())); + engine->throwError(tr("Error from %1: %2").arg(funcName, results->getErrorText())); return evalInternalErrorResult(singleCell); } @@ -72,15 +72,15 @@ QVariant ScriptingQtDbProxy::evalInternal(const QString& sql, const QListhasNext()) { row = results->next(); - funcArgs = context()->engine()->toScriptValue(row->valueList()); - funcResult = func.call(context()->thisObject(), funcArgs); + funcArgs = ScriptingQt::toValueList(engine, row->valueList()); + funcResult = func.call(funcArgs); if (!funcResult.isUndefined()) break; } @@ -123,12 +123,12 @@ QVariant ScriptingQtDbProxy::eval(const QString& sql, const QMap(), args, false); } -QVariant ScriptingQtDbProxy::eval(const QString& sql, const QList& args, const QScriptValue& func) +QVariant ScriptingQtDbProxy::eval(const QString& sql, const QList& args, const QJSValue& func) { return evalInternal(sql, args, QMap(), false, &func); } -QVariant ScriptingQtDbProxy::eval(const QString& sql, const QMap& args, const QScriptValue& func) +QVariant ScriptingQtDbProxy::eval(const QString& sql, const QMap& args, const QJSValue& func) { return evalInternal(sql, QList(), args, false, &func); } diff --git a/SQLiteStudio3/coreSQLiteStudio/plugins/scriptingqtdbproxy.h b/SQLiteStudio3/coreSQLiteStudio/plugins/scriptingqtdbproxy.h index add9540..9a86f6b 100644 --- a/SQLiteStudio3/coreSQLiteStudio/plugins/scriptingqtdbproxy.h +++ b/SQLiteStudio3/coreSQLiteStudio/plugins/scriptingqtdbproxy.h @@ -2,18 +2,18 @@ #define SCRIPTINGQTDBPROXY_H #include -#include #include #include #include +#include class Db; -class ScriptingQtDbProxy : public QObject, protected QScriptable +class ScriptingQtDbProxy : public QObject { Q_OBJECT public: - explicit ScriptingQtDbProxy(QObject *parent = 0); + explicit ScriptingQtDbProxy(QJSEngine* engine, QObject *parent = 0); Db* getDb() const; void setDb(Db* value); @@ -23,20 +23,21 @@ class ScriptingQtDbProxy : public QObject, protected QScriptable private: QVariant evalInternal(const QString& sql, const QList& listArgs, const QMap& mapArgs, bool singleCell, - const QScriptValue* funcPtr = nullptr); + const QJSValue* funcPtr = nullptr); QVariant evalInternalErrorResult(bool singleCell); static QHash mapToHash(const QMap& map); Db* db = nullptr; bool useDbLocking = false; + QJSEngine* engine = nullptr; public slots: QVariant eval(const QString& sql); QVariant eval(const QString& sql, const QList& args); QVariant eval(const QString& sql, const QMap& args); - QVariant eval(const QString& sql, const QList& args, const QScriptValue& func); - QVariant eval(const QString& sql, const QMap& args, const QScriptValue& func); + QVariant eval(const QString& sql, const QList& args, const QJSValue& func); + QVariant eval(const QString& sql, const QMap& args, const QJSValue& func); QVariant onecolumn(const QString& sql, const QList& args); QVariant onecolumn(const QString& sql, const QMap& args); }; diff --git a/SQLiteStudio3/coreSQLiteStudio/plugins/scriptingsql.cpp b/SQLiteStudio3/coreSQLiteStudio/plugins/scriptingsql.cpp index 93a6d91..7edd7e7 100644 --- a/SQLiteStudio3/coreSQLiteStudio/plugins/scriptingsql.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/plugins/scriptingsql.cpp @@ -38,7 +38,7 @@ void ScriptingSql::resetContext(ScriptingPlugin::Context* context) dynamic_cast(context)->errorText.clear(); } -QVariant ScriptingSql::evaluate(ScriptingPlugin::Context* context, const QString& code, const QList& args, Db* db, bool locking) +QVariant ScriptingSql::evaluate(ScriptingPlugin::Context* context, const QString& code, const FunctionInfo& funcInfo, const QList& args, Db* db, bool locking) { SqlContext* ctx = dynamic_cast(context); ctx->errorText.clear(); @@ -58,14 +58,15 @@ QVariant ScriptingSql::evaluate(ScriptingPlugin::Context* context, const QString QString sql = code; if (ctx->variables.size() > 0) { - QString value; for (const QString& key : ctx->variables.keys()) { - value = "'" + ctx->variables[key].toString() + "'"; + QString value = "'" + ctx->variables[key].toString() + "'"; sql.replace(":" + key, value).replace("@" + key, value).replace("$" + key, value); } } + replaceNamedArgs(sql, funcInfo, args); + SqlQueryPtr result = theDb->exec(sql, args, execFlags); if (result->isError()) { @@ -76,7 +77,7 @@ QVariant ScriptingSql::evaluate(ScriptingPlugin::Context* context, const QString return result->getSingleCell(); } -QVariant ScriptingSql::evaluate(const QString& code, const QList& args, Db* db, bool locking, QString* errorMessage) +QVariant ScriptingSql::evaluate(const QString& code, const FunctionInfo& funcInfo, const QList& args, Db* db, bool locking, QString* errorMessage) { Db* theDb = nullptr; @@ -91,7 +92,10 @@ QVariant ScriptingSql::evaluate(const QString& code, const QList& args if (!locking) execFlags |= Db::Flag::NO_LOCK; - SqlQueryPtr result = theDb->exec(code, args, execFlags); + QString sql = code; + replaceNamedArgs(sql, funcInfo, args); + + SqlQueryPtr result = theDb->exec(sql, args, execFlags); if (result->isError()) { *errorMessage = result->getErrorText(); @@ -144,3 +148,18 @@ void ScriptingSql::deinit() safe_delete(memDb); } + +void ScriptingSql::replaceNamedArgs(QString& sql, const ScriptingPlugin::FunctionInfo& funcInfo, const QList& args) +{ + int i = 0; + for (const QString& key : funcInfo.getArguments()) + { + if (i >= args.size()) + break; + + QString value = "'" + args[i++].toString() + "'"; + sql.replace(":" + key, value) + .replace("@" + key, value) + .replace("$" + key, value); + } +} diff --git a/SQLiteStudio3/coreSQLiteStudio/plugins/scriptingsql.h b/SQLiteStudio3/coreSQLiteStudio/plugins/scriptingsql.h index 7b8fd3b..8fa51db 100644 --- a/SQLiteStudio3/coreSQLiteStudio/plugins/scriptingsql.h +++ b/SQLiteStudio3/coreSQLiteStudio/plugins/scriptingsql.h @@ -28,8 +28,10 @@ class ScriptingSql : public BuiltInPlugin, public DbAwareScriptingPlugin Context* createContext(); void releaseContext(Context* context); void resetContext(Context* context); - QVariant evaluate(Context* context, const QString& code, const QList& args, Db* db, bool locking); - QVariant evaluate(const QString& code, const QList& args, Db* db, bool locking, QString* errorMessage); + QVariant evaluate(Context* context, const QString& code, const FunctionInfo& funcInfo, + const QList& args, Db* db, bool locking); + QVariant evaluate(const QString& code, const FunctionInfo& funcInfo, + const QList& args, Db* db, bool locking, QString* errorMessage); void setVariable(Context* context, const QString& name, const QVariant& value); QVariant getVariable(Context* context, const QString& name); bool hasError(Context* context) const; @@ -39,6 +41,8 @@ class ScriptingSql : public BuiltInPlugin, public DbAwareScriptingPlugin void deinit(); private: + void replaceNamedArgs(QString& sql, const FunctionInfo& funcInfo, const QList& args); + QList contexts; Db* memDb = nullptr; }; diff --git a/SQLiteStudio3/coreSQLiteStudio/querygenerator.cpp b/SQLiteStudio3/coreSQLiteStudio/querygenerator.cpp index 3f01350..af201ba 100644 --- a/SQLiteStudio3/coreSQLiteStudio/querygenerator.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/querygenerator.cpp @@ -159,8 +159,7 @@ QString QueryGenerator::generateSelectFromSelect(Db* db, const QString& initialS static_qstring(tpl, "SELECT %1 FROM (%2)%3"); // Resolve all columns of the select - SelectResolver resolver(db, initialSelect, dbNameToAttach); - QList columns = resolver.resolveColumnsFromFirstCore(); + QList columns = SelectResolver::sqliteResolveColumns(db, initialSelect, dbNameToAttach); // Generate result columns QStringList resCols; diff --git a/SQLiteStudio3/coreSQLiteStudio/querymodel.cpp b/SQLiteStudio3/coreSQLiteStudio/querymodel.cpp index 8d20b70..5e57db6 100644 --- a/SQLiteStudio3/coreSQLiteStudio/querymodel.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/querymodel.cpp @@ -1,6 +1,7 @@ #include "querymodel.h" #include "db/db.h" #include "common/unused.h" +#include "db/sqlquery.h" QueryModel::QueryModel(Db* db, QObject *parent) : QAbstractTableModel(parent), db(db) @@ -15,7 +16,7 @@ void QueryModel::refresh() beginResetModel(); loadedRows.clear(); SqlQueryPtr results = db->exec(query); - for (SqlResultsRowPtr row : results->getAll()) + for (SqlResultsRowPtr& row : results->getAll()) loadedRows += row; columns = results->columnCount(); diff --git a/SQLiteStudio3/coreSQLiteStudio/querymodel.h b/SQLiteStudio3/coreSQLiteStudio/querymodel.h index 6c7e48a..9d4c1a2 100644 --- a/SQLiteStudio3/coreSQLiteStudio/querymodel.h +++ b/SQLiteStudio3/coreSQLiteStudio/querymodel.h @@ -1,7 +1,6 @@ #ifndef SQLQUERYMODEL_H #define SQLQUERYMODEL_H -#include "db/sqlquery.h" #include "db/sqlresultsrow.h" #include #include diff --git a/SQLiteStudio3/coreSQLiteStudio/rsa/BigInt.cpp b/SQLiteStudio3/coreSQLiteStudio/rsa/BigInt.cpp index 3fbe83c..45dd2cd 100644 --- a/SQLiteStudio3/coreSQLiteStudio/rsa/BigInt.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/rsa/BigInt.cpp @@ -4,19 +4,6 @@ * * This file is part of rsa - the RSA implementation in C++. * - * rsa is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * rsa is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with rsa. If not, see . - * * BigInt.cpp * * Author: Nedim Srndic diff --git a/SQLiteStudio3/coreSQLiteStudio/rsa/BigInt.h b/SQLiteStudio3/coreSQLiteStudio/rsa/BigInt.h index 6d59c7a..d377247 100644 --- a/SQLiteStudio3/coreSQLiteStudio/rsa/BigInt.h +++ b/SQLiteStudio3/coreSQLiteStudio/rsa/BigInt.h @@ -4,19 +4,6 @@ * * This file is part of rsa - the RSA implementation in C++. * - * rsa is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * rsa is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with rsa. If not, see . - * * BigInt.h * * Author: Nedim Srndic diff --git a/SQLiteStudio3/coreSQLiteStudio/rsa/Key.cpp b/SQLiteStudio3/coreSQLiteStudio/rsa/Key.cpp index adc4a1f..27238bc 100644 --- a/SQLiteStudio3/coreSQLiteStudio/rsa/Key.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/rsa/Key.cpp @@ -4,19 +4,6 @@ * * This file is part of rsa - the RSA implementation in C++. * - * rsa is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * rsa is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with rsa. If not, see . - * * Key.cpp * * Author: Nedim Srndic diff --git a/SQLiteStudio3/coreSQLiteStudio/rsa/Key.h b/SQLiteStudio3/coreSQLiteStudio/rsa/Key.h index f1d2ee6..dfda7e0 100644 --- a/SQLiteStudio3/coreSQLiteStudio/rsa/Key.h +++ b/SQLiteStudio3/coreSQLiteStudio/rsa/Key.h @@ -4,19 +4,6 @@ * * This file is part of rsa - the RSA implementation in C++. * - * rsa is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * rsa is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with rsa. If not, see . - * * Key.h * * Author: Nedim Srndic diff --git a/SQLiteStudio3/coreSQLiteStudio/rsa/KeyPair.cpp b/SQLiteStudio3/coreSQLiteStudio/rsa/KeyPair.cpp index 7780288..e705db2 100644 --- a/SQLiteStudio3/coreSQLiteStudio/rsa/KeyPair.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/rsa/KeyPair.cpp @@ -4,19 +4,6 @@ * * This file is part of rsa - the RSA implementation in C++. * - * rsa is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * rsa is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with rsa. If not, see . - * * KeyPair.cpp * * Author: Nedim Srndic diff --git a/SQLiteStudio3/coreSQLiteStudio/rsa/KeyPair.h b/SQLiteStudio3/coreSQLiteStudio/rsa/KeyPair.h index 153195a..a93e485 100644 --- a/SQLiteStudio3/coreSQLiteStudio/rsa/KeyPair.h +++ b/SQLiteStudio3/coreSQLiteStudio/rsa/KeyPair.h @@ -4,19 +4,6 @@ * * This file is part of rsa - the RSA implementation in C++. * - * rsa is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * rsa is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with rsa. If not, see . - * * KeyPair.h * * Author: Nedim Srndic diff --git a/SQLiteStudio3/coreSQLiteStudio/rsa/PrimeGenerator.cpp b/SQLiteStudio3/coreSQLiteStudio/rsa/PrimeGenerator.cpp index 7f38f55..f476a30 100644 --- a/SQLiteStudio3/coreSQLiteStudio/rsa/PrimeGenerator.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/rsa/PrimeGenerator.cpp @@ -4,19 +4,6 @@ * * This file is part of rsa - the RSA implementation in C++. * - * rsa is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * rsa is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with rsa. If not, see . - * * PrimeGenerator.cpp * * Author: Nedim Srndic diff --git a/SQLiteStudio3/coreSQLiteStudio/rsa/PrimeGenerator.h b/SQLiteStudio3/coreSQLiteStudio/rsa/PrimeGenerator.h index 64ee9f6..b8fda82 100644 --- a/SQLiteStudio3/coreSQLiteStudio/rsa/PrimeGenerator.h +++ b/SQLiteStudio3/coreSQLiteStudio/rsa/PrimeGenerator.h @@ -4,19 +4,6 @@ * * This file is part of rsa - the RSA implementation in C++. * - * rsa is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * rsa is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with rsa. If not, see . - * * PrimeGenerator.h * * A class used to generate large prime or random numbers. diff --git a/SQLiteStudio3/coreSQLiteStudio/rsa/RSA.cpp b/SQLiteStudio3/coreSQLiteStudio/rsa/RSA.cpp index 0d8e921..5021e59 100644 --- a/SQLiteStudio3/coreSQLiteStudio/rsa/RSA.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/rsa/RSA.cpp @@ -4,19 +4,6 @@ * * This file is part of rsa - the RSA implementation in C++. * - * rsa is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * rsa is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with rsa. If not, see . - * * RSA.cpp * * Author: Nedim Srndic diff --git a/SQLiteStudio3/coreSQLiteStudio/rsa/RSA.h b/SQLiteStudio3/coreSQLiteStudio/rsa/RSA.h index 501261e..b6343ea 100644 --- a/SQLiteStudio3/coreSQLiteStudio/rsa/RSA.h +++ b/SQLiteStudio3/coreSQLiteStudio/rsa/RSA.h @@ -4,19 +4,6 @@ * * This file is part of rsa - the RSA implementation in C++. * - * rsa is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * rsa is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with rsa. If not, see . - * * RSA.h * * Author: Nedim Srndic diff --git a/SQLiteStudio3/coreSQLiteStudio/schemaresolver.cpp b/SQLiteStudio3/coreSQLiteStudio/schemaresolver.cpp index 4d65461..129bb43 100644 --- a/SQLiteStudio3/coreSQLiteStudio/schemaresolver.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/schemaresolver.cpp @@ -98,14 +98,15 @@ StrHash SchemaResolver::getGroupedTriggers(const QString &database) StrHash SchemaResolver::getGroupedObjects(const QString &database, const QStringList &inputList, SqliteQueryType type) { QString strType = sqliteQueryTypeToString(type); + ObjectType objectType = objectTypeFromQueryType(type); StrHash groupedObjects; SqliteQueryPtr parsedQuery; SqliteTableRelatedDdlPtr tableRelatedDdl; - for (QString object : inputList) + for (const QString& object : inputList) { - parsedQuery = getParsedObject(database, object, ANY); + parsedQuery = getParsedObject(database, object, objectType); if (!parsedQuery) { qWarning() << "Could not get parsed object for " << strType << ":" << object; @@ -116,7 +117,8 @@ StrHash SchemaResolver::getGroupedObjects(const QString &database, if (!tableRelatedDdl) { qWarning() << "Parsed object is not of expected type. Expected" << strType - << ", but got" << sqliteQueryTypeToString(parsedQuery->queryType); + << ", but got" << sqliteQueryTypeToString(parsedQuery->queryType) + << "; Object db and name:" << database << object; continue; } @@ -145,12 +147,12 @@ QSet SchemaResolver::getDatabases() return db->getAllAttaches(); } -QStringList SchemaResolver::getTableColumns(const QString& table) +QStringList SchemaResolver::getTableColumns(const QString& table, bool onlyReal) { - return getTableColumns("main", table); + return getTableColumns("main", table, onlyReal); } -QStringList SchemaResolver::getTableColumns(const QString &database, const QString &table) +QStringList SchemaResolver::getTableColumns(const QString &database, const QString &table, bool onlyReal) { QStringList columns; // result @@ -178,7 +180,12 @@ QStringList SchemaResolver::getTableColumns(const QString &database, const QStri // Now we have a regular table, let's extract columns. for (SqliteCreateTable::Column* column : createTable->columns) + { + if (onlyReal && column->hasConstraint(SqliteCreateTable::Column::Constraint::GENERATED)) + continue; + columns << column->name; + } return columns; } @@ -272,12 +279,14 @@ QList SchemaResolver::getViewColumnObjects(const QString SqliteCreateTablePtr SchemaResolver::virtualTableAsRegularTable(const QString &database, const QString &table) { - QString strippedName = stripObjName(table); + // The "table" name here used to be stripped with stripObjName(), but actually [abc] is a proper table name, + // that should not be stripped. Any names passed to SchemaResolver cannot be wrapped. + QString dbName = getPrefixDb(database); // Create temp table to see columns. - QString newTable = db->getUniqueNewObjectName(strippedName); - QString origTable = wrapObjIfNeeded(strippedName); + QString newTable = db->getUniqueNewObjectName(table); + QString origTable = wrapObjIfNeeded(table); SqlQueryPtr tempTableRes = db->exec(QString("CREATE TEMP TABLE %1 AS SELECT * FROM %2.%3 LIMIT 0;").arg(newTable, dbName, origTable), dbFlags); if (tempTableRes->isError()) qWarning() << "Could not create temp table to identify virtual table columns of virtual table " << origTable << ". Error details:" << tempTableRes->getErrorText(); @@ -303,6 +312,9 @@ QString SchemaResolver::getObjectDdl(const QString& name, ObjectType type) QString SchemaResolver::getObjectDdl(const QString &database, const QString &name, ObjectType type) { + // The "name" here used to be stripped with stripObjName(), but actually [abc] is a proper object name, + // that should not be stripped. Any names passed to SchemaResolver cannot be wrapped. + if (name.isNull()) return QString(); @@ -310,13 +322,13 @@ QString SchemaResolver::getObjectDdl(const QString &database, const QString &nam QString dbName = getPrefixDb(database); // In case of sqlite_master or sqlite_temp_master we have static definitions - QString lowerName = stripObjName(name).toLower(); + QString lowerName = name.toLower(); if (lowerName == "sqlite_master") return getSqliteMasterDdl(false); else if (lowerName == "sqlite_temp_master") return getSqliteMasterDdl(true); else if (lowerName.startsWith("sqlite_autoindex_")) - return getSqliteAutoIndexDdl(dbName, stripObjName(name)); + return getSqliteAutoIndexDdl(dbName, name); // Standalone or temp table? QString targetTable = "sqlite_master"; @@ -648,7 +660,7 @@ QString SchemaResolver::getSqliteAutoIndexDdl(const QString& database, const QSt } // Check the unique flag of the index - static_qstring(idxUniqueQueryTpl, "SELECT unique FROM %1.pragma_index_list(%2) WHERE name = ?"); + static_qstring(idxUniqueQueryTpl, "SELECT [unique] FROM %1.pragma_index_list(%2) WHERE name = ?"); SqlQueryPtr uniqRes = db->exec(idxUniqueQueryTpl.arg(dbName, wrapString(table)), {index}, dbFlags); bool unique = uniqRes->getSingleCell().toInt() > 0; @@ -846,6 +858,47 @@ QStringList SchemaResolver::getFkReferencingTables(const QString& table, const Q return tables; } +SchemaResolver::ObjectType SchemaResolver::objectTypeFromQueryType(const SqliteQueryType& queryType) +{ + switch (queryType) + { + case SqliteQueryType::CreateIndex: + return INDEX; + case SqliteQueryType::CreateTrigger: + return TRIGGER; + case SqliteQueryType::CreateView: + return VIEW; + case SqliteQueryType::CreateTable: + case SqliteQueryType::CreateVirtualTable: + return TABLE; + case SqliteQueryType::Select: + case SqliteQueryType::Pragma: + case SqliteQueryType::UNDEFINED: + case SqliteQueryType::EMPTY: + case SqliteQueryType::AlterTable: + case SqliteQueryType::Analyze: + case SqliteQueryType::Attach: + case SqliteQueryType::BeginTrans: + case SqliteQueryType::CommitTrans: + case SqliteQueryType::Copy: + case SqliteQueryType::Delete: + case SqliteQueryType::Detach: + case SqliteQueryType::DropIndex: + case SqliteQueryType::DropTable: + case SqliteQueryType::DropTrigger: + case SqliteQueryType::DropView: + case SqliteQueryType::Insert: + case SqliteQueryType::Reindex: + case SqliteQueryType::Release: + case SqliteQueryType::Rollback: + case SqliteQueryType::Savepoint: + case SqliteQueryType::Update: + case SqliteQueryType::Vacuum: + return ANY; + } + return ANY; +} + QStringList SchemaResolver::getIndexesForTable(const QString& database, const QString& table) { static_qstring(idxForTableTpl, "SELECT name FROM %1.pragma_index_list(%2)"); @@ -1150,7 +1203,7 @@ bool SchemaResolver::isWithoutRowIdTable(const QString& database, const QString& if (!createTable) return false; - return !createTable->withOutRowId.isNull(); + return createTable->withOutRowId; } bool SchemaResolver::isVirtualTable(const QString& database, const QString& table) @@ -1195,7 +1248,7 @@ QStringList SchemaResolver::getWithoutRowIdTableColumns(const QString& database, if (!createTable) return columns; - if (createTable->withOutRowId.isNull()) + if (!createTable->withOutRowId) return columns; // it's not WITHOUT ROWID table return createTable->getPrimaryKeyColumns(); @@ -1252,6 +1305,31 @@ void SchemaResolver::setNoDbLocking(bool value) dbFlags ^= Db::Flag::NO_LOCK; } +QString SchemaResolver::normalizeCaseObjectName(const QString& name) +{ + static_qstring(sql, "SELECT name FROM main.sqlite_master WHERE lower(name) = lower(?);"); + return normalizeCaseObjectNameByQuery(sql, name); +} + +QString SchemaResolver::normalizeCaseObjectName(const QString& database, const QString& name) +{ + static_qstring(sql, "SELECT name FROM %1.sqlite_master WHERE lower(name) = lower(?);"); + QString query = sql.arg(wrapObjIfNeeded(database)); + return normalizeCaseObjectNameByQuery(query, name); +} + +QString SchemaResolver::normalizeCaseObjectNameByQuery(const QString& query, const QString& name) +{ + SqlQueryPtr results = db->exec(query, {name}); + if (results->isError()) + { + qCritical() << "Could not get object name normalized case. Object name:" << name << ", error:" + << results->getErrorText(); + return name; + } + + return results->getSingleCell().toString(); +} SchemaResolver::ObjectCacheKey::ObjectCacheKey(Type type, Db* db, const QString& value1, const QString& value2, const QString& value3) : type(type), db(db), value1(value1), value2(value2), value3(value3) diff --git a/SQLiteStudio3/coreSQLiteStudio/schemaresolver.h b/SQLiteStudio3/coreSQLiteStudio/schemaresolver.h index e7bf2c8..cfb5bd5 100644 --- a/SQLiteStudio3/coreSQLiteStudio/schemaresolver.h +++ b/SQLiteStudio3/coreSQLiteStudio/schemaresolver.h @@ -15,6 +15,7 @@ #include "db/db.h" #include "common/strhash.h" #include "common/expiringcache.h" +#include "parser/ast/sqlitequerytype.h" #include class SqliteCreateTable; @@ -110,6 +111,7 @@ class API_EXPORT SchemaResolver /** * @brief getTableColumns Get column names for a table. * @param table Table to query. + * @param onlyReal If true, the method will skip columns that are not real (like GENERATED columns). * @return List of column names of the table. * This does something similar to getting list of columns with * PRAGMA table_info(), but the pragma in Sqlite2 doesn't support @@ -117,16 +119,17 @@ class API_EXPORT SchemaResolver * to make this possible. It finds table's DDL and parses it, * then extracts list of columns from parsing results. */ - QStringList getTableColumns(const QString& table); + QStringList getTableColumns(const QString& table, bool onlyReal = false); /** * @brief getTableColumns Get column names for a table. * @param database Attached database name. * @param table Table to query. + * @param onlyReal If true, the method will skip columns that are not real (like GENERATED columns). * @return List of column names of the table. * @overload */ - QStringList getTableColumns(const QString& database, const QString& table); + QStringList getTableColumns(const QString& database, const QString& table, bool onlyReal = false); QList getTableColumnDataTypes(const QString& table, int expectedNumberOfTypes = -1); QList getTableColumnDataTypes(const QString& database, const QString& table, int expectedNumberOfTypes = -1); @@ -178,6 +181,7 @@ class API_EXPORT SchemaResolver QString getSqliteAutoIndexDdl(const QString& database, const QString& index); static QString getSqliteMasterDdl(bool temp = false); static QStringList getFkReferencingTables(const QString& table, const QList& allParsedTables); + static ObjectType objectTypeFromQueryType(const SqliteQueryType& queryType); QStringList getCollations(); @@ -187,6 +191,9 @@ class API_EXPORT SchemaResolver bool getNoDbLocking() const; void setNoDbLocking(bool value); + QString normalizeCaseObjectName(const QString& name); + QString normalizeCaseObjectName(const QString& database, const QString& name); + static QString objectTypeToString(ObjectType type); static ObjectType stringToObjectType(const QString& type); static void staticInit(); @@ -204,6 +211,7 @@ class API_EXPORT SchemaResolver QString getObjectDdlWithDifficultName(const QString& dbName, const QString& lowerName, QString targetTable, ObjectType type); QString getObjectDdlWithSimpleName(const QString& dbName, const QString& lowerName, QString targetTable, ObjectType type); StrHash getIndexesWithTables(const QString& database = QString()); + QString normalizeCaseObjectNameByQuery(const QString& query, const QString& name); template StrHash> getAllParsedObjectsForType(const QString& database, const QString& type); diff --git a/SQLiteStudio3/coreSQLiteStudio/selectresolver.cpp b/SQLiteStudio3/coreSQLiteStudio/selectresolver.cpp index 3db029d..8a3efa8 100644 --- a/SQLiteStudio3/coreSQLiteStudio/selectresolver.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/selectresolver.cpp @@ -1,9 +1,7 @@ #include "selectresolver.h" #include "parser/token.h" -#include "parser/lexer.h" #include "parser/keywords.h" #include "schemaresolver.h" -#include "parser/ast/sqlitecreateview.h" #include "common/global.h" #include #include @@ -55,8 +53,8 @@ QList> SelectResolver::resolve(SqliteSelect *selec { errors.clear(); extractCte(select); - QList > results; - for (SqliteSelect::Core* core : select->coreSelects) + QList> results; + for (SqliteSelect::Core*& core : select->coreSelects) { results << resolveCore(core); currentCoreResults.clear(); @@ -77,17 +75,39 @@ QList > SelectResolver::resolveAvailableColumns(Sq errors.clear(); extractCte(select); QList > results; - for (SqliteSelect::Core* core : select->coreSelects) + for (SqliteSelect::Core*& core : select->coreSelects) results << resolveAvailableCoreColumns(core); return results; } +QList SelectResolver::resolveAvailableColumns(SqliteSelect::Core::JoinSource* joinSrc) +{ + errors.clear(); + return resolveJoinSource(joinSrc); +} + QSet SelectResolver::resolveTables(SqliteSelect::Core *selectCore) { - QSet
tables; extractCte(selectCore); - QList columns = resolveAvailableColumns(selectCore); + return resolveTablesFromCore(selectCore); +} + +QList> SelectResolver::resolveTables(SqliteSelect *select) +{ + extractCte(select); + QList> results; + for (SqliteSelect::Core*& core : select->coreSelects) + results << resolveTablesFromCore(core); + + return results; +} + +QSet SelectResolver::resolveTables(SqliteSelect::Core::JoinSource* joinSrc) +{ + errors.clear(); + QSet
tables; + QList columns = resolveAvailableColumns(joinSrc); for (const Column& col : columns) { if (col.type != Column::Type::COLUMN) @@ -95,30 +115,21 @@ QSet SelectResolver::resolveTables(SqliteSelect::Core *se tables << col.getTable(); } - return tables; } -QList > SelectResolver::resolveTables(SqliteSelect *select) +QSet SelectResolver::resolveTablesFromCore(SqliteSelect::Core *selectCore) { - QList > results; - extractCte(select); - QList > columnLists = resolveAvailableColumns(select); - for (const QList& columns : columnLists) + QSet
tables; + QList columns = resolveAvailableColumns(selectCore); + for (const Column& col : columns) { - QSet
tables; - for (const Column& col : columns) - { - if (col.type != Column::Type::COLUMN) - continue; - - tables << col.getTable(); - } + if (col.type != Column::Type::COLUMN) + continue; - results << tables; + tables << col.getTable(); } - - return results; + return tables; } QList SelectResolver::translateToColumns(SqliteSelect* select, const TokenList& columnTokens) @@ -148,25 +159,21 @@ const QStringList& SelectResolver::getErrors() const return errors; } +QList SelectResolver::sqliteResolveColumns(const QString& query) +{ + return sqliteResolveColumns(db, query, dbNameToAttach); +} + QList SelectResolver::resolveCore(SqliteSelect::Core* selectCore) { if (selectCore->from) currentCoreSourceColumns = resolveJoinSource(selectCore->from); - for (SqliteSelect::Core::ResultColumn* resCol : selectCore->resultColumns) + for (SqliteSelect::Core::ResultColumn*& resCol : selectCore->resultColumns) resolve(resCol); - if (selectCore->distinctKw) - markDistinctColumns(); - - if (selectCore->groupBy.size() > 0) - markGroupedColumns(); - fixColumnNames(); - - SqliteSelect* select = dynamic_cast(selectCore->parentStatement()); - if (select && select->coreSelects.size() > 1) - markCompoundColumns(); + markFlagsBySelect(selectCore, currentCoreResults); return currentCoreResults; } @@ -177,15 +184,31 @@ QList SelectResolver::resolveAvailableCoreColumns(Sqlite if (selectCore->from) columns = resolveJoinSource(selectCore->from); + markFlagsBySelect(selectCore, columns); return columns; } +void SelectResolver::markFlagsBySelect(SqliteSelect::Core* core, QList& columns) +{ + if (core->distinctKw) + markDistinctColumns(&columns); + + if (core->groupBy.size() > 0) + markGroupedColumns(&columns); + + SqliteSelect* select = dynamic_cast(core->parentStatement()); + if (select && select->coreSelects.size() > 1) + markCompoundColumns(&columns); +} + SelectResolver::Column SelectResolver::translateTokenToColumn(SqliteSelect* select, TokenPtr token) { + QString strippedColName = stripObjName(token->value); + // Default result Column notTranslatedColumn; notTranslatedColumn.type = Column::OTHER; - notTranslatedColumn.column = token->value; + notTranslatedColumn.column = strippedColName; // Find containing statement SqliteStatement* parentStmt = select->findStatementWithToken(token); @@ -214,9 +237,9 @@ SelectResolver::Column SelectResolver::translateTokenToColumn(SqliteSelect* sele } // Search through available columns - for (const Column& availableColumn : resolveAvailableColumns(core)) + for (Column& availableColumn : resolveAvailableColumns(core)) { - if (availableColumn.type == Column::COLUMN && availableColumn.column.compare(token->value, Qt::CaseInsensitive) == 0) + if (availableColumn.type == Column::COLUMN && availableColumn.column.compare(strippedColName, Qt::CaseInsensitive) == 0) return availableColumn; } @@ -227,19 +250,19 @@ SelectResolver::Column SelectResolver::translateTokenToColumn(SqliteSelect* sele return notTranslatedColumn; } -void SelectResolver::markDistinctColumns() +void SelectResolver::markDistinctColumns(QList* columnList) { - markCurrentColumnsWithFlag(FROM_DISTINCT_SELECT); + markCurrentColumnsWithFlag(FROM_DISTINCT_SELECT, columnList); } -void SelectResolver::markCompoundColumns() +void SelectResolver::markCompoundColumns(QList* columnList) { - markCurrentColumnsWithFlag(FROM_COMPOUND_SELECT); + markCurrentColumnsWithFlag(FROM_COMPOUND_SELECT, columnList); } -void SelectResolver::markGroupedColumns() +void SelectResolver::markGroupedColumns(QList* columnList) { - markCurrentColumnsWithFlag(FROM_GROUPED_SELECT); + markCurrentColumnsWithFlag(FROM_GROUPED_SELECT, columnList); } void SelectResolver::fixColumnNames() @@ -296,7 +319,7 @@ void SelectResolver::resolve(SqliteSelect::Core::ResultColumn *resCol) void SelectResolver::resolveStar(SqliteSelect::Core::ResultColumn *resCol) { bool foundAtLeastOne = false; - for (SelectResolver::Column column : currentCoreSourceColumns) + for (SelectResolver::Column column : qAsConst(currentCoreSourceColumns)) { if (!resCol->table.isNull()) { @@ -338,7 +361,6 @@ void SelectResolver::resolveStar(SqliteSelect::Core::ResultColumn *resCol) else column.displayName = column.column; - column.originalColumn = resCol; currentCoreResults << column; foundAtLeastOne = true; } @@ -355,7 +377,6 @@ void SelectResolver::resolveExpr(SqliteSelect::Core::ResultColumn *resCol) // Not a simple column, but some expression SelectResolver::Column column; column.alias = resCol->alias; - column.originalColumn = resCol; column.column = getResColTokensWithoutAlias(resCol).detokenize().trimmed(); column.displayName = !resCol->alias.isNull() ? column.alias : column.column; @@ -378,7 +399,6 @@ void SelectResolver::resolveDbAndTable(SqliteSelect::Core::ResultColumn *resCol) Column col; col.alias = resCol->alias; col.column = expr->column; - col.originalColumn = resCol; col.type = Column::COLUMN; // Display name @@ -399,7 +419,7 @@ void SelectResolver::resolveDbAndTable(SqliteSelect::Core::ResultColumn *resCol) matched = resolveExplicitColumn(expr->column); - if (!matched.table.isNull()) + if (!matched.table.isNull() || !matched.tableAlias.isNull()) { col.database = matched.database; col.originalDatabase = resolveDatabase(matched.database); @@ -425,7 +445,7 @@ void SelectResolver::resolveDbAndTable(SqliteSelect::Core::ResultColumn *resCol) SelectResolver::Column SelectResolver::resolveRowIdColumn(SqliteExpr *expr) { // Looking for first source that can provide ROWID. - for (const Column& column : currentCoreSourceColumns) + for (Column& column : currentCoreSourceColumns) { if (column.table.isNull()) continue; // ROWID cannot be related to source with no table @@ -438,7 +458,7 @@ SelectResolver::Column SelectResolver::resolveRowIdColumn(SqliteExpr *expr) SelectResolver::Column SelectResolver::resolveExplicitColumn(const QString &columnName) { - for (const Column& column : currentCoreSourceColumns) + for (Column& column : currentCoreSourceColumns) { if (columnName.compare(column.column, Qt::CaseInsensitive) != 0 && columnName.compare(column.alias, Qt::CaseInsensitive) != 0) continue; @@ -450,7 +470,7 @@ SelectResolver::Column SelectResolver::resolveExplicitColumn(const QString &colu SelectResolver::Column SelectResolver::resolveExplicitColumn(const QString &table, const QString &columnName) { - for (const Column& column : currentCoreSourceColumns) + for (Column& column : currentCoreSourceColumns) { if (columnName.compare(column.column, Qt::CaseInsensitive) != 0 && columnName.compare(column.alias, Qt::CaseInsensitive) != 0) continue; @@ -465,7 +485,7 @@ SelectResolver::Column SelectResolver::resolveExplicitColumn(const QString &tabl SelectResolver::Column SelectResolver::resolveExplicitColumn(const QString &database, const QString &table, const QString &columnName) { - for (const Column& column : currentCoreSourceColumns) + for (Column& column : currentCoreSourceColumns) { if (columnName.compare(column.column, Qt::CaseInsensitive) != 0 && columnName.compare(column.alias, Qt::CaseInsensitive) != 0) continue; @@ -529,7 +549,7 @@ void SelectResolver::extractCte(SqliteSelect *select) if (!select->with) return; - for (SqliteWith::CommonTableExpression* cte : select->with->cteList) + for (SqliteWith::CommonTableExpression*& cte : select->with->cteList) cteList[cte->table] = cte; } @@ -545,7 +565,7 @@ QList SelectResolver::resolveJoinSource(SqliteSelect::Co { QList columnSources; columnSources += resolveSingleSource(joinSrc->singleSource); - for (SqliteSelect::Core::JoinSourceOther* otherSrc : joinSrc->otherSources) + for (SqliteSelect::Core::JoinSourceOther*& otherSrc : joinSrc->otherSources) columnSources += resolveOtherSource(otherSrc); return columnSources; @@ -566,16 +586,16 @@ QList SelectResolver::resolveSingleSource(SqliteSelect:: return resolveTableFunctionColumns(joinSrc); if (isView(joinSrc->database, joinSrc->table)) - return resolveView(joinSrc->database, joinSrc->table, joinSrc->alias); + return resolveView(joinSrc); - if (joinSrc->database.isNull() && cteList.contains(joinSrc->table)) + if (joinSrc->database.isNull() && cteList.contains(joinSrc->table, Qt::CaseInsensitive)) return resolveCteColumns(joinSrc); QList columnSources; QStringList columns = getTableColumns(joinSrc->database, joinSrc->table, joinSrc->alias); Column column; column.type = Column::COLUMN; - column.table = joinSrc->table;; + column.table = joinSrc->table; column.database = joinSrc->database; column.originalDatabase = resolveDatabase(joinSrc->database); if (!joinSrc->alias.isNull()) @@ -592,40 +612,25 @@ QList SelectResolver::resolveSingleSource(SqliteSelect:: QList SelectResolver::resolveCteColumns(SqliteSelect::Core::SingleSource* joinSrc) { - SqliteWith::CommonTableExpression* cte = cteList[joinSrc->table]; - - Column column; - column.type = Column::COLUMN; - column.flags |= FROM_CTE_SELECT; - column.tableAlias = cte->table; - - QList columnSources; - static_qstring(cteSelectTpl, "WITH %1 SELECT * FROM %2"); + + SqliteWith::CommonTableExpression* cte = cteList.value(joinSrc->table, Qt::CaseInsensitive); QString selectQuery = cte->detokenize(); - QString query = cteSelectTpl.arg(selectQuery, cte->table); - QList queryColumns = db->columnsForQuery(query); - if (queryColumns.isEmpty()) - { - qWarning() << "Could not detect query columns. Probably due to db error:" << db->getErrorText(); - return columnSources; - } + QString theQuery = cteSelectTpl.arg(selectQuery, cte->table); + QList columnSources = sqliteResolveColumns(theQuery); - for (const AliasedColumn& queryColumn : queryColumns) + for (Column& column : columnSources) { - if (!queryColumn.getDatabase().isNull()) - column.database = resolveDatabase(queryColumn.getDatabase()); - else - column.database = queryColumn.getDatabase(); - - column.table = queryColumn.getTable(); + column.flags |= FROM_CTE_SELECT; + column.tableAlias = cte->table; // From CTE perspective, however the column is received as "result column name" from SQLite API // is what we report back to user of the CTE as available column. No matter if it's actual alias, // or simply name of a column. - column.column = queryColumn.getAlias(); - column.displayName = queryColumn.getAlias(); - columnSources << column; + column.column = column.displayName; + + // Column aliases inside of CTE are disregarded, because they do not matter outside of CTE + column.alias = QString(); } return columnSources; @@ -680,16 +685,41 @@ QList SelectResolver::resolveOtherSource(SqliteSelect::C QList SelectResolver::resolveSubSelect(SqliteSelect *select) { - QList columnSources; Q_ASSERT(select->coreSelects.size() > 0); bool compound = (select->coreSelects.size() > 1); if (compound && !resolveMultiCore) - return columnSources; + return QList(); + + // SQLite API used for fully correct & precise resolution of source table, column and displayName. + QString coreQuery = select->detokenize(); + QList columnSources = sqliteResolveColumns(coreQuery); + // Internal, recursive SelectResolver used for fine tuning the tableAlias and oldTableAliases of columns. SelectResolver internalResolver(db, query); - columnSources += internalResolver.resolve(select->coreSelects[0]); + QList columnSourcesFromInternal = internalResolver.resolve(select->coreSelects[0]); + + if (columnSourcesFromInternal.size() == columnSources.size()) + { + // Copy tableAlias and oldTableAliases from internal resolver. + QMutableListIterator it(columnSources); + QMutableListIterator intIt(columnSourcesFromInternal); + while (it.hasNext() && intIt.hasNext()) + { + Column& col = it.next(); + Column& intCol = intIt.next(); + col.tableAlias = intCol.tableAlias; + col.oldTableAliases = intCol.oldTableAliases; + col.flags = intCol.flags; + } + } + else + { + qCritical() << "Number of columns resolved by internal SchemaResolver is different than resolved by SQLite API:" + << columnSourcesFromInternal.size() << "!=" << columnSources.size() + << ", therefore table alias may be identified incorrectly (from resolver, but not by SQLite API)"; + } if (compound) { @@ -701,27 +731,51 @@ QList SelectResolver::resolveSubSelect(SqliteSelect *sel return columnSources; } -QList SelectResolver::resolveView(const QString& database, const QString& name, const QString& alias) +QList SelectResolver::resolveView(SqliteSelect::Core::SingleSource *joinSrc) { - QList results; - SqliteQueryPtr query = schemaResolver->getParsedObject(database, name, SchemaResolver::VIEW); - if (!query) - { - qDebug() << "Could not get parsed CREATE VIEW in SelectResolver::resolveView()."; - return results; - } + static_qstring(columnSqlTpl, "SELECT * FROM %1 LIMIT 0"); + QList results = sqliteResolveColumns(columnSqlTpl.arg(joinSrc->detokenize())); + applySubSelectAlias(results, (!joinSrc->alias.isNull() ? joinSrc->alias : joinSrc->table)); + for (Column& column : results) + column.flags |= FROM_VIEW; - SqliteCreateViewPtr createView = query.dynamicCast(); - if (!createView) + return results; +} + +QList SelectResolver::sqliteResolveColumns(Db* db, const QString& query, const BiStrHash& dbNameToAttach) +{ + QList columnSources; + QList queryColumns = db->columnsForQuery(query); + if (queryColumns.isEmpty()) + qWarning() << "Could not detect query columns. Probably due to db error:" << db->getErrorText(); + + Column column; + for (const AliasedColumn& queryColumn : queryColumns) { - qDebug() << "Parsed object not a CREATE VIEW as expected, but instead it's:" << sqliteQueryTypeToString(query->queryType); - return results; - } + if (!queryColumn.getDatabase().isNull()) + column.database = dbNameToAttach.valueByRight(queryColumn.getDatabase(), queryColumn.getDatabase(), Qt::CaseInsensitive); + else + column.database = QString(); - results = resolveSubSelect(createView->select); - applySubSelectAlias(results, (!alias.isNull() ? alias : name)); + column.displayName = queryColumn.getAlias(); + if (queryColumn.getTable().isNull()) + { + column.type = Column::OTHER; + column.table = QString(); + column.column = wrapObjIfNeeded(queryColumn.getAlias()); + column.alias = queryColumn.getAlias(); + } + else + { + column.type = Column::COLUMN; + column.table = queryColumn.getTable(); + column.column = queryColumn.getColumn(); + column.alias = (queryColumn.getColumn() != queryColumn.getAlias()) ? queryColumn.getAlias() : QString(); + } + columnSources << column; + } - return results; + return columnSources; } bool SelectResolver::isView(const QString& database, const QString& name) @@ -773,10 +827,7 @@ void SelectResolver::applySubSelectAlias(QList& columns, QString SelectResolver::resolveDatabase(const QString& database) { - if (dbNameToAttach.containsRight(database, Qt::CaseInsensitive)) - return dbNameToAttach.valueByRight(database, Qt::CaseInsensitive); - - return database; + return dbNameToAttach.valueByRight(database, database, Qt::CaseInsensitive); } bool SelectResolver::parseOriginalQuery() @@ -802,16 +853,6 @@ bool SelectResolver::parseOriginalQuery() return true; } -SelectResolver::Table::Table() -{ -} - -SelectResolver::Table::Table(const SelectResolver::Table &other) : - database(other.database), originalDatabase(other.originalDatabase), table(other.table), - tableAlias(other.tableAlias), oldTableAliases(other.oldTableAliases), flags(other.flags) -{ -} - int SelectResolver::Table::operator ==(const SelectResolver::Table &other) { return ::operator==(*this, other); @@ -863,3 +904,24 @@ uint qHash(const SelectResolver::Column &column) return qHash(column.database.toLower() + "." + column.table.toLower() + "." + column.column.toLower() + "/" + column.tableAlias.toLower() + "/" + column.oldTableAliases.join(",")); } + +QDebug operator<<(QDebug debug, const SelectResolver::Column &c) +{ + QDebugStateSaver saver(debug); + debug.nospace() << "Column " << c.displayName << "(" + << c.column << " = " << c.alias << ", " + << c.table << " = " << c.tableAlias << ", " + << c.database << " = " << c.originalDatabase + << ")"; + return debug; +} + +QDebug operator<<(QDebug debug, const SelectResolver::Table &c) +{ + QDebugStateSaver saver(debug); + debug.nospace() << "Table (" + << c.table << " = " << c.tableAlias << ", " + << c.database << " = " << c.originalDatabase + << ")"; + return debug; +} diff --git a/SQLiteStudio3/coreSQLiteStudio/selectresolver.h b/SQLiteStudio3/coreSQLiteStudio/selectresolver.h index cb93d65..a77ffe1 100644 --- a/SQLiteStudio3/coreSQLiteStudio/selectresolver.h +++ b/SQLiteStudio3/coreSQLiteStudio/selectresolver.h @@ -1,9 +1,9 @@ #ifndef SELECTRESOLVER_H #define SELECTRESOLVER_H +#include "common/strhash.h" #include "parser/ast/sqliteselect.h" #include "common/bistrhash.h" -#include "expectedtoken.h" #include "parser/ast/sqlitewith.h" #include #include @@ -63,7 +63,8 @@ class API_EXPORT SelectResolver FROM_ANONYMOUS_SELECT = 0x02, FROM_DISTINCT_SELECT = 0x04, FROM_GROUPED_SELECT = 0x08, - FROM_CTE_SELECT = 0x10 + FROM_CTE_SELECT = 0x10, + FROM_VIEW = 0x20 }; /** @@ -71,9 +72,6 @@ class API_EXPORT SelectResolver */ struct API_EXPORT Table { - Table(); - Table(const Table& other); - /** * @brief Database name. * @@ -112,7 +110,6 @@ class API_EXPORT SelectResolver QString alias; QString displayName; bool aliasDefinedInSubQuery = false; - SqliteSelect::Core::ResultColumn* originalColumn = nullptr; int operator==(const Column& other); Table getTable() const; @@ -123,16 +120,18 @@ class API_EXPORT SelectResolver ~SelectResolver(); QList resolveColumnsFromFirstCore(); - QList > resolveColumns(); + QList> resolveColumns(); QList resolve(SqliteSelect::Core* selectCore); - QList > resolve(SqliteSelect* select); + QList> resolve(SqliteSelect* select); QList resolveAvailableColumns(SqliteSelect::Core* selectCore); - QList > resolveAvailableColumns(SqliteSelect* select); + QList> resolveAvailableColumns(SqliteSelect* select); + QList resolveAvailableColumns(SqliteSelect::Core::JoinSource* joinSrc); QSet
resolveTables(SqliteSelect::Core* selectCore); - QList > resolveTables(SqliteSelect* select); + QList> resolveTables(SqliteSelect* select); + QSet
resolveTables(SqliteSelect::Core::JoinSource* joinSrc); /** * @brief Translates tokens representing column name in the SELECT into full column objects. @@ -179,6 +178,30 @@ class API_EXPORT SelectResolver */ const QStringList& getErrors() const; + /** + * @brief This is a convenient overload of method that uses database object passed to the constructor. + * @param query SQL query to analyze. + * @return Column with limited metadata (database, table name - if applicable, column name - if applicable, and displayName) + * + * See static overloaded method for more details. + */ + QList sqliteResolveColumns(const QString& query); + + /** + * @brief Does quick analysis of result columns for the query, using SQLite built-in API. + * @param db Database to analyze the query against. + * @param query SQL query to analyze. + * @param dbNameToAttach A mapping of database name to its attach name, used to resolve db name if SQLite API returns it as attach name. + * @return Column with limited metadata (database, table name - if applicable, column name - if applicable, and displayName) + * + * Instead of doing full scale anaysis of the query, it leverages SQLite API for a query metadata, + * but it lacks information about source table aliases, subquery aliases, + * flags (compund query, aggregate query, cte query, etc). + * It's convenient, but must be complemented by sophisticated logic of the SchemaResolver to provide full info. + * Yet it's good enough if these extended information are not needed, as it can be much faster, than full analysis. + */ + static QList sqliteResolveColumns(Db* db, const QString& query, const BiStrHash& dbNameToAttach = BiStrHash()); + /** * @brief resolveMultiCore * If true (by default), the multi-core subselects will be resolved using @@ -197,6 +220,8 @@ class API_EXPORT SelectResolver private: QList resolveCore(SqliteSelect::Core* selectCore); QList resolveAvailableCoreColumns(SqliteSelect::Core* selectCore); + QSet
resolveTablesFromCore(SqliteSelect::Core* selectCore); + void markFlagsBySelect(SqliteSelect::Core* core, QList& columns); Column translateTokenToColumn(SqliteSelect* select, TokenPtr token); void resolve(SqliteSelect::Core::ResultColumn* resCol); void resolveStar(SqliteSelect::Core::ResultColumn* resCol); @@ -214,16 +239,16 @@ class API_EXPORT SelectResolver QList resolveSingleSourceSubSelect(SqliteSelect::Core::SingleSource* joinSrc); QList resolveOtherSource(SqliteSelect::Core::JoinSourceOther *otherSrc); QList resolveSubSelect(SqliteSelect* select); - QList resolveView(const QString& database, const QString& name, const QString &alias); + QList resolveView(SqliteSelect::Core::SingleSource *joinSrc); bool isView(const QString& database, const QString& name); QStringList getTableColumns(const QString& database, const QString& table, const QString &alias); void applySubSelectAlias(QList& columns, const QString& alias); QString resolveDatabase(const QString& database); bool parseOriginalQuery(); - void markDistinctColumns(); - void markCompoundColumns(); - void markGroupedColumns(); + void markDistinctColumns(QList* columnList = nullptr); + void markCompoundColumns(QList* columnList = nullptr); + void markGroupedColumns(QList* columnList = nullptr); void fixColumnNames(); void markCurrentColumnsWithFlag(Flag flag, QList* columnList = nullptr); bool matchTable(const Column& sourceColumn, const QString& table); @@ -234,7 +259,7 @@ class API_EXPORT SelectResolver Db* db = nullptr; QString query; SqliteSelectPtr originalQueryParsed; - QHash cteList; + StrHash cteList; /** * @brief Database name to attach name map. @@ -307,4 +332,7 @@ API_EXPORT uint qHash(const SelectResolver::Table& table); API_EXPORT int operator==(const SelectResolver::Column& c1, const SelectResolver::Column& c2); API_EXPORT uint qHash(const SelectResolver::Column& column); +API_EXPORT QDebug operator<<(QDebug debug, const SelectResolver::Column &c); +API_EXPORT QDebug operator<<(QDebug debug, const SelectResolver::Table &c); + #endif // SELECTRESOLVER_H diff --git a/SQLiteStudio3/coreSQLiteStudio/services/codesnippetmanager.cpp b/SQLiteStudio3/coreSQLiteStudio/services/codesnippetmanager.cpp new file mode 100644 index 0000000..b50e791 --- /dev/null +++ b/SQLiteStudio3/coreSQLiteStudio/services/codesnippetmanager.cpp @@ -0,0 +1,119 @@ +#include "codesnippetmanager.h" +#include "common/utils.h" +#include "services/config.h" +#include +#include +#include + +CodeSnippetManager::CodeSnippetManager(Config* config) : + config(config) +{ + loadFromConfig(); + if (!CFG_CORE.Internal.DefaultSnippetsCreated.get()) + createDefaultSnippets(); +} + +void CodeSnippetManager::setSnippets(const QList& snippets) +{ + clearSnippets(); + allSnippets = snippets; + refreshNames(); + saveToConfig(); +} + +const QList& CodeSnippetManager::getSnippets() const +{ + return allSnippets; +} + +const QStringList& CodeSnippetManager::getNames() const +{ + return names; +} + +void CodeSnippetManager::saveToConfig() +{ + QVariantList list; + QHash snHash; + for (CodeSnippet*& snip : allSnippets) + { + snHash["name"] = snip->name; + snHash["code"] = snip->code; + snHash["hoteky"] = snip->hotkey; + list << snHash; + } + CFG_CORE.Internal.CodeSnippets.set(list); +} + +QString CodeSnippetManager::getCodeByName(const QString& name) const +{ + CodeSnippet* snippet = findFirst(allSnippets, [name](CodeSnippet* snippet) -> bool + { + return snippet->name == name; + }); + return snippet ? snippet->code : QString(); +} + +void CodeSnippetManager::loadFromConfig() +{ + clearSnippets(); + + QVariantList list = CFG_CORE.Internal.CodeSnippets.get(); + QHash snHash; + CodeSnippet* snip = nullptr; + for (const QVariant& var : list) + { + snHash = var.toHash(); + snip = new CodeSnippet(); + snip->name = snHash["name"].toString(); + snip->code = snHash["code"].toString(); + snip->hotkey = snHash["hoteky"].toString(); + allSnippets << snip; + } + refreshNames(); +} + +void CodeSnippetManager::refreshNames() +{ + names = map(allSnippets, [](CodeSnippet* snippet) -> QString + { + return snippet->name; + }); +} + +void CodeSnippetManager::clearSnippets() +{ + for (CodeSnippet*& snip : allSnippets) + delete snip; + + allSnippets.clear(); +} + +void CodeSnippetManager::createDefaultSnippets() +{ + CodeSnippet* snip = new CodeSnippet(); + snip->name = "Create Table"; + snip->code = "CREATE TABLE tableName (\n" + " id INTEGER PRIMARY KEY AUTOINCREMENT,\n" + " value TEXT,\n" + " image BLOB\n" + ");"; + snip->hotkey = "c"; + allSnippets << snip; + + snip = new CodeSnippet(); + snip->name = "With Recursive"; + snip->code = "WITH RECURSIVE\n" + " cnt(x) AS (\n" + " SELECT 1\n" + " UNION ALL\n" + " SELECT x+1 FROM cnt\n" + " LIMIT 1000000\n" + " )\n" + "SELECT x FROM cnt;"; + snip->hotkey = "w"; + allSnippets << snip; + + saveToConfig(); + CFG_CORE.Internal.DefaultSnippetsCreated.set(true); +} diff --git a/SQLiteStudio3/coreSQLiteStudio/services/codesnippetmanager.h b/SQLiteStudio3/coreSQLiteStudio/services/codesnippetmanager.h new file mode 100644 index 0000000..ade14bd --- /dev/null +++ b/SQLiteStudio3/coreSQLiteStudio/services/codesnippetmanager.h @@ -0,0 +1,42 @@ +#ifndef CODESNIPPETMANAGER_H +#define CODESNIPPETMANAGER_H + +#include "coreSQLiteStudio_global.h" +#include + +class Config; + +class API_EXPORT CodeSnippetManager : public QObject +{ + Q_OBJECT + + public: + struct API_EXPORT CodeSnippet + { + QString name; + QString code; + QString hotkey; + }; + + CodeSnippetManager(Config* config); + + void setSnippets(const QList& snippets); + const QList& getSnippets() const; + const QStringList& getNames() const; + void saveToConfig(); + QString getCodeByName(const QString& name) const; + + private: + void loadFromConfig(); + void refreshNames(); + void clearSnippets(); + void createDefaultSnippets(); + + Config* config = nullptr; + QList allSnippets; + QStringList names; +}; + +#define CODESNIPPETS SQLITESTUDIO->getCodeSnippetManager() + +#endif // CODESNIPPETMANAGER_H diff --git a/SQLiteStudio3/coreSQLiteStudio/services/collationmanager.h b/SQLiteStudio3/coreSQLiteStudio/services/collationmanager.h index 5a05b0f..ef1f57a 100644 --- a/SQLiteStudio3/coreSQLiteStudio/services/collationmanager.h +++ b/SQLiteStudio3/coreSQLiteStudio/services/collationmanager.h @@ -2,7 +2,6 @@ #define COLLATIONMANAGER_H #include "coreSQLiteStudio_global.h" -#include "common/global.h" #include #include #include diff --git a/SQLiteStudio3/coreSQLiteStudio/services/config.cpp b/SQLiteStudio3/coreSQLiteStudio/services/config.cpp index c03847a..8abd762 100644 --- a/SQLiteStudio3/coreSQLiteStudio/services/config.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/services/config.cpp @@ -1,10 +1,14 @@ #include "services/config.h" +#include +#include +#include CFG_DEFINE(Core) static const QString DB_FILE_NAME = QStringLiteral("settings3"); static QString MASTER_CONFIG_FILE = QString(); Config::AskUserForConfigDirFunc Config::askUserForConfigDirFunc; +QSettings* globalSettingsInstance = nullptr; Config::~Config() { @@ -24,3 +28,58 @@ void Config::setAskUserForConfigDirFunc(const AskUserForConfigDirFunc& value) { askUserForConfigDirFunc = value; } + +QString Config::getPortableConfigPath() +{ + QStringList paths = QStringList({"./sqlitestudio-cfg", qApp->applicationDirPath() + "/sqlitestudio-cfg"}); + QSet pathSet; + QDir dir; + for (const QString& path : paths) + { + dir = QDir(path); + pathSet << dir.absolutePath(); + } + + QString potentialPath; + QFileInfo file; + for (const QString& path : pathSet) + { + dir = QDir(path); + file = QFileInfo(dir.absolutePath()); + if (!file.exists()) + { + if (potentialPath.isNull()) + potentialPath = dir.absolutePath(); + + continue; + } + + if (!file.isDir() || !file.isReadable() || !file.isWritable()) + continue; + + for (QFileInfo& entryFile : dir.entryInfoList()) + { + if (!entryFile.isReadable() || !entryFile.isWritable()) + continue; + } + + return dir.absolutePath(); + } + + return potentialPath; +} + +QSettings* Config::getSettings() +{ + if (globalSettingsInstance == nullptr) + { + QString portableConfigPath = Config::getPortableConfigPath(); + QFileInfo portableConfigInfo(portableConfigPath); + if (portableConfigInfo.exists() && portableConfigInfo.isDir() && portableConfigInfo.isReadable()) + globalSettingsInstance = new QSettings(portableConfigPath + "/settings.ini", QSettings::IniFormat); + else + globalSettingsInstance = new QSettings(); + } + + return globalSettingsInstance; +} diff --git a/SQLiteStudio3/coreSQLiteStudio/services/config.h b/SQLiteStudio3/coreSQLiteStudio/services/config.h index 9d1e567..bd001c2 100644 --- a/SQLiteStudio3/coreSQLiteStudio/services/config.h +++ b/SQLiteStudio3/coreSQLiteStudio/services/config.h @@ -3,8 +3,6 @@ #include "coreSQLiteStudio_global.h" #include "config_builder.h" -#include "services/functionmanager.h" -#include "collationmanager.h" #include "sqlitestudio.h" #include "common/utils.h" #include @@ -34,11 +32,16 @@ CFG_CATEGORIES(Core, CFG_ENTRY(QVariantList, Functions, QVariantList()) CFG_ENTRY(QVariantList, Collations, QVariantList()) CFG_ENTRY(QVariantList, Extensions, QVariantList()) + CFG_ENTRY(QVariantList, CodeSnippets, QVariantList()) CFG_ENTRY(QString, BugReportUser, QString()) CFG_ENTRY(QString, BugReportPassword, QString()) CFG_ENTRY(QString, BugReportRecentTitle, QString()) CFG_ENTRY(QString, BugReportRecentContents, QString()) CFG_ENTRY(bool, BugReportRecentError, false) + CFG_ENTRY(bool, DefaultSnippetsCreated, false) + ) + CFG_CATEGORY(CodeAssistant, + CFG_ENTRY(bool, AutoTrigger, true) ) ) @@ -46,6 +49,7 @@ CFG_CATEGORIES(Core, class QAbstractItemModel; class DdlHistoryModel; +class QSettings; class API_EXPORT Config : public QObject { @@ -113,9 +117,10 @@ class API_EXPORT Config : public QObject static void setMasterConfigFile(const QString& path); static QString getMasterConfigFile(); static void setAskUserForConfigDirFunc(const AskUserForConfigDirFunc& value); + static QString getPortableConfigPath(); + static QSettings* getSettings(); virtual void init() = 0; - virtual void cleanUp() = 0; virtual const QString& getConfigDir() const = 0; virtual QString getConfigFilePath() const = 0; virtual bool isInMemory() const = 0; diff --git a/SQLiteStudio3/coreSQLiteStudio/services/functionmanager.h b/SQLiteStudio3/coreSQLiteStudio/services/functionmanager.h index 5fb4908..4680b74 100644 --- a/SQLiteStudio3/coreSQLiteStudio/services/functionmanager.h +++ b/SQLiteStudio3/coreSQLiteStudio/services/functionmanager.h @@ -2,7 +2,6 @@ #define FUNCTIONMANAGER_H #include "coreSQLiteStudio_global.h" -#include "common/global.h" #include #include #include @@ -37,6 +36,7 @@ class API_EXPORT FunctionManager : public QObject QStringList arguments; Type type = SCALAR; bool undefinedArgs = true; + bool deterministic = false; }; struct API_EXPORT ScriptFunction : public FunctionBase diff --git a/SQLiteStudio3/coreSQLiteStudio/services/impl/collationmanagerimpl.cpp b/SQLiteStudio3/coreSQLiteStudio/services/impl/collationmanagerimpl.cpp index 7d24e47..1cdc59f 100644 --- a/SQLiteStudio3/coreSQLiteStudio/services/impl/collationmanagerimpl.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/services/impl/collationmanagerimpl.cpp @@ -6,6 +6,16 @@ #include "common/utils.h" #include +class CollationFunctionInfoImpl : public ScriptingPlugin::FunctionInfo +{ + public: + QString getName() const {return QString();} + QStringList getArguments() const {return {"first", "second"};} + bool getUndefinedArgs() const {return false;} +}; + +CollationFunctionInfoImpl collationFunctionInfo; + CollationManagerImpl::CollationManagerImpl() { init(); @@ -51,7 +61,7 @@ int CollationManagerImpl::evaluate(const QString& name, const QString& value1, c } QString err; - QVariant result = plugin->evaluate(collationsByKey[name]->code, {value1, value2}, &err); + QVariant result = plugin->evaluate(collationsByKey[name]->code, collationFunctionInfo, {value1, value2}, &err); if (!err.isNull()) { @@ -109,7 +119,7 @@ void CollationManagerImpl::loadFromConfig() collHash = var.toHash(); coll = CollationPtr::create(); coll->name = collHash["name"].toString(); - coll->lang = collHash["lang"].toString(); + coll->lang = updateScriptingQtLang(collHash["lang"].toString()); coll->code = collHash["code"].toString(); coll->databases = collHash["databases"].toStringList(); coll->allDatabases = collHash["allDatabases"].toBool(); @@ -123,3 +133,11 @@ void CollationManagerImpl::refreshCollationsByKey() for (CollationPtr collation : collations) collationsByKey[collation->name] = collation; } + +QString CollationManagerImpl::updateScriptingQtLang(const QString& lang) const +{ + if (lang == "QtScript") + return QStringLiteral("JavaScript"); + + return lang; +} diff --git a/SQLiteStudio3/coreSQLiteStudio/services/impl/collationmanagerimpl.h b/SQLiteStudio3/coreSQLiteStudio/services/impl/collationmanagerimpl.h index f5a5937..27adffb 100644 --- a/SQLiteStudio3/coreSQLiteStudio/services/impl/collationmanagerimpl.h +++ b/SQLiteStudio3/coreSQLiteStudio/services/impl/collationmanagerimpl.h @@ -23,6 +23,7 @@ class API_EXPORT CollationManagerImpl : public CollationManager void storeInConfig(); void loadFromConfig(); void refreshCollationsByKey(); + QString updateScriptingQtLang(const QString& lang) const; QList collations; QHash collationsByKey; diff --git a/SQLiteStudio3/coreSQLiteStudio/services/impl/configimpl.cpp b/SQLiteStudio3/coreSQLiteStudio/services/impl/configimpl.cpp index 570395a..a7f8d2b 100644 --- a/SQLiteStudio3/coreSQLiteStudio/services/impl/configimpl.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/services/impl/configimpl.cpp @@ -610,55 +610,12 @@ QString ConfigImpl::getConfigPath() QString ConfigImpl::getLegacyConfigPath() { #ifdef Q_OS_WIN - if (QSysInfo::windowsVersion() & QSysInfo::WV_NT_based) - return SQLITESTUDIO->getEnv("APPDATA")+"/sqlitestudio"; - else - return SQLITESTUDIO->getEnv("HOME")+"/sqlitestudio"; + return SQLITESTUDIO->getEnv("APPDATA")+"/sqlitestudio"; #else return SQLITESTUDIO->getEnv("HOME")+"/.config/sqlitestudio"; #endif } -QString ConfigImpl::getPortableConfigPath() -{ - QStringList paths = QStringList({"./sqlitestudio-cfg", qApp->applicationDirPath() + "/sqlitestudio-cfg"}); - QSet pathSet; - QDir dir; - for (const QString& path : paths) - { - dir = QDir(path); - pathSet << dir.absolutePath(); - } - - QString potentialPath; - QFileInfo file; - for (const QString& path : pathSet) - { - dir = QDir(path); - file = QFileInfo(dir.absolutePath()); - if (!file.exists()) - { - if (potentialPath.isNull()) - potentialPath = dir.absolutePath(); - - continue; - } - - if (!file.isDir() || !file.isReadable() || !file.isWritable()) - continue; - - for (const QFileInfo& entryFile : dir.entryInfoList()) - { - if (!entryFile.isReadable() || !entryFile.isWritable()) - continue; - } - - return dir.absolutePath(); - } - - return potentialPath; -} - void ConfigImpl::initTables() { SqlQueryPtr results = db->exec("SELECT lower(name) AS name FROM sqlite_master WHERE type = 'table'"); @@ -729,29 +686,18 @@ void ConfigImpl::initTables() void ConfigImpl::initDbFile() { - QList> paths; - - // Do we have path selected by user? (because app was unable to find writable location before) - QSettings sett; - QString customPath = sett.value(CONFIG_DIR_SETTING).toString(); - if (!customPath.isEmpty()) - { - paths << QPair(customPath + "/" + DB_FILE_NAME, false); - qDebug() << "Using custom configuration directory. The location is stored in" << sett.fileName(); - } - else - paths.append(getStdDbPaths()); + QList paths = getStdDbPaths(); // A fallback to in-memory db - paths << QPair(memoryDbName, false); + paths << ConfigDirCandidate{memoryDbName, false, false}; // Go through all candidates and pick one QDir dir; - for (const QPair& path : paths) + for (ConfigDirCandidate& path : paths) { - dir = QDir(path.first); - if (path.first != memoryDbName) - dir = QFileInfo(path.first).dir(); + dir = QDir(path.path); + if (path.path != memoryDbName) + dir = QFileInfo(path.path).dir(); if (tryInitDbFile(path)) { @@ -760,6 +706,19 @@ void ConfigImpl::initDbFile() } } + // If not one of std paths, look for the one from previously saved. + if (configDir == memoryDbName) + { + // Do we have path selected by user? (because app was unable to find writable location before) + QSettings* sett = getSettings(); + QString path = sett->value(CONFIG_DIR_SETTING).toString(); + if (!path.isEmpty()) + { + paths << ConfigDirCandidate{path + "/" + DB_FILE_NAME, false, false}; + qDebug() << "Using custom configuration directory. The location is stored in" << sett->fileName(); + } + } + // Failed to use any of predefined directories. Let's ask the user. while (configDir == memoryDbName) { @@ -768,12 +727,12 @@ void ConfigImpl::initDbFile() break; dir = QDir(path); - if (tryInitDbFile(QPair(path + "/" + DB_FILE_NAME, false))) + if (tryInitDbFile(ConfigDirCandidate{path + "/" + DB_FILE_NAME, false, false})) { configDir = dir.absolutePath(); - QSettings sett; - sett.setValue(CONFIG_DIR_SETTING, configDir); - qDebug() << "Using custom configuration directory. The location is stored in" << sett.fileName(); + QSettings* sett = getSettings(); + sett->setValue(CONFIG_DIR_SETTING, configDir); + qDebug() << "Using custom configuration directory. The location is stored in" << sett->fileName(); } } @@ -782,35 +741,35 @@ void ConfigImpl::initDbFile() { paths.removeLast(); QStringList pathStrings; - for (const QPair& path : paths) - pathStrings << path.first; + for (ConfigDirCandidate& path : paths) + pathStrings << path.path; notifyError(QObject::tr("Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart." " Unable to create a file at following locations: %1.").arg(pathStrings.join(", "))); } - qDebug() << "Using configuration directory:" << configDir; + qDebug().noquote() << "Using configuration directory:" << toNativePath(configDir); db->exec("PRAGMA foreign_keys = 1;"); } -QList> ConfigImpl::getStdDbPaths() +QList ConfigImpl::getStdDbPaths() { - QList> paths; + QList paths; // Portable dir location has always precedense - comes first QString portablePath = getPortableConfigPath(); if (!portablePath.isNull()) - paths << QPair(portablePath+"/"+DB_FILE_NAME, false); + paths << ConfigDirCandidate{portablePath+"/"+DB_FILE_NAME, false, true}; // Determinate global config location QString globalPath = getConfigPath(); - paths << QPair(globalPath, true); + paths << ConfigDirCandidate{globalPath, true, false}; // If needed, migrate configuration from legacy location (pre-3.3) to new location (3.3 and later) QString legacyGlobalPath = getLegacyConfigPath(); if (!legacyGlobalPath.isNull()) { - paths << QPair(legacyGlobalPath+"/"+DB_FILE_NAME, true); + paths << ConfigDirCandidate{legacyGlobalPath+"/"+DB_FILE_NAME, true, false}; if (!QFile::exists(globalPath)) tryToMigrateOldGlobalPath(legacyGlobalPath, globalPath); } @@ -818,17 +777,17 @@ QList> ConfigImpl::getStdDbPaths() return paths; } -bool ConfigImpl::tryInitDbFile(const QPair &dbPath) +bool ConfigImpl::tryInitDbFile(const ConfigDirCandidate& dbPath) { // Create global config directory if not existing - if (dbPath.second && !dbPath.first.isNull()) + if (dbPath.createIfNotExists && !dbPath.path.isNull()) { - QDir dir(dbPath.first.mid(0, dbPath.first.length() - DB_FILE_NAME.length() - 1)); + QDir dir(dbPath.path.mid(0, dbPath.path.length() - DB_FILE_NAME.length() - 1)); if (!dir.exists()) QDir::root().mkpath(dir.absolutePath()); } - db = new DbSqlite3("SQLiteStudio settings", dbPath.first, {{DB_PURE_INIT, true}}); + db = new DbSqlite3("SQLiteStudio settings", dbPath.path, {{DB_PURE_INIT, true}}); if (!db->open()) { safe_delete(db); @@ -1185,7 +1144,7 @@ bool ConfigImpl::tryToMigrateOldGlobalPath(const QString& oldPath, const QString if (!QFileInfo::exists(oldPath)) return false; - qDebug() << "Attempting to migrate legacy config location" << oldPath << "to new location" << newPath; + qDebug().noquote() << "Attempting to migrate legacy config location" << toNativePath(oldPath) << "to new location" << toNativePath(newPath); QDir dir = QFileInfo(newPath).dir(); if (!dir.exists()) QDir::root().mkpath(dir.absolutePath()); diff --git a/SQLiteStudio3/coreSQLiteStudio/services/impl/configimpl.h b/SQLiteStudio3/coreSQLiteStudio/services/impl/configimpl.h index 710fbb3..9f0f36e 100644 --- a/SQLiteStudio3/coreSQLiteStudio/services/impl/configimpl.h +++ b/SQLiteStudio3/coreSQLiteStudio/services/impl/configimpl.h @@ -8,6 +8,7 @@ class AsyncConfigHandler; class SqlHistoryModel; +class QSettings; class API_EXPORT ConfigImpl : public Config { @@ -90,6 +91,13 @@ class API_EXPORT ConfigImpl : public Config void rollback(); private: + struct ConfigDirCandidate + { + QString path; + bool createIfNotExists; + bool isPortable; + }; + /** * @brief Stores error from query in class member. * @param query Query to get error from. @@ -102,11 +110,10 @@ class API_EXPORT ConfigImpl : public Config void storeGroup(const DbGroupPtr& group, qint64 parentId = -1); void readGroupRecursively(DbGroupPtr group); QString getConfigPath(); - QString getPortableConfigPath(); void initTables(); void initDbFile(); - QList > getStdDbPaths(); - bool tryInitDbFile(const QPair& dbPath); + QList getStdDbPaths(); + bool tryInitDbFile(const ConfigDirCandidate& dbPath); QVariant deserializeValue(const QVariant& value) const; void asyncAddSqlHistory(qint64 id, const QString& sql, const QString& dbName, int timeSpentMillis, int rowsAffected); diff --git a/SQLiteStudio3/coreSQLiteStudio/services/impl/dbmanagerimpl.cpp b/SQLiteStudio3/coreSQLiteStudio/services/impl/dbmanagerimpl.cpp index 9086257..6258f71 100644 --- a/SQLiteStudio3/coreSQLiteStudio/services/impl/dbmanagerimpl.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/services/impl/dbmanagerimpl.cpp @@ -24,7 +24,7 @@ DbManagerImpl::DbManagerImpl(QObject *parent) : DbManagerImpl::~DbManagerImpl() { // qDebug() << "DbManagerImpl::~DbManagerImpl()"; - for (Db* db : dbList) + for (Db*& db : dbList) { disconnect(db, SIGNAL(disconnected()), this, SLOT(dbDisconnectedSlot())); disconnect(db, SIGNAL(aboutToDisconnect(bool&)), this, SLOT(dbAboutToDisconnect(bool&))); @@ -61,7 +61,7 @@ bool DbManagerImpl::addDb(const QString &name, const QString &path, const QHash< Db* db = createDb(name, path, options, &errorMessage); if (!db) { - notifyError(tr("Could not add database %1: %2").arg(path).arg(errorMessage)); + notifyError(tr("Could not add database %1: %2").arg(path, errorMessage)); return false; } @@ -93,8 +93,6 @@ bool DbManagerImpl::updateDb(Db* db, const QString &name, const QString &path, c nameToDb.remove(db->getName(), Qt::CaseInsensitive); pathToDb.remove(db->getPath()); - bool pathDifferent = db->getPath() != normalizedPath; - QString oldName = db->getName(); db->setName(name); db->setPath(normalizedPath); @@ -114,7 +112,7 @@ bool DbManagerImpl::updateDb(Db* db, const QString &name, const QString &path, c InvalidDb* invalidDb = dynamic_cast(db); bool wasReloaded = false; Db* reloadedDb = db; - if (pathDifferent && invalidDb) + if (invalidDb) { reloadedDb = tryToLoadDb(invalidDb, false); if (reloadedDb) // we need to know that, so we can emit dbLoaded() signal later, out of the listLock @@ -136,7 +134,7 @@ bool DbManagerImpl::updateDb(Db* db, const QString &name, const QString &path, c if (result && reloadedDb) emit dbUpdated(oldName, db); else if (reloadedDb) // database reloaded correctly, but update failed - notifyError(tr("Database %1 could not be updated, because of an error: %2").arg(oldName).arg(CFG->getLastErrorString())); + notifyError(tr("Database %1 could not be updated, because of an error: %2").arg(oldName, CFG->getLastErrorString())); return result; } @@ -297,7 +295,7 @@ DbPlugin* DbManagerImpl::getPluginForDbFile(const QString& filePath) QHash options; Db* probeDb = nullptr; - for (DbPlugin* plugin : dbPlugins) + for (DbPlugin*& plugin : dbPlugins) { probeDb = plugin->getInstance("", filePath, options); if (probeDb) @@ -346,7 +344,7 @@ void DbManagerImpl::loadInitialDbList() { QUrl url; InvalidDb* db = nullptr; - for (const Config::CfgDbPtr& cfgDb : CFG->dbList()) + for (Config::CfgDbPtr& cfgDb : CFG->dbList()) { db = new InvalidDb(cfgDb->name, cfgDb->path, cfgDb->options); @@ -372,7 +370,7 @@ void DbManagerImpl::scanForNewDatabasesInConfig() QUrl url; InvalidDb* db = nullptr; - for (const Config::CfgDbPtr& cfgDb : cfgDbList) + for (Config::CfgDbPtr& cfgDb : cfgDbList) { if (getByName(cfgDb->name) || getByPath(cfgDb->path)) continue; @@ -402,13 +400,13 @@ void DbManagerImpl::rescanInvalidDatabasesForPlugin(DbPlugin* dbPlugin) QUrl url; QString errorMessages; - for (Db* invalidDb : getInvalidDatabases()) + for (Db*& invalidDb : getInvalidDatabases()) { if (invalidDb->getConnectionOptions().contains(DB_PLUGIN) && invalidDb->getConnectionOptions()[DB_PLUGIN].toString() != dbPlugin->getName()) continue; url = QUrl::fromUserInput(invalidDb->getPath()); - if (url.isLocalFile() && !QFile::exists(invalidDb->getPath())) + if (url.isLocalFile() && !QFile::exists(invalidDb->getPath()) && invalidDb->getPath() != ":memory:") continue; errorMessages = QString(); @@ -424,7 +422,7 @@ void DbManagerImpl::rescanInvalidDatabasesForPlugin(DbPlugin* dbPlugin) if (!dbPlugin->checkIfDbServedByPlugin(db)) { - qDebug() << "Managed to load database" << db->getPath() << " (" << db->getName() << ")" + qDebug().noquote() << "Managed to load database" << toNativePath(db->getPath()) << " (" << db->getName() << ")" << "but it doesn't use DbPlugin that was just loaded, so it will not be loaded to the db manager"; delete db; @@ -473,10 +471,6 @@ QList DbManagerImpl::getInvalidDatabases() const Db* DbManagerImpl::tryToLoadDb(InvalidDb* invalidDb, bool emitNotifySignal) { - QUrl url = QUrl::fromUserInput(invalidDb->getPath()); - if (url.isLocalFile() && !QFile::exists(invalidDb->getPath())) - return nullptr; - Db* db = createDb(invalidDb->getName(), invalidDb->getPath(), invalidDb->getConnectionOptions()); if (!db) return nullptr; @@ -588,7 +582,7 @@ void DbManagerImpl::aboutToUnload(Plugin* plugin, PluginType* type) DbPlugin* dbPlugin = dynamic_cast(plugin); dbPlugins.removeOne(dbPlugin); QList toRemove; - for (Db* db : dbList) + for (Db*& db : dbList) { if (!dbPlugin->checkIfDbServedByPlugin(db)) continue; @@ -596,7 +590,7 @@ void DbManagerImpl::aboutToUnload(Plugin* plugin, PluginType* type) toRemove << db; } - for (Db* db : toRemove) + for (Db*& db : toRemove) { emit dbAboutToBeUnloaded(db, dbPlugin); diff --git a/SQLiteStudio3/coreSQLiteStudio/services/impl/functionmanagerimpl.cpp b/SQLiteStudio3/coreSQLiteStudio/services/impl/functionmanagerimpl.cpp index 2fcc689..1b49f3b 100644 --- a/SQLiteStudio3/coreSQLiteStudio/services/impl/functionmanagerimpl.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/services/impl/functionmanagerimpl.cpp @@ -18,6 +18,50 @@ #include #include +class FunctionInfoImpl : public ScriptingPlugin::FunctionInfo +{ + public: + FunctionInfoImpl(FunctionManager::FunctionBase* fn); + FunctionInfoImpl(); + + QString getName() const; + QStringList getArguments() const; + bool getUndefinedArgs() const; + + private: + QString name; + QStringList arguments; + bool undefinedArgs = true; +}; + +FunctionInfoImpl::FunctionInfoImpl(FunctionManager::FunctionBase* fn) +{ + name = fn->name; + arguments = fn->arguments; + undefinedArgs = fn->undefinedArgs; +} + +FunctionInfoImpl::FunctionInfoImpl() +{ +} + +QString FunctionInfoImpl::getName() const +{ + return name; +} + +QStringList FunctionInfoImpl::getArguments() const +{ + return arguments; +} + +bool FunctionInfoImpl::getUndefinedArgs() const +{ + return undefinedArgs; +} + + + FunctionManagerImpl::FunctionManagerImpl() { init(); @@ -120,14 +164,15 @@ QVariant FunctionManagerImpl::evaluateScriptScalar(ScriptFunction* func, const Q return langUnsupportedError(name, argCount, func->lang); } DbAwareScriptingPlugin* dbAwarePlugin = dynamic_cast(plugin); + FunctionInfoImpl info(func); QString error; QVariant result; if (dbAwarePlugin) - result = dbAwarePlugin->evaluate(func->code, args, db, false, &error); + result = dbAwarePlugin->evaluate(func->code, info, args, db, false, &error); else - result = plugin->evaluate(func->code, args, &error); + result = plugin->evaluate(func->code, info, args, &error); if (!error.isEmpty()) { @@ -147,11 +192,12 @@ void FunctionManagerImpl::evaluateScriptAggregateInitial(ScriptFunction* func, D ScriptingPlugin::Context* ctx = plugin->createContext(); aggregateStorage["context"] = QVariant::fromValue(ctx); + FunctionInfoImpl info(func); if (dbAwarePlugin) - dbAwarePlugin->evaluate(ctx, func->initCode, {}, db, false); + dbAwarePlugin->evaluate(ctx, func->initCode, info, {}, db, false); else - plugin->evaluate(ctx, func->initCode, {}); + plugin->evaluate(ctx, func->initCode, info, {}); if (plugin->hasError(ctx)) { @@ -170,12 +216,13 @@ void FunctionManagerImpl::evaluateScriptAggregateStep(ScriptFunction* func, cons return; DbAwareScriptingPlugin* dbAwarePlugin = dynamic_cast(plugin); + FunctionInfoImpl info(func); ScriptingPlugin::Context* ctx = aggregateStorage["context"].value(); if (dbAwarePlugin) - dbAwarePlugin->evaluate(ctx, func->code, args, db, false); + dbAwarePlugin->evaluate(ctx, func->code, info, args, db, false); else - plugin->evaluate(ctx, func->code, args); + plugin->evaluate(ctx, func->code, info, args); if (plugin->hasError(ctx)) { @@ -203,11 +250,13 @@ QVariant FunctionManagerImpl::evaluateScriptAggregateFinal(ScriptFunction* func, DbAwareScriptingPlugin* dbAwarePlugin = dynamic_cast(plugin); + FunctionInfoImpl info(func); + QVariant result; if (dbAwarePlugin) - result = dbAwarePlugin->evaluate(ctx, func->finalCode, {}, db, false); + result = dbAwarePlugin->evaluate(ctx, func->finalCode, info, {}, db, false); else - result = plugin->evaluate(ctx, func->finalCode, {}); + result = plugin->evaluate(ctx, func->finalCode, info, {}); if (plugin->hasError(ctx)) { @@ -320,7 +369,7 @@ void FunctionManagerImpl::loadFromConfig() fnHash = var.toHash(); func = new ScriptFunction(); func->name = fnHash["name"].toString(); - func->lang = fnHash["lang"].toString(); + func->lang = updateScriptingQtLang(fnHash["lang"].toString()); func->code = fnHash["code"].toString(); func->initCode = fnHash["initCode"].toString(); func->finalCode = fnHash["finalCode"].toString(); @@ -335,7 +384,7 @@ void FunctionManagerImpl::loadFromConfig() void FunctionManagerImpl::clearFunctions() { - for (ScriptFunction* fn : functions) + for (ScriptFunction*& fn : functions) delete fn; functions.clear(); @@ -483,14 +532,15 @@ QVariant FunctionManagerImpl::nativeScript(const QList& args, Db* db, return tr("Unsupported scripting language: %1").arg(args[0].toString()); } DbAwareScriptingPlugin* dbAwarePlugin = dynamic_cast(plugin); + FunctionInfoImpl info; QString error; QVariant result; if (dbAwarePlugin) - result = dbAwarePlugin->evaluate(args[1].toString(), QList(), db, false, &error); + result = dbAwarePlugin->evaluate(args[1].toString(), info, QList(), db, false, &error); else - result = plugin->evaluate(args[1].toString(), QList(), &error); + result = plugin->evaluate(args[1].toString(), info, QList(), &error); if (!error.isEmpty()) { @@ -781,6 +831,14 @@ void FunctionManagerImpl::registerNativeFunction(const QString& name, const QStr nativeFunctions << nf; } +QString FunctionManagerImpl::updateScriptingQtLang(const QString& lang) const +{ + if (lang == "QtScript") + return QStringLiteral("JavaScript"); + + return lang; +} + int qHash(const FunctionManagerImpl::Key& key) { return qHash(key.name) ^ key.argCount ^ static_cast(key.type); diff --git a/SQLiteStudio3/coreSQLiteStudio/services/impl/functionmanagerimpl.h b/SQLiteStudio3/coreSQLiteStudio/services/impl/functionmanagerimpl.h index 0e5e103..26f4ae2 100644 --- a/SQLiteStudio3/coreSQLiteStudio/services/impl/functionmanagerimpl.h +++ b/SQLiteStudio3/coreSQLiteStudio/services/impl/functionmanagerimpl.h @@ -56,6 +56,7 @@ class API_EXPORT FunctionManagerImpl : public FunctionManager QString cannotFindFunctionError(const QString& name, int argCount); QString langUnsupportedError(const QString& name, int argCount, const QString& lang); void registerNativeFunction(const QString& name, const QStringList& args, NativeFunction::ImplementationFunction funcPtr); + QString updateScriptingQtLang(const QString& lang) const; static QStringList getArgMarkers(int argCount); static QVariant nativeRegExp(const QList& args, Db* db, bool& ok); diff --git a/SQLiteStudio3/coreSQLiteStudio/services/impl/pluginmanagerimpl.cpp b/SQLiteStudio3/coreSQLiteStudio/services/impl/pluginmanagerimpl.cpp index 324f549..dc36980 100644 --- a/SQLiteStudio3/coreSQLiteStudio/services/impl/pluginmanagerimpl.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/services/impl/pluginmanagerimpl.cpp @@ -38,7 +38,7 @@ void PluginManagerImpl::init() #endif #ifdef Q_OS_MACX - pluginDirs += QCoreApplication::applicationDirPath()+"/../PlugIns"; + pluginDirs += QDir(QCoreApplication::applicationDirPath()+"/../PlugIns").absolutePath(); #endif scanPlugins(); @@ -50,7 +50,7 @@ void PluginManagerImpl::deinit() emit aboutToQuit(); // Plugin containers and their plugins - for (PluginContainer* container : pluginContainer.values()) + for (PluginContainer*& container : pluginContainer.values()) { if (container->builtIn) { @@ -61,13 +61,13 @@ void PluginManagerImpl::deinit() unload(container->name); } - for (PluginContainer* container : pluginContainer.values()) + for (PluginContainer*& container : pluginContainer.values()) delete container; pluginContainer.clear(); // Types - for (PluginType* type : registeredPluginTypes) + for (PluginType*& type : registeredPluginTypes) delete type; registeredPluginTypes.clear(); @@ -109,14 +109,11 @@ PluginType* PluginManagerImpl::getPluginType(Plugin* plugin) const void PluginManagerImpl::scanPlugins() { - QStringList nameFilters; - nameFilters << "*.so" << "*.dll" << "*.dylib"; - QPluginLoader* loader = nullptr; - for (QString pluginDirPath : pluginDirs) + for (QString& pluginDirPath : pluginDirs) { QDir pluginDir(pluginDirPath); - for (QString fileName : pluginDir.entryList(nameFilters, QDir::Files)) + for (QString& fileName : pluginDir.entryList(sharedLibFileFilters(), QDir::Files)) { fileName = pluginDir.absoluteFilePath(fileName); loader = new QPluginLoader(fileName); @@ -131,7 +128,7 @@ void PluginManagerImpl::scanPlugins() } QStringList names; - for (PluginContainer* container : pluginContainer.values()) + for (PluginContainer*& container : pluginContainer.values()) { if (!container->builtIn) names << container->name; @@ -143,7 +140,7 @@ void PluginManagerImpl::scanPlugins() void PluginManagerImpl::loadPlugins() { QStringList alreadyAttempted; - for (const QString& pluginName : pluginContainer.keys()) + for (QString& pluginName : pluginContainer.keys()) { if (shouldAutoLoad(pluginName)) load(pluginName, alreadyAttempted); @@ -158,7 +155,7 @@ bool PluginManagerImpl::initPlugin(QPluginLoader* loader, const QString& fileNam QJsonObject pluginMetaData = loader->metaData(); QString pluginTypeName = pluginMetaData.value("MetaData").toObject().value("type").toString(); PluginType* pluginType = nullptr; - for (PluginType* type : registeredPluginTypes) + for (PluginType*& type : registeredPluginTypes) { if (type->getName() == pluginTypeName) { @@ -453,12 +450,12 @@ void PluginManagerImpl::unload(const QString& pluginName) return; // Unloading depdendent plugins - for (PluginContainer* otherContainer : pluginContainer.values()) + for (PluginContainer*& otherContainer : pluginContainer.values()) { if (otherContainer == container) continue; - for (const PluginDependency& dep : otherContainer->dependencies) + for (PluginDependency& dep : otherContainer->dependencies) { if (dep.name == pluginName) { @@ -472,9 +469,9 @@ void PluginManagerImpl::unload(const QString& pluginName) removePluginFromCollections(container->plugin); // Deinitializing and unloading plugin + unloadTranslation(container->name); emit aboutToUnload(container->plugin, container->type); container->plugin->deinit(); - unloadTranslation(container->name); QPluginLoader* loader = container->loader; if (!loader->isLoaded()) @@ -491,7 +488,7 @@ void PluginManagerImpl::unload(const QString& pluginName) emit unloaded(container->name, container->type); - qDebug() << pluginName << "unloaded:" << container->filePath; + qDebug().noquote() << pluginName << "unloaded:" << toNativePath(container->filePath); } bool PluginManagerImpl::load(const QString& pluginName) @@ -596,7 +593,15 @@ void PluginManagerImpl::pluginLoaded(PluginManagerImpl::PluginContainer* contain { if (!container->builtIn) { - loadTranslation(container->name); + QString tsName = container->translationName.isEmpty() ? + ( + container->name.endsWith("Plugin") ? + container->name.left(container->name.length() - 6) : + container->name + ) : + container->translationName; + + loadTranslation(tsName); container->plugin = dynamic_cast(container->loader->instance()); container->loaded = true; } @@ -604,7 +609,7 @@ void PluginManagerImpl::pluginLoaded(PluginManagerImpl::PluginContainer* contain emit loaded(container->plugin, container->type); if (!container->builtIn) - qDebug() << container->name << "loaded:" << container->filePath; + qDebug().noquote() << container->name << "loaded:" << toNativePath(container->filePath); } void PluginManagerImpl::addPluginToCollections(Plugin* plugin) @@ -618,7 +623,7 @@ void PluginManagerImpl::removePluginFromCollections(Plugin* plugin) { ScriptingPlugin* scriptingPlugin = dynamic_cast(plugin); if (scriptingPlugin && scriptingPlugins.contains(scriptingPlugin->getLanguage())) - scriptingPlugins.remove(plugin->getName()); + scriptingPlugins.remove(scriptingPlugin->getLanguage()); } bool PluginManagerImpl::readMetaData(PluginManagerImpl::PluginContainer* container) @@ -633,6 +638,7 @@ bool PluginManagerImpl::readMetaData(PluginManagerImpl::PluginContainer* contain container->description = metaData["description"].toString(); container->title = metaData["title"].toString(); container->loadByDefault = metaData.contains("loadByDefault") ? metaData["loadByDefault"].toBool() : true; + container->translationName = metaData.contains("translationName") ? metaData["translationName"].toString() : QString(); } else if (container->plugin) { diff --git a/SQLiteStudio3/coreSQLiteStudio/services/impl/pluginmanagerimpl.h b/SQLiteStudio3/coreSQLiteStudio/services/impl/pluginmanagerimpl.h index c9d56aa..7a8ba4f 100644 --- a/SQLiteStudio3/coreSQLiteStudio/services/impl/pluginmanagerimpl.h +++ b/SQLiteStudio3/coreSQLiteStudio/services/impl/pluginmanagerimpl.h @@ -156,6 +156,21 @@ class API_EXPORT PluginManagerImpl : public PluginManager * @brief Names of plugins that this plugin conflicts with. */ QStringList conflicts; + + /** + * @brief If not empty, contains Plugin's project name to be used for loading translation resource file. + * + * For typical SQLiteStudio plugin the auto-generated translation resource name is the same + * as the name of the plugin project. Typically, name of loaded plugin class is made of + * the name of the plugin project and the "Plugin" word suffix. Therefore SQLiteStudio + * by default just removes the "Plugin" suffix (if it has such) and attempts to load the translation + * named this way. + * + * If the main Plugin class does not follow this naming strategy (project name + Plugin suffix), + * then the translationName should be specified in plugin's metadata, + * giving actual name of translation resource (i.e. name of Plugin's source code project) to be loaded. + */ + QString translationName; }; /** diff --git a/SQLiteStudio3/coreSQLiteStudio/services/impl/sqliteextensionmanagerimpl.cpp b/SQLiteStudio3/coreSQLiteStudio/services/impl/sqliteextensionmanagerimpl.cpp index 63dbaf6..d5cc4f6 100644 --- a/SQLiteStudio3/coreSQLiteStudio/services/impl/sqliteextensionmanagerimpl.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/services/impl/sqliteextensionmanagerimpl.cpp @@ -1,6 +1,8 @@ #include "sqliteextensionmanagerimpl.h" -#include "services/notifymanager.h" #include "services/dbmanager.h" +#include +#include +#include SqliteExtensionManagerImpl::SqliteExtensionManagerImpl() { @@ -30,21 +32,66 @@ QList SqliteExtensionManagerImpl::getExten return results; } +QStringList SqliteExtensionManagerImpl::getExtensionDirs() const +{ + return extensionDirs; +} + void SqliteExtensionManagerImpl::init() { loadFromConfig(); + scanExtensionDirs(); +} + +void SqliteExtensionManagerImpl::scanExtensionDirs() +{ + extensionDirs += qApp->applicationDirPath() + "/extensions"; + extensionDirs += qApp->applicationDirPath() + "/ext"; + extensionDirs += QDir(CFG->getConfigDir()).absoluteFilePath("ext"); + extensionDirs += QDir(CFG->getConfigDir()).absoluteFilePath("extensions"); +#ifdef Q_OS_MACX + extensionDirs += QDir(QCoreApplication::applicationDirPath()+"/../extensions").absolutePath(); +#endif + + QString envDirs = SQLITESTUDIO->getEnv("SQLITESTUDIO_SQLITE_EXTENSIONS"); + if (!envDirs.isNull()) + extensionDirs += envDirs.split(PATH_LIST_SEPARATOR); + +#ifdef SQLITE_EXTENSIONS_DIR + extensionDirs += STRINGIFY(SQLITE_EXTENSIONS_DIR); +#endif + + for (QString& extDirPath : extensionDirs) + { + QDir extDir(extDirPath); + for (QString& fileName : extDir.entryList(sharedLibFileFilters(), QDir::Files)) + { + QString path = extDir.absoluteFilePath(fileName); + auto findIt = std::find_if(extensions.begin(), extensions.end(), [path](ExtensionPtr& ext) {return ext->filePath == path;}); + if (findIt != extensions.end()) + continue; // already on the list + + ExtensionPtr ext = ExtensionPtr::create(); + ext->filePath = path; + ext->initFunc = QString(); + ext->databases = QStringList(); + ext->allDatabases = false; + extensions << ext; + qDebug() << "SQLite extension:" << path; + } + } } void SqliteExtensionManagerImpl::storeInConfig() { QVariantList list; QHash extHash; - for (ExtensionPtr ext : extensions) + for (ExtensionPtr& ext : extensions) { extHash["filePath"] = ext->filePath; extHash["initFunc"] = ext->initFunc; extHash["allDatabases"] = ext->allDatabases; - extHash["databases"] =common(DBLIST->getDbNames(), ext->databases); + extHash["databases"] = common(DBLIST->getDbNames(), ext->databases); list << extHash; } CFG_CORE.Internal.Extensions.set(list); @@ -66,5 +113,6 @@ void SqliteExtensionManagerImpl::loadFromConfig() ext->databases = extHash["databases"].toStringList(); ext->allDatabases = extHash["allDatabases"].toBool(); extensions << ext; + qDebug() << "SQLite extension from config:" << ext->filePath; } } diff --git a/SQLiteStudio3/coreSQLiteStudio/services/impl/sqliteextensionmanagerimpl.h b/SQLiteStudio3/coreSQLiteStudio/services/impl/sqliteextensionmanagerimpl.h index 6fd7f46..9414c0a 100644 --- a/SQLiteStudio3/coreSQLiteStudio/services/impl/sqliteextensionmanagerimpl.h +++ b/SQLiteStudio3/coreSQLiteStudio/services/impl/sqliteextensionmanagerimpl.h @@ -11,13 +11,16 @@ class SqliteExtensionManagerImpl : public SqliteExtensionManager void setExtensions(const QList& newExtensions); QList getAllExtensions() const; QList getExtensionForDatabase(const QString& dbName) const; + QStringList getExtensionDirs() const; private: void init(); + void scanExtensionDirs(); void storeInConfig(); void loadFromConfig(); QList extensions; + QStringList extensionDirs; }; #endif // SQLITEEXTENSIONMANAGERIMPL_H diff --git a/SQLiteStudio3/coreSQLiteStudio/services/notifymanager.cpp b/SQLiteStudio3/coreSQLiteStudio/services/notifymanager.cpp index f8b7f25..977897f 100644 --- a/SQLiteStudio3/coreSQLiteStudio/services/notifymanager.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/services/notifymanager.cpp @@ -36,7 +36,7 @@ void NotifyManager::deleted(Db* db, const QString& database, const QString& obje emit objectDeleted(db, database, object); } -void NotifyManager::createded(Db* db, const QString& database, const QString& object) +void NotifyManager::created(Db* db, const QString& database, const QString& object) { emit objectCreated(db, database, object); } diff --git a/SQLiteStudio3/coreSQLiteStudio/services/notifymanager.h b/SQLiteStudio3/coreSQLiteStudio/services/notifymanager.h index 5bb4571..517ecf4 100644 --- a/SQLiteStudio3/coreSQLiteStudio/services/notifymanager.h +++ b/SQLiteStudio3/coreSQLiteStudio/services/notifymanager.h @@ -36,7 +36,7 @@ class API_EXPORT NotifyManager : public QObject void modified(Db* db, const QString& database, const QString& object); void deleted(Db* db, const QString& database, const QString& object); - void createded(Db* db, const QString& database, const QString& object); + void created(Db* db, const QString& database, const QString& object); void renamed(Db* db, const QString& database, const QString& oldObject, const QString& newObject); private: diff --git a/SQLiteStudio3/coreSQLiteStudio/services/sqliteextensionmanager.h b/SQLiteStudio3/coreSQLiteStudio/services/sqliteextensionmanager.h index a135f3b..9d5cd1c 100644 --- a/SQLiteStudio3/coreSQLiteStudio/services/sqliteextensionmanager.h +++ b/SQLiteStudio3/coreSQLiteStudio/services/sqliteextensionmanager.h @@ -24,6 +24,7 @@ class API_EXPORT SqliteExtensionManager : public QObject virtual void setExtensions(const QList& newExtensions) = 0; virtual QList getAllExtensions() const = 0; virtual QList getExtensionForDatabase(const QString& dbName) const = 0; + virtual QStringList getExtensionDirs() const = 0; signals: void extensionListChanged(); diff --git a/SQLiteStudio3/coreSQLiteStudio/sqlfileexecutor.cpp b/SQLiteStudio3/coreSQLiteStudio/sqlfileexecutor.cpp new file mode 100644 index 0000000..819d222 --- /dev/null +++ b/SQLiteStudio3/coreSQLiteStudio/sqlfileexecutor.cpp @@ -0,0 +1,223 @@ +#include "sqlfileexecutor.h" +#include "db/db.h" +#include "db/sqlquery.h" +#include "services/notifymanager.h" + +#include +#include +#include + +SqlFileExecutor::SqlFileExecutor(QObject *parent) + : QObject{parent} +{ +} + +void SqlFileExecutor::execSqlFromFile(Db* db, const QString& filePath, bool ignoreErrors, QString codec, bool async) +{ + if (!db && !db->isOpen()) + { + emit execEnded(); + return; + } + + if (executionInProgress) + { + emit execEnded(); + return; + } + + fkWasEnabled = db->exec("PRAGMA foreign_keys")->getSingleCell().toBool(); + if (fkWasEnabled) + { + SqlQueryPtr res = db->exec("PRAGMA foreign_keys = 0"); + if (res->isError()) + { + qDebug() << "Failed to temporarily disable foreign keys enforcement:" << db->getErrorText(); + emit execEnded(); + return; + } + } + + // Exec file + executionInProgress = 1; + this->ignoreErrors = ignoreErrors; + this->codec = codec; + this->filePath = filePath; + this->db = db; + emit updateProgress(0); + if (!db->begin()) + { + notifyError(tr("Could not execute SQL, because application has failed to start transaction: %1").arg(db->getErrorText())); + emit execEnded(); + return; + } + + if (async) + QtConcurrent::run(this, &SqlFileExecutor::execInThread); + else + execInThread(); +} + +bool SqlFileExecutor::isExecuting() const +{ + return executionInProgress; +} + +void SqlFileExecutor::stopExecution() +{ + if (!executionInProgress) + { + emit execEnded(); + return; + } + + executionInProgress = 0; + + if (db) // should always be there, but just in case + { + db->interrupt(); + db->rollback(); + db = nullptr; + notifyWarn(tr("Execution from file cancelled. Any queries executed so far have been rolled back.")); + } + emit execEnded(); +} + +bool SqlFileExecutor::execQueryFromFile(Db* db, const QString& sql) +{ + return !db->exec(sql)->isError(); +} + +void SqlFileExecutor::execInThread() +{ + // Open file + QFile file(filePath); + if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) + { + notifyError(tr("Could not open file '%1' for reading: %2").arg(filePath, file.errorString())); + executionInProgress = 0; + emit execEnded(); + return; + } + + QTextStream stream(&file); + stream.setCodec(codec.toLatin1().constData()); + + qint64 fileSize = file.size(); + int attemptedExecutions = 0; + int executed = 0; + bool ok = true; + + QElapsedTimer timer; + timer.start(); + QList> errors = executeFromStream(stream, executed, attemptedExecutions, ok, fileSize); + int millis = timer.elapsed(); + + if (fkWasEnabled) + { + SqlQueryPtr res = db->exec("PRAGMA foreign_keys = 1"); + if (res->isError()) + qDebug() << "Failed to restore foreign keys enforcement after execution SQL from file:" << res->getErrorText(); + } + + if (executionInProgress.loadAcquire()) + { + handleExecutionResults(db, executed, attemptedExecutions, ok, ignoreErrors, millis); + if (!errors.isEmpty()) + emit execErrors(errors, !ok && !ignoreErrors); + } + + file.close(); + emit execEnded(); + executionInProgress = 0; +} + +void SqlFileExecutor::handleExecutionResults(Db* db, int executed, int attemptedExecutions, bool ok, bool ignoreErrors, int millis) +{ + bool doCommit = ok ? true : ignoreErrors; + if (doCommit) + { + if (!db->commit()) + { + notifyError(tr("Could not execute SQL, because application has failed to commit the transaction: %1").arg(db->getErrorText())); + db->rollback(); + } + else if (!ok) // committed with errors + { + notifyInfo(tr("Finished executing %1 queries in %2 seconds. %3 were not executed due to errors.") + .arg(QString::number(executed), QString::number(millis / 1000.0), QString::number(attemptedExecutions - executed))); + emit schemaNeedsRefreshing(db); + } + else + { + notifyInfo(tr("Finished executing %1 queries in %2 seconds.").arg(QString::number(executed), QString::number(millis / 1000.0))); + emit schemaNeedsRefreshing(db); + } + } + else + { + db->rollback(); + notifyError(tr("Could not execute SQL due to error.")); + } +} + +QList> SqlFileExecutor::executeFromStream(QTextStream& stream, int& executed, int& attemptedExecutions, bool& ok, qint64 fileSize) +{ + QList> errors; + qint64 pos = 0; + QChar c; + QString sql; + sql.reserve(10000); + SqlQueryPtr results; + while (!stream.atEnd() && executionInProgress.loadAcquire()) + { + while (!db->isComplete(sql) && !stream.atEnd()) + { + stream >> c; + sql.append(c); + while (c != ';' && !stream.atEnd()) + { + stream >> c; + sql.append(c); + } + } + + if (shouldSkipQuery(sql)) + { + sql.clear(); + continue; + } + + results = db->exec(sql); + attemptedExecutions++; + if (results->isError()) + { + ok = false; + errors << QPair(sql, results->getErrorText()); + if (!ignoreErrors) + break; + } + else + executed++; + + sql.clear(); + if (attemptedExecutions % 100 == 0) + { + pos = stream.device()->pos(); + emit updateProgress(static_cast(100 * pos / fileSize)); + } + } + return errors; +} + +bool SqlFileExecutor::shouldSkipQuery(const QString& sql) +{ + if (sql.trimmed().isEmpty() || !db->isComplete(sql)) + return true; + + QString upper = sql.toUpper().trimmed().split("\n").last().trimmed(); + return (upper.startsWith("BEGIN") || + upper.startsWith("COMMIT") || + upper.startsWith("ROLLBACK") || + upper.startsWith("END")); +} diff --git a/SQLiteStudio3/coreSQLiteStudio/sqlfileexecutor.h b/SQLiteStudio3/coreSQLiteStudio/sqlfileexecutor.h new file mode 100644 index 0000000..fbca301 --- /dev/null +++ b/SQLiteStudio3/coreSQLiteStudio/sqlfileexecutor.h @@ -0,0 +1,43 @@ +#ifndef SQLFILEEXECUTOR_H +#define SQLFILEEXECUTOR_H + +#include "coreSQLiteStudio_global.h" +#include +#include + +class Db; + +class API_EXPORT SqlFileExecutor : public QObject +{ + Q_OBJECT + + public: + explicit SqlFileExecutor(QObject *parent = nullptr); + void execSqlFromFile(Db* db, const QString& filePath, bool ignoreErrors, QString codec, bool async = true); + bool isExecuting() const; + + private: + bool execQueryFromFile(Db* db, const QString& sql); + void execInThread(); + void handleExecutionResults(Db* db, int executed, int attemptedExecutions, bool ok, bool ignoreErrors, int millis); + QList> executeFromStream(QTextStream& stream, int& executed, int& attemptedExecutions, bool& ok, qint64 fileSize); + bool shouldSkipQuery(const QString& sql); + + QAtomicInt executionInProgress = 0; + Db* db = nullptr; + bool fkWasEnabled = true; + bool ignoreErrors = false; + QString codec; + QString filePath; + + public slots: + void stopExecution(); + + signals: + void schemaNeedsRefreshing(Db* db); + void updateProgress(int value); + void execEnded(); + void execErrors(const QList>& errors, bool rolledBack); +}; + +#endif // SQLFILEEXECUTOR_H diff --git a/SQLiteStudio3/coreSQLiteStudio/sqlhistorymodel.cpp b/SQLiteStudio3/coreSQLiteStudio/sqlhistorymodel.cpp index 26e2d41..6d7addd 100644 --- a/SQLiteStudio3/coreSQLiteStudio/sqlhistorymodel.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/sqlhistorymodel.cpp @@ -16,8 +16,6 @@ QVariant SqlHistoryModel::data(const QModelIndex& index, int role) const if (role == Qt::TextAlignmentRole && (index.column() == 2 || index.column() == 3)) return (int)(Qt::AlignRight|Qt::AlignVCenter); - QVariant d = QueryModel::data(index, role); - return QueryModel::data(index, role); } diff --git a/SQLiteStudio3/coreSQLiteStudio/sqlitestudio.cpp b/SQLiteStudio3/coreSQLiteStudio/sqlitestudio.cpp index c38f528..4e966fd 100644 --- a/SQLiteStudio3/coreSQLiteStudio/sqlitestudio.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/sqlitestudio.cpp @@ -1,5 +1,6 @@ #include "sqlitestudio.h" #include "plugins/plugin.h" +#include "services/codesnippetmanager.h" #include "services/pluginmanager.h" #include "common/utils.h" #include "common/utils_sql.h" @@ -34,13 +35,14 @@ #include "services/extralicensemanager.h" #include "services/sqliteextensionmanager.h" #include "translations.h" +#include "chillout/chillout.h" #include #include #include DEFINE_SINGLETON(SQLiteStudio) -static const int sqlitestudioVersion = 30303; +static const int sqlitestudioVersion = 30404; SQLiteStudio::SQLiteStudio() { @@ -51,6 +53,25 @@ SQLiteStudio::SQLiteStudio() SQLiteStudio::~SQLiteStudio() { } + +void SQLiteStudio::setupCrashHandler() +{ + auto &chillout = Debug::Chillout::getInstance(); + +#ifdef _WIN32 + chillout.init(qApp->applicationName().toStdWString(), qApp->applicationDirPath().toStdWString()); +#else + chillout.init(qApp->applicationName().toStdString(), qApp->applicationDirPath().toStdString()); +#endif + + chillout.setBacktraceCallback([](const char * const) {}); + + chillout.setCrashCallback([this]() { + for (CrashHandler& hnd : crashHandlers) + hnd(); + }); +} + QStringList SQLiteStudio::getInitialTranslationFiles() const { return initialTranslationFiles; @@ -61,6 +82,11 @@ void SQLiteStudio::setInitialTranslationFiles(const QStringList& value) initialTranslationFiles = value; } +void SQLiteStudio::installCrashHandler(SQLiteStudio::CrashHandler handler) +{ + crashHandlers << handler; +} + QString SQLiteStudio::getCurrentLang() const { @@ -182,6 +208,16 @@ void SQLiteStudio::setExportManager(ExportManager* value) exportManager = value; } +CodeSnippetManager* SQLiteStudio::getCodeSnippetManager() const +{ + return codeSnippetManager; +} + +void SQLiteStudio::setCodeSnippetManager(CodeSnippetManager* newCodeSnippetManager) +{ + codeSnippetManager = newCodeSnippetManager; +} + int SQLiteStudio::getVersion() const { return sqlitestudioVersion; @@ -280,7 +316,7 @@ void SQLiteStudio::init(const QStringList& cmdListArguments, bool guiAvailable) QThreadPool::globalInstance()->setMaxThreadCount(10); - Q_INIT_RESOURCE(coreSQLiteStudio); + SQLS_INIT_RESOURCE(coreSQLiteStudio); CfgLazyInitializer::init(); @@ -345,6 +381,7 @@ void SQLiteStudio::init(const QStringList& cmdListArguments, bool guiAvailable) updateManager = new UpdateManager(); #endif extraLicenseManager = new ExtraLicenseManager(); + codeSnippetManager = new CodeSnippetManager(config); extraLicenseManager->addLicense("SQLiteStudio license (GPL v3)", ":/docs/licenses/sqlitestudio_license.txt"); extraLicenseManager->addLicense("Fugue icons", ":/docs/licenses/fugue_icons.txt"); @@ -352,6 +389,9 @@ void SQLiteStudio::init(const QStringList& cmdListArguments, bool guiAvailable) extraLicenseManager->addLicense("diff_match (Apache License v2.0)", ":/docs/licenses/diff_match.txt"); extraLicenseManager->addLicense("RSA library (GPL v3)", ":/docs/licenses/gpl.txt"); extraLicenseManager->addLicense("SingleApplication (The MIT License)", ":/docs/licenses/mit.txt"); + extraLicenseManager->addLicense("ICU (ICU License)", ":/docs/licenses/icu.txt"); + + setupCrashHandler(); } void SQLiteStudio::initPlugins() @@ -365,31 +405,43 @@ void SQLiteStudio::initPlugins() void SQLiteStudio::cleanUp() { + if (finalCleanupDone) + return; + + finalCleanupDone = true; emit aboutToQuit(); - disconnect(pluginManager, SIGNAL(aboutToUnload(Plugin*,PluginType*)), this, SLOT(pluginToBeUnloaded(Plugin*,PluginType*))); - disconnect(pluginManager, SIGNAL(unloaded(QString,PluginType*)), this, SLOT(pluginUnloaded(QString,PluginType*))); - if (!immediateQuit) - { - if (pluginManager) - pluginManager->deinit(); - - safe_delete(pluginManager); // PluginManager before DbManager, so Db objects are deleted while DbManager still exists -#ifdef PORTABLE_CONFIG - safe_delete(updateManager); -#endif - safe_delete(populateManager); - safe_delete(importManager); - safe_delete(exportManager); - safe_delete(functionManager); - safe_delete(extraLicenseManager); - safe_delete(dbManager); - safe_delete(config); - safe_delete(codeFormatter); - safe_delete(dbAttacherFactory); - safe_delete(env); - NotifyManager::destroy(); - } - Q_CLEANUP_RESOURCE(coreSQLiteStudio); + // Deleting all singletons contained in this object, alongside with plugin deinitialization & unloading + // causes QTranslator to crash randomly during shutdown, due to some issue in Qt itself, because it tries to refresh + // some internal translators state after the translator is uninstalled, but at the same time many message resources + // are being unloaded together with plugins and it somehow causes the crash (randomly). + // At the same time if hardly find any reason to execute proper deinitialization of all singletons, when the application stops. + // The session (UI) is saved anyway independently in the UI code. + // Explicit deletion of singletons does not really have any benefits. + // Leaving this code here for some time, just to understand it later if needed, but eventually it will be deleted. +// disconnect(pluginManager, SIGNAL(aboutToUnload(Plugin*,PluginType*)), this, SLOT(pluginToBeUnloaded(Plugin*,PluginType*))); +// disconnect(pluginManager, SIGNAL(unloaded(QString,PluginType*)), this, SLOT(pluginUnloaded(QString,PluginType*))); +// if (!immediateQuit) +// { +// if (pluginManager) +// pluginManager->deinit(); + +// safe_delete(pluginManager); // PluginManager before DbManager, so Db objects are deleted while DbManager still exists +//#ifdef PORTABLE_CONFIG +// safe_delete(updateManager); +//#endif +// safe_delete(populateManager); +// safe_delete(importManager); +// safe_delete(exportManager); +// safe_delete(functionManager); +// safe_delete(extraLicenseManager); +// safe_delete(dbManager); +// safe_delete(config); +// safe_delete(codeFormatter); +// safe_delete(dbAttacherFactory); +// safe_delete(env); +// NotifyManager::destroy(); +// } +// SQLS_CLEANUP_RESOURCE(coreSQLiteStudio); } void SQLiteStudio::updateCodeFormatter() diff --git a/SQLiteStudio3/coreSQLiteStudio/sqlitestudio.h b/SQLiteStudio3/coreSQLiteStudio/sqlitestudio.h index 0b07717..c284133 100644 --- a/SQLiteStudio3/coreSQLiteStudio/sqlitestudio.h +++ b/SQLiteStudio3/coreSQLiteStudio/sqlitestudio.h @@ -10,6 +10,7 @@ class DbManager; class Config; +class CollationManager; class QProcessEnvironment; class PluginManager; class QThreadPool; @@ -29,6 +30,8 @@ class UpdateManager; #endif class ExtraLicenseManager; class SqliteExtensionManager; +class Db; +class CodeSnippetManager; /** @file */ @@ -60,6 +63,8 @@ class API_EXPORT SQLiteStudio : public QObject DECLARE_SINGLETON(SQLiteStudio) public: + typedef std::function CrashHandler; + /** * @brief Initializes SQLiteStudio object. * @param cmdListArguments Command line arguments. @@ -123,6 +128,9 @@ class API_EXPORT SQLiteStudio : public QObject ExportManager* getExportManager() const; void setExportManager(ExportManager* value); + CodeSnippetManager* getCodeSnippetManager() const; + void setCodeSnippetManager(CodeSnippetManager* newCodeSnippetManager); + int getVersion() const; QString getVersionString() const; @@ -159,6 +167,8 @@ class API_EXPORT SQLiteStudio : public QObject QStringList getInitialTranslationFiles() const; void setInitialTranslationFiles(const QStringList& value); + void installCrashHandler(CrashHandler handler); + private: /** * @brief Creates singleton instance. @@ -175,6 +185,10 @@ class API_EXPORT SQLiteStudio : public QObject */ ~SQLiteStudio(); + void setupCrashHandler(); + + QList crashHandlers; + /** * @brief Code formatter service. */ @@ -207,26 +221,28 @@ class API_EXPORT SQLiteStudio : public QObject ExportManager* exportManager = nullptr; ImportManager* importManager = nullptr; PopulateManager* populateManager = nullptr; + CodeSnippetManager* codeSnippetManager = nullptr; #ifdef PORTABLE_CONFIG UpdateManager* updateManager = nullptr; #endif ExtraLicenseManager* extraLicenseManager = nullptr; QString currentLang; QStringList initialTranslationFiles; + bool finalCleanupDone = false; private slots: void pluginLoaded(Plugin* plugin,PluginType* pluginType); void pluginToBeUnloaded(Plugin* plugin,PluginType* pluginType); void pluginUnloaded(const QString& pluginName,PluginType* pluginType); + public slots: /** * @brief Cleans up all internal objects. * - * Deletes all internal objects. It's called from destructor. + * Deletes all internal objects. It's called from qApp signal or from UI window closing event. */ void cleanUp(); - public slots: /** * @brief Updates code formatter with available plugins. * diff --git a/SQLiteStudio3/coreSQLiteStudio/tablemodifier.cpp b/SQLiteStudio3/coreSQLiteStudio/tablemodifier.cpp index 59d978c..1a8abb6 100644 --- a/SQLiteStudio3/coreSQLiteStudio/tablemodifier.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/tablemodifier.cpp @@ -41,12 +41,14 @@ void TableModifier::alterTable(SqliteCreateTablePtr newCreateTable) handleFkConstrains(newCreateTable.data(), createTable->table, newName); QString tempTableName; + bool doCopyData = !getColumnsToCopyData(newCreateTable).isEmpty(); if (table.compare(newName, Qt::CaseInsensitive) == 0) - tempTableName = renameToTemp(); + tempTableName = renameToTemp(doCopyData); newCreateTable->rebuildTokens(); sqls << newCreateTable->detokenize(); - copyDataTo(newCreateTable); + if (doCopyData) + copyDataTo(newCreateTable); handleFks(); @@ -61,24 +63,24 @@ void TableModifier::alterTable(SqliteCreateTablePtr newCreateTable) sqls << "PRAGMA foreign_keys = 1;"; } -void TableModifier::renameTo(const QString& newName) +void TableModifier::renameTo(const QString& newName, bool doCopyData) { if (!createTable) return; // Using ALTER TABLE RENAME TO is not a good solution here, because it automatically renames all occurrences in REFERENCES, // which we don't want, because we rename a lot to temporary tables and drop them. - sqls << QString("CREATE TABLE %1 AS SELECT * FROM %2;").arg(wrapObjIfNeeded(newName), wrapObjIfNeeded(table)) + sqls << QString("CREATE TABLE %1 AS SELECT * FROM %2%3;").arg(wrapObjIfNeeded(newName), wrapObjIfNeeded(table), doCopyData ? "" : " LIMIT 0") << QString("DROP TABLE %1;").arg(wrapObjIfNeeded(table)); table = newName; createTable->table = newName; } -QString TableModifier::renameToTemp() +QString TableModifier::renameToTemp(bool doCopyData) { QString name = getTempTableName(); - renameTo(name); + renameTo(name, doCopyData); return name; } @@ -189,16 +191,30 @@ bool TableModifier::handleFks(SqliteForeignKey* fk, const QString& oldName, cons bool TableModifier::handleFkConstrains(SqliteCreateTable* stmt, const QString& oldName, const QString& theNewName) { bool modified = false; - for (SqliteCreateTable::Constraint* fk : stmt->getForeignKeysByTable(oldName)) + for (SqliteCreateTable::Constraint*& fk : stmt->getForeignKeysByTable(oldName)) { if (handleFks(fk->foreignKey, oldName, theNewName)) + { modified = true; + if (fk->foreignKey->indexedColumns.isEmpty()) + { + stmt->constraints.removeOne(fk); + delete fk; + } + } } - for (SqliteCreateTable::Column::Constraint* fk : stmt->getColumnForeignKeysByTable(oldName)) + for (SqliteCreateTable::Column::Constraint*& fk : stmt->getColumnForeignKeysByTable(oldName)) { if (handleFks(fk->foreignKey, oldName, theNewName)) + { modified = true; + if (fk->foreignKey->indexedColumns.isEmpty()) + { + stmt->removeColumnConstraint(fk); + delete fk; + } + } } return modified; } @@ -302,7 +318,6 @@ bool TableModifier::handleColumnTokens(TokenList& columnsToUpdate) bool TableModifier::handleUpdateColumns(SqliteUpdate* update) { bool modified = false; - QString lowerName; QVariant colName; QString newName; QStringList newNames; @@ -401,20 +416,29 @@ QStringList TableModifier::getModifiedTables() const return modifiedTables; } -void TableModifier::copyDataTo(SqliteCreateTablePtr newCreateTable) +QList TableModifier::getColumnsToCopyData(SqliteCreateTablePtr newCreateTable) { - QStringList existingColumns = createTable->getColumnNames(); - - QStringList srcCols; - QStringList dstCols; - for (SqliteCreateTable::Column* column : newCreateTable->columns) + QList resultColumns; + QStringList existingColumnsBefore = createTable->getColumnNames(); + for (SqliteCreateTable::Column*& column : newCreateTable->columns) { if (column->hasConstraint(SqliteCreateTable::Column::Constraint::GENERATED)) continue; - if (!existingColumns.contains(column->originalName)) + if (!existingColumnsBefore.contains(column->originalName)) continue; // not copying columns that didn't exist before + resultColumns << column; + } + return resultColumns; +} + +void TableModifier::copyDataTo(SqliteCreateTablePtr newCreateTable) +{ + QStringList srcCols; + QStringList dstCols; + for (SqliteCreateTable::Column*& column : getColumnsToCopyData(newCreateTable)) + { srcCols << wrapObjIfNeeded(column->originalName); dstCols << wrapObjIfNeeded(column->name); } @@ -427,7 +451,7 @@ void TableModifier::handleIndexes() SchemaResolver resolver(db); resolver.setIgnoreSystemObjects(true); QList parsedIndexesForTable = resolver.getParsedIndexesForTable(originalTable); - for (SqliteCreateIndexPtr index : parsedIndexesForTable) + for (SqliteCreateIndexPtr& index : parsedIndexesForTable) handleIndex(index); } @@ -454,7 +478,7 @@ void TableModifier::handleTriggers() SchemaResolver resolver(db); resolver.setIgnoreSystemObjects(true); QList parsedTriggersForTable = resolver.getParsedTriggersForTable(originalTable, true); - for (SqliteCreateTriggerPtr trig : parsedTriggersForTable) + for (SqliteCreateTriggerPtr& trig : parsedTriggersForTable) handleTrigger(trig); } @@ -527,7 +551,7 @@ void TableModifier::handleTriggerQueries(SqliteCreateTriggerPtr trigger) { SqliteQuery* newQuery = nullptr; QList newQueries; - for (SqliteQuery* query : trigger->queries) + for (SqliteQuery*& query : trigger->queries) { // The handleTriggerQuery() may delete the input query object. Don't refer to it later. newQuery = handleTriggerQuery(query, trigger->trigger, trigger->table); @@ -544,7 +568,7 @@ void TableModifier::handleViews() SchemaResolver resolver(db); resolver.setIgnoreSystemObjects(true); QList parsedViewsForTable = resolver.getParsedViewsForTable(originalTable); - for (SqliteCreateViewPtr view : parsedViewsForTable) + for (SqliteCreateViewPtr& view : parsedViewsForTable) handleView(view); } @@ -608,12 +632,12 @@ SqliteSelect* TableModifier::handleSelect(SqliteSelect* select, const QString& t QList selSources = select->getAllTypedStatements(); TokenList tableTokens; StrHash resolvedTables; - for (SqliteSelect::Core* core : select->coreSelects) + for (SqliteSelect::Core*& core : select->coreSelects) { resolvedTables = tablesAsNameHash(selectResolver.resolveTables(core)); tableTokens = core->getContextTableTokens(false); - for (TokenPtr token : tableTokens) + for (TokenPtr& token : tableTokens) { if (token->value.compare(originalTable, Qt::CaseInsensitive) != 0) continue; @@ -868,7 +892,7 @@ bool TableModifier::handleExpr(SqliteExpr* expr) if (!exprList.isEmpty()) { bool res = true; - for (SqliteExpr* e : exprList) + for (SqliteExpr*& e : exprList) { res &= handleExpr(e); if (!res) @@ -906,7 +930,7 @@ void TableModifier::simpleHandleIndexes() SchemaResolver resolver(db); resolver.setIgnoreSystemObjects(true); QList parsedIndexesForTable = resolver.getParsedIndexesForTable(originalTable); - for (SqliteCreateIndexPtr index : parsedIndexesForTable) + for (SqliteCreateIndexPtr& index : parsedIndexesForTable) sqls << index->detokenize(); } @@ -920,7 +944,7 @@ void TableModifier::simpleHandleTriggers(const QString& view) else parsedTriggers = resolver.getParsedTriggersForTable(originalTable); - for (SqliteCreateTriggerPtr trig : parsedTriggers) + for (SqliteCreateTriggerPtr& trig : parsedTriggers) sqls << trig->detokenize(); } diff --git a/SQLiteStudio3/coreSQLiteStudio/tablemodifier.h b/SQLiteStudio3/coreSQLiteStudio/tablemodifier.h index 4c6af24..600a761 100644 --- a/SQLiteStudio3/coreSQLiteStudio/tablemodifier.h +++ b/SQLiteStudio3/coreSQLiteStudio/tablemodifier.h @@ -35,8 +35,8 @@ class API_EXPORT TableModifier void parseDdl(); QString getTempTableName(); void copyDataTo(const QString& targetTable, const QStringList& srcCols, const QStringList& dstCols); - void renameTo(const QString& newName); - QString renameToTemp(); + void renameTo(const QString& newName, bool doCopyData = true); + QString renameToTemp(bool doCopyData = true); void copyDataTo(const QString& table); void copyDataTo(SqliteCreateTablePtr newCreateTable); @@ -84,7 +84,7 @@ class API_EXPORT TableModifier bool handleUpdateColumns(SqliteUpdate* update); QStringList handleUpdateColumns(const QStringList& colNames, bool& modified); QString handleUpdateColumn(const QString& colName, bool& modified); - + QList getColumnsToCopyData(SqliteCreateTablePtr newCreateTable); template bool handleIndexedColumns(QList& columnsToUpdate) diff --git a/SQLiteStudio3/coreSQLiteStudio/translations.cpp b/SQLiteStudio3/coreSQLiteStudio/translations.cpp index dc53395..72883b7 100644 --- a/SQLiteStudio3/coreSQLiteStudio/translations.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/translations.cpp @@ -22,10 +22,10 @@ void loadTranslation(const QString& baseName) QStringList filters = QStringList({baseName+"_"+lang+".qm"}); QDir dir; - for (const QString& dirPath : SQLITESTUDIO_TRANSLATION_DIRS) + for (QString& dirPath : SQLITESTUDIO_TRANSLATION_DIRS) { dir.setPath(dirPath); - for (const QString& f : dir.entryList(filters)) + for (QString& f : dir.entryList(filters)) { res = translator->load(f, dirPath); if (res) @@ -40,7 +40,10 @@ void loadTranslation(const QString& baseName) } if (!res) + { + delete translator; return; + } qApp->installTranslator(translator); SQLITESTUDIO_TRANSLATIONS[baseName] = translator; @@ -66,15 +69,15 @@ void loadTranslations(const QStringList& baseNames) QStringList getAvailableTranslations() { + static QRegularExpression re("[^\\_]+\\_(\\w+)\\.qm"); QSet locales; - QRegularExpression re("[^\\_]+\\_(\\w+)\\.qm"); QRegularExpressionMatch match; QDir dir; QStringList filters = QStringList({"*_*.qm"}); - for (const QString& dirPath : SQLITESTUDIO_TRANSLATION_DIRS) + for (QString& dirPath : SQLITESTUDIO_TRANSLATION_DIRS) { dir.setPath(dirPath); - for (const QString& f : dir.entryList(filters)) + for (QString& f : dir.entryList(filters)) { match = re.match(f); if (!match.isValid()) @@ -85,6 +88,10 @@ QStringList getAvailableTranslations() } locales << "en"; + // #4278 - the en_us translation as explicit qm file is unnecessary, + // but produced by CrowdIn. The "en" is default and used for American English. + locales.remove("en_us"); + return locales.values(); } @@ -114,5 +121,5 @@ void setDefaultLanguage(const QString& lang) QString getConfigLanguageDefault() { - return CFG_CORE.General.Language.getDefultValue().toString(); + return CFG_CORE.General.Language.getDefaultValue().toString(); } diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio.ts b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio.ts new file mode 100644 index 0000000..ba114ea --- /dev/null +++ b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio.ts @@ -0,0 +1,1099 @@ + + + + + AbstractDb + + + + Cannot execute query on closed database. + + + + + Error attaching database %1: %2 + + + + + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + + + + + ChainExecutor + + + The database for executing queries was not defined. + chain executor + + + + + The database for executing queries was not open. + chain executor + + + + + Could not disable foreign keys in the database. Details: %1 + chain executor + + + + + Could not start a database transaction. Details: %1 + chain executor + + + + + Interrupted + chain executor + + + + + Could not commit a database transaction. Details: %1 + chain executor + + + + + CompletionHelper + + + New row reference + + + + + Old row reference + + + + + New table name + + + + + New index name + + + + + New view name + + + + + New trigger name + + + + + Table or column alias + + + + + transaction name + + + + + New column name + + + + + Column data type + + + + + Constraint name + + + + + Error message + + + + + Any word + + + + + Default database + + + + + Temporary objects database + + + + + ConfigImpl + + + Could not start database transaction for deleting SQL history, therefore it's not deleted. + + + + + Could not commit database transaction for deleting SQL history, therefore it's not deleted. + + + + + DbManagerImpl + + + Could not add database %1: %2 + + + + + Database %1 could not be updated, because of an error: %2 + + + + + + Database file doesn't exist. + + + + + + + No supporting plugin loaded. + + + + + Database could not be initialized. + + + + + No suitable database driver plugin found. + + + + + DbObjectOrganizer + + + + Error while creating table in target database: %1 + + + + + Could not parse table. + + + + + Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. + + + + + Error while copying data for table %1: %2 + + + + + + + Error while copying data to table %1: %2 + + + + + Error while dropping source view %1: %2 +Tables, indexes, triggers and views copied to database %3 will remain. + + + + + Error while creating view in target database: %1 + + + + + Error while creating index in target database: %1 + + + + + Error while creating trigger in target database: %1 + + + + + + + Could not parse object '%1' in order to move or copy it. + + + + + DdlHistoryModel + + + Database name + ddl history header + + + + + Database file + ddl history header + + + + + Date of execution + ddl history header + + + + + Changes + ddl history header + + + + + ExportManager + + + Export plugin %1 doesn't support exporing query results. + + + + + Export plugin %1 doesn't support exporing tables. + + + + + Export plugin %1 doesn't support exporing databases. + + + + + Export format '%1' is not supported. Supported formats are: %2. + + + + + Export to the clipboard was successful. + + + + + Export to the file '%1' was successful. + + + + + Export was successful. + + + + + Could not export to file %1. File cannot be open for writting. + + + + + ExportWorker + + + Error while exporting query results: %1 + + + + + Error while counting data column width to export from query results: %1 + + + + + + Could not parse %1 in order to export it. It will be excluded from the export output. + + + + + Error while reading data to export from table %1: %2 + + + + + Error while counting data to export from table %1: %2 + + + + + Error while counting data column width to export from table %1: %2 + + + + + FunctionManagerImpl + + + Invalid number of arguments to function '%1'. Expected %2, but got %3. + + + + + No such function registered in SQLiteStudio: %1(%2) + + + + + Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. + + + + + Invalid regular expression pattern: %1 + + + + + + Could not open file %1 for reading: %2 + + + + + Could not open file %1 for writting: %2 + + + + + Error while writting to file %1: %2 + + + + + Unsupported scripting language: %1 + + + + + GenericExportPlugin + + + Could not initialize text codec for exporting. Using default codec: %1 + + + + + ImportManager + + + Imported data to the table '%1' successfully. Number of imported rows: %2 + + + + + ImportWorker + + + No columns provided by the import plugin. + + + + + Could not start transaction in order to import a data: %1 + + + + + Could not commit transaction for imported data: %1 + + + + + Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. + + + + + Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. + + + + + Could not create table to import to: %1 + + + + + + + Error while importing data: %1 + + + + + + Interrupted. + import process status update + + + + + Could not import data row number %1. The row was ignored. Problem details: %2 + + + + + PluginManagerImpl + + + Cannot load plugin %1, because it's in conflict with plugin %2. + + + + + Cannot load plugin %1, because its dependency was not loaded: %2. + + + + + Cannot load plugin %1. Error details: %2 + + + + + Cannot load plugin %1 (error while initializing plugin). + + + + + min: %1 + plugin dependency version + + + + + max: %1 + plugin dependency version + + + + + PopulateConstant + + + Constant + populate constant plugin name + + + + + PopulateConstantConfig + + + Constant value: + + + + + PopulateDictionary + + + Dictionary + dictionary populating plugin name + + + + + PopulateDictionaryConfig + + + Dictionary file + + + + + Pick dictionary file + + + + + Word separator + + + + + Whitespace + + + + + Line break + + + + + Method of using words + + + + + Ordered + + + + + Randomly + + + + + PopulateManager + + + Table '%1' populated successfully. + + + + + PopulateRandom + + + Random number + + + + + PopulateRandomConfig + + + Constant prefix + + + + + No prefix + + + + + Minimum value + + + + + Maximum value + + + + + Constant suffix + + + + + No suffix + + + + + PopulateRandomText + + + Random text + + + + + PopulateRandomTextConfig + + + Use characters from common sets: + + + + + Minimum length + + + + + Letters from a to z. + + + + + Alpha + + + + + Numbers from 0 to 9. + + + + + Numeric + + + + + A whitespace, a tab and a new line character. + + + + + Whitespace + + + + + Includes all above and all others. + + + + + Binary + + + + + Use characters from my custom set: + + + + + Maximum length + + + + + If you type some character multiple times, it's more likely to be used. + + + + + PopulateScript + + + Script + + + + + PopulateScriptConfig + + + Initialization code (optional) + + + + + Per step code + + + + + Language + + + + + Help + + + + + PopulateSequence + + + Sequence + + + + + PopulateSequenceConfig + + + Start value: + + + + + Step: + + + + + PopulateWorker + + + Could not start transaction in order to perform table populating. Error details: %1 + + + + + Error while populating table: %1 + + + + + Could not commit transaction after table populating. Error details: %1 + + + + + QObject + + + Could not open file '%1' for reading: %2 + + + + + Could not open database: %1 + + + + + Result set expired or no row available. + + + + + + Could not load extension %1: %2 + + + + + Could not run WAL checkpoint: %1 + + + + + Could not close database: %1 + + + + + Could not attach database %1: %2 + + + + + + Incomplete query. + + + + + Parser stack overflow + + + + + Syntax error + + + + + Could not open dictionary file %1 for reading. + + + + + Dictionary file must exist and be readable. + + + + + Maximum value cannot be less than minimum value. + + + + + Maximum length cannot be less than minimum length. + + + + + Custom character set cannot be empty. + + + + + Could not find plugin to support scripting language: %1 + + + + + Error while executing populating initial code: %1 + + + + + Error while executing populating code: %1 + + + + + Select implementation language. + + + + + Implementation code cannot be empty. + + + + + Could not resolve data source for column: %1 + + + + + Could not resolve table for column '%1'. + + + + + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Unable to create a file at following locations: %1. + + + + + General purpose + plugin category name + + + + + Database support + plugin category name + + + + + Code formatter + plugin category name + + + + + Scripting languages + plugin category name + + + + + Exporting + plugin category name + + + + + Importing + plugin category name + + + + + Table populating + plugin category name + + + + + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. + + + + + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. + + + + + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. + + + + + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. + + + + + Cannot not update trigger %1 according to table %2 modification. + + + + + Cannot not update view %1 according to table %2 modifications. +The view will remain as it is. + + + + + + + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. + + + + + Could not parse DDL of the view to be created. Details: %1 + + + + + Parsed query is not CREATE VIEW. It's: %1 + + + + + SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. + + + + + QueryExecutor + + + Execution interrupted. + + + + + Database is not open. + + + + + Only one query can be executed simultaneously. + + + + + + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 + + + + + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. + + + + + ScriptingQtDbProxy + + + No database available in current context, while called JavaScript's %1 command. + + + + + Error from %1: %2 + + + + + SqlFileExecutor + + + Could not execute SQL, because application has failed to start transaction: %1 + + + + + Execution from file cancelled. Any queries executed so far have been rolled back. + + + + + Could not open file '%1' for reading: %2 + + + + + Could not execute SQL, because application has failed to commit the transaction: %1 + + + + + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. + + + + + Finished executing %1 queries in %2 seconds. + + + + + Could not execute SQL due to error. + + + + + SqlHistoryModel + + + Database + sql history header + + + + + Execution date + sql history header + + + + + Time spent + sql history header + + + + + Rows affected + sql history header + + + + + SQL + sql history header + + + + + UpdateManager + + + Could not check for updates (%1). + + + + diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_af_ZA.ts b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_af_ZA.ts new file mode 100644 index 0000000..2f9d9f2 --- /dev/null +++ b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_af_ZA.ts @@ -0,0 +1,1101 @@ + + + + + AbstractDb + + + + Cannot execute query on closed database. + Cannot execute query on closed database. + + + + Error attaching database %1: %2 + Error attaching database %1: %2 + + + + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + + + + ChainExecutor + + + The database for executing queries was not defined. + chain executor + The database for executing queries was not defined. + + + + The database for executing queries was not open. + chain executor + The database for executing queries was not open. + + + + Could not disable foreign keys in the database. Details: %1 + chain executor + Could not disable foreign keys in the database. Details: %1 + + + + Could not start a database transaction. Details: %1 + chain executor + Could not start a database transaction. Details: %1 + + + + Interrupted + chain executor + Interrupted + + + + Could not commit a database transaction. Details: %1 + chain executor + Could not commit a database transaction. Details: %1 + + + + CompletionHelper + + + New row reference + New row reference + + + + Old row reference + Old row reference + + + + New table name + New table name + + + + New index name + New index name + + + + New view name + New view name + + + + New trigger name + New trigger name + + + + Table or column alias + Table or column alias + + + + transaction name + transaction name + + + + New column name + New column name + + + + Column data type + Column data type + + + + Constraint name + Constraint name + + + + Error message + Error message + + + + Any word + Any word + + + + Default database + Default database + + + + Temporary objects database + Temporary objects database + + + + ConfigImpl + + + Could not start database transaction for deleting SQL history, therefore it's not deleted. + Could not start database transaction for deleting SQL history, therefore it's not deleted. + + + + Could not commit database transaction for deleting SQL history, therefore it's not deleted. + Could not commit database transaction for deleting SQL history, therefore it's not deleted. + + + + DbManagerImpl + + + Could not add database %1: %2 + Could not add database %1: %2 + + + + Database %1 could not be updated, because of an error: %2 + Database %1 could not be updated, because of an error: %2 + + + + + Database file doesn't exist. + Database file doesn't exist. + + + + + + No supporting plugin loaded. + No supporting plugin loaded. + + + + Database could not be initialized. + Database could not be initialized. + + + + No suitable database driver plugin found. + No suitable database driver plugin found. + + + + DbObjectOrganizer + + + + Error while creating table in target database: %1 + Error while creating table in target database: %1 + + + + Could not parse table. + Could not parse table. + + + + Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. + Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. + + + + Error while copying data for table %1: %2 + Error while copying data for table %1: %2 + + + + + + Error while copying data to table %1: %2 + Error while copying data to table %1: %2 + + + + Error while dropping source view %1: %2 +Tables, indexes, triggers and views copied to database %3 will remain. + Error while dropping source view %1: %2 +Tables, indexes, triggers and views copied to database %3 will remain. + + + + Error while creating view in target database: %1 + Error while creating view in target database: %1 + + + + Error while creating index in target database: %1 + Error while creating index in target database: %1 + + + + Error while creating trigger in target database: %1 + Error while creating trigger in target database: %1 + + + + + + Could not parse object '%1' in order to move or copy it. + Could not parse object '%1' in order to move or copy it. + + + + DdlHistoryModel + + + Database name + ddl history header + Database name + + + + Database file + ddl history header + Database file + + + + Date of execution + ddl history header + Date of execution + + + + Changes + ddl history header + Changes + + + + ExportManager + + + Export plugin %1 doesn't support exporing query results. + Export plugin %1 doesn't support exporing query results. + + + + Export plugin %1 doesn't support exporing tables. + Export plugin %1 doesn't support exporing tables. + + + + Export plugin %1 doesn't support exporing databases. + Export plugin %1 doesn't support exporing databases. + + + + Export format '%1' is not supported. Supported formats are: %2. + Export format '%1' is not supported. Supported formats are: %2. + + + + Export to the clipboard was successful. + Export to the clipboard was successful. + + + + Export to the file '%1' was successful. + Export to the file '%1' was successful. + + + + Export was successful. + Export was successful. + + + + Could not export to file %1. File cannot be open for writting. + Could not export to file %1. File cannot be open for writting. + + + + ExportWorker + + + Error while exporting query results: %1 + Error while exporting query results: %1 + + + + Error while counting data column width to export from query results: %1 + Error while counting data column width to export from query results: %1 + + + + + Could not parse %1 in order to export it. It will be excluded from the export output. + Could not parse %1 in order to export it. It will be excluded from the export output. + + + + Error while reading data to export from table %1: %2 + Error while reading data to export from table %1: %2 + + + + Error while counting data to export from table %1: %2 + Error while counting data to export from table %1: %2 + + + + Error while counting data column width to export from table %1: %2 + Error while counting data column width to export from table %1: %2 + + + + FunctionManagerImpl + + + Invalid number of arguments to function '%1'. Expected %2, but got %3. + Invalid number of arguments to function '%1'. Expected %2, but got %3. + + + + No such function registered in SQLiteStudio: %1(%2) + No such function registered in SQLiteStudio: %1(%2) + + + + Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. + Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. + + + + Invalid regular expression pattern: %1 + Invalid regular expression pattern: %1 + + + + + Could not open file %1 for reading: %2 + Could not open file %1 for reading: %2 + + + + Could not open file %1 for writting: %2 + Could not open file %1 for writting: %2 + + + + Error while writting to file %1: %2 + Error while writting to file %1: %2 + + + + Unsupported scripting language: %1 + Unsupported scripting language: %1 + + + + GenericExportPlugin + + + Could not initialize text codec for exporting. Using default codec: %1 + Could not initialize text codec for exporting. Using default codec: %1 + + + + ImportManager + + + Imported data to the table '%1' successfully. Number of imported rows: %2 + Imported data to the table '%1' successfully. Number of imported rows: %2 + + + + ImportWorker + + + No columns provided by the import plugin. + No columns provided by the import plugin. + + + + Could not start transaction in order to import a data: %1 + Could not start transaction in order to import a data: %1 + + + + Could not commit transaction for imported data: %1 + Could not commit transaction for imported data: %1 + + + + Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. + Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. + + + + Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. + Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. + + + + Could not create table to import to: %1 + Could not create table to import to: %1 + + + + + + Error while importing data: %1 + Error while importing data: %1 + + + + + Interrupted. + import process status update + Interrupted. + + + + Could not import data row number %1. The row was ignored. Problem details: %2 + Could not import data row number %1. The row was ignored. Problem details: %2 + + + + PluginManagerImpl + + + Cannot load plugin %1, because it's in conflict with plugin %2. + Cannot load plugin %1, because it's in conflict with plugin %2. + + + + Cannot load plugin %1, because its dependency was not loaded: %2. + Cannot load plugin %1, because its dependency was not loaded: %2. + + + + Cannot load plugin %1. Error details: %2 + Cannot load plugin %1. Error details: %2 + + + + Cannot load plugin %1 (error while initializing plugin). + Cannot load plugin %1 (error while initializing plugin). + + + + min: %1 + plugin dependency version + min: %1 + + + + max: %1 + plugin dependency version + max: %1 + + + + PopulateConstant + + + Constant + populate constant plugin name + Constant + + + + PopulateConstantConfig + + + Constant value: + Constant value: + + + + PopulateDictionary + + + Dictionary + dictionary populating plugin name + Dictionary + + + + PopulateDictionaryConfig + + + Dictionary file + Dictionary file + + + + Pick dictionary file + Pick dictionary file + + + + Word separator + Word separator + + + + Whitespace + Whitespace + + + + Line break + Line break + + + + Method of using words + Method of using words + + + + Ordered + Ordered + + + + Randomly + Randomly + + + + PopulateManager + + + Table '%1' populated successfully. + Table '%1' populated successfully. + + + + PopulateRandom + + + Random number + Random number + + + + PopulateRandomConfig + + + Constant prefix + Constant prefix + + + + No prefix + No prefix + + + + Minimum value + Minimum value + + + + Maximum value + Maximum value + + + + Constant suffix + Constant suffix + + + + No suffix + No suffix + + + + PopulateRandomText + + + Random text + Random text + + + + PopulateRandomTextConfig + + + Use characters from common sets: + Use characters from common sets: + + + + Minimum length + Minimum length + + + + Letters from a to z. + Letters from a to z. + + + + Alpha + Alpha + + + + Numbers from 0 to 9. + Numbers from 0 to 9. + + + + Numeric + Numeric + + + + A whitespace, a tab and a new line character. + A whitespace, a tab and a new line character. + + + + Whitespace + Whitespace + + + + Includes all above and all others. + Includes all above and all others. + + + + Binary + Binary + + + + Use characters from my custom set: + Use characters from my custom set: + + + + Maximum length + Maximum length + + + + If you type some character multiple times, it's more likely to be used. + If you type some character multiple times, it's more likely to be used. + + + + PopulateScript + + + Script + Script + + + + PopulateScriptConfig + + + Initialization code (optional) + Initialization code (optional) + + + + Per step code + Per step code + + + + Language + Language + + + + Help + Help + + + + PopulateSequence + + + Sequence + Sequence + + + + PopulateSequenceConfig + + + Start value: + Start value: + + + + Step: + Step: + + + + PopulateWorker + + + Could not start transaction in order to perform table populating. Error details: %1 + Could not start transaction in order to perform table populating. Error details: %1 + + + + Error while populating table: %1 + Error while populating table: %1 + + + + Could not commit transaction after table populating. Error details: %1 + Could not commit transaction after table populating. Error details: %1 + + + + QObject + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Could not open database: %1 + Could not open database: %1 + + + + Result set expired or no row available. + Result set expired or no row available. + + + + + Could not load extension %1: %2 + Could not load extension %1: %2 + + + + Could not run WAL checkpoint: %1 + Could not run WAL checkpoint: %1 + + + + Could not close database: %1 + Could not close database: %1 + + + + Could not attach database %1: %2 + Could not attach database %1: %2 + + + + + Incomplete query. + Incomplete query. + + + + Parser stack overflow + Parser stack overflow + + + + Syntax error + Syntax error + + + + Could not open dictionary file %1 for reading. + Could not open dictionary file %1 for reading. + + + + Dictionary file must exist and be readable. + Dictionary file must exist and be readable. + + + + Maximum value cannot be less than minimum value. + Maximum value cannot be less than minimum value. + + + + Maximum length cannot be less than minimum length. + Maximum length cannot be less than minimum length. + + + + Custom character set cannot be empty. + Custom character set cannot be empty. + + + + Could not find plugin to support scripting language: %1 + Could not find plugin to support scripting language: %1 + + + + Error while executing populating initial code: %1 + Error while executing populating initial code: %1 + + + + Error while executing populating code: %1 + Error while executing populating code: %1 + + + + Select implementation language. + Select implementation language. + + + + Implementation code cannot be empty. + Implementation code cannot be empty. + + + + Could not resolve data source for column: %1 + Could not resolve data source for column: %1 + + + + Could not resolve table for column '%1'. + Could not resolve table for column '%1'. + + + + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Unable to create a file at following locations: %1. + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Unable to create a file at following locations: %1. + + + + General purpose + plugin category name + General purpose + + + + Database support + plugin category name + Database support + + + + Code formatter + plugin category name + Code formatter + + + + Scripting languages + plugin category name + Scripting languages + + + + Exporting + plugin category name + Exporting + + + + Importing + plugin category name + Importing + + + + Table populating + plugin category name + Table populating + + + + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. + + + + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. + + + + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. + + + + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. + + + + Cannot not update trigger %1 according to table %2 modification. + Cannot not update trigger %1 according to table %2 modification. + + + + Cannot not update view %1 according to table %2 modifications. +The view will remain as it is. + Cannot not update view %1 according to table %2 modifications. +The view will remain as it is. + + + + + + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. + + + + Could not parse DDL of the view to be created. Details: %1 + Could not parse DDL of the view to be created. Details: %1 + + + + Parsed query is not CREATE VIEW. It's: %1 + Parsed query is not CREATE VIEW. It's: %1 + + + + SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. + SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. + + + + QueryExecutor + + + Execution interrupted. + Execution interrupted. + + + + Database is not open. + Database is not open. + + + + Only one query can be executed simultaneously. + Only one query can be executed simultaneously. + + + + + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 + + + + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. + + + + ScriptingQtDbProxy + + + No database available in current context, while called JavaScript's %1 command. + No database available in current context, while called JavaScript's %1 command. + + + + Error from %1: %2 + Error from %1: %2 + + + + SqlFileExecutor + + + Could not execute SQL, because application has failed to start transaction: %1 + Could not execute SQL, because application has failed to start transaction: %1 + + + + Execution from file cancelled. Any queries executed so far have been rolled back. + Execution from file cancelled. Any queries executed so far have been rolled back. + + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Could not execute SQL, because application has failed to commit the transaction: %1 + Could not execute SQL, because application has failed to commit the transaction: %1 + + + + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. + + + + Finished executing %1 queries in %2 seconds. + Finished executing %1 queries in %2 seconds. + + + + Could not execute SQL due to error. + Could not execute SQL due to error. + + + + SqlHistoryModel + + + Database + sql history header + Database + + + + Execution date + sql history header + Execution date + + + + Time spent + sql history header + Time spent + + + + Rows affected + sql history header + Rows affected + + + + SQL + sql history header + SQL + + + + UpdateManager + + + Could not check for updates (%1). + Could not check for updates (%1). + + + diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_ar_SA.ts b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_ar_SA.ts new file mode 100644 index 0000000..d61f7f8 --- /dev/null +++ b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_ar_SA.ts @@ -0,0 +1,1101 @@ + + + + + AbstractDb + + + + Cannot execute query on closed database. + Cannot execute query on closed database. + + + + Error attaching database %1: %2 + Error attaching database %1: %2 + + + + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + + + + ChainExecutor + + + The database for executing queries was not defined. + chain executor + The database for executing queries was not defined. + + + + The database for executing queries was not open. + chain executor + The database for executing queries was not open. + + + + Could not disable foreign keys in the database. Details: %1 + chain executor + Could not disable foreign keys in the database. Details: %1 + + + + Could not start a database transaction. Details: %1 + chain executor + Could not start a database transaction. Details: %1 + + + + Interrupted + chain executor + Interrupted + + + + Could not commit a database transaction. Details: %1 + chain executor + Could not commit a database transaction. Details: %1 + + + + CompletionHelper + + + New row reference + New row reference + + + + Old row reference + Old row reference + + + + New table name + New table name + + + + New index name + New index name + + + + New view name + New view name + + + + New trigger name + New trigger name + + + + Table or column alias + Table or column alias + + + + transaction name + transaction name + + + + New column name + New column name + + + + Column data type + Column data type + + + + Constraint name + Constraint name + + + + Error message + Error message + + + + Any word + Any word + + + + Default database + Default database + + + + Temporary objects database + Temporary objects database + + + + ConfigImpl + + + Could not start database transaction for deleting SQL history, therefore it's not deleted. + Could not start database transaction for deleting SQL history, therefore it's not deleted. + + + + Could not commit database transaction for deleting SQL history, therefore it's not deleted. + Could not commit database transaction for deleting SQL history, therefore it's not deleted. + + + + DbManagerImpl + + + Could not add database %1: %2 + Could not add database %1: %2 + + + + Database %1 could not be updated, because of an error: %2 + Database %1 could not be updated, because of an error: %2 + + + + + Database file doesn't exist. + Database file doesn't exist. + + + + + + No supporting plugin loaded. + No supporting plugin loaded. + + + + Database could not be initialized. + Database could not be initialized. + + + + No suitable database driver plugin found. + No suitable database driver plugin found. + + + + DbObjectOrganizer + + + + Error while creating table in target database: %1 + Error while creating table in target database: %1 + + + + Could not parse table. + Could not parse table. + + + + Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. + Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. + + + + Error while copying data for table %1: %2 + Error while copying data for table %1: %2 + + + + + + Error while copying data to table %1: %2 + Error while copying data to table %1: %2 + + + + Error while dropping source view %1: %2 +Tables, indexes, triggers and views copied to database %3 will remain. + Error while dropping source view %1: %2 +Tables, indexes, triggers and views copied to database %3 will remain. + + + + Error while creating view in target database: %1 + Error while creating view in target database: %1 + + + + Error while creating index in target database: %1 + Error while creating index in target database: %1 + + + + Error while creating trigger in target database: %1 + Error while creating trigger in target database: %1 + + + + + + Could not parse object '%1' in order to move or copy it. + Could not parse object '%1' in order to move or copy it. + + + + DdlHistoryModel + + + Database name + ddl history header + Database name + + + + Database file + ddl history header + Database file + + + + Date of execution + ddl history header + Date of execution + + + + Changes + ddl history header + Changes + + + + ExportManager + + + Export plugin %1 doesn't support exporing query results. + Export plugin %1 doesn't support exporing query results. + + + + Export plugin %1 doesn't support exporing tables. + Export plugin %1 doesn't support exporing tables. + + + + Export plugin %1 doesn't support exporing databases. + Export plugin %1 doesn't support exporing databases. + + + + Export format '%1' is not supported. Supported formats are: %2. + Export format '%1' is not supported. Supported formats are: %2. + + + + Export to the clipboard was successful. + Export to the clipboard was successful. + + + + Export to the file '%1' was successful. + Export to the file '%1' was successful. + + + + Export was successful. + Export was successful. + + + + Could not export to file %1. File cannot be open for writting. + Could not export to file %1. File cannot be open for writting. + + + + ExportWorker + + + Error while exporting query results: %1 + Error while exporting query results: %1 + + + + Error while counting data column width to export from query results: %1 + Error while counting data column width to export from query results: %1 + + + + + Could not parse %1 in order to export it. It will be excluded from the export output. + Could not parse %1 in order to export it. It will be excluded from the export output. + + + + Error while reading data to export from table %1: %2 + Error while reading data to export from table %1: %2 + + + + Error while counting data to export from table %1: %2 + Error while counting data to export from table %1: %2 + + + + Error while counting data column width to export from table %1: %2 + Error while counting data column width to export from table %1: %2 + + + + FunctionManagerImpl + + + Invalid number of arguments to function '%1'. Expected %2, but got %3. + Invalid number of arguments to function '%1'. Expected %2, but got %3. + + + + No such function registered in SQLiteStudio: %1(%2) + No such function registered in SQLiteStudio: %1(%2) + + + + Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. + Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. + + + + Invalid regular expression pattern: %1 + Invalid regular expression pattern: %1 + + + + + Could not open file %1 for reading: %2 + Could not open file %1 for reading: %2 + + + + Could not open file %1 for writting: %2 + Could not open file %1 for writting: %2 + + + + Error while writting to file %1: %2 + Error while writting to file %1: %2 + + + + Unsupported scripting language: %1 + Unsupported scripting language: %1 + + + + GenericExportPlugin + + + Could not initialize text codec for exporting. Using default codec: %1 + Could not initialize text codec for exporting. Using default codec: %1 + + + + ImportManager + + + Imported data to the table '%1' successfully. Number of imported rows: %2 + Imported data to the table '%1' successfully. Number of imported rows: %2 + + + + ImportWorker + + + No columns provided by the import plugin. + No columns provided by the import plugin. + + + + Could not start transaction in order to import a data: %1 + Could not start transaction in order to import a data: %1 + + + + Could not commit transaction for imported data: %1 + Could not commit transaction for imported data: %1 + + + + Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. + Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. + + + + Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. + Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. + + + + Could not create table to import to: %1 + Could not create table to import to: %1 + + + + + + Error while importing data: %1 + Error while importing data: %1 + + + + + Interrupted. + import process status update + Interrupted. + + + + Could not import data row number %1. The row was ignored. Problem details: %2 + Could not import data row number %1. The row was ignored. Problem details: %2 + + + + PluginManagerImpl + + + Cannot load plugin %1, because it's in conflict with plugin %2. + Cannot load plugin %1, because it's in conflict with plugin %2. + + + + Cannot load plugin %1, because its dependency was not loaded: %2. + Cannot load plugin %1, because its dependency was not loaded: %2. + + + + Cannot load plugin %1. Error details: %2 + Cannot load plugin %1. Error details: %2 + + + + Cannot load plugin %1 (error while initializing plugin). + Cannot load plugin %1 (error while initializing plugin). + + + + min: %1 + plugin dependency version + min: %1 + + + + max: %1 + plugin dependency version + max: %1 + + + + PopulateConstant + + + Constant + populate constant plugin name + Constant + + + + PopulateConstantConfig + + + Constant value: + Constant value: + + + + PopulateDictionary + + + Dictionary + dictionary populating plugin name + Dictionary + + + + PopulateDictionaryConfig + + + Dictionary file + Dictionary file + + + + Pick dictionary file + Pick dictionary file + + + + Word separator + Word separator + + + + Whitespace + Whitespace + + + + Line break + Line break + + + + Method of using words + Method of using words + + + + Ordered + Ordered + + + + Randomly + Randomly + + + + PopulateManager + + + Table '%1' populated successfully. + Table '%1' populated successfully. + + + + PopulateRandom + + + Random number + Random number + + + + PopulateRandomConfig + + + Constant prefix + Constant prefix + + + + No prefix + No prefix + + + + Minimum value + Minimum value + + + + Maximum value + Maximum value + + + + Constant suffix + Constant suffix + + + + No suffix + No suffix + + + + PopulateRandomText + + + Random text + Random text + + + + PopulateRandomTextConfig + + + Use characters from common sets: + Use characters from common sets: + + + + Minimum length + Minimum length + + + + Letters from a to z. + Letters from a to z. + + + + Alpha + Alpha + + + + Numbers from 0 to 9. + Numbers from 0 to 9. + + + + Numeric + Numeric + + + + A whitespace, a tab and a new line character. + A whitespace, a tab and a new line character. + + + + Whitespace + Whitespace + + + + Includes all above and all others. + Includes all above and all others. + + + + Binary + Binary + + + + Use characters from my custom set: + Use characters from my custom set: + + + + Maximum length + Maximum length + + + + If you type some character multiple times, it's more likely to be used. + If you type some character multiple times, it's more likely to be used. + + + + PopulateScript + + + Script + Script + + + + PopulateScriptConfig + + + Initialization code (optional) + Initialization code (optional) + + + + Per step code + Per step code + + + + Language + Language + + + + Help + Help + + + + PopulateSequence + + + Sequence + Sequence + + + + PopulateSequenceConfig + + + Start value: + Start value: + + + + Step: + Step: + + + + PopulateWorker + + + Could not start transaction in order to perform table populating. Error details: %1 + Could not start transaction in order to perform table populating. Error details: %1 + + + + Error while populating table: %1 + Error while populating table: %1 + + + + Could not commit transaction after table populating. Error details: %1 + Could not commit transaction after table populating. Error details: %1 + + + + QObject + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Could not open database: %1 + Could not open database: %1 + + + + Result set expired or no row available. + Result set expired or no row available. + + + + + Could not load extension %1: %2 + Could not load extension %1: %2 + + + + Could not run WAL checkpoint: %1 + Could not run WAL checkpoint: %1 + + + + Could not close database: %1 + Could not close database: %1 + + + + Could not attach database %1: %2 + Could not attach database %1: %2 + + + + + Incomplete query. + Incomplete query. + + + + Parser stack overflow + Parser stack overflow + + + + Syntax error + Syntax error + + + + Could not open dictionary file %1 for reading. + Could not open dictionary file %1 for reading. + + + + Dictionary file must exist and be readable. + Dictionary file must exist and be readable. + + + + Maximum value cannot be less than minimum value. + Maximum value cannot be less than minimum value. + + + + Maximum length cannot be less than minimum length. + Maximum length cannot be less than minimum length. + + + + Custom character set cannot be empty. + Custom character set cannot be empty. + + + + Could not find plugin to support scripting language: %1 + Could not find plugin to support scripting language: %1 + + + + Error while executing populating initial code: %1 + Error while executing populating initial code: %1 + + + + Error while executing populating code: %1 + Error while executing populating code: %1 + + + + Select implementation language. + Select implementation language. + + + + Implementation code cannot be empty. + Implementation code cannot be empty. + + + + Could not resolve data source for column: %1 + Could not resolve data source for column: %1 + + + + Could not resolve table for column '%1'. + Could not resolve table for column '%1'. + + + + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Unable to create a file at following locations: %1. + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Unable to create a file at following locations: %1. + + + + General purpose + plugin category name + General purpose + + + + Database support + plugin category name + Database support + + + + Code formatter + plugin category name + Code formatter + + + + Scripting languages + plugin category name + Scripting languages + + + + Exporting + plugin category name + Exporting + + + + Importing + plugin category name + Importing + + + + Table populating + plugin category name + Table populating + + + + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. + + + + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. + + + + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. + + + + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. + + + + Cannot not update trigger %1 according to table %2 modification. + Cannot not update trigger %1 according to table %2 modification. + + + + Cannot not update view %1 according to table %2 modifications. +The view will remain as it is. + Cannot not update view %1 according to table %2 modifications. +The view will remain as it is. + + + + + + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. + + + + Could not parse DDL of the view to be created. Details: %1 + Could not parse DDL of the view to be created. Details: %1 + + + + Parsed query is not CREATE VIEW. It's: %1 + Parsed query is not CREATE VIEW. It's: %1 + + + + SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. + SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. + + + + QueryExecutor + + + Execution interrupted. + Execution interrupted. + + + + Database is not open. + Database is not open. + + + + Only one query can be executed simultaneously. + Only one query can be executed simultaneously. + + + + + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 + + + + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. + + + + ScriptingQtDbProxy + + + No database available in current context, while called JavaScript's %1 command. + No database available in current context, while called JavaScript's %1 command. + + + + Error from %1: %2 + Error from %1: %2 + + + + SqlFileExecutor + + + Could not execute SQL, because application has failed to start transaction: %1 + Could not execute SQL, because application has failed to start transaction: %1 + + + + Execution from file cancelled. Any queries executed so far have been rolled back. + Execution from file cancelled. Any queries executed so far have been rolled back. + + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Could not execute SQL, because application has failed to commit the transaction: %1 + Could not execute SQL, because application has failed to commit the transaction: %1 + + + + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. + + + + Finished executing %1 queries in %2 seconds. + Finished executing %1 queries in %2 seconds. + + + + Could not execute SQL due to error. + Could not execute SQL due to error. + + + + SqlHistoryModel + + + Database + sql history header + Database + + + + Execution date + sql history header + Execution date + + + + Time spent + sql history header + Time spent + + + + Rows affected + sql history header + Rows affected + + + + SQL + sql history header + SQL + + + + UpdateManager + + + Could not check for updates (%1). + Could not check for updates (%1). + + + diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_ca_ES.ts b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_ca_ES.ts new file mode 100644 index 0000000..71fc147 --- /dev/null +++ b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_ca_ES.ts @@ -0,0 +1,1101 @@ + + + + + AbstractDb + + + + Cannot execute query on closed database. + Cannot execute query on closed database. + + + + Error attaching database %1: %2 + Error attaching database %1: %2 + + + + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + + + + ChainExecutor + + + The database for executing queries was not defined. + chain executor + The database for executing queries was not defined. + + + + The database for executing queries was not open. + chain executor + The database for executing queries was not open. + + + + Could not disable foreign keys in the database. Details: %1 + chain executor + Could not disable foreign keys in the database. Details: %1 + + + + Could not start a database transaction. Details: %1 + chain executor + Could not start a database transaction. Details: %1 + + + + Interrupted + chain executor + Interrupted + + + + Could not commit a database transaction. Details: %1 + chain executor + Could not commit a database transaction. Details: %1 + + + + CompletionHelper + + + New row reference + New row reference + + + + Old row reference + Old row reference + + + + New table name + New table name + + + + New index name + New index name + + + + New view name + New view name + + + + New trigger name + New trigger name + + + + Table or column alias + Table or column alias + + + + transaction name + transaction name + + + + New column name + New column name + + + + Column data type + Column data type + + + + Constraint name + Constraint name + + + + Error message + Error message + + + + Any word + Any word + + + + Default database + Default database + + + + Temporary objects database + Temporary objects database + + + + ConfigImpl + + + Could not start database transaction for deleting SQL history, therefore it's not deleted. + Could not start database transaction for deleting SQL history, therefore it's not deleted. + + + + Could not commit database transaction for deleting SQL history, therefore it's not deleted. + Could not commit database transaction for deleting SQL history, therefore it's not deleted. + + + + DbManagerImpl + + + Could not add database %1: %2 + Could not add database %1: %2 + + + + Database %1 could not be updated, because of an error: %2 + Database %1 could not be updated, because of an error: %2 + + + + + Database file doesn't exist. + Database file doesn't exist. + + + + + + No supporting plugin loaded. + No supporting plugin loaded. + + + + Database could not be initialized. + Database could not be initialized. + + + + No suitable database driver plugin found. + No suitable database driver plugin found. + + + + DbObjectOrganizer + + + + Error while creating table in target database: %1 + Error while creating table in target database: %1 + + + + Could not parse table. + Could not parse table. + + + + Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. + Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. + + + + Error while copying data for table %1: %2 + Error while copying data for table %1: %2 + + + + + + Error while copying data to table %1: %2 + Error while copying data to table %1: %2 + + + + Error while dropping source view %1: %2 +Tables, indexes, triggers and views copied to database %3 will remain. + Error while dropping source view %1: %2 +Tables, indexes, triggers and views copied to database %3 will remain. + + + + Error while creating view in target database: %1 + Error while creating view in target database: %1 + + + + Error while creating index in target database: %1 + Error while creating index in target database: %1 + + + + Error while creating trigger in target database: %1 + Error while creating trigger in target database: %1 + + + + + + Could not parse object '%1' in order to move or copy it. + Could not parse object '%1' in order to move or copy it. + + + + DdlHistoryModel + + + Database name + ddl history header + Database name + + + + Database file + ddl history header + Database file + + + + Date of execution + ddl history header + Date of execution + + + + Changes + ddl history header + Changes + + + + ExportManager + + + Export plugin %1 doesn't support exporing query results. + Export plugin %1 doesn't support exporing query results. + + + + Export plugin %1 doesn't support exporing tables. + Export plugin %1 doesn't support exporing tables. + + + + Export plugin %1 doesn't support exporing databases. + Export plugin %1 doesn't support exporing databases. + + + + Export format '%1' is not supported. Supported formats are: %2. + Export format '%1' is not supported. Supported formats are: %2. + + + + Export to the clipboard was successful. + Export to the clipboard was successful. + + + + Export to the file '%1' was successful. + Export to the file '%1' was successful. + + + + Export was successful. + Export was successful. + + + + Could not export to file %1. File cannot be open for writting. + Could not export to file %1. File cannot be open for writting. + + + + ExportWorker + + + Error while exporting query results: %1 + Error while exporting query results: %1 + + + + Error while counting data column width to export from query results: %1 + Error while counting data column width to export from query results: %1 + + + + + Could not parse %1 in order to export it. It will be excluded from the export output. + Could not parse %1 in order to export it. It will be excluded from the export output. + + + + Error while reading data to export from table %1: %2 + Error while reading data to export from table %1: %2 + + + + Error while counting data to export from table %1: %2 + Error while counting data to export from table %1: %2 + + + + Error while counting data column width to export from table %1: %2 + Error while counting data column width to export from table %1: %2 + + + + FunctionManagerImpl + + + Invalid number of arguments to function '%1'. Expected %2, but got %3. + Invalid number of arguments to function '%1'. Expected %2, but got %3. + + + + No such function registered in SQLiteStudio: %1(%2) + No such function registered in SQLiteStudio: %1(%2) + + + + Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. + Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. + + + + Invalid regular expression pattern: %1 + Invalid regular expression pattern: %1 + + + + + Could not open file %1 for reading: %2 + Could not open file %1 for reading: %2 + + + + Could not open file %1 for writting: %2 + Could not open file %1 for writting: %2 + + + + Error while writting to file %1: %2 + Error while writting to file %1: %2 + + + + Unsupported scripting language: %1 + Unsupported scripting language: %1 + + + + GenericExportPlugin + + + Could not initialize text codec for exporting. Using default codec: %1 + Could not initialize text codec for exporting. Using default codec: %1 + + + + ImportManager + + + Imported data to the table '%1' successfully. Number of imported rows: %2 + Imported data to the table '%1' successfully. Number of imported rows: %2 + + + + ImportWorker + + + No columns provided by the import plugin. + No columns provided by the import plugin. + + + + Could not start transaction in order to import a data: %1 + Could not start transaction in order to import a data: %1 + + + + Could not commit transaction for imported data: %1 + Could not commit transaction for imported data: %1 + + + + Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. + Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. + + + + Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. + Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. + + + + Could not create table to import to: %1 + Could not create table to import to: %1 + + + + + + Error while importing data: %1 + Error while importing data: %1 + + + + + Interrupted. + import process status update + Interrupted. + + + + Could not import data row number %1. The row was ignored. Problem details: %2 + Could not import data row number %1. The row was ignored. Problem details: %2 + + + + PluginManagerImpl + + + Cannot load plugin %1, because it's in conflict with plugin %2. + Cannot load plugin %1, because it's in conflict with plugin %2. + + + + Cannot load plugin %1, because its dependency was not loaded: %2. + Cannot load plugin %1, because its dependency was not loaded: %2. + + + + Cannot load plugin %1. Error details: %2 + Cannot load plugin %1. Error details: %2 + + + + Cannot load plugin %1 (error while initializing plugin). + Cannot load plugin %1 (error while initializing plugin). + + + + min: %1 + plugin dependency version + min: %1 + + + + max: %1 + plugin dependency version + max: %1 + + + + PopulateConstant + + + Constant + populate constant plugin name + Constant + + + + PopulateConstantConfig + + + Constant value: + Constant value: + + + + PopulateDictionary + + + Dictionary + dictionary populating plugin name + Dictionary + + + + PopulateDictionaryConfig + + + Dictionary file + Dictionary file + + + + Pick dictionary file + Pick dictionary file + + + + Word separator + Word separator + + + + Whitespace + Whitespace + + + + Line break + Line break + + + + Method of using words + Method of using words + + + + Ordered + Ordered + + + + Randomly + Randomly + + + + PopulateManager + + + Table '%1' populated successfully. + Table '%1' populated successfully. + + + + PopulateRandom + + + Random number + Random number + + + + PopulateRandomConfig + + + Constant prefix + Constant prefix + + + + No prefix + No prefix + + + + Minimum value + Minimum value + + + + Maximum value + Maximum value + + + + Constant suffix + Constant suffix + + + + No suffix + No suffix + + + + PopulateRandomText + + + Random text + Random text + + + + PopulateRandomTextConfig + + + Use characters from common sets: + Use characters from common sets: + + + + Minimum length + Minimum length + + + + Letters from a to z. + Letters from a to z. + + + + Alpha + Alpha + + + + Numbers from 0 to 9. + Numbers from 0 to 9. + + + + Numeric + Numeric + + + + A whitespace, a tab and a new line character. + A whitespace, a tab and a new line character. + + + + Whitespace + Whitespace + + + + Includes all above and all others. + Includes all above and all others. + + + + Binary + Binary + + + + Use characters from my custom set: + Use characters from my custom set: + + + + Maximum length + Maximum length + + + + If you type some character multiple times, it's more likely to be used. + If you type some character multiple times, it's more likely to be used. + + + + PopulateScript + + + Script + Script + + + + PopulateScriptConfig + + + Initialization code (optional) + Initialization code (optional) + + + + Per step code + Per step code + + + + Language + Language + + + + Help + Help + + + + PopulateSequence + + + Sequence + Sequence + + + + PopulateSequenceConfig + + + Start value: + Start value: + + + + Step: + Step: + + + + PopulateWorker + + + Could not start transaction in order to perform table populating. Error details: %1 + Could not start transaction in order to perform table populating. Error details: %1 + + + + Error while populating table: %1 + Error while populating table: %1 + + + + Could not commit transaction after table populating. Error details: %1 + Could not commit transaction after table populating. Error details: %1 + + + + QObject + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Could not open database: %1 + Could not open database: %1 + + + + Result set expired or no row available. + Result set expired or no row available. + + + + + Could not load extension %1: %2 + Could not load extension %1: %2 + + + + Could not run WAL checkpoint: %1 + Could not run WAL checkpoint: %1 + + + + Could not close database: %1 + Could not close database: %1 + + + + Could not attach database %1: %2 + Could not attach database %1: %2 + + + + + Incomplete query. + Incomplete query. + + + + Parser stack overflow + Parser stack overflow + + + + Syntax error + Syntax error + + + + Could not open dictionary file %1 for reading. + Could not open dictionary file %1 for reading. + + + + Dictionary file must exist and be readable. + Dictionary file must exist and be readable. + + + + Maximum value cannot be less than minimum value. + Maximum value cannot be less than minimum value. + + + + Maximum length cannot be less than minimum length. + Maximum length cannot be less than minimum length. + + + + Custom character set cannot be empty. + Custom character set cannot be empty. + + + + Could not find plugin to support scripting language: %1 + Could not find plugin to support scripting language: %1 + + + + Error while executing populating initial code: %1 + Error while executing populating initial code: %1 + + + + Error while executing populating code: %1 + Error while executing populating code: %1 + + + + Select implementation language. + Select implementation language. + + + + Implementation code cannot be empty. + Implementation code cannot be empty. + + + + Could not resolve data source for column: %1 + Could not resolve data source for column: %1 + + + + Could not resolve table for column '%1'. + Could not resolve table for column '%1'. + + + + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Unable to create a file at following locations: %1. + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Unable to create a file at following locations: %1. + + + + General purpose + plugin category name + General purpose + + + + Database support + plugin category name + Database support + + + + Code formatter + plugin category name + Code formatter + + + + Scripting languages + plugin category name + Scripting languages + + + + Exporting + plugin category name + Exporting + + + + Importing + plugin category name + Importing + + + + Table populating + plugin category name + Table populating + + + + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. + + + + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. + + + + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. + + + + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. + + + + Cannot not update trigger %1 according to table %2 modification. + Cannot not update trigger %1 according to table %2 modification. + + + + Cannot not update view %1 according to table %2 modifications. +The view will remain as it is. + Cannot not update view %1 according to table %2 modifications. +The view will remain as it is. + + + + + + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. + + + + Could not parse DDL of the view to be created. Details: %1 + Could not parse DDL of the view to be created. Details: %1 + + + + Parsed query is not CREATE VIEW. It's: %1 + Parsed query is not CREATE VIEW. It's: %1 + + + + SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. + SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. + + + + QueryExecutor + + + Execution interrupted. + Execution interrupted. + + + + Database is not open. + Database is not open. + + + + Only one query can be executed simultaneously. + Only one query can be executed simultaneously. + + + + + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 + + + + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. + + + + ScriptingQtDbProxy + + + No database available in current context, while called JavaScript's %1 command. + No database available in current context, while called JavaScript's %1 command. + + + + Error from %1: %2 + Error from %1: %2 + + + + SqlFileExecutor + + + Could not execute SQL, because application has failed to start transaction: %1 + Could not execute SQL, because application has failed to start transaction: %1 + + + + Execution from file cancelled. Any queries executed so far have been rolled back. + Execution from file cancelled. Any queries executed so far have been rolled back. + + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Could not execute SQL, because application has failed to commit the transaction: %1 + Could not execute SQL, because application has failed to commit the transaction: %1 + + + + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. + + + + Finished executing %1 queries in %2 seconds. + Finished executing %1 queries in %2 seconds. + + + + Could not execute SQL due to error. + Could not execute SQL due to error. + + + + SqlHistoryModel + + + Database + sql history header + Database + + + + Execution date + sql history header + Execution date + + + + Time spent + sql history header + Time spent + + + + Rows affected + sql history header + Rows affected + + + + SQL + sql history header + SQL + + + + UpdateManager + + + Could not check for updates (%1). + Could not check for updates (%1). + + + diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_cs_CZ.ts b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_cs_CZ.ts new file mode 100644 index 0000000..8625bc8 --- /dev/null +++ b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_cs_CZ.ts @@ -0,0 +1,1101 @@ + + + + + AbstractDb + + + + Cannot execute query on closed database. + Cannot execute query on closed database. + + + + Error attaching database %1: %2 + Error attaching database %1: %2 + + + + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + + + + ChainExecutor + + + The database for executing queries was not defined. + chain executor + The database for executing queries was not defined. + + + + The database for executing queries was not open. + chain executor + The database for executing queries was not open. + + + + Could not disable foreign keys in the database. Details: %1 + chain executor + Could not disable foreign keys in the database. Details: %1 + + + + Could not start a database transaction. Details: %1 + chain executor + Could not start a database transaction. Details: %1 + + + + Interrupted + chain executor + Interrupted + + + + Could not commit a database transaction. Details: %1 + chain executor + Could not commit a database transaction. Details: %1 + + + + CompletionHelper + + + New row reference + New row reference + + + + Old row reference + Old row reference + + + + New table name + New table name + + + + New index name + New index name + + + + New view name + New view name + + + + New trigger name + New trigger name + + + + Table or column alias + Table or column alias + + + + transaction name + transaction name + + + + New column name + New column name + + + + Column data type + Column data type + + + + Constraint name + Constraint name + + + + Error message + Error message + + + + Any word + Any word + + + + Default database + Default database + + + + Temporary objects database + Temporary objects database + + + + ConfigImpl + + + Could not start database transaction for deleting SQL history, therefore it's not deleted. + Could not start database transaction for deleting SQL history, therefore it's not deleted. + + + + Could not commit database transaction for deleting SQL history, therefore it's not deleted. + Could not commit database transaction for deleting SQL history, therefore it's not deleted. + + + + DbManagerImpl + + + Could not add database %1: %2 + Could not add database %1: %2 + + + + Database %1 could not be updated, because of an error: %2 + Database %1 could not be updated, because of an error: %2 + + + + + Database file doesn't exist. + Database file doesn't exist. + + + + + + No supporting plugin loaded. + No supporting plugin loaded. + + + + Database could not be initialized. + Database could not be initialized. + + + + No suitable database driver plugin found. + No suitable database driver plugin found. + + + + DbObjectOrganizer + + + + Error while creating table in target database: %1 + Error while creating table in target database: %1 + + + + Could not parse table. + Could not parse table. + + + + Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. + Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. + + + + Error while copying data for table %1: %2 + Error while copying data for table %1: %2 + + + + + + Error while copying data to table %1: %2 + Error while copying data to table %1: %2 + + + + Error while dropping source view %1: %2 +Tables, indexes, triggers and views copied to database %3 will remain. + Error while dropping source view %1: %2 +Tables, indexes, triggers and views copied to database %3 will remain. + + + + Error while creating view in target database: %1 + Error while creating view in target database: %1 + + + + Error while creating index in target database: %1 + Error while creating index in target database: %1 + + + + Error while creating trigger in target database: %1 + Error while creating trigger in target database: %1 + + + + + + Could not parse object '%1' in order to move or copy it. + Could not parse object '%1' in order to move or copy it. + + + + DdlHistoryModel + + + Database name + ddl history header + Database name + + + + Database file + ddl history header + Database file + + + + Date of execution + ddl history header + Date of execution + + + + Changes + ddl history header + Changes + + + + ExportManager + + + Export plugin %1 doesn't support exporing query results. + Export plugin %1 doesn't support exporing query results. + + + + Export plugin %1 doesn't support exporing tables. + Export plugin %1 doesn't support exporing tables. + + + + Export plugin %1 doesn't support exporing databases. + Export plugin %1 doesn't support exporing databases. + + + + Export format '%1' is not supported. Supported formats are: %2. + Export format '%1' is not supported. Supported formats are: %2. + + + + Export to the clipboard was successful. + Export to the clipboard was successful. + + + + Export to the file '%1' was successful. + Export to the file '%1' was successful. + + + + Export was successful. + Export was successful. + + + + Could not export to file %1. File cannot be open for writting. + Could not export to file %1. File cannot be open for writting. + + + + ExportWorker + + + Error while exporting query results: %1 + Error while exporting query results: %1 + + + + Error while counting data column width to export from query results: %1 + Error while counting data column width to export from query results: %1 + + + + + Could not parse %1 in order to export it. It will be excluded from the export output. + Could not parse %1 in order to export it. It will be excluded from the export output. + + + + Error while reading data to export from table %1: %2 + Error while reading data to export from table %1: %2 + + + + Error while counting data to export from table %1: %2 + Error while counting data to export from table %1: %2 + + + + Error while counting data column width to export from table %1: %2 + Error while counting data column width to export from table %1: %2 + + + + FunctionManagerImpl + + + Invalid number of arguments to function '%1'. Expected %2, but got %3. + Invalid number of arguments to function '%1'. Expected %2, but got %3. + + + + No such function registered in SQLiteStudio: %1(%2) + No such function registered in SQLiteStudio: %1(%2) + + + + Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. + Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. + + + + Invalid regular expression pattern: %1 + Invalid regular expression pattern: %1 + + + + + Could not open file %1 for reading: %2 + Could not open file %1 for reading: %2 + + + + Could not open file %1 for writting: %2 + Could not open file %1 for writting: %2 + + + + Error while writting to file %1: %2 + Error while writting to file %1: %2 + + + + Unsupported scripting language: %1 + Unsupported scripting language: %1 + + + + GenericExportPlugin + + + Could not initialize text codec for exporting. Using default codec: %1 + Could not initialize text codec for exporting. Using default codec: %1 + + + + ImportManager + + + Imported data to the table '%1' successfully. Number of imported rows: %2 + Imported data to the table '%1' successfully. Number of imported rows: %2 + + + + ImportWorker + + + No columns provided by the import plugin. + No columns provided by the import plugin. + + + + Could not start transaction in order to import a data: %1 + Could not start transaction in order to import a data: %1 + + + + Could not commit transaction for imported data: %1 + Could not commit transaction for imported data: %1 + + + + Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. + Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. + + + + Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. + Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. + + + + Could not create table to import to: %1 + Could not create table to import to: %1 + + + + + + Error while importing data: %1 + Error while importing data: %1 + + + + + Interrupted. + import process status update + Interrupted. + + + + Could not import data row number %1. The row was ignored. Problem details: %2 + Could not import data row number %1. The row was ignored. Problem details: %2 + + + + PluginManagerImpl + + + Cannot load plugin %1, because it's in conflict with plugin %2. + Cannot load plugin %1, because it's in conflict with plugin %2. + + + + Cannot load plugin %1, because its dependency was not loaded: %2. + Cannot load plugin %1, because its dependency was not loaded: %2. + + + + Cannot load plugin %1. Error details: %2 + Cannot load plugin %1. Error details: %2 + + + + Cannot load plugin %1 (error while initializing plugin). + Cannot load plugin %1 (error while initializing plugin). + + + + min: %1 + plugin dependency version + min: %1 + + + + max: %1 + plugin dependency version + max: %1 + + + + PopulateConstant + + + Constant + populate constant plugin name + Constant + + + + PopulateConstantConfig + + + Constant value: + Constant value: + + + + PopulateDictionary + + + Dictionary + dictionary populating plugin name + Dictionary + + + + PopulateDictionaryConfig + + + Dictionary file + Dictionary file + + + + Pick dictionary file + Pick dictionary file + + + + Word separator + Word separator + + + + Whitespace + Whitespace + + + + Line break + Line break + + + + Method of using words + Method of using words + + + + Ordered + Ordered + + + + Randomly + Randomly + + + + PopulateManager + + + Table '%1' populated successfully. + Table '%1' populated successfully. + + + + PopulateRandom + + + Random number + Random number + + + + PopulateRandomConfig + + + Constant prefix + Constant prefix + + + + No prefix + No prefix + + + + Minimum value + Minimum value + + + + Maximum value + Maximum value + + + + Constant suffix + Constant suffix + + + + No suffix + No suffix + + + + PopulateRandomText + + + Random text + Random text + + + + PopulateRandomTextConfig + + + Use characters from common sets: + Use characters from common sets: + + + + Minimum length + Minimum length + + + + Letters from a to z. + Letters from a to z. + + + + Alpha + Alpha + + + + Numbers from 0 to 9. + Numbers from 0 to 9. + + + + Numeric + Numeric + + + + A whitespace, a tab and a new line character. + A whitespace, a tab and a new line character. + + + + Whitespace + Whitespace + + + + Includes all above and all others. + Includes all above and all others. + + + + Binary + Binary + + + + Use characters from my custom set: + Use characters from my custom set: + + + + Maximum length + Maximum length + + + + If you type some character multiple times, it's more likely to be used. + If you type some character multiple times, it's more likely to be used. + + + + PopulateScript + + + Script + Script + + + + PopulateScriptConfig + + + Initialization code (optional) + Initialization code (optional) + + + + Per step code + Per step code + + + + Language + Language + + + + Help + Help + + + + PopulateSequence + + + Sequence + Sequence + + + + PopulateSequenceConfig + + + Start value: + Start value: + + + + Step: + Step: + + + + PopulateWorker + + + Could not start transaction in order to perform table populating. Error details: %1 + Could not start transaction in order to perform table populating. Error details: %1 + + + + Error while populating table: %1 + Error while populating table: %1 + + + + Could not commit transaction after table populating. Error details: %1 + Could not commit transaction after table populating. Error details: %1 + + + + QObject + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Could not open database: %1 + Could not open database: %1 + + + + Result set expired or no row available. + Result set expired or no row available. + + + + + Could not load extension %1: %2 + Could not load extension %1: %2 + + + + Could not run WAL checkpoint: %1 + Could not run WAL checkpoint: %1 + + + + Could not close database: %1 + Could not close database: %1 + + + + Could not attach database %1: %2 + Could not attach database %1: %2 + + + + + Incomplete query. + Incomplete query. + + + + Parser stack overflow + Parser stack overflow + + + + Syntax error + Syntax error + + + + Could not open dictionary file %1 for reading. + Could not open dictionary file %1 for reading. + + + + Dictionary file must exist and be readable. + Dictionary file must exist and be readable. + + + + Maximum value cannot be less than minimum value. + Maximum value cannot be less than minimum value. + + + + Maximum length cannot be less than minimum length. + Maximum length cannot be less than minimum length. + + + + Custom character set cannot be empty. + Custom character set cannot be empty. + + + + Could not find plugin to support scripting language: %1 + Could not find plugin to support scripting language: %1 + + + + Error while executing populating initial code: %1 + Error while executing populating initial code: %1 + + + + Error while executing populating code: %1 + Error while executing populating code: %1 + + + + Select implementation language. + Select implementation language. + + + + Implementation code cannot be empty. + Implementation code cannot be empty. + + + + Could not resolve data source for column: %1 + Could not resolve data source for column: %1 + + + + Could not resolve table for column '%1'. + Could not resolve table for column '%1'. + + + + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Unable to create a file at following locations: %1. + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Unable to create a file at following locations: %1. + + + + General purpose + plugin category name + General purpose + + + + Database support + plugin category name + Database support + + + + Code formatter + plugin category name + Code formatter + + + + Scripting languages + plugin category name + Scripting languages + + + + Exporting + plugin category name + Exporting + + + + Importing + plugin category name + Importing + + + + Table populating + plugin category name + Table populating + + + + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. + + + + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. + + + + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. + + + + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. + + + + Cannot not update trigger %1 according to table %2 modification. + Cannot not update trigger %1 according to table %2 modification. + + + + Cannot not update view %1 according to table %2 modifications. +The view will remain as it is. + Cannot not update view %1 according to table %2 modifications. +The view will remain as it is. + + + + + + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. + + + + Could not parse DDL of the view to be created. Details: %1 + Could not parse DDL of the view to be created. Details: %1 + + + + Parsed query is not CREATE VIEW. It's: %1 + Parsed query is not CREATE VIEW. It's: %1 + + + + SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. + SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. + + + + QueryExecutor + + + Execution interrupted. + Execution interrupted. + + + + Database is not open. + Database is not open. + + + + Only one query can be executed simultaneously. + Only one query can be executed simultaneously. + + + + + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 + + + + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. + + + + ScriptingQtDbProxy + + + No database available in current context, while called JavaScript's %1 command. + No database available in current context, while called JavaScript's %1 command. + + + + Error from %1: %2 + Error from %1: %2 + + + + SqlFileExecutor + + + Could not execute SQL, because application has failed to start transaction: %1 + Could not execute SQL, because application has failed to start transaction: %1 + + + + Execution from file cancelled. Any queries executed so far have been rolled back. + Execution from file cancelled. Any queries executed so far have been rolled back. + + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Could not execute SQL, because application has failed to commit the transaction: %1 + Could not execute SQL, because application has failed to commit the transaction: %1 + + + + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. + + + + Finished executing %1 queries in %2 seconds. + Finished executing %1 queries in %2 seconds. + + + + Could not execute SQL due to error. + Could not execute SQL due to error. + + + + SqlHistoryModel + + + Database + sql history header + Database + + + + Execution date + sql history header + Execution date + + + + Time spent + sql history header + Time spent + + + + Rows affected + sql history header + Rows affected + + + + SQL + sql history header + SQL + + + + UpdateManager + + + Could not check for updates (%1). + Could not check for updates (%1). + + + diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_da_DK.ts b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_da_DK.ts new file mode 100644 index 0000000..ce31614 --- /dev/null +++ b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_da_DK.ts @@ -0,0 +1,1101 @@ + + + + + AbstractDb + + + + Cannot execute query on closed database. + Cannot execute query on closed database. + + + + Error attaching database %1: %2 + Error attaching database %1: %2 + + + + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + + + + ChainExecutor + + + The database for executing queries was not defined. + chain executor + The database for executing queries was not defined. + + + + The database for executing queries was not open. + chain executor + The database for executing queries was not open. + + + + Could not disable foreign keys in the database. Details: %1 + chain executor + Could not disable foreign keys in the database. Details: %1 + + + + Could not start a database transaction. Details: %1 + chain executor + Could not start a database transaction. Details: %1 + + + + Interrupted + chain executor + Interrupted + + + + Could not commit a database transaction. Details: %1 + chain executor + Could not commit a database transaction. Details: %1 + + + + CompletionHelper + + + New row reference + New row reference + + + + Old row reference + Old row reference + + + + New table name + New table name + + + + New index name + New index name + + + + New view name + New view name + + + + New trigger name + New trigger name + + + + Table or column alias + Table or column alias + + + + transaction name + transaction name + + + + New column name + New column name + + + + Column data type + Column data type + + + + Constraint name + Constraint name + + + + Error message + Error message + + + + Any word + Any word + + + + Default database + Default database + + + + Temporary objects database + Temporary objects database + + + + ConfigImpl + + + Could not start database transaction for deleting SQL history, therefore it's not deleted. + Could not start database transaction for deleting SQL history, therefore it's not deleted. + + + + Could not commit database transaction for deleting SQL history, therefore it's not deleted. + Could not commit database transaction for deleting SQL history, therefore it's not deleted. + + + + DbManagerImpl + + + Could not add database %1: %2 + Could not add database %1: %2 + + + + Database %1 could not be updated, because of an error: %2 + Database %1 could not be updated, because of an error: %2 + + + + + Database file doesn't exist. + Database file doesn't exist. + + + + + + No supporting plugin loaded. + No supporting plugin loaded. + + + + Database could not be initialized. + Database could not be initialized. + + + + No suitable database driver plugin found. + No suitable database driver plugin found. + + + + DbObjectOrganizer + + + + Error while creating table in target database: %1 + Error while creating table in target database: %1 + + + + Could not parse table. + Could not parse table. + + + + Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. + Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. + + + + Error while copying data for table %1: %2 + Error while copying data for table %1: %2 + + + + + + Error while copying data to table %1: %2 + Error while copying data to table %1: %2 + + + + Error while dropping source view %1: %2 +Tables, indexes, triggers and views copied to database %3 will remain. + Error while dropping source view %1: %2 +Tables, indexes, triggers and views copied to database %3 will remain. + + + + Error while creating view in target database: %1 + Error while creating view in target database: %1 + + + + Error while creating index in target database: %1 + Error while creating index in target database: %1 + + + + Error while creating trigger in target database: %1 + Error while creating trigger in target database: %1 + + + + + + Could not parse object '%1' in order to move or copy it. + Could not parse object '%1' in order to move or copy it. + + + + DdlHistoryModel + + + Database name + ddl history header + Database name + + + + Database file + ddl history header + Database file + + + + Date of execution + ddl history header + Date of execution + + + + Changes + ddl history header + Changes + + + + ExportManager + + + Export plugin %1 doesn't support exporing query results. + Export plugin %1 doesn't support exporing query results. + + + + Export plugin %1 doesn't support exporing tables. + Export plugin %1 doesn't support exporing tables. + + + + Export plugin %1 doesn't support exporing databases. + Export plugin %1 doesn't support exporing databases. + + + + Export format '%1' is not supported. Supported formats are: %2. + Export format '%1' is not supported. Supported formats are: %2. + + + + Export to the clipboard was successful. + Export to the clipboard was successful. + + + + Export to the file '%1' was successful. + Export to the file '%1' was successful. + + + + Export was successful. + Export was successful. + + + + Could not export to file %1. File cannot be open for writting. + Could not export to file %1. File cannot be open for writting. + + + + ExportWorker + + + Error while exporting query results: %1 + Error while exporting query results: %1 + + + + Error while counting data column width to export from query results: %1 + Error while counting data column width to export from query results: %1 + + + + + Could not parse %1 in order to export it. It will be excluded from the export output. + Could not parse %1 in order to export it. It will be excluded from the export output. + + + + Error while reading data to export from table %1: %2 + Error while reading data to export from table %1: %2 + + + + Error while counting data to export from table %1: %2 + Error while counting data to export from table %1: %2 + + + + Error while counting data column width to export from table %1: %2 + Error while counting data column width to export from table %1: %2 + + + + FunctionManagerImpl + + + Invalid number of arguments to function '%1'. Expected %2, but got %3. + Invalid number of arguments to function '%1'. Expected %2, but got %3. + + + + No such function registered in SQLiteStudio: %1(%2) + No such function registered in SQLiteStudio: %1(%2) + + + + Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. + Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. + + + + Invalid regular expression pattern: %1 + Invalid regular expression pattern: %1 + + + + + Could not open file %1 for reading: %2 + Could not open file %1 for reading: %2 + + + + Could not open file %1 for writting: %2 + Could not open file %1 for writting: %2 + + + + Error while writting to file %1: %2 + Error while writting to file %1: %2 + + + + Unsupported scripting language: %1 + Unsupported scripting language: %1 + + + + GenericExportPlugin + + + Could not initialize text codec for exporting. Using default codec: %1 + Could not initialize text codec for exporting. Using default codec: %1 + + + + ImportManager + + + Imported data to the table '%1' successfully. Number of imported rows: %2 + Imported data to the table '%1' successfully. Number of imported rows: %2 + + + + ImportWorker + + + No columns provided by the import plugin. + No columns provided by the import plugin. + + + + Could not start transaction in order to import a data: %1 + Could not start transaction in order to import a data: %1 + + + + Could not commit transaction for imported data: %1 + Could not commit transaction for imported data: %1 + + + + Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. + Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. + + + + Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. + Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. + + + + Could not create table to import to: %1 + Could not create table to import to: %1 + + + + + + Error while importing data: %1 + Error while importing data: %1 + + + + + Interrupted. + import process status update + Interrupted. + + + + Could not import data row number %1. The row was ignored. Problem details: %2 + Could not import data row number %1. The row was ignored. Problem details: %2 + + + + PluginManagerImpl + + + Cannot load plugin %1, because it's in conflict with plugin %2. + Cannot load plugin %1, because it's in conflict with plugin %2. + + + + Cannot load plugin %1, because its dependency was not loaded: %2. + Cannot load plugin %1, because its dependency was not loaded: %2. + + + + Cannot load plugin %1. Error details: %2 + Cannot load plugin %1. Error details: %2 + + + + Cannot load plugin %1 (error while initializing plugin). + Cannot load plugin %1 (error while initializing plugin). + + + + min: %1 + plugin dependency version + min: %1 + + + + max: %1 + plugin dependency version + max: %1 + + + + PopulateConstant + + + Constant + populate constant plugin name + Constant + + + + PopulateConstantConfig + + + Constant value: + Constant value: + + + + PopulateDictionary + + + Dictionary + dictionary populating plugin name + Dictionary + + + + PopulateDictionaryConfig + + + Dictionary file + Dictionary file + + + + Pick dictionary file + Pick dictionary file + + + + Word separator + Word separator + + + + Whitespace + Whitespace + + + + Line break + Line break + + + + Method of using words + Method of using words + + + + Ordered + Ordered + + + + Randomly + Randomly + + + + PopulateManager + + + Table '%1' populated successfully. + Table '%1' populated successfully. + + + + PopulateRandom + + + Random number + Random number + + + + PopulateRandomConfig + + + Constant prefix + Constant prefix + + + + No prefix + No prefix + + + + Minimum value + Minimum value + + + + Maximum value + Maximum value + + + + Constant suffix + Constant suffix + + + + No suffix + No suffix + + + + PopulateRandomText + + + Random text + Random text + + + + PopulateRandomTextConfig + + + Use characters from common sets: + Use characters from common sets: + + + + Minimum length + Minimum length + + + + Letters from a to z. + Letters from a to z. + + + + Alpha + Alpha + + + + Numbers from 0 to 9. + Numbers from 0 to 9. + + + + Numeric + Numeric + + + + A whitespace, a tab and a new line character. + A whitespace, a tab and a new line character. + + + + Whitespace + Whitespace + + + + Includes all above and all others. + Includes all above and all others. + + + + Binary + Binary + + + + Use characters from my custom set: + Use characters from my custom set: + + + + Maximum length + Maximum length + + + + If you type some character multiple times, it's more likely to be used. + If you type some character multiple times, it's more likely to be used. + + + + PopulateScript + + + Script + Script + + + + PopulateScriptConfig + + + Initialization code (optional) + Initialization code (optional) + + + + Per step code + Per step code + + + + Language + Language + + + + Help + Help + + + + PopulateSequence + + + Sequence + Sequence + + + + PopulateSequenceConfig + + + Start value: + Start value: + + + + Step: + Step: + + + + PopulateWorker + + + Could not start transaction in order to perform table populating. Error details: %1 + Could not start transaction in order to perform table populating. Error details: %1 + + + + Error while populating table: %1 + Error while populating table: %1 + + + + Could not commit transaction after table populating. Error details: %1 + Could not commit transaction after table populating. Error details: %1 + + + + QObject + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Could not open database: %1 + Could not open database: %1 + + + + Result set expired or no row available. + Result set expired or no row available. + + + + + Could not load extension %1: %2 + Could not load extension %1: %2 + + + + Could not run WAL checkpoint: %1 + Could not run WAL checkpoint: %1 + + + + Could not close database: %1 + Could not close database: %1 + + + + Could not attach database %1: %2 + Could not attach database %1: %2 + + + + + Incomplete query. + Incomplete query. + + + + Parser stack overflow + Parser stack overflow + + + + Syntax error + Syntax error + + + + Could not open dictionary file %1 for reading. + Could not open dictionary file %1 for reading. + + + + Dictionary file must exist and be readable. + Dictionary file must exist and be readable. + + + + Maximum value cannot be less than minimum value. + Maximum value cannot be less than minimum value. + + + + Maximum length cannot be less than minimum length. + Maximum length cannot be less than minimum length. + + + + Custom character set cannot be empty. + Custom character set cannot be empty. + + + + Could not find plugin to support scripting language: %1 + Could not find plugin to support scripting language: %1 + + + + Error while executing populating initial code: %1 + Error while executing populating initial code: %1 + + + + Error while executing populating code: %1 + Error while executing populating code: %1 + + + + Select implementation language. + Select implementation language. + + + + Implementation code cannot be empty. + Implementation code cannot be empty. + + + + Could not resolve data source for column: %1 + Could not resolve data source for column: %1 + + + + Could not resolve table for column '%1'. + Could not resolve table for column '%1'. + + + + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Unable to create a file at following locations: %1. + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Unable to create a file at following locations: %1. + + + + General purpose + plugin category name + General purpose + + + + Database support + plugin category name + Database support + + + + Code formatter + plugin category name + Code formatter + + + + Scripting languages + plugin category name + Scripting languages + + + + Exporting + plugin category name + Exporting + + + + Importing + plugin category name + Importing + + + + Table populating + plugin category name + Table populating + + + + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. + + + + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. + + + + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. + + + + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. + + + + Cannot not update trigger %1 according to table %2 modification. + Cannot not update trigger %1 according to table %2 modification. + + + + Cannot not update view %1 according to table %2 modifications. +The view will remain as it is. + Cannot not update view %1 according to table %2 modifications. +The view will remain as it is. + + + + + + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. + + + + Could not parse DDL of the view to be created. Details: %1 + Could not parse DDL of the view to be created. Details: %1 + + + + Parsed query is not CREATE VIEW. It's: %1 + Parsed query is not CREATE VIEW. It's: %1 + + + + SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. + SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. + + + + QueryExecutor + + + Execution interrupted. + Execution interrupted. + + + + Database is not open. + Database is not open. + + + + Only one query can be executed simultaneously. + Only one query can be executed simultaneously. + + + + + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 + + + + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. + + + + ScriptingQtDbProxy + + + No database available in current context, while called JavaScript's %1 command. + No database available in current context, while called JavaScript's %1 command. + + + + Error from %1: %2 + Error from %1: %2 + + + + SqlFileExecutor + + + Could not execute SQL, because application has failed to start transaction: %1 + Could not execute SQL, because application has failed to start transaction: %1 + + + + Execution from file cancelled. Any queries executed so far have been rolled back. + Execution from file cancelled. Any queries executed so far have been rolled back. + + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Could not execute SQL, because application has failed to commit the transaction: %1 + Could not execute SQL, because application has failed to commit the transaction: %1 + + + + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. + + + + Finished executing %1 queries in %2 seconds. + Finished executing %1 queries in %2 seconds. + + + + Could not execute SQL due to error. + Could not execute SQL due to error. + + + + SqlHistoryModel + + + Database + sql history header + Database + + + + Execution date + sql history header + Execution date + + + + Time spent + sql history header + Time spent + + + + Rows affected + sql history header + Rows affected + + + + SQL + sql history header + SQL + + + + UpdateManager + + + Could not check for updates (%1). + Could not check for updates (%1). + + + diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_de.qm b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_de.qm deleted file mode 100644 index 29cc169..0000000 Binary files a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_de.qm and /dev/null differ diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_de.ts b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_de.ts deleted file mode 100644 index 803f815..0000000 --- a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_de.ts +++ /dev/null @@ -1,1320 +0,0 @@ - - - - - AbstractDb - - - - Cannot execute query on closed database. - Die Abfrage kann nicht auf einer ungeöffneten Datenbank ausgeführt werden. - - - - Error attaching database %1: %2 - Fehler beim Anhängen der Datenbank %1: %2 - - - - BugReporter - - Invalid login or password - Ungültiger Nutzername oder Passwort - - - - ChainExecutor - - - The database for executing queries was not defined. - chain executor - Es wurde keine Datenbank zur Ausführung von Abfragen festgelegt. - - - - The database for executing queries was not open. - chain executor - Die Datenbank ist zur Ausführung von Abfragen nicht geöffnet worden. - - - - Could not disable foreign keys in the database. Details: %1 - chain executor - Fremdschlüssel konnten nicht deaktiviert werden für die Datenbank. Details: %1 - - - - Could not start a database transaction. Details: %1 - chain executor - Es kann keine Datenbanktransaktion gestartet werden. Details: %1 - - - - Interrupted - chain executor - Abgebrochen - - - - Could not commit a database transaction. Details: %1 - chain executor - Die Datenbanktransaktion kann nicht 'committet' werden. Details: %1 - - - - CompletionHelper - - - New row reference - Neue Zeilenreferenz - - - - Old row reference - Alte Zeilenreferenz - - - - New table name - Neuer Tabellenname - - - - New index name - Neuer Indizename - - - - New view name - Neuer Viewname - - - - New trigger name - Neuer Triggername - - - - Table or column alias - Tabellen- oder Spaltenalias - - - - transaction name - Transaktionsname - - - - New column name - Neuer Spaltenname - - - - Column data type - Spaltendatentyp - - - - Constraint name - Abhängigkeitsname - - - - Error message - Fehlermeldung - - - - Collation name - Hier weiß ich nicht wie man das sprechend übersetzen kann. - Kollationsname - - - - Any word - Beliebiges Wort - - - - Default database - Standarddatenbank - - - - Temporary objects database - Datenbank für temporäre Objekte - - - - ConfigImpl - - - Could not start database transaction for deleting SQL history, therefore it's not deleted. - - - - - Could not commit database transaction for deleting SQL history, therefore it's not deleted. - - - - - DbManagerImpl - - - Could not add database %1: %2 - Die Datenbank %1 kann nicht hinzugefügt werden: %2 - - - - Database %1 could not be updated, because of an error: %2 - Die Datenbank %1 kann nicht aktualisiert werden. Grund: %2 - - - - - Database file doesn't exist. - Die Datenbankdatei existiert nicht. - - - - - - No supporting plugin loaded. - Es wurde kein passendes plugin geladen. - - - - Database could not be initialized. - Die Datenbank kann nicht initialisiert werden. - - - - No suitable database driver plugin found. - Es wurde kein passender Datenbanktreiber (plugin) gefunden. - - - - DbObjectOrganizer - - - - Error while creating table in target database: %1 - Fehler beim Erstellen einer Tabelle in der Zieldatenbank %1 - - - - Could not parse table. - Die Tabelle konnte nicht verarbeitet werden. - - - - Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. - Datenbank %1 konnte nicht mit Datenbank %2 verbunden werden, daher werden die Daten der Tabelle %3 durch SQLiteStudio kopiert. Diese Methode kann bei großen Tabellen sehr lange dauern, bitte haben Sie Geduld. - - - - Error while copying data for table %1: %2 - Fehler beim Kopieren von Daten für Tabelle %1: %2 - - - - - - Error while copying data to table %1: %2 - Fehler beim Kopieren von Daten in die Tabelle %1: %2 - - - - Error while dropping source view %1: %2 -Tables, indexes, triggers and views copied to database %3 will remain. - Fehler beim Entfernen des Quellviews %1: %2 -Tabellen, Indizes, Trigger und Views die in Datenbank %3 kopiert wurden, werden auf der Quelldatenbank verbleiben. - - - - Error while creating view in target database: %1 - Fehler beim Erstellen eines Views in der Zieldatenbank %1 - - - - Error while creating index in target database: %1 - Fehler beim Erstellen eines Indizes in der Zieldatenbank %1 - - - - Error while creating trigger in target database: %1 - Fehler beim Erstellen eines Triggers in der Zieldatenbank %1 - - - - - - Could not parse object '%1' in order to move or copy it. - Objekt '%1' konnte analysieren, um es zu verschieben oder kopieren zu können. - - - - DbVersionConverter - - - Target file exists, but could not be overwritten. - Die Zieldatei existiert zwar, konnte aber nicht überschrieben werden. - - - - Could not find proper database plugin to create target database. - Es konnte kein geeignetes Datenbankplugin gefunden werden, um die Zieldatenbank zu erzeugen. - - - - Error while converting database: %1 - Fehler beim Konvertieren der Datenbank: %1 - - - - DdlHistoryModel - - - Database name - ddl history header - Datenbankname - - - - Database file - ddl history header - Datenbankdatei - - - - Date of execution - ddl history header - Datum der Ausführung - - - - Changes - ddl history header - Änderungen - - - - ExportManager - - - Export plugin %1 doesn't support exporing query results. - Das Exportplugin %1 unterstützt das Exportieren der Abfrageergebnisse nicht. - - - - Export plugin %1 doesn't support exporing tables. - Das Exportplugin %1 unterstützt das Exportieren von Tabellen nicht. - - - - Export plugin %1 doesn't support exporing databases. - Das Exportplugin %1 unterstützt das Exportieren von Datenbanken nicht. - - - - Export format '%1' is not supported. Supported formats are: %2. - Das Exportformat %1 wird nicht unterstützt. Unterstützte Formate sind: %2. - - - - Export to the clipboard was successful. - Der Export in die Zwischenablage war erfolgreich. - - - - Export to the file '%1' was successful. - Der Export in die Datei %1 war erfolgreich. - - - - Export was successful. - Der Export war erfolgreich. - - - - Could not export to file %1. File cannot be open for writting. - Es kann nicht in die Datei %1 exportiert werden. Die Datei lässt sich nicht für Schreibzugriffe öffnen. - - - - ExportWorker - - - Error while exporting query results: %1 - Fehler beim Exportieren der Abfrageergebnisse: %1 - - - - Error while counting data column width to export from query results: %1 - Fehler beim Ermitteln der Spaltenbreite für den Export der Abfrageergebnisse: %1 - - - - - Could not parse %1 in order to export it. It will be excluded from the export output. - %1 konnte zum Exportieren nicht korrekt verarbeitet werden. Diese Daten werden nicht exportiert. - - - - Error while reading data to export from table %1: %2 - Fehler beim Lesen der zu exportierenden Daten aus der Tabelle %1: %2 - - - - Error while counting data to export from table %1: %2 - Fehler beim Ermitteln der zu exportierenden Daten aus der Tabelle %1: %2 - - - - Error while counting data column width to export from table %1: %2 - Fehler beim Ermitteln der Spaltenbreite für den Export aus Tabelle %1: %2 - - - - FunctionManagerImpl - - - Invalid number of arguments to function '%1'. Expected %2, but got %3. - Falsche Anzahl an Parametern für Funktion '%1'. Erwartet wurden %2, angegeben wurden jedoch %3. - - - - No such function registered in SQLiteStudio: %1(%2) - Diese Funktion ist in SQLiteStudio nicht verfügbar: %1(%2) - - - - Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. - Auch hier ist sicherlich eine Überarbeitung nötig, wenn der Kontext der Meldung bekannt ist. - Die Funktion %1(%2) wurde für die Sprache %3 erstellt, jedoch ist das Plugin, welches diese Sprache unterstützt, derzeit nicht geladen. - - - - Invalid regular expression pattern: %1 - Ungültiges Muster für die regulären Ausdrücke: %1 - - - - - Could not open file %1 for reading: %2 - Datei %1 kann nicht für Lesezugriffe geöffnet werden: %2 - - - - Could not open file %1 for writting: %2 - Datei %1 kann nicht für Schreibzugriffe geöffnet werden: %2 - - - - Error while writting to file %1: %2 - Fehler beim Schreiben in Datei %1: %2 - - - - Unsupported scripting language: %1 - Nicht unterstützte Skriptsprache: %1 - - - - GenericExportPlugin - - - Could not initialize text codec for exporting. Using default codec: %1 - Der 'Export Textcodec' konnte nicht initialisiert werden. Es wird der Standardcodec genutzt: %1 - - - - ImportManager - - - Imported data to the table '%1' successfully. - Die Daten wurden erfolgreich in Tabelle %1 importiert. - - - - ImportWorker - - - No columns provided by the import plugin. - Dieses Importplugin stellt keine Spalten zur Verfügung. - - - - Could not start transaction in order to import a data: %1 - Es kann keine Transaktion zum Import der Daten gestartet werden: %1 - - - - Could not commit transaction for imported data: %1 - Die Transaktion für die importierten Daten kann nicht 'committet' werden: %1 - - - - Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. - Die Tabelle %1 hat weniger Spalten als die zu importierenden Daten liefern. Überschüssige Spalten werden daher ignoriert. - - - - Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. - Die Tabelle %1 hat mehr Spalten als die zu importierenden Daten liefern. Einige Tabellenspalten werden deshalb leer bleiben. - - - - Could not create table to import to: %1 - Die Tabelle, in die importiert werden soll, kann nicht erstellt werden: %1 - - - - - - Error while importing data: %1 - Fehler beim Import der Daten: %1 - - - - - Interrupted. - import process status update - Abgebrochen. - - - - Could not import data row number %1. The row was ignored. Problem details: %2 - Datenzeile %1 konnte nicht importiert werden. Die Zeile wurde ignoriert. Problembeschreibung: %2 - - - - PluginManagerImpl - - - Cannot load plugin %1, because it's in conflict with plugin %2. - Plugin %1 konnte nicht geladen werden, weil ein Konflikt besteht mit Plugin %2. - - - - Cannot load plugin %1, because its dependency was not loaded: %2. - Plugin %1 konnte nicht geladen werden, da dessen Abhängigkeiten nicht geladen worden sind: %2. - - - - Cannot load plugin %1. Error details: %2 - Plugin %1 konnte nicht geladen. Problembeschreibung: %2 - - - - Cannot load plugin %1 (error while initializing plugin). - Plugin %1 konnte wegen eines Fehlers bei der Initialisierung nicht geladen werden. - - - - min: %1 - plugin dependency version - Min: %1 - - - - max: %1 - plugin dependency version - Max: %1 - - - - PopulateConstant - - - Constant - populate constant plugin name - Hier bin ich mir absolut nicht sicher was genau gemeint ist. - konstanten - - - - PopulateConstantConfig - - - Constant value: - Konstanter Wert: - - - - PopulateDictionary - - - Dictionary - dictionary populating plugin name - Wörterbuch - - - - PopulateDictionaryConfig - - - Dictionary file - Wörterbuchdatei - - - - Pick dictionary file - Wähle Wörterbuchdatei aus - - - - Word separator - Wortseperator - - - - Whitespace - Leerzeichen - - - - Line break - Zeilenumbruch - - - - Method of using words - Methode der Wortverwendung - - - - Ordered - Sortiert - - - - Randomly - Zufällig - - - - PopulateManager - - - Table '%1' populated successfully. - Tabelle %1 wurde erfolgreich gefüllt. - - - - PopulateRandom - - - Random number - Zufällige Nummer - - - - PopulateRandomConfig - - - Constant prefix - Konstanter Präfix - - - - No prefix - Kein Präfix - - - - Minimum value - Kleinster Wert - - - - Maximum value - Größter Wert - - - - Constant suffix - Konstanter Suffix - - - - No suffix - Kein Suffix - - - - PopulateRandomText - - - Random text - Zufälliger Text - - - - PopulateRandomTextConfig - - - Use characters from common sets: - Benutze Zeichen von den gebräuchlichsten Sets: - - - - Minimum length - Mindestlänge - - - - Letters from a to z. - Buchstaben von a bis z. - - - - Alpha - Alphanumerisch - - - - Numbers from 0 to 9. - Ziffern von 0 bis 9. - - - - Numeric - Numerisch - - - - A whitespace, a tab and a new line character. - Ein Leerzeichen, ein Tab und ein Zeilenumbruchzeichen. - - - - Whitespace - Leerzeichen - - - - Includes all above and all others. - Alle obigen und auch andere. - - - - Binary - Binär - - - - Use characters from my custom set: - Benutze Zeichen von meinem benutzerdefinierten Set: - - - - Maximum length - Maximallänge - - - - If you type some character multiple times, it's more likely to be used. - Auch hier kann man besser übersetzen, wenn man den Kontext kennt. - Wenn Sie einige Buchstaben mehrmals eingeben, dann ist es wahrscheinlicher, dass sie genutzt werden. - - - - PopulateScript - - - Script - Skript - - - - PopulateScriptConfig - - - Initialization code (optional) - Initialisierungscode (optional) - - - - Per step code - Einzelschrittcode - - - - Language - Sprache - - - - Help - Hilfe - - - - PopulateSequence - - - Sequence - Sequenz - - - - PopulateSequenceConfig - - - Start value: - Startwert: - - - - Step: - Schritt: - - - - PopulateWorker - - - Could not start transaction in order to perform table populating. Error details: %1 - Es kann keine Transaktion zum Füllen der Tabelle gestartet werden. Problembeschreibung: %1 - - - - Error while populating table: %1 - Fehler beim Füllen der Tabelle: %1 - - - - Could not commit transaction after table populating. Error details: %1 - Die Transaktion zum Füllen der Tabelle kann nicht 'committet' werden. Problembeschreibung: %1 - - - - QObject - - - - Could not open database: %1 - Die Datenbank %1 kann nicht geöffnet werden. - - - - - Result set expired or no row available. - Das Abfrageergebniss ist ungültig oder es ist keine Datenzeile verfügbar. - - - - - Could not load extension %1: %2 - - - - - Could not close database: %1 - Die Datenbank %1 kann nicht geschlossen werden. - - - - - - - - - - SQLite %1 does not support '%2' statement. - SQLite %1 unterstützt keine '%2' Abfrage. - - - - SQLite %1 does not support '%2' statement, but the regular table can be created instead if you proceed. - SQLite %1 unterstützt keine '%2' Abfrage, aber die normale Tabelle kann stattdessen erzeugt werden, wenn Sie fortfahren. - - - - Could not parse statement: %1 -Error details: %2 - Die Abfrage kann nicht verarbeitet werden: %1 -Problembeschreibung: %2 - - - - - - - SQLite %1 does not support the '%2' clause. Cannot convert '%3' statement with that clause. - SQLite %1 unterstützt keine '%2' Klausel. Die %3 Abfrage kann mit dieser Klausel nicht konvertiert werden. - - - - SQLite %1 does not support the '%2' clause in the '%3' statement. - SQLite %1 unterstützt keine '%2' Klausel in der %3 Abfrage. - - - - SQLite %1 does not support current date or time clauses in expressions. - SQLite %1 unterstützt keine current date' oder 'time' Klauseln in Ausdrücken. - - - - SQLite %1 does not support row value clauses in expressions. - - - - - - - SQLite %1 does not support '%2' clause in expressions. - SQLite %1 unterstützt keine '%2' Klausel Ausdrücken. - - - - Could not attach database %1: %2 - Generell muss in den Übersetzungen das 'attached' genauer analysiert werden. - Die Datenbank %1 kann nicht angefügt werden: %2 - - - - - Incomplete query. - Unvollständige Abfrage. - - - - - Parser stack overflow - Stacküberlauf bei Verarbeitung - - - - - Syntax error - Syntaxfehler - - - - Could not open dictionary file %1 for reading. - Die Wörterbuchdatei %1 kann für den Lesezugriff nicht geöffnet werden. - - - - Dictionary file must exist and be readable. - Die Wörterbuchdatei muss vorhanden sein und Leserechte besitzen. - - - - Maximum value cannot be less than minimum value. - Der Maximalwert kann nicht kleiner sein als der Minimalwert. - - - - Maximum length cannot be less than minimum length. - Die Maximallänge kann nicht kleiner sein als die Minimallänge. - - - - Custom character set cannot be empty. - Ein benutzerdefiniertes Zeichenset darf nicht leer sein. - - - - Could not find plugin to support scripting language: %1 - Das Plugin zur Unterstützung der folgenden Skriptsprache kann nicht gefunden werden: %1 - - - - Error while executing populating initial code: %1 - Fehler beim Ausführen des Initialisierungsprozesses: %1 - - - - Error while executing populating code: %1 - Fehler beim Ausführen des Auffüllprozesses: %1 - - - - Select implementation language. - Wählen Sie die Implementationssprache. - - - - Implementation code cannot be empty. - Der Implementationscode darf nicht leer sein. - - - - Could not resolve data source for column: %1 - Die Datenquelle für Spalte %1 kann nicht aufgelöst werden. - - - - Could not resolve table for column '%1'. - - - - - Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Tried to initialize the file at following localizations: %1. - Ich hoffe, dass ich "to initialize" hier richtig mit "erstellt" übersetzt habe. - Die Konfigurationsdatei kann nicht erstellt werden. Alle Änderungen an der Konfiguration sowie die Abfragehistorie sind nach einem Programmneustart verloren. Es wurde versucht die Konfigurationsdatei in folgendem Verzeichnis zu erstellen: %1 - - - - General purpose - plugin category name - Allgemeine Verwendung - - - - Database support - plugin category name - Datenbankunterstützung - - - - Code formatter - plugin category name - Codeformatierer - - - - Scripting languages - plugin category name - Skriptsprachen - - - - Exporting - plugin category name - Exportieren - - - - Importing - plugin category name - Importieren - - - - Table populating - plugin category name - Tabellen füllen - - - - Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. - Tabelle %1 referenziert Tabelle %2, jedoch wird die 'foreign key'-Definition für die neue Tabellendefinition nicht aktualisiert, da es Probleme bei der DDL-Analyse von Tabelle %3 gibt. - - - - All columns indexed by the index %1 are gone. The index will not be recreated after table modification. - Alle Spalten, die von Index %1 indiziert wurden, sind verloren. Der Index wird nach der Tabellenmodifikation nicht neu erstellt. - - - - There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. - Es ist ein Problem bei der korrekten Verarbeitung des Triggers %1 aufgetreten. Er wird möglicherweise nicht vollständig aktualisert werden und sollte geprüft werden. - - - - Cannot not update trigger %1 according to table %2 modification. - Die Aktualisierung des Triggers %1, resultierend aus der Änderung der Tabelle %2, kann nicht ausgeführt werden. - - - - - - There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. - Es ist ein Problem beim Aktualisieren einer %1 Abfrage innerhalb eines %2 Triggers aufgetreten. Eine der %1 Unterabfragen, welche möglicherweise die Tabelle %3 referenziert, kann nicht geändert werden. Eine manuelle Anpassung des Triggers wird nötig sein. - - - - All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. - Alle Spalten, die durch den Trigger %1 abgedeckt wurden, sind verloren. Der Trigger wird nach der Änderung nicht wiederhergestellt. - - - - Cannot not update view %1 according to table %2 modifications. -The view will remain as it is. - Die Aktualisierung des Views %1, resultierend aus der Änderung der Tabelle %2, kann nicht ausgeführt werden. Der View wird daher nicht geändert. - - - - Could not parse DDL of the view to be created. Details: %1 - DDL des zu erzeugenden Views kann nicht verarbeitet werden. Details: %1 - - - - Parsed query is not CREATE VIEW. It's: %1 - Die zu verarbeitende Abfrage ist nicht CREATE VIEW, es ist: %1 - - - - SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. - SQLiteStudio konnte die vom View zurückgegebenen Spalten nicht auflösen, daher kann nicht ermittelt werden, welcher Trigger beim Wiederherstelllungsprozess einen Fehler verusracht haben könnte. - - - - Could not open file '%1' for reading: %2 - - - - - QueryExecutor - - - Execution interrupted. - Ausführung abgebrochen. - - - - Database is not open. - Die Datenbank ist nicht geöffnet. - - - - Only one query can be executed simultaneously. - Es kann nur eine Abfrage gleichzeitig ausgeführt werden. - - - - - An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 - Hier muss ggf. noch das 'data paging' korrekt übersetzt werden. - Beim Ausführen der count(*) Abfrage ist ein Fehler aufgetreten, daher wird das data paging abgeschaltet. Problemdetails der Datenbank: %1 - - - - SQLiteStudio was unable to extract metadata from the query. Results won't be editable. - SQLiteStudio konnte keine Metadaten aus der Abfrage extrahieren. Die Ergebnismenge kann daher nicht editiert werden. - - - - ScriptingQtDbProxy - - - No database available in current context, while called QtScript's %1 command. - Beim Aufruf des QtSkript Kommandos %1 ist im zugehörigen Kontext keine Datenbank verfügbar. - - - - Error from %1: %2 - Fehler von %1: %2 - - - - SqlHistoryModel - - - Database - sql history header - Datenbank - - - - Execution date - sql history header - Ausführungsdatum - - - - Time spent - sql history header - Dauer - - - - Rows affected - sql history header - Anzahl Zeilen - - - - SQL - sql history header - SQL - - - - UpdateManager - - An error occurred while checking for updates: %1. - Beim Prüfen auf Updates trat folgender Fehler auf: %1. - - - Could not check available updates, because server responded with invalid message format. It is safe to ignore this warning. - Es konnte nicht auf neue Updates geprüft werden, da der Updateserver in einem ungültigen Nachrichtenformat antwortet. Diese Meldung kann gefahrlos ignoriert werden. - - - An error occurred while reading updates metadata: %1. - Beim Lesen der Update-Metadaten ist ein Fehler aufgetreten: %1. - - - Could not download updates, because server responded with invalid message format. You can try again later or download and install updates manually. See <a href="%1">User Manual</a> for details. - Das Update konnte nicht heruntergeladen werden, da der Updateserver in einem ungültigen Nachrichtenformat antwortet. Sie können es später noch einmal versuchen oder das Update und die Installation manuell ausführen. Weitere Infoamtionen hierzu finden Sie in der <a href="%1">Programmdokumentation</a>. - - - Could not create temporary directory for downloading the update. Updating aborted. - Das temporäre Verzeichnis zum Herunterladen des Updates konnte nicht erstellt werden. Der Updatevorgang wird abgebrochen. - - - There was no updates to download. Updating aborted. - Keine neuen Updates vorhanden. Der Updatevorgang wird beendet. - - - Downloading: %1 - Herunterladen von: %1 - - - Could not determinate file name from update URL: %1. Updating aborted. - Der Dateiname der Update-URL %1 konnte nicht ermittelt werden. Der Updatevorgang wird abgebrochen. - - - Failed to open file '%1' for writting: %2. Updating aborted. - Beim Schreiben in die Datei '%1' trat folgender Fehler auf: %2. Der Updatevorgang wird abgebrochen. - - - Installing updates. - Update wird installiert. - - - Could not copy current application directory into %1 directory. - Das aktuelle Programmverzeichnis konnte nicht in das Verzeichnis %1 kopiert werden. - - - Could not create directory %1. - Das Verzeichnis %1 konnte nicht erstellt werden. - - - Could not rename directory %1 to %2. -Details: %3 - Das Verzeichnis %1 konnte nicht in %2 umbenannt werden. -Details: %3 - - - Cannot not rename directory %1 to %2. -Details: %3 - Das Verzeichnis %1 kann nicht in %2 umbenannt werden. -Details: %3 - - - Could not move directory %1 to %2 and also failed to restore original directory, so the original SQLiteStudio directory is now located at: %3 - Das Verzeichnis %1 konnte nicht nach %2 verschoben werden. Ebenso schlug das Wiederherstellen des originalen Verzeichnissses fehlt, daher befindet sich das SQLiteStudio Verzeichnis nun hier: %3 - - - Could not rename directory %1 to %2. Rolled back to the original SQLiteStudio version. - Das Das Verzeichnis %1 konnte nicht nach %2 umbenannt werden.SQLiteStudio wird auf den Ursprungszustand zurückgesetzt. - - - Could not unpack component %1 into %2 directory. - Die Komponente %1 konnte nicht in das Verzeichnis %2 extrahiert werden. - - - Could not find permissions elevator application to run update as a root. Looked for: %1 - Die Rechteerweiterung zum Ausführen des Updates als 'root' konnte nicht gefunden werden. Es wurde gesucht nach: %1 - - - Could not execute final updating steps as root: %1 - Die abschließenden Aktualisierungsschritte konnten nicht als 'root' ausgeführt werden: %1 - - - Could not execute final updating steps as admin: %1 - Die abschließenden Aktualisierungsschritte konnten nicht als 'admin' ausgeführt werden: %1 - - - Cannot create temporary directory for updater. - Das temporäre Verzeichnis für den Updater konnte nicht erstellt werden. - - - Cannot create updater script file. - Die Skriptdatei für den Updater konnte nicht erstellt werden. - - - Updating canceled. - Updatevorgang abgebrochen. - - - Could not execute final updating steps as administrator. - Die abschließenden Aktualisierungsschritte konnten nicht als 'administrator' ausgeführt werden. - - - Could not execute final updating steps as administrator. Updater startup timed out. - Die abschließenden Aktualisierungsschritte konnten nicht als 'administrator' ausgeführt werden. Die Updatevorbereitungen liefen auf Zeitüberschreitung. - - - Could not execute final updating steps as administrator. Updater operation timed out. - Die abschließenden Aktualisierungsschritte konnten nicht als 'administrator' ausgeführt werden. Der Updatevorgang lief auf Zeitüberschreitung. - - - Could not clean up temporary directory %1. You can delete it manually at any time. - Das temporäre Verzeichnis %1 konnte nicht aufgeräumt werden. Sie können es später manuell löschen. - - - Could not run new version for continuing update. - Die neue Version zum Fortführen des Updates kann nicht gestartet werden. - - - Package not in tar.gz format, cannot install: %1 - Das Paket liegt nicht im tar.gz Format vor. %1 kann nicht installiert werden. - - - Package %1 cannot be installed, because cannot move it to directory: %2 - Das Paket %1 kann nicht installiert werden, weil es nicht in das Verzeichnis %2 verschoben werden kann. - - - Package %1 cannot be installed, because cannot unpack it: %2 - Das Paket %1 kann nicht installiert werden, weil es nicht extrahiert werden kann: %2 - - - Package not in zip format, cannot install: %1 - Das Paket liegt nicht im zip Format vor. %1 kann nicht installiert werden. - - - Package %1 cannot be installed, because cannot unzip it to directory %2: %3 - Das Paket %1 kann nicht installiert werden, weil es nicht in das Verzeichnis %2: %3 extrahiert werden kann. - - - Package %1 cannot be installed, because cannot unzip it to directory: %2 - Das Paket %1 kann nicht installiert werden, weil es nicht in das Verzeichnis %2 entzippt werden kann. - - - Could not rename directory %1 to %2. - Das Verzeichnis %1 konnte nicht in %2 umbenannt werden. - - - Could not delete directory %1. - Das Verzeichnis %1 konnte nicht gelöscht werden. - - - Error executing update command: %1 -Error message: %2 - Fehler beim Ausführen des Updatekommandos %1. -Fehlerbeschreibung: %2 - - - An error occurred while downloading updates: %1. Updating aborted. - Beim Herunterladen des Updates %1 ist ein fehelr aufgetreten. Der Updatevorgang wurde abgebrochen. - - - - Updates installer executable is missing. - - - - - - Unable to check for updates (%1) - - - - - details are unknown - - - - - Unable to run updater application (%1). Please report this. - - - - diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_de_DE.ts b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_de_DE.ts new file mode 100644 index 0000000..8bb0a2c --- /dev/null +++ b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_de_DE.ts @@ -0,0 +1,1100 @@ + + + + + AbstractDb + + + + Cannot execute query on closed database. + Die Abfrage kann nicht auf einer ungeöffneten Datenbank ausgeführt werden. + + + + Error attaching database %1: %2 + Fehler beim Anhängen der Datenbank %1: %2 + + + + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + + + + ChainExecutor + + + The database for executing queries was not defined. + chain executor + Es wurde keine Datenbank zur Ausführung von Abfragen festgelegt. + + + + The database for executing queries was not open. + chain executor + Die Datenbank ist zur Ausführung von Abfragen nicht geöffnet worden. + + + + Could not disable foreign keys in the database. Details: %1 + chain executor + Fremdschlüssel konnten nicht deaktiviert werden für die Datenbank. Details: %1 + + + + Could not start a database transaction. Details: %1 + chain executor + Es kann keine Datenbanktransaktion gestartet werden. Details: %1 + + + + Interrupted + chain executor + Abgebrochen + + + + Could not commit a database transaction. Details: %1 + chain executor + Die Datenbanktransaktion kann nicht 'committet' werden. Details: %1 + + + + CompletionHelper + + + New row reference + Neue Zeilenreferenz + + + + Old row reference + Alte Zeilenreferenz + + + + New table name + Neuer Tabellenname + + + + New index name + Neuer Indizename + + + + New view name + Neuer Viewname + + + + New trigger name + Neuer Triggername + + + + Table or column alias + Tabellen- oder Spaltenalias + + + + transaction name + Transaktionsname + + + + New column name + Neuer Spaltenname + + + + Column data type + Spaltendatentyp + + + + Constraint name + Abhängigkeitsname + + + + Error message + Fehlermeldung + + + + Any word + Beliebiges Wort + + + + Default database + Standarddatenbank + + + + Temporary objects database + Datenbank für temporäre Objekte + + + + ConfigImpl + + + Could not start database transaction for deleting SQL history, therefore it's not deleted. + Could not start database transaction for deleting SQL history, therefore it's not deleted. + + + + Could not commit database transaction for deleting SQL history, therefore it's not deleted. + Could not commit database transaction for deleting SQL history, therefore it's not deleted. + + + + DbManagerImpl + + + Could not add database %1: %2 + Die Datenbank %1 kann nicht hinzugefügt werden: %2 + + + + Database %1 could not be updated, because of an error: %2 + Die Datenbank %1 kann nicht aktualisiert werden. Grund: %2 + + + + + Database file doesn't exist. + Die Datenbankdatei existiert nicht. + + + + + + No supporting plugin loaded. + Es wurde kein passendes plugin geladen. + + + + Database could not be initialized. + Die Datenbank kann nicht initialisiert werden. + + + + No suitable database driver plugin found. + Es wurde kein passender Datenbanktreiber (plugin) gefunden. + + + + DbObjectOrganizer + + + + Error while creating table in target database: %1 + Fehler beim Erstellen einer Tabelle in der Zieldatenbank %1 + + + + Could not parse table. + Die Tabelle konnte nicht verarbeitet werden. + + + + Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. + Datenbank %1 konnte nicht mit Datenbank %2 verbunden werden, daher werden die Daten der Tabelle %3 durch SQLiteStudio kopiert. Diese Methode kann bei großen Tabellen sehr lange dauern, bitte haben Sie Geduld. + + + + Error while copying data for table %1: %2 + Fehler beim Kopieren von Daten für Tabelle %1: %2 + + + + + + Error while copying data to table %1: %2 + Fehler beim Kopieren von Daten in die Tabelle %1: %2 + + + + Error while dropping source view %1: %2 +Tables, indexes, triggers and views copied to database %3 will remain. + Fehler beim Entfernen des Quellviews %1: %2 +Tabellen, Indizes, Trigger und Views die in Datenbank %3 kopiert wurden, werden auf der Quelldatenbank verbleiben. + + + + Error while creating view in target database: %1 + Fehler beim Erstellen eines Views in der Zieldatenbank %1 + + + + Error while creating index in target database: %1 + Fehler beim Erstellen eines Indizes in der Zieldatenbank %1 + + + + Error while creating trigger in target database: %1 + Fehler beim Erstellen eines Triggers in der Zieldatenbank %1 + + + + + + Could not parse object '%1' in order to move or copy it. + Objekt '%1' konnte analysieren, um es zu verschieben oder kopieren zu können. + + + + DdlHistoryModel + + + Database name + ddl history header + Datenbankname + + + + Database file + ddl history header + Datenbankdatei + + + + Date of execution + ddl history header + Datum der Ausführung + + + + Changes + ddl history header + Änderungen + + + + ExportManager + + + Export plugin %1 doesn't support exporing query results. + Das Exportplugin %1 unterstützt das Exportieren der Abfrageergebnisse nicht. + + + + Export plugin %1 doesn't support exporing tables. + Das Exportplugin %1 unterstützt das Exportieren von Tabellen nicht. + + + + Export plugin %1 doesn't support exporing databases. + Das Exportplugin %1 unterstützt das Exportieren von Datenbanken nicht. + + + + Export format '%1' is not supported. Supported formats are: %2. + Das Exportformat %1 wird nicht unterstützt. Unterstützte Formate sind: %2. + + + + Export to the clipboard was successful. + Der Export in die Zwischenablage war erfolgreich. + + + + Export to the file '%1' was successful. + Der Export in die Datei %1 war erfolgreich. + + + + Export was successful. + Der Export war erfolgreich. + + + + Could not export to file %1. File cannot be open for writting. + Es kann nicht in die Datei %1 exportiert werden. Die Datei lässt sich nicht für Schreibzugriffe öffnen. + + + + ExportWorker + + + Error while exporting query results: %1 + Fehler beim Exportieren der Abfrageergebnisse: %1 + + + + Error while counting data column width to export from query results: %1 + Fehler beim Ermitteln der Spaltenbreite für den Export der Abfrageergebnisse: %1 + + + + + Could not parse %1 in order to export it. It will be excluded from the export output. + %1 konnte zum Exportieren nicht korrekt verarbeitet werden. Diese Daten werden nicht exportiert. + + + + Error while reading data to export from table %1: %2 + Fehler beim Lesen der zu exportierenden Daten aus der Tabelle %1: %2 + + + + Error while counting data to export from table %1: %2 + Fehler beim Ermitteln der zu exportierenden Daten aus der Tabelle %1: %2 + + + + Error while counting data column width to export from table %1: %2 + Fehler beim Ermitteln der Spaltenbreite für den Export aus Tabelle %1: %2 + + + + FunctionManagerImpl + + + Invalid number of arguments to function '%1'. Expected %2, but got %3. + Falsche Anzahl an Parametern für Funktion '%1'. Erwartet wurden %2, angegeben wurden jedoch %3. + + + + No such function registered in SQLiteStudio: %1(%2) + Diese Funktion ist in SQLiteStudio nicht verfügbar: %1(%2) + + + + Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. + Die Funktion %1(%2) wurde für die Sprache %3 erstellt, jedoch ist das Plugin, welches diese Sprache unterstützt, derzeit nicht geladen. + + + + Invalid regular expression pattern: %1 + Ungültiges Muster für die regulären Ausdrücke: %1 + + + + + Could not open file %1 for reading: %2 + Datei %1 kann nicht für Lesezugriffe geöffnet werden: %2 + + + + Could not open file %1 for writting: %2 + Datei %1 kann nicht für Schreibzugriffe geöffnet werden: %2 + + + + Error while writting to file %1: %2 + Fehler beim Schreiben in Datei %1: %2 + + + + Unsupported scripting language: %1 + Nicht unterstützte Skriptsprache: %1 + + + + GenericExportPlugin + + + Could not initialize text codec for exporting. Using default codec: %1 + Der 'Export Textcodec' konnte nicht initialisiert werden. Es wird der Standardcodec genutzt: %1 + + + + ImportManager + + + Imported data to the table '%1' successfully. Number of imported rows: %2 + Imported data to the table '%1' successfully. Number of imported rows: %2 + + + + ImportWorker + + + No columns provided by the import plugin. + Dieses Importplugin stellt keine Spalten zur Verfügung. + + + + Could not start transaction in order to import a data: %1 + Es kann keine Transaktion zum Import der Daten gestartet werden: %1 + + + + Could not commit transaction for imported data: %1 + Die Transaktion für die importierten Daten kann nicht 'committet' werden: %1 + + + + Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. + Die Tabelle %1 hat weniger Spalten als die zu importierenden Daten liefern. Überschüssige Spalten werden daher ignoriert. + + + + Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. + Die Tabelle %1 hat mehr Spalten als die zu importierenden Daten liefern. Einige Tabellenspalten werden deshalb leer bleiben. + + + + Could not create table to import to: %1 + Die Tabelle, in die importiert werden soll, kann nicht erstellt werden: %1 + + + + + + Error while importing data: %1 + Fehler beim Import der Daten: %1 + + + + + Interrupted. + import process status update + Abgebrochen. + + + + Could not import data row number %1. The row was ignored. Problem details: %2 + Datenzeile %1 konnte nicht importiert werden. Die Zeile wurde ignoriert. Problembeschreibung: %2 + + + + PluginManagerImpl + + + Cannot load plugin %1, because it's in conflict with plugin %2. + Plugin %1 konnte nicht geladen werden, weil ein Konflikt besteht mit Plugin %2. + + + + Cannot load plugin %1, because its dependency was not loaded: %2. + Plugin %1 konnte nicht geladen werden, da dessen Abhängigkeiten nicht geladen worden sind: %2. + + + + Cannot load plugin %1. Error details: %2 + Plugin %1 konnte nicht geladen. Problembeschreibung: %2 + + + + Cannot load plugin %1 (error while initializing plugin). + Plugin %1 konnte wegen eines Fehlers bei der Initialisierung nicht geladen werden. + + + + min: %1 + plugin dependency version + Min: %1 + + + + max: %1 + plugin dependency version + Max: %1 + + + + PopulateConstant + + + Constant + populate constant plugin name + konstanten + + + + PopulateConstantConfig + + + Constant value: + Konstanter Wert: + + + + PopulateDictionary + + + Dictionary + dictionary populating plugin name + Wörterbuch + + + + PopulateDictionaryConfig + + + Dictionary file + Wörterbuchdatei + + + + Pick dictionary file + Wähle Wörterbuchdatei aus + + + + Word separator + Wortseperator + + + + Whitespace + Leerzeichen + + + + Line break + Zeilenumbruch + + + + Method of using words + Methode der Wortverwendung + + + + Ordered + Sortiert + + + + Randomly + Zufällig + + + + PopulateManager + + + Table '%1' populated successfully. + Tabelle %1 wurde erfolgreich gefüllt. + + + + PopulateRandom + + + Random number + Zufällige Nummer + + + + PopulateRandomConfig + + + Constant prefix + Konstanter Präfix + + + + No prefix + Kein Präfix + + + + Minimum value + Kleinster Wert + + + + Maximum value + Größter Wert + + + + Constant suffix + Konstanter Suffix + + + + No suffix + Kein Suffix + + + + PopulateRandomText + + + Random text + Zufälliger Text + + + + PopulateRandomTextConfig + + + Use characters from common sets: + Benutze Zeichen von den gebräuchlichsten Sets: + + + + Minimum length + Mindestlänge + + + + Letters from a to z. + Buchstaben von a bis z. + + + + Alpha + Alphanumerisch + + + + Numbers from 0 to 9. + Ziffern von 0 bis 9. + + + + Numeric + Numerisch + + + + A whitespace, a tab and a new line character. + Ein Leerzeichen, ein Tab und ein Zeilenumbruchzeichen. + + + + Whitespace + Leerzeichen + + + + Includes all above and all others. + Alle obigen und auch andere. + + + + Binary + Binär + + + + Use characters from my custom set: + Benutze Zeichen von meinem benutzerdefinierten Set: + + + + Maximum length + Maximallänge + + + + If you type some character multiple times, it's more likely to be used. + Wenn Sie einige Buchstaben mehrmals eingeben, dann ist es wahrscheinlicher, dass sie genutzt werden. + + + + PopulateScript + + + Script + Skript + + + + PopulateScriptConfig + + + Initialization code (optional) + Initialisierungscode (optional) + + + + Per step code + Einzelschrittcode + + + + Language + Sprache + + + + Help + Hilfe + + + + PopulateSequence + + + Sequence + Sequenz + + + + PopulateSequenceConfig + + + Start value: + Startwert: + + + + Step: + Schritt: + + + + PopulateWorker + + + Could not start transaction in order to perform table populating. Error details: %1 + Es kann keine Transaktion zum Füllen der Tabelle gestartet werden. Problembeschreibung: %1 + + + + Error while populating table: %1 + Fehler beim Füllen der Tabelle: %1 + + + + Could not commit transaction after table populating. Error details: %1 + Die Transaktion zum Füllen der Tabelle kann nicht 'committet' werden. Problembeschreibung: %1 + + + + QObject + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Could not open database: %1 + Die Datenbank %1 kann nicht geöffnet werden. + + + + Result set expired or no row available. + Das Abfrageergebniss ist ungültig oder es ist keine Datenzeile verfügbar. + + + + + Could not load extension %1: %2 + Konnte die Erweiterung %1 nicht laden: %2 + + + + Could not run WAL checkpoint: %1 + Could not run WAL checkpoint: %1 + + + + Could not close database: %1 + Die Datenbank %1 kann nicht geschlossen werden. + + + + Could not attach database %1: %2 + Die Datenbank %1 kann nicht angefügt werden: %2 + + + + + Incomplete query. + Unvollständige Abfrage. + + + + Parser stack overflow + Stacküberlauf bei Verarbeitung + + + + Syntax error + Syntaxfehler + + + + Could not open dictionary file %1 for reading. + Die Wörterbuchdatei %1 kann für den Lesezugriff nicht geöffnet werden. + + + + Dictionary file must exist and be readable. + Die Wörterbuchdatei muss vorhanden sein und Leserechte besitzen. + + + + Maximum value cannot be less than minimum value. + Der Maximalwert kann nicht kleiner sein als der Minimalwert. + + + + Maximum length cannot be less than minimum length. + Die Maximallänge kann nicht kleiner sein als die Minimallänge. + + + + Custom character set cannot be empty. + Ein benutzerdefiniertes Zeichenset darf nicht leer sein. + + + + Could not find plugin to support scripting language: %1 + Das Plugin zur Unterstützung der folgenden Skriptsprache kann nicht gefunden werden: %1 + + + + Error while executing populating initial code: %1 + Fehler beim Ausführen des Initialisierungsprozesses: %1 + + + + Error while executing populating code: %1 + Fehler beim Ausführen des Auffüllprozesses: %1 + + + + Select implementation language. + Wählen Sie die Implementationssprache. + + + + Implementation code cannot be empty. + Der Implementationscode darf nicht leer sein. + + + + Could not resolve data source for column: %1 + Die Datenquelle für Spalte %1 kann nicht aufgelöst werden. + + + + Could not resolve table for column '%1'. + Could not resolve table for column '%1'. + + + + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Unable to create a file at following locations: %1. + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Unable to create a file at following locations: %1. + + + + General purpose + plugin category name + Allgemeine Verwendung + + + + Database support + plugin category name + Datenbankunterstützung + + + + Code formatter + plugin category name + Codeformatierer + + + + Scripting languages + plugin category name + Skriptsprachen + + + + Exporting + plugin category name + Exportieren + + + + Importing + plugin category name + Importieren + + + + Table populating + plugin category name + Tabellen füllen + + + + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. + Tabelle %1 referenziert Tabelle %2, jedoch wird die 'foreign key'-Definition für die neue Tabellendefinition nicht aktualisiert, da es Probleme bei der DDL-Analyse von Tabelle %3 gibt. + + + + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. + Alle Spalten, die von Index %1 indiziert wurden, sind verloren. Der Index wird nach der Tabellenmodifikation nicht neu erstellt. + + + + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. + Es ist ein Problem bei der korrekten Verarbeitung des Triggers %1 aufgetreten. Er wird möglicherweise nicht vollständig aktualisert werden und sollte geprüft werden. + + + + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. + Alle Spalten, die durch den Trigger %1 abgedeckt wurden, sind verloren. Der Trigger wird nach der Änderung nicht wiederhergestellt. + + + + Cannot not update trigger %1 according to table %2 modification. + Die Aktualisierung des Triggers %1, resultierend aus der Änderung der Tabelle %2, kann nicht ausgeführt werden. + + + + Cannot not update view %1 according to table %2 modifications. +The view will remain as it is. + Die Aktualisierung des Views %1, resultierend aus der Änderung der Tabelle %2, kann nicht ausgeführt werden. Der View wird daher nicht geändert. + + + + + + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. + Es ist ein Problem beim Aktualisieren einer %1 Abfrage innerhalb eines %2 Triggers aufgetreten. Eine der %1 Unterabfragen, welche möglicherweise die Tabelle %3 referenziert, kann nicht geändert werden. Eine manuelle Anpassung des Triggers wird nötig sein. + + + + Could not parse DDL of the view to be created. Details: %1 + DDL des zu erzeugenden Views kann nicht verarbeitet werden. Details: %1 + + + + Parsed query is not CREATE VIEW. It's: %1 + Die zu verarbeitende Abfrage ist nicht CREATE VIEW, es ist: %1 + + + + SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. + SQLiteStudio konnte die vom View zurückgegebenen Spalten nicht auflösen, daher kann nicht ermittelt werden, welcher Trigger beim Wiederherstelllungsprozess einen Fehler verusracht haben könnte. + + + + QueryExecutor + + + Execution interrupted. + Ausführung abgebrochen. + + + + Database is not open. + Die Datenbank ist nicht geöffnet. + + + + Only one query can be executed simultaneously. + Es kann nur eine Abfrage gleichzeitig ausgeführt werden. + + + + + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 + Beim Ausführen der count(*) Abfrage ist ein Fehler aufgetreten, daher wird das data paging abgeschaltet. Problemdetails der Datenbank: %1 + + + + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. + SQLiteStudio konnte keine Metadaten aus der Abfrage extrahieren. Die Ergebnismenge kann daher nicht editiert werden. + + + + ScriptingQtDbProxy + + + No database available in current context, while called JavaScript's %1 command. + No database available in current context, while called JavaScript's %1 command. + + + + Error from %1: %2 + Fehler von %1: %2 + + + + SqlFileExecutor + + + Could not execute SQL, because application has failed to start transaction: %1 + Could not execute SQL, because application has failed to start transaction: %1 + + + + Execution from file cancelled. Any queries executed so far have been rolled back. + Execution from file cancelled. Any queries executed so far have been rolled back. + + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Could not execute SQL, because application has failed to commit the transaction: %1 + Could not execute SQL, because application has failed to commit the transaction: %1 + + + + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. + + + + Finished executing %1 queries in %2 seconds. + Finished executing %1 queries in %2 seconds. + + + + Could not execute SQL due to error. + Could not execute SQL due to error. + + + + SqlHistoryModel + + + Database + sql history header + Datenbank + + + + Execution date + sql history header + Ausführungsdatum + + + + Time spent + sql history header + Dauer + + + + Rows affected + sql history header + Anzahl Zeilen + + + + SQL + sql history header + SQL + + + + UpdateManager + + + Could not check for updates (%1). + Konnte nicht auf Updates prüfen (%1). + + + diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_el_GR.ts b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_el_GR.ts new file mode 100644 index 0000000..5795b18 --- /dev/null +++ b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_el_GR.ts @@ -0,0 +1,1101 @@ + + + + + AbstractDb + + + + Cannot execute query on closed database. + Cannot execute query on closed database. + + + + Error attaching database %1: %2 + Error attaching database %1: %2 + + + + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + + + + ChainExecutor + + + The database for executing queries was not defined. + chain executor + The database for executing queries was not defined. + + + + The database for executing queries was not open. + chain executor + The database for executing queries was not open. + + + + Could not disable foreign keys in the database. Details: %1 + chain executor + Could not disable foreign keys in the database. Details: %1 + + + + Could not start a database transaction. Details: %1 + chain executor + Could not start a database transaction. Details: %1 + + + + Interrupted + chain executor + Interrupted + + + + Could not commit a database transaction. Details: %1 + chain executor + Could not commit a database transaction. Details: %1 + + + + CompletionHelper + + + New row reference + New row reference + + + + Old row reference + Old row reference + + + + New table name + New table name + + + + New index name + New index name + + + + New view name + New view name + + + + New trigger name + New trigger name + + + + Table or column alias + Table or column alias + + + + transaction name + transaction name + + + + New column name + New column name + + + + Column data type + Column data type + + + + Constraint name + Constraint name + + + + Error message + Error message + + + + Any word + Any word + + + + Default database + Default database + + + + Temporary objects database + Temporary objects database + + + + ConfigImpl + + + Could not start database transaction for deleting SQL history, therefore it's not deleted. + Could not start database transaction for deleting SQL history, therefore it's not deleted. + + + + Could not commit database transaction for deleting SQL history, therefore it's not deleted. + Could not commit database transaction for deleting SQL history, therefore it's not deleted. + + + + DbManagerImpl + + + Could not add database %1: %2 + Could not add database %1: %2 + + + + Database %1 could not be updated, because of an error: %2 + Database %1 could not be updated, because of an error: %2 + + + + + Database file doesn't exist. + Database file doesn't exist. + + + + + + No supporting plugin loaded. + No supporting plugin loaded. + + + + Database could not be initialized. + Database could not be initialized. + + + + No suitable database driver plugin found. + No suitable database driver plugin found. + + + + DbObjectOrganizer + + + + Error while creating table in target database: %1 + Error while creating table in target database: %1 + + + + Could not parse table. + Could not parse table. + + + + Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. + Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. + + + + Error while copying data for table %1: %2 + Error while copying data for table %1: %2 + + + + + + Error while copying data to table %1: %2 + Error while copying data to table %1: %2 + + + + Error while dropping source view %1: %2 +Tables, indexes, triggers and views copied to database %3 will remain. + Error while dropping source view %1: %2 +Tables, indexes, triggers and views copied to database %3 will remain. + + + + Error while creating view in target database: %1 + Error while creating view in target database: %1 + + + + Error while creating index in target database: %1 + Error while creating index in target database: %1 + + + + Error while creating trigger in target database: %1 + Error while creating trigger in target database: %1 + + + + + + Could not parse object '%1' in order to move or copy it. + Could not parse object '%1' in order to move or copy it. + + + + DdlHistoryModel + + + Database name + ddl history header + Database name + + + + Database file + ddl history header + Database file + + + + Date of execution + ddl history header + Date of execution + + + + Changes + ddl history header + Changes + + + + ExportManager + + + Export plugin %1 doesn't support exporing query results. + Export plugin %1 doesn't support exporing query results. + + + + Export plugin %1 doesn't support exporing tables. + Export plugin %1 doesn't support exporing tables. + + + + Export plugin %1 doesn't support exporing databases. + Export plugin %1 doesn't support exporing databases. + + + + Export format '%1' is not supported. Supported formats are: %2. + Export format '%1' is not supported. Supported formats are: %2. + + + + Export to the clipboard was successful. + Export to the clipboard was successful. + + + + Export to the file '%1' was successful. + Export to the file '%1' was successful. + + + + Export was successful. + Export was successful. + + + + Could not export to file %1. File cannot be open for writting. + Could not export to file %1. File cannot be open for writting. + + + + ExportWorker + + + Error while exporting query results: %1 + Error while exporting query results: %1 + + + + Error while counting data column width to export from query results: %1 + Error while counting data column width to export from query results: %1 + + + + + Could not parse %1 in order to export it. It will be excluded from the export output. + Could not parse %1 in order to export it. It will be excluded from the export output. + + + + Error while reading data to export from table %1: %2 + Error while reading data to export from table %1: %2 + + + + Error while counting data to export from table %1: %2 + Error while counting data to export from table %1: %2 + + + + Error while counting data column width to export from table %1: %2 + Error while counting data column width to export from table %1: %2 + + + + FunctionManagerImpl + + + Invalid number of arguments to function '%1'. Expected %2, but got %3. + Invalid number of arguments to function '%1'. Expected %2, but got %3. + + + + No such function registered in SQLiteStudio: %1(%2) + No such function registered in SQLiteStudio: %1(%2) + + + + Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. + Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. + + + + Invalid regular expression pattern: %1 + Invalid regular expression pattern: %1 + + + + + Could not open file %1 for reading: %2 + Could not open file %1 for reading: %2 + + + + Could not open file %1 for writting: %2 + Could not open file %1 for writting: %2 + + + + Error while writting to file %1: %2 + Error while writting to file %1: %2 + + + + Unsupported scripting language: %1 + Unsupported scripting language: %1 + + + + GenericExportPlugin + + + Could not initialize text codec for exporting. Using default codec: %1 + Could not initialize text codec for exporting. Using default codec: %1 + + + + ImportManager + + + Imported data to the table '%1' successfully. Number of imported rows: %2 + Imported data to the table '%1' successfully. Number of imported rows: %2 + + + + ImportWorker + + + No columns provided by the import plugin. + No columns provided by the import plugin. + + + + Could not start transaction in order to import a data: %1 + Could not start transaction in order to import a data: %1 + + + + Could not commit transaction for imported data: %1 + Could not commit transaction for imported data: %1 + + + + Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. + Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. + + + + Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. + Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. + + + + Could not create table to import to: %1 + Could not create table to import to: %1 + + + + + + Error while importing data: %1 + Error while importing data: %1 + + + + + Interrupted. + import process status update + Interrupted. + + + + Could not import data row number %1. The row was ignored. Problem details: %2 + Could not import data row number %1. The row was ignored. Problem details: %2 + + + + PluginManagerImpl + + + Cannot load plugin %1, because it's in conflict with plugin %2. + Cannot load plugin %1, because it's in conflict with plugin %2. + + + + Cannot load plugin %1, because its dependency was not loaded: %2. + Cannot load plugin %1, because its dependency was not loaded: %2. + + + + Cannot load plugin %1. Error details: %2 + Cannot load plugin %1. Error details: %2 + + + + Cannot load plugin %1 (error while initializing plugin). + Cannot load plugin %1 (error while initializing plugin). + + + + min: %1 + plugin dependency version + min: %1 + + + + max: %1 + plugin dependency version + max: %1 + + + + PopulateConstant + + + Constant + populate constant plugin name + Constant + + + + PopulateConstantConfig + + + Constant value: + Constant value: + + + + PopulateDictionary + + + Dictionary + dictionary populating plugin name + Dictionary + + + + PopulateDictionaryConfig + + + Dictionary file + Dictionary file + + + + Pick dictionary file + Pick dictionary file + + + + Word separator + Word separator + + + + Whitespace + Whitespace + + + + Line break + Line break + + + + Method of using words + Method of using words + + + + Ordered + Ordered + + + + Randomly + Randomly + + + + PopulateManager + + + Table '%1' populated successfully. + Table '%1' populated successfully. + + + + PopulateRandom + + + Random number + Random number + + + + PopulateRandomConfig + + + Constant prefix + Constant prefix + + + + No prefix + No prefix + + + + Minimum value + Minimum value + + + + Maximum value + Maximum value + + + + Constant suffix + Constant suffix + + + + No suffix + No suffix + + + + PopulateRandomText + + + Random text + Random text + + + + PopulateRandomTextConfig + + + Use characters from common sets: + Use characters from common sets: + + + + Minimum length + Minimum length + + + + Letters from a to z. + Letters from a to z. + + + + Alpha + Alpha + + + + Numbers from 0 to 9. + Numbers from 0 to 9. + + + + Numeric + Numeric + + + + A whitespace, a tab and a new line character. + A whitespace, a tab and a new line character. + + + + Whitespace + Whitespace + + + + Includes all above and all others. + Includes all above and all others. + + + + Binary + Binary + + + + Use characters from my custom set: + Use characters from my custom set: + + + + Maximum length + Maximum length + + + + If you type some character multiple times, it's more likely to be used. + If you type some character multiple times, it's more likely to be used. + + + + PopulateScript + + + Script + Script + + + + PopulateScriptConfig + + + Initialization code (optional) + Initialization code (optional) + + + + Per step code + Per step code + + + + Language + Language + + + + Help + Help + + + + PopulateSequence + + + Sequence + Sequence + + + + PopulateSequenceConfig + + + Start value: + Start value: + + + + Step: + Step: + + + + PopulateWorker + + + Could not start transaction in order to perform table populating. Error details: %1 + Could not start transaction in order to perform table populating. Error details: %1 + + + + Error while populating table: %1 + Error while populating table: %1 + + + + Could not commit transaction after table populating. Error details: %1 + Could not commit transaction after table populating. Error details: %1 + + + + QObject + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Could not open database: %1 + Could not open database: %1 + + + + Result set expired or no row available. + Result set expired or no row available. + + + + + Could not load extension %1: %2 + Could not load extension %1: %2 + + + + Could not run WAL checkpoint: %1 + Could not run WAL checkpoint: %1 + + + + Could not close database: %1 + Could not close database: %1 + + + + Could not attach database %1: %2 + Could not attach database %1: %2 + + + + + Incomplete query. + Incomplete query. + + + + Parser stack overflow + Parser stack overflow + + + + Syntax error + Syntax error + + + + Could not open dictionary file %1 for reading. + Could not open dictionary file %1 for reading. + + + + Dictionary file must exist and be readable. + Dictionary file must exist and be readable. + + + + Maximum value cannot be less than minimum value. + Maximum value cannot be less than minimum value. + + + + Maximum length cannot be less than minimum length. + Maximum length cannot be less than minimum length. + + + + Custom character set cannot be empty. + Custom character set cannot be empty. + + + + Could not find plugin to support scripting language: %1 + Could not find plugin to support scripting language: %1 + + + + Error while executing populating initial code: %1 + Error while executing populating initial code: %1 + + + + Error while executing populating code: %1 + Error while executing populating code: %1 + + + + Select implementation language. + Select implementation language. + + + + Implementation code cannot be empty. + Implementation code cannot be empty. + + + + Could not resolve data source for column: %1 + Could not resolve data source for column: %1 + + + + Could not resolve table for column '%1'. + Could not resolve table for column '%1'. + + + + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Unable to create a file at following locations: %1. + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Unable to create a file at following locations: %1. + + + + General purpose + plugin category name + General purpose + + + + Database support + plugin category name + Database support + + + + Code formatter + plugin category name + Code formatter + + + + Scripting languages + plugin category name + Scripting languages + + + + Exporting + plugin category name + Exporting + + + + Importing + plugin category name + Importing + + + + Table populating + plugin category name + Table populating + + + + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. + + + + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. + + + + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. + + + + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. + + + + Cannot not update trigger %1 according to table %2 modification. + Cannot not update trigger %1 according to table %2 modification. + + + + Cannot not update view %1 according to table %2 modifications. +The view will remain as it is. + Cannot not update view %1 according to table %2 modifications. +The view will remain as it is. + + + + + + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. + + + + Could not parse DDL of the view to be created. Details: %1 + Could not parse DDL of the view to be created. Details: %1 + + + + Parsed query is not CREATE VIEW. It's: %1 + Parsed query is not CREATE VIEW. It's: %1 + + + + SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. + SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. + + + + QueryExecutor + + + Execution interrupted. + Execution interrupted. + + + + Database is not open. + Database is not open. + + + + Only one query can be executed simultaneously. + Only one query can be executed simultaneously. + + + + + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 + + + + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. + + + + ScriptingQtDbProxy + + + No database available in current context, while called JavaScript's %1 command. + No database available in current context, while called JavaScript's %1 command. + + + + Error from %1: %2 + Error from %1: %2 + + + + SqlFileExecutor + + + Could not execute SQL, because application has failed to start transaction: %1 + Could not execute SQL, because application has failed to start transaction: %1 + + + + Execution from file cancelled. Any queries executed so far have been rolled back. + Execution from file cancelled. Any queries executed so far have been rolled back. + + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Could not execute SQL, because application has failed to commit the transaction: %1 + Could not execute SQL, because application has failed to commit the transaction: %1 + + + + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. + + + + Finished executing %1 queries in %2 seconds. + Finished executing %1 queries in %2 seconds. + + + + Could not execute SQL due to error. + Could not execute SQL due to error. + + + + SqlHistoryModel + + + Database + sql history header + Database + + + + Execution date + sql history header + Execution date + + + + Time spent + sql history header + Time spent + + + + Rows affected + sql history header + Rows affected + + + + SQL + sql history header + SQL + + + + UpdateManager + + + Could not check for updates (%1). + Could not check for updates (%1). + + + diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_en_US.ts b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_en_US.ts new file mode 100644 index 0000000..fc66680 --- /dev/null +++ b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_en_US.ts @@ -0,0 +1,1101 @@ + + + + + AbstractDb + + + + Cannot execute query on closed database. + Cannot execute query on closed database. + + + + Error attaching database %1: %2 + Error attaching database %1: %2 + + + + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + + + + ChainExecutor + + + The database for executing queries was not defined. + chain executor + The database for executing queries was not defined. + + + + The database for executing queries was not open. + chain executor + The database for executing queries was not open. + + + + Could not disable foreign keys in the database. Details: %1 + chain executor + Could not disable foreign keys in the database. Details: %1 + + + + Could not start a database transaction. Details: %1 + chain executor + Could not start a database transaction. Details: %1 + + + + Interrupted + chain executor + Interrupted + + + + Could not commit a database transaction. Details: %1 + chain executor + Could not commit a database transaction. Details: %1 + + + + CompletionHelper + + + New row reference + New row reference + + + + Old row reference + Old row reference + + + + New table name + New table name + + + + New index name + New index name + + + + New view name + New view name + + + + New trigger name + New trigger name + + + + Table or column alias + Table or column alias + + + + transaction name + transaction name + + + + New column name + New column name + + + + Column data type + Column data type + + + + Constraint name + Constraint name + + + + Error message + Error message + + + + Any word + Any word + + + + Default database + Default database + + + + Temporary objects database + Temporary objects database + + + + ConfigImpl + + + Could not start database transaction for deleting SQL history, therefore it's not deleted. + Could not start database transaction for deleting SQL history, therefore it's not deleted. + + + + Could not commit database transaction for deleting SQL history, therefore it's not deleted. + Could not commit database transaction for deleting SQL history, therefore it's not deleted. + + + + DbManagerImpl + + + Could not add database %1: %2 + Could not add database %1: %2 + + + + Database %1 could not be updated, because of an error: %2 + Database %1 could not be updated, because of an error: %2 + + + + + Database file doesn't exist. + Database file doesn't exist. + + + + + + No supporting plugin loaded. + No supporting plugin loaded. + + + + Database could not be initialized. + Database could not be initialized. + + + + No suitable database driver plugin found. + No suitable database driver plugin found. + + + + DbObjectOrganizer + + + + Error while creating table in target database: %1 + Error while creating table in target database: %1 + + + + Could not parse table. + Could not parse table. + + + + Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. + Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. + + + + Error while copying data for table %1: %2 + Error while copying data for table %1: %2 + + + + + + Error while copying data to table %1: %2 + Error while copying data to table %1: %2 + + + + Error while dropping source view %1: %2 +Tables, indexes, triggers and views copied to database %3 will remain. + Error while dropping source view %1: %2 +Tables, indexes, triggers and views copied to database %3 will remain. + + + + Error while creating view in target database: %1 + Error while creating view in target database: %1 + + + + Error while creating index in target database: %1 + Error while creating index in target database: %1 + + + + Error while creating trigger in target database: %1 + Error while creating trigger in target database: %1 + + + + + + Could not parse object '%1' in order to move or copy it. + Could not parse object '%1' in order to move or copy it. + + + + DdlHistoryModel + + + Database name + ddl history header + Database name + + + + Database file + ddl history header + Database file + + + + Date of execution + ddl history header + Date of execution + + + + Changes + ddl history header + Changes + + + + ExportManager + + + Export plugin %1 doesn't support exporing query results. + Export plugin %1 doesn't support exporing query results. + + + + Export plugin %1 doesn't support exporing tables. + Export plugin %1 doesn't support exporing tables. + + + + Export plugin %1 doesn't support exporing databases. + Export plugin %1 doesn't support exporing databases. + + + + Export format '%1' is not supported. Supported formats are: %2. + Export format '%1' is not supported. Supported formats are: %2. + + + + Export to the clipboard was successful. + Export to the clipboard was successful. + + + + Export to the file '%1' was successful. + Export to the file '%1' was successful. + + + + Export was successful. + Export was successful. + + + + Could not export to file %1. File cannot be open for writting. + Could not export to file %1. File cannot be open for writting. + + + + ExportWorker + + + Error while exporting query results: %1 + Error while exporting query results: %1 + + + + Error while counting data column width to export from query results: %1 + Error while counting data column width to export from query results: %1 + + + + + Could not parse %1 in order to export it. It will be excluded from the export output. + Could not parse %1 in order to export it. It will be excluded from the export output. + + + + Error while reading data to export from table %1: %2 + Error while reading data to export from table %1: %2 + + + + Error while counting data to export from table %1: %2 + Error while counting data to export from table %1: %2 + + + + Error while counting data column width to export from table %1: %2 + Error while counting data column width to export from table %1: %2 + + + + FunctionManagerImpl + + + Invalid number of arguments to function '%1'. Expected %2, but got %3. + Invalid number of arguments to function '%1'. Expected %2, but got %3. + + + + No such function registered in SQLiteStudio: %1(%2) + No such function registered in SQLiteStudio: %1(%2) + + + + Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. + Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. + + + + Invalid regular expression pattern: %1 + Invalid regular expression pattern: %1 + + + + + Could not open file %1 for reading: %2 + Could not open file %1 for reading: %2 + + + + Could not open file %1 for writting: %2 + Could not open file %1 for writting: %2 + + + + Error while writting to file %1: %2 + Error while writting to file %1: %2 + + + + Unsupported scripting language: %1 + Unsupported scripting language: %1 + + + + GenericExportPlugin + + + Could not initialize text codec for exporting. Using default codec: %1 + Could not initialize text codec for exporting. Using default codec: %1 + + + + ImportManager + + + Imported data to the table '%1' successfully. Number of imported rows: %2 + Imported data to the table '%1' successfully. Number of imported rows: %2 + + + + ImportWorker + + + No columns provided by the import plugin. + No columns provided by the import plugin. + + + + Could not start transaction in order to import a data: %1 + Could not start transaction in order to import a data: %1 + + + + Could not commit transaction for imported data: %1 + Could not commit transaction for imported data: %1 + + + + Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. + Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. + + + + Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. + Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. + + + + Could not create table to import to: %1 + Could not create table to import to: %1 + + + + + + Error while importing data: %1 + Error while importing data: %1 + + + + + Interrupted. + import process status update + Interrupted. + + + + Could not import data row number %1. The row was ignored. Problem details: %2 + Could not import data row number %1. The row was ignored. Problem details: %2 + + + + PluginManagerImpl + + + Cannot load plugin %1, because it's in conflict with plugin %2. + Cannot load plugin %1, because it's in conflict with plugin %2. + + + + Cannot load plugin %1, because its dependency was not loaded: %2. + Cannot load plugin %1, because its dependency was not loaded: %2. + + + + Cannot load plugin %1. Error details: %2 + Cannot load plugin %1. Error details: %2 + + + + Cannot load plugin %1 (error while initializing plugin). + Cannot load plugin %1 (error while initializing plugin). + + + + min: %1 + plugin dependency version + min: %1 + + + + max: %1 + plugin dependency version + max: %1 + + + + PopulateConstant + + + Constant + populate constant plugin name + Constant + + + + PopulateConstantConfig + + + Constant value: + Constant value: + + + + PopulateDictionary + + + Dictionary + dictionary populating plugin name + Dictionary + + + + PopulateDictionaryConfig + + + Dictionary file + Dictionary file + + + + Pick dictionary file + Pick dictionary file + + + + Word separator + Word separator + + + + Whitespace + Whitespace + + + + Line break + Line break + + + + Method of using words + Method of using words + + + + Ordered + Ordered + + + + Randomly + Randomly + + + + PopulateManager + + + Table '%1' populated successfully. + Table '%1' populated successfully. + + + + PopulateRandom + + + Random number + Random number + + + + PopulateRandomConfig + + + Constant prefix + Constant prefix + + + + No prefix + No prefix + + + + Minimum value + Minimum value + + + + Maximum value + Maximum value + + + + Constant suffix + Constant suffix + + + + No suffix + No suffix + + + + PopulateRandomText + + + Random text + Random text + + + + PopulateRandomTextConfig + + + Use characters from common sets: + Use characters from common sets: + + + + Minimum length + Minimum length + + + + Letters from a to z. + Letters from a to z. + + + + Alpha + Alpha + + + + Numbers from 0 to 9. + Numbers from 0 to 9. + + + + Numeric + Numeric + + + + A whitespace, a tab and a new line character. + A whitespace, a tab and a new line character. + + + + Whitespace + Whitespace + + + + Includes all above and all others. + Includes all above and all others. + + + + Binary + Binary + + + + Use characters from my custom set: + Use characters from my custom set: + + + + Maximum length + Maximum length + + + + If you type some character multiple times, it's more likely to be used. + If you type some character multiple times, it's more likely to be used. + + + + PopulateScript + + + Script + Script + + + + PopulateScriptConfig + + + Initialization code (optional) + Initialization code (optional) + + + + Per step code + Per step code + + + + Language + Language + + + + Help + Help + + + + PopulateSequence + + + Sequence + Sequence + + + + PopulateSequenceConfig + + + Start value: + Start value: + + + + Step: + Step: + + + + PopulateWorker + + + Could not start transaction in order to perform table populating. Error details: %1 + Could not start transaction in order to perform table populating. Error details: %1 + + + + Error while populating table: %1 + Error while populating table: %1 + + + + Could not commit transaction after table populating. Error details: %1 + Could not commit transaction after table populating. Error details: %1 + + + + QObject + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Could not open database: %1 + Could not open database: %1 + + + + Result set expired or no row available. + Result set expired or no row available. + + + + + Could not load extension %1: %2 + Could not load extension %1: %2 + + + + Could not run WAL checkpoint: %1 + Could not run WAL checkpoint: %1 + + + + Could not close database: %1 + Could not close database: %1 + + + + Could not attach database %1: %2 + Could not attach database %1: %2 + + + + + Incomplete query. + Incomplete query. + + + + Parser stack overflow + Parser stack overflow + + + + Syntax error + Syntax error + + + + Could not open dictionary file %1 for reading. + Could not open dictionary file %1 for reading. + + + + Dictionary file must exist and be readable. + Dictionary file must exist and be readable. + + + + Maximum value cannot be less than minimum value. + Maximum value cannot be less than minimum value. + + + + Maximum length cannot be less than minimum length. + Maximum length cannot be less than minimum length. + + + + Custom character set cannot be empty. + Custom character set cannot be empty. + + + + Could not find plugin to support scripting language: %1 + Could not find plugin to support scripting language: %1 + + + + Error while executing populating initial code: %1 + Error while executing populating initial code: %1 + + + + Error while executing populating code: %1 + Error while executing populating code: %1 + + + + Select implementation language. + Select implementation language. + + + + Implementation code cannot be empty. + Implementation code cannot be empty. + + + + Could not resolve data source for column: %1 + Could not resolve data source for column: %1 + + + + Could not resolve table for column '%1'. + Could not resolve table for column '%1'. + + + + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Unable to create a file at following locations: %1. + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Unable to create a file at following locations: %1. + + + + General purpose + plugin category name + General purpose + + + + Database support + plugin category name + Database support + + + + Code formatter + plugin category name + Code formatter + + + + Scripting languages + plugin category name + Scripting languages + + + + Exporting + plugin category name + Exporting + + + + Importing + plugin category name + Importing + + + + Table populating + plugin category name + Table populating + + + + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. + + + + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. + + + + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. + + + + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. + + + + Cannot not update trigger %1 according to table %2 modification. + Cannot not update trigger %1 according to table %2 modification. + + + + Cannot not update view %1 according to table %2 modifications. +The view will remain as it is. + Cannot not update view %1 according to table %2 modifications. +The view will remain as it is. + + + + + + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. + + + + Could not parse DDL of the view to be created. Details: %1 + Could not parse DDL of the view to be created. Details: %1 + + + + Parsed query is not CREATE VIEW. It's: %1 + Parsed query is not CREATE VIEW. It's: %1 + + + + SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. + SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. + + + + QueryExecutor + + + Execution interrupted. + Execution interrupted. + + + + Database is not open. + Database is not open. + + + + Only one query can be executed simultaneously. + Only one query can be executed simultaneously. + + + + + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 + + + + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. + + + + ScriptingQtDbProxy + + + No database available in current context, while called JavaScript's %1 command. + No database available in current context, while called JavaScript's %1 command. + + + + Error from %1: %2 + Error from %1: %2 + + + + SqlFileExecutor + + + Could not execute SQL, because application has failed to start transaction: %1 + Could not execute SQL, because application has failed to start transaction: %1 + + + + Execution from file cancelled. Any queries executed so far have been rolled back. + Execution from file cancelled. Any queries executed so far have been rolled back. + + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Could not execute SQL, because application has failed to commit the transaction: %1 + Could not execute SQL, because application has failed to commit the transaction: %1 + + + + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. + + + + Finished executing %1 queries in %2 seconds. + Finished executing %1 queries in %2 seconds. + + + + Could not execute SQL due to error. + Could not execute SQL due to error. + + + + SqlHistoryModel + + + Database + sql history header + Database + + + + Execution date + sql history header + Execution date + + + + Time spent + sql history header + Time spent + + + + Rows affected + sql history header + Rows affected + + + + SQL + sql history header + SQL + + + + UpdateManager + + + Could not check for updates (%1). + Could not check for updates (%1). + + + diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_es.qm b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_es.qm deleted file mode 100644 index 9dad8df..0000000 Binary files a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_es.qm and /dev/null differ diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_es.ts b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_es.ts deleted file mode 100644 index f0c170b..0000000 --- a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_es.ts +++ /dev/null @@ -1,1146 +0,0 @@ - - - - - AbstractDb - - - - Cannot execute query on closed database. - - - - - Error attaching database %1: %2 - - - - - ChainExecutor - - - The database for executing queries was not defined. - chain executor - - - - - The database for executing queries was not open. - chain executor - - - - - Could not disable foreign keys in the database. Details: %1 - chain executor - - - - - Could not start a database transaction. Details: %1 - chain executor - - - - - Interrupted - chain executor - - - - - Could not commit a database transaction. Details: %1 - chain executor - - - - - CompletionHelper - - - New row reference - - - - - Old row reference - - - - - New table name - - - - - New index name - - - - - New view name - - - - - New trigger name - - - - - Table or column alias - - - - - transaction name - - - - - New column name - - - - - Column data type - - - - - Constraint name - - - - - Error message - - - - - Collation name - - - - - Any word - - - - - Default database - - - - - Temporary objects database - - - - - ConfigImpl - - - Could not start database transaction for deleting SQL history, therefore it's not deleted. - - - - - Could not commit database transaction for deleting SQL history, therefore it's not deleted. - - - - - DbManagerImpl - - - Could not add database %1: %2 - - - - - Database %1 could not be updated, because of an error: %2 - - - - - - Database file doesn't exist. - - - - - - - No supporting plugin loaded. - - - - - Database could not be initialized. - - - - - No suitable database driver plugin found. - - - - - DbObjectOrganizer - - - - Error while creating table in target database: %1 - - - - - Could not parse table. - - - - - Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. - - - - - Error while copying data for table %1: %2 - - - - - - - Error while copying data to table %1: %2 - - - - - Error while dropping source view %1: %2 -Tables, indexes, triggers and views copied to database %3 will remain. - - - - - Error while creating view in target database: %1 - - - - - Error while creating index in target database: %1 - - - - - Error while creating trigger in target database: %1 - - - - - - - Could not parse object '%1' in order to move or copy it. - - - - - DbVersionConverter - - - Target file exists, but could not be overwritten. - - - - - Could not find proper database plugin to create target database. - - - - - Error while converting database: %1 - - - - - DdlHistoryModel - - - Database name - ddl history header - - - - - Database file - ddl history header - - - - - Date of execution - ddl history header - - - - - Changes - ddl history header - - - - - ExportManager - - - Export plugin %1 doesn't support exporing query results. - - - - - Export plugin %1 doesn't support exporing tables. - - - - - Export plugin %1 doesn't support exporing databases. - - - - - Export format '%1' is not supported. Supported formats are: %2. - - - - - Export to the clipboard was successful. - - - - - Export to the file '%1' was successful. - - - - - Export was successful. - - - - - Could not export to file %1. File cannot be open for writting. - - - - - ExportWorker - - - Error while exporting query results: %1 - - - - - Error while counting data column width to export from query results: %1 - - - - - - Could not parse %1 in order to export it. It will be excluded from the export output. - - - - - Error while reading data to export from table %1: %2 - - - - - Error while counting data to export from table %1: %2 - - - - - Error while counting data column width to export from table %1: %2 - - - - - FunctionManagerImpl - - - Invalid number of arguments to function '%1'. Expected %2, but got %3. - - - - - No such function registered in SQLiteStudio: %1(%2) - - - - - Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. - - - - - Invalid regular expression pattern: %1 - - - - - - Could not open file %1 for reading: %2 - - - - - Could not open file %1 for writting: %2 - - - - - Error while writting to file %1: %2 - - - - - Unsupported scripting language: %1 - - - - - GenericExportPlugin - - - Could not initialize text codec for exporting. Using default codec: %1 - - - - - ImportManager - - - Imported data to the table '%1' successfully. - - - - - ImportWorker - - - No columns provided by the import plugin. - - - - - Could not start transaction in order to import a data: %1 - - - - - Could not commit transaction for imported data: %1 - - - - - Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. - - - - - Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. - - - - - Could not create table to import to: %1 - - - - - - - Error while importing data: %1 - - - - - - Interrupted. - import process status update - - - - - Could not import data row number %1. The row was ignored. Problem details: %2 - - - - - PluginManagerImpl - - - Cannot load plugin %1, because it's in conflict with plugin %2. - - - - - Cannot load plugin %1, because its dependency was not loaded: %2. - - - - - Cannot load plugin %1. Error details: %2 - - - - - Cannot load plugin %1 (error while initializing plugin). - - - - - min: %1 - plugin dependency version - - - - - max: %1 - plugin dependency version - - - - - PopulateConstant - - - Constant - populate constant plugin name - - - - - PopulateConstantConfig - - - Constant value: - - - - - PopulateDictionary - - - Dictionary - dictionary populating plugin name - - - - - PopulateDictionaryConfig - - - Dictionary file - - - - - Pick dictionary file - - - - - Word separator - - - - - Whitespace - - - - - Line break - - - - - Method of using words - - - - - Ordered - - - - - Randomly - - - - - PopulateManager - - - Table '%1' populated successfully. - - - - - PopulateRandom - - - Random number - - - - - PopulateRandomConfig - - - Constant prefix - - - - - No prefix - - - - - Minimum value - - - - - Maximum value - - - - - Constant suffix - - - - - No suffix - - - - - PopulateRandomText - - - Random text - - - - - PopulateRandomTextConfig - - - Use characters from common sets: - - - - - Minimum length - - - - - Letters from a to z. - - - - - Alpha - - - - - Numbers from 0 to 9. - - - - - Numeric - - - - - A whitespace, a tab and a new line character. - - - - - Whitespace - - - - - Includes all above and all others. - - - - - Binary - - - - - Use characters from my custom set: - - - - - Maximum length - - - - - If you type some character multiple times, it's more likely to be used. - - - - - PopulateScript - - - Script - - - - - PopulateScriptConfig - - - Initialization code (optional) - - - - - Per step code - - - - - Language - - - - - Help - - - - - PopulateSequence - - - Sequence - - - - - PopulateSequenceConfig - - - Start value: - - - - - Step: - - - - - PopulateWorker - - - Could not start transaction in order to perform table populating. Error details: %1 - - - - - Error while populating table: %1 - - - - - Could not commit transaction after table populating. Error details: %1 - - - - - QObject - - - - Could not open database: %1 - - - - - - Result set expired or no row available. - - - - - - Could not load extension %1: %2 - - - - - Could not close database: %1 - - - - - - - - - - - SQLite %1 does not support '%2' statement. - - - - - SQLite %1 does not support '%2' statement, but the regular table can be created instead if you proceed. - - - - - Could not parse statement: %1 -Error details: %2 - - - - - - - - SQLite %1 does not support the '%2' clause. Cannot convert '%3' statement with that clause. - - - - - SQLite %1 does not support the '%2' clause in the '%3' statement. - - - - - SQLite %1 does not support current date or time clauses in expressions. - - - - - SQLite %1 does not support row value clauses in expressions. - - - - - - - SQLite %1 does not support '%2' clause in expressions. - - - - - Could not attach database %1: %2 - - - - - - Incomplete query. - - - - - - Parser stack overflow - - - - - - Syntax error - - - - - Could not open dictionary file %1 for reading. - - - - - Dictionary file must exist and be readable. - - - - - Maximum value cannot be less than minimum value. - - - - - Maximum length cannot be less than minimum length. - - - - - Custom character set cannot be empty. - - - - - Could not find plugin to support scripting language: %1 - - - - - Error while executing populating initial code: %1 - - - - - Error while executing populating code: %1 - - - - - Select implementation language. - - - - - Implementation code cannot be empty. - - - - - Could not resolve data source for column: %1 - - - - - Could not resolve table for column '%1'. - - - - - Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Tried to initialize the file at following localizations: %1. - - - - - General purpose - plugin category name - - - - - Database support - plugin category name - - - - - Code formatter - plugin category name - - - - - Scripting languages - plugin category name - - - - - Exporting - plugin category name - - - - - Importing - plugin category name - - - - - Table populating - plugin category name - - - - - Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. - - - - - All columns indexed by the index %1 are gone. The index will not be recreated after table modification. - - - - - There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. - - - - - Cannot not update trigger %1 according to table %2 modification. - - - - - - - There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. - - - - - All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. - - - - - Cannot not update view %1 according to table %2 modifications. -The view will remain as it is. - - - - - Could not parse DDL of the view to be created. Details: %1 - - - - - Parsed query is not CREATE VIEW. It's: %1 - - - - - SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. - - - - - Could not open file '%1' for reading: %2 - - - - - QueryExecutor - - - Execution interrupted. - - - - - Database is not open. - - - - - Only one query can be executed simultaneously. - - - - - - An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 - - - - - SQLiteStudio was unable to extract metadata from the query. Results won't be editable. - - - - - ScriptingQtDbProxy - - - No database available in current context, while called QtScript's %1 command. - - - - - Error from %1: %2 - - - - - SqlHistoryModel - - - Database - sql history header - - - - - Execution date - sql history header - - - - - Time spent - sql history header - - - - - Rows affected - sql history header - - - - - SQL - sql history header - - - - - UpdateManager - - - Updates installer executable is missing. - - - - - - Unable to check for updates (%1) - - - - - details are unknown - - - - - Unable to run updater application (%1). Please report this. - - - - diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_es_ES.ts b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_es_ES.ts new file mode 100644 index 0000000..588b8ea --- /dev/null +++ b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_es_ES.ts @@ -0,0 +1,1101 @@ + + + + + AbstractDb + + + + Cannot execute query on closed database. + No se puede ejecutar la consulta en una base de datos desconectada. + + + + Error attaching database %1: %2 + Error al adjuntar la base de datos %1: %2 + + + + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + + + + ChainExecutor + + + The database for executing queries was not defined. + chain executor + No se definió una base de datos sobre la cual ejecutar las consultas. + + + + The database for executing queries was not open. + chain executor + La base de datos usada para ejecutar las consultas no estaba abierta. + + + + Could not disable foreign keys in the database. Details: %1 + chain executor + No se pudieron desactivar las claves foráneas en la base de datos. Detalles: %1 + + + + Could not start a database transaction. Details: %1 + chain executor + No se pudo iniciar una transacción en la base de datos. Detalles: %1 + + + + Interrupted + chain executor + Interrumpido + + + + Could not commit a database transaction. Details: %1 + chain executor + No se pudo confirmar una transacción a la base de datos. Detalles: %1 + + + + CompletionHelper + + + New row reference + Referencia a nueva fila + + + + Old row reference + Referencia a antigua fila + + + + New table name + Nuevo nombre de tabla + + + + New index name + Nuevo nombre de índice + + + + New view name + Nuevo nombre de vista + + + + New trigger name + Nuevo nombre de disparador + + + + Table or column alias + Alias de tabla o columna + + + + transaction name + nombre de transacción + + + + New column name + Nuevo nombre de columna + + + + Column data type + Column data type + + + + Constraint name + Constraint name + + + + Error message + Error message + + + + Any word + Any word + + + + Default database + Default database + + + + Temporary objects database + Temporary objects database + + + + ConfigImpl + + + Could not start database transaction for deleting SQL history, therefore it's not deleted. + Could not start database transaction for deleting SQL history, therefore it's not deleted. + + + + Could not commit database transaction for deleting SQL history, therefore it's not deleted. + Could not commit database transaction for deleting SQL history, therefore it's not deleted. + + + + DbManagerImpl + + + Could not add database %1: %2 + Could not add database %1: %2 + + + + Database %1 could not be updated, because of an error: %2 + Database %1 could not be updated, because of an error: %2 + + + + + Database file doesn't exist. + Database file doesn't exist. + + + + + + No supporting plugin loaded. + No supporting plugin loaded. + + + + Database could not be initialized. + Database could not be initialized. + + + + No suitable database driver plugin found. + No suitable database driver plugin found. + + + + DbObjectOrganizer + + + + Error while creating table in target database: %1 + Error while creating table in target database: %1 + + + + Could not parse table. + Could not parse table. + + + + Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. + Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. + + + + Error while copying data for table %1: %2 + Error while copying data for table %1: %2 + + + + + + Error while copying data to table %1: %2 + Error while copying data to table %1: %2 + + + + Error while dropping source view %1: %2 +Tables, indexes, triggers and views copied to database %3 will remain. + Error while dropping source view %1: %2 +Tables, indexes, triggers and views copied to database %3 will remain. + + + + Error while creating view in target database: %1 + Error while creating view in target database: %1 + + + + Error while creating index in target database: %1 + Error while creating index in target database: %1 + + + + Error while creating trigger in target database: %1 + Error while creating trigger in target database: %1 + + + + + + Could not parse object '%1' in order to move or copy it. + Could not parse object '%1' in order to move or copy it. + + + + DdlHistoryModel + + + Database name + ddl history header + Database name + + + + Database file + ddl history header + Database file + + + + Date of execution + ddl history header + Date of execution + + + + Changes + ddl history header + Changes + + + + ExportManager + + + Export plugin %1 doesn't support exporing query results. + Export plugin %1 doesn't support exporing query results. + + + + Export plugin %1 doesn't support exporing tables. + Export plugin %1 doesn't support exporing tables. + + + + Export plugin %1 doesn't support exporing databases. + Export plugin %1 doesn't support exporing databases. + + + + Export format '%1' is not supported. Supported formats are: %2. + Export format '%1' is not supported. Supported formats are: %2. + + + + Export to the clipboard was successful. + Export to the clipboard was successful. + + + + Export to the file '%1' was successful. + Export to the file '%1' was successful. + + + + Export was successful. + Export was successful. + + + + Could not export to file %1. File cannot be open for writting. + Could not export to file %1. File cannot be open for writting. + + + + ExportWorker + + + Error while exporting query results: %1 + Error while exporting query results: %1 + + + + Error while counting data column width to export from query results: %1 + Error while counting data column width to export from query results: %1 + + + + + Could not parse %1 in order to export it. It will be excluded from the export output. + Could not parse %1 in order to export it. It will be excluded from the export output. + + + + Error while reading data to export from table %1: %2 + Error while reading data to export from table %1: %2 + + + + Error while counting data to export from table %1: %2 + Error while counting data to export from table %1: %2 + + + + Error while counting data column width to export from table %1: %2 + Error while counting data column width to export from table %1: %2 + + + + FunctionManagerImpl + + + Invalid number of arguments to function '%1'. Expected %2, but got %3. + Invalid number of arguments to function '%1'. Expected %2, but got %3. + + + + No such function registered in SQLiteStudio: %1(%2) + No such function registered in SQLiteStudio: %1(%2) + + + + Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. + Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. + + + + Invalid regular expression pattern: %1 + Invalid regular expression pattern: %1 + + + + + Could not open file %1 for reading: %2 + Could not open file %1 for reading: %2 + + + + Could not open file %1 for writting: %2 + Could not open file %1 for writting: %2 + + + + Error while writting to file %1: %2 + Error while writting to file %1: %2 + + + + Unsupported scripting language: %1 + Unsupported scripting language: %1 + + + + GenericExportPlugin + + + Could not initialize text codec for exporting. Using default codec: %1 + Could not initialize text codec for exporting. Using default codec: %1 + + + + ImportManager + + + Imported data to the table '%1' successfully. Number of imported rows: %2 + Imported data to the table '%1' successfully. Number of imported rows: %2 + + + + ImportWorker + + + No columns provided by the import plugin. + No columns provided by the import plugin. + + + + Could not start transaction in order to import a data: %1 + Could not start transaction in order to import a data: %1 + + + + Could not commit transaction for imported data: %1 + Could not commit transaction for imported data: %1 + + + + Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. + Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. + + + + Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. + Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. + + + + Could not create table to import to: %1 + Could not create table to import to: %1 + + + + + + Error while importing data: %1 + Error while importing data: %1 + + + + + Interrupted. + import process status update + Interrupted. + + + + Could not import data row number %1. The row was ignored. Problem details: %2 + Could not import data row number %1. The row was ignored. Problem details: %2 + + + + PluginManagerImpl + + + Cannot load plugin %1, because it's in conflict with plugin %2. + Cannot load plugin %1, because it's in conflict with plugin %2. + + + + Cannot load plugin %1, because its dependency was not loaded: %2. + Cannot load plugin %1, because its dependency was not loaded: %2. + + + + Cannot load plugin %1. Error details: %2 + Cannot load plugin %1. Error details: %2 + + + + Cannot load plugin %1 (error while initializing plugin). + Cannot load plugin %1 (error while initializing plugin). + + + + min: %1 + plugin dependency version + min: %1 + + + + max: %1 + plugin dependency version + max: %1 + + + + PopulateConstant + + + Constant + populate constant plugin name + Constant + + + + PopulateConstantConfig + + + Constant value: + Constant value: + + + + PopulateDictionary + + + Dictionary + dictionary populating plugin name + Dictionary + + + + PopulateDictionaryConfig + + + Dictionary file + Dictionary file + + + + Pick dictionary file + Pick dictionary file + + + + Word separator + Word separator + + + + Whitespace + Whitespace + + + + Line break + Line break + + + + Method of using words + Method of using words + + + + Ordered + Ordered + + + + Randomly + Randomly + + + + PopulateManager + + + Table '%1' populated successfully. + Table '%1' populated successfully. + + + + PopulateRandom + + + Random number + Random number + + + + PopulateRandomConfig + + + Constant prefix + Constant prefix + + + + No prefix + No prefix + + + + Minimum value + Minimum value + + + + Maximum value + Maximum value + + + + Constant suffix + Constant suffix + + + + No suffix + No suffix + + + + PopulateRandomText + + + Random text + Random text + + + + PopulateRandomTextConfig + + + Use characters from common sets: + Use characters from common sets: + + + + Minimum length + Minimum length + + + + Letters from a to z. + Letters from a to z. + + + + Alpha + Alpha + + + + Numbers from 0 to 9. + Numbers from 0 to 9. + + + + Numeric + Numeric + + + + A whitespace, a tab and a new line character. + A whitespace, a tab and a new line character. + + + + Whitespace + Whitespace + + + + Includes all above and all others. + Includes all above and all others. + + + + Binary + Binary + + + + Use characters from my custom set: + Use characters from my custom set: + + + + Maximum length + Maximum length + + + + If you type some character multiple times, it's more likely to be used. + If you type some character multiple times, it's more likely to be used. + + + + PopulateScript + + + Script + Script + + + + PopulateScriptConfig + + + Initialization code (optional) + Initialization code (optional) + + + + Per step code + Per step code + + + + Language + Language + + + + Help + Help + + + + PopulateSequence + + + Sequence + Sequence + + + + PopulateSequenceConfig + + + Start value: + Start value: + + + + Step: + Step: + + + + PopulateWorker + + + Could not start transaction in order to perform table populating. Error details: %1 + Could not start transaction in order to perform table populating. Error details: %1 + + + + Error while populating table: %1 + Error while populating table: %1 + + + + Could not commit transaction after table populating. Error details: %1 + Could not commit transaction after table populating. Error details: %1 + + + + QObject + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Could not open database: %1 + Could not open database: %1 + + + + Result set expired or no row available. + Result set expired or no row available. + + + + + Could not load extension %1: %2 + Could not load extension %1: %2 + + + + Could not run WAL checkpoint: %1 + Could not run WAL checkpoint: %1 + + + + Could not close database: %1 + Could not close database: %1 + + + + Could not attach database %1: %2 + Could not attach database %1: %2 + + + + + Incomplete query. + Incomplete query. + + + + Parser stack overflow + Parser stack overflow + + + + Syntax error + Syntax error + + + + Could not open dictionary file %1 for reading. + Could not open dictionary file %1 for reading. + + + + Dictionary file must exist and be readable. + Dictionary file must exist and be readable. + + + + Maximum value cannot be less than minimum value. + Maximum value cannot be less than minimum value. + + + + Maximum length cannot be less than minimum length. + Maximum length cannot be less than minimum length. + + + + Custom character set cannot be empty. + Custom character set cannot be empty. + + + + Could not find plugin to support scripting language: %1 + Could not find plugin to support scripting language: %1 + + + + Error while executing populating initial code: %1 + Error while executing populating initial code: %1 + + + + Error while executing populating code: %1 + Error while executing populating code: %1 + + + + Select implementation language. + Select implementation language. + + + + Implementation code cannot be empty. + Implementation code cannot be empty. + + + + Could not resolve data source for column: %1 + Could not resolve data source for column: %1 + + + + Could not resolve table for column '%1'. + Could not resolve table for column '%1'. + + + + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Unable to create a file at following locations: %1. + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Unable to create a file at following locations: %1. + + + + General purpose + plugin category name + General purpose + + + + Database support + plugin category name + Database support + + + + Code formatter + plugin category name + Code formatter + + + + Scripting languages + plugin category name + Scripting languages + + + + Exporting + plugin category name + Exporting + + + + Importing + plugin category name + Importing + + + + Table populating + plugin category name + Table populating + + + + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. + + + + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. + + + + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. + + + + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. + + + + Cannot not update trigger %1 according to table %2 modification. + Cannot not update trigger %1 according to table %2 modification. + + + + Cannot not update view %1 according to table %2 modifications. +The view will remain as it is. + Cannot not update view %1 according to table %2 modifications. +The view will remain as it is. + + + + + + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. + + + + Could not parse DDL of the view to be created. Details: %1 + Could not parse DDL of the view to be created. Details: %1 + + + + Parsed query is not CREATE VIEW. It's: %1 + Parsed query is not CREATE VIEW. It's: %1 + + + + SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. + SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. + + + + QueryExecutor + + + Execution interrupted. + Execution interrupted. + + + + Database is not open. + Database is not open. + + + + Only one query can be executed simultaneously. + Only one query can be executed simultaneously. + + + + + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 + + + + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. + + + + ScriptingQtDbProxy + + + No database available in current context, while called JavaScript's %1 command. + No database available in current context, while called JavaScript's %1 command. + + + + Error from %1: %2 + Error from %1: %2 + + + + SqlFileExecutor + + + Could not execute SQL, because application has failed to start transaction: %1 + Could not execute SQL, because application has failed to start transaction: %1 + + + + Execution from file cancelled. Any queries executed so far have been rolled back. + Execution from file cancelled. Any queries executed so far have been rolled back. + + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Could not execute SQL, because application has failed to commit the transaction: %1 + Could not execute SQL, because application has failed to commit the transaction: %1 + + + + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. + + + + Finished executing %1 queries in %2 seconds. + Finished executing %1 queries in %2 seconds. + + + + Could not execute SQL due to error. + Could not execute SQL due to error. + + + + SqlHistoryModel + + + Database + sql history header + Database + + + + Execution date + sql history header + Execution date + + + + Time spent + sql history header + Time spent + + + + Rows affected + sql history header + Rows affected + + + + SQL + sql history header + SQL + + + + UpdateManager + + + Could not check for updates (%1). + Could not check for updates (%1). + + + diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_fa_IR.ts b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_fa_IR.ts new file mode 100644 index 0000000..47432f8 --- /dev/null +++ b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_fa_IR.ts @@ -0,0 +1,1101 @@ + + + + + AbstractDb + + + + Cannot execute query on closed database. + Cannot execute query on closed database. + + + + Error attaching database %1: %2 + Error attaching database %1: %2 + + + + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + + + + ChainExecutor + + + The database for executing queries was not defined. + chain executor + The database for executing queries was not defined. + + + + The database for executing queries was not open. + chain executor + The database for executing queries was not open. + + + + Could not disable foreign keys in the database. Details: %1 + chain executor + Could not disable foreign keys in the database. Details: %1 + + + + Could not start a database transaction. Details: %1 + chain executor + Could not start a database transaction. Details: %1 + + + + Interrupted + chain executor + Interrupted + + + + Could not commit a database transaction. Details: %1 + chain executor + Could not commit a database transaction. Details: %1 + + + + CompletionHelper + + + New row reference + New row reference + + + + Old row reference + Old row reference + + + + New table name + New table name + + + + New index name + New index name + + + + New view name + New view name + + + + New trigger name + New trigger name + + + + Table or column alias + Table or column alias + + + + transaction name + transaction name + + + + New column name + New column name + + + + Column data type + Column data type + + + + Constraint name + Constraint name + + + + Error message + Error message + + + + Any word + Any word + + + + Default database + Default database + + + + Temporary objects database + Temporary objects database + + + + ConfigImpl + + + Could not start database transaction for deleting SQL history, therefore it's not deleted. + Could not start database transaction for deleting SQL history, therefore it's not deleted. + + + + Could not commit database transaction for deleting SQL history, therefore it's not deleted. + Could not commit database transaction for deleting SQL history, therefore it's not deleted. + + + + DbManagerImpl + + + Could not add database %1: %2 + Could not add database %1: %2 + + + + Database %1 could not be updated, because of an error: %2 + Database %1 could not be updated, because of an error: %2 + + + + + Database file doesn't exist. + Database file doesn't exist. + + + + + + No supporting plugin loaded. + No supporting plugin loaded. + + + + Database could not be initialized. + Database could not be initialized. + + + + No suitable database driver plugin found. + No suitable database driver plugin found. + + + + DbObjectOrganizer + + + + Error while creating table in target database: %1 + Error while creating table in target database: %1 + + + + Could not parse table. + Could not parse table. + + + + Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. + Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. + + + + Error while copying data for table %1: %2 + Error while copying data for table %1: %2 + + + + + + Error while copying data to table %1: %2 + Error while copying data to table %1: %2 + + + + Error while dropping source view %1: %2 +Tables, indexes, triggers and views copied to database %3 will remain. + Error while dropping source view %1: %2 +Tables, indexes, triggers and views copied to database %3 will remain. + + + + Error while creating view in target database: %1 + Error while creating view in target database: %1 + + + + Error while creating index in target database: %1 + Error while creating index in target database: %1 + + + + Error while creating trigger in target database: %1 + Error while creating trigger in target database: %1 + + + + + + Could not parse object '%1' in order to move or copy it. + Could not parse object '%1' in order to move or copy it. + + + + DdlHistoryModel + + + Database name + ddl history header + Database name + + + + Database file + ddl history header + Database file + + + + Date of execution + ddl history header + Date of execution + + + + Changes + ddl history header + Changes + + + + ExportManager + + + Export plugin %1 doesn't support exporing query results. + Export plugin %1 doesn't support exporing query results. + + + + Export plugin %1 doesn't support exporing tables. + Export plugin %1 doesn't support exporing tables. + + + + Export plugin %1 doesn't support exporing databases. + Export plugin %1 doesn't support exporing databases. + + + + Export format '%1' is not supported. Supported formats are: %2. + Export format '%1' is not supported. Supported formats are: %2. + + + + Export to the clipboard was successful. + Export to the clipboard was successful. + + + + Export to the file '%1' was successful. + Export to the file '%1' was successful. + + + + Export was successful. + Export was successful. + + + + Could not export to file %1. File cannot be open for writting. + Could not export to file %1. File cannot be open for writting. + + + + ExportWorker + + + Error while exporting query results: %1 + Error while exporting query results: %1 + + + + Error while counting data column width to export from query results: %1 + Error while counting data column width to export from query results: %1 + + + + + Could not parse %1 in order to export it. It will be excluded from the export output. + Could not parse %1 in order to export it. It will be excluded from the export output. + + + + Error while reading data to export from table %1: %2 + Error while reading data to export from table %1: %2 + + + + Error while counting data to export from table %1: %2 + Error while counting data to export from table %1: %2 + + + + Error while counting data column width to export from table %1: %2 + Error while counting data column width to export from table %1: %2 + + + + FunctionManagerImpl + + + Invalid number of arguments to function '%1'. Expected %2, but got %3. + Invalid number of arguments to function '%1'. Expected %2, but got %3. + + + + No such function registered in SQLiteStudio: %1(%2) + No such function registered in SQLiteStudio: %1(%2) + + + + Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. + Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. + + + + Invalid regular expression pattern: %1 + Invalid regular expression pattern: %1 + + + + + Could not open file %1 for reading: %2 + Could not open file %1 for reading: %2 + + + + Could not open file %1 for writting: %2 + Could not open file %1 for writting: %2 + + + + Error while writting to file %1: %2 + Error while writting to file %1: %2 + + + + Unsupported scripting language: %1 + Unsupported scripting language: %1 + + + + GenericExportPlugin + + + Could not initialize text codec for exporting. Using default codec: %1 + Could not initialize text codec for exporting. Using default codec: %1 + + + + ImportManager + + + Imported data to the table '%1' successfully. Number of imported rows: %2 + Imported data to the table '%1' successfully. Number of imported rows: %2 + + + + ImportWorker + + + No columns provided by the import plugin. + No columns provided by the import plugin. + + + + Could not start transaction in order to import a data: %1 + Could not start transaction in order to import a data: %1 + + + + Could not commit transaction for imported data: %1 + Could not commit transaction for imported data: %1 + + + + Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. + Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. + + + + Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. + Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. + + + + Could not create table to import to: %1 + Could not create table to import to: %1 + + + + + + Error while importing data: %1 + Error while importing data: %1 + + + + + Interrupted. + import process status update + Interrupted. + + + + Could not import data row number %1. The row was ignored. Problem details: %2 + Could not import data row number %1. The row was ignored. Problem details: %2 + + + + PluginManagerImpl + + + Cannot load plugin %1, because it's in conflict with plugin %2. + Cannot load plugin %1, because it's in conflict with plugin %2. + + + + Cannot load plugin %1, because its dependency was not loaded: %2. + Cannot load plugin %1, because its dependency was not loaded: %2. + + + + Cannot load plugin %1. Error details: %2 + Cannot load plugin %1. Error details: %2 + + + + Cannot load plugin %1 (error while initializing plugin). + Cannot load plugin %1 (error while initializing plugin). + + + + min: %1 + plugin dependency version + min: %1 + + + + max: %1 + plugin dependency version + max: %1 + + + + PopulateConstant + + + Constant + populate constant plugin name + Constant + + + + PopulateConstantConfig + + + Constant value: + Constant value: + + + + PopulateDictionary + + + Dictionary + dictionary populating plugin name + Dictionary + + + + PopulateDictionaryConfig + + + Dictionary file + Dictionary file + + + + Pick dictionary file + Pick dictionary file + + + + Word separator + Word separator + + + + Whitespace + Whitespace + + + + Line break + Line break + + + + Method of using words + Method of using words + + + + Ordered + Ordered + + + + Randomly + Randomly + + + + PopulateManager + + + Table '%1' populated successfully. + Table '%1' populated successfully. + + + + PopulateRandom + + + Random number + Random number + + + + PopulateRandomConfig + + + Constant prefix + Constant prefix + + + + No prefix + No prefix + + + + Minimum value + Minimum value + + + + Maximum value + Maximum value + + + + Constant suffix + Constant suffix + + + + No suffix + No suffix + + + + PopulateRandomText + + + Random text + Random text + + + + PopulateRandomTextConfig + + + Use characters from common sets: + Use characters from common sets: + + + + Minimum length + Minimum length + + + + Letters from a to z. + Letters from a to z. + + + + Alpha + Alpha + + + + Numbers from 0 to 9. + Numbers from 0 to 9. + + + + Numeric + Numeric + + + + A whitespace, a tab and a new line character. + A whitespace, a tab and a new line character. + + + + Whitespace + Whitespace + + + + Includes all above and all others. + Includes all above and all others. + + + + Binary + Binary + + + + Use characters from my custom set: + Use characters from my custom set: + + + + Maximum length + Maximum length + + + + If you type some character multiple times, it's more likely to be used. + If you type some character multiple times, it's more likely to be used. + + + + PopulateScript + + + Script + Script + + + + PopulateScriptConfig + + + Initialization code (optional) + Initialization code (optional) + + + + Per step code + Per step code + + + + Language + Language + + + + Help + Help + + + + PopulateSequence + + + Sequence + Sequence + + + + PopulateSequenceConfig + + + Start value: + Start value: + + + + Step: + Step: + + + + PopulateWorker + + + Could not start transaction in order to perform table populating. Error details: %1 + Could not start transaction in order to perform table populating. Error details: %1 + + + + Error while populating table: %1 + Error while populating table: %1 + + + + Could not commit transaction after table populating. Error details: %1 + Could not commit transaction after table populating. Error details: %1 + + + + QObject + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Could not open database: %1 + Could not open database: %1 + + + + Result set expired or no row available. + Result set expired or no row available. + + + + + Could not load extension %1: %2 + Could not load extension %1: %2 + + + + Could not run WAL checkpoint: %1 + Could not run WAL checkpoint: %1 + + + + Could not close database: %1 + Could not close database: %1 + + + + Could not attach database %1: %2 + Could not attach database %1: %2 + + + + + Incomplete query. + Incomplete query. + + + + Parser stack overflow + Parser stack overflow + + + + Syntax error + Syntax error + + + + Could not open dictionary file %1 for reading. + Could not open dictionary file %1 for reading. + + + + Dictionary file must exist and be readable. + Dictionary file must exist and be readable. + + + + Maximum value cannot be less than minimum value. + Maximum value cannot be less than minimum value. + + + + Maximum length cannot be less than minimum length. + Maximum length cannot be less than minimum length. + + + + Custom character set cannot be empty. + Custom character set cannot be empty. + + + + Could not find plugin to support scripting language: %1 + Could not find plugin to support scripting language: %1 + + + + Error while executing populating initial code: %1 + Error while executing populating initial code: %1 + + + + Error while executing populating code: %1 + Error while executing populating code: %1 + + + + Select implementation language. + Select implementation language. + + + + Implementation code cannot be empty. + Implementation code cannot be empty. + + + + Could not resolve data source for column: %1 + Could not resolve data source for column: %1 + + + + Could not resolve table for column '%1'. + Could not resolve table for column '%1'. + + + + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Unable to create a file at following locations: %1. + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Unable to create a file at following locations: %1. + + + + General purpose + plugin category name + General purpose + + + + Database support + plugin category name + Database support + + + + Code formatter + plugin category name + Code formatter + + + + Scripting languages + plugin category name + Scripting languages + + + + Exporting + plugin category name + Exporting + + + + Importing + plugin category name + Importing + + + + Table populating + plugin category name + Table populating + + + + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. + + + + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. + + + + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. + + + + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. + + + + Cannot not update trigger %1 according to table %2 modification. + Cannot not update trigger %1 according to table %2 modification. + + + + Cannot not update view %1 according to table %2 modifications. +The view will remain as it is. + Cannot not update view %1 according to table %2 modifications. +The view will remain as it is. + + + + + + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. + + + + Could not parse DDL of the view to be created. Details: %1 + Could not parse DDL of the view to be created. Details: %1 + + + + Parsed query is not CREATE VIEW. It's: %1 + Parsed query is not CREATE VIEW. It's: %1 + + + + SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. + SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. + + + + QueryExecutor + + + Execution interrupted. + Execution interrupted. + + + + Database is not open. + Database is not open. + + + + Only one query can be executed simultaneously. + Only one query can be executed simultaneously. + + + + + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 + + + + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. + + + + ScriptingQtDbProxy + + + No database available in current context, while called JavaScript's %1 command. + No database available in current context, while called JavaScript's %1 command. + + + + Error from %1: %2 + Error from %1: %2 + + + + SqlFileExecutor + + + Could not execute SQL, because application has failed to start transaction: %1 + Could not execute SQL, because application has failed to start transaction: %1 + + + + Execution from file cancelled. Any queries executed so far have been rolled back. + Execution from file cancelled. Any queries executed so far have been rolled back. + + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Could not execute SQL, because application has failed to commit the transaction: %1 + Could not execute SQL, because application has failed to commit the transaction: %1 + + + + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. + + + + Finished executing %1 queries in %2 seconds. + Finished executing %1 queries in %2 seconds. + + + + Could not execute SQL due to error. + Could not execute SQL due to error. + + + + SqlHistoryModel + + + Database + sql history header + Database + + + + Execution date + sql history header + Execution date + + + + Time spent + sql history header + Time spent + + + + Rows affected + sql history header + Rows affected + + + + SQL + sql history header + SQL + + + + UpdateManager + + + Could not check for updates (%1). + Could not check for updates (%1). + + + diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_fi_FI.ts b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_fi_FI.ts new file mode 100644 index 0000000..7908672 --- /dev/null +++ b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_fi_FI.ts @@ -0,0 +1,1101 @@ + + + + + AbstractDb + + + + Cannot execute query on closed database. + Cannot execute query on closed database. + + + + Error attaching database %1: %2 + Error attaching database %1: %2 + + + + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + + + + ChainExecutor + + + The database for executing queries was not defined. + chain executor + The database for executing queries was not defined. + + + + The database for executing queries was not open. + chain executor + The database for executing queries was not open. + + + + Could not disable foreign keys in the database. Details: %1 + chain executor + Could not disable foreign keys in the database. Details: %1 + + + + Could not start a database transaction. Details: %1 + chain executor + Could not start a database transaction. Details: %1 + + + + Interrupted + chain executor + Interrupted + + + + Could not commit a database transaction. Details: %1 + chain executor + Could not commit a database transaction. Details: %1 + + + + CompletionHelper + + + New row reference + New row reference + + + + Old row reference + Old row reference + + + + New table name + New table name + + + + New index name + New index name + + + + New view name + New view name + + + + New trigger name + New trigger name + + + + Table or column alias + Table or column alias + + + + transaction name + transaction name + + + + New column name + New column name + + + + Column data type + Column data type + + + + Constraint name + Constraint name + + + + Error message + Error message + + + + Any word + Any word + + + + Default database + Default database + + + + Temporary objects database + Temporary objects database + + + + ConfigImpl + + + Could not start database transaction for deleting SQL history, therefore it's not deleted. + Could not start database transaction for deleting SQL history, therefore it's not deleted. + + + + Could not commit database transaction for deleting SQL history, therefore it's not deleted. + Could not commit database transaction for deleting SQL history, therefore it's not deleted. + + + + DbManagerImpl + + + Could not add database %1: %2 + Could not add database %1: %2 + + + + Database %1 could not be updated, because of an error: %2 + Database %1 could not be updated, because of an error: %2 + + + + + Database file doesn't exist. + Database file doesn't exist. + + + + + + No supporting plugin loaded. + No supporting plugin loaded. + + + + Database could not be initialized. + Database could not be initialized. + + + + No suitable database driver plugin found. + No suitable database driver plugin found. + + + + DbObjectOrganizer + + + + Error while creating table in target database: %1 + Error while creating table in target database: %1 + + + + Could not parse table. + Could not parse table. + + + + Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. + Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. + + + + Error while copying data for table %1: %2 + Error while copying data for table %1: %2 + + + + + + Error while copying data to table %1: %2 + Error while copying data to table %1: %2 + + + + Error while dropping source view %1: %2 +Tables, indexes, triggers and views copied to database %3 will remain. + Error while dropping source view %1: %2 +Tables, indexes, triggers and views copied to database %3 will remain. + + + + Error while creating view in target database: %1 + Error while creating view in target database: %1 + + + + Error while creating index in target database: %1 + Error while creating index in target database: %1 + + + + Error while creating trigger in target database: %1 + Error while creating trigger in target database: %1 + + + + + + Could not parse object '%1' in order to move or copy it. + Could not parse object '%1' in order to move or copy it. + + + + DdlHistoryModel + + + Database name + ddl history header + Database name + + + + Database file + ddl history header + Database file + + + + Date of execution + ddl history header + Date of execution + + + + Changes + ddl history header + Changes + + + + ExportManager + + + Export plugin %1 doesn't support exporing query results. + Export plugin %1 doesn't support exporing query results. + + + + Export plugin %1 doesn't support exporing tables. + Export plugin %1 doesn't support exporing tables. + + + + Export plugin %1 doesn't support exporing databases. + Export plugin %1 doesn't support exporing databases. + + + + Export format '%1' is not supported. Supported formats are: %2. + Export format '%1' is not supported. Supported formats are: %2. + + + + Export to the clipboard was successful. + Export to the clipboard was successful. + + + + Export to the file '%1' was successful. + Export to the file '%1' was successful. + + + + Export was successful. + Export was successful. + + + + Could not export to file %1. File cannot be open for writting. + Could not export to file %1. File cannot be open for writting. + + + + ExportWorker + + + Error while exporting query results: %1 + Error while exporting query results: %1 + + + + Error while counting data column width to export from query results: %1 + Error while counting data column width to export from query results: %1 + + + + + Could not parse %1 in order to export it. It will be excluded from the export output. + Could not parse %1 in order to export it. It will be excluded from the export output. + + + + Error while reading data to export from table %1: %2 + Error while reading data to export from table %1: %2 + + + + Error while counting data to export from table %1: %2 + Error while counting data to export from table %1: %2 + + + + Error while counting data column width to export from table %1: %2 + Error while counting data column width to export from table %1: %2 + + + + FunctionManagerImpl + + + Invalid number of arguments to function '%1'. Expected %2, but got %3. + Invalid number of arguments to function '%1'. Expected %2, but got %3. + + + + No such function registered in SQLiteStudio: %1(%2) + No such function registered in SQLiteStudio: %1(%2) + + + + Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. + Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. + + + + Invalid regular expression pattern: %1 + Invalid regular expression pattern: %1 + + + + + Could not open file %1 for reading: %2 + Could not open file %1 for reading: %2 + + + + Could not open file %1 for writting: %2 + Could not open file %1 for writting: %2 + + + + Error while writting to file %1: %2 + Error while writting to file %1: %2 + + + + Unsupported scripting language: %1 + Unsupported scripting language: %1 + + + + GenericExportPlugin + + + Could not initialize text codec for exporting. Using default codec: %1 + Could not initialize text codec for exporting. Using default codec: %1 + + + + ImportManager + + + Imported data to the table '%1' successfully. Number of imported rows: %2 + Imported data to the table '%1' successfully. Number of imported rows: %2 + + + + ImportWorker + + + No columns provided by the import plugin. + No columns provided by the import plugin. + + + + Could not start transaction in order to import a data: %1 + Could not start transaction in order to import a data: %1 + + + + Could not commit transaction for imported data: %1 + Could not commit transaction for imported data: %1 + + + + Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. + Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. + + + + Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. + Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. + + + + Could not create table to import to: %1 + Could not create table to import to: %1 + + + + + + Error while importing data: %1 + Error while importing data: %1 + + + + + Interrupted. + import process status update + Interrupted. + + + + Could not import data row number %1. The row was ignored. Problem details: %2 + Could not import data row number %1. The row was ignored. Problem details: %2 + + + + PluginManagerImpl + + + Cannot load plugin %1, because it's in conflict with plugin %2. + Cannot load plugin %1, because it's in conflict with plugin %2. + + + + Cannot load plugin %1, because its dependency was not loaded: %2. + Cannot load plugin %1, because its dependency was not loaded: %2. + + + + Cannot load plugin %1. Error details: %2 + Cannot load plugin %1. Error details: %2 + + + + Cannot load plugin %1 (error while initializing plugin). + Cannot load plugin %1 (error while initializing plugin). + + + + min: %1 + plugin dependency version + min: %1 + + + + max: %1 + plugin dependency version + max: %1 + + + + PopulateConstant + + + Constant + populate constant plugin name + Constant + + + + PopulateConstantConfig + + + Constant value: + Constant value: + + + + PopulateDictionary + + + Dictionary + dictionary populating plugin name + Dictionary + + + + PopulateDictionaryConfig + + + Dictionary file + Dictionary file + + + + Pick dictionary file + Pick dictionary file + + + + Word separator + Word separator + + + + Whitespace + Whitespace + + + + Line break + Line break + + + + Method of using words + Method of using words + + + + Ordered + Ordered + + + + Randomly + Randomly + + + + PopulateManager + + + Table '%1' populated successfully. + Table '%1' populated successfully. + + + + PopulateRandom + + + Random number + Random number + + + + PopulateRandomConfig + + + Constant prefix + Constant prefix + + + + No prefix + No prefix + + + + Minimum value + Minimum value + + + + Maximum value + Maximum value + + + + Constant suffix + Constant suffix + + + + No suffix + No suffix + + + + PopulateRandomText + + + Random text + Random text + + + + PopulateRandomTextConfig + + + Use characters from common sets: + Use characters from common sets: + + + + Minimum length + Minimum length + + + + Letters from a to z. + Letters from a to z. + + + + Alpha + Alpha + + + + Numbers from 0 to 9. + Numbers from 0 to 9. + + + + Numeric + Numeric + + + + A whitespace, a tab and a new line character. + A whitespace, a tab and a new line character. + + + + Whitespace + Whitespace + + + + Includes all above and all others. + Includes all above and all others. + + + + Binary + Binary + + + + Use characters from my custom set: + Use characters from my custom set: + + + + Maximum length + Maximum length + + + + If you type some character multiple times, it's more likely to be used. + If you type some character multiple times, it's more likely to be used. + + + + PopulateScript + + + Script + Script + + + + PopulateScriptConfig + + + Initialization code (optional) + Initialization code (optional) + + + + Per step code + Per step code + + + + Language + Language + + + + Help + Help + + + + PopulateSequence + + + Sequence + Sequence + + + + PopulateSequenceConfig + + + Start value: + Start value: + + + + Step: + Step: + + + + PopulateWorker + + + Could not start transaction in order to perform table populating. Error details: %1 + Could not start transaction in order to perform table populating. Error details: %1 + + + + Error while populating table: %1 + Error while populating table: %1 + + + + Could not commit transaction after table populating. Error details: %1 + Could not commit transaction after table populating. Error details: %1 + + + + QObject + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Could not open database: %1 + Could not open database: %1 + + + + Result set expired or no row available. + Result set expired or no row available. + + + + + Could not load extension %1: %2 + Could not load extension %1: %2 + + + + Could not run WAL checkpoint: %1 + Could not run WAL checkpoint: %1 + + + + Could not close database: %1 + Could not close database: %1 + + + + Could not attach database %1: %2 + Could not attach database %1: %2 + + + + + Incomplete query. + Incomplete query. + + + + Parser stack overflow + Parser stack overflow + + + + Syntax error + Syntax error + + + + Could not open dictionary file %1 for reading. + Could not open dictionary file %1 for reading. + + + + Dictionary file must exist and be readable. + Dictionary file must exist and be readable. + + + + Maximum value cannot be less than minimum value. + Maximum value cannot be less than minimum value. + + + + Maximum length cannot be less than minimum length. + Maximum length cannot be less than minimum length. + + + + Custom character set cannot be empty. + Custom character set cannot be empty. + + + + Could not find plugin to support scripting language: %1 + Could not find plugin to support scripting language: %1 + + + + Error while executing populating initial code: %1 + Error while executing populating initial code: %1 + + + + Error while executing populating code: %1 + Error while executing populating code: %1 + + + + Select implementation language. + Select implementation language. + + + + Implementation code cannot be empty. + Implementation code cannot be empty. + + + + Could not resolve data source for column: %1 + Could not resolve data source for column: %1 + + + + Could not resolve table for column '%1'. + Could not resolve table for column '%1'. + + + + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Unable to create a file at following locations: %1. + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Unable to create a file at following locations: %1. + + + + General purpose + plugin category name + General purpose + + + + Database support + plugin category name + Database support + + + + Code formatter + plugin category name + Code formatter + + + + Scripting languages + plugin category name + Scripting languages + + + + Exporting + plugin category name + Exporting + + + + Importing + plugin category name + Importing + + + + Table populating + plugin category name + Table populating + + + + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. + + + + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. + + + + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. + + + + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. + + + + Cannot not update trigger %1 according to table %2 modification. + Cannot not update trigger %1 according to table %2 modification. + + + + Cannot not update view %1 according to table %2 modifications. +The view will remain as it is. + Cannot not update view %1 according to table %2 modifications. +The view will remain as it is. + + + + + + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. + + + + Could not parse DDL of the view to be created. Details: %1 + Could not parse DDL of the view to be created. Details: %1 + + + + Parsed query is not CREATE VIEW. It's: %1 + Parsed query is not CREATE VIEW. It's: %1 + + + + SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. + SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. + + + + QueryExecutor + + + Execution interrupted. + Execution interrupted. + + + + Database is not open. + Database is not open. + + + + Only one query can be executed simultaneously. + Only one query can be executed simultaneously. + + + + + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 + + + + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. + + + + ScriptingQtDbProxy + + + No database available in current context, while called JavaScript's %1 command. + No database available in current context, while called JavaScript's %1 command. + + + + Error from %1: %2 + Error from %1: %2 + + + + SqlFileExecutor + + + Could not execute SQL, because application has failed to start transaction: %1 + Could not execute SQL, because application has failed to start transaction: %1 + + + + Execution from file cancelled. Any queries executed so far have been rolled back. + Execution from file cancelled. Any queries executed so far have been rolled back. + + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Could not execute SQL, because application has failed to commit the transaction: %1 + Could not execute SQL, because application has failed to commit the transaction: %1 + + + + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. + + + + Finished executing %1 queries in %2 seconds. + Finished executing %1 queries in %2 seconds. + + + + Could not execute SQL due to error. + Could not execute SQL due to error. + + + + SqlHistoryModel + + + Database + sql history header + Database + + + + Execution date + sql history header + Execution date + + + + Time spent + sql history header + Time spent + + + + Rows affected + sql history header + Rows affected + + + + SQL + sql history header + SQL + + + + UpdateManager + + + Could not check for updates (%1). + Could not check for updates (%1). + + + diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_fr.qm b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_fr.qm deleted file mode 100644 index 552d0cf..0000000 Binary files a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_fr.qm and /dev/null differ diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_fr.ts b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_fr.ts deleted file mode 100644 index 15f6cf7..0000000 --- a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_fr.ts +++ /dev/null @@ -1,1319 +0,0 @@ - - - - - AbstractDb - - - - Cannot execute query on closed database. - Impossible d’exécuter la requête sur une base de données fermée. - - - - Error attaching database %1: %2 - Erreur base de données attachée %1 : %2 - - - - BugReporter - - Invalid login or password - Identifiant ou mot de passe incorrect - - - - ChainExecutor - - - The database for executing queries was not defined. - chain executor - La base de données pour exécuter des requêtes n’était pas définie. - - - - The database for executing queries was not open. - chain executor - La base de données pour exécuter des requêtes n’est pas ouverte. - - - - Could not disable foreign keys in the database. Details: %1 - chain executor - - - - - Could not start a database transaction. Details: %1 - chain executor - Impossible d’initialiser une transaction de la base de données : %1 - - - - Interrupted - chain executor - Interruption - - - - Could not commit a database transaction. Details: %1 - chain executor - Impossible d’enregistrer la transaction de la base de données : %1 - - - - CompletionHelper - - - New row reference - Nouvelle référence de ligne - - - - Old row reference - Anncienne référence de ligne - - - - New table name - Nouveau nom de table - - - - New index name - Nouveau nom d’index - - - - New view name - Nouveau nom de vue - - - - New trigger name - Nouveau nom de déclencheur - - - - Table or column alias - Table ou alias colonne - - - - transaction name - Nom de transaction - - - - New column name - Nouveau nom de colonne - - - - Column data type - Type de données de la colonne - - - - Constraint name - Nom de la contrainte - - - - Error message - Message d’erreur - - - - Collation name - Nom de la collation - - - - Any word - N’importe quel mot - - - - Default database - Base de données par défaut - - - - Temporary objects database - Objets temporaires de base de données - - - - ConfigImpl - - - Could not start database transaction for deleting SQL history, therefore it's not deleted. - - - - - Could not commit database transaction for deleting SQL history, therefore it's not deleted. - - - - - DbManagerImpl - - - Could not add database %1: %2 - Impossible d’ajouter une base de données %1 : %2 - - - - Database %1 could not be updated, because of an error: %2 - La base de données %1 ne peut ëtre mise à jour à cause de l’erreur : %2 - - - - - Database file doesn't exist. - Le fichier de la base de données n’existe pas. - - - - - - No supporting plugin loaded. - Aucun plugin supporté chargé. - - - - Database could not be initialized. - La base de données ne peut être initialisée. - - - - No suitable database driver plugin found. - Aucun pilote de base de données approprié trouvé. - - - - DbObjectOrganizer - - - - Error while creating table in target database: %1 - Erreur lors de la creation de la table de la base de données : %1 - - - - Could not parse table. - Impossible d’analyser la table. - - - - Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. - La base de données %1 ne peut être attachée à la base de données %2, aussi les données de la table %3 seront copiées avec SQLiteStudio comme interpréteur. Cette méthode est lente pour des tables importantes, SVP soyer patient. - - - - Error while copying data for table %1: %2 - Erreur lors de la copie des données vers la table %1 : %2 - - - - - - Error while copying data to table %1: %2 - Erreur lors de la copie des données de la table %1 : %2 - - - - Error while dropping source view %1: %2 -Tables, indexes, triggers and views copied to database %3 will remain. - Erreur à la création de la vue %1 : %2 -Tables, index, déclencheurs et vues copiés de la base de données %3 seront maintenus. - - - - Error while creating view in target database: %1 - Erreur lors de la création de la vue de la base de données : %1 - - - - Error while creating index in target database: %1 - Erreur lors de la création de l’index de la base de données : %1 - - - - Error while creating trigger in target database: %1 - Erreur lors de la création du déclencheur de la base de données : %1 - - - - - - Could not parse object '%1' in order to move or copy it. - - - - - DbVersionConverter - - - Target file exists, but could not be overwritten. - Le fichier cible existe, mais ne peut être remplacé. - - - - Could not find proper database plugin to create target database. - Impossible de trouver le plugin correct pour créer la base de données cible. - - - - Error while converting database: %1 - Erreur lors de la conversion de la base de données : %1 - - - - DdlHistoryModel - - - Database name - ddl history header - Nom de la base - - - - Database file - ddl history header - Fichier de la base - - - - Date of execution - ddl history header - Date d’exécution - - - - Changes - ddl history header - Modifications - - - - ExportManager - - - Export plugin %1 doesn't support exporing query results. - Plugin d’export %1 ne supporte pas l’exportation de la requête. - - - - Export plugin %1 doesn't support exporing tables. - Plugin d’export %1 ne supporte pas l’exportation de la table. - - - - Export plugin %1 doesn't support exporing databases. - Plugin d’export %1 ne supporte pas l’exportation de la base de données. - - - - Export format '%1' is not supported. Supported formats are: %2. - Format d’export « %1 » n’est pas supporté. Les formats supportés sont : %2. - - - - Export to the clipboard was successful. - Export vers le presse-papier avec succés. - - - - Export to the file '%1' was successful. - Export vers le fichier « %1 » avec succès. - - - - Export was successful. - Export avec succès. - - - - Could not export to file %1. File cannot be open for writting. - Impossible d’exporter vers le fichier %1. Le fichier ne peut être ouvert en écriture. - - - - ExportWorker - - - Error while exporting query results: %1 - Erreur lors de l’exportation des résultats de la requête : %1 - - - - Error while counting data column width to export from query results: %1 - Erreur lors de la totalisation des données de colonne issu de la requête : %1 - - - - - Could not parse %1 in order to export it. It will be excluded from the export output. - Impossible d’analyser %1 afin de l’exporter. Celle-ci sera excluse de l’exportation. - - - - Error while reading data to export from table %1: %2 - Erreur lors de la lecture des données à exporter de la table %1 : %2 - - - - Error while counting data to export from table %1: %2 - Erreur lors du comptage des données à exporter de la table %1 : %2 - - - - Error while counting data column width to export from table %1: %2 - Erreur lors de la totalisation des données à exporter de la table %1 : %2 - - - - FunctionManagerImpl - - - Invalid number of arguments to function '%1'. Expected %2, but got %3. - Nombre de paramètres invalide de la fonction « %1 ». Attendu %2, obtenu %3. - - - - No such function registered in SQLiteStudio: %1(%2) - Fonction inconnue avec SQLiteStudio : %1(%2) - - - - Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. - La fonction %1(%2) est référencée avec le langage %3, mais le plugin supportant ce langage n’est actuellement pas chargé. - - - - Invalid regular expression pattern: %1 - Expression invalide : %1 - - - - - Could not open file %1 for reading: %2 - Impossible d’ouvrir en lecture le ficher %1 : %2 - - - - Could not open file %1 for writting: %2 - Impossible d’ouvrir en écriture le ficher %1 : %2 - - - - Error while writting to file %1: %2 - Erreur lors de l’écriture du fichier %1 : %2 - - - - Unsupported scripting language: %1 - Langage script non supporté : %1 - - - - GenericExportPlugin - - - Could not initialize text codec for exporting. Using default codec: %1 - Impossible d’initialiser le paramètre texte por l’export. Utulisation du paramètre par défaut : %1 - - - - ImportManager - - - Imported data to the table '%1' successfully. - Importation des données de la table « %1 » réussie. - - - - ImportWorker - - - No columns provided by the import plugin. - Aucune colonne fournie par le plugin d’importation. - - - - Could not start transaction in order to import a data: %1 - Impossible d’initialiser la transaction d’import de données : %1 - - - - Could not commit transaction for imported data: %1 - Impossible d’enregistrer la transaction d’import de données : %1 - - - - Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. - La table « %1 » a moins de colonnes que de données à importer. Les colonnes supplèmentaires seront ignorées. - - - - Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. - La table « %1 » a plus de colonnes que de colonnes de données à importer. Certaines colonnes de la table seront vides. - - - - Could not create table to import to: %1 - Impossible de créer la table d’import : %1 - - - - - - Error while importing data: %1 - Erreur lors de l’import des données : %1 - - - - - Interrupted. - import process status update - Transaction interrompue. - - - - Could not import data row number %1. The row was ignored. Problem details: %2 - - - - - PluginManagerImpl - - - Cannot load plugin %1, because it's in conflict with plugin %2. - Chargement impossible du plugin %1 celui-ci est en conflit avec le plugin %2. - - - - Cannot load plugin %1, because its dependency was not loaded: %2. - Chargement impossible du plugin %1, les dépendances n’ont pa été chargées : %2. - - - - Cannot load plugin %1. Error details: %2 - Chargement impossible du plugin %1, Détails de l’erreur : %2 - - - - Cannot load plugin %1 (error while initializing plugin). - Chargement impossible du plugin %1 (erreur à initialisation du plugin). - - - - min: %1 - plugin dependency version - min : %1 - - - - max: %1 - plugin dependency version - max : %1 - - - - PopulateConstant - - - Constant - populate constant plugin name - Constante - - - - PopulateConstantConfig - - - Constant value: - Valeur constante : - - - - PopulateDictionary - - - Dictionary - dictionary populating plugin name - Dictionnaire - - - - PopulateDictionaryConfig - - - Dictionary file - Fichier du dictionnaire - - - - Pick dictionary file - Extrait du dictionnaire - - - - Word separator - Mot séparateur - - - - Whitespace - Espace - - - - Line break - Fin de ligne - - - - Method of using words - Méthode d’utilisation des mots - - - - Ordered - Trié - - - - Randomly - Aléatoire - - - - PopulateManager - - - Table '%1' populated successfully. - Table « %1 » remplie avec succès. - - - - PopulateRandom - - - Random number - Nombre aléatoire - - - - PopulateRandomConfig - - - Constant prefix - Préfixe constant - - - - No prefix - Aucun préfixe - - - - Minimum value - Valeur minimale - - - - Maximum value - Valeur maximale - - - - Constant suffix - Suffixe constant - - - - No suffix - Aucun suffixe - - - - PopulateRandomText - - - Random text - Text aléatoire - - - - PopulateRandomTextConfig - - - Use characters from common sets: - Utilisez des caractères de la table standard : - - - - Minimum length - Longueur minimun - - - - Letters from a to z. - Caractères de a à z. - - - - Alpha - Caractère alpha - - - - Numbers from 0 to 9. - Carctères numériques de 0 à 9. - - - - Numeric - Numérique - - - - A whitespace, a tab and a new line character. - Espace, tabulation et retour chariot. - - - - Whitespace - Espace - - - - Includes all above and all others. - Inclus ci-dessus et tous les autres. - - - - Binary - Binaire - - - - Use characters from my custom set: - Utilisez les catactères de ma table personalisée : - - - - Maximum length - Longueur maximum - - - - If you type some character multiple times, it's more likely to be used. - Si vous saisissez plusieurs fois le même caractère, la sécurité est faible. - - - - PopulateScript - - - Script - Script - - - - PopulateScriptConfig - - - Initialization code (optional) - Code d’initialisation (optionel) - - - - Per step code - Code par étape - - - - Language - Langage - - - - Help - Aide - - - - PopulateSequence - - - Sequence - Séquence - - - - PopulateSequenceConfig - - - Start value: - Valeur de départ : - - - - Step: - Incrément : - - - - PopulateWorker - - - Could not start transaction in order to perform table populating. Error details: %1 - Impossible d’initialiser la transaction pour remplir la table.Détails de l’erreur %1 - - - - Error while populating table: %1 - Erreur lors du remplissage de la table : %1 - - - - Could not commit transaction after table populating. Error details: %1 - Impossible d’enregistrer la transaction après le remplissage de la table. Erreur %1 - - - - QObject - - - - Could not open database: %1 - Impossible d’ouvrir la base de données : %1 - - - - - Result set expired or no row available. - Terminé ou aucune ligne valide. - - - - - Could not load extension %1: %2 - - - - - Could not close database: %1 - Impossible de clore la base de bonnées : %1 - - - - - - - - - - SQLite %1 does not support '%2' statement. - SQLite %1 ne supporte pas l’instruction « %2 ». - - - - SQLite %1 does not support '%2' statement, but the regular table can be created instead if you proceed. - SQLite %1 ne supporte pas l’instruction « %2 », mais la table normale peut être créée à la place si vous confirmez. - - - - Could not parse statement: %1 -Error details: %2 - Impossible d’analyser l’instruction : %1 -Détails erreur: %2 - - - - - - - SQLite %1 does not support the '%2' clause. Cannot convert '%3' statement with that clause. - SQLite %1 ne supporte pas la clause « %2 ». Impossible de convertir l’instruction « %3 » avec cette clause. - - - - SQLite %1 does not support the '%2' clause in the '%3' statement. - SQLite %1 ne supporte pas la clause « %2 » de l’instruction « %3 ». - - - - SQLite %1 does not support current date or time clauses in expressions. - SQLite %1 ne supporte pas la clause date ou l’heure actuelle dans l’expression. - - - - SQLite %1 does not support row value clauses in expressions. - - - - - - - SQLite %1 does not support '%2' clause in expressions. - SQLite %1 ne supporte pas la clause « %2 » dans l’expression. - - - - Could not attach database %1: %2 - Impossible d’attacher la base de données %1 : %2 - - - - - Incomplete query. - Requête imcomplète. - - - - - Parser stack overflow - Analyse dépassement pile - - - - - Syntax error - Erreur de syntaxe - - - - Could not open dictionary file %1 for reading. - Impossible d’ouvrir en lecture le fichier dictionnaire %1. - - - - Dictionary file must exist and be readable. - Le fichier dictionnaire doit exister et être en lecture. - - - - Maximum value cannot be less than minimum value. - La valeur maximum ne peut être inférieure à la valeur minimum. - - - - Maximum length cannot be less than minimum length. - Longueur maximum ne peut être inférieure à la longueur minimum. - - - - Custom character set cannot be empty. - La table des caractères personalisés ne peut être vide. - - - - Could not find plugin to support scripting language: %1 - Impossible de trouver le plugin supportant le script : %1 - - - - Error while executing populating initial code: %1 - Erreur à l’initialisation du code de remplissage : %1 - - - - Error while executing populating code: %1 - Erreur à l’exécution du code de remplissage : %1 - - - - Select implementation language. - Sélectionnez l’application langage. - - - - Implementation code cannot be empty. - L’application de code ne peut être vide. - - - - Could not resolve data source for column: %1 - Impossible de résoudre la source de données pour la colonnes : %1 - - - - Could not resolve table for column '%1'. - - - - - Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Tried to initialize the file at following localizations: %1. - Impossible d’initialiser le fichier de configuration. - Aucune modification et les requêtes seront perdues après redémarrage. - Essayez d’initialiser le fichier avec cette localisation : %1. - - - - General purpose - plugin category name - Objectif général - - - - Database support - plugin category name - Support base de données - - - - Code formatter - plugin category name - Format code - - - - Scripting languages - plugin category name - Langages script - - - - Exporting - plugin category name - Export - - - - Importing - plugin category name - Import - - - - Table populating - plugin category name - Peuplement de la table - - - - Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. - La table %1 référence la table %2, mais la clef étrangère ne pourra être mise à jour pour la nouvelle table à cause de problèmes lors de l’analyse DDL de la table %3. - - - - All columns indexed by the index %1 are gone. The index will not be recreated after table modification. - Toutes les colonnes indéxées par l’index %1 sont traitées. L’index ne sera pas recréé après la modification de la table. - - - - There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. - - - - - Cannot not update trigger %1 according to table %2 modification. - Impossible de mettre à jour le déclencheur %1 selon la modification de la table %2. - - - - - - There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. - - - - - All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. - Toutes les colonnes couvertes par le déclencheur %1 sont faites. Le déclencheur ne sera pas recréé après la modification de la table. - - - - Cannot not update view %1 according to table %2 modifications. -The view will remain as it is. - Impossible de mettre à jour les modifications de la vue %1 issue de la table %2 -La vue restera telque. - - - There is a problem with updating an %1 statement within %2 trigger. One of the SELECT substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. - Il y a un problème à la mise à jour l’instruction %1 avec le déclencheur %2. Une partie de l’instruction SELECT référençant la table %3 ne ppermet pas sa modification. La mise à jour manuelle du déclencheur est nécessaire. - - - - Could not parse DDL of the view to be created. Details: %1 - Impossible d’analyser le DDL de création de vue. Détails : %1 - - - - Parsed query is not CREATE VIEW. It's: %1 - L’expression CREATE VIEW est fausse. C’est : %1 - - - - SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. - SQLiteStudio ne peut résoudre les colonnes résultant de la nouvelle vue, d’où le déclencheur en cause ne pourra être indiqué pendant le process. - - - - Could not open file '%1' for reading: %2 - - - - - QueryExecutor - - - Execution interrupted. - Exécution interrompue. - - - - Database is not open. - La base de données n’est ouverte. - - - - Only one query can be executed simultaneously. - Une seule requête peut être exécutée à la fois. - - - - - An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 - Une erreur s’est produite à l’exécution de la requête count(*), la recherche des données est arrêtée. Erreur de la base de données : %1 - - - - SQLiteStudio was unable to extract metadata from the query. Results won't be editable. - SQLiteStudio ne peut extraire des métadonnées d’une requête. Les résultats ne peut être affichés. - - - - ScriptingQtDbProxy - - - No database available in current context, while called QtScript's %1 command. - Aucune base de données validedans le context actuel, plutôtutiliser la commande QtScript %1. - - - - Error from %1: %2 - Erreur de %1 : %2 - - - - SqlHistoryModel - - - Database - sql history header - Base de données - - - - Execution date - sql history header - Date d’exécution - - - - Time spent - sql history header - Temps passé - - - - Rows affected - sql history header - Lignes affectées - - - - SQL - sql history header - SQL - - - - UpdateManager - - An error occurred while checking for updates: %1. - Une erreur est apparue lors du contrôle pour la mise à jour : %1. - - - - Could not check available updates, because server responded with invalid message format. It is safe to ignore this warning. - Impossible de vérifier la mise à jour, car le serveur a répondu avec un message invalide. Il est possible d’ignorer le warning. - - - An error occurred while reading updates metadata: %1. - Erreur lors de la lecture de mise des méta données : %1. - - - Could not download updates, because server responded with invalid message format. You can try again later or download and install updates manually. See <a href="%1">User Manual</a> for details. - Impossibles de télécharger les mises à jour, car le serveur répond avec un format de message invalide. Vous pover essayer plus tard ou télécharger et mettre à jour manuellement. Voir <a href="%1">User Manual</a> for details. - - - Could not create temporary directory for downloading the update. Updating aborted. - Impossible de créer un répertoire temporaire pour télécharger la mise à jour. Mise à jour abandonnée. - - - There was no updates to download. Updating aborted. - Il n’y a aucune mise à jour à télécharger. Mise à jour abandonnée. - - - Downloading: %1 - Téléchargement : %1 - - - Could not determinate file name from update URL: %1. Updating aborted. - Impossible de déterminer le fichier de mise à jour URL : %1.Mise à jour abandonnée. - - - Failed to open file '%1' for writting: %2. Updating aborted. - Erreur à l’ouverture du fichier « %1 » pour l’écriture : %2. Mise à jour abandonnée. - - - Installing updates. - Installation des mises jour. - - - Could not copy current application directory into %1 directory. - Impossible de copier le répertoire de l’application courante dans %1. - - - Could not create directory %1. - Impossible de créer le répertoire : %1. - - - Could not rename directory %1 to %2. -Details: %3 - Impossible de renommer le répertoire %1 en %2. Détails : %3 - - - Cannot not rename directory %1 to %2. -Details: %3 - Impossible de renommer le répertoire %1 en %2.Détails : %3 - - - Could not move directory %1 to %2 and also failed to restore original directory, so the original SQLiteStudio directory is now located at: %3 - Impossible de déplacer le répertoire %1 vers %2 d’où l’impossibilité de restaurer le répertoire original. SQLiteStudio est maintenant localisé : %3 - - - Could not rename directory %1 to %2. Rolled back to the original SQLiteStudio version. - Impossible de renommer le répertoire %1 en %2, retour vers la version originale SQLiteStudio. - - - Could not unpack component %1 into %2 directory. - Impossible d’extraire le composant %1 dans le répertoire %2. - - - Could not find permissions elevator application to run update as a root. Looked for: %1 - Impossible d’élever les autorisations pour lancer la mise à jour en tantque root. Bloqué : %1 - - - Could not execute final updating steps as root: %1 - Impossible de finaliser la mis à jour en tant que root : %1 - - - Could not execute final updating steps as admin: %1 - Impossible de finaliser la mis à jour en tant que admin : %1 - - - Cannot create temporary directory for updater. - Impossible de créer un répertoire temporaire pour la mise à jour. - - - Cannot create updater script file. - impossible de créer le fichier du scripte de mise à jour. - - - Updating canceled. - Mise à jour suspendue. - - - Could not execute final updating steps as administrator. - Impossible de finaliser la mis à jour en tant qu’administrateur. - - - Could not execute final updating steps as administrator. Updater startup timed out. - Impossible de finaliser la mis à jour en tant qu’administrateur. Délai d’attente de lancement dépassé. - - - Could not execute final updating steps as administrator. Updater operation timed out. - Impossible de finaliser la mis à jour en tant qu’administrateur. Délai d’attente d’opération dépassé. - - - Could not clean up temporary directory %1. You can delete it manually at any time. - Impossible de nettoyer le répertoire temporaire %1. Vous pouver le supprimer manuellement plutard. - - - Could not run new version for continuing update. - Impossible de lancer la nouvelle version afin de continuer la mise à jour. - - - Package not in tar.gz format, cannot install: %1 - Installation impossible un paquet n’est pas au format tar.zg : %1 - - - Package %1 cannot be installed, because cannot move it to directory: %2 - Le paquet %1 ne peut être installé, celui-ci ne pouvant déplacé dans le répertoire : %2 - - - Package %1 cannot be installed, because cannot unpack it: %2 - Le paquet %1 ne peut être installé, celui-ci ne pouvant décompressé : %2 - - - Package not in zip format, cannot install: %1 - Installation impossible, un paquet est manquant : %1 - - - Package %1 cannot be installed, because cannot unzip it to directory %2: %3 - Le paquet %1 ne peut être installé, celui-ci ne pouvant décompressé dans le répertoire %2 : %3 - - - Package %1 cannot be installed, because cannot unzip it to directory: %2 - Le paquet %1 ne peut être installé, celui-ci ne pouvant décompressé dans le répertoire : %2 - - - Could not rename directory %1 to %2. - Impossible de renommer le répertoire %1 en %2. - - - Could not delete directory %1. - Impossible de supprimer le répertoire %1. - - - Error executing update command: %1 -Error message: %2 - Erreur d’exécution de la commande de mise à jour : %1 -Message d’erreur : %2 - - - An error occurred while downloading updates: %1. Updating aborted. - Erreur lors du téléchargement de la mise à jour : %1. Mise à jour abandonnée. - - - - Updates installer executable is missing. - - - - - - Unable to check for updates (%1) - - - - - details are unknown - - - - - Unable to run updater application (%1). Please report this. - - - - diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_fr_FR.ts b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_fr_FR.ts new file mode 100644 index 0000000..da17636 --- /dev/null +++ b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_fr_FR.ts @@ -0,0 +1,1101 @@ + + + + + AbstractDb + + + + Cannot execute query on closed database. + Impossible d’exécuter la requête sur une base de données fermée. + + + + Error attaching database %1: %2 + Erreur base de données attachée %1 : %2 + + + + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + Impossible de faire le point de vérification complet des journaux de transactions sur la base de données '%1'. Erreur retournée par le moteur SQLite : %2 + + + + ChainExecutor + + + The database for executing queries was not defined. + chain executor + La base de données pour exécuter des requêtes n’était pas définie. + + + + The database for executing queries was not open. + chain executor + La base de données pour exécuter des requêtes n’est pas ouverte. + + + + Could not disable foreign keys in the database. Details: %1 + chain executor + Impossible de désactiver les clés étrangères dans la base de données. Détails : %1 + + + + Could not start a database transaction. Details: %1 + chain executor + Impossible d’initialiser une transaction de la base de données : %1 + + + + Interrupted + chain executor + Interruption + + + + Could not commit a database transaction. Details: %1 + chain executor + Impossible d’enregistrer la transaction de la base de données : %1 + + + + CompletionHelper + + + New row reference + Nouvelle référence de ligne + + + + Old row reference + Anncienne référence de ligne + + + + New table name + Nouveau nom de tableau + + + + New index name + Nouveau nom d’index + + + + New view name + Nouveau nom de vue + + + + New trigger name + Nouveau nom de déclencheur + + + + Table or column alias + Alias de tableau ou de colonne + + + + transaction name + Nom de transaction + + + + New column name + Nouveau nom de colonne + + + + Column data type + Type de données de la colonne + + + + Constraint name + Nom de la contrainte + + + + Error message + Message d’erreur + + + + Any word + N’importe quel mot + + + + Default database + Base de données par défaut + + + + Temporary objects database + Objets temporaires de base de données + + + + ConfigImpl + + + Could not start database transaction for deleting SQL history, therefore it's not deleted. + Impossible de démarrer la transaction de la base de données pour la suppression de l'historique SQL, donc il n'a pas été supprimé. + + + + Could not commit database transaction for deleting SQL history, therefore it's not deleted. + Impossible de valider la transaction de la base de données pour la suppression de l'historique SQL, donc il n'a pas été supprimé. + + + + DbManagerImpl + + + Could not add database %1: %2 + Impossible d’ajouter une base de données %1 : %2 + + + + Database %1 could not be updated, because of an error: %2 + La base de données %1 ne peut ëtre mise à jour à cause de l’erreur : %2 + + + + + Database file doesn't exist. + Le fichier de la base de données n'existe pas. + + + + + + No supporting plugin loaded. + Aucun plugin supporté chargé. + + + + Database could not be initialized. + La base de données ne peut être initialisée. + + + + No suitable database driver plugin found. + Aucun pilote de base de données approprié trouvé. + + + + DbObjectOrganizer + + + + Error while creating table in target database: %1 + Erreur lors de la création du tableau dans la base de données cible : %1 + + + + Could not parse table. + Impossible d'analyser le tableau. + + + + Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. + La base de données %1 n'a pas pu être attachée à la base de données %2, donc les données de la table %3 seront copiées avec SQLiteStudio en tant que médiateur. Cette méthode peut être lente pour les grands tableaux, donc soyez patient s'il vous plaît. + + + + Error while copying data for table %1: %2 + Erreur lors de la copie des données pour le tableau %1: %2 + + + + + + Error while copying data to table %1: %2 + Erreur lors de la copie des données vers le tableau %1: %2 + + + + Error while dropping source view %1: %2 +Tables, indexes, triggers and views copied to database %3 will remain. + Erreur lors de la suppression de la vue source %1: %2 +Tableaux, indexes, déclencheurs et vues copiés dans la base de données %3 resteront. + + + + Error while creating view in target database: %1 + Erreur lors de la création de la vue de la base de données : %1 + + + + Error while creating index in target database: %1 + Erreur lors de la création de l’index de la base de données : %1 + + + + Error while creating trigger in target database: %1 + Erreur lors de la création du déclencheur de la base de données : %1 + + + + + + Could not parse object '%1' in order to move or copy it. + Impossible d'analyser l'objet '%1' pour le déplacer ou le copier. + + + + DdlHistoryModel + + + Database name + ddl history header + Nom de la base + + + + Database file + ddl history header + Fichier de la base + + + + Date of execution + ddl history header + Date d’exécution + + + + Changes + ddl history header + Modifications + + + + ExportManager + + + Export plugin %1 doesn't support exporing query results. + Plugin d’export %1 ne supporte pas l’exportation de la requête. + + + + Export plugin %1 doesn't support exporing tables. + Exporter le plugin %1 ne prend pas en charge l'exportation des tableaux. + + + + Export plugin %1 doesn't support exporing databases. + Plugin d’export %1 ne supporte pas l’exportation de la base de données. + + + + Export format '%1' is not supported. Supported formats are: %2. + Format d’export « %1 » n’est pas supporté. Les formats supportés sont : %2. + + + + Export to the clipboard was successful. + Export vers le presse-papier avec succés. + + + + Export to the file '%1' was successful. + Export vers le fichier « %1 » avec succès. + + + + Export was successful. + Export avec succès. + + + + Could not export to file %1. File cannot be open for writting. + Impossible d’exporter vers le fichier %1. Le fichier ne peut être ouvert en écriture. + + + + ExportWorker + + + Error while exporting query results: %1 + Erreur lors de l’exportation des résultats de la requête : %1 + + + + Error while counting data column width to export from query results: %1 + Erreur lors de la totalisation des données de colonne issu de la requête : %1 + + + + + Could not parse %1 in order to export it. It will be excluded from the export output. + Impossible d’analyser %1 afin de l’exporter. Celle-ci sera excluse de l’exportation. + + + + Error while reading data to export from table %1: %2 + Erreur lors de la lecture des données à exporter depuis le tableau %1 : %2 + + + + Error while counting data to export from table %1: %2 + Erreur lors du comptage des données à exporter à partir du tableau %1: %2 + + + + Error while counting data column width to export from table %1: %2 + Erreur lors du comptage de la largeur de la colonne de données à exporter à partir du tableau %1: %2 + + + + FunctionManagerImpl + + + Invalid number of arguments to function '%1'. Expected %2, but got %3. + Nombre de paramètres invalide de la fonction « %1 ». Attendu %2, obtenu %3. + + + + No such function registered in SQLiteStudio: %1(%2) + Fonction inconnue avec SQLiteStudio : %1(%2) + + + + Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. + La fonction %1(%2) est référencée avec le langage %3, mais le plugin supportant ce langage n’est actuellement pas chargé. + + + + Invalid regular expression pattern: %1 + Expression invalide : %1 + + + + + Could not open file %1 for reading: %2 + Impossible d’ouvrir en lecture le ficher %1 : %2 + + + + Could not open file %1 for writting: %2 + Impossible d’ouvrir en écriture le ficher %1 : %2 + + + + Error while writting to file %1: %2 + Erreur lors de l’écriture du fichier %1 : %2 + + + + Unsupported scripting language: %1 + Langage script non supporté : %1 + + + + GenericExportPlugin + + + Could not initialize text codec for exporting. Using default codec: %1 + Impossible d’initialiser le paramètre texte por l’export. Utulisation du paramètre par défaut : %1 + + + + ImportManager + + + Imported data to the table '%1' successfully. Number of imported rows: %2 + Données importées dans le tableau '%1' avec succès. Nombre de lignes importées : %2 + + + + ImportWorker + + + No columns provided by the import plugin. + Aucune colonne fournie par le plugin d’importation. + + + + Could not start transaction in order to import a data: %1 + Impossible d’initialiser la transaction d’import de données : %1 + + + + Could not commit transaction for imported data: %1 + Impossible d’enregistrer la transaction d’import de données : %1 + + + + Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. + Le tableau '%1' a moins de colonnes qu'il y en a dans les données à importer. Les colonnes de données excessives seront ignorées. + + + + Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. + Le tableau '%1' a plus de colonnes qu'il y en a dans les données à importer. Certaines colonnes de la table seront laissées vides. + + + + Could not create table to import to: %1 + Impossible de créer un tableau où importer : %1 + + + + + + Error while importing data: %1 + Erreur lors de l’import des données : %1 + + + + + Interrupted. + import process status update + Transaction interrompue. + + + + Could not import data row number %1. The row was ignored. Problem details: %2 + Impossible d'importer les données de la ligne numéro %1. La ligne a été ignorée. Détails du problème : %2 + + + + PluginManagerImpl + + + Cannot load plugin %1, because it's in conflict with plugin %2. + Chargement impossible du plugin %1 celui-ci est en conflit avec le plugin %2. + + + + Cannot load plugin %1, because its dependency was not loaded: %2. + Chargement impossible du plugin %1, les dépendances n’ont pa été chargées : %2. + + + + Cannot load plugin %1. Error details: %2 + Chargement impossible du plugin %1, Détails de l’erreur : %2 + + + + Cannot load plugin %1 (error while initializing plugin). + Chargement impossible du plugin %1 (erreur à initialisation du plugin). + + + + min: %1 + plugin dependency version + min : %1 + + + + max: %1 + plugin dependency version + max : %1 + + + + PopulateConstant + + + Constant + populate constant plugin name + Constante + + + + PopulateConstantConfig + + + Constant value: + Valeur constante : + + + + PopulateDictionary + + + Dictionary + dictionary populating plugin name + Dictionnaire + + + + PopulateDictionaryConfig + + + Dictionary file + Fichier du dictionnaire + + + + Pick dictionary file + Extrait du dictionnaire + + + + Word separator + Mot séparateur + + + + Whitespace + Espace + + + + Line break + Fin de ligne + + + + Method of using words + Méthode d’utilisation des mots + + + + Ordered + Trié + + + + Randomly + Aléatoire + + + + PopulateManager + + + Table '%1' populated successfully. + Table « %1 » remplie avec succès. + + + + PopulateRandom + + + Random number + Nombre aléatoire + + + + PopulateRandomConfig + + + Constant prefix + Préfixe constant + + + + No prefix + Aucun préfixe + + + + Minimum value + Valeur minimale + + + + Maximum value + Valeur maximale + + + + Constant suffix + Suffixe constant + + + + No suffix + Aucun suffixe + + + + PopulateRandomText + + + Random text + Text aléatoire + + + + PopulateRandomTextConfig + + + Use characters from common sets: + Utilisez des caractères de la table standard : + + + + Minimum length + Longueur minimun + + + + Letters from a to z. + Caractères de a à z. + + + + Alpha + Caractère alpha + + + + Numbers from 0 to 9. + Carctères numériques de 0 à 9. + + + + Numeric + Numérique + + + + A whitespace, a tab and a new line character. + Espace, tabulation et retour chariot. + + + + Whitespace + Espace + + + + Includes all above and all others. + Inclus ci-dessus et tous les autres. + + + + Binary + Binaire + + + + Use characters from my custom set: + Utilisez les catactères de ma table personalisée : + + + + Maximum length + Longueur maximum + + + + If you type some character multiple times, it's more likely to be used. + Si vous saisissez plusieurs fois le même caractère, la sécurité est faible. + + + + PopulateScript + + + Script + Script + + + + PopulateScriptConfig + + + Initialization code (optional) + Code d’initialisation (optionel) + + + + Per step code + Code par étape + + + + Language + Langage + + + + Help + Aide + + + + PopulateSequence + + + Sequence + Séquence + + + + PopulateSequenceConfig + + + Start value: + Valeur de départ : + + + + Step: + Incrément : + + + + PopulateWorker + + + Could not start transaction in order to perform table populating. Error details: %1 + Impossible d’initialiser la transaction pour remplir la table.Détails de l’erreur %1 + + + + Error while populating table: %1 + Erreur lors du remplissage de la table : %1 + + + + Could not commit transaction after table populating. Error details: %1 + Impossible d’enregistrer la transaction après le remplissage de la table. Erreur %1 + + + + QObject + + + Could not open file '%1' for reading: %2 + Impossible d'ouvrir le fichier '%1' pour la lecture : %2 + + + + Could not open database: %1 + Impossible d’ouvrir la base de données : %1 + + + + Result set expired or no row available. + Terminé ou aucune ligne valide. + + + + + Could not load extension %1: %2 + Impossible de charger l'extension %1 : %2 + + + + Could not run WAL checkpoint: %1 + Impossible d’exécuter le point de contrôle WAL : %1 + + + + Could not close database: %1 + Impossible de clore la base de bonnées : %1 + + + + Could not attach database %1: %2 + Impossible d’attacher la base de données %1 : %2 + + + + + Incomplete query. + Requête imcomplète. + + + + Parser stack overflow + Analyse dépassement pile + + + + Syntax error + Erreur de syntaxe + + + + Could not open dictionary file %1 for reading. + Impossible d’ouvrir en lecture le fichier dictionnaire %1. + + + + Dictionary file must exist and be readable. + Le fichier dictionnaire doit exister et être en lecture. + + + + Maximum value cannot be less than minimum value. + La valeur maximum ne peut être inférieure à la valeur minimum. + + + + Maximum length cannot be less than minimum length. + Longueur maximum ne peut être inférieure à la longueur minimum. + + + + Custom character set cannot be empty. + La table des caractères personalisés ne peut être vide. + + + + Could not find plugin to support scripting language: %1 + Impossible de trouver le plugin supportant le script : %1 + + + + Error while executing populating initial code: %1 + Erreur à l’initialisation du code de remplissage : %1 + + + + Error while executing populating code: %1 + Erreur à l’exécution du code de remplissage : %1 + + + + Select implementation language. + Sélectionnez l’application langage. + + + + Implementation code cannot be empty. + L’application de code ne peut être vide. + + + + Could not resolve data source for column: %1 + Impossible de résoudre la source de données pour la colonnes : %1 + + + + Could not resolve table for column '%1'. + Impossible de résoudre le tableau pour la colonne '%1'. + + + + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Unable to create a file at following locations: %1. + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Unable to create a file at following locations: %1. + + + + General purpose + plugin category name + Objectif général + + + + Database support + plugin category name + Support base de données + + + + Code formatter + plugin category name + Format code + + + + Scripting languages + plugin category name + Langages script + + + + Exporting + plugin category name + Export + + + + Importing + plugin category name + Import + + + + Table populating + plugin category name + Peuplement de la table + + + + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. + Le tableau %1 fait référence au tableau %2, mais la définition de la clé étrangère ne sera pas mise à jour pour une nouvelle définition d'un tableau en raison de problèmes lors de l'analyse de DDL du tableau %3. + + + + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. + Toutes les colonnes indexées par l'index %1 ont disparu. L'index ne sera pas recréé après modification du tableau. + + + + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. + Il y a un problème avec le déclencheur de traitement %1. Il ne sera peut-être pas complètement mis à jour plus tard et nécessitera votre attention. + + + + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. + Toutes les colonnes couvertes par le déclencheur %1 ont disparu. Le déclencheur ne sera pas recréé après la modification du tableau. + + + + Cannot not update trigger %1 according to table %2 modification. + Impossible de mettre à jour le déclencheur %1 selon la modification du tableau %2. + + + + Cannot not update view %1 according to table %2 modifications. +The view will remain as it is. + Impossible de mettre à jour la vue %1 selon les modifications de la table %2. +La vue restera telle quelle. + + + + + + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. + + + + Could not parse DDL of the view to be created. Details: %1 + Impossible d’analyser le DDL de création de vue. Détails : %1 + + + + Parsed query is not CREATE VIEW. It's: %1 + L’expression CREATE VIEW est fausse. C’est : %1 + + + + SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. + SQLiteStudio ne peut résoudre les colonnes résultant de la nouvelle vue, d’où le déclencheur en cause ne pourra être indiqué pendant le process. + + + + QueryExecutor + + + Execution interrupted. + Exécution interrompue. + + + + Database is not open. + La base de données n’est ouverte. + + + + Only one query can be executed simultaneously. + Une seule requête peut être exécutée à la fois. + + + + + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 + Une erreur s’est produite à l’exécution de la requête count(*), la recherche des données est arrêtée. Erreur de la base de données : %1 + + + + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. + SQLiteStudio ne peut extraire des métadonnées d’une requête. Les résultats ne peut être affichés. + + + + ScriptingQtDbProxy + + + No database available in current context, while called JavaScript's %1 command. + Aucune base de données n'est disponible dans le contexte actuel, durant l'utilisation de la commande JavaScript %1. + + + + Error from %1: %2 + Erreur de %1 : %2 + + + + SqlFileExecutor + + + Could not execute SQL, because application has failed to start transaction: %1 + Impossible d'exécuter SQL, car l'application n'a pas pu démarrer la transaction : %1 + + + + Execution from file cancelled. Any queries executed so far have been rolled back. + Exécution depuis le fichier annulé. Toutes les requêtes exécutées jusqu'à présent ont été restaurées. + + + + Could not open file '%1' for reading: %2 + Impossible d'ouvrir le fichier '%1' pour la lecture : %2 + + + + Could not execute SQL, because application has failed to commit the transaction: %1 + Impossible d'exécuter SQL, car l'application n'a pas pu valider la transaction : %1 + + + + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. + Fin de l'exécution de %1 requêtes en %2 secondes. %3 n'ont pas été exécutées en raison d'erreurs. + + + + Finished executing %1 queries in %2 seconds. + Fin de l'exécution de %1 requêtes en %2 secondes. + + + + Could not execute SQL due to error. + Impossible d'exécuter SQL en raison d'une erreur. + + + + SqlHistoryModel + + + Database + sql history header + Base de données + + + + Execution date + sql history header + Date d’exécution + + + + Time spent + sql history header + Temps passé + + + + Rows affected + sql history header + Lignes affectées + + + + SQL + sql history header + SQL + + + + UpdateManager + + + Could not check for updates (%1). + Impossible de vérifier les mises à jour (%1). + + + diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_he_IL.ts b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_he_IL.ts new file mode 100644 index 0000000..5538f60 --- /dev/null +++ b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_he_IL.ts @@ -0,0 +1,1101 @@ + + + + + AbstractDb + + + + Cannot execute query on closed database. + Cannot execute query on closed database. + + + + Error attaching database %1: %2 + Error attaching database %1: %2 + + + + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + + + + ChainExecutor + + + The database for executing queries was not defined. + chain executor + The database for executing queries was not defined. + + + + The database for executing queries was not open. + chain executor + The database for executing queries was not open. + + + + Could not disable foreign keys in the database. Details: %1 + chain executor + Could not disable foreign keys in the database. Details: %1 + + + + Could not start a database transaction. Details: %1 + chain executor + לא ניתן לאתחל תנועת מסד נתונים. פרטים:%1 + + + + Interrupted + chain executor + פסיקה + + + + Could not commit a database transaction. Details: %1 + chain executor + לא ניתן היה לקבע תנועת מסד נתונים. פרטים:%1 + + + + CompletionHelper + + + New row reference + New row reference + + + + Old row reference + Old row reference + + + + New table name + שם טבלה חדשה + + + + New index name + שם מפתח חדש + + + + New view name + שם מצג חדש + + + + New trigger name + שם מזנק חדש + + + + Table or column alias + כינוי טבלה או עמודות + + + + transaction name + שם תנועה + + + + New column name + שם עמודה חדשה + + + + Column data type + סוג עמודת מידע + + + + Constraint name + שם אילוץ + + + + Error message + הודעת שגיאה + + + + Any word + מילה כלשהי + + + + Default database + מסד נתונים ברירת מחדל + + + + Temporary objects database + מסד נתוני עצמים זמניים + + + + ConfigImpl + + + Could not start database transaction for deleting SQL history, therefore it's not deleted. + לא ניתן לאתחל תנועת מסד נתונים למחיקת היסטוריית SQL, לכן היא לא נמחקה. + + + + Could not commit database transaction for deleting SQL history, therefore it's not deleted. + לא ניתן היה לקבע תנועת מסד נתונים למחיקת היסטוריית SQL, לכן היא לא נמחקה. + + + + DbManagerImpl + + + Could not add database %1: %2 + לא ניתן להוסיף מסד נתונים%1: %2 + + + + Database %1 could not be updated, because of an error: %2 + Database %1 could not be updated, because of an error: %2 + + + + + Database file doesn't exist. + Database file doesn't exist. + + + + + + No supporting plugin loaded. + No supporting plugin loaded. + + + + Database could not be initialized. + לא ניתן היה לאתחל את מסד הנתונים.‏. + + + + No suitable database driver plugin found. + No suitable database driver plugin found. + + + + DbObjectOrganizer + + + + Error while creating table in target database: %1 + Error while creating table in target database: %1 + + + + Could not parse table. + לא ניתן לפרוס טבלה. + + + + Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. + Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. + + + + Error while copying data for table %1: %2 + Error while copying data for table %1: %2 + + + + + + Error while copying data to table %1: %2 + Error while copying data to table %1: %2 + + + + Error while dropping source view %1: %2 +Tables, indexes, triggers and views copied to database %3 will remain. + Error while dropping source view %1: %2 +Tables, indexes, triggers and views copied to database %3 will remain. + + + + Error while creating view in target database: %1 + Error while creating view in target database: %1 + + + + Error while creating index in target database: %1 + Error while creating index in target database: %1 + + + + Error while creating trigger in target database: %1 + Error while creating trigger in target database: %1 + + + + + + Could not parse object '%1' in order to move or copy it. + Could not parse object '%1' in order to move or copy it. + + + + DdlHistoryModel + + + Database name + ddl history header + שם מסד הנתונים + + + + Database file + ddl history header + קובץ מסד נתונים + + + + Date of execution + ddl history header + תאריך ביצוע + + + + Changes + ddl history header + שינויים + + + + ExportManager + + + Export plugin %1 doesn't support exporing query results. + Export plugin %1 doesn't support exporing query results. + + + + Export plugin %1 doesn't support exporing tables. + Export plugin %1 doesn't support exporing tables. + + + + Export plugin %1 doesn't support exporing databases. + Export plugin %1 doesn't support exporing databases. + + + + Export format '%1' is not supported. Supported formats are: %2. + Export format '%1' is not supported. Supported formats are: %2. + + + + Export to the clipboard was successful. + Export to the clipboard was successful. + + + + Export to the file '%1' was successful. + Export to the file '%1' was successful. + + + + Export was successful. + הייצוא צלח. + + + + Could not export to file %1. File cannot be open for writting. + Could not export to file %1. File cannot be open for writting. + + + + ExportWorker + + + Error while exporting query results: %1 + שגיאה בעת יצוא תוצאות שאילתה: %1 + + + + Error while counting data column width to export from query results: %1 + Error while counting data column width to export from query results: %1 + + + + + Could not parse %1 in order to export it. It will be excluded from the export output. + Could not parse %1 in order to export it. It will be excluded from the export output. + + + + Error while reading data to export from table %1: %2 + Error while reading data to export from table %1: %2 + + + + Error while counting data to export from table %1: %2 + Error while counting data to export from table %1: %2 + + + + Error while counting data column width to export from table %1: %2 + Error while counting data column width to export from table %1: %2 + + + + FunctionManagerImpl + + + Invalid number of arguments to function '%1'. Expected %2, but got %3. + Invalid number of arguments to function '%1'. Expected %2, but got %3. + + + + No such function registered in SQLiteStudio: %1(%2) + No such function registered in SQLiteStudio: %1(%2) + + + + Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. + Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. + + + + Invalid regular expression pattern: %1 + תבנית ביטוי־רגיל לא תקינה: %1 + + + + + Could not open file %1 for reading: %2 + לא ניתן לפתוח קובץ%1 לקריאה: %2 + + + + Could not open file %1 for writting: %2 + לא ניתן לפתוח קובץ%1 לכתיבה: %2 + + + + Error while writting to file %1: %2 + שגיאה בעת כתיבה לקובץ %1: %2 + + + + Unsupported scripting language: %1 + Unsupported scripting language: %1 + + + + GenericExportPlugin + + + Could not initialize text codec for exporting. Using default codec: %1 + Could not initialize text codec for exporting. Using default codec: %1 + + + + ImportManager + + + Imported data to the table '%1' successfully. Number of imported rows: %2 + Imported data to the table '%1' successfully. Number of imported rows: %2 + + + + ImportWorker + + + No columns provided by the import plugin. + No columns provided by the import plugin. + + + + Could not start transaction in order to import a data: %1 + Could not start transaction in order to import a data: %1 + + + + Could not commit transaction for imported data: %1 + לא ניתן לקבע תנועת לנתונים המיובאים: %1 + + + + Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. + Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. + + + + Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. + Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. + + + + Could not create table to import to: %1 + Could not create table to import to: %1 + + + + + + Error while importing data: %1 + שגיאה בעת ייבוא נתונים: %1 + + + + + Interrupted. + import process status update + פסיקה. + + + + Could not import data row number %1. The row was ignored. Problem details: %2 + Could not import data row number %1. The row was ignored. Problem details: %2 + + + + PluginManagerImpl + + + Cannot load plugin %1, because it's in conflict with plugin %2. + Cannot load plugin %1, because it's in conflict with plugin %2. + + + + Cannot load plugin %1, because its dependency was not loaded: %2. + Cannot load plugin %1, because its dependency was not loaded: %2. + + + + Cannot load plugin %1. Error details: %2 + Cannot load plugin %1. Error details: %2 + + + + Cannot load plugin %1 (error while initializing plugin). + Cannot load plugin %1 (error while initializing plugin). + + + + min: %1 + plugin dependency version + מזערי: %1 + + + + max: %1 + plugin dependency version + מירבי: %1 + + + + PopulateConstant + + + Constant + populate constant plugin name + קבוע + + + + PopulateConstantConfig + + + Constant value: + ערך קבוע: + + + + PopulateDictionary + + + Dictionary + dictionary populating plugin name + מילון + + + + PopulateDictionaryConfig + + + Dictionary file + קובץ מילון + + + + Pick dictionary file + בחירת קובץ מילון + + + + Word separator + מפריד מילים + + + + Whitespace + מרווח לבן + + + + Line break + מעבר שורה + + + + Method of using words + שיטת שימוש במילים + + + + Ordered + ממוין + + + + Randomly + אקראי + + + + PopulateManager + + + Table '%1' populated successfully. + Table '%1' populated successfully. + + + + PopulateRandom + + + Random number + מספר אקרעי + + + + PopulateRandomConfig + + + Constant prefix + תחילית קבועה + + + + No prefix + אין תחלית + + + + Minimum value + ערך מזערי + + + + Maximum value + ערך מרבי + + + + Constant suffix + סופית קבועה + + + + No suffix + ללא סופית + + + + PopulateRandomText + + + Random text + מלל אקראי + + + + PopulateRandomTextConfig + + + Use characters from common sets: + Use characters from common sets: + + + + Minimum length + אורך מזערי + + + + Letters from a to z. + Letters from a to z. + + + + Alpha + אלפא + + + + Numbers from 0 to 9. + ספרתי בין 0 ל 9. + + + + Numeric + ספרתי + + + + A whitespace, a tab and a new line character. + A whitespace, a tab and a new line character. + + + + Whitespace + מרווח לבן + + + + Includes all above and all others. + Includes all above and all others. + + + + Binary + בינארי + + + + Use characters from my custom set: + שימוש בתווים מהסדרה המותאמת שלי: + + + + Maximum length + אורך מירבי + + + + If you type some character multiple times, it's more likely to be used. + If you type some character multiple times, it's more likely to be used. + + + + PopulateScript + + + Script + תסריט + + + + PopulateScriptConfig + + + Initialization code (optional) + Initialization code (optional) + + + + Per step code + Per step code + + + + Language + שפה + + + + Help + עזרה + + + + PopulateSequence + + + Sequence + רצף + + + + PopulateSequenceConfig + + + Start value: + הערך ההתחלתי: + + + + Step: + שלב: + + + + PopulateWorker + + + Could not start transaction in order to perform table populating. Error details: %1 + Could not start transaction in order to perform table populating. Error details: %1 + + + + Error while populating table: %1 + Error while populating table: %1 + + + + Could not commit transaction after table populating. Error details: %1 + לא ניתן לקבע תנועות לאחר אכלוס טבלה. פרטי שגיאה: %1 + + + + QObject + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Could not open database: %1 + Could not open database: %1 + + + + Result set expired or no row available. + Result set expired or no row available. + + + + + Could not load extension %1: %2 + Could not load extension %1: %2 + + + + Could not run WAL checkpoint: %1 + Could not run WAL checkpoint: %1 + + + + Could not close database: %1 + Could not close database: %1 + + + + Could not attach database %1: %2 + Could not attach database %1: %2 + + + + + Incomplete query. + שאילתה חלקית. + + + + Parser stack overflow + Parser stack overflow + + + + Syntax error + שגיאת תחביר + + + + Could not open dictionary file %1 for reading. + Could not open dictionary file %1 for reading. + + + + Dictionary file must exist and be readable. + Dictionary file must exist and be readable. + + + + Maximum value cannot be less than minimum value. + Maximum value cannot be less than minimum value. + + + + Maximum length cannot be less than minimum length. + Maximum length cannot be less than minimum length. + + + + Custom character set cannot be empty. + Custom character set cannot be empty. + + + + Could not find plugin to support scripting language: %1 + Could not find plugin to support scripting language: %1 + + + + Error while executing populating initial code: %1 + Error while executing populating initial code: %1 + + + + Error while executing populating code: %1 + Error while executing populating code: %1 + + + + Select implementation language. + בחירת שפת יישום. + + + + Implementation code cannot be empty. + Implementation code cannot be empty. + + + + Could not resolve data source for column: %1 + Could not resolve data source for column: %1 + + + + Could not resolve table for column '%1'. + Could not resolve table for column '%1'. + + + + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Unable to create a file at following locations: %1. + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Unable to create a file at following locations: %1. + + + + General purpose + plugin category name + מטרה כללית + + + + Database support + plugin category name + תמיכת מסד נתונים + + + + Code formatter + plugin category name + מתבנת קוד + + + + Scripting languages + plugin category name + שפת תסריט + + + + Exporting + plugin category name + מייצא + + + + Importing + plugin category name + מייבא + + + + Table populating + plugin category name + אכלוס טבלה + + + + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. + + + + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. + + + + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. + + + + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. + + + + Cannot not update trigger %1 according to table %2 modification. + Cannot not update trigger %1 according to table %2 modification. + + + + Cannot not update view %1 according to table %2 modifications. +The view will remain as it is. + Cannot not update view %1 according to table %2 modifications. +The view will remain as it is. + + + + + + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. + + + + Could not parse DDL of the view to be created. Details: %1 + Could not parse DDL of the view to be created. Details: %1 + + + + Parsed query is not CREATE VIEW. It's: %1 + Parsed query is not CREATE VIEW. It's: %1 + + + + SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. + SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. + + + + QueryExecutor + + + Execution interrupted. + הביצוע הופסק. + + + + Database is not open. + מספד הנתונים אינו פתוח. + + + + Only one query can be executed simultaneously. + Only one query can be executed simultaneously. + + + + + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 + + + + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. + + + + ScriptingQtDbProxy + + + No database available in current context, while called JavaScript's %1 command. + No database available in current context, while called JavaScript's %1 command. + + + + Error from %1: %2 + שגיאה מ %1: %2 + + + + SqlFileExecutor + + + Could not execute SQL, because application has failed to start transaction: %1 + Could not execute SQL, because application has failed to start transaction: %1 + + + + Execution from file cancelled. Any queries executed so far have been rolled back. + Execution from file cancelled. Any queries executed so far have been rolled back. + + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Could not execute SQL, because application has failed to commit the transaction: %1 + Could not execute SQL, because application has failed to commit the transaction: %1 + + + + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. + + + + Finished executing %1 queries in %2 seconds. + Finished executing %1 queries in %2 seconds. + + + + Could not execute SQL due to error. + Could not execute SQL due to error. + + + + SqlHistoryModel + + + Database + sql history header + מסד נתונים + + + + Execution date + sql history header + תאריך ביצוע + + + + Time spent + sql history header + חותם זמן + + + + Rows affected + sql history header + שורות הושפעו + + + + SQL + sql history header + SQL + + + + UpdateManager + + + Could not check for updates (%1). + Could not check for updates (%1). + + + diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_hu_HU.ts b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_hu_HU.ts new file mode 100644 index 0000000..09d8517 --- /dev/null +++ b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_hu_HU.ts @@ -0,0 +1,1101 @@ + + + + + AbstractDb + + + + Cannot execute query on closed database. + Cannot execute query on closed database. + + + + Error attaching database %1: %2 + Error attaching database %1: %2 + + + + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + + + + ChainExecutor + + + The database for executing queries was not defined. + chain executor + The database for executing queries was not defined. + + + + The database for executing queries was not open. + chain executor + The database for executing queries was not open. + + + + Could not disable foreign keys in the database. Details: %1 + chain executor + Could not disable foreign keys in the database. Details: %1 + + + + Could not start a database transaction. Details: %1 + chain executor + Could not start a database transaction. Details: %1 + + + + Interrupted + chain executor + Interrupted + + + + Could not commit a database transaction. Details: %1 + chain executor + Could not commit a database transaction. Details: %1 + + + + CompletionHelper + + + New row reference + New row reference + + + + Old row reference + Old row reference + + + + New table name + New table name + + + + New index name + New index name + + + + New view name + New view name + + + + New trigger name + New trigger name + + + + Table or column alias + Table or column alias + + + + transaction name + transaction name + + + + New column name + New column name + + + + Column data type + Column data type + + + + Constraint name + Constraint name + + + + Error message + Error message + + + + Any word + Any word + + + + Default database + Default database + + + + Temporary objects database + Temporary objects database + + + + ConfigImpl + + + Could not start database transaction for deleting SQL history, therefore it's not deleted. + Could not start database transaction for deleting SQL history, therefore it's not deleted. + + + + Could not commit database transaction for deleting SQL history, therefore it's not deleted. + Could not commit database transaction for deleting SQL history, therefore it's not deleted. + + + + DbManagerImpl + + + Could not add database %1: %2 + Could not add database %1: %2 + + + + Database %1 could not be updated, because of an error: %2 + Database %1 could not be updated, because of an error: %2 + + + + + Database file doesn't exist. + Database file doesn't exist. + + + + + + No supporting plugin loaded. + No supporting plugin loaded. + + + + Database could not be initialized. + Database could not be initialized. + + + + No suitable database driver plugin found. + No suitable database driver plugin found. + + + + DbObjectOrganizer + + + + Error while creating table in target database: %1 + Error while creating table in target database: %1 + + + + Could not parse table. + Could not parse table. + + + + Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. + Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. + + + + Error while copying data for table %1: %2 + Error while copying data for table %1: %2 + + + + + + Error while copying data to table %1: %2 + Error while copying data to table %1: %2 + + + + Error while dropping source view %1: %2 +Tables, indexes, triggers and views copied to database %3 will remain. + Error while dropping source view %1: %2 +Tables, indexes, triggers and views copied to database %3 will remain. + + + + Error while creating view in target database: %1 + Error while creating view in target database: %1 + + + + Error while creating index in target database: %1 + Error while creating index in target database: %1 + + + + Error while creating trigger in target database: %1 + Error while creating trigger in target database: %1 + + + + + + Could not parse object '%1' in order to move or copy it. + Could not parse object '%1' in order to move or copy it. + + + + DdlHistoryModel + + + Database name + ddl history header + Database name + + + + Database file + ddl history header + Database file + + + + Date of execution + ddl history header + Date of execution + + + + Changes + ddl history header + Changes + + + + ExportManager + + + Export plugin %1 doesn't support exporing query results. + Export plugin %1 doesn't support exporing query results. + + + + Export plugin %1 doesn't support exporing tables. + Export plugin %1 doesn't support exporing tables. + + + + Export plugin %1 doesn't support exporing databases. + Export plugin %1 doesn't support exporing databases. + + + + Export format '%1' is not supported. Supported formats are: %2. + Export format '%1' is not supported. Supported formats are: %2. + + + + Export to the clipboard was successful. + Export to the clipboard was successful. + + + + Export to the file '%1' was successful. + Export to the file '%1' was successful. + + + + Export was successful. + Export was successful. + + + + Could not export to file %1. File cannot be open for writting. + Could not export to file %1. File cannot be open for writting. + + + + ExportWorker + + + Error while exporting query results: %1 + Error while exporting query results: %1 + + + + Error while counting data column width to export from query results: %1 + Error while counting data column width to export from query results: %1 + + + + + Could not parse %1 in order to export it. It will be excluded from the export output. + Could not parse %1 in order to export it. It will be excluded from the export output. + + + + Error while reading data to export from table %1: %2 + Error while reading data to export from table %1: %2 + + + + Error while counting data to export from table %1: %2 + Error while counting data to export from table %1: %2 + + + + Error while counting data column width to export from table %1: %2 + Error while counting data column width to export from table %1: %2 + + + + FunctionManagerImpl + + + Invalid number of arguments to function '%1'. Expected %2, but got %3. + Invalid number of arguments to function '%1'. Expected %2, but got %3. + + + + No such function registered in SQLiteStudio: %1(%2) + No such function registered in SQLiteStudio: %1(%2) + + + + Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. + Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. + + + + Invalid regular expression pattern: %1 + Invalid regular expression pattern: %1 + + + + + Could not open file %1 for reading: %2 + Could not open file %1 for reading: %2 + + + + Could not open file %1 for writting: %2 + Could not open file %1 for writting: %2 + + + + Error while writting to file %1: %2 + Error while writting to file %1: %2 + + + + Unsupported scripting language: %1 + Unsupported scripting language: %1 + + + + GenericExportPlugin + + + Could not initialize text codec for exporting. Using default codec: %1 + Could not initialize text codec for exporting. Using default codec: %1 + + + + ImportManager + + + Imported data to the table '%1' successfully. Number of imported rows: %2 + Imported data to the table '%1' successfully. Number of imported rows: %2 + + + + ImportWorker + + + No columns provided by the import plugin. + No columns provided by the import plugin. + + + + Could not start transaction in order to import a data: %1 + Could not start transaction in order to import a data: %1 + + + + Could not commit transaction for imported data: %1 + Could not commit transaction for imported data: %1 + + + + Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. + Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. + + + + Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. + Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. + + + + Could not create table to import to: %1 + Could not create table to import to: %1 + + + + + + Error while importing data: %1 + Error while importing data: %1 + + + + + Interrupted. + import process status update + Interrupted. + + + + Could not import data row number %1. The row was ignored. Problem details: %2 + Could not import data row number %1. The row was ignored. Problem details: %2 + + + + PluginManagerImpl + + + Cannot load plugin %1, because it's in conflict with plugin %2. + Cannot load plugin %1, because it's in conflict with plugin %2. + + + + Cannot load plugin %1, because its dependency was not loaded: %2. + Cannot load plugin %1, because its dependency was not loaded: %2. + + + + Cannot load plugin %1. Error details: %2 + Cannot load plugin %1. Error details: %2 + + + + Cannot load plugin %1 (error while initializing plugin). + Cannot load plugin %1 (error while initializing plugin). + + + + min: %1 + plugin dependency version + min: %1 + + + + max: %1 + plugin dependency version + max: %1 + + + + PopulateConstant + + + Constant + populate constant plugin name + Constant + + + + PopulateConstantConfig + + + Constant value: + Constant value: + + + + PopulateDictionary + + + Dictionary + dictionary populating plugin name + Dictionary + + + + PopulateDictionaryConfig + + + Dictionary file + Dictionary file + + + + Pick dictionary file + Pick dictionary file + + + + Word separator + Word separator + + + + Whitespace + Whitespace + + + + Line break + Line break + + + + Method of using words + Method of using words + + + + Ordered + Ordered + + + + Randomly + Randomly + + + + PopulateManager + + + Table '%1' populated successfully. + Table '%1' populated successfully. + + + + PopulateRandom + + + Random number + Random number + + + + PopulateRandomConfig + + + Constant prefix + Constant prefix + + + + No prefix + No prefix + + + + Minimum value + Minimum value + + + + Maximum value + Maximum value + + + + Constant suffix + Constant suffix + + + + No suffix + No suffix + + + + PopulateRandomText + + + Random text + Random text + + + + PopulateRandomTextConfig + + + Use characters from common sets: + Use characters from common sets: + + + + Minimum length + Minimum length + + + + Letters from a to z. + Letters from a to z. + + + + Alpha + Alpha + + + + Numbers from 0 to 9. + Numbers from 0 to 9. + + + + Numeric + Numeric + + + + A whitespace, a tab and a new line character. + A whitespace, a tab and a new line character. + + + + Whitespace + Whitespace + + + + Includes all above and all others. + Includes all above and all others. + + + + Binary + Binary + + + + Use characters from my custom set: + Use characters from my custom set: + + + + Maximum length + Maximum length + + + + If you type some character multiple times, it's more likely to be used. + If you type some character multiple times, it's more likely to be used. + + + + PopulateScript + + + Script + Script + + + + PopulateScriptConfig + + + Initialization code (optional) + Initialization code (optional) + + + + Per step code + Per step code + + + + Language + Language + + + + Help + Help + + + + PopulateSequence + + + Sequence + Sequence + + + + PopulateSequenceConfig + + + Start value: + Start value: + + + + Step: + Step: + + + + PopulateWorker + + + Could not start transaction in order to perform table populating. Error details: %1 + Could not start transaction in order to perform table populating. Error details: %1 + + + + Error while populating table: %1 + Error while populating table: %1 + + + + Could not commit transaction after table populating. Error details: %1 + Could not commit transaction after table populating. Error details: %1 + + + + QObject + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Could not open database: %1 + Could not open database: %1 + + + + Result set expired or no row available. + Result set expired or no row available. + + + + + Could not load extension %1: %2 + Could not load extension %1: %2 + + + + Could not run WAL checkpoint: %1 + Could not run WAL checkpoint: %1 + + + + Could not close database: %1 + Could not close database: %1 + + + + Could not attach database %1: %2 + Could not attach database %1: %2 + + + + + Incomplete query. + Incomplete query. + + + + Parser stack overflow + Parser stack overflow + + + + Syntax error + Syntax error + + + + Could not open dictionary file %1 for reading. + Could not open dictionary file %1 for reading. + + + + Dictionary file must exist and be readable. + Dictionary file must exist and be readable. + + + + Maximum value cannot be less than minimum value. + Maximum value cannot be less than minimum value. + + + + Maximum length cannot be less than minimum length. + Maximum length cannot be less than minimum length. + + + + Custom character set cannot be empty. + Custom character set cannot be empty. + + + + Could not find plugin to support scripting language: %1 + Could not find plugin to support scripting language: %1 + + + + Error while executing populating initial code: %1 + Error while executing populating initial code: %1 + + + + Error while executing populating code: %1 + Error while executing populating code: %1 + + + + Select implementation language. + Select implementation language. + + + + Implementation code cannot be empty. + Implementation code cannot be empty. + + + + Could not resolve data source for column: %1 + Could not resolve data source for column: %1 + + + + Could not resolve table for column '%1'. + Could not resolve table for column '%1'. + + + + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Unable to create a file at following locations: %1. + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Unable to create a file at following locations: %1. + + + + General purpose + plugin category name + General purpose + + + + Database support + plugin category name + Database support + + + + Code formatter + plugin category name + Code formatter + + + + Scripting languages + plugin category name + Scripting languages + + + + Exporting + plugin category name + Exporting + + + + Importing + plugin category name + Importing + + + + Table populating + plugin category name + Table populating + + + + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. + + + + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. + + + + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. + + + + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. + + + + Cannot not update trigger %1 according to table %2 modification. + Cannot not update trigger %1 according to table %2 modification. + + + + Cannot not update view %1 according to table %2 modifications. +The view will remain as it is. + Cannot not update view %1 according to table %2 modifications. +The view will remain as it is. + + + + + + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. + + + + Could not parse DDL of the view to be created. Details: %1 + Could not parse DDL of the view to be created. Details: %1 + + + + Parsed query is not CREATE VIEW. It's: %1 + Parsed query is not CREATE VIEW. It's: %1 + + + + SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. + SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. + + + + QueryExecutor + + + Execution interrupted. + Execution interrupted. + + + + Database is not open. + Database is not open. + + + + Only one query can be executed simultaneously. + Only one query can be executed simultaneously. + + + + + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 + + + + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. + + + + ScriptingQtDbProxy + + + No database available in current context, while called JavaScript's %1 command. + No database available in current context, while called JavaScript's %1 command. + + + + Error from %1: %2 + Error from %1: %2 + + + + SqlFileExecutor + + + Could not execute SQL, because application has failed to start transaction: %1 + Could not execute SQL, because application has failed to start transaction: %1 + + + + Execution from file cancelled. Any queries executed so far have been rolled back. + Execution from file cancelled. Any queries executed so far have been rolled back. + + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Could not execute SQL, because application has failed to commit the transaction: %1 + Could not execute SQL, because application has failed to commit the transaction: %1 + + + + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. + + + + Finished executing %1 queries in %2 seconds. + Finished executing %1 queries in %2 seconds. + + + + Could not execute SQL due to error. + Could not execute SQL due to error. + + + + SqlHistoryModel + + + Database + sql history header + Database + + + + Execution date + sql history header + Execution date + + + + Time spent + sql history header + Time spent + + + + Rows affected + sql history header + Rows affected + + + + SQL + sql history header + SQL + + + + UpdateManager + + + Could not check for updates (%1). + Could not check for updates (%1). + + + diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_it.qm b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_it.qm deleted file mode 100644 index 9dad8df..0000000 Binary files a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_it.qm and /dev/null differ diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_it.ts b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_it.ts deleted file mode 100644 index 461461f..0000000 --- a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_it.ts +++ /dev/null @@ -1,1146 +0,0 @@ - - - - - AbstractDb - - - - Cannot execute query on closed database. - - - - - Error attaching database %1: %2 - - - - - ChainExecutor - - - The database for executing queries was not defined. - chain executor - - - - - The database for executing queries was not open. - chain executor - - - - - Could not disable foreign keys in the database. Details: %1 - chain executor - - - - - Could not start a database transaction. Details: %1 - chain executor - - - - - Interrupted - chain executor - - - - - Could not commit a database transaction. Details: %1 - chain executor - - - - - CompletionHelper - - - New row reference - - - - - Old row reference - - - - - New table name - - - - - New index name - - - - - New view name - - - - - New trigger name - - - - - Table or column alias - - - - - transaction name - - - - - New column name - - - - - Column data type - - - - - Constraint name - - - - - Error message - - - - - Collation name - - - - - Any word - - - - - Default database - - - - - Temporary objects database - - - - - ConfigImpl - - - Could not start database transaction for deleting SQL history, therefore it's not deleted. - - - - - Could not commit database transaction for deleting SQL history, therefore it's not deleted. - - - - - DbManagerImpl - - - Could not add database %1: %2 - - - - - Database %1 could not be updated, because of an error: %2 - - - - - - Database file doesn't exist. - - - - - - - No supporting plugin loaded. - - - - - Database could not be initialized. - - - - - No suitable database driver plugin found. - - - - - DbObjectOrganizer - - - - Error while creating table in target database: %1 - - - - - Could not parse table. - - - - - Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. - - - - - Error while copying data for table %1: %2 - - - - - - - Error while copying data to table %1: %2 - - - - - Error while dropping source view %1: %2 -Tables, indexes, triggers and views copied to database %3 will remain. - - - - - Error while creating view in target database: %1 - - - - - Error while creating index in target database: %1 - - - - - Error while creating trigger in target database: %1 - - - - - - - Could not parse object '%1' in order to move or copy it. - - - - - DbVersionConverter - - - Target file exists, but could not be overwritten. - - - - - Could not find proper database plugin to create target database. - - - - - Error while converting database: %1 - - - - - DdlHistoryModel - - - Database name - ddl history header - - - - - Database file - ddl history header - - - - - Date of execution - ddl history header - - - - - Changes - ddl history header - - - - - ExportManager - - - Export plugin %1 doesn't support exporing query results. - - - - - Export plugin %1 doesn't support exporing tables. - - - - - Export plugin %1 doesn't support exporing databases. - - - - - Export format '%1' is not supported. Supported formats are: %2. - - - - - Export to the clipboard was successful. - - - - - Export to the file '%1' was successful. - - - - - Export was successful. - - - - - Could not export to file %1. File cannot be open for writting. - - - - - ExportWorker - - - Error while exporting query results: %1 - - - - - Error while counting data column width to export from query results: %1 - - - - - - Could not parse %1 in order to export it. It will be excluded from the export output. - - - - - Error while reading data to export from table %1: %2 - - - - - Error while counting data to export from table %1: %2 - - - - - Error while counting data column width to export from table %1: %2 - - - - - FunctionManagerImpl - - - Invalid number of arguments to function '%1'. Expected %2, but got %3. - - - - - No such function registered in SQLiteStudio: %1(%2) - - - - - Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. - - - - - Invalid regular expression pattern: %1 - - - - - - Could not open file %1 for reading: %2 - - - - - Could not open file %1 for writting: %2 - - - - - Error while writting to file %1: %2 - - - - - Unsupported scripting language: %1 - - - - - GenericExportPlugin - - - Could not initialize text codec for exporting. Using default codec: %1 - - - - - ImportManager - - - Imported data to the table '%1' successfully. - - - - - ImportWorker - - - No columns provided by the import plugin. - - - - - Could not start transaction in order to import a data: %1 - - - - - Could not commit transaction for imported data: %1 - - - - - Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. - - - - - Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. - - - - - Could not create table to import to: %1 - - - - - - - Error while importing data: %1 - - - - - - Interrupted. - import process status update - - - - - Could not import data row number %1. The row was ignored. Problem details: %2 - - - - - PluginManagerImpl - - - Cannot load plugin %1, because it's in conflict with plugin %2. - - - - - Cannot load plugin %1, because its dependency was not loaded: %2. - - - - - Cannot load plugin %1. Error details: %2 - - - - - Cannot load plugin %1 (error while initializing plugin). - - - - - min: %1 - plugin dependency version - - - - - max: %1 - plugin dependency version - - - - - PopulateConstant - - - Constant - populate constant plugin name - - - - - PopulateConstantConfig - - - Constant value: - - - - - PopulateDictionary - - - Dictionary - dictionary populating plugin name - - - - - PopulateDictionaryConfig - - - Dictionary file - - - - - Pick dictionary file - - - - - Word separator - - - - - Whitespace - - - - - Line break - - - - - Method of using words - - - - - Ordered - - - - - Randomly - - - - - PopulateManager - - - Table '%1' populated successfully. - - - - - PopulateRandom - - - Random number - - - - - PopulateRandomConfig - - - Constant prefix - - - - - No prefix - - - - - Minimum value - - - - - Maximum value - - - - - Constant suffix - - - - - No suffix - - - - - PopulateRandomText - - - Random text - - - - - PopulateRandomTextConfig - - - Use characters from common sets: - - - - - Minimum length - - - - - Letters from a to z. - - - - - Alpha - - - - - Numbers from 0 to 9. - - - - - Numeric - - - - - A whitespace, a tab and a new line character. - - - - - Whitespace - - - - - Includes all above and all others. - - - - - Binary - - - - - Use characters from my custom set: - - - - - Maximum length - - - - - If you type some character multiple times, it's more likely to be used. - - - - - PopulateScript - - - Script - - - - - PopulateScriptConfig - - - Initialization code (optional) - - - - - Per step code - - - - - Language - - - - - Help - - - - - PopulateSequence - - - Sequence - - - - - PopulateSequenceConfig - - - Start value: - - - - - Step: - - - - - PopulateWorker - - - Could not start transaction in order to perform table populating. Error details: %1 - - - - - Error while populating table: %1 - - - - - Could not commit transaction after table populating. Error details: %1 - - - - - QObject - - - - Could not open database: %1 - - - - - - Result set expired or no row available. - - - - - - Could not load extension %1: %2 - - - - - Could not close database: %1 - - - - - - - - - - - SQLite %1 does not support '%2' statement. - - - - - SQLite %1 does not support '%2' statement, but the regular table can be created instead if you proceed. - - - - - Could not parse statement: %1 -Error details: %2 - - - - - - - - SQLite %1 does not support the '%2' clause. Cannot convert '%3' statement with that clause. - - - - - SQLite %1 does not support the '%2' clause in the '%3' statement. - - - - - SQLite %1 does not support current date or time clauses in expressions. - - - - - SQLite %1 does not support row value clauses in expressions. - - - - - - - SQLite %1 does not support '%2' clause in expressions. - - - - - Could not attach database %1: %2 - - - - - - Incomplete query. - - - - - - Parser stack overflow - - - - - - Syntax error - - - - - Could not open dictionary file %1 for reading. - - - - - Dictionary file must exist and be readable. - - - - - Maximum value cannot be less than minimum value. - - - - - Maximum length cannot be less than minimum length. - - - - - Custom character set cannot be empty. - - - - - Could not find plugin to support scripting language: %1 - - - - - Error while executing populating initial code: %1 - - - - - Error while executing populating code: %1 - - - - - Select implementation language. - - - - - Implementation code cannot be empty. - - - - - Could not resolve data source for column: %1 - - - - - Could not resolve table for column '%1'. - - - - - Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Tried to initialize the file at following localizations: %1. - - - - - General purpose - plugin category name - - - - - Database support - plugin category name - - - - - Code formatter - plugin category name - - - - - Scripting languages - plugin category name - - - - - Exporting - plugin category name - - - - - Importing - plugin category name - - - - - Table populating - plugin category name - - - - - Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. - - - - - All columns indexed by the index %1 are gone. The index will not be recreated after table modification. - - - - - There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. - - - - - All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. - - - - - Cannot not update trigger %1 according to table %2 modification. - - - - - Cannot not update view %1 according to table %2 modifications. -The view will remain as it is. - - - - - - - There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. - - - - - Could not parse DDL of the view to be created. Details: %1 - - - - - Parsed query is not CREATE VIEW. It's: %1 - - - - - SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. - - - - - Could not open file '%1' for reading: %2 - - - - - QueryExecutor - - - Execution interrupted. - - - - - Database is not open. - - - - - Only one query can be executed simultaneously. - - - - - - An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 - - - - - SQLiteStudio was unable to extract metadata from the query. Results won't be editable. - - - - - ScriptingQtDbProxy - - - No database available in current context, while called QtScript's %1 command. - - - - - Error from %1: %2 - - - - - SqlHistoryModel - - - Database - sql history header - - - - - Execution date - sql history header - - - - - Time spent - sql history header - - - - - Rows affected - sql history header - - - - - SQL - sql history header - - - - - UpdateManager - - - Updates installer executable is missing. - - - - - - Unable to check for updates (%1) - - - - - details are unknown - - - - - Unable to run updater application (%1). Please report this. - - - - diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_it_IT.ts b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_it_IT.ts new file mode 100644 index 0000000..975635e --- /dev/null +++ b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_it_IT.ts @@ -0,0 +1,1101 @@ + + + + + AbstractDb + + + + Cannot execute query on closed database. + Impossibile eseguire la query su un database chiuso. + + + + Error attaching database %1: %2 + Errore nell'allegare il database %1: %2 + + + + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + Impossibile creare il checkpoint WAL completo sul database '%1'. Errore restituito dal motore SQLite: %2 + + + + ChainExecutor + + + The database for executing queries was not defined. + chain executor + Il database per l'esecuzione delle query non è stato definito. + + + + The database for executing queries was not open. + chain executor + Il database per l'esecuzione delle query non è stato aperto. + + + + Could not disable foreign keys in the database. Details: %1 + chain executor + Impossibile disabilitare le chiavi esterne nel database. Dettagli: %1 + + + + Could not start a database transaction. Details: %1 + chain executor + Impossibile avviare una transazione nel database. Dettagli: %1 + + + + Interrupted + chain executor + Interrotto + + + + Could not commit a database transaction. Details: %1 + chain executor + Impossibile effettuare il commit di una transazione nel database. Dettagli: %1 + + + + CompletionHelper + + + New row reference + Nuovo riferimento riga + + + + Old row reference + Vecchio riferimento riga + + + + New table name + Nuovo nome della tabella + + + + New index name + Nuovo nome indice + + + + New view name + Nuovo nome vista + + + + New trigger name + Nuovo nome del trigger + + + + Table or column alias + Alias tabella o colonna + + + + transaction name + nome della transazione + + + + New column name + Nuovo nome colonna + + + + Column data type + Tipo di dati colonna + + + + Constraint name + Nome del constraint + + + + Error message + Messaggio di errore + + + + Any word + Qualsiasi parola + + + + Default database + Database predefinito + + + + Temporary objects database + Database oggetti temporanei + + + + ConfigImpl + + + Could not start database transaction for deleting SQL history, therefore it's not deleted. + Impossibile avviare la transazione del database per eliminare la cronologia SQL, quindi non è stata eliminata. + + + + Could not commit database transaction for deleting SQL history, therefore it's not deleted. + Impossibile avviare la transazione del database per eliminare la cronologia SQL, quindi non è stata eliminata. + + + + DbManagerImpl + + + Could not add database %1: %2 + Impossibile aggiungere il database %1: %2 + + + + Database %1 could not be updated, because of an error: %2 + Il database %1 non può essere aggiornato, a causa di un errore: %2 + + + + + Database file doesn't exist. + Il file del database non esiste. + + + + + + No supporting plugin loaded. + Nessun plugin di supporto caricato. + + + + Database could not be initialized. + Impossibile inizializzare il database. + + + + No suitable database driver plugin found. + Non è stato trovato alcun plugin per il driver del database. + + + + DbObjectOrganizer + + + + Error while creating table in target database: %1 + Errore durante la creazione della tabella nel database di destinazione: %1 + + + + Could not parse table. + Impossibile analizzare la tabella. + + + + Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. + Il database %1 non può essere allegato al database %2, così i dati della tabella %3 verranno copiati con SQLiteStudio come mediatore. Questo metodo può essere lento per le tabelle enormi, quindi sii paziente. + + + + Error while copying data for table %1: %2 + Errore durante la copia dei dati per la tabella %1: %2 + + + + + + Error while copying data to table %1: %2 + Errore durante la copia dei dati nella tabella %1: %2 + + + + Error while dropping source view %1: %2 +Tables, indexes, triggers and views copied to database %3 will remain. + Errore durante il rilascio della vista sorgente %1: %2 +Le tabelle, gli indici, i trigger e le viste copiate nel database %3 rimarranno. + + + + Error while creating view in target database: %1 + Errore durante la creazione della vista nel database di destinazione: %1 + + + + Error while creating index in target database: %1 + Errore durante la creazione dell'indice nel database di destinazione: %1 + + + + Error while creating trigger in target database: %1 + Errore durante la creazione del trigger nel database di destinazione: %1 + + + + + + Could not parse object '%1' in order to move or copy it. + Impossibile analizzare l'oggetto '%1' per spostarlo o copiarlo. + + + + DdlHistoryModel + + + Database name + ddl history header + Nome database + + + + Database file + ddl history header + File database + + + + Date of execution + ddl history header + Data di esecuzione + + + + Changes + ddl history header + Modifiche + + + + ExportManager + + + Export plugin %1 doesn't support exporing query results. + Il plugin di esportazione %1 non supporta l'esplorazione dei risultati delle interrogazioni. + + + + Export plugin %1 doesn't support exporing tables. + Il plugin di esportazione %1 non supporta l'esportazione di tabelle. + + + + Export plugin %1 doesn't support exporing databases. + Il plugin di esportazione %1 non supporta l'esportazione di databases. + + + + Export format '%1' is not supported. Supported formats are: %2. + Il formato di esportazione '%1' non è supportato. I formati supportati sono: %2. + + + + Export to the clipboard was successful. + Esportazione negli appunti riuscita. + + + + Export to the file '%1' was successful. + Esportazione nel file '%1' riuscita. + + + + Export was successful. + Esportazione riuscita. + + + + Could not export to file %1. File cannot be open for writting. + Impossibile esportare nel file %1. Il file non può essere aperto in scrittura. + + + + ExportWorker + + + Error while exporting query results: %1 + Errore durante l'esportazione dei risultati della query: %1 + + + + Error while counting data column width to export from query results: %1 + Errore durante il conteggio della larghezza della colonna dei dati da esportare dalla tabella %1 + + + + + Could not parse %1 in order to export it. It will be excluded from the export output. + Impossibile analizzare %1 per esportarlo. Sarà escluso dall'output di esportazione. + + + + Error while reading data to export from table %1: %2 + Errore durante la lettura dei dati da esportare dalla tabella %1: %2 + + + + Error while counting data to export from table %1: %2 + Errore durante il conteggio dei dati da esportare dalla tabella %1: %2 + + + + Error while counting data column width to export from table %1: %2 + Errore durante il conteggio della larghezza della colonna dei dati da esportare dalla tabella %1: %2 + + + + FunctionManagerImpl + + + Invalid number of arguments to function '%1'. Expected %2, but got %3. + Numero di argomenti non valido per la funzione '%1'. Atteso %2, ma ottenuto %3. + + + + No such function registered in SQLiteStudio: %1(%2) + Funzione inesistente non registrata in SQLiteStudio: %1(%2) + + + + Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. + La funzione %1(%2) è stata registrata con la lingua %3, ma il plugin che supporta tale lingua non è attualmente caricato. + + + + Invalid regular expression pattern: %1 + Modello di espressione regolare non valido: %1 + + + + + Could not open file %1 for reading: %2 + Apertura del file %1 in lettura fallita: %2 + + + + Could not open file %1 for writting: %2 + Apertura del file %1 in scrittura fallita: %2 + + + + Error while writting to file %1: %2 + Errore durante la scrittura sul file %1: %2 + + + + Unsupported scripting language: %1 + Linguaggio di scripting non supportato: %1 + + + + GenericExportPlugin + + + Could not initialize text codec for exporting. Using default codec: %1 + Impossibile inizializzare il codec di testo per l'esportazione. Utilizzando il codec predefinito: %1 + + + + ImportManager + + + Imported data to the table '%1' successfully. Number of imported rows: %2 + Dati importati nella tabella '%1' con successo. Numero di righe importate: %2 + + + + ImportWorker + + + No columns provided by the import plugin. + Nessuna colonna fornita dal plugin di importazione. + + + + Could not start transaction in order to import a data: %1 + Impossibile avviare la transazione per importare i dati: %1 + + + + Could not commit transaction for imported data: %1 + Impossibile effettuare il commit della transazione per i dati importati: %1 + + + + Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. + La tabella '%1' ha meno colonne di quelle che ci sono colonne nei dati da importare. Le colonne di dati eccessive verranno ignorate. + + + + Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. + La tabella '%1' ha più colonne di quelle che ci sono nei dati da importare. Alcune colonne nella tabella saranno lasciate vuote. + + + + Could not create table to import to: %1 + Impossibile creare la tabella da importare in: %1 + + + + + + Error while importing data: %1 + Errore durante l'importazione dei dati: %1 + + + + + Interrupted. + import process status update + Interrotto. + + + + Could not import data row number %1. The row was ignored. Problem details: %2 + Impossibile importare riga numero %1. La riga è stata ignorata. Dettagli problema: %2 + + + + PluginManagerImpl + + + Cannot load plugin %1, because it's in conflict with plugin %2. + Impossibile caricare il plugin %1 perché và in conflitto con il plugin %2. + + + + Cannot load plugin %1, because its dependency was not loaded: %2. + Impossibile caricare il plugin %1, perché non è stata caricata la sua dipendenza: %2. + + + + Cannot load plugin %1. Error details: %2 + Impossibile caricare il plugin %1. Dettagli errore: %2 + + + + Cannot load plugin %1 (error while initializing plugin). + Impossibile caricare il plugin %1 (errore durante l'inizializzazione del plugin). + + + + min: %1 + plugin dependency version + min: %1 + + + + max: %1 + plugin dependency version + max: %1 + + + + PopulateConstant + + + Constant + populate constant plugin name + Costante + + + + PopulateConstantConfig + + + Constant value: + Valore costante: + + + + PopulateDictionary + + + Dictionary + dictionary populating plugin name + Dizionario + + + + PopulateDictionaryConfig + + + Dictionary file + File dizionario + + + + Pick dictionary file + Scegli il file di dizionario + + + + Word separator + Separatore parole + + + + Whitespace + Spazio bianco + + + + Line break + Interruzione di linea + + + + Method of using words + Metodo di utilizzo delle parole + + + + Ordered + Ordinato + + + + Randomly + Casuale + + + + PopulateManager + + + Table '%1' populated successfully. + Tabella '%1' popolata con successo. + + + + PopulateRandom + + + Random number + Numeri casuali + + + + PopulateRandomConfig + + + Constant prefix + Prefisso costante + + + + No prefix + Nessun prefisso + + + + Minimum value + Valore minimo + + + + Maximum value + Valore massimo + + + + Constant suffix + Suffisso costante + + + + No suffix + Nessun suffisso + + + + PopulateRandomText + + + Random text + Testo casuale + + + + PopulateRandomTextConfig + + + Use characters from common sets: + Usa i caratteri dai set comuni: + + + + Minimum length + Lunghezza minima + + + + Letters from a to z. + Lettere da a a z. + + + + Alpha + Alpha + + + + Numbers from 0 to 9. + Numeri da 0 a 9. + + + + Numeric + Numerico + + + + A whitespace, a tab and a new line character. + Uno spazio bianco, un tab ed un carattere di ritorno a capo. + + + + Whitespace + Spazio bianco + + + + Includes all above and all others. + Include tutto sopra e tutti gli altri. + + + + Binary + Binario + + + + Use characters from my custom set: + Usa i caratteri del mio set personalizzato: + + + + Maximum length + Lunghezza massima + + + + If you type some character multiple times, it's more likely to be used. + Se si digita un carattere più volte, esso ha più probabilità di essere utilizzato. + + + + PopulateScript + + + Script + Script + + + + PopulateScriptConfig + + + Initialization code (optional) + Codice di inizializzazione (facoltativo) + + + + Per step code + Per passo di codice + + + + Language + Lingua + + + + Help + Aiuto + + + + PopulateSequence + + + Sequence + Sequenza + + + + PopulateSequenceConfig + + + Start value: + Valore iniziale: + + + + Step: + Passo: + + + + PopulateWorker + + + Could not start transaction in order to perform table populating. Error details: %1 + Impossibile avviare la transazione per eseguire il popolamento della tabella. Dettagli di errore: %1 + + + + Error while populating table: %1 + Errore durante il popolamento della tabella: %1 + + + + Could not commit transaction after table populating. Error details: %1 + Impossibile effettuare il commit della transazione dopo il popolamento della tabella. Dettagli errore: %1 + + + + QObject + + + Could not open file '%1' for reading: %2 + Impossibile aprire il file '%1' in lettura: %2 + + + + Could not open database: %1 + Impossibile aprire il database: %1 + + + + Result set expired or no row available. + Risultato impostato scaduto o nessuna riga disponibile. + + + + + Could not load extension %1: %2 + Impossibile caricare l'estensione %1: %2 + + + + Could not run WAL checkpoint: %1 + Impossibile eseguire il punto di controllo WAL: %1 + + + + Could not close database: %1 + Impossibile chiudere il database: %1 + + + + Could not attach database %1: %2 + Impossibile allegare il database %1: %2 + + + + + Incomplete query. + Query incompleta. + + + + Parser stack overflow + Parser stack overflow + + + + Syntax error + Errore di sintassi + + + + Could not open dictionary file %1 for reading. + Impossibile aprire il file dizionario %1 in lettura. + + + + Dictionary file must exist and be readable. + Il file del dizionario deve esistere ed essere leggibile. + + + + Maximum value cannot be less than minimum value. + Il valore massimo non può essere inferiore al valore minimo. + + + + Maximum length cannot be less than minimum length. + La lunghezza massima non può essere minore della lunghezza minima. + + + + Custom character set cannot be empty. + Il set di caratteri personalizzati non può essere vuoto. + + + + Could not find plugin to support scripting language: %1 + Impossibile trovare il plugin per supportare la lingua dello script: %1 + + + + Error while executing populating initial code: %1 + Errore durante il popolamento del codice iniziale: %1 + + + + Error while executing populating code: %1 + Errore durante il popolamento del codice: %1 + + + + Select implementation language. + Seleziona lingua di implementazione. + + + + Implementation code cannot be empty. + Il codice di implementazione non può essere vuoto. + + + + Could not resolve data source for column: %1 + Impossibile risolvere la sorgente dati per la colonna: %1 + + + + Could not resolve table for column '%1'. + Impossibile risolvere la tabella per la colonna '%1'. + + + + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Unable to create a file at following locations: %1. + Impossibile inizializzare il file di configurazione. Qualsiasi modifica di configurazione e cronologia delle interrogazioni verrà persa dopo il riavvio dell'applicazione. Impossibile creare un file nelle seguenti posizioni: %1. + + + + General purpose + plugin category name + Scopo generale + + + + Database support + plugin category name + Supporto database + + + + Code formatter + plugin category name + Formattatore codice + + + + Scripting languages + plugin category name + Linguaggi di scripting + + + + Exporting + plugin category name + Sto esportando ... + + + + Importing + plugin category name + Sto importando ... + + + + Table populating + plugin category name + Popolamento tabella + + + + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. + La tabella %1 fa riferimento alla tabella %2, ma la definizione della chiave esterna non sarà aggiornata per la nuova definizione della tabella a causa di problemi durante l'analisi DDL della tabella %3. + + + + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. + Tutte le colonne indicizzate dall'indice %1 non esistono più. L'indice non verrà ricreato dopo la modifica della tabella. + + + + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. + C'è un problema con il corretto processo trigger %1. Potrebbe non essere completamente aggiornato in seguito e avrà bisogno della vostra attenzione. + + + + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. + Tutte le colonne indicizzate dall'indice %1 non esistono più. L'indice non verrà ricreato dopo la modifica della tabella. + + + + Cannot not update trigger %1 according to table %2 modification. + Impossibile aggiornare il trigger %1 in accordo alla modifica della tabella %2. + + + + Cannot not update view %1 according to table %2 modifications. +The view will remain as it is. + Impossibile aggiornare la vista %1 in base alle modifiche della tabella %2. +La vista rimarrà così com'è. + + + + + + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. + C'è un problema con l'aggiornamento di un'istruzione %1 entro %2 trigger. Una delle %1 sotto-istruzioni che potrebbero riferirsi alla tabella %3 non può essere modificata correttamente. Può essere necessario un aggiornamento manuale del trigger. + + + + Could not parse DDL of the view to be created. Details: %1 + Impossibile analizzare il DDL della vista da creare. Dettagli: %1 + + + + Parsed query is not CREATE VIEW. It's: %1 + La query analizzata non è una CREATE VIEW. Vedi: %1 + + + + SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. + SQLiteStudio non è riuscito a risolvere le colonne restituite dalla nuova vista, quindi non potrà essere in grado di riportare quali trigger potrebbero fallire durante il processo di ricreazione. + + + + QueryExecutor + + + Execution interrupted. + Esecuzione interrotta. + + + + Database is not open. + Il database non è aperto. + + + + Only one query can be executed simultaneously. + Solo una query può essere eseguita contemporaneamente. + + + + + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 + Si è verificato un errore durante l'esecuzione della query count(*), quindi la pagina dei dati sarà disabilitata. Dettagli di errore dal database: %1 + + + + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. + SQLiteStudio non è stato in grado di estrarre i metadati dalla query. I risultati non sono modificabili. + + + + ScriptingQtDbProxy + + + No database available in current context, while called JavaScript's %1 command. + Nessun database disponibile nel contesto attuale, mentre si richiamava il comando JavaScript %1. + + + + Error from %1: %2 + Errore da %1: %2 + + + + SqlFileExecutor + + + Could not execute SQL, because application has failed to start transaction: %1 + Impossibile eseguire SQL perché l'applicazione non è riuscita ad avviare la transazione: %1 + + + + Execution from file cancelled. Any queries executed so far have been rolled back. + Esecuzione dal file annullata. Tutte le query eseguite finora sono state ripristinate. + + + + Could not open file '%1' for reading: %2 + Impossibile aprire il file '%1' in lettura: %2 + + + + Could not execute SQL, because application has failed to commit the transaction: %1 + Impossibile eseguire SQL perché l'applicazione non è riuscita a effettuare il commit della transazione: %1 + + + + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. + Completata l'esecuzione di %1 query in %2 secondi. %3 non è stata eseguita a causa di errori. + + + + Finished executing %1 queries in %2 seconds. + Terminata l'esecuzione di %1 query in %2 secondi. + + + + Could not execute SQL due to error. + Impossibile eseguire SQL a causa di errore. + + + + SqlHistoryModel + + + Database + sql history header + Database + + + + Execution date + sql history header + Data di esecuzione + + + + Time spent + sql history header + Tempo trascorso + + + + Rows affected + sql history header + Righe interessate + + + + SQL + sql history header + SQL + + + + UpdateManager + + + Could not check for updates (%1). + Impossibile controllare gli aggiornamenti: (%1). + + + diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_ja_JP.ts b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_ja_JP.ts new file mode 100644 index 0000000..79c7923 --- /dev/null +++ b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_ja_JP.ts @@ -0,0 +1,1101 @@ + + + + + AbstractDb + + + + Cannot execute query on closed database. + Cannot execute query on closed database. + + + + Error attaching database %1: %2 + Error attaching database %1: %2 + + + + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + + + + ChainExecutor + + + The database for executing queries was not defined. + chain executor + The database for executing queries was not defined. + + + + The database for executing queries was not open. + chain executor + The database for executing queries was not open. + + + + Could not disable foreign keys in the database. Details: %1 + chain executor + Could not disable foreign keys in the database. Details: %1 + + + + Could not start a database transaction. Details: %1 + chain executor + Could not start a database transaction. Details: %1 + + + + Interrupted + chain executor + Interrupted + + + + Could not commit a database transaction. Details: %1 + chain executor + Could not commit a database transaction. Details: %1 + + + + CompletionHelper + + + New row reference + New row reference + + + + Old row reference + Old row reference + + + + New table name + New table name + + + + New index name + New index name + + + + New view name + New view name + + + + New trigger name + New trigger name + + + + Table or column alias + Table or column alias + + + + transaction name + transaction name + + + + New column name + New column name + + + + Column data type + Column data type + + + + Constraint name + Constraint name + + + + Error message + Error message + + + + Any word + Any word + + + + Default database + Default database + + + + Temporary objects database + Temporary objects database + + + + ConfigImpl + + + Could not start database transaction for deleting SQL history, therefore it's not deleted. + Could not start database transaction for deleting SQL history, therefore it's not deleted. + + + + Could not commit database transaction for deleting SQL history, therefore it's not deleted. + Could not commit database transaction for deleting SQL history, therefore it's not deleted. + + + + DbManagerImpl + + + Could not add database %1: %2 + Could not add database %1: %2 + + + + Database %1 could not be updated, because of an error: %2 + Database %1 could not be updated, because of an error: %2 + + + + + Database file doesn't exist. + Database file doesn't exist. + + + + + + No supporting plugin loaded. + No supporting plugin loaded. + + + + Database could not be initialized. + Database could not be initialized. + + + + No suitable database driver plugin found. + No suitable database driver plugin found. + + + + DbObjectOrganizer + + + + Error while creating table in target database: %1 + Error while creating table in target database: %1 + + + + Could not parse table. + Could not parse table. + + + + Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. + Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. + + + + Error while copying data for table %1: %2 + Error while copying data for table %1: %2 + + + + + + Error while copying data to table %1: %2 + Error while copying data to table %1: %2 + + + + Error while dropping source view %1: %2 +Tables, indexes, triggers and views copied to database %3 will remain. + Error while dropping source view %1: %2 +Tables, indexes, triggers and views copied to database %3 will remain. + + + + Error while creating view in target database: %1 + Error while creating view in target database: %1 + + + + Error while creating index in target database: %1 + Error while creating index in target database: %1 + + + + Error while creating trigger in target database: %1 + Error while creating trigger in target database: %1 + + + + + + Could not parse object '%1' in order to move or copy it. + Could not parse object '%1' in order to move or copy it. + + + + DdlHistoryModel + + + Database name + ddl history header + Database name + + + + Database file + ddl history header + Database file + + + + Date of execution + ddl history header + Date of execution + + + + Changes + ddl history header + Changes + + + + ExportManager + + + Export plugin %1 doesn't support exporing query results. + Export plugin %1 doesn't support exporing query results. + + + + Export plugin %1 doesn't support exporing tables. + Export plugin %1 doesn't support exporing tables. + + + + Export plugin %1 doesn't support exporing databases. + Export plugin %1 doesn't support exporing databases. + + + + Export format '%1' is not supported. Supported formats are: %2. + Export format '%1' is not supported. Supported formats are: %2. + + + + Export to the clipboard was successful. + Export to the clipboard was successful. + + + + Export to the file '%1' was successful. + Export to the file '%1' was successful. + + + + Export was successful. + Export was successful. + + + + Could not export to file %1. File cannot be open for writting. + Could not export to file %1. File cannot be open for writting. + + + + ExportWorker + + + Error while exporting query results: %1 + Error while exporting query results: %1 + + + + Error while counting data column width to export from query results: %1 + Error while counting data column width to export from query results: %1 + + + + + Could not parse %1 in order to export it. It will be excluded from the export output. + Could not parse %1 in order to export it. It will be excluded from the export output. + + + + Error while reading data to export from table %1: %2 + Error while reading data to export from table %1: %2 + + + + Error while counting data to export from table %1: %2 + Error while counting data to export from table %1: %2 + + + + Error while counting data column width to export from table %1: %2 + Error while counting data column width to export from table %1: %2 + + + + FunctionManagerImpl + + + Invalid number of arguments to function '%1'. Expected %2, but got %3. + Invalid number of arguments to function '%1'. Expected %2, but got %3. + + + + No such function registered in SQLiteStudio: %1(%2) + No such function registered in SQLiteStudio: %1(%2) + + + + Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. + Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. + + + + Invalid regular expression pattern: %1 + Invalid regular expression pattern: %1 + + + + + Could not open file %1 for reading: %2 + Could not open file %1 for reading: %2 + + + + Could not open file %1 for writting: %2 + Could not open file %1 for writting: %2 + + + + Error while writting to file %1: %2 + Error while writting to file %1: %2 + + + + Unsupported scripting language: %1 + Unsupported scripting language: %1 + + + + GenericExportPlugin + + + Could not initialize text codec for exporting. Using default codec: %1 + Could not initialize text codec for exporting. Using default codec: %1 + + + + ImportManager + + + Imported data to the table '%1' successfully. Number of imported rows: %2 + Imported data to the table '%1' successfully. Number of imported rows: %2 + + + + ImportWorker + + + No columns provided by the import plugin. + No columns provided by the import plugin. + + + + Could not start transaction in order to import a data: %1 + Could not start transaction in order to import a data: %1 + + + + Could not commit transaction for imported data: %1 + Could not commit transaction for imported data: %1 + + + + Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. + Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. + + + + Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. + Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. + + + + Could not create table to import to: %1 + Could not create table to import to: %1 + + + + + + Error while importing data: %1 + Error while importing data: %1 + + + + + Interrupted. + import process status update + Interrupted. + + + + Could not import data row number %1. The row was ignored. Problem details: %2 + Could not import data row number %1. The row was ignored. Problem details: %2 + + + + PluginManagerImpl + + + Cannot load plugin %1, because it's in conflict with plugin %2. + Cannot load plugin %1, because it's in conflict with plugin %2. + + + + Cannot load plugin %1, because its dependency was not loaded: %2. + Cannot load plugin %1, because its dependency was not loaded: %2. + + + + Cannot load plugin %1. Error details: %2 + Cannot load plugin %1. Error details: %2 + + + + Cannot load plugin %1 (error while initializing plugin). + Cannot load plugin %1 (error while initializing plugin). + + + + min: %1 + plugin dependency version + min: %1 + + + + max: %1 + plugin dependency version + max: %1 + + + + PopulateConstant + + + Constant + populate constant plugin name + Constant + + + + PopulateConstantConfig + + + Constant value: + Constant value: + + + + PopulateDictionary + + + Dictionary + dictionary populating plugin name + Dictionary + + + + PopulateDictionaryConfig + + + Dictionary file + Dictionary file + + + + Pick dictionary file + Pick dictionary file + + + + Word separator + Word separator + + + + Whitespace + Whitespace + + + + Line break + Line break + + + + Method of using words + Method of using words + + + + Ordered + Ordered + + + + Randomly + Randomly + + + + PopulateManager + + + Table '%1' populated successfully. + Table '%1' populated successfully. + + + + PopulateRandom + + + Random number + Random number + + + + PopulateRandomConfig + + + Constant prefix + Constant prefix + + + + No prefix + No prefix + + + + Minimum value + Minimum value + + + + Maximum value + Maximum value + + + + Constant suffix + Constant suffix + + + + No suffix + No suffix + + + + PopulateRandomText + + + Random text + Random text + + + + PopulateRandomTextConfig + + + Use characters from common sets: + Use characters from common sets: + + + + Minimum length + Minimum length + + + + Letters from a to z. + Letters from a to z. + + + + Alpha + Alpha + + + + Numbers from 0 to 9. + Numbers from 0 to 9. + + + + Numeric + Numeric + + + + A whitespace, a tab and a new line character. + A whitespace, a tab and a new line character. + + + + Whitespace + Whitespace + + + + Includes all above and all others. + Includes all above and all others. + + + + Binary + Binary + + + + Use characters from my custom set: + Use characters from my custom set: + + + + Maximum length + Maximum length + + + + If you type some character multiple times, it's more likely to be used. + If you type some character multiple times, it's more likely to be used. + + + + PopulateScript + + + Script + Script + + + + PopulateScriptConfig + + + Initialization code (optional) + Initialization code (optional) + + + + Per step code + Per step code + + + + Language + Language + + + + Help + Help + + + + PopulateSequence + + + Sequence + Sequence + + + + PopulateSequenceConfig + + + Start value: + Start value: + + + + Step: + Step: + + + + PopulateWorker + + + Could not start transaction in order to perform table populating. Error details: %1 + Could not start transaction in order to perform table populating. Error details: %1 + + + + Error while populating table: %1 + Error while populating table: %1 + + + + Could not commit transaction after table populating. Error details: %1 + Could not commit transaction after table populating. Error details: %1 + + + + QObject + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Could not open database: %1 + Could not open database: %1 + + + + Result set expired or no row available. + Result set expired or no row available. + + + + + Could not load extension %1: %2 + Could not load extension %1: %2 + + + + Could not run WAL checkpoint: %1 + Could not run WAL checkpoint: %1 + + + + Could not close database: %1 + Could not close database: %1 + + + + Could not attach database %1: %2 + Could not attach database %1: %2 + + + + + Incomplete query. + Incomplete query. + + + + Parser stack overflow + Parser stack overflow + + + + Syntax error + Syntax error + + + + Could not open dictionary file %1 for reading. + Could not open dictionary file %1 for reading. + + + + Dictionary file must exist and be readable. + Dictionary file must exist and be readable. + + + + Maximum value cannot be less than minimum value. + Maximum value cannot be less than minimum value. + + + + Maximum length cannot be less than minimum length. + Maximum length cannot be less than minimum length. + + + + Custom character set cannot be empty. + Custom character set cannot be empty. + + + + Could not find plugin to support scripting language: %1 + Could not find plugin to support scripting language: %1 + + + + Error while executing populating initial code: %1 + Error while executing populating initial code: %1 + + + + Error while executing populating code: %1 + Error while executing populating code: %1 + + + + Select implementation language. + Select implementation language. + + + + Implementation code cannot be empty. + Implementation code cannot be empty. + + + + Could not resolve data source for column: %1 + Could not resolve data source for column: %1 + + + + Could not resolve table for column '%1'. + Could not resolve table for column '%1'. + + + + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Unable to create a file at following locations: %1. + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Unable to create a file at following locations: %1. + + + + General purpose + plugin category name + General purpose + + + + Database support + plugin category name + Database support + + + + Code formatter + plugin category name + Code formatter + + + + Scripting languages + plugin category name + Scripting languages + + + + Exporting + plugin category name + Exporting + + + + Importing + plugin category name + Importing + + + + Table populating + plugin category name + Table populating + + + + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. + + + + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. + + + + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. + + + + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. + + + + Cannot not update trigger %1 according to table %2 modification. + Cannot not update trigger %1 according to table %2 modification. + + + + Cannot not update view %1 according to table %2 modifications. +The view will remain as it is. + Cannot not update view %1 according to table %2 modifications. +The view will remain as it is. + + + + + + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. + + + + Could not parse DDL of the view to be created. Details: %1 + Could not parse DDL of the view to be created. Details: %1 + + + + Parsed query is not CREATE VIEW. It's: %1 + Parsed query is not CREATE VIEW. It's: %1 + + + + SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. + SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. + + + + QueryExecutor + + + Execution interrupted. + Execution interrupted. + + + + Database is not open. + Database is not open. + + + + Only one query can be executed simultaneously. + Only one query can be executed simultaneously. + + + + + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 + + + + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. + + + + ScriptingQtDbProxy + + + No database available in current context, while called JavaScript's %1 command. + No database available in current context, while called JavaScript's %1 command. + + + + Error from %1: %2 + Error from %1: %2 + + + + SqlFileExecutor + + + Could not execute SQL, because application has failed to start transaction: %1 + Could not execute SQL, because application has failed to start transaction: %1 + + + + Execution from file cancelled. Any queries executed so far have been rolled back. + Execution from file cancelled. Any queries executed so far have been rolled back. + + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Could not execute SQL, because application has failed to commit the transaction: %1 + Could not execute SQL, because application has failed to commit the transaction: %1 + + + + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. + + + + Finished executing %1 queries in %2 seconds. + Finished executing %1 queries in %2 seconds. + + + + Could not execute SQL due to error. + Could not execute SQL due to error. + + + + SqlHistoryModel + + + Database + sql history header + Database + + + + Execution date + sql history header + Execution date + + + + Time spent + sql history header + Time spent + + + + Rows affected + sql history header + Rows affected + + + + SQL + sql history header + SQL + + + + UpdateManager + + + Could not check for updates (%1). + Could not check for updates (%1). + + + diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_kaa.ts b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_kaa.ts new file mode 100644 index 0000000..f3ecb43 --- /dev/null +++ b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_kaa.ts @@ -0,0 +1,1101 @@ + + + + + AbstractDb + + + + Cannot execute query on closed database. + Cannot execute query on closed database. + + + + Error attaching database %1: %2 + Error attaching database %1: %2 + + + + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + + + + ChainExecutor + + + The database for executing queries was not defined. + chain executor + The database for executing queries was not defined. + + + + The database for executing queries was not open. + chain executor + The database for executing queries was not open. + + + + Could not disable foreign keys in the database. Details: %1 + chain executor + Could not disable foreign keys in the database. Details: %1 + + + + Could not start a database transaction. Details: %1 + chain executor + Could not start a database transaction. Details: %1 + + + + Interrupted + chain executor + Interrupted + + + + Could not commit a database transaction. Details: %1 + chain executor + Could not commit a database transaction. Details: %1 + + + + CompletionHelper + + + New row reference + New row reference + + + + Old row reference + Old row reference + + + + New table name + New table name + + + + New index name + New index name + + + + New view name + New view name + + + + New trigger name + New trigger name + + + + Table or column alias + Table or column alias + + + + transaction name + transaction name + + + + New column name + New column name + + + + Column data type + Column data type + + + + Constraint name + Constraint name + + + + Error message + Error message + + + + Any word + Any word + + + + Default database + Default database + + + + Temporary objects database + Temporary objects database + + + + ConfigImpl + + + Could not start database transaction for deleting SQL history, therefore it's not deleted. + Could not start database transaction for deleting SQL history, therefore it's not deleted. + + + + Could not commit database transaction for deleting SQL history, therefore it's not deleted. + Could not commit database transaction for deleting SQL history, therefore it's not deleted. + + + + DbManagerImpl + + + Could not add database %1: %2 + Could not add database %1: %2 + + + + Database %1 could not be updated, because of an error: %2 + Database %1 could not be updated, because of an error: %2 + + + + + Database file doesn't exist. + Database file doesn't exist. + + + + + + No supporting plugin loaded. + No supporting plugin loaded. + + + + Database could not be initialized. + Database could not be initialized. + + + + No suitable database driver plugin found. + No suitable database driver plugin found. + + + + DbObjectOrganizer + + + + Error while creating table in target database: %1 + Error while creating table in target database: %1 + + + + Could not parse table. + Could not parse table. + + + + Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. + Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. + + + + Error while copying data for table %1: %2 + Error while copying data for table %1: %2 + + + + + + Error while copying data to table %1: %2 + Error while copying data to table %1: %2 + + + + Error while dropping source view %1: %2 +Tables, indexes, triggers and views copied to database %3 will remain. + Error while dropping source view %1: %2 +Tables, indexes, triggers and views copied to database %3 will remain. + + + + Error while creating view in target database: %1 + Error while creating view in target database: %1 + + + + Error while creating index in target database: %1 + Error while creating index in target database: %1 + + + + Error while creating trigger in target database: %1 + Error while creating trigger in target database: %1 + + + + + + Could not parse object '%1' in order to move or copy it. + Could not parse object '%1' in order to move or copy it. + + + + DdlHistoryModel + + + Database name + ddl history header + Database name + + + + Database file + ddl history header + Database file + + + + Date of execution + ddl history header + Date of execution + + + + Changes + ddl history header + Changes + + + + ExportManager + + + Export plugin %1 doesn't support exporing query results. + Export plugin %1 doesn't support exporing query results. + + + + Export plugin %1 doesn't support exporing tables. + Export plugin %1 doesn't support exporing tables. + + + + Export plugin %1 doesn't support exporing databases. + Export plugin %1 doesn't support exporing databases. + + + + Export format '%1' is not supported. Supported formats are: %2. + Export format '%1' is not supported. Supported formats are: %2. + + + + Export to the clipboard was successful. + Export to the clipboard was successful. + + + + Export to the file '%1' was successful. + Export to the file '%1' was successful. + + + + Export was successful. + Export was successful. + + + + Could not export to file %1. File cannot be open for writting. + Could not export to file %1. File cannot be open for writting. + + + + ExportWorker + + + Error while exporting query results: %1 + Error while exporting query results: %1 + + + + Error while counting data column width to export from query results: %1 + Error while counting data column width to export from query results: %1 + + + + + Could not parse %1 in order to export it. It will be excluded from the export output. + Could not parse %1 in order to export it. It will be excluded from the export output. + + + + Error while reading data to export from table %1: %2 + Error while reading data to export from table %1: %2 + + + + Error while counting data to export from table %1: %2 + Error while counting data to export from table %1: %2 + + + + Error while counting data column width to export from table %1: %2 + Error while counting data column width to export from table %1: %2 + + + + FunctionManagerImpl + + + Invalid number of arguments to function '%1'. Expected %2, but got %3. + Invalid number of arguments to function '%1'. Expected %2, but got %3. + + + + No such function registered in SQLiteStudio: %1(%2) + No such function registered in SQLiteStudio: %1(%2) + + + + Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. + Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. + + + + Invalid regular expression pattern: %1 + Invalid regular expression pattern: %1 + + + + + Could not open file %1 for reading: %2 + Could not open file %1 for reading: %2 + + + + Could not open file %1 for writting: %2 + Could not open file %1 for writting: %2 + + + + Error while writting to file %1: %2 + Error while writting to file %1: %2 + + + + Unsupported scripting language: %1 + Unsupported scripting language: %1 + + + + GenericExportPlugin + + + Could not initialize text codec for exporting. Using default codec: %1 + Could not initialize text codec for exporting. Using default codec: %1 + + + + ImportManager + + + Imported data to the table '%1' successfully. Number of imported rows: %2 + Imported data to the table '%1' successfully. Number of imported rows: %2 + + + + ImportWorker + + + No columns provided by the import plugin. + No columns provided by the import plugin. + + + + Could not start transaction in order to import a data: %1 + Could not start transaction in order to import a data: %1 + + + + Could not commit transaction for imported data: %1 + Could not commit transaction for imported data: %1 + + + + Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. + Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. + + + + Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. + Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. + + + + Could not create table to import to: %1 + Could not create table to import to: %1 + + + + + + Error while importing data: %1 + Error while importing data: %1 + + + + + Interrupted. + import process status update + Interrupted. + + + + Could not import data row number %1. The row was ignored. Problem details: %2 + Could not import data row number %1. The row was ignored. Problem details: %2 + + + + PluginManagerImpl + + + Cannot load plugin %1, because it's in conflict with plugin %2. + Cannot load plugin %1, because it's in conflict with plugin %2. + + + + Cannot load plugin %1, because its dependency was not loaded: %2. + Cannot load plugin %1, because its dependency was not loaded: %2. + + + + Cannot load plugin %1. Error details: %2 + Cannot load plugin %1. Error details: %2 + + + + Cannot load plugin %1 (error while initializing plugin). + Cannot load plugin %1 (error while initializing plugin). + + + + min: %1 + plugin dependency version + min: %1 + + + + max: %1 + plugin dependency version + max: %1 + + + + PopulateConstant + + + Constant + populate constant plugin name + Constant + + + + PopulateConstantConfig + + + Constant value: + Constant value: + + + + PopulateDictionary + + + Dictionary + dictionary populating plugin name + Dictionary + + + + PopulateDictionaryConfig + + + Dictionary file + Dictionary file + + + + Pick dictionary file + Pick dictionary file + + + + Word separator + Word separator + + + + Whitespace + Whitespace + + + + Line break + Line break + + + + Method of using words + Method of using words + + + + Ordered + Ordered + + + + Randomly + Randomly + + + + PopulateManager + + + Table '%1' populated successfully. + Table '%1' populated successfully. + + + + PopulateRandom + + + Random number + Random number + + + + PopulateRandomConfig + + + Constant prefix + Constant prefix + + + + No prefix + No prefix + + + + Minimum value + Minimum value + + + + Maximum value + Maximum value + + + + Constant suffix + Constant suffix + + + + No suffix + No suffix + + + + PopulateRandomText + + + Random text + Random text + + + + PopulateRandomTextConfig + + + Use characters from common sets: + Use characters from common sets: + + + + Minimum length + Minimum length + + + + Letters from a to z. + Letters from a to z. + + + + Alpha + Alpha + + + + Numbers from 0 to 9. + Numbers from 0 to 9. + + + + Numeric + Numeric + + + + A whitespace, a tab and a new line character. + A whitespace, a tab and a new line character. + + + + Whitespace + Whitespace + + + + Includes all above and all others. + Includes all above and all others. + + + + Binary + Binary + + + + Use characters from my custom set: + Use characters from my custom set: + + + + Maximum length + Maximum length + + + + If you type some character multiple times, it's more likely to be used. + If you type some character multiple times, it's more likely to be used. + + + + PopulateScript + + + Script + Script + + + + PopulateScriptConfig + + + Initialization code (optional) + Initialization code (optional) + + + + Per step code + Per step code + + + + Language + Language + + + + Help + Help + + + + PopulateSequence + + + Sequence + Sequence + + + + PopulateSequenceConfig + + + Start value: + Start value: + + + + Step: + Qádem: + + + + PopulateWorker + + + Could not start transaction in order to perform table populating. Error details: %1 + Could not start transaction in order to perform table populating. Error details: %1 + + + + Error while populating table: %1 + Error while populating table: %1 + + + + Could not commit transaction after table populating. Error details: %1 + Could not commit transaction after table populating. Error details: %1 + + + + QObject + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Could not open database: %1 + Could not open database: %1 + + + + Result set expired or no row available. + Result set expired or no row available. + + + + + Could not load extension %1: %2 + Could not load extension %1: %2 + + + + Could not run WAL checkpoint: %1 + Could not run WAL checkpoint: %1 + + + + Could not close database: %1 + Could not close database: %1 + + + + Could not attach database %1: %2 + Could not attach database %1: %2 + + + + + Incomplete query. + Incomplete query. + + + + Parser stack overflow + Parser stack overflow + + + + Syntax error + Syntax error + + + + Could not open dictionary file %1 for reading. + Could not open dictionary file %1 for reading. + + + + Dictionary file must exist and be readable. + Dictionary file must exist and be readable. + + + + Maximum value cannot be less than minimum value. + Maximum value cannot be less than minimum value. + + + + Maximum length cannot be less than minimum length. + Maximum length cannot be less than minimum length. + + + + Custom character set cannot be empty. + Custom character set cannot be empty. + + + + Could not find plugin to support scripting language: %1 + Could not find plugin to support scripting language: %1 + + + + Error while executing populating initial code: %1 + Error while executing populating initial code: %1 + + + + Error while executing populating code: %1 + Error while executing populating code: %1 + + + + Select implementation language. + Select implementation language. + + + + Implementation code cannot be empty. + Implementation code cannot be empty. + + + + Could not resolve data source for column: %1 + Could not resolve data source for column: %1 + + + + Could not resolve table for column '%1'. + Could not resolve table for column '%1'. + + + + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Unable to create a file at following locations: %1. + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Unable to create a file at following locations: %1. + + + + General purpose + plugin category name + General purpose + + + + Database support + plugin category name + Database support + + + + Code formatter + plugin category name + Code formatter + + + + Scripting languages + plugin category name + Scripting languages + + + + Exporting + plugin category name + Exporting + + + + Importing + plugin category name + Importing + + + + Table populating + plugin category name + Table populating + + + + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. + + + + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. + + + + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. + + + + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. + + + + Cannot not update trigger %1 according to table %2 modification. + Cannot not update trigger %1 according to table %2 modification. + + + + Cannot not update view %1 according to table %2 modifications. +The view will remain as it is. + Cannot not update view %1 according to table %2 modifications. +The view will remain as it is. + + + + + + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. + + + + Could not parse DDL of the view to be created. Details: %1 + Could not parse DDL of the view to be created. Details: %1 + + + + Parsed query is not CREATE VIEW. It's: %1 + Parsed query is not CREATE VIEW. It's: %1 + + + + SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. + SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. + + + + QueryExecutor + + + Execution interrupted. + Execution interrupted. + + + + Database is not open. + Database is not open. + + + + Only one query can be executed simultaneously. + Only one query can be executed simultaneously. + + + + + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 + + + + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. + + + + ScriptingQtDbProxy + + + No database available in current context, while called JavaScript's %1 command. + No database available in current context, while called JavaScript's %1 command. + + + + Error from %1: %2 + Error from %1: %2 + + + + SqlFileExecutor + + + Could not execute SQL, because application has failed to start transaction: %1 + Could not execute SQL, because application has failed to start transaction: %1 + + + + Execution from file cancelled. Any queries executed so far have been rolled back. + Execution from file cancelled. Any queries executed so far have been rolled back. + + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Could not execute SQL, because application has failed to commit the transaction: %1 + Could not execute SQL, because application has failed to commit the transaction: %1 + + + + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. + + + + Finished executing %1 queries in %2 seconds. + Finished executing %1 queries in %2 seconds. + + + + Could not execute SQL due to error. + Could not execute SQL due to error. + + + + SqlHistoryModel + + + Database + sql history header + Database + + + + Execution date + sql history header + Execution date + + + + Time spent + sql history header + Time spent + + + + Rows affected + sql history header + Rows affected + + + + SQL + sql history header + SQL + + + + UpdateManager + + + Could not check for updates (%1). + Could not check for updates (%1). + + + diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_ko_KR.ts b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_ko_KR.ts new file mode 100644 index 0000000..ee8f7d5 --- /dev/null +++ b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_ko_KR.ts @@ -0,0 +1,1101 @@ + + + + + AbstractDb + + + + Cannot execute query on closed database. + 연결되지 않은 데이터베이스에서 쿼리를 실행할 수 없습니다 + + + + Error attaching database %1: %2 + 데이터베이스 등록 중 오류 %1: %2 + + + + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + + + + ChainExecutor + + + The database for executing queries was not defined. + chain executor + The database for executing queries was not defined. + + + + The database for executing queries was not open. + chain executor + The database for executing queries was not open. + + + + Could not disable foreign keys in the database. Details: %1 + chain executor + Could not disable foreign keys in the database. Details: %1 + + + + Could not start a database transaction. Details: %1 + chain executor + Could not start a database transaction. Details: %1 + + + + Interrupted + chain executor + Interrupted + + + + Could not commit a database transaction. Details: %1 + chain executor + Could not commit a database transaction. Details: %1 + + + + CompletionHelper + + + New row reference + New row reference + + + + Old row reference + Old row reference + + + + New table name + New table name + + + + New index name + New index name + + + + New view name + New view name + + + + New trigger name + New trigger name + + + + Table or column alias + Table or column alias + + + + transaction name + transaction name + + + + New column name + New column name + + + + Column data type + Column data type + + + + Constraint name + Constraint name + + + + Error message + 오류 메시지 + + + + Any word + Any word + + + + Default database + 기본 데이터베이스 + + + + Temporary objects database + Temporary objects database + + + + ConfigImpl + + + Could not start database transaction for deleting SQL history, therefore it's not deleted. + Could not start database transaction for deleting SQL history, therefore it's not deleted. + + + + Could not commit database transaction for deleting SQL history, therefore it's not deleted. + Could not commit database transaction for deleting SQL history, therefore it's not deleted. + + + + DbManagerImpl + + + Could not add database %1: %2 + Could not add database %1: %2 + + + + Database %1 could not be updated, because of an error: %2 + Database %1 could not be updated, because of an error: %2 + + + + + Database file doesn't exist. + Database file doesn't exist. + + + + + + No supporting plugin loaded. + No supporting plugin loaded. + + + + Database could not be initialized. + Database could not be initialized. + + + + No suitable database driver plugin found. + No suitable database driver plugin found. + + + + DbObjectOrganizer + + + + Error while creating table in target database: %1 + Error while creating table in target database: %1 + + + + Could not parse table. + Could not parse table. + + + + Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. + Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. + + + + Error while copying data for table %1: %2 + Error while copying data for table %1: %2 + + + + + + Error while copying data to table %1: %2 + Error while copying data to table %1: %2 + + + + Error while dropping source view %1: %2 +Tables, indexes, triggers and views copied to database %3 will remain. + Error while dropping source view %1: %2 +Tables, indexes, triggers and views copied to database %3 will remain. + + + + Error while creating view in target database: %1 + Error while creating view in target database: %1 + + + + Error while creating index in target database: %1 + Error while creating index in target database: %1 + + + + Error while creating trigger in target database: %1 + Error while creating trigger in target database: %1 + + + + + + Could not parse object '%1' in order to move or copy it. + Could not parse object '%1' in order to move or copy it. + + + + DdlHistoryModel + + + Database name + ddl history header + 데이터베이스 이름 + + + + Database file + ddl history header + 데이터베이스 파일 + + + + Date of execution + ddl history header + Date of execution + + + + Changes + ddl history header + Changes + + + + ExportManager + + + Export plugin %1 doesn't support exporing query results. + Export plugin %1 doesn't support exporing query results. + + + + Export plugin %1 doesn't support exporing tables. + Export plugin %1 doesn't support exporing tables. + + + + Export plugin %1 doesn't support exporing databases. + Export plugin %1 doesn't support exporing databases. + + + + Export format '%1' is not supported. Supported formats are: %2. + Export format '%1' is not supported. Supported formats are: %2. + + + + Export to the clipboard was successful. + Export to the clipboard was successful. + + + + Export to the file '%1' was successful. + Export to the file '%1' was successful. + + + + Export was successful. + Export was successful. + + + + Could not export to file %1. File cannot be open for writting. + Could not export to file %1. File cannot be open for writting. + + + + ExportWorker + + + Error while exporting query results: %1 + Error while exporting query results: %1 + + + + Error while counting data column width to export from query results: %1 + Error while counting data column width to export from query results: %1 + + + + + Could not parse %1 in order to export it. It will be excluded from the export output. + Could not parse %1 in order to export it. It will be excluded from the export output. + + + + Error while reading data to export from table %1: %2 + Error while reading data to export from table %1: %2 + + + + Error while counting data to export from table %1: %2 + Error while counting data to export from table %1: %2 + + + + Error while counting data column width to export from table %1: %2 + Error while counting data column width to export from table %1: %2 + + + + FunctionManagerImpl + + + Invalid number of arguments to function '%1'. Expected %2, but got %3. + Invalid number of arguments to function '%1'. Expected %2, but got %3. + + + + No such function registered in SQLiteStudio: %1(%2) + No such function registered in SQLiteStudio: %1(%2) + + + + Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. + Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. + + + + Invalid regular expression pattern: %1 + Invalid regular expression pattern: %1 + + + + + Could not open file %1 for reading: %2 + Could not open file %1 for reading: %2 + + + + Could not open file %1 for writting: %2 + Could not open file %1 for writting: %2 + + + + Error while writting to file %1: %2 + Error while writting to file %1: %2 + + + + Unsupported scripting language: %1 + Unsupported scripting language: %1 + + + + GenericExportPlugin + + + Could not initialize text codec for exporting. Using default codec: %1 + Could not initialize text codec for exporting. Using default codec: %1 + + + + ImportManager + + + Imported data to the table '%1' successfully. Number of imported rows: %2 + Imported data to the table '%1' successfully. Number of imported rows: %2 + + + + ImportWorker + + + No columns provided by the import plugin. + No columns provided by the import plugin. + + + + Could not start transaction in order to import a data: %1 + Could not start transaction in order to import a data: %1 + + + + Could not commit transaction for imported data: %1 + Could not commit transaction for imported data: %1 + + + + Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. + Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. + + + + Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. + Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. + + + + Could not create table to import to: %1 + Could not create table to import to: %1 + + + + + + Error while importing data: %1 + Error while importing data: %1 + + + + + Interrupted. + import process status update + Interrupted. + + + + Could not import data row number %1. The row was ignored. Problem details: %2 + Could not import data row number %1. The row was ignored. Problem details: %2 + + + + PluginManagerImpl + + + Cannot load plugin %1, because it's in conflict with plugin %2. + Cannot load plugin %1, because it's in conflict with plugin %2. + + + + Cannot load plugin %1, because its dependency was not loaded: %2. + Cannot load plugin %1, because its dependency was not loaded: %2. + + + + Cannot load plugin %1. Error details: %2 + Cannot load plugin %1. Error details: %2 + + + + Cannot load plugin %1 (error while initializing plugin). + Cannot load plugin %1 (error while initializing plugin). + + + + min: %1 + plugin dependency version + min: %1 + + + + max: %1 + plugin dependency version + max: %1 + + + + PopulateConstant + + + Constant + populate constant plugin name + Constant + + + + PopulateConstantConfig + + + Constant value: + Constant value: + + + + PopulateDictionary + + + Dictionary + dictionary populating plugin name + Dictionary + + + + PopulateDictionaryConfig + + + Dictionary file + Dictionary file + + + + Pick dictionary file + Pick dictionary file + + + + Word separator + Word separator + + + + Whitespace + Whitespace + + + + Line break + Line break + + + + Method of using words + Method of using words + + + + Ordered + Ordered + + + + Randomly + Randomly + + + + PopulateManager + + + Table '%1' populated successfully. + Table '%1' populated successfully. + + + + PopulateRandom + + + Random number + Random number + + + + PopulateRandomConfig + + + Constant prefix + Constant prefix + + + + No prefix + No prefix + + + + Minimum value + Minimum value + + + + Maximum value + Maximum value + + + + Constant suffix + Constant suffix + + + + No suffix + No suffix + + + + PopulateRandomText + + + Random text + Random text + + + + PopulateRandomTextConfig + + + Use characters from common sets: + Use characters from common sets: + + + + Minimum length + Minimum length + + + + Letters from a to z. + Letters from a to z. + + + + Alpha + Alpha + + + + Numbers from 0 to 9. + Numbers from 0 to 9. + + + + Numeric + Numeric + + + + A whitespace, a tab and a new line character. + A whitespace, a tab and a new line character. + + + + Whitespace + Whitespace + + + + Includes all above and all others. + Includes all above and all others. + + + + Binary + Binary + + + + Use characters from my custom set: + Use characters from my custom set: + + + + Maximum length + Maximum length + + + + If you type some character multiple times, it's more likely to be used. + If you type some character multiple times, it's more likely to be used. + + + + PopulateScript + + + Script + Script + + + + PopulateScriptConfig + + + Initialization code (optional) + Initialization code (optional) + + + + Per step code + Per step code + + + + Language + Language + + + + Help + Help + + + + PopulateSequence + + + Sequence + Sequence + + + + PopulateSequenceConfig + + + Start value: + Start value: + + + + Step: + Step: + + + + PopulateWorker + + + Could not start transaction in order to perform table populating. Error details: %1 + Could not start transaction in order to perform table populating. Error details: %1 + + + + Error while populating table: %1 + Error while populating table: %1 + + + + Could not commit transaction after table populating. Error details: %1 + Could not commit transaction after table populating. Error details: %1 + + + + QObject + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Could not open database: %1 + Could not open database: %1 + + + + Result set expired or no row available. + Result set expired or no row available. + + + + + Could not load extension %1: %2 + Could not load extension %1: %2 + + + + Could not run WAL checkpoint: %1 + Could not run WAL checkpoint: %1 + + + + Could not close database: %1 + Could not close database: %1 + + + + Could not attach database %1: %2 + Could not attach database %1: %2 + + + + + Incomplete query. + Incomplete query. + + + + Parser stack overflow + Parser stack overflow + + + + Syntax error + Syntax error + + + + Could not open dictionary file %1 for reading. + Could not open dictionary file %1 for reading. + + + + Dictionary file must exist and be readable. + Dictionary file must exist and be readable. + + + + Maximum value cannot be less than minimum value. + Maximum value cannot be less than minimum value. + + + + Maximum length cannot be less than minimum length. + Maximum length cannot be less than minimum length. + + + + Custom character set cannot be empty. + Custom character set cannot be empty. + + + + Could not find plugin to support scripting language: %1 + Could not find plugin to support scripting language: %1 + + + + Error while executing populating initial code: %1 + Error while executing populating initial code: %1 + + + + Error while executing populating code: %1 + Error while executing populating code: %1 + + + + Select implementation language. + Select implementation language. + + + + Implementation code cannot be empty. + Implementation code cannot be empty. + + + + Could not resolve data source for column: %1 + Could not resolve data source for column: %1 + + + + Could not resolve table for column '%1'. + Could not resolve table for column '%1'. + + + + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Unable to create a file at following locations: %1. + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Unable to create a file at following locations: %1. + + + + General purpose + plugin category name + General purpose + + + + Database support + plugin category name + Database support + + + + Code formatter + plugin category name + Code formatter + + + + Scripting languages + plugin category name + Scripting languages + + + + Exporting + plugin category name + Exporting + + + + Importing + plugin category name + Importing + + + + Table populating + plugin category name + Table populating + + + + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. + + + + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. + + + + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. + + + + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. + + + + Cannot not update trigger %1 according to table %2 modification. + Cannot not update trigger %1 according to table %2 modification. + + + + Cannot not update view %1 according to table %2 modifications. +The view will remain as it is. + Cannot not update view %1 according to table %2 modifications. +The view will remain as it is. + + + + + + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. + + + + Could not parse DDL of the view to be created. Details: %1 + Could not parse DDL of the view to be created. Details: %1 + + + + Parsed query is not CREATE VIEW. It's: %1 + Parsed query is not CREATE VIEW. It's: %1 + + + + SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. + SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. + + + + QueryExecutor + + + Execution interrupted. + Execution interrupted. + + + + Database is not open. + Database is not open. + + + + Only one query can be executed simultaneously. + Only one query can be executed simultaneously. + + + + + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 + + + + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. + + + + ScriptingQtDbProxy + + + No database available in current context, while called JavaScript's %1 command. + No database available in current context, while called JavaScript's %1 command. + + + + Error from %1: %2 + Error from %1: %2 + + + + SqlFileExecutor + + + Could not execute SQL, because application has failed to start transaction: %1 + Could not execute SQL, because application has failed to start transaction: %1 + + + + Execution from file cancelled. Any queries executed so far have been rolled back. + Execution from file cancelled. Any queries executed so far have been rolled back. + + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Could not execute SQL, because application has failed to commit the transaction: %1 + Could not execute SQL, because application has failed to commit the transaction: %1 + + + + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. + + + + Finished executing %1 queries in %2 seconds. + Finished executing %1 queries in %2 seconds. + + + + Could not execute SQL due to error. + Could not execute SQL due to error. + + + + SqlHistoryModel + + + Database + sql history header + Database + + + + Execution date + sql history header + Execution date + + + + Time spent + sql history header + Time spent + + + + Rows affected + sql history header + Rows affected + + + + SQL + sql history header + SQL + + + + UpdateManager + + + Could not check for updates (%1). + Could not check for updates (%1). + + + diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_nl_NL.ts b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_nl_NL.ts new file mode 100644 index 0000000..2034b82 --- /dev/null +++ b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_nl_NL.ts @@ -0,0 +1,1101 @@ + + + + + AbstractDb + + + + Cannot execute query on closed database. + Cannot execute query on closed database. + + + + Error attaching database %1: %2 + Error attaching database %1: %2 + + + + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + + + + ChainExecutor + + + The database for executing queries was not defined. + chain executor + The database for executing queries was not defined. + + + + The database for executing queries was not open. + chain executor + The database for executing queries was not open. + + + + Could not disable foreign keys in the database. Details: %1 + chain executor + Could not disable foreign keys in the database. Details: %1 + + + + Could not start a database transaction. Details: %1 + chain executor + Could not start a database transaction. Details: %1 + + + + Interrupted + chain executor + Interrupted + + + + Could not commit a database transaction. Details: %1 + chain executor + Could not commit a database transaction. Details: %1 + + + + CompletionHelper + + + New row reference + New row reference + + + + Old row reference + Old row reference + + + + New table name + New table name + + + + New index name + New index name + + + + New view name + New view name + + + + New trigger name + New trigger name + + + + Table or column alias + Table or column alias + + + + transaction name + transaction name + + + + New column name + New column name + + + + Column data type + Column data type + + + + Constraint name + Constraint name + + + + Error message + Error message + + + + Any word + Any word + + + + Default database + Default database + + + + Temporary objects database + Temporary objects database + + + + ConfigImpl + + + Could not start database transaction for deleting SQL history, therefore it's not deleted. + Could not start database transaction for deleting SQL history, therefore it's not deleted. + + + + Could not commit database transaction for deleting SQL history, therefore it's not deleted. + Could not commit database transaction for deleting SQL history, therefore it's not deleted. + + + + DbManagerImpl + + + Could not add database %1: %2 + Could not add database %1: %2 + + + + Database %1 could not be updated, because of an error: %2 + Database %1 could not be updated, because of an error: %2 + + + + + Database file doesn't exist. + Database file doesn't exist. + + + + + + No supporting plugin loaded. + No supporting plugin loaded. + + + + Database could not be initialized. + Database could not be initialized. + + + + No suitable database driver plugin found. + No suitable database driver plugin found. + + + + DbObjectOrganizer + + + + Error while creating table in target database: %1 + Error while creating table in target database: %1 + + + + Could not parse table. + Could not parse table. + + + + Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. + Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. + + + + Error while copying data for table %1: %2 + Error while copying data for table %1: %2 + + + + + + Error while copying data to table %1: %2 + Error while copying data to table %1: %2 + + + + Error while dropping source view %1: %2 +Tables, indexes, triggers and views copied to database %3 will remain. + Error while dropping source view %1: %2 +Tables, indexes, triggers and views copied to database %3 will remain. + + + + Error while creating view in target database: %1 + Error while creating view in target database: %1 + + + + Error while creating index in target database: %1 + Error while creating index in target database: %1 + + + + Error while creating trigger in target database: %1 + Error while creating trigger in target database: %1 + + + + + + Could not parse object '%1' in order to move or copy it. + Could not parse object '%1' in order to move or copy it. + + + + DdlHistoryModel + + + Database name + ddl history header + Database name + + + + Database file + ddl history header + Database file + + + + Date of execution + ddl history header + Date of execution + + + + Changes + ddl history header + Changes + + + + ExportManager + + + Export plugin %1 doesn't support exporing query results. + Export plugin %1 doesn't support exporing query results. + + + + Export plugin %1 doesn't support exporing tables. + Export plugin %1 doesn't support exporing tables. + + + + Export plugin %1 doesn't support exporing databases. + Export plugin %1 doesn't support exporing databases. + + + + Export format '%1' is not supported. Supported formats are: %2. + Export format '%1' is not supported. Supported formats are: %2. + + + + Export to the clipboard was successful. + Export to the clipboard was successful. + + + + Export to the file '%1' was successful. + Export to the file '%1' was successful. + + + + Export was successful. + Export was successful. + + + + Could not export to file %1. File cannot be open for writting. + Could not export to file %1. File cannot be open for writting. + + + + ExportWorker + + + Error while exporting query results: %1 + Error while exporting query results: %1 + + + + Error while counting data column width to export from query results: %1 + Error while counting data column width to export from query results: %1 + + + + + Could not parse %1 in order to export it. It will be excluded from the export output. + Could not parse %1 in order to export it. It will be excluded from the export output. + + + + Error while reading data to export from table %1: %2 + Error while reading data to export from table %1: %2 + + + + Error while counting data to export from table %1: %2 + Error while counting data to export from table %1: %2 + + + + Error while counting data column width to export from table %1: %2 + Error while counting data column width to export from table %1: %2 + + + + FunctionManagerImpl + + + Invalid number of arguments to function '%1'. Expected %2, but got %3. + Invalid number of arguments to function '%1'. Expected %2, but got %3. + + + + No such function registered in SQLiteStudio: %1(%2) + No such function registered in SQLiteStudio: %1(%2) + + + + Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. + Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. + + + + Invalid regular expression pattern: %1 + Invalid regular expression pattern: %1 + + + + + Could not open file %1 for reading: %2 + Could not open file %1 for reading: %2 + + + + Could not open file %1 for writting: %2 + Could not open file %1 for writting: %2 + + + + Error while writting to file %1: %2 + Error while writting to file %1: %2 + + + + Unsupported scripting language: %1 + Unsupported scripting language: %1 + + + + GenericExportPlugin + + + Could not initialize text codec for exporting. Using default codec: %1 + Could not initialize text codec for exporting. Using default codec: %1 + + + + ImportManager + + + Imported data to the table '%1' successfully. Number of imported rows: %2 + Imported data to the table '%1' successfully. Number of imported rows: %2 + + + + ImportWorker + + + No columns provided by the import plugin. + No columns provided by the import plugin. + + + + Could not start transaction in order to import a data: %1 + Could not start transaction in order to import a data: %1 + + + + Could not commit transaction for imported data: %1 + Could not commit transaction for imported data: %1 + + + + Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. + Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. + + + + Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. + Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. + + + + Could not create table to import to: %1 + Could not create table to import to: %1 + + + + + + Error while importing data: %1 + Error while importing data: %1 + + + + + Interrupted. + import process status update + Interrupted. + + + + Could not import data row number %1. The row was ignored. Problem details: %2 + Could not import data row number %1. The row was ignored. Problem details: %2 + + + + PluginManagerImpl + + + Cannot load plugin %1, because it's in conflict with plugin %2. + Cannot load plugin %1, because it's in conflict with plugin %2. + + + + Cannot load plugin %1, because its dependency was not loaded: %2. + Cannot load plugin %1, because its dependency was not loaded: %2. + + + + Cannot load plugin %1. Error details: %2 + Cannot load plugin %1. Error details: %2 + + + + Cannot load plugin %1 (error while initializing plugin). + Cannot load plugin %1 (error while initializing plugin). + + + + min: %1 + plugin dependency version + min: %1 + + + + max: %1 + plugin dependency version + max: %1 + + + + PopulateConstant + + + Constant + populate constant plugin name + Constant + + + + PopulateConstantConfig + + + Constant value: + Constant value: + + + + PopulateDictionary + + + Dictionary + dictionary populating plugin name + Dictionary + + + + PopulateDictionaryConfig + + + Dictionary file + Dictionary file + + + + Pick dictionary file + Pick dictionary file + + + + Word separator + Word separator + + + + Whitespace + Whitespace + + + + Line break + Line break + + + + Method of using words + Method of using words + + + + Ordered + Ordered + + + + Randomly + Randomly + + + + PopulateManager + + + Table '%1' populated successfully. + Table '%1' populated successfully. + + + + PopulateRandom + + + Random number + Random number + + + + PopulateRandomConfig + + + Constant prefix + Constant prefix + + + + No prefix + No prefix + + + + Minimum value + Minimum value + + + + Maximum value + Maximum value + + + + Constant suffix + Constant suffix + + + + No suffix + No suffix + + + + PopulateRandomText + + + Random text + Random text + + + + PopulateRandomTextConfig + + + Use characters from common sets: + Use characters from common sets: + + + + Minimum length + Minimum length + + + + Letters from a to z. + Letters from a to z. + + + + Alpha + Alpha + + + + Numbers from 0 to 9. + Numbers from 0 to 9. + + + + Numeric + Numeric + + + + A whitespace, a tab and a new line character. + A whitespace, a tab and a new line character. + + + + Whitespace + Whitespace + + + + Includes all above and all others. + Includes all above and all others. + + + + Binary + Binary + + + + Use characters from my custom set: + Use characters from my custom set: + + + + Maximum length + Maximum length + + + + If you type some character multiple times, it's more likely to be used. + If you type some character multiple times, it's more likely to be used. + + + + PopulateScript + + + Script + Script + + + + PopulateScriptConfig + + + Initialization code (optional) + Initialization code (optional) + + + + Per step code + Per step code + + + + Language + Language + + + + Help + Help + + + + PopulateSequence + + + Sequence + Sequence + + + + PopulateSequenceConfig + + + Start value: + Start value: + + + + Step: + Step: + + + + PopulateWorker + + + Could not start transaction in order to perform table populating. Error details: %1 + Could not start transaction in order to perform table populating. Error details: %1 + + + + Error while populating table: %1 + Error while populating table: %1 + + + + Could not commit transaction after table populating. Error details: %1 + Could not commit transaction after table populating. Error details: %1 + + + + QObject + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Could not open database: %1 + Could not open database: %1 + + + + Result set expired or no row available. + Result set expired or no row available. + + + + + Could not load extension %1: %2 + Could not load extension %1: %2 + + + + Could not run WAL checkpoint: %1 + Could not run WAL checkpoint: %1 + + + + Could not close database: %1 + Could not close database: %1 + + + + Could not attach database %1: %2 + Could not attach database %1: %2 + + + + + Incomplete query. + Incomplete query. + + + + Parser stack overflow + Parser stack overflow + + + + Syntax error + Syntax error + + + + Could not open dictionary file %1 for reading. + Could not open dictionary file %1 for reading. + + + + Dictionary file must exist and be readable. + Dictionary file must exist and be readable. + + + + Maximum value cannot be less than minimum value. + Maximum value cannot be less than minimum value. + + + + Maximum length cannot be less than minimum length. + Maximum length cannot be less than minimum length. + + + + Custom character set cannot be empty. + Custom character set cannot be empty. + + + + Could not find plugin to support scripting language: %1 + Could not find plugin to support scripting language: %1 + + + + Error while executing populating initial code: %1 + Error while executing populating initial code: %1 + + + + Error while executing populating code: %1 + Error while executing populating code: %1 + + + + Select implementation language. + Select implementation language. + + + + Implementation code cannot be empty. + Implementation code cannot be empty. + + + + Could not resolve data source for column: %1 + Could not resolve data source for column: %1 + + + + Could not resolve table for column '%1'. + Could not resolve table for column '%1'. + + + + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Unable to create a file at following locations: %1. + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Unable to create a file at following locations: %1. + + + + General purpose + plugin category name + General purpose + + + + Database support + plugin category name + Database support + + + + Code formatter + plugin category name + Code formatter + + + + Scripting languages + plugin category name + Scripting languages + + + + Exporting + plugin category name + Exporting + + + + Importing + plugin category name + Importing + + + + Table populating + plugin category name + Table populating + + + + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. + + + + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. + + + + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. + + + + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. + + + + Cannot not update trigger %1 according to table %2 modification. + Cannot not update trigger %1 according to table %2 modification. + + + + Cannot not update view %1 according to table %2 modifications. +The view will remain as it is. + Cannot not update view %1 according to table %2 modifications. +The view will remain as it is. + + + + + + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. + + + + Could not parse DDL of the view to be created. Details: %1 + Could not parse DDL of the view to be created. Details: %1 + + + + Parsed query is not CREATE VIEW. It's: %1 + Parsed query is not CREATE VIEW. It's: %1 + + + + SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. + SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. + + + + QueryExecutor + + + Execution interrupted. + Execution interrupted. + + + + Database is not open. + Database is not open. + + + + Only one query can be executed simultaneously. + Only one query can be executed simultaneously. + + + + + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 + + + + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. + + + + ScriptingQtDbProxy + + + No database available in current context, while called JavaScript's %1 command. + No database available in current context, while called JavaScript's %1 command. + + + + Error from %1: %2 + Error from %1: %2 + + + + SqlFileExecutor + + + Could not execute SQL, because application has failed to start transaction: %1 + Could not execute SQL, because application has failed to start transaction: %1 + + + + Execution from file cancelled. Any queries executed so far have been rolled back. + Execution from file cancelled. Any queries executed so far have been rolled back. + + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Could not execute SQL, because application has failed to commit the transaction: %1 + Could not execute SQL, because application has failed to commit the transaction: %1 + + + + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. + + + + Finished executing %1 queries in %2 seconds. + Finished executing %1 queries in %2 seconds. + + + + Could not execute SQL due to error. + Could not execute SQL due to error. + + + + SqlHistoryModel + + + Database + sql history header + Database + + + + Execution date + sql history header + Execution date + + + + Time spent + sql history header + Time spent + + + + Rows affected + sql history header + Rows affected + + + + SQL + sql history header + SQL + + + + UpdateManager + + + Could not check for updates (%1). + Could not check for updates (%1). + + + diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_no_NO.ts b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_no_NO.ts new file mode 100644 index 0000000..e2d7736 --- /dev/null +++ b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_no_NO.ts @@ -0,0 +1,1101 @@ + + + + + AbstractDb + + + + Cannot execute query on closed database. + Cannot execute query on closed database. + + + + Error attaching database %1: %2 + Error attaching database %1: %2 + + + + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + + + + ChainExecutor + + + The database for executing queries was not defined. + chain executor + The database for executing queries was not defined. + + + + The database for executing queries was not open. + chain executor + The database for executing queries was not open. + + + + Could not disable foreign keys in the database. Details: %1 + chain executor + Could not disable foreign keys in the database. Details: %1 + + + + Could not start a database transaction. Details: %1 + chain executor + Could not start a database transaction. Details: %1 + + + + Interrupted + chain executor + Interrupted + + + + Could not commit a database transaction. Details: %1 + chain executor + Could not commit a database transaction. Details: %1 + + + + CompletionHelper + + + New row reference + New row reference + + + + Old row reference + Old row reference + + + + New table name + New table name + + + + New index name + New index name + + + + New view name + New view name + + + + New trigger name + New trigger name + + + + Table or column alias + Table or column alias + + + + transaction name + transaction name + + + + New column name + New column name + + + + Column data type + Column data type + + + + Constraint name + Constraint name + + + + Error message + Error message + + + + Any word + Any word + + + + Default database + Default database + + + + Temporary objects database + Temporary objects database + + + + ConfigImpl + + + Could not start database transaction for deleting SQL history, therefore it's not deleted. + Could not start database transaction for deleting SQL history, therefore it's not deleted. + + + + Could not commit database transaction for deleting SQL history, therefore it's not deleted. + Could not commit database transaction for deleting SQL history, therefore it's not deleted. + + + + DbManagerImpl + + + Could not add database %1: %2 + Could not add database %1: %2 + + + + Database %1 could not be updated, because of an error: %2 + Database %1 could not be updated, because of an error: %2 + + + + + Database file doesn't exist. + Database file doesn't exist. + + + + + + No supporting plugin loaded. + No supporting plugin loaded. + + + + Database could not be initialized. + Database could not be initialized. + + + + No suitable database driver plugin found. + No suitable database driver plugin found. + + + + DbObjectOrganizer + + + + Error while creating table in target database: %1 + Error while creating table in target database: %1 + + + + Could not parse table. + Could not parse table. + + + + Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. + Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. + + + + Error while copying data for table %1: %2 + Error while copying data for table %1: %2 + + + + + + Error while copying data to table %1: %2 + Error while copying data to table %1: %2 + + + + Error while dropping source view %1: %2 +Tables, indexes, triggers and views copied to database %3 will remain. + Error while dropping source view %1: %2 +Tables, indexes, triggers and views copied to database %3 will remain. + + + + Error while creating view in target database: %1 + Error while creating view in target database: %1 + + + + Error while creating index in target database: %1 + Error while creating index in target database: %1 + + + + Error while creating trigger in target database: %1 + Error while creating trigger in target database: %1 + + + + + + Could not parse object '%1' in order to move or copy it. + Could not parse object '%1' in order to move or copy it. + + + + DdlHistoryModel + + + Database name + ddl history header + Database name + + + + Database file + ddl history header + Database file + + + + Date of execution + ddl history header + Date of execution + + + + Changes + ddl history header + Changes + + + + ExportManager + + + Export plugin %1 doesn't support exporing query results. + Export plugin %1 doesn't support exporing query results. + + + + Export plugin %1 doesn't support exporing tables. + Export plugin %1 doesn't support exporing tables. + + + + Export plugin %1 doesn't support exporing databases. + Export plugin %1 doesn't support exporing databases. + + + + Export format '%1' is not supported. Supported formats are: %2. + Export format '%1' is not supported. Supported formats are: %2. + + + + Export to the clipboard was successful. + Export to the clipboard was successful. + + + + Export to the file '%1' was successful. + Export to the file '%1' was successful. + + + + Export was successful. + Export was successful. + + + + Could not export to file %1. File cannot be open for writting. + Could not export to file %1. File cannot be open for writting. + + + + ExportWorker + + + Error while exporting query results: %1 + Error while exporting query results: %1 + + + + Error while counting data column width to export from query results: %1 + Error while counting data column width to export from query results: %1 + + + + + Could not parse %1 in order to export it. It will be excluded from the export output. + Could not parse %1 in order to export it. It will be excluded from the export output. + + + + Error while reading data to export from table %1: %2 + Error while reading data to export from table %1: %2 + + + + Error while counting data to export from table %1: %2 + Error while counting data to export from table %1: %2 + + + + Error while counting data column width to export from table %1: %2 + Error while counting data column width to export from table %1: %2 + + + + FunctionManagerImpl + + + Invalid number of arguments to function '%1'. Expected %2, but got %3. + Invalid number of arguments to function '%1'. Expected %2, but got %3. + + + + No such function registered in SQLiteStudio: %1(%2) + No such function registered in SQLiteStudio: %1(%2) + + + + Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. + Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. + + + + Invalid regular expression pattern: %1 + Invalid regular expression pattern: %1 + + + + + Could not open file %1 for reading: %2 + Could not open file %1 for reading: %2 + + + + Could not open file %1 for writting: %2 + Could not open file %1 for writting: %2 + + + + Error while writting to file %1: %2 + Error while writting to file %1: %2 + + + + Unsupported scripting language: %1 + Unsupported scripting language: %1 + + + + GenericExportPlugin + + + Could not initialize text codec for exporting. Using default codec: %1 + Could not initialize text codec for exporting. Using default codec: %1 + + + + ImportManager + + + Imported data to the table '%1' successfully. Number of imported rows: %2 + Imported data to the table '%1' successfully. Number of imported rows: %2 + + + + ImportWorker + + + No columns provided by the import plugin. + No columns provided by the import plugin. + + + + Could not start transaction in order to import a data: %1 + Could not start transaction in order to import a data: %1 + + + + Could not commit transaction for imported data: %1 + Could not commit transaction for imported data: %1 + + + + Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. + Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. + + + + Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. + Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. + + + + Could not create table to import to: %1 + Could not create table to import to: %1 + + + + + + Error while importing data: %1 + Error while importing data: %1 + + + + + Interrupted. + import process status update + Interrupted. + + + + Could not import data row number %1. The row was ignored. Problem details: %2 + Could not import data row number %1. The row was ignored. Problem details: %2 + + + + PluginManagerImpl + + + Cannot load plugin %1, because it's in conflict with plugin %2. + Cannot load plugin %1, because it's in conflict with plugin %2. + + + + Cannot load plugin %1, because its dependency was not loaded: %2. + Cannot load plugin %1, because its dependency was not loaded: %2. + + + + Cannot load plugin %1. Error details: %2 + Cannot load plugin %1. Error details: %2 + + + + Cannot load plugin %1 (error while initializing plugin). + Cannot load plugin %1 (error while initializing plugin). + + + + min: %1 + plugin dependency version + min: %1 + + + + max: %1 + plugin dependency version + max: %1 + + + + PopulateConstant + + + Constant + populate constant plugin name + Constant + + + + PopulateConstantConfig + + + Constant value: + Constant value: + + + + PopulateDictionary + + + Dictionary + dictionary populating plugin name + Dictionary + + + + PopulateDictionaryConfig + + + Dictionary file + Dictionary file + + + + Pick dictionary file + Pick dictionary file + + + + Word separator + Word separator + + + + Whitespace + Whitespace + + + + Line break + Line break + + + + Method of using words + Method of using words + + + + Ordered + Ordered + + + + Randomly + Randomly + + + + PopulateManager + + + Table '%1' populated successfully. + Table '%1' populated successfully. + + + + PopulateRandom + + + Random number + Random number + + + + PopulateRandomConfig + + + Constant prefix + Constant prefix + + + + No prefix + No prefix + + + + Minimum value + Minimum value + + + + Maximum value + Maximum value + + + + Constant suffix + Constant suffix + + + + No suffix + No suffix + + + + PopulateRandomText + + + Random text + Random text + + + + PopulateRandomTextConfig + + + Use characters from common sets: + Use characters from common sets: + + + + Minimum length + Minimum length + + + + Letters from a to z. + Letters from a to z. + + + + Alpha + Alpha + + + + Numbers from 0 to 9. + Numbers from 0 to 9. + + + + Numeric + Numeric + + + + A whitespace, a tab and a new line character. + A whitespace, a tab and a new line character. + + + + Whitespace + Whitespace + + + + Includes all above and all others. + Includes all above and all others. + + + + Binary + Binary + + + + Use characters from my custom set: + Use characters from my custom set: + + + + Maximum length + Maximum length + + + + If you type some character multiple times, it's more likely to be used. + If you type some character multiple times, it's more likely to be used. + + + + PopulateScript + + + Script + Script + + + + PopulateScriptConfig + + + Initialization code (optional) + Initialization code (optional) + + + + Per step code + Per step code + + + + Language + Language + + + + Help + Help + + + + PopulateSequence + + + Sequence + Sequence + + + + PopulateSequenceConfig + + + Start value: + Start value: + + + + Step: + Step: + + + + PopulateWorker + + + Could not start transaction in order to perform table populating. Error details: %1 + Could not start transaction in order to perform table populating. Error details: %1 + + + + Error while populating table: %1 + Error while populating table: %1 + + + + Could not commit transaction after table populating. Error details: %1 + Could not commit transaction after table populating. Error details: %1 + + + + QObject + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Could not open database: %1 + Could not open database: %1 + + + + Result set expired or no row available. + Result set expired or no row available. + + + + + Could not load extension %1: %2 + Could not load extension %1: %2 + + + + Could not run WAL checkpoint: %1 + Could not run WAL checkpoint: %1 + + + + Could not close database: %1 + Could not close database: %1 + + + + Could not attach database %1: %2 + Could not attach database %1: %2 + + + + + Incomplete query. + Incomplete query. + + + + Parser stack overflow + Parser stack overflow + + + + Syntax error + Syntax error + + + + Could not open dictionary file %1 for reading. + Could not open dictionary file %1 for reading. + + + + Dictionary file must exist and be readable. + Dictionary file must exist and be readable. + + + + Maximum value cannot be less than minimum value. + Maximum value cannot be less than minimum value. + + + + Maximum length cannot be less than minimum length. + Maximum length cannot be less than minimum length. + + + + Custom character set cannot be empty. + Custom character set cannot be empty. + + + + Could not find plugin to support scripting language: %1 + Could not find plugin to support scripting language: %1 + + + + Error while executing populating initial code: %1 + Error while executing populating initial code: %1 + + + + Error while executing populating code: %1 + Error while executing populating code: %1 + + + + Select implementation language. + Select implementation language. + + + + Implementation code cannot be empty. + Implementation code cannot be empty. + + + + Could not resolve data source for column: %1 + Could not resolve data source for column: %1 + + + + Could not resolve table for column '%1'. + Could not resolve table for column '%1'. + + + + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Unable to create a file at following locations: %1. + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Unable to create a file at following locations: %1. + + + + General purpose + plugin category name + General purpose + + + + Database support + plugin category name + Database support + + + + Code formatter + plugin category name + Code formatter + + + + Scripting languages + plugin category name + Scripting languages + + + + Exporting + plugin category name + Exporting + + + + Importing + plugin category name + Importing + + + + Table populating + plugin category name + Table populating + + + + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. + + + + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. + + + + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. + + + + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. + + + + Cannot not update trigger %1 according to table %2 modification. + Cannot not update trigger %1 according to table %2 modification. + + + + Cannot not update view %1 according to table %2 modifications. +The view will remain as it is. + Cannot not update view %1 according to table %2 modifications. +The view will remain as it is. + + + + + + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. + + + + Could not parse DDL of the view to be created. Details: %1 + Could not parse DDL of the view to be created. Details: %1 + + + + Parsed query is not CREATE VIEW. It's: %1 + Parsed query is not CREATE VIEW. It's: %1 + + + + SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. + SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. + + + + QueryExecutor + + + Execution interrupted. + Execution interrupted. + + + + Database is not open. + Database is not open. + + + + Only one query can be executed simultaneously. + Only one query can be executed simultaneously. + + + + + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 + + + + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. + + + + ScriptingQtDbProxy + + + No database available in current context, while called JavaScript's %1 command. + No database available in current context, while called JavaScript's %1 command. + + + + Error from %1: %2 + Error from %1: %2 + + + + SqlFileExecutor + + + Could not execute SQL, because application has failed to start transaction: %1 + Could not execute SQL, because application has failed to start transaction: %1 + + + + Execution from file cancelled. Any queries executed so far have been rolled back. + Execution from file cancelled. Any queries executed so far have been rolled back. + + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Could not execute SQL, because application has failed to commit the transaction: %1 + Could not execute SQL, because application has failed to commit the transaction: %1 + + + + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. + + + + Finished executing %1 queries in %2 seconds. + Finished executing %1 queries in %2 seconds. + + + + Could not execute SQL due to error. + Could not execute SQL due to error. + + + + SqlHistoryModel + + + Database + sql history header + Database + + + + Execution date + sql history header + Execution date + + + + Time spent + sql history header + Time spent + + + + Rows affected + sql history header + Rows affected + + + + SQL + sql history header + SQL + + + + UpdateManager + + + Could not check for updates (%1). + Could not check for updates (%1). + + + diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_pl.qm b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_pl.qm deleted file mode 100644 index d8a2202..0000000 Binary files a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_pl.qm and /dev/null differ diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_pl.ts b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_pl.ts deleted file mode 100644 index 6a1e7aa..0000000 --- a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_pl.ts +++ /dev/null @@ -1,1337 +0,0 @@ - - - - - AbstractDb - - - - Cannot execute query on closed database. - Nie można wykonać zapytania na zamkniętej bazie danych. - - - - Error attaching database %1: %2 - Błąd podczas dołączania bazy danych %1: %2 - - - - BugReporter - - Invalid login or password - Niepoprawny login lub hasło - - - - ChainExecutor - - - The database for executing queries was not defined. - chain executor - Nie zdefiniowano bazy danych do wykonywania zapytań. - - - - The database for executing queries was not open. - chain executor - Baza danych do wykonywania zapytań nie jest otwarta. - - - - Could not disable foreign keys in the database. Details: %1 - chain executor - Nie udało się wyłączyć kluczy obcych w bazie. Szczegóły: %1 - - - - Could not start a database transaction. Details: %1 - chain executor - Nie udało się rozpocząć transakcji bazy danych. Szczegóły: %1 - - - - Interrupted - chain executor - Przerwane - - - - Could not commit a database transaction. Details: %1 - chain executor - Nie udało się zatwierdzić transakcji bazy danych. Szczegóły: %1 - - - - CompletionHelper - - - New row reference - Odnośnik do nowego wiersza - - - - Old row reference - Odnośnik do starego wiersza - - - - New table name - Nazwa nowej tabeli - - - - New index name - Nazwa nowego indeksu - - - - New view name - Nazwa nowego widoku - - - - New trigger name - Nazwa nowego wyzwalacza - - - - Table or column alias - Alias tabeli lub kolumny - - - - transaction name - Nazwa transakcji - - - - New column name - Nazwa nowej kolumny - - - - Column data type - Typ danych kolumny - - - - Constraint name - Nazwa ograniczenia - - - - Error message - Treść błędu - - - - Collation name - Nazwa zestawienia - - - - Any word - Dowolne słowo - - - - Default database - Domyślna baza danych - - - - Temporary objects database - Baza danych obiektów tymczasowych - - - - ConfigImpl - - - Could not start database transaction for deleting SQL history, therefore it's not deleted. - Nie można rozpocząć transakcji dla usuwania historii SQL, więc nie można usunąć historii. - - - - Could not commit database transaction for deleting SQL history, therefore it's not deleted. - Nie można zatwierdzić transakcji dla usuwania historii SQL, więc nie można usunąć historii. - - - - DbManagerImpl - - - Could not add database %1: %2 - Nie udało się dodać bazę danych %1: %2 - - - - Database %1 could not be updated, because of an error: %2 - Nie udało się zaktualizować baza danych %1 z powodu błędu: %2 - - - - - Database file doesn't exist. - Plik bazy danych nie istnieje. - - - - - - No supporting plugin loaded. - Nie załadowano obsługującej wtyczki. - - - - Database could not be initialized. - Nie udało się zainicjalizować bazy danych. - - - - No suitable database driver plugin found. - Nie znaleziono odpowiedniej wtyczki sterownika. - - - - DbObjectOrganizer - - - - Error while creating table in target database: %1 - Błąd podczas tworzenia tabeli w docelowej bazie danych: %1 - - - - Could not parse table. - Nie udało się przeanalizować tabeli. - - - - Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. - Nie udało się dołączyć bazy danych %1 do bazy danych %2, więc dane tabeli %3 będą skopiowane przez SQLiteStudio jako pośrednika. Ta metoda może być powolna dla dużych tabel, więc proszę o cierpliwość. - - - - Error while copying data for table %1: %2 - Błąd podczas copiowania danych tabeli %1: %2 - - - - - - Error while copying data to table %1: %2 - Błąd podczas kopiowania danych do tabeli %1: %2 - - - - Error while dropping source view %1: %2 -Tables, indexes, triggers and views copied to database %3 will remain. - Błąd podczas upuszczania widoku źródłowego %1: %2 -Tabele, indeksy, wyzwalacze i widoki skopiowane do bazy danych %3 pozostaną na miejscu. - - - - Error while creating view in target database: %1 - Błąd podczas tworzenia widoku w docelowej bazie danych: %1 - - - - Error while creating index in target database: %1 - Błąd podczas tworzenia indeksu w docelowej bazie danych: %1 - - - - Error while creating trigger in target database: %1 - Błąd podczas tworzenia wyzwalacza w docelowej bazie danych: %1 - - - - - - Could not parse object '%1' in order to move or copy it. - Nie można zanalizować obiektu '%1' w celu przeniesienia lub skopiowania go. - - - - DbVersionConverter - - - Target file exists, but could not be overwritten. - Plik docelowy istnieje, ale nie może być nadpisany. - - - - Could not find proper database plugin to create target database. - Nie znaleziono odpowiedniej wtyczki bazy danych, aby utworzyć docelową bazę danych. - - - - Error while converting database: %1 - Błąd podczas konwersji bazy danych: %1 - - - - DdlHistoryModel - - - Database name - ddl history header - Nazwa bazy danych - - - - Database file - ddl history header - Plik bazy danych - - - - Date of execution - ddl history header - Data wykonania - - - - Changes - ddl history header - Zmiany - - - - ExportManager - - - Export plugin %1 doesn't support exporing query results. - Wtyczka eksportu %1 nie obsługuje exportowania wyników zapytania. - - - - Export plugin %1 doesn't support exporing tables. - Wtyczka exportu %1 nie obsługuje eksportowania tabel. - - - - Export plugin %1 doesn't support exporing databases. - Wtyczka exportu %1 nie obsługuje eksportowania baz danych. - - - - Export format '%1' is not supported. Supported formats are: %2. - Format eksportu %1 nie jest obsługiwany. Obsługiwane formaty to: %2 - - - - Export to the clipboard was successful. - Eksport do schowka przebiegł pomyślnie. - - - - Export to the file '%1' was successful. - Eksport do pliku '%1' przebiegł pomyślnie. - - - - Export was successful. - Export przebiegł pomyślnie. - - - - Could not export to file %1. File cannot be open for writting. - Eksport do pliku %1 nie powiódł się. Plik nie może być otwarty do zapisu. - - - Export to was successful. - Eksport do przebiegł pomyślnie. - - - - ExportWorker - - - Error while exporting query results: %1 - Błąd podczas eksportowania wyników zapytania: %1 - - - Error while counting data column width to export from query results: %2 - Błąd podczas liczenia szerokości kolumn danych do eksportu wyników zapytania: %2 - - - - Error while counting data column width to export from query results: %1 - Błąd podczas liczenia szerokości kolumn danych do eksportu wyników zapytania: %1 - - - - - Could not parse %1 in order to export it. It will be excluded from the export output. - Nie udało się przeanalizować %1 w celu wyeksportowania. Element ten zostanie pominięty w wynikach eksportu. - - - - Error while reading data to export from table %1: %2 - Błąd podczas odczytu danych do eksportu z tabeli %1: %2 - - - - Error while counting data to export from table %1: %2 - Błąd podczas liczenia danych do eksportu z tabeli %1: %2 - - - - Error while counting data column width to export from table %1: %2 - Błąd podczas obliczania szerokości kolumn danych do eksportu z tabeli %1: %2 - - - - FunctionManagerImpl - - - Invalid number of arguments to function '%1'. Expected %2, but got %3. - Niepoprawna liczba argumentów do funkcji '%1'. Oczekiwano %2, a jest %3. - - - - No such function registered in SQLiteStudio: %1(%2) - Nie znaleziono funkcji zarejestrowanej w SQLiteStudio: %1 (%2) - - - - Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. - Funkcja %1 (%2) została zarejestrowana dla języka %3, ale wtyczka obsługująca ten język nie jest aktualnie załadowana. - - - - Invalid regular expression pattern: %1 - Niepoprawne wyrażenie regularne: %1 - - - - - Could not open file %1 for reading: %2 - Nie udało się otworzyć pliku %1 do odczytu: %2 - - - - Could not open file %1 for writting: %2 - Nie udało się otworzyć pliku %2 do zapisu: %2 - - - - Error while writting to file %1: %2 - Błąd podczas zapisu do pliku %1: %2 - - - - Unsupported scripting language: %1 - Nieobsługiwany język skryptowy: %1 - - - - GenericExportPlugin - - - Could not initialize text codec for exporting. Using default codec: %1 - Nie udało się zainicjalizować kodeka do exportu. Użyty będzie domyślny kodek: %1 - - - - ImportManager - - - Imported data to the table '%1' successfully. - Pomyślnie zaimportowano dane do tabeli '%1'. - - - - ImportWorker - - - No columns provided by the import plugin. - Wtyczka importu nie dostarczyła żadnych kolumn. - - - - Could not start transaction in order to import a data: %1 - Nie udało się wystartować transakcji w celu zaimportowania danych: %1 - - - - Could not commit transaction for imported data: %1 - Nie udało się zatwierdzić transakcji w celu zaimportowania danych: %1 - - - - Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. - Tabela '%1' ma mniej kolumn, niż jest kolumn w danych do importu. Nadmiarowe kolumny zostaną zignorowane. - - - - Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. - Tabela '%1' ma więcej kolumn, niż jest kolumn w danych do importu. Część kolumn w tabeli będzie pozostawiona pusta. - - - - Could not create table to import to: %1 - Nie udało się stworzyć tabeli do zaimportowania: %1 - - - - - - Error while importing data: %1 - Błąd podczas importowania danych: %1 - - - - - Interrupted. - import process status update - Przerwano. - - - - Could not import data row number %1. The row was ignored. Problem details: %2 - Nie udało się zaimportować wiersza danych numer %1. Wiersz ten został zignorowany. Szczegóły problemu: %2 - - - - PluginManagerImpl - - - Cannot load plugin %1, because it's in conflict with plugin %2. - Nie udało się załadować wtyczki %1, ponieważ jest ona w konflikcie z wtyczką %2. - - - - Cannot load plugin %1, because its dependency was not loaded: %2. - Nie udało się załadować wtyczki %1, ponieważ jej zależność nie została załadowana: %2 - - - - Cannot load plugin %1. Error details: %2 - Nie udało się załadować wtyczki %1. Szczegóły błędu: %2 - - - - Cannot load plugin %1 (error while initializing plugin). - Nie udało się załadować wtyczki %1 (błąd podczas inicjalizacji wtyczki). - - - - min: %1 - plugin dependency version - min: %1 - - - - max: %1 - plugin dependency version - maks: %1 - - - - PopulateConstant - - - Constant - populate constant plugin name - Stała - - - - PopulateConstantConfig - - - Constant value: - Stała wartość: - - - - PopulateDictionary - - - Dictionary - dictionary populating plugin name - Słownik - - - - PopulateDictionaryConfig - - - Dictionary file - Plik słownika - - - - Pick dictionary file - Wybierz plik słownika - - - - Word separator - Separator słowa - - - - Whitespace - Biały znak - - - - Line break - Nowa linia - - - - Method of using words - Metoda używania słów - - - - Ordered - Uporządkowana - - - - Randomly - Losowa - - - - PopulateManager - - - Table '%1' populated successfully. - Zaludnianie tabeli '%1' przebiegło pomyślnie. - - - - PopulateRandom - - - Random number - Losowa liczba - - - - PopulateRandomConfig - - - Constant prefix - Stały przedrostek - - - - No prefix - Bez predrostka - - - - Minimum value - Wartość minimalna - - - - Maximum value - Wartość maksymalna - - - - Constant suffix - Stały przyrostek - - - - No suffix - Brak przyrostka - - - - PopulateRandomText - - - Random text - Losowy tekst - - - - PopulateRandomTextConfig - - - Use characters from common sets: - Użyj znaków z zestawów: - - - - Minimum length - Długość minimalna - - - - Letters from a to z. - Litery od a do z. - - - - Alpha - Litery - - - - Numbers from 0 to 9. - Liczby od 0 do 9. - - - - Numeric - Liczby - - - - A whitespace, a tab and a new line character. - Znak biały, znak tabulacji, znak nowej linii. - - - - Whitespace - Znak biały - - - - Includes all above and all others. - Zawiera wszystkie powyższe, oraz wszystkie pozostałe. - - - - Binary - Binarne - - - - Use characters from my custom set: - Użyj znaków z mojego zestawu: - - - - Maximum length - Długość maksymalna - - - - If you type some character multiple times, it's more likely to be used. - Jeśli wpiszesz dany znak kilka razy, będzie on miał większą szansę na wylosowanie. - - - - PopulateScript - - - Script - Skrypt - - - - PopulateScriptConfig - - - Initialization code (optional) - Kod inicjalizujący (opcjonalny) - - - - Per step code - Kod dla każdego kroku - - - - Language - Język - - - - Help - Pomoc - - - - PopulateSequence - - - Sequence - Sekwencja - - - - PopulateSequenceConfig - - - Start value: - Wartość początkowa: - - - - Step: - Krok: - - - - PopulateWorker - - - Could not start transaction in order to perform table populating. Error details: %1 - Nie udało się rozpocząć transakcji w celu zaludnienia tabeli. Szczegóły błędu: %1 - - - - Error while populating table: %1 - Błąd podczas zaludniania tabeli: %2 - - - - Could not commit transaction after table populating. Error details: %1 - Nie udało się zatwierdzić transakcji po zaludnieniu tabeli. Szczegóły błędy: %1 - - - - QObject - - - - - - - - - SQLite %1 does not support '%2' statement. - SQLite %1 nie obsługuje zapytania '%2'. - - - - SQLite %1 does not support '%2' statement, but the regular table can be created instead if you proceed. - SQLite %1 nie obsługuje zapytania '%2', ale stworzona zostanie zwykła tabela, jeśli będziesz kontynuować. - - - - Could not parse statement: %1 -Error details: %2 - Nie udało się przeanalizować zapytania: %1 -Szczegóły błędu: %2 - - - - - - - SQLite %1 does not support the '%2' clause. Cannot convert '%3' statement with that clause. - SQLite %1 nie obsługuje klauzuli '%2'. Nie można przekonwertować zapytania '%3' z tą klauzulą. - - - - SQLite %1 does not support the '%2' clause in the '%3' statement. - SQLite %1 nie obsługuje klauzuli '%2' w zapytaniu '%3'. - - - SQLite %1 does not support the '%2' clause. Cannot convert '%1' statement with that clause. - SQLite %1 nie obsługuje klauzuli '%2'. Nie można przekonwertować zapytania '%3' z tą klauzulą. {1 ?} {2'?} {1'?} - - - - SQLite %1 does not support current date or time clauses in expressions. - SQLite %1 nie obsługuje aktualnej daty lub klauzul czasowu w wyrażeniach. - - - - SQLite %1 does not support row value clauses in expressions. - SQLite %1 nie obsługuje klauzuli wartości wierszowej w wyrażeniach. - - - - - - SQLite %1 does not support '%2' clause in expressions. - SQLite %1 nie obsługuje klauzuli '%2' w wyrażeniach. - - - - Could not attach database %1: %2 - Nie udało się dołączyć bazy danych %1: %2 - - - - - Incomplete query. - Niekompletne zapytanie. - - - - - Parser stack overflow - Przeciążenie stosu analizatora. - - - - - Syntax error - Błąd składni - - - - Could not open dictionary file %1 for reading. - Nie udało się otworzyć pliku słownika %1 do odczytu. - - - - Dictionary file must exist and be readable. - Plik słownika musi istnieć i musisz mieć prawa do jego odczytu. - - - - Maximum value cannot be less than minimum value. - Wartość maksymalna nie może być mniejsza niż wartość minimalna. - - - - Maximum length cannot be less than minimum length. - Długość maksymalna nie może być mniejsza niż długość minimalna. - - - - Custom character set cannot be empty. - Zestaw własnych znaków nie może być pusty. - - - - Could not find plugin to support scripting language: %1 - Nie udało się znaleźć wtyczki obsługującej język skryptowy: %1 - - - - Error while executing populating initial code: %1 - Błąd podczas wykonywania kodu inicjalizującego zaludnianie: %1 - - - - Error while executing populating code: %1 - Błąd podczas wykonywania kodu zaludniania: %1 - - - - Select implementation language. - Wybierz język implementacji. - - - - Implementation code cannot be empty. - Kod implementacji nie może być pusty. - - - - Could not resolve data source for column: %1 - Nie znaleziono źródła danych dla kolumny: %1 - - - - Could not resolve table for column '%1'. - Nie można ustalić tabeli lub kolumny '%1'. - - - - Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Tried to initialize the file at following localizations: %1. - Nie udało się zainicjalizować pliku konfiguracyjnego. Jakiekolwiek zmiany w konfiguracji i historia zapytań będą utracone po zrestartowaniu aplikacji. Próbowano zainicjalizować plik konfiguracyjny w następujących lokalizacjach: %1. - - - - General purpose - plugin category name - Ogólne - - - - Database support - plugin category name - Wsparcie baz danych - - - - Code formatter - plugin category name - Formatowanie kodu - - - - Scripting languages - plugin category name - Języki skryptowe - - - - Exporting - plugin category name - Eksportowanie - - - - Importing - plugin category name - Importowanie - - - - Table populating - plugin category name - Zaludnianie tabel - - - - Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. - Tabela %1 odwołuje się do tabeli %2, ale definicja klucza obcego nie zostanie zaktualizowane dla definicji nowej tabeli w związku z problemami przy analizowaniu DDL tabeli %3. - - - - All columns indexed by the index %1 are gone. The index will not be recreated after table modification. - Wszystkie kolumny indeksowane przez indeks %1 już nie istnieją. Indeks ten nie będzie odtworzony po modyfikacji tabeli. - - - - There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. - Wystąpił problem z poprawnym przetworzeniem wyzwalacza %1. Może on zostać zaktualizowany tylko częściowo i będzie wymagał twojej uwagi. - - - - Cannot not update trigger %1 according to table %2 modification. - Nie można zaktualizować wyzwalacza %1 zgodnie z modyfikacjami tabeli %2. - - - - - - There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. - Jest problem ze zaktualizowaniem zapytania %1 w wyzwalaczu %2. Jedeno z podzapytań %1, które może odwoływać się do tabeli %3 nie może być poprawnie zmodyfikowane. Ręczna aktualizacja tego wyzwalacza może być niezbędna. - - - - All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. - Wszystkie kolumny obsługiwane przez wyzwalacz %1 już nie istnieją. Wyzwalacz ten nie będzie odtworzony po modyfikacji tabeli. - - - - Cannot not update view %1 according to table %2 modifications. -The view will remain as it is. - Nie można zaktualizować widoku %1 w związku z modyfikacjami tabeli %2. -Widok pozostanie nienaruszony. - - - There is a problem with updating an %1 statement within %2 trigger. One of the SELECT substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. - Jest problem ze zaktualizowaniem zapytania %1 w wyzwalaczu %2. Jedeno z podzapytań SELECT, które może odwoływać się do tabeli %3 nie może być poprawnie zmodyfikowane. Ręczna aktualizacja tego wyzwalacza może być niezbędna. - - - - Could not parse DDL of the view to be created. Details: %1 - Nie udało się przeanalizować DDL widoku do stworzenia. Szczegóły: %1 - - - - Parsed query is not CREATE VIEW. It's: %1 - Przeanalizowane zapytanie to nie CREATE VIEW, ale: %1 - - - - SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. - SQLiteStudio nie było w stanie określić kolumn zwracanych przez nowy widok, w związku z czym nie może określić które wyzwalacze mogą się nie powieść podczas procesu odtwarzania. - - - - - Could not open database: %1 - Nie udało się otworzyć bazy danych: %1 - - - - - Could not load extension %1: %2 - Nie udało się załadować rozszerzenia %1: %2 - - - - Could not close database: %1 - Nie udało się zamknąć bazy danych: %1 - - - - - Result set expired or no row available. - Wyniki zapytania są nieaktualne, lub nie ma dostępnych wierszy. - - - - Could not open file '%1' for reading: %2 - Nie można otworzyż pliku '%1' do odczytu: %2 - - - - Query - - Result set expired or no row available. - Wyniki zapytania są nieaktualne, lub nie ma dostępnych wierszy. - - - - QueryExecutor - - - Execution interrupted. - Wykonywanie przerwane. - - - - Database is not open. - Baza danych nie jest otwarta. - - - - Only one query can be executed simultaneously. - Tylko jedno zapytanie może być wykonywane w danym momencie. - - - - - An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 - Wystąpił błąd podczas wykonywania zapytania count(*), przez co stronicowanie danych będzie wyłączone. Szczegóły błędy z bazy danych: %1 - - - - SQLiteStudio was unable to extract metadata from the query. Results won't be editable. - SQLiteStudio nie mogło uzyskać metadanych z zapytania. Nie będzie można edytować wyników zapytania. - - - - ScriptingQtDbProxy - - - No database available in current context, while called QtScript's %1 command. - Brak dostępnej bazy danych w bieżącym kontekście, podczas wywoływania komendy QtScript: %1. - - - - Error from %1: %2 - Błąd z %1: %2 - - - - SqlHistoryModel - - - Database - sql history header - Baza danych - - - - Execution date - sql history header - Data wykonania - - - - Time spent - sql history header - Czas trwania - - - - Rows affected - sql history header - Liczba wierszy - - - - SQL - sql history header - SQL - - - - UpdateManager - - An error occurred while checking for updates: %1. - Wystąpił błąd podczas sprawdzania aktualizacji: %1 - - - Could not check available updates, because server responded with invalid message format. It is safe to ignore this warning. - Nie udało się sprawdzić aktualizacji, ponieważ serwer odpowiedział wiadomością w niepoprawnym formacie. Możesz spokojnie zignorować tą informację. - - - An error occurred while reading updates metadata: %1. - Wystąpił błąd podczas odczytu metadanych aktualizacji: %1 - - - Could not download updates, because server responded with invalid message format. You can try again later or download and install updates manually. See <a href="%1">User Manual</a> for details. - Nie udało się ściągnąć aktualizacji, ponieważ serwer odpowiedział wiadomością w niepoprawnym formacie. Możesz spróbować jeszcze raz później, lub ściągnąć i stainstalować aktualizację ręcznie. Szczegóły: <a href="%1">Podręcznik użytkownika</a>. - - - Could not create temporary directory for downloading the update. Updating aborted. - Nie udało się stworzyć katalogu tymczasowego w celu pobrania aktualizacji. Aktualizacja została przerwana. - - - There was no updates to download. Updating aborted. - Nie znaleziono aktualizacji do pobrania. Aktualizacja przerwana. - - - Downloading: %1 - Pobieranie: %1 - - - Could not determinate file name from update URL: %1. Updating aborted. - Nie udało się określić nazwy pliku z URL aktualizacji: %1. Aktualizacja przerwana. - - - Failed to open file '%1' for writting: %2. Updating aborted. - Nie udało się otworzyć pliku '%1' do zapisu: %2. Aktualizacja przerwana. - - - Installing updates. - Instalowanie aktualizacji. - - - Could not copy current application directory into %1 directory. - Nie udało się skopiować bieżącego katalogu aplikacji do katalogu %1. - - - Could not create directory %1. - Nie udało się stworzyć katalogu %1. - - - Could not rename directory %1 to %2. -Details: %3 - Nie udało się zmienić nazwy katalogu %1 na %2. -Szczegóły: %3 - - - Cannot not rename directory %1 to %2. -Details: %3 - Nie można zmienić nazwy katalogu %1 na %2. -Szczegóły: %3 - - - Could not move directory %1 to %2 and also failed to restore original directory, so the original SQLiteStudio directory is now located at: %3 - Nie udało się przenieść katalogu %1 do %2, oraz nie udało się przywrócić originalnego katalog, więc originalny katalog SQLiteStudio jest mieści się teraz w: %3 - - - Could not rename directory %1 to %2. Rolled back to the original SQLiteStudio version. - Nie udało się zmienić nazwy katalogu %1 na %2. Przywrócono originalną wersję SQLiteStudio. - - - Could not unpack component %1 into %2 directory. - Nie udało się rozpakować komponentu %1 do katalogu %2. - - - Could not find permissions elevator application to run update as a root. Looked for: %1 - Nie udało się znaleźć narzędzia do podnoszenia uprawnień aplikacji, aby uruchomić aktualizację jako administrator. Szukano następujących: %1 - - - Could not execute final updating steps as root: %1 - Nie udało się wykonać ostatnich kroków jako administrator: %1 - - - Could not execute final updating steps as admin: %1 - Nie udało się wykonać ostatnich kroków jako administrator: %1 - - - Cannot create temporary directory for updater. - Nie można stworzyć tymczasowego katalogu dla aktualizacji. - - - Cannot create updater script file. - Nie można utworzyć skryptu aktualizacji. - - - Updating canceled. - Aktualizacja wycofana. - - - Could not execute final updating steps as administrator. - Nie udało się wykonać ostatich kroków aktualizacji jako administrator. - - - Could not execute final updating steps as administrator. Updater startup timed out. - Nie udało się wykonać ostatich kroków aktualizacji jako administrator. Przekroczono limit czasu oczekiwania. - - - Could not execute final updating steps as administrator. Updater operation timed out. - Nie udało się wykonać ostatich kroków aktualizacji jako administrator. Przekroczono limit czasu oczekiwania. - - - Could not clean up temporary directory %1. You can delete it manually at any time. - Nie udało się wyczyścić katalogu tymczasowego %1. Możesz go usunąć ręcznie w dowolnym momencie. - - - Could not run new version for continuing update. - Nie udało się uruchomić nowej wersji w celu kontynuowania aktualizacji. - - - Package not in tar.gz format, cannot install: %1 - Paczka nie jest w formacie tar.gz, nie można zainstalować: %1 - - - Package %1 cannot be installed, because cannot move it to directory: %2 - Paczka %1 nie może być zainstalowana, ponieważ nie można przenieść jej do katalogu: %2 - - - Package %1 cannot be installed, because cannot unpack it: %2 - Paczka %1 nie może być zainstalowana, ponieważ nie można jej rozpakować: %2 - - - Package not in zip format, cannot install: %1 - Paczka nie jest w formacie zip, nie można zainstalować: %1 - - - Package %1 cannot be installed, because cannot unzip it to directory %2: %3 - Paczka %1 nie może być zainstalowana, ponieważ nie można jej rozpakować do katalogu %2: %3 - - - Package %1 cannot be installed, because cannot unzip it to directory: %2 - Paczka %1 nie może być zainstalowana, ponieważ nie można jej rozpakować do katalogu %2 - - - Could not rename directory %1 to %2. - Nie udało się zmienić nazwy katalogu %1 na %2. - - - Could not delete directory %1. - Nie udało się skasować katalogu %1. - - - Error executing update command: %1 -Error message: %2 - Błąd podczas wykonywania polecenia aktualizacji: %1 -Treść błędu: %2 - - - An error occurred while downloading updates: %1. Updating aborted. - Wystąpił błąd podczas pobierania aktualizacji: %1. Aktualizacja przerwana. - - - - Updates installer executable is missing. - Nie można znaleźć pliku wykonywalnego instalatora aktualizacji. - - - - - Unable to check for updates (%1) - Nie można sprawdzić dostępnych aktualizacji (%1) - - - - details are unknown - szczegóły nieznane - - - - Unable to run updater application (%1). Please report this. - Nie można uruchomić aplikacji aktualizującej (%1). Proszę to zgłosić. - - - diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_pl_PL.ts b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_pl_PL.ts new file mode 100644 index 0000000..3d30cbc --- /dev/null +++ b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_pl_PL.ts @@ -0,0 +1,1101 @@ + + + + + AbstractDb + + + + Cannot execute query on closed database. + Nie można wykonać zapytania na zamkniętej bazie danych. + + + + Error attaching database %1: %2 + Błąd podczas dołączania bazy danych %1: %2 + + + + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + Nie udało się utworzyć pełnego punktu kontrolnego WAL w bazie danych '%1'. Błąd zwrócony z silnika SQLite: %2 + + + + ChainExecutor + + + The database for executing queries was not defined. + chain executor + Nie zdefiniowano bazy danych do wykonywania zapytań. + + + + The database for executing queries was not open. + chain executor + Baza danych do wykonywania zapytań nie jest otwarta. + + + + Could not disable foreign keys in the database. Details: %1 + chain executor + Nie udało się wyłączyć kluczy obcych w bazie. Szczegóły: %1 + + + + Could not start a database transaction. Details: %1 + chain executor + Nie udało się rozpocząć transakcji bazy danych. Szczegóły: %1 + + + + Interrupted + chain executor + Przerwane + + + + Could not commit a database transaction. Details: %1 + chain executor + Nie udało się zatwierdzić transakcji bazy danych. Szczegóły: %1 + + + + CompletionHelper + + + New row reference + Odnośnik do nowego wiersza + + + + Old row reference + Odnośnik do starego wiersza + + + + New table name + Nazwa nowej tabeli + + + + New index name + Nazwa nowego indeksu + + + + New view name + Nazwa nowego widoku + + + + New trigger name + Nazwa nowego wyzwalacza + + + + Table or column alias + Alias tabeli lub kolumny + + + + transaction name + Nazwa transakcji + + + + New column name + Nazwa nowej kolumny + + + + Column data type + Typ danych kolumny + + + + Constraint name + Nazwa ograniczenia + + + + Error message + Treść błędu + + + + Any word + Dowolne słowo + + + + Default database + Domyślna baza danych + + + + Temporary objects database + Baza danych obiektów tymczasowych + + + + ConfigImpl + + + Could not start database transaction for deleting SQL history, therefore it's not deleted. + Nie można rozpocząć transakcji dla usuwania historii SQL, więc nie można usunąć historii. + + + + Could not commit database transaction for deleting SQL history, therefore it's not deleted. + Nie można zatwierdzić transakcji dla usuwania historii SQL, więc nie można usunąć historii. + + + + DbManagerImpl + + + Could not add database %1: %2 + Nie udało się dodać bazę danych %1: %2 + + + + Database %1 could not be updated, because of an error: %2 + Nie udało się zaktualizować baza danych %1 z powodu błędu: %2 + + + + + Database file doesn't exist. + Plik bazy danych nie istnieje. + + + + + + No supporting plugin loaded. + Nie załadowano obsługującej wtyczki. + + + + Database could not be initialized. + Nie udało się zainicjalizować bazy danych. + + + + No suitable database driver plugin found. + Nie znaleziono odpowiedniej wtyczki sterownika. + + + + DbObjectOrganizer + + + + Error while creating table in target database: %1 + Błąd podczas tworzenia tabeli w docelowej bazie danych: %1 + + + + Could not parse table. + Nie udało się przeanalizować tabeli. + + + + Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. + Nie udało się dołączyć bazy danych %1 do bazy danych %2, więc dane tabeli %3 będą skopiowane przez SQLiteStudio jako pośrednika. Ta metoda może być powolna dla dużych tabel, więc proszę o cierpliwość. + + + + Error while copying data for table %1: %2 + Błąd podczas copiowania danych tabeli %1: %2 + + + + + + Error while copying data to table %1: %2 + Błąd podczas kopiowania danych do tabeli %1: %2 + + + + Error while dropping source view %1: %2 +Tables, indexes, triggers and views copied to database %3 will remain. + Błąd podczas upuszczania widoku źródłowego %1: %2 +Tabele, indeksy, wyzwalacze i widoki skopiowane do bazy danych %3 pozostaną na miejscu. + + + + Error while creating view in target database: %1 + Błąd podczas tworzenia widoku w docelowej bazie danych: %1 + + + + Error while creating index in target database: %1 + Błąd podczas tworzenia indeksu w docelowej bazie danych: %1 + + + + Error while creating trigger in target database: %1 + Błąd podczas tworzenia wyzwalacza w docelowej bazie danych: %1 + + + + + + Could not parse object '%1' in order to move or copy it. + Nie można zanalizować obiektu '%1' w celu przeniesienia lub skopiowania go. + + + + DdlHistoryModel + + + Database name + ddl history header + Nazwa bazy danych + + + + Database file + ddl history header + Plik bazy danych + + + + Date of execution + ddl history header + Data wykonania + + + + Changes + ddl history header + Zmiany + + + + ExportManager + + + Export plugin %1 doesn't support exporing query results. + Wtyczka eksportu %1 nie obsługuje exportowania wyników zapytania. + + + + Export plugin %1 doesn't support exporing tables. + Wtyczka exportu %1 nie obsługuje eksportowania tabel. + + + + Export plugin %1 doesn't support exporing databases. + Wtyczka exportu %1 nie obsługuje eksportowania baz danych. + + + + Export format '%1' is not supported. Supported formats are: %2. + Format eksportu %1 nie jest obsługiwany. Obsługiwane formaty to: %2 + + + + Export to the clipboard was successful. + Eksport do schowka przebiegł pomyślnie. + + + + Export to the file '%1' was successful. + Eksport do pliku '%1' przebiegł pomyślnie. + + + + Export was successful. + Export przebiegł pomyślnie. + + + + Could not export to file %1. File cannot be open for writting. + Eksport do pliku %1 nie powiódł się. Plik nie może być otwarty do zapisu. + + + + ExportWorker + + + Error while exporting query results: %1 + Błąd podczas eksportowania wyników zapytania: %1 + + + + Error while counting data column width to export from query results: %1 + Błąd podczas liczenia szerokości kolumn danych do eksportu wyników zapytania: %1 + + + + + Could not parse %1 in order to export it. It will be excluded from the export output. + Nie udało się przeanalizować %1 w celu wyeksportowania. Element ten zostanie pominięty w wynikach eksportu. + + + + Error while reading data to export from table %1: %2 + Błąd podczas odczytu danych do eksportu z tabeli %1: %2 + + + + Error while counting data to export from table %1: %2 + Błąd podczas liczenia danych do eksportu z tabeli %1: %2 + + + + Error while counting data column width to export from table %1: %2 + Błąd podczas obliczania szerokości kolumn danych do eksportu z tabeli %1: %2 + + + + FunctionManagerImpl + + + Invalid number of arguments to function '%1'. Expected %2, but got %3. + Niepoprawna liczba argumentów do funkcji '%1'. Oczekiwano %2, a jest %3. + + + + No such function registered in SQLiteStudio: %1(%2) + Nie znaleziono funkcji zarejestrowanej w SQLiteStudio: %1 (%2) + + + + Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. + Funkcja %1 (%2) została zarejestrowana dla języka %3, ale wtyczka obsługująca ten język nie jest aktualnie załadowana. + + + + Invalid regular expression pattern: %1 + Niepoprawne wyrażenie regularne: %1 + + + + + Could not open file %1 for reading: %2 + Nie udało się otworzyć pliku %1 do odczytu: %2 + + + + Could not open file %1 for writting: %2 + Nie udało się otworzyć pliku %2 do zapisu: %2 + + + + Error while writting to file %1: %2 + Błąd podczas zapisu do pliku %1: %2 + + + + Unsupported scripting language: %1 + Nieobsługiwany język skryptowy: %1 + + + + GenericExportPlugin + + + Could not initialize text codec for exporting. Using default codec: %1 + Nie udało się zainicjalizować kodeka do exportu. Użyty będzie domyślny kodek: %1 + + + + ImportManager + + + Imported data to the table '%1' successfully. Number of imported rows: %2 + Pomyślnie zaimportowano dane do tabeli '%1'. Liczba zaimportowanych wierszy: %2 + + + + ImportWorker + + + No columns provided by the import plugin. + Wtyczka importu nie dostarczyła żadnych kolumn. + + + + Could not start transaction in order to import a data: %1 + Nie udało się wystartować transakcji w celu zaimportowania danych: %1 + + + + Could not commit transaction for imported data: %1 + Nie udało się zatwierdzić transakcji w celu zaimportowania danych: %1 + + + + Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. + Tabela '%1' ma mniej kolumn, niż jest kolumn w danych do importu. Nadmiarowe kolumny zostaną zignorowane. + + + + Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. + Tabela '%1' ma więcej kolumn, niż jest kolumn w danych do importu. Część kolumn w tabeli będzie pozostawiona pusta. + + + + Could not create table to import to: %1 + Nie udało się stworzyć tabeli do zaimportowania: %1 + + + + + + Error while importing data: %1 + Błąd podczas importowania danych: %1 + + + + + Interrupted. + import process status update + Przerwano. + + + + Could not import data row number %1. The row was ignored. Problem details: %2 + Nie udało się zaimportować wiersza danych numer %1. Wiersz ten został zignorowany. Szczegóły problemu: %2 + + + + PluginManagerImpl + + + Cannot load plugin %1, because it's in conflict with plugin %2. + Nie udało się załadować wtyczki %1, ponieważ jest ona w konflikcie z wtyczką %2. + + + + Cannot load plugin %1, because its dependency was not loaded: %2. + Nie udało się załadować wtyczki %1, ponieważ jej zależność nie została załadowana: %2 + + + + Cannot load plugin %1. Error details: %2 + Nie udało się załadować wtyczki %1. Szczegóły błędu: %2 + + + + Cannot load plugin %1 (error while initializing plugin). + Nie udało się załadować wtyczki %1 (błąd podczas inicjalizacji wtyczki). + + + + min: %1 + plugin dependency version + min: %1 + + + + max: %1 + plugin dependency version + maks: %1 + + + + PopulateConstant + + + Constant + populate constant plugin name + Stała + + + + PopulateConstantConfig + + + Constant value: + Stała wartość: + + + + PopulateDictionary + + + Dictionary + dictionary populating plugin name + Słownik + + + + PopulateDictionaryConfig + + + Dictionary file + Plik słownika + + + + Pick dictionary file + Wybierz plik słownika + + + + Word separator + Separator słowa + + + + Whitespace + Biały znak + + + + Line break + Nowa linia + + + + Method of using words + Metoda używania słów + + + + Ordered + Uporządkowana + + + + Randomly + Losowa + + + + PopulateManager + + + Table '%1' populated successfully. + Zaludnianie tabeli '%1' przebiegło pomyślnie. + + + + PopulateRandom + + + Random number + Losowa liczba + + + + PopulateRandomConfig + + + Constant prefix + Stały przedrostek + + + + No prefix + Bez predrostka + + + + Minimum value + Wartość minimalna + + + + Maximum value + Wartość maksymalna + + + + Constant suffix + Stały przyrostek + + + + No suffix + Brak przyrostka + + + + PopulateRandomText + + + Random text + Losowy tekst + + + + PopulateRandomTextConfig + + + Use characters from common sets: + Użyj znaków z zestawów: + + + + Minimum length + Długość minimalna + + + + Letters from a to z. + Litery od a do z. + + + + Alpha + Litery + + + + Numbers from 0 to 9. + Liczby od 0 do 9. + + + + Numeric + Liczby + + + + A whitespace, a tab and a new line character. + Znak biały, znak tabulacji, znak nowej linii. + + + + Whitespace + Znak biały + + + + Includes all above and all others. + Zawiera wszystkie powyższe, oraz wszystkie pozostałe. + + + + Binary + Binarne + + + + Use characters from my custom set: + Użyj znaków z mojego zestawu: + + + + Maximum length + Długość maksymalna + + + + If you type some character multiple times, it's more likely to be used. + Jeśli wpiszesz dany znak kilka razy, będzie on miał większą szansę na wylosowanie. + + + + PopulateScript + + + Script + Skrypt + + + + PopulateScriptConfig + + + Initialization code (optional) + Kod inicjalizujący (opcjonalny) + + + + Per step code + Kod dla każdego kroku + + + + Language + Język + + + + Help + Pomoc + + + + PopulateSequence + + + Sequence + Sekwencja + + + + PopulateSequenceConfig + + + Start value: + Wartość początkowa: + + + + Step: + Krok: + + + + PopulateWorker + + + Could not start transaction in order to perform table populating. Error details: %1 + Nie udało się rozpocząć transakcji w celu zaludnienia tabeli. Szczegóły błędu: %1 + + + + Error while populating table: %1 + Błąd podczas zaludniania tabeli: %2 + + + + Could not commit transaction after table populating. Error details: %1 + Nie udało się zatwierdzić transakcji po zaludnieniu tabeli. Szczegóły błędy: %1 + + + + QObject + + + Could not open file '%1' for reading: %2 + Nie można otworzyż pliku '%1' do odczytu: %2 + + + + Could not open database: %1 + Nie udało się otworzyć bazy danych: %1 + + + + Result set expired or no row available. + Wyniki zapytania są nieaktualne, lub nie ma dostępnych wierszy. + + + + + Could not load extension %1: %2 + Nie udało się załadować rozszerzenia %1: %2 + + + + Could not run WAL checkpoint: %1 + Nie można uruchomić punktu kontrolnego WAL: %1 + + + + Could not close database: %1 + Nie udało się zamknąć bazy danych: %1 + + + + Could not attach database %1: %2 + Nie udało się dołączyć bazy danych %1: %2 + + + + + Incomplete query. + Niekompletne zapytanie. + + + + Parser stack overflow + Przeciążenie stosu analizatora. + + + + Syntax error + Błąd składni + + + + Could not open dictionary file %1 for reading. + Nie udało się otworzyć pliku słownika %1 do odczytu. + + + + Dictionary file must exist and be readable. + Plik słownika musi istnieć i musisz mieć prawa do jego odczytu. + + + + Maximum value cannot be less than minimum value. + Wartość maksymalna nie może być mniejsza niż wartość minimalna. + + + + Maximum length cannot be less than minimum length. + Długość maksymalna nie może być mniejsza niż długość minimalna. + + + + Custom character set cannot be empty. + Zestaw własnych znaków nie może być pusty. + + + + Could not find plugin to support scripting language: %1 + Nie udało się znaleźć wtyczki obsługującej język skryptowy: %1 + + + + Error while executing populating initial code: %1 + Błąd podczas wykonywania kodu inicjalizującego zaludnianie: %1 + + + + Error while executing populating code: %1 + Błąd podczas wykonywania kodu zaludniania: %1 + + + + Select implementation language. + Wybierz język implementacji. + + + + Implementation code cannot be empty. + Kod implementacji nie może być pusty. + + + + Could not resolve data source for column: %1 + Nie znaleziono źródła danych dla kolumny: %1 + + + + Could not resolve table for column '%1'. + Nie można ustalić tabeli lub kolumny '%1'. + + + + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Unable to create a file at following locations: %1. + Nie udało się zainicjalizować pliku konfiguracyjnego. Wszelkie zmiany w konfiguracji i historia zapytań zostaną utracone po restarcie aplikacji. Nie udało się utworzyć pliku w lokalizacji: %1. + + + + General purpose + plugin category name + Ogólne + + + + Database support + plugin category name + Wsparcie baz danych + + + + Code formatter + plugin category name + Formatowanie kodu + + + + Scripting languages + plugin category name + Języki skryptowe + + + + Exporting + plugin category name + Eksportowanie + + + + Importing + plugin category name + Importowanie + + + + Table populating + plugin category name + Zaludnianie tabel + + + + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. + Tabela %1 odwołuje się do tabeli %2, ale definicja klucza obcego nie zostanie zaktualizowane dla definicji nowej tabeli w związku z problemami przy analizowaniu DDL tabeli %3. + + + + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. + Wszystkie kolumny indeksowane przez indeks %1 już nie istnieją. Indeks ten nie będzie odtworzony po modyfikacji tabeli. + + + + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. + Wystąpił problem z poprawnym przetworzeniem wyzwalacza %1. Może on zostać zaktualizowany tylko częściowo i będzie wymagał twojej uwagi. + + + + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. + Wszystkie kolumny obsługiwane przez wyzwalacz %1 już nie istnieją. Wyzwalacz ten nie będzie odtworzony po modyfikacji tabeli. + + + + Cannot not update trigger %1 according to table %2 modification. + Nie można zaktualizować wyzwalacza %1 zgodnie z modyfikacjami tabeli %2. + + + + Cannot not update view %1 according to table %2 modifications. +The view will remain as it is. + Nie można zaktualizować widoku %1 w związku z modyfikacjami tabeli %2. +Widok pozostanie nienaruszony. + + + + + + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. + Jest problem ze zaktualizowaniem zapytania %1 w wyzwalaczu %2. Jedeno z podzapytań %1, które może odwoływać się do tabeli %3 nie może być poprawnie zmodyfikowane. Ręczna aktualizacja tego wyzwalacza może być niezbędna. + + + + Could not parse DDL of the view to be created. Details: %1 + Nie udało się przeanalizować DDL widoku do stworzenia. Szczegóły: %1 + + + + Parsed query is not CREATE VIEW. It's: %1 + Przeanalizowane zapytanie to nie CREATE VIEW, ale: %1 + + + + SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. + SQLiteStudio nie było w stanie określić kolumn zwracanych przez nowy widok, w związku z czym nie może określić które wyzwalacze mogą się nie powieść podczas procesu odtwarzania. + + + + QueryExecutor + + + Execution interrupted. + Wykonywanie przerwane. + + + + Database is not open. + Baza danych nie jest otwarta. + + + + Only one query can be executed simultaneously. + Tylko jedno zapytanie może być wykonywane w danym momencie. + + + + + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 + Wystąpił błąd podczas wykonywania zapytania count(*), przez co stronicowanie danych będzie wyłączone. Szczegóły błędy z bazy danych: %1 + + + + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. + SQLiteStudio nie mogło uzyskać metadanych z zapytania. Nie będzie można edytować wyników zapytania. + + + + ScriptingQtDbProxy + + + No database available in current context, while called JavaScript's %1 command. + Brak dostępnej bazy danych w bieżącym kontekście, podczas wywoływania komendy JavaScript: %1. + + + + Error from %1: %2 + Błąd z %1: %2 + + + + SqlFileExecutor + + + Could not execute SQL, because application has failed to start transaction: %1 + Nie można wykonać SQLa, ponieważ aplikacja nie mogła rozpocząć transakcji: %1 + + + + Execution from file cancelled. Any queries executed so far have been rolled back. + Wykonywanie z pliku przerwane. Jakiekolwiek wykonane zapytania zostały wycofane. + + + + Could not open file '%1' for reading: %2 + Nie można otworzyż pliku '%1' do odczytu: %2 + + + + Could not execute SQL, because application has failed to commit the transaction: %1 + Nie można wykonać SQLa, ponieważ aplikacja nie mogła zatwierdzić transakcji: %1 + + + + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. + Zakończono wykonywanie %1 zapytań w %2 sekund(y). %3 nie został wykonany z powodu błędów. + + + + Finished executing %1 queries in %2 seconds. + Zakończono wykonywanie %1 zapytań w %2 sekund(y). + + + + Could not execute SQL due to error. + Nie można wykonać SQL z powodu błędu. + + + + SqlHistoryModel + + + Database + sql history header + Baza danych + + + + Execution date + sql history header + Data wykonania + + + + Time spent + sql history header + Czas trwania + + + + Rows affected + sql history header + Liczba wierszy + + + + SQL + sql history header + SQL + + + + UpdateManager + + + Could not check for updates (%1). + Nie można sprawdzić aktualizacji (%1). + + + diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_pt_BR.qm b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_pt_BR.qm deleted file mode 100644 index 95d8136..0000000 Binary files a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_pt_BR.qm and /dev/null differ diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_pt_BR.ts b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_pt_BR.ts index 8f3404e..78c2853 100644 --- a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_pt_BR.ts +++ b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_pt_BR.ts @@ -1,1153 +1,1101 @@ - - + + AbstractDb - - - Cannot execute query on closed database. - Não é possível executar query em banco de dados fechado. + + + Cannot execute query on closed database. + Não é possível executar a consulta com o banco de dados fechado. - - Error attaching database %1: %2 - + + Error attaching database %1: %2 + Erro ao anexar banco de dados %1: %2 - - - BugReporter - Invalid login or password - login ou senha inválido + + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + Falha ao fazer checkpoint WAL cheio no banco de dados '%1'. Erro retornado do mecanismo SQLite: %2 - - + + ChainExecutor - - The database for executing queries was not defined. - chain executor - Não foi especificado banco de dados para execução das consultas. + + The database for executing queries was not defined. + chain executor + Não foi especificado banco de dados para execução das consultas. - - The database for executing queries was not open. - chain executor - O banco de dados para execução das consultas não foi aberto. + + The database for executing queries was not open. + chain executor + O banco de dados para execução das consultas não foi aberto. - - Could not disable foreign keys in the database. Details: %1 - chain executor - Não foi possível desativar as chaves estrangeiras do banco de dados. Detalhes: %1 + + Could not disable foreign keys in the database. Details: %1 + chain executor + Não foi possível desativar as chaves estrangeiras do banco de dados. Detalhes: %1 - - Could not start a database transaction. Details: %1 - chain executor - Não foi possível iniciar a transação do banco de dados. Detalhes: %1 + + Could not start a database transaction. Details: %1 + chain executor + Não foi possível iniciar a transação do banco de dados. Detalhes: %1 - - Interrupted - chain executor - Interrompido + + Interrupted + chain executor + Interrompido - - Could not commit a database transaction. Details: %1 - chain executor - Não foi possível efetuar commit no banco de dados. Detalhes: %1 + + Could not commit a database transaction. Details: %1 + chain executor + Não foi possível efetuar commit no banco de dados. Detalhes: %1 - - + + CompletionHelper - - New row reference - + + New row reference + Nova referência de linha - - Old row reference - + + Old row reference + Referência de linha antiga - - New table name - + + New table name + Nome da nova tabela - - New index name - + + New index name + Nome do novo índice - - New view name - + + New view name + Nome da nova visualização - - New trigger name - + + New trigger name + Nome da nova trigger - - Table or column alias - + + Table or column alias + Apelido da tabela ou coluna - - transaction name - + + transaction name + nome da transação - - New column name - + + New column name + Nome da nova coluna - - Column data type - + + Column data type + Tipo de dados de coluna - - Constraint name - + + Constraint name + Nome da constraint - - Error message - + + Error message + Mensagem de Erro - - Collation name - + + Any word + Qualquer palavra - - Any word - + + Default database + Banco de dados padrão - - Default database - + + Temporary objects database + Banco de dados de objetos temporários - - - Temporary objects database - - - - + + ConfigImpl - - Could not start database transaction for deleting SQL history, therefore it's not deleted. - + + Could not start database transaction for deleting SQL history, therefore it's not deleted. + Não foi possível iniciar a transação do banco de dados para excluir o histórico do SQL. Portanto, ela não será excluída. - - Could not commit database transaction for deleting SQL history, therefore it's not deleted. - + + Could not commit database transaction for deleting SQL history, therefore it's not deleted. + Não foi possível submeter a transação do banco de dados para excluir o histórico do SQL. Portanto, não será excluída. - - + + DbManagerImpl - - Could not add database %1: %2 - + + Could not add database %1: %2 + Não foi possível adicionar o banco de dados %1: %2 - - Database %1 could not be updated, because of an error: %2 - + + Database %1 could not be updated, because of an error: %2 + Banco de dados %1 não pode ser atualizado, devido a um erro: %2 - - - Database file doesn't exist. - + + + Database file doesn't exist. + Arquivo de banco de dados não existe. - - - - No supporting plugin loaded. - + + + + No supporting plugin loaded. + Nenhum plugin de suporte carregado. - - Database could not be initialized. - + + Database could not be initialized. + Banco de dados não pode ser inicializado. - - No suitable database driver plugin found. - + + No suitable database driver plugin found. + Nenhum plugin de driver de base de dados adequado encontrado. - - + + DbObjectOrganizer - - - Error while creating table in target database: %1 - Erro ao criar tabela no banco de dados: %1 + + + Error while creating table in target database: %1 + Erro ao criar tabela no banco de dados: %1 - - Could not parse table. - Não foi possível analisar a tabela. + + Could not parse table. + Não foi possível analisar a tabela. - - Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. - Banco de dados %1 não pôde ser ligado ao banco de dados %2, de modo que os dados da tabela %3 vão ser copiados com o SQLiteStudio como um mediador. Este metodo pode ser lento para grande tabelas, por favor seja paciente. + + Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. + Banco de dados %1 não pôde ser ligado ao banco de dados %2, de modo que os dados da tabela %3 vão ser copiados com o SQLiteStudio como um mediador. Este método pode ser lento para grande tabelas, por favor seja paciente. - - Error while copying data for table %1: %2 - Erro ao copiar data para tabela %1:%2 + + Error while copying data for table %1: %2 + Erro ao copiar dados da tabela %1:%2 - - - - Error while copying data to table %1: %2 - Erro ao copiar data para tabela %1:%2 + + + + Error while copying data to table %1: %2 + Erro ao copiar dados para a tabela %1:%2 - - Error while dropping source view %1: %2 + + Error while dropping source view %1: %2 Tables, indexes, triggers and views copied to database %3 will remain. - - - - - Error while creating view in target database: %1 - - - - - Error while creating index in target database: %1 - - - - - Error while creating trigger in target database: %1 - + Erro ao soltar a visão da fonte %1: %2 +Tabelas, índices, trigger e visualizações copiadas para o banco de dados %3 permanecerão. - - - - Could not parse object '%1' in order to move or copy it. - + + Error while creating view in target database: %1 + Erro ao criar a visualização no banco de dados destino: %1 - - - DbVersionConverter - - Target file exists, but could not be overwritten. - + + Error while creating index in target database: %1 + Erro ao criar o índice no banco de dados destino: %1 - - Could not find proper database plugin to create target database. - + + Error while creating trigger in target database: %1 + Erro ao criar gatilho no banco de dados de destino: %1 - - Error while converting database: %1 - + + + + Could not parse object '%1' in order to move or copy it. + Não foi possível analisar o objeto '%1' para mover ou copiar. - - + + DdlHistoryModel - - Database name - ddl history header - + + Database name + ddl history header + Nome do banco de dados - - Database file - ddl history header - + + Database file + ddl history header + Arquivo de banco de dados - - Date of execution - ddl history header - + + Date of execution + ddl history header + Data de execução - - Changes - ddl history header - + + Changes + ddl history header + Alterações - - + + ExportManager - - Export plugin %1 doesn't support exporing query results. - + + Export plugin %1 doesn't support exporing query results. + Plugin de exportação %1 não suporta resultados de consulta suprimindo. - - Export plugin %1 doesn't support exporing tables. - + + Export plugin %1 doesn't support exporing tables. + O plugin %1 de exportação não suporta'tabelas de exportação. - - Export plugin %1 doesn't support exporing databases. - + + Export plugin %1 doesn't support exporing databases. + Plugin de exportação %1 não suporta resultados de consulta suprimindo. - - Export format '%1' is not supported. Supported formats are: %2. - + + Export format '%1' is not supported. Supported formats are: %2. + Formato de exportação '%1' não é suportado. Formatos suportados são: %2. - - Export to the clipboard was successful. - + + Export to the clipboard was successful. + Exportação para área de transferência com sucesso. - - Export to the file '%1' was successful. - + + Export to the file '%1' was successful. + Exportação para o arquivo '%1' foi bem sucedida. - - Export was successful. - + + Export was successful. + Exportação bem-sucedida. - - Could not export to file %1. File cannot be open for writting. - + + Could not export to file %1. File cannot be open for writting. + Não foi possível exportar para o arquivo %1. O arquivo não pode ser aberto para escrita. - - + + ExportWorker - - Error while exporting query results: %1 - + + Error while exporting query results: %1 + Erro ao exportar os resultados da consulta: %1 - - Error while counting data column width to export from query results: %1 - + + Error while counting data column width to export from query results: %1 + Erro ao contar a largura da coluna de dados para exportar dos resultados da consulta: %1 - - - Could not parse %1 in order to export it. It will be excluded from the export output. - + + + Could not parse %1 in order to export it. It will be excluded from the export output. + Não foi possível analisar %1 para exportá-lo. Ele será excluído da saída de exportação. - - Error while reading data to export from table %1: %2 - + + Error while reading data to export from table %1: %2 + Erro ao ler os dados para exportar da tabela %1: %2 - - Error while counting data to export from table %1: %2 - + + Error while counting data to export from table %1: %2 + Erro ao contar os dados a serem exportados da tabela %1: %2 - - Error while counting data column width to export from table %1: %2 - + + Error while counting data column width to export from table %1: %2 + Erro ao contar a largura da coluna de dados para exportar da tabela %1: %2 - - + + FunctionManagerImpl - - Invalid number of arguments to function '%1'. Expected %2, but got %3. - + + Invalid number of arguments to function '%1'. Expected %2, but got %3. + Número inválido de argumentos para a função '%1'. Esperado %2, mas tem %3. - - No such function registered in SQLiteStudio: %1(%2) - + + No such function registered in SQLiteStudio: %1(%2) + Nenhuma função registrada no SQLiteStudio: %1(%2) - - Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. - + + Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. + A função %1(%2) foi registrada no idioma %3, mas o plugin que suporta essa linguagem não está atualmente carregado. - - Invalid regular expression pattern: %1 - + + Invalid regular expression pattern: %1 + Expressão regular inválida: %1 - - - Could not open file %1 for reading: %2 - + + + Could not open file %1 for reading: %2 + Não foi possível abrir o arquivo %1 para leitura: %2 - - Could not open file %1 for writting: %2 - + + Could not open file %1 for writting: %2 + Não foi possível abrir o arquivo %1 para escrita: %2 - - Error while writting to file %1: %2 - + + Error while writting to file %1: %2 + Erro ao gravar o arquivo %1: %2 - - Unsupported scripting language: %1 - + + Unsupported scripting language: %1 + Idioma do script não suportado: %1 - - + + GenericExportPlugin - - Could not initialize text codec for exporting. Using default codec: %1 - + + Could not initialize text codec for exporting. Using default codec: %1 + Não foi possível inicializar o codec de texto para exportação. Usando o codec padrão: %1 - - + + ImportManager - - Imported data to the table '%1' successfully. - + + Imported data to the table '%1' successfully. Number of imported rows: %2 + Dados importados para a tabela '%1' com sucesso. Número de linhas importadas: %2 - - + + ImportWorker - - No columns provided by the import plugin. - + + No columns provided by the import plugin. + Nenhuma coluna fornecida pelo plugin de importação. - - Could not start transaction in order to import a data: %1 - + + Could not start transaction in order to import a data: %1 + Não foi possível iniciar a transação para importar os dados: %1 - - Could not commit transaction for imported data: %1 - + + Could not commit transaction for imported data: %1 + Não foi possível submeter a transação para dados importados: %1 - - Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. - + + Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. + Tabela '%1' tem menos colunas que há nos dados a serem importados. Colunas de dados excessivas serão ignoradas. - - Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. - + + Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. + Tabela '%1' tem mais colunas que há colunas nos dados a serem importados. Algumas colunas na tabela serão deixadas vazias. - - Could not create table to import to: %1 - + + Could not create table to import to: %1 + Não foi possível criar a tabela para importar para: %1 - - - - Error while importing data: %1 - + + + + Error while importing data: %1 + Erro ao importar dados: %1 - - - Interrupted. - import process status update - + + + Interrupted. + import process status update + Interrompido. - - Could not import data row number %1. The row was ignored. Problem details: %2 - + + Could not import data row number %1. The row was ignored. Problem details: %2 + Não foi possível importar a linha de dados número %1. A linha foi ignorada. Detalhes do problema: %2 - - + + PluginManagerImpl - - Cannot load plugin %1, because it's in conflict with plugin %2. - + + Cannot load plugin %1, because it's in conflict with plugin %2. + Não foi possível carregar o plugin %1, porque está em conflito com o plugin %2. - - Cannot load plugin %1, because its dependency was not loaded: %2. - + + Cannot load plugin %1, because its dependency was not loaded: %2. + Não foi possível carregar o plugin %1, porque sua dependência não foi carregada: %2. - - Cannot load plugin %1. Error details: %2 - + + Cannot load plugin %1. Error details: %2 + Não foi possível carregar o plugin %1. Detalhes do erro: %2 - - Cannot load plugin %1 (error while initializing plugin). - + + Cannot load plugin %1 (error while initializing plugin). + Não é possível carregar o plugin %1 (erro durante a inicialização do plugin). - - min: %1 - plugin dependency version - + + min: %1 + plugin dependency version + min: %1 - - max: %1 - plugin dependency version - + + max: %1 + plugin dependency version + max: %1 - - + + PopulateConstant - - Constant - populate constant plugin name - + + Constant + populate constant plugin name + Constante - - + + PopulateConstantConfig - - Constant value: - + + Constant value: + Valor constante: - - + + PopulateDictionary - - Dictionary - dictionary populating plugin name - + + Dictionary + dictionary populating plugin name + Dicionário - - + + PopulateDictionaryConfig - - Dictionary file - + + Dictionary file + Arquivo de dicionário - - Pick dictionary file - + + Pick dictionary file + Escolher arquivo do dicionário - - Word separator - + + Word separator + Separador de palavras - - Whitespace - + + Whitespace + Espaço em branco - - Line break - + + Line break + Quebra de linha - - Method of using words - + + Method of using words + Método de uso palavras - - Ordered - + + Ordered + Ordenado - - Randomly - + + Randomly + Aleatoriamente - - + + PopulateManager - - Table '%1' populated successfully. - + + Table '%1' populated successfully. + Tabela '%1' preenchida com sucesso. - - + + PopulateRandom - - Random number - + + Random number + Número aleatório - - + + PopulateRandomConfig - - Constant prefix - + + Constant prefix + Prefixo da constante - - No prefix - + + No prefix + Nenhum prefixo - - Minimum value - + + Minimum value + Valor mínimo - - Maximum value - + + Maximum value + Valor máximo - - Constant suffix - + + Constant suffix + Sufixo da constante - - No suffix - + + No suffix + Nenhum sufixo - - + + PopulateRandomText - - Random text - + + Random text + Texto aleatório - - + + PopulateRandomTextConfig - - Use characters from common sets: - + + Use characters from common sets: + Usar caracteres de conjuntos comuns: - - Minimum length - + + Minimum length + Comprimento mínimo - - Letters from a to z. - + + Letters from a to z. + Letras de a a z. - - Alpha - + + Alpha + Alfa - - Numbers from 0 to 9. - + + Numbers from 0 to 9. + Números de 0 a 9. - - Numeric - + + Numeric + Numérico - - A whitespace, a tab and a new line character. - + + A whitespace, a tab and a new line character. + Um espaço em branco, uma aba e um novo caractere de linha. - - Whitespace - + + Whitespace + Espaço em branco - - Includes all above and all others. - + + Includes all above and all others. + Inclui todos acima e todos os outros. - - Binary - + + Binary + Binário - - Use characters from my custom set: - + + Use characters from my custom set: + Usar caracteres do meu grupo personalizado: - - Maximum length - + + Maximum length + Comprimento máximo - - If you type some character multiple times, it's more likely to be used. - + + If you type some character multiple times, it's more likely to be used. + Se você digitar um caractere várias vezes, é mais provável que seja usado. - - + + PopulateScript - - Script - + + Script + Script - - + + PopulateScriptConfig - - Initialization code (optional) - + + Initialization code (optional) + Código de inicialização (opcional) - - Per step code - + + Per step code + Código detalhado - - Language - + + Language + Idioma - - Help - + + Help + Ajuda - - + + PopulateSequence - - Sequence - + + Sequence + Sequência - - + + PopulateSequenceConfig - - Start value: - + + Start value: + Valor inicial: - - Step: - + + Step: + Etapas: - - + + PopulateWorker - - Could not start transaction in order to perform table populating. Error details: %1 - + + Could not start transaction in order to perform table populating. Error details: %1 + Não foi possível iniciar a transação para realizar o preenchimento da tabela. Detalhes do erro: %1 - - Error while populating table: %1 - + + Error while populating table: %1 + Erro ao preencher a tabela: %1 - - Could not commit transaction after table populating. Error details: %1 - + + Could not commit transaction after table populating. Error details: %1 + Não foi possível submeter a transação após o preenchimento da tabela. Detalhes de erro: %1 - - + + QObject - - - Could not open database: %1 - + + Could not open file '%1' for reading: %2 + Não foi possível abrir o arquivo '%1' para leitura: %2 - - - Result set expired or no row available. - + + Could not open database: %1 + Não foi possível abrir o banco de dados: %1 - - - Could not load extension %1: %2 - + + Result set expired or no row available. + Conjunto de resultados expirado ou nenhuma linha disponível. - - Could not close database: %1 - + + + Could not load extension %1: %2 + Não foi possível carregar a extensão %1: %2 - - - - - - - - SQLite %1 does not support '%2' statement. - + + Could not run WAL checkpoint: %1 + Não foi possível executar o ponto de verificação do WAL: %1 - - SQLite %1 does not support '%2' statement, but the regular table can be created instead if you proceed. - + + Could not close database: %1 + Não foi possível fechar o banco de dados: %1 - - Could not parse statement: %1 -Error details: %2 - + + Could not attach database %1: %2 + Não foi possível anexar o banco de dados %1: %2 - - - - - SQLite %1 does not support the '%2' clause. Cannot convert '%3' statement with that clause. - + + + Incomplete query. + Consulta incompleta. - - SQLite %1 does not support the '%2' clause in the '%3' statement. - + + Parser stack overflow + Parser stack overflow (estourado) - - SQLite %1 does not support current date or time clauses in expressions. - + + Syntax error + Erro de sintaxe - - SQLite %1 does not support row value clauses in expressions. - + + Could not open dictionary file %1 for reading. + Não foi possível abrir o arquivo de dicionário %1 para leitura. - - - - SQLite %1 does not support '%2' clause in expressions. - + + Dictionary file must exist and be readable. + Arquivo de dicionário deve existir e estar legível. - - Could not attach database %1: %2 - + + Maximum value cannot be less than minimum value. + O valor máximo não pode ser menor que o valor mínimo. - - - Incomplete query. - + + Maximum length cannot be less than minimum length. + O comprimento máximo não pode ser inferior ao comprimento mínimo. - - - Parser stack overflow - + + Custom character set cannot be empty. + O conjunto de caracteres personalizado não pode estar vazio. - - - Syntax error - + + Could not find plugin to support scripting language: %1 + Não foi possível encontrar o plugin para suportar o idioma do script: %1 - - Could not open dictionary file %1 for reading. - + + Error while executing populating initial code: %1 + Erro ao executar o preenchimento do código inicial: %1 - - Dictionary file must exist and be readable. - + + Error while executing populating code: %1 + Erro ao executar o código de execução: %1 - - Maximum value cannot be less than minimum value. - + + Select implementation language. + Selecionar idioma de implementação. - - Maximum length cannot be less than minimum length. - + + Implementation code cannot be empty. + Código de implementação não pode ser vazio. - - Custom character set cannot be empty. - + + Could not resolve data source for column: %1 + Não foi possível resolver a fonte de dados para a coluna: %1 - - Could not find plugin to support scripting language: %1 - + + Could not resolve table for column '%1'. + Não foi possível resolver a tabela para a coluna '%1'. - - Error while executing populating initial code: %1 - + + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Unable to create a file at following locations: %1. + Não foi possível inicializar o arquivo de configuração. Quaisquer alterações de configuração e histórico de consultas serão perdidos após a reinicialização do aplicativo. Não foi possível criar um arquivo nos seguintes locais: %1. - - Error while executing populating code: %1 - + + General purpose + plugin category name + Objetivo geral - - Select implementation language. - + + Database support + plugin category name + Suporte do banco de dados - - Implementation code cannot be empty. - + + Code formatter + plugin category name + Formatador de código - - Could not resolve data source for column: %1 - + + Scripting languages + plugin category name + Linguagens dos scripts - - Could not resolve table for column '%1'. - + + Exporting + plugin category name + Exportando - - Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Tried to initialize the file at following localizations: %1. - + + Importing + plugin category name + Importando - - General purpose - plugin category name - + + Table populating + plugin category name + Preencher a tabela - - Database support - plugin category name - + + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. + Tabela %1 é tabela de referência %2, mas a definição de chave estrangeira não será atualizada para uma nova definição de tabela devido a problemas ao analisar DDL da tabela %3. - - Code formatter - plugin category name - + + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. + Todas as colunas indexadas pelo índice %1 desapareceram. O índice não será recriado após a modificação da tabela. - - Scripting languages - plugin category name - + + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. + Há um problema com a trigger %1. Ela pode não ser totalmente atualizada e precisará de sua atenção. - - Exporting - plugin category name - + + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. + Todas as colunas cobertas pela trigger %1 desapareceram. A trigger não será recriada após a modificação da tabela. - - Importing - plugin category name - + + Cannot not update trigger %1 according to table %2 modification. + Não é possível atualizar trigger %1 de acordo com modificação da tabela %2. - - Table populating - plugin category name - + + Cannot not update view %1 according to table %2 modifications. +The view will remain as it is. + Não é possível atualizar a exibição %1 de acordo com as modificações da tabela %2 . +A visualização permanecerá como é. - - Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. - + + + + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. + Ocorreu um problema ao atualizar uma instrução %1 dentro do gatilho %2 . Uma das %1 substâncias que poderiam referir-se à tabela %3 não pode ser devidamente modificada. A atualização manual da trigger pode ser necessária. - - All columns indexed by the index %1 are gone. The index will not be recreated after table modification. - + + Could not parse DDL of the view to be created. Details: %1 + Não foi possível analisar DDL da view a ser criada. Detalhes: %1 - - There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. - + + Parsed query is not CREATE VIEW. It's: %1 + A consulta analisada não é CREATE VIEW. É: %1 - - Cannot not update trigger %1 according to table %2 modification. - + + SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. + O SQLiteStudio não conseguiu resolver colunas retornadas pela nova visualização Portanto, ele não é capaz de dizer quais trigger podem falhar durante o processo de recriação. + + + QueryExecutor - - - - There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. - + + Execution interrupted. + Execução interrompida. - - All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. - + + Database is not open. + Banco de dados não está aberto. - - Cannot not update view %1 according to table %2 modifications. -The view will remain as it is. - + + Only one query can be executed simultaneously. + Apenas uma consulta pode ser executada simultaneamente. - - Could not parse DDL of the view to be created. Details: %1 - + + + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 + Ocorreu um erro ao executar a função count(*), desta forma a paginação de dados será desabilitada. Detalhes de erro do banco de dados: %1 - - Parsed query is not CREATE VIEW. It's: %1 - + + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. + SQLiteStudio não pôde extrair os metadados da consulta. Os resultados obtidos não serão editáveis. + + + ScriptingQtDbProxy - - SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. - + + No database available in current context, while called JavaScript's %1 command. + Nenhum banco de dados disponível, enquanto rodando JavaScript %1. - - Could not open file '%1' for reading: %2 - + + Error from %1: %2 + Erro de %1: %2 - - - QueryExecutor + + + SqlFileExecutor - - Execution interrupted. - + + Could not execute SQL, because application has failed to start transaction: %1 + Não foi possível executar SQL, porque a aplicação falhou ao iniciar a transação: %1 - - Database is not open. - + + Execution from file cancelled. Any queries executed so far have been rolled back. + Execução do arquivo cancelada. Quaisquer consultas executadas até agora foram desfeitas. - - Only one query can be executed simultaneously. - + + Could not open file '%1' for reading: %2 + Não foi possível abrir o arquivo '%1' para leitura: %2 - - - An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 - + + Could not execute SQL, because application has failed to commit the transaction: %1 + Não foi possível executar SQL, porque o aplicativo falhou ao confirmar a transação: %1 - - SQLiteStudio was unable to extract metadata from the query. Results won't be editable. - + + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. + Concluiu a execução de consultas %1 em %2 segundos. %3 não executado devido a erros. - - - ScriptingQtDbProxy - - No database available in current context, while called QtScript's %1 command. - + + Finished executing %1 queries in %2 seconds. + Terminou a consulta %1 em %2 segundos. - - Error from %1: %2 - + + Could not execute SQL due to error. + Não foi possível executar SQL devido a um erro. - - + + SqlHistoryModel - - Database - sql history header - + + Database + sql history header + Banco de dados - - Execution date - sql history header - + + Execution date + sql history header + Data de execução - - Time spent - sql history header - + + Time spent + sql history header + Tempo gasto - - Rows affected - sql history header - + + Rows affected + sql history header + Linhas afetadas - - SQL - sql history header - + + SQL + sql history header + SQL - - + + UpdateManager - - Updates installer executable is missing. - - - - - - Unable to check for updates (%1) - - - - - details are unknown - - - - - Unable to run updater application (%1). Please report this. - + + Could not check for updates (%1). + Não foi possível verificar se há atualizações (%1). - + diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_pt_PT.ts b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_pt_PT.ts new file mode 100644 index 0000000..bdc50f6 --- /dev/null +++ b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_pt_PT.ts @@ -0,0 +1,1101 @@ + + + + + AbstractDb + + + + Cannot execute query on closed database. + Cannot execute query on closed database. + + + + Error attaching database %1: %2 + Error attaching database %1: %2 + + + + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + + + + ChainExecutor + + + The database for executing queries was not defined. + chain executor + The database for executing queries was not defined. + + + + The database for executing queries was not open. + chain executor + The database for executing queries was not open. + + + + Could not disable foreign keys in the database. Details: %1 + chain executor + Could not disable foreign keys in the database. Details: %1 + + + + Could not start a database transaction. Details: %1 + chain executor + Could not start a database transaction. Details: %1 + + + + Interrupted + chain executor + Interrupted + + + + Could not commit a database transaction. Details: %1 + chain executor + Could not commit a database transaction. Details: %1 + + + + CompletionHelper + + + New row reference + New row reference + + + + Old row reference + Old row reference + + + + New table name + New table name + + + + New index name + New index name + + + + New view name + New view name + + + + New trigger name + New trigger name + + + + Table or column alias + Table or column alias + + + + transaction name + transaction name + + + + New column name + New column name + + + + Column data type + Column data type + + + + Constraint name + Constraint name + + + + Error message + Error message + + + + Any word + Any word + + + + Default database + Default database + + + + Temporary objects database + Temporary objects database + + + + ConfigImpl + + + Could not start database transaction for deleting SQL history, therefore it's not deleted. + Could not start database transaction for deleting SQL history, therefore it's not deleted. + + + + Could not commit database transaction for deleting SQL history, therefore it's not deleted. + Could not commit database transaction for deleting SQL history, therefore it's not deleted. + + + + DbManagerImpl + + + Could not add database %1: %2 + Could not add database %1: %2 + + + + Database %1 could not be updated, because of an error: %2 + Database %1 could not be updated, because of an error: %2 + + + + + Database file doesn't exist. + Database file doesn't exist. + + + + + + No supporting plugin loaded. + No supporting plugin loaded. + + + + Database could not be initialized. + Database could not be initialized. + + + + No suitable database driver plugin found. + No suitable database driver plugin found. + + + + DbObjectOrganizer + + + + Error while creating table in target database: %1 + Error while creating table in target database: %1 + + + + Could not parse table. + Could not parse table. + + + + Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. + Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. + + + + Error while copying data for table %1: %2 + Error while copying data for table %1: %2 + + + + + + Error while copying data to table %1: %2 + Error while copying data to table %1: %2 + + + + Error while dropping source view %1: %2 +Tables, indexes, triggers and views copied to database %3 will remain. + Error while dropping source view %1: %2 +Tables, indexes, triggers and views copied to database %3 will remain. + + + + Error while creating view in target database: %1 + Error while creating view in target database: %1 + + + + Error while creating index in target database: %1 + Error while creating index in target database: %1 + + + + Error while creating trigger in target database: %1 + Error while creating trigger in target database: %1 + + + + + + Could not parse object '%1' in order to move or copy it. + Could not parse object '%1' in order to move or copy it. + + + + DdlHistoryModel + + + Database name + ddl history header + Database name + + + + Database file + ddl history header + Database file + + + + Date of execution + ddl history header + Date of execution + + + + Changes + ddl history header + Changes + + + + ExportManager + + + Export plugin %1 doesn't support exporing query results. + Export plugin %1 doesn't support exporing query results. + + + + Export plugin %1 doesn't support exporing tables. + Export plugin %1 doesn't support exporing tables. + + + + Export plugin %1 doesn't support exporing databases. + Export plugin %1 doesn't support exporing databases. + + + + Export format '%1' is not supported. Supported formats are: %2. + Export format '%1' is not supported. Supported formats are: %2. + + + + Export to the clipboard was successful. + Export to the clipboard was successful. + + + + Export to the file '%1' was successful. + Export to the file '%1' was successful. + + + + Export was successful. + Export was successful. + + + + Could not export to file %1. File cannot be open for writting. + Could not export to file %1. File cannot be open for writting. + + + + ExportWorker + + + Error while exporting query results: %1 + Error while exporting query results: %1 + + + + Error while counting data column width to export from query results: %1 + Error while counting data column width to export from query results: %1 + + + + + Could not parse %1 in order to export it. It will be excluded from the export output. + Could not parse %1 in order to export it. It will be excluded from the export output. + + + + Error while reading data to export from table %1: %2 + Error while reading data to export from table %1: %2 + + + + Error while counting data to export from table %1: %2 + Error while counting data to export from table %1: %2 + + + + Error while counting data column width to export from table %1: %2 + Error while counting data column width to export from table %1: %2 + + + + FunctionManagerImpl + + + Invalid number of arguments to function '%1'. Expected %2, but got %3. + Invalid number of arguments to function '%1'. Expected %2, but got %3. + + + + No such function registered in SQLiteStudio: %1(%2) + No such function registered in SQLiteStudio: %1(%2) + + + + Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. + Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. + + + + Invalid regular expression pattern: %1 + Invalid regular expression pattern: %1 + + + + + Could not open file %1 for reading: %2 + Could not open file %1 for reading: %2 + + + + Could not open file %1 for writting: %2 + Could not open file %1 for writting: %2 + + + + Error while writting to file %1: %2 + Error while writting to file %1: %2 + + + + Unsupported scripting language: %1 + Unsupported scripting language: %1 + + + + GenericExportPlugin + + + Could not initialize text codec for exporting. Using default codec: %1 + Could not initialize text codec for exporting. Using default codec: %1 + + + + ImportManager + + + Imported data to the table '%1' successfully. Number of imported rows: %2 + Imported data to the table '%1' successfully. Number of imported rows: %2 + + + + ImportWorker + + + No columns provided by the import plugin. + No columns provided by the import plugin. + + + + Could not start transaction in order to import a data: %1 + Could not start transaction in order to import a data: %1 + + + + Could not commit transaction for imported data: %1 + Could not commit transaction for imported data: %1 + + + + Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. + Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. + + + + Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. + Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. + + + + Could not create table to import to: %1 + Could not create table to import to: %1 + + + + + + Error while importing data: %1 + Error while importing data: %1 + + + + + Interrupted. + import process status update + Interrupted. + + + + Could not import data row number %1. The row was ignored. Problem details: %2 + Could not import data row number %1. The row was ignored. Problem details: %2 + + + + PluginManagerImpl + + + Cannot load plugin %1, because it's in conflict with plugin %2. + Cannot load plugin %1, because it's in conflict with plugin %2. + + + + Cannot load plugin %1, because its dependency was not loaded: %2. + Cannot load plugin %1, because its dependency was not loaded: %2. + + + + Cannot load plugin %1. Error details: %2 + Cannot load plugin %1. Error details: %2 + + + + Cannot load plugin %1 (error while initializing plugin). + Cannot load plugin %1 (error while initializing plugin). + + + + min: %1 + plugin dependency version + min: %1 + + + + max: %1 + plugin dependency version + max: %1 + + + + PopulateConstant + + + Constant + populate constant plugin name + Constant + + + + PopulateConstantConfig + + + Constant value: + Constant value: + + + + PopulateDictionary + + + Dictionary + dictionary populating plugin name + Dictionary + + + + PopulateDictionaryConfig + + + Dictionary file + Dictionary file + + + + Pick dictionary file + Pick dictionary file + + + + Word separator + Word separator + + + + Whitespace + Whitespace + + + + Line break + Line break + + + + Method of using words + Method of using words + + + + Ordered + Ordered + + + + Randomly + Randomly + + + + PopulateManager + + + Table '%1' populated successfully. + Table '%1' populated successfully. + + + + PopulateRandom + + + Random number + Random number + + + + PopulateRandomConfig + + + Constant prefix + Constant prefix + + + + No prefix + No prefix + + + + Minimum value + Minimum value + + + + Maximum value + Maximum value + + + + Constant suffix + Constant suffix + + + + No suffix + No suffix + + + + PopulateRandomText + + + Random text + Random text + + + + PopulateRandomTextConfig + + + Use characters from common sets: + Use characters from common sets: + + + + Minimum length + Minimum length + + + + Letters from a to z. + Letters from a to z. + + + + Alpha + Alpha + + + + Numbers from 0 to 9. + Numbers from 0 to 9. + + + + Numeric + Numeric + + + + A whitespace, a tab and a new line character. + A whitespace, a tab and a new line character. + + + + Whitespace + Whitespace + + + + Includes all above and all others. + Includes all above and all others. + + + + Binary + Binary + + + + Use characters from my custom set: + Use characters from my custom set: + + + + Maximum length + Maximum length + + + + If you type some character multiple times, it's more likely to be used. + If you type some character multiple times, it's more likely to be used. + + + + PopulateScript + + + Script + Script + + + + PopulateScriptConfig + + + Initialization code (optional) + Initialization code (optional) + + + + Per step code + Per step code + + + + Language + Language + + + + Help + Help + + + + PopulateSequence + + + Sequence + Sequence + + + + PopulateSequenceConfig + + + Start value: + Start value: + + + + Step: + Step: + + + + PopulateWorker + + + Could not start transaction in order to perform table populating. Error details: %1 + Could not start transaction in order to perform table populating. Error details: %1 + + + + Error while populating table: %1 + Error while populating table: %1 + + + + Could not commit transaction after table populating. Error details: %1 + Could not commit transaction after table populating. Error details: %1 + + + + QObject + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Could not open database: %1 + Could not open database: %1 + + + + Result set expired or no row available. + Result set expired or no row available. + + + + + Could not load extension %1: %2 + Could not load extension %1: %2 + + + + Could not run WAL checkpoint: %1 + Could not run WAL checkpoint: %1 + + + + Could not close database: %1 + Could not close database: %1 + + + + Could not attach database %1: %2 + Could not attach database %1: %2 + + + + + Incomplete query. + Incomplete query. + + + + Parser stack overflow + Parser stack overflow + + + + Syntax error + Syntax error + + + + Could not open dictionary file %1 for reading. + Could not open dictionary file %1 for reading. + + + + Dictionary file must exist and be readable. + Dictionary file must exist and be readable. + + + + Maximum value cannot be less than minimum value. + Maximum value cannot be less than minimum value. + + + + Maximum length cannot be less than minimum length. + Maximum length cannot be less than minimum length. + + + + Custom character set cannot be empty. + Custom character set cannot be empty. + + + + Could not find plugin to support scripting language: %1 + Could not find plugin to support scripting language: %1 + + + + Error while executing populating initial code: %1 + Error while executing populating initial code: %1 + + + + Error while executing populating code: %1 + Error while executing populating code: %1 + + + + Select implementation language. + Select implementation language. + + + + Implementation code cannot be empty. + Implementation code cannot be empty. + + + + Could not resolve data source for column: %1 + Could not resolve data source for column: %1 + + + + Could not resolve table for column '%1'. + Could not resolve table for column '%1'. + + + + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Unable to create a file at following locations: %1. + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Unable to create a file at following locations: %1. + + + + General purpose + plugin category name + General purpose + + + + Database support + plugin category name + Database support + + + + Code formatter + plugin category name + Code formatter + + + + Scripting languages + plugin category name + Scripting languages + + + + Exporting + plugin category name + Exporting + + + + Importing + plugin category name + Importing + + + + Table populating + plugin category name + Table populating + + + + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. + + + + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. + + + + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. + + + + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. + + + + Cannot not update trigger %1 according to table %2 modification. + Cannot not update trigger %1 according to table %2 modification. + + + + Cannot not update view %1 according to table %2 modifications. +The view will remain as it is. + Cannot not update view %1 according to table %2 modifications. +The view will remain as it is. + + + + + + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. + + + + Could not parse DDL of the view to be created. Details: %1 + Could not parse DDL of the view to be created. Details: %1 + + + + Parsed query is not CREATE VIEW. It's: %1 + Parsed query is not CREATE VIEW. It's: %1 + + + + SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. + SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. + + + + QueryExecutor + + + Execution interrupted. + Execution interrupted. + + + + Database is not open. + Database is not open. + + + + Only one query can be executed simultaneously. + Only one query can be executed simultaneously. + + + + + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 + + + + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. + + + + ScriptingQtDbProxy + + + No database available in current context, while called JavaScript's %1 command. + No database available in current context, while called JavaScript's %1 command. + + + + Error from %1: %2 + Error from %1: %2 + + + + SqlFileExecutor + + + Could not execute SQL, because application has failed to start transaction: %1 + Could not execute SQL, because application has failed to start transaction: %1 + + + + Execution from file cancelled. Any queries executed so far have been rolled back. + Execution from file cancelled. Any queries executed so far have been rolled back. + + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Could not execute SQL, because application has failed to commit the transaction: %1 + Could not execute SQL, because application has failed to commit the transaction: %1 + + + + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. + + + + Finished executing %1 queries in %2 seconds. + Finished executing %1 queries in %2 seconds. + + + + Could not execute SQL due to error. + Could not execute SQL due to error. + + + + SqlHistoryModel + + + Database + sql history header + Database + + + + Execution date + sql history header + Execution date + + + + Time spent + sql history header + Time spent + + + + Rows affected + sql history header + Rows affected + + + + SQL + sql history header + SQL + + + + UpdateManager + + + Could not check for updates (%1). + Could not check for updates (%1). + + + diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_ro_RO.qm b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_ro_RO.qm deleted file mode 100644 index 2856eb9..0000000 Binary files a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_ro_RO.qm and /dev/null differ diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_ro_RO.ts b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_ro_RO.ts index 744cb0c..5a793f5 100644 --- a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_ro_RO.ts +++ b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_ro_RO.ts @@ -1,1146 +1,1101 @@ - - + + AbstractDb - - - Cannot execute query on closed database. - + + + Cannot execute query on closed database. + Cannot execute query on closed database. - - Error attaching database %1: %2 - + + Error attaching database %1: %2 + Error attaching database %1: %2 - - - ChainExecutor - - The database for executing queries was not defined. - chain executor - + + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + + + ChainExecutor - - The database for executing queries was not open. - chain executor - + + The database for executing queries was not defined. + chain executor + The database for executing queries was not defined. - - Could not disable foreign keys in the database. Details: %1 - chain executor - + + The database for executing queries was not open. + chain executor + The database for executing queries was not open. - - Could not start a database transaction. Details: %1 - chain executor - + + Could not disable foreign keys in the database. Details: %1 + chain executor + Could not disable foreign keys in the database. Details: %1 - - Interrupted - chain executor - + + Could not start a database transaction. Details: %1 + chain executor + Could not start a database transaction. Details: %1 - - Could not commit a database transaction. Details: %1 - chain executor - + + Interrupted + chain executor + Interrupted - - - CompletionHelper - - New row reference - + + Could not commit a database transaction. Details: %1 + chain executor + Could not commit a database transaction. Details: %1 + + + CompletionHelper - - Old row reference - + + New row reference + New row reference - - New table name - + + Old row reference + Old row reference - - New index name - + + New table name + New table name - - New view name - + + New index name + New index name - - New trigger name - + + New view name + New view name - - Table or column alias - + + New trigger name + New trigger name - - transaction name - + + Table or column alias + Table or column alias - - New column name - + + transaction name + transaction name - - Column data type - + + New column name + New column name - - Constraint name - + + Column data type + Column data type - - Error message - + + Constraint name + Constraint name - - Collation name - + + Error message + Error message - - Any word - + + Any word + Any word - - Default database - + + Default database + Default database - - Temporary objects database - + + Temporary objects database + Temporary objects database - - + + ConfigImpl - - Could not start database transaction for deleting SQL history, therefore it's not deleted. - + + Could not start database transaction for deleting SQL history, therefore it's not deleted. + Could not start database transaction for deleting SQL history, therefore it's not deleted. - - Could not commit database transaction for deleting SQL history, therefore it's not deleted. - + + Could not commit database transaction for deleting SQL history, therefore it's not deleted. + Could not commit database transaction for deleting SQL history, therefore it's not deleted. - - + + DbManagerImpl - - Could not add database %1: %2 - + + Could not add database %1: %2 + Could not add database %1: %2 - - Database %1 could not be updated, because of an error: %2 - + + Database %1 could not be updated, because of an error: %2 + Database %1 could not be updated, because of an error: %2 - - - Database file doesn't exist. - + + + Database file doesn't exist. + Database file doesn't exist. - - - - No supporting plugin loaded. - + + + + No supporting plugin loaded. + No supporting plugin loaded. - - Database could not be initialized. - + + Database could not be initialized. + Database could not be initialized. - - No suitable database driver plugin found. - + + No suitable database driver plugin found. + No suitable database driver plugin found. - - + + DbObjectOrganizer - - - Error while creating table in target database: %1 - + + + Error while creating table in target database: %1 + Error while creating table in target database: %1 - - Could not parse table. - + + Could not parse table. + Could not parse table. - - Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. - + + Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. + Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. - - Error while copying data for table %1: %2 - + + Error while copying data for table %1: %2 + Error while copying data for table %1: %2 - - - - Error while copying data to table %1: %2 - + + + + Error while copying data to table %1: %2 + Error while copying data to table %1: %2 - - Error while dropping source view %1: %2 + + Error while dropping source view %1: %2 Tables, indexes, triggers and views copied to database %3 will remain. - - - - - Error while creating view in target database: %1 - + Error while dropping source view %1: %2 +Tables, indexes, triggers and views copied to database %3 will remain. - - Error while creating index in target database: %1 - + + Error while creating view in target database: %1 + Error while creating view in target database: %1 - - Error while creating trigger in target database: %1 - + + Error while creating index in target database: %1 + Error while creating index in target database: %1 - - - - Could not parse object '%1' in order to move or copy it. - + + Error while creating trigger in target database: %1 + Error while creating trigger in target database: %1 - - - DbVersionConverter - - Target file exists, but could not be overwritten. - + + + + Could not parse object '%1' in order to move or copy it. + Could not parse object '%1' in order to move or copy it. - - - Could not find proper database plugin to create target database. - - - - - Error while converting database: %1 - - - - + + DdlHistoryModel - - Database name - ddl history header - + + Database name + ddl history header + Database name - - Database file - ddl history header - + + Database file + ddl history header + Database file - - Date of execution - ddl history header - + + Date of execution + ddl history header + Date of execution - - Changes - ddl history header - + + Changes + ddl history header + Changes - - + + ExportManager - - Export plugin %1 doesn't support exporing query results. - + + Export plugin %1 doesn't support exporing query results. + Export plugin %1 doesn't support exporing query results. - - Export plugin %1 doesn't support exporing tables. - + + Export plugin %1 doesn't support exporing tables. + Export plugin %1 doesn't support exporing tables. - - Export plugin %1 doesn't support exporing databases. - + + Export plugin %1 doesn't support exporing databases. + Export plugin %1 doesn't support exporing databases. - - Export format '%1' is not supported. Supported formats are: %2. - + + Export format '%1' is not supported. Supported formats are: %2. + Export format '%1' is not supported. Supported formats are: %2. - - Export to the clipboard was successful. - + + Export to the clipboard was successful. + Export to the clipboard was successful. - - Export to the file '%1' was successful. - + + Export to the file '%1' was successful. + Export to the file '%1' was successful. - - Export was successful. - + + Export was successful. + Export was successful. - - Could not export to file %1. File cannot be open for writting. - + + Could not export to file %1. File cannot be open for writting. + Could not export to file %1. File cannot be open for writting. - - + + ExportWorker - - Error while exporting query results: %1 - + + Error while exporting query results: %1 + Error while exporting query results: %1 - - Error while counting data column width to export from query results: %1 - + + Error while counting data column width to export from query results: %1 + Error while counting data column width to export from query results: %1 - - - Could not parse %1 in order to export it. It will be excluded from the export output. - + + + Could not parse %1 in order to export it. It will be excluded from the export output. + Could not parse %1 in order to export it. It will be excluded from the export output. - - Error while reading data to export from table %1: %2 - + + Error while reading data to export from table %1: %2 + Error while reading data to export from table %1: %2 - - Error while counting data to export from table %1: %2 - + + Error while counting data to export from table %1: %2 + Error while counting data to export from table %1: %2 - - Error while counting data column width to export from table %1: %2 - + + Error while counting data column width to export from table %1: %2 + Error while counting data column width to export from table %1: %2 - - + + FunctionManagerImpl - - Invalid number of arguments to function '%1'. Expected %2, but got %3. - + + Invalid number of arguments to function '%1'. Expected %2, but got %3. + Invalid number of arguments to function '%1'. Expected %2, but got %3. - - No such function registered in SQLiteStudio: %1(%2) - + + No such function registered in SQLiteStudio: %1(%2) + No such function registered in SQLiteStudio: %1(%2) - - Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. - + + Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. + Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. - - Invalid regular expression pattern: %1 - + + Invalid regular expression pattern: %1 + Invalid regular expression pattern: %1 - - - Could not open file %1 for reading: %2 - + + + Could not open file %1 for reading: %2 + Could not open file %1 for reading: %2 - - Could not open file %1 for writting: %2 - + + Could not open file %1 for writting: %2 + Could not open file %1 for writting: %2 - - Error while writting to file %1: %2 - + + Error while writting to file %1: %2 + Error while writting to file %1: %2 - - Unsupported scripting language: %1 - + + Unsupported scripting language: %1 + Unsupported scripting language: %1 - - + + GenericExportPlugin - - Could not initialize text codec for exporting. Using default codec: %1 - + + Could not initialize text codec for exporting. Using default codec: %1 + Could not initialize text codec for exporting. Using default codec: %1 - - + + ImportManager - - Imported data to the table '%1' successfully. - + + Imported data to the table '%1' successfully. Number of imported rows: %2 + Imported data to the table '%1' successfully. Number of imported rows: %2 - - + + ImportWorker - - No columns provided by the import plugin. - + + No columns provided by the import plugin. + No columns provided by the import plugin. - - Could not start transaction in order to import a data: %1 - + + Could not start transaction in order to import a data: %1 + Could not start transaction in order to import a data: %1 - - Could not commit transaction for imported data: %1 - + + Could not commit transaction for imported data: %1 + Could not commit transaction for imported data: %1 - - Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. - + + Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. + Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. - - Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. - + + Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. + Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. - - Could not create table to import to: %1 - + + Could not create table to import to: %1 + Could not create table to import to: %1 - - - - Error while importing data: %1 - + + + + Error while importing data: %1 + Error while importing data: %1 - - - Interrupted. - import process status update - + + + Interrupted. + import process status update + Interrupted. - - Could not import data row number %1. The row was ignored. Problem details: %2 - + + Could not import data row number %1. The row was ignored. Problem details: %2 + Could not import data row number %1. The row was ignored. Problem details: %2 - - + + PluginManagerImpl - - Cannot load plugin %1, because it's in conflict with plugin %2. - + + Cannot load plugin %1, because it's in conflict with plugin %2. + Cannot load plugin %1, because it's in conflict with plugin %2. - - Cannot load plugin %1, because its dependency was not loaded: %2. - + + Cannot load plugin %1, because its dependency was not loaded: %2. + Cannot load plugin %1, because its dependency was not loaded: %2. - - Cannot load plugin %1. Error details: %2 - + + Cannot load plugin %1. Error details: %2 + Cannot load plugin %1. Error details: %2 - - Cannot load plugin %1 (error while initializing plugin). - + + Cannot load plugin %1 (error while initializing plugin). + Cannot load plugin %1 (error while initializing plugin). - - min: %1 - plugin dependency version - + + min: %1 + plugin dependency version + min: %1 - - max: %1 - plugin dependency version - + + max: %1 + plugin dependency version + max: %1 - - + + PopulateConstant - - Constant - populate constant plugin name - + + Constant + populate constant plugin name + Constant - - + + PopulateConstantConfig - - Constant value: - + + Constant value: + Constant value: - - + + PopulateDictionary - - Dictionary - dictionary populating plugin name - + + Dictionary + dictionary populating plugin name + Dictionary - - + + PopulateDictionaryConfig - - Dictionary file - + + Dictionary file + Dictionary file - - Pick dictionary file - + + Pick dictionary file + Pick dictionary file - - Word separator - + + Word separator + Word separator - - Whitespace - + + Whitespace + Whitespace - - Line break - + + Line break + Line break - - Method of using words - + + Method of using words + Method of using words - - Ordered - + + Ordered + Ordered - - Randomly - + + Randomly + Randomly - - + + PopulateManager - - Table '%1' populated successfully. - + + Table '%1' populated successfully. + Table '%1' populated successfully. - - + + PopulateRandom - - Random number - + + Random number + Random number - - + + PopulateRandomConfig - - Constant prefix - + + Constant prefix + Constant prefix - - No prefix - + + No prefix + No prefix - - Minimum value - + + Minimum value + Minimum value - - Maximum value - + + Maximum value + Maximum value - - Constant suffix - + + Constant suffix + Constant suffix - - No suffix - + + No suffix + No suffix - - + + PopulateRandomText - - Random text - + + Random text + Random text - - + + PopulateRandomTextConfig - - Use characters from common sets: - + + Use characters from common sets: + Use characters from common sets: - - Minimum length - + + Minimum length + Minimum length - - Letters from a to z. - + + Letters from a to z. + Letters from a to z. - - Alpha - + + Alpha + Alpha - - Numbers from 0 to 9. - + + Numbers from 0 to 9. + Numbers from 0 to 9. - - Numeric - + + Numeric + Numeric - - A whitespace, a tab and a new line character. - + + A whitespace, a tab and a new line character. + A whitespace, a tab and a new line character. - - Whitespace - + + Whitespace + Whitespace - - Includes all above and all others. - + + Includes all above and all others. + Includes all above and all others. - - Binary - + + Binary + Binary - - Use characters from my custom set: - + + Use characters from my custom set: + Use characters from my custom set: - - Maximum length - + + Maximum length + Maximum length - - If you type some character multiple times, it's more likely to be used. - + + If you type some character multiple times, it's more likely to be used. + If you type some character multiple times, it's more likely to be used. - - + + PopulateScript - - Script - + + Script + Script - - + + PopulateScriptConfig - - Initialization code (optional) - + + Initialization code (optional) + Initialization code (optional) - - Per step code - + + Per step code + Per step code - - Language - + + Language + Language - - Help - + + Help + Help - - + + PopulateSequence - - Sequence - + + Sequence + Sequence - - + + PopulateSequenceConfig - - Start value: - + + Start value: + Start value: - - Step: - + + Step: + Step: - - + + PopulateWorker - - Could not start transaction in order to perform table populating. Error details: %1 - + + Could not start transaction in order to perform table populating. Error details: %1 + Could not start transaction in order to perform table populating. Error details: %1 - - Error while populating table: %1 - + + Error while populating table: %1 + Error while populating table: %1 - - Could not commit transaction after table populating. Error details: %1 - + + Could not commit transaction after table populating. Error details: %1 + Could not commit transaction after table populating. Error details: %1 - - + + QObject - - - Could not open database: %1 - + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 - - - Result set expired or no row available. - + + Could not open database: %1 + Could not open database: %1 - - - Could not load extension %1: %2 - + + Result set expired or no row available. + Result set expired or no row available. - - Could not close database: %1 - + + + Could not load extension %1: %2 + Could not load extension %1: %2 - - - - - - - - SQLite %1 does not support '%2' statement. - + + Could not run WAL checkpoint: %1 + Could not run WAL checkpoint: %1 - - SQLite %1 does not support '%2' statement, but the regular table can be created instead if you proceed. - + + Could not close database: %1 + Could not close database: %1 - - Could not parse statement: %1 -Error details: %2 - + + Could not attach database %1: %2 + Could not attach database %1: %2 - - - - - SQLite %1 does not support the '%2' clause. Cannot convert '%3' statement with that clause. - + + + Incomplete query. + Incomplete query. - - SQLite %1 does not support the '%2' clause in the '%3' statement. - + + Parser stack overflow + Parser stack overflow - - SQLite %1 does not support current date or time clauses in expressions. - + + Syntax error + Syntax error - - SQLite %1 does not support row value clauses in expressions. - + + Could not open dictionary file %1 for reading. + Could not open dictionary file %1 for reading. - - - - SQLite %1 does not support '%2' clause in expressions. - + + Dictionary file must exist and be readable. + Dictionary file must exist and be readable. - - Could not attach database %1: %2 - + + Maximum value cannot be less than minimum value. + Maximum value cannot be less than minimum value. - - - Incomplete query. - + + Maximum length cannot be less than minimum length. + Maximum length cannot be less than minimum length. - - - Parser stack overflow - + + Custom character set cannot be empty. + Custom character set cannot be empty. - - - Syntax error - + + Could not find plugin to support scripting language: %1 + Could not find plugin to support scripting language: %1 - - Could not open dictionary file %1 for reading. - + + Error while executing populating initial code: %1 + Error while executing populating initial code: %1 - - Dictionary file must exist and be readable. - + + Error while executing populating code: %1 + Error while executing populating code: %1 - - Maximum value cannot be less than minimum value. - + + Select implementation language. + Select implementation language. - - Maximum length cannot be less than minimum length. - + + Implementation code cannot be empty. + Implementation code cannot be empty. - - Custom character set cannot be empty. - + + Could not resolve data source for column: %1 + Could not resolve data source for column: %1 - - Could not find plugin to support scripting language: %1 - + + Could not resolve table for column '%1'. + Could not resolve table for column '%1'. - - Error while executing populating initial code: %1 - + + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Unable to create a file at following locations: %1. + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Unable to create a file at following locations: %1. - - Error while executing populating code: %1 - + + General purpose + plugin category name + General purpose - - Select implementation language. - + + Database support + plugin category name + Database support - - Implementation code cannot be empty. - + + Code formatter + plugin category name + Code formatter - - Could not resolve data source for column: %1 - + + Scripting languages + plugin category name + Scripting languages - - Could not resolve table for column '%1'. - + + Exporting + plugin category name + Exporting - - Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Tried to initialize the file at following localizations: %1. - + + Importing + plugin category name + Importing - - General purpose - plugin category name - + + Table populating + plugin category name + Table populating - - Database support - plugin category name - + + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. - - Code formatter - plugin category name - + + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. - - Scripting languages - plugin category name - + + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. - - Exporting - plugin category name - + + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. - - Importing - plugin category name - + + Cannot not update trigger %1 according to table %2 modification. + Cannot not update trigger %1 according to table %2 modification. - - Table populating - plugin category name - + + Cannot not update view %1 according to table %2 modifications. +The view will remain as it is. + Cannot not update view %1 according to table %2 modifications. +The view will remain as it is. - - Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. - + + + + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. - - All columns indexed by the index %1 are gone. The index will not be recreated after table modification. - + + Could not parse DDL of the view to be created. Details: %1 + Could not parse DDL of the view to be created. Details: %1 - - There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. - + + Parsed query is not CREATE VIEW. It's: %1 + Parsed query is not CREATE VIEW. It's: %1 - - All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. - + + SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. + SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. + + + QueryExecutor - - Cannot not update trigger %1 according to table %2 modification. - + + Execution interrupted. + Execution interrupted. - - Cannot not update view %1 according to table %2 modifications. -The view will remain as it is. - + + Database is not open. + Database is not open. - - - - There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. - + + Only one query can be executed simultaneously. + Only one query can be executed simultaneously. - - Could not parse DDL of the view to be created. Details: %1 - + + + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 - - Parsed query is not CREATE VIEW. It's: %1 - + + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. + + + ScriptingQtDbProxy - - SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. - + + No database available in current context, while called JavaScript's %1 command. + No database available in current context, while called JavaScript's %1 command. - - Could not open file '%1' for reading: %2 - + + Error from %1: %2 + Error from %1: %2 - - - QueryExecutor + + + SqlFileExecutor - - Execution interrupted. - + + Could not execute SQL, because application has failed to start transaction: %1 + Could not execute SQL, because application has failed to start transaction: %1 - - Database is not open. - + + Execution from file cancelled. Any queries executed so far have been rolled back. + Execution from file cancelled. Any queries executed so far have been rolled back. - - Only one query can be executed simultaneously. - + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 - - - An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 - + + Could not execute SQL, because application has failed to commit the transaction: %1 + Could not execute SQL, because application has failed to commit the transaction: %1 - - SQLiteStudio was unable to extract metadata from the query. Results won't be editable. - + + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. - - - ScriptingQtDbProxy - - No database available in current context, while called QtScript's %1 command. - + + Finished executing %1 queries in %2 seconds. + Finished executing %1 queries in %2 seconds. - - Error from %1: %2 - + + Could not execute SQL due to error. + Could not execute SQL due to error. - - + + SqlHistoryModel - - Database - sql history header - + + Database + sql history header + Database - - Execution date - sql history header - + + Execution date + sql history header + Execution date - - Time spent - sql history header - + + Time spent + sql history header + Time spent - - Rows affected - sql history header - + + Rows affected + sql history header + Rows affected - - SQL - sql history header - + + SQL + sql history header + SQL - - + + UpdateManager - - Updates installer executable is missing. - - - - - - Unable to check for updates (%1) - - - - - details are unknown - - - - - Unable to run updater application (%1). Please report this. - + + Could not check for updates (%1). + Could not check for updates (%1). - + diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_ru.qm b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_ru.qm deleted file mode 100644 index 55d59ab..0000000 Binary files a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_ru.qm and /dev/null differ diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_ru.ts b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_ru.ts deleted file mode 100644 index 956c7f0..0000000 --- a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_ru.ts +++ /dev/null @@ -1,1318 +0,0 @@ - - - - - AbstractDb - - - - Cannot execute query on closed database. - Невозможно выполнить запрос при закрытой базе данных. - - - - Error attaching database %1: %2 - Ошибка во время присоединения базы данных %1: %2 - - - - BugReporter - - Invalid login or password - Неправильный логин или пароль - - - - ChainExecutor - - - The database for executing queries was not defined. - chain executor - Не указана база данных для выполнения запросов. - - - - The database for executing queries was not open. - chain executor - Не открыта база данных для выполнения запросов. - - - - Could not disable foreign keys in the database. Details: %1 - chain executor - Невозможно отключить внешние ключи в базе данных. Подробности: %1 - - - - Could not start a database transaction. Details: %1 - chain executor - Невозможно начать транзакцию. Подробности: %1 - - - - Interrupted - chain executor - Прервано - - - - Could not commit a database transaction. Details: %1 - chain executor - Невозможно завершить транзакцию. Подробности: %1 - - - - CompletionHelper - - - New row reference - Новая ссылка на строку - - - - Old row reference - Старая ссылка на строку - - - - New table name - Новое имя таблицы - - - - New index name - Новое имя индекса - - - - New view name - - - - - New trigger name - Новое имя триггера - - - - Table or column alias - Псевдоним таблицы или столбца - - - - transaction name - имя транзакции - - - - New column name - Новое имя столбца - - - - Column data type - Тип данных столбца - - - - Constraint name - Имя ограничения - - - - Error message - Сообщение об ошибке - - - - Collation name - Имя сравнения - - - - Any word - Любое слово - - - - Default database - База данных по умолчанию - - - - Temporary objects database - База данных временных объектов - - - - ConfigImpl - - - Could not start database transaction for deleting SQL history, therefore it's not deleted. - Невозможно начать транзакцию для удаления истории SQL, поэтому она не удалена. - - - - Could not commit database transaction for deleting SQL history, therefore it's not deleted. - Невозможно завершить транзакцию для удаления истории SQL, поэтому она не удалена. - - - - DbManagerImpl - - - Could not add database %1: %2 - Не удалось добавить базу данных %1: %2 - - - - Database %1 could not be updated, because of an error: %2 - Невозможно обновить базу данных %1 из-за ошибки: %2 - - - - - Database file doesn't exist. - Файл базы данных не существует. - - - - - - No supporting plugin loaded. - Unclear error string. Checking the source didn't help. - Модуль поддержки не загружен. - - - - Database could not be initialized. - Невозможно инициализировать базу данных. - - - - No suitable database driver plugin found. - Не найден подходящий драйвер базы данных. - - - - DbObjectOrganizer - - - - Error while creating table in target database: %1 - Ошибка при создании таблицы в целевой базе данных: %1 - - - - Could not parse table. - Невозможно проанализировать структуру таблицы. - - - - Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. - Невозможно присоединить базу данных %1 к базе данных %2, поэтому данные таблицы %3 будут скопированы при посредничестве SQLiteStudio. Этот метод может быть медленным для больших таблиц, так что наберитесь терпения. - - - - Error while copying data for table %1: %2 - Ошибка при копировании данных из таблицы %1: %2 - - - - - - Error while copying data to table %1: %2 - Ошибка при копировании данных в таблицу %1: %2 - - - - Error while dropping source view %1: %2 -Tables, indexes, triggers and views copied to database %3 will remain. - Ошибка при удалении исходного представления %1: %2 -Таблицы, индексы, триггеры и представления, скопированные в базу данных %3, сохранятся. - - - - Error while creating view in target database: %1 - Ошибка при создании представления в целевой базе данных: %1 - - - - Error while creating index in target database: %1 - Ошибка при создании индекса в целевой базе данных: %1 - - - - Error while creating trigger in target database: %1 - Ошибка при создании триггера в целевой базе данных: %1 - - - - - - Could not parse object '%1' in order to move or copy it. - Невозможно проанализировать объект '%1' для его перемещения либо копирования. - - - - DbVersionConverter - - - Target file exists, but could not be overwritten. - Целевой файл существует, но не может быть перезаписан. - - - - Could not find proper database plugin to create target database. - Невозможно найти подходящий модуль для создания целевой базы данных. - - - - Error while converting database: %1 - Ошибка при конвертации базы данных: %1 - - - - DdlHistoryModel - - - Database name - ddl history header - Имя базы данных - - - - Database file - ddl history header - Файл базы данных - - - - Date of execution - ddl history header - Дата выполнения - - - - Changes - ddl history header - Изменения - - - - ExportManager - - - Export plugin %1 doesn't support exporing query results. - Модуль экспорта %1 не поддерживает экспорт результатов запроса. - - - - Export plugin %1 doesn't support exporing tables. - Модуль экспорта %1 не поддерживает экспорт таблиц. - - - - Export plugin %1 doesn't support exporing databases. - Модуль экспорта %1 не поддерживает экспорт баз данных. - - - - Export format '%1' is not supported. Supported formats are: %2. - Формат экспорта %1 не поддерживается. Поддерживаемые форматы: %2 - - - - Export to the clipboard was successful. - Экспорт в буфер обмена успешно выполнен. - - - - Export to the file '%1' was successful. - Экспорт в файл %1 успешно выполнен. - - - - Export was successful. - Экспорт успешно выполнен. - - - - Could not export to file %1. File cannot be open for writting. - Невозможно выполнить экспорт в файл %1. Не удалось открыть файл для записи. - - - - ExportWorker - - - Error while exporting query results: %1 - Ошибка при экспорте результатов запроса: %1 - - - - Error while counting data column width to export from query results: %1 - Ошибка при подсчёте ширины столбца данных для экспорта результатов запроса: %1 - - - - - Could not parse %1 in order to export it. It will be excluded from the export output. - Невозможно проанализировать структуру %1. Данный объект будет исключён при выполнении экспорта. - - - - Error while reading data to export from table %1: %2 - Ошибка при считывании данных для экспорта из таблицы %1: %2 - - - - Error while counting data to export from table %1: %2 - Ошибка при подсчёте количества данных для экспорта из таблицы %1: %2 - - - - Error while counting data column width to export from table %1: %2 - Ошибка при подсчёте ширины столбца данных для экспорта из таблицы %1: %2 - - - - FunctionManagerImpl - - - Invalid number of arguments to function '%1'. Expected %2, but got %3. - Неверное количество аргументов для функции '%1'. Ожидаемое количество: %2, передано: %3. - - - - No such function registered in SQLiteStudio: %1(%2) - Функция не зарегистрирована в SQLiteStudio: %1(%2) - - - - Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. - Функция %1(%2) зарегистрирована для языка %3, однако модуль поддержки этого языка на данный момент не загружен. - - - - Invalid regular expression pattern: %1 - Неверный шаблон регулярного выражения: %1 - - - - - Could not open file %1 for reading: %2 - Невозможно открыть файл %1 для чтения: %2 - - - - Could not open file %1 for writting: %2 - Невозможно открыть файл %1 для записи: %2 - - - - Error while writting to file %1: %2 - Ошибка при записи в файл %1: %2 - - - - Unsupported scripting language: %1 - Неподдерживаемый скриптовый язык: %1 - - - - GenericExportPlugin - - - Could not initialize text codec for exporting. Using default codec: %1 - Невозможно инициализировать текстовый кодек для экспорта. Используется кодек по умолчанию: %1 - - - - ImportManager - - - Imported data to the table '%1' successfully. - Импорт данных в таблицу '%1' выполнен успешно. - - - - ImportWorker - - - No columns provided by the import plugin. - Модуль импорта не обнаружил ни одного столбца. - - - - Could not start transaction in order to import a data: %1 - Невозможно начать транзакцию для импорта данных: %1 - - - - Could not commit transaction for imported data: %1 - Невозможно завершить транзакцию для импортированных данных: %1 - - - - Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. - В таблице '%1' столбцов меньше, чем в импортируемых данных. Лишние столбцы будут проигнорированы. - - - - Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. - В таблице '%1' столбцов больше, чем в импортируемых данных. Недостающие столбцы будут оставлены пустыми. - - - - Could not create table to import to: %1 - Невозможно создать таблицу для импорта: %1 - - - - - - Error while importing data: %1 - Ошибка при импорте данных: %1 - - - - - Interrupted. - import process status update - Прервано. - - - - Could not import data row number %1. The row was ignored. Problem details: %2 - Невозможно импортировать строку данных № %1. Строка пропущена. Подробности проблемы: %2 - - - - PluginManagerImpl - - - Cannot load plugin %1, because it's in conflict with plugin %2. - Невозможно загрузить модуль %1, так как он конфликтует с модулем %2. - - - - Cannot load plugin %1, because its dependency was not loaded: %2. - Невозможно загрузить модуль %1, так как не загружен необходимый ему модуль: %2. - - - - Cannot load plugin %1. Error details: %2 - Невозможно загрузить модуль %1. Подробности ошибки: %2 - - - - Cannot load plugin %1 (error while initializing plugin). - Невозможно загрузить модуль %1 (ошибка при инициализации модуля). - - - - min: %1 - plugin dependency version - минимальная: %1 - - - - max: %1 - plugin dependency version - максимальная: %1 - - - - PopulateConstant - - - Constant - populate constant plugin name - Константа - - - - PopulateConstantConfig - - - Constant value: - Значение константы: - - - - PopulateDictionary - - - Dictionary - dictionary populating plugin name - Словарь - - - - PopulateDictionaryConfig - - - Dictionary file - Файл словаря - - - - Pick dictionary file - Выберите файл словаря - - - - Word separator - Разделитель слов - - - - Whitespace - Пробел - - - - Line break - Перенос строки - - - - Method of using words - Способ использования слов - - - - Ordered - По порядку - - - - Randomly - Случайным образом - - - - PopulateManager - - - Table '%1' populated successfully. - Таблица '%1' успешно заполнена. - - - - PopulateRandom - - - Random number - Случайное число - - - - PopulateRandomConfig - - - Constant prefix - Префикс константы - - - - No prefix - Без префикса - - - - Minimum value - Минимальное значение - - - - Maximum value - Максимальное значение - - - - Constant suffix - Суффикс константы - - - - No suffix - Без суффикса - - - - PopulateRandomText - - - Random text - Случайный текст - - - - PopulateRandomTextConfig - - - Use characters from common sets: - Использовать символы из стандартных наборов: - - - - Minimum length - Минимальная длина - - - - Letters from a to z. - Буквы от a до z. - - - - Alpha - Буквенный - - - - Numbers from 0 to 9. - Цифры от 0 до 9. - - - - Numeric - Цифровой - - - - A whitespace, a tab and a new line character. - Пробел, табуляция и символ переноса строки. - - - - Whitespace - Непечатаемые символы - - - - Includes all above and all others. - Включает все вышеперечисленные и все остальные. - - - - Binary - Бинарный - - - - Use characters from my custom set: - Использовать символы из моего набора: - - - - Maximum length - Максимальная длина - - - - If you type some character multiple times, it's more likely to be used. - При указании одного символа несколько раз, вероятность его использования увеличивается. - - - - PopulateScript - - - Script - Скрипт - - - - PopulateScriptConfig - - - Initialization code (optional) - Инициализирующий код (необязательно) - - - - Per step code - Код для каждого шага - - - - Language - Язык - - - - Help - Помощь - - - - PopulateSequence - - - Sequence - Последовательность - - - - PopulateSequenceConfig - - - Start value: - Начальное значение: - - - - Step: - Шаг: - - - - PopulateWorker - - - Could not start transaction in order to perform table populating. Error details: %1 - Невозможно начать транзакцию для заполнения таблицы. Подробности ошибки: %1 - - - - Error while populating table: %1 - Ошибка при заполнении таблицы: %1 - - - - Could not commit transaction after table populating. Error details: %1 - Невозможно завершить транзакцию после заполнения таблицы. Подробности ошибки: %1 - - - - QObject - - - - Could not open database: %1 - Невозможно открыть базу данных: %1 - - - - - Result set expired or no row available. - Результирующая выборка устарела или ни одна строка не доступна. - - - - - Could not load extension %1: %2 - Невозможно загрузить расширение %1: %2 - - - - Could not close database: %1 - Невозможно закрыть базу данных: %1 - - - - - - - - - - SQLite %1 does not support '%2' statement. - SQLite %1 не поддерживает конструкцию '%2'. - - - - SQLite %1 does not support '%2' statement, but the regular table can be created instead if you proceed. - SQLite %1 не поддерживает конструкцию '%2', однако можно создать обычную таблицу, если вы продолжите. - - - - Could not parse statement: %1 -Error details: %2 - Невозможно проанализировать структуру конструкции: %1 Подробности ошибки: %2 - - - - - - - SQLite %1 does not support the '%2' clause. Cannot convert '%3' statement with that clause. - SQLite %1 не поддерживает оператор '%2'. Невозможно сконвертировать конструкцию '%3' с этим оператором. - - - - SQLite %1 does not support the '%2' clause in the '%3' statement. - SQLite %1 не поддерживает оператор '%2' в конструкции '%3'. - - - - SQLite %1 does not support current date or time clauses in expressions. - SQLite %1 не поддерживает операторы текущей даты и текущего времени в выражениях. - - - - SQLite %1 does not support row value clauses in expressions. - SQLite %1 не поддерживает операции со значениями строк в выражениях. - - - - - - SQLite %1 does not support '%2' clause in expressions. - SQLite %1 не поддерживает оператор '%2' в выражениях. - - - - Could not attach database %1: %2 - Не удалось присоединить базу данных %1: %2 - - - - - Incomplete query. - Незавершённый запрос. - - - - - Parser stack overflow - Переполнение стека анализатора - - - - - Syntax error - Синтаксическая ошибка - - - - Could not open dictionary file %1 for reading. - Невозможно открыть файл словаря %1 для чтения. - - - - Dictionary file must exist and be readable. - Файл словаря должен существовать и быть доступным для чтения. - - - - Maximum value cannot be less than minimum value. - Максимальное значение не может быть меньше минимального. - - - - Maximum length cannot be less than minimum length. - Максимальная длина не может быть меньше минимальной. - - - - Custom character set cannot be empty. - Произвольный набор символов не может быть пустым. - - - - Could not find plugin to support scripting language: %1 - Невозможно найти модуль поддержки скриптового языка: %1 - - - - Error while executing populating initial code: %1 - Ошибка при выполнении инициализирующего кода заполнения: %1 - - - - Error while executing populating code: %1 - Ошибка при выполнении кода заполнения: %1 - - - - Select implementation language. - Выберите язык реализации. - - - - Implementation code cannot be empty. - Заполняющий код не может быть пустым. - - - - Could not resolve data source for column: %1 - Невозможно определить источник данных для столбца: %1 - - - - Could not resolve table for column '%1'. - Невозможно определить таблицу для столбца '%1'. - - - - Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Tried to initialize the file at following localizations: %1. - Невозможно инициализировать файл конфигурации. Любые изменения конфигурации и история запросов будут утеряны после перезапуска приложения. Попытки инициализации файла предпринимались в следующих местах: %1. - - - - General purpose - plugin category name - Общего назначения - - - - Database support - plugin category name - Поддержка баз данных - - - - Code formatter - plugin category name - Форматирование кода - - - - Scripting languages - plugin category name - Скриптовые языки - - - - Exporting - plugin category name - Экспорт - - - - Importing - plugin category name - Импорт - - - - Table populating - plugin category name - Заполнение таблиц - - - - Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. - Таблица %1 ссылается на таблицу %2, но описание внешнего ключа не будет обновлено для описания новой таблицы из-за проблем с анализом DDL таблицы %3. - - - - All columns indexed by the index %1 are gone. The index will not be recreated after table modification. - Все столбцы, проиндексированные индексом %1, удалены. Индекс не будет воссоздан после модификации таблицы. - - - - There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. - Возникла проблема при обработке триггера %1. Впоследствии он не будет полностью обновлён и потребует вашего внимания. - - - - Cannot not update trigger %1 according to table %2 modification. - Невозможно обновить триггер %1 в соответствии с модификацией таблицы %2. - - - - - - There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. - Возникла проблема при обновлении конструкции %1 внутри триггера %2. Одна из вложенных конструкций %1, которая возможно ссылается на таблицу %3, не может быть корректно модифицирована. Возможно необходима ручная правка триггера. - - - - All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. - Все столбцы, затронутые в триггере %1, удалены. Триггер не будет воссоздан после модификации таблицы. - - - - Cannot not update view %1 according to table %2 modifications. -The view will remain as it is. - Невозможно обновить представление %1 в соответствии с модификациями таблицы %2. -Представление останется как есть. - - - There is a problem with updating an %1 statement within %2 trigger. One of the SELECT substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. - Возникла проблема при обновлении конструкции %1 внутри триггера %2. Одна из вложенных конструкций SELECT, которая возможно ссылается на таблицу %3, не может быть корректно модифицирована. Возможно необходима ручная правка триггера. - - - - Could not parse DDL of the view to be created. Details: %1 - Невозможно проанализировать DDL создаваемого представления. Подробности: %1 - - - - Parsed query is not CREATE VIEW. It's: %1 - Проанализированный запрос не является запросом CREATE VIEW. Тип запроса: %1 - - - - SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. - SQLiteStudio не удалось определить столбцы, возвращаемые новым представлением, поэтому невозможно указать, какие триггеры могут сломаться в процессе воссоздания. - - - - Could not open file '%1' for reading: %2 - Невозможно открыть файл '%1' для чтения: %2 - - - - QueryExecutor - - - Execution interrupted. - Выполнение прервано. - - - - Database is not open. - База данных не открыта. - - - - Only one query can be executed simultaneously. - Одновременно может быть выполнен только один запрос. - - - - - An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 - Возникла ошибка при выполнении запроса count(*), поэтому разбивка данных по страницам отключена. Детали ошибки из базы данных: %1 - - - - SQLiteStudio was unable to extract metadata from the query. Results won't be editable. - SQLiteStudio не удалось извлечь метаданные из запроса. Результаты нельзя будет редактировать. - - - - ScriptingQtDbProxy - - - No database available in current context, while called QtScript's %1 command. - При вызове команды QtScript %1 в текущем контексте нет доступных баз данных. - - - - Error from %1: %2 - Ошибка в команде %1: %2 - - - - SqlHistoryModel - - - Database - sql history header - База данных - - - - Execution date - sql history header - Дата выполнения - - - - Time spent - sql history header - Затраченное время - - - - Rows affected - sql history header - Затронуто строк - - - - SQL - sql history header - SQL - - - - UpdateManager - - An error occurred while checking for updates: %1. - При проверке обновлений возникла ошибка: %1 - - - Could not check available updates, because server responded with invalid message format. It is safe to ignore this warning. - Невозможно проверить наличие обновлений, так как ответ сервера имеет некорректный формат. Это предупреждение можно проигнорировать. - - - An error occurred while reading updates metadata: %1. - При чтении метаданных об обновлениях возникла ошибка: %1 - - - Could not download updates, because server responded with invalid message format. You can try again later or download and install updates manually. See <a href="%1">User Manual</a> for details. - Невозможно загрузить обновления, так как ответ сервера имеет некорректный формат. Вы можете попробовать снова позже или скачать и установить обновления вручную. Подробности смотрите в <a href="%1">Руководстве пользователя</a>. - - - Could not create temporary directory for downloading the update. Updating aborted. - Невозможно создать временный каталог для загрузки обновления. Обновление прервано. - - - There was no updates to download. Updating aborted. - Нет обновлений для загрузки. Обновление прервано. - - - Downloading: %1 - Загрузка: %1 - - - Could not determinate file name from update URL: %1. Updating aborted. - Невозможно определить имя файла из URL обновления. Обновление прервано. - - - Failed to open file '%1' for writting: %2. Updating aborted. - Не удалось открыть файл %1 для записи: %2. Обновление прервано. - - - Installing updates. - Установка обновлений. - - - Could not copy current application directory into %1 directory. - Невозможно скопировать текущий каталог приложения в каталог %1. - - - Could not create directory %1. - Невозможно создать каталог %1. - - - Could not rename directory %1 to %2. -Details: %3 - Невозможно переименовать каталог %1 в %2. -Подробности: %3 - - - Cannot not rename directory %1 to %2. -Details: %3 - Невозможно переименовать каталог %1 в %2. -Подробности: %3 - - - Could not move directory %1 to %2 and also failed to restore original directory, so the original SQLiteStudio directory is now located at: %3 - Невозможно переместить каталог %1 в %2, а также не удалось восстановить оригинальный каталог, поэтому оригинальный каталог SQLiteStudio теперь расположен в: %3 - - - Could not rename directory %1 to %2. Rolled back to the original SQLiteStudio version. - Невозможно переименовать каталог %1 в %2. Восстановлена изначальная версия SQLiteStudio. - - - Could not unpack component %1 into %2 directory. - Невозможно распаковать компонент %1 в каталог %2. - - - Could not find permissions elevator application to run update as a root. Looked for: %1 - Невозможно найти приложение повышения привилегий для запуска обновления с правами root. Были испробованы: %1 - - - Could not execute final updating steps as root: %1 - Невозможно выполнить финальные шаги обновления с правами root: %1 - - - Could not execute final updating steps as admin: %1 - Невозможно выполнить финальные шаги обновления с правами администратора: %1 - - - Cannot create temporary directory for updater. - Невозможно создать временный каталог для установщика обновлений. - - - Cannot create updater script file. - Невозможно создать файл скрипта обновления. - - - Updating canceled. - Обновление отменено. - - - Could not execute final updating steps as administrator. - Невозможно выполнить финальные шаги обновления с правами администратора. - - - Could not execute final updating steps as administrator. Updater startup timed out. - Невозможно выполнить финальные шаги обновления с правами администратора. Превышен тайм-аут запуска программы обновления. - - - Could not execute final updating steps as administrator. Updater operation timed out. - Невозможно выполнить финальные шаги обновления с правами администратора. Превышен тайм-аут операции программы обновления. - - - Could not clean up temporary directory %1. You can delete it manually at any time. - Невозможно очистить временный каталог %1. Вы можете удалить его вручную в любое время. - - - Could not run new version for continuing update. - Невозможно запустить новую версию приложения для продолжения обновления. - - - Package not in tar.gz format, cannot install: %1 - Пакет не в формате tar.gz, установка невозможна: %1 - - - Package %1 cannot be installed, because cannot move it to directory: %2 - Пакет %1 не может быть установлен, так как невозможно перенести его в каталог: %2 - - - Package %1 cannot be installed, because cannot unpack it: %2 - Пакет %1 не может быть установлен, так как его невозможно распаковать: %2 - - - Package not in zip format, cannot install: %1 - Пакет не в формате zip, установка невозможна: %1 - - - Package %1 cannot be installed, because cannot unzip it to directory %2: %3 - Пакет %1 не может быть установлен, так как его невозможно распаковать в каталог %2: %3 - - - Package %1 cannot be installed, because cannot unzip it to directory: %2 - Пакет %1 не может быть установлен, так как его невозможно распаковать в каталог: %2 - - - Could not rename directory %1 to %2. - Невозможно переименовать каталог %1 в %2. - - - Could not delete directory %1. - Невозможно удалить каталог %1. - - - Error executing update command: %1 -Error message: %2 - Ошибка при выполнении команды обновления: %1 -Сообщение об ошибке: %2 - - - An error occurred while downloading updates: %1. Updating aborted. - При загрузке обновлений произошла ошибка: %1. Обновление прервано. - - - - Updates installer executable is missing. - Отсутствует исполняемый файл установщика обновлений. - - - - - Unable to check for updates (%1) - Невозможно проверить обновления (%1) - - - - details are unknown - подробности неизвестны - - - - Unable to run updater application (%1). Please report this. - Невозможно запустить установщик обновлений (%1). Ссообщите пожалуйста об этом разработчику. - - - diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_ru_RU.ts b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_ru_RU.ts new file mode 100644 index 0000000..1dc362d --- /dev/null +++ b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_ru_RU.ts @@ -0,0 +1,1101 @@ + + + + + AbstractDb + + + + Cannot execute query on closed database. + Невозможно выполнить запрос при закрытой базе данных. + + + + Error attaching database %1: %2 + Ошибка во время присоединения базы данных %1: %2 + + + + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + Не удалось создать полную контрольную точку WAL в базе данных '%1'. Ошибка из движка SQLite: %2 + + + + ChainExecutor + + + The database for executing queries was not defined. + chain executor + Не указана база данных для выполнения запросов. + + + + The database for executing queries was not open. + chain executor + Не открыта база данных для выполнения запросов. + + + + Could not disable foreign keys in the database. Details: %1 + chain executor + Невозможно отключить внешние ключи в базе данных. Подробности: %1 + + + + Could not start a database transaction. Details: %1 + chain executor + Невозможно начать транзакцию. Подробности: %1 + + + + Interrupted + chain executor + Прервано + + + + Could not commit a database transaction. Details: %1 + chain executor + Невозможно завершить транзакцию. Подробности: %1 + + + + CompletionHelper + + + New row reference + Новая ссылка на строку + + + + Old row reference + Старая ссылка на строку + + + + New table name + Новое имя таблицы + + + + New index name + Новое имя индекса + + + + New view name + Новое имя представления + + + + New trigger name + Новое имя триггера + + + + Table or column alias + Псевдоним таблицы или столбца + + + + transaction name + имя транзакции + + + + New column name + Новое имя столбца + + + + Column data type + Тип данных столбца + + + + Constraint name + Имя ограничения + + + + Error message + Сообщение об ошибке + + + + Any word + Любое слово + + + + Default database + База данных по умолчанию + + + + Temporary objects database + База данных временных объектов + + + + ConfigImpl + + + Could not start database transaction for deleting SQL history, therefore it's not deleted. + Невозможно начать транзакцию для удаления истории SQL, поэтому она не удалена. + + + + Could not commit database transaction for deleting SQL history, therefore it's not deleted. + Невозможно завершить транзакцию для удаления истории SQL, поэтому она не удалена. + + + + DbManagerImpl + + + Could not add database %1: %2 + Не удалось добавить базу данных %1: %2 + + + + Database %1 could not be updated, because of an error: %2 + Невозможно обновить базу данных %1 из-за ошибки: %2 + + + + + Database file doesn't exist. + Файл базы данных не существует. + + + + + + No supporting plugin loaded. + Модуль поддержки не загружен. + + + + Database could not be initialized. + Невозможно инициализировать базу данных. + + + + No suitable database driver plugin found. + Не найден подходящий драйвер базы данных. + + + + DbObjectOrganizer + + + + Error while creating table in target database: %1 + Ошибка при создании таблицы в целевой базе данных: %1 + + + + Could not parse table. + Невозможно проанализировать структуру таблицы. + + + + Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. + Невозможно присоединить базу данных %1 к базе данных %2, поэтому данные таблицы %3 будут скопированы при посредничестве SQLiteStudio. Этот метод может быть медленным для больших таблиц, так что наберитесь терпения. + + + + Error while copying data for table %1: %2 + Ошибка при копировании данных из таблицы %1: %2 + + + + + + Error while copying data to table %1: %2 + Ошибка при копировании данных в таблицу %1: %2 + + + + Error while dropping source view %1: %2 +Tables, indexes, triggers and views copied to database %3 will remain. + Ошибка при удалении исходного представления %1: %2 +Таблицы, индексы, триггеры и представления, скопированные в базу данных %3, сохранятся. + + + + Error while creating view in target database: %1 + Ошибка при создании представления в целевой базе данных: %1 + + + + Error while creating index in target database: %1 + Ошибка при создании индекса в целевой базе данных: %1 + + + + Error while creating trigger in target database: %1 + Ошибка при создании триггера в целевой базе данных: %1 + + + + + + Could not parse object '%1' in order to move or copy it. + Невозможно проанализировать объект '%1' для его перемещения либо копирования. + + + + DdlHistoryModel + + + Database name + ddl history header + Имя базы данных + + + + Database file + ddl history header + Файл базы данных + + + + Date of execution + ddl history header + Дата выполнения + + + + Changes + ddl history header + Изменения + + + + ExportManager + + + Export plugin %1 doesn't support exporing query results. + Модуль экспорта %1 не поддерживает экспорт результатов запроса. + + + + Export plugin %1 doesn't support exporing tables. + Модуль экспорта %1 не поддерживает экспорт таблиц. + + + + Export plugin %1 doesn't support exporing databases. + Модуль экспорта %1 не поддерживает экспорт баз данных. + + + + Export format '%1' is not supported. Supported formats are: %2. + Формат экспорта %1 не поддерживается. Поддерживаемые форматы: %2. + + + + Export to the clipboard was successful. + Экспорт в буфер обмена успешно выполнен. + + + + Export to the file '%1' was successful. + Экспорт в файл %1 успешно выполнен. + + + + Export was successful. + Экспорт успешно выполнен. + + + + Could not export to file %1. File cannot be open for writting. + Невозможно выполнить экспорт в файл %1. Не удалось открыть файл для записи. + + + + ExportWorker + + + Error while exporting query results: %1 + Ошибка при экспорте результатов запроса: %1 + + + + Error while counting data column width to export from query results: %1 + Ошибка при подсчёте ширины столбца данных для экспорта результатов запроса: %1 + + + + + Could not parse %1 in order to export it. It will be excluded from the export output. + Невозможно проанализировать структуру %1. Данный объект будет исключён при выполнении экспорта. + + + + Error while reading data to export from table %1: %2 + Ошибка при считывании данных для экспорта из таблицы %1: %2 + + + + Error while counting data to export from table %1: %2 + Ошибка при подсчёте количества данных для экспорта из таблицы %1: %2 + + + + Error while counting data column width to export from table %1: %2 + Ошибка при подсчёте ширины столбца данных для экспорта из таблицы %1: %2 + + + + FunctionManagerImpl + + + Invalid number of arguments to function '%1'. Expected %2, but got %3. + Неверное количество аргументов для функции '%1'. Ожидаемое количество: %2, передано: %3. + + + + No such function registered in SQLiteStudio: %1(%2) + Функция не зарегистрирована в SQLiteStudio: %1(%2) + + + + Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. + Функция %1(%2) зарегистрирована для языка %3, однако модуль поддержки этого языка на данный момент не загружен. + + + + Invalid regular expression pattern: %1 + Неверный шаблон регулярного выражения: %1 + + + + + Could not open file %1 for reading: %2 + Невозможно открыть файл %1 для чтения: %2 + + + + Could not open file %1 for writting: %2 + Невозможно открыть файл %1 для записи: %2 + + + + Error while writting to file %1: %2 + Ошибка при записи в файл %1: %2 + + + + Unsupported scripting language: %1 + Неподдерживаемый скриптовый язык: %1 + + + + GenericExportPlugin + + + Could not initialize text codec for exporting. Using default codec: %1 + Невозможно инициализировать текстовый кодек для экспорта. Используется кодек по умолчанию: %1 + + + + ImportManager + + + Imported data to the table '%1' successfully. Number of imported rows: %2 + Импорт данных в таблицу '%1' выполнен успешно. Количество импортированных строк: %2 + + + + ImportWorker + + + No columns provided by the import plugin. + Модуль импорта не обнаружил ни одного столбца. + + + + Could not start transaction in order to import a data: %1 + Невозможно начать транзакцию для импорта данных: %1 + + + + Could not commit transaction for imported data: %1 + Невозможно завершить транзакцию для импортированных данных: %1 + + + + Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. + В таблице '%1' столбцов меньше, чем в импортируемых данных. Лишние столбцы будут проигнорированы. + + + + Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. + В таблице '%1' столбцов больше, чем в импортируемых данных. Недостающие столбцы будут оставлены пустыми. + + + + Could not create table to import to: %1 + Невозможно создать таблицу для импорта: %1 + + + + + + Error while importing data: %1 + Ошибка при импорте данных: %1 + + + + + Interrupted. + import process status update + Прервано. + + + + Could not import data row number %1. The row was ignored. Problem details: %2 + Невозможно импортировать строку данных № %1. Строка пропущена. Подробности проблемы: %2 + + + + PluginManagerImpl + + + Cannot load plugin %1, because it's in conflict with plugin %2. + Невозможно загрузить модуль %1, так как он конфликтует с модулем %2. + + + + Cannot load plugin %1, because its dependency was not loaded: %2. + Невозможно загрузить модуль %1, так как не загружен необходимый ему модуль: %2. + + + + Cannot load plugin %1. Error details: %2 + Невозможно загрузить модуль %1. Подробности ошибки: %2 + + + + Cannot load plugin %1 (error while initializing plugin). + Невозможно загрузить модуль %1 (ошибка при инициализации модуля). + + + + min: %1 + plugin dependency version + минимальная: %1 + + + + max: %1 + plugin dependency version + максимальная: %1 + + + + PopulateConstant + + + Constant + populate constant plugin name + Константа + + + + PopulateConstantConfig + + + Constant value: + Значение константы: + + + + PopulateDictionary + + + Dictionary + dictionary populating plugin name + Словарь + + + + PopulateDictionaryConfig + + + Dictionary file + Файл словаря + + + + Pick dictionary file + Выберите файл словаря + + + + Word separator + Разделитель слов + + + + Whitespace + Пробел + + + + Line break + Перенос строки + + + + Method of using words + Способ использования слов + + + + Ordered + По порядку + + + + Randomly + Случайным образом + + + + PopulateManager + + + Table '%1' populated successfully. + Таблица '%1' успешно заполнена. + + + + PopulateRandom + + + Random number + Случайное число + + + + PopulateRandomConfig + + + Constant prefix + Префикс константы + + + + No prefix + Без префикса + + + + Minimum value + Минимальное значение + + + + Maximum value + Максимальное значение + + + + Constant suffix + Суффикс константы + + + + No suffix + Без суффикса + + + + PopulateRandomText + + + Random text + Случайный текст + + + + PopulateRandomTextConfig + + + Use characters from common sets: + Использовать символы из стандартных наборов: + + + + Minimum length + Минимальная длина + + + + Letters from a to z. + Буквы от a до z. + + + + Alpha + Буквенный + + + + Numbers from 0 to 9. + Цифры от 0 до 9. + + + + Numeric + Цифровой + + + + A whitespace, a tab and a new line character. + Пробел, табуляция и символ переноса строки. + + + + Whitespace + Непечатаемые символы + + + + Includes all above and all others. + Включает все вышеперечисленные и все остальные. + + + + Binary + Бинарный + + + + Use characters from my custom set: + Использовать символы из моего набора: + + + + Maximum length + Максимальная длина + + + + If you type some character multiple times, it's more likely to be used. + При указании одного символа несколько раз, вероятность его использования увеличивается. + + + + PopulateScript + + + Script + Скрипт + + + + PopulateScriptConfig + + + Initialization code (optional) + Инициализирующий код (необязательно) + + + + Per step code + Код для каждого шага + + + + Language + Язык + + + + Help + Помощь + + + + PopulateSequence + + + Sequence + Последовательность + + + + PopulateSequenceConfig + + + Start value: + Начальное значение: + + + + Step: + Шаг: + + + + PopulateWorker + + + Could not start transaction in order to perform table populating. Error details: %1 + Невозможно начать транзакцию для заполнения таблицы. Подробности ошибки: %1 + + + + Error while populating table: %1 + Ошибка при заполнении таблицы: %1 + + + + Could not commit transaction after table populating. Error details: %1 + Невозможно завершить транзакцию после заполнения таблицы. Подробности ошибки: %1 + + + + QObject + + + Could not open file '%1' for reading: %2 + Невозможно открыть файл '%1' для чтения: %2 + + + + Could not open database: %1 + Невозможно открыть базу данных: %1 + + + + Result set expired or no row available. + Результирующая выборка устарела или ни одна строка не доступна. + + + + + Could not load extension %1: %2 + Невозможно загрузить расширение %1: %2 + + + + Could not run WAL checkpoint: %1 + Не удалось запустить контрольную точку WAL: %1 + + + + Could not close database: %1 + Невозможно закрыть базу данных: %1 + + + + Could not attach database %1: %2 + Не удалось присоединить базу данных %1: %2 + + + + + Incomplete query. + Незавершённый запрос. + + + + Parser stack overflow + Переполнение стека анализатора + + + + Syntax error + Синтаксическая ошибка + + + + Could not open dictionary file %1 for reading. + Невозможно открыть файл словаря %1 для чтения. + + + + Dictionary file must exist and be readable. + Файл словаря должен существовать и быть доступным для чтения. + + + + Maximum value cannot be less than minimum value. + Максимальное значение не может быть меньше минимального. + + + + Maximum length cannot be less than minimum length. + Максимальная длина не может быть меньше минимальной. + + + + Custom character set cannot be empty. + Произвольный набор символов не может быть пустым. + + + + Could not find plugin to support scripting language: %1 + Невозможно найти модуль поддержки скриптового языка: %1 + + + + Error while executing populating initial code: %1 + Ошибка при выполнении инициализирующего кода заполнения: %1 + + + + Error while executing populating code: %1 + Ошибка при выполнении кода заполнения: %1 + + + + Select implementation language. + Выберите язык реализации. + + + + Implementation code cannot be empty. + Заполняющий код не может быть пустым. + + + + Could not resolve data source for column: %1 + Невозможно определить источник данных для столбца: %1 + + + + Could not resolve table for column '%1'. + Невозможно определить таблицу для столбца '%1'. + + + + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Unable to create a file at following locations: %1. + Не удалось инициализировать конфигурационный файл. Любые изменения конфигурации и история запросов будут потеряны после перезагрузки приложения. Невозможно создать файл в следующих местах: %1. + + + + General purpose + plugin category name + Общего назначения + + + + Database support + plugin category name + Поддержка баз данных + + + + Code formatter + plugin category name + Форматирование кода + + + + Scripting languages + plugin category name + Скриптовые языки + + + + Exporting + plugin category name + Экспорт + + + + Importing + plugin category name + Импорт + + + + Table populating + plugin category name + Заполнение таблиц + + + + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. + Таблица %1 ссылается на таблицу %2, но описание внешнего ключа не будет обновлено для описания новой таблицы из-за проблем с анализом DDL таблицы %3. + + + + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. + Все столбцы, проиндексированные индексом %1, удалены. Индекс не будет воссоздан после модификации таблицы. + + + + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. + Возникла проблема при обработке триггера %1. Впоследствии он не будет полностью обновлён и потребует вашего внимания. + + + + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. + Все столбцы, затронутые в триггере %1, удалены. Триггер не будет воссоздан после модификации таблицы. + + + + Cannot not update trigger %1 according to table %2 modification. + Невозможно обновить триггер %1 в соответствии с модификацией таблицы %2. + + + + Cannot not update view %1 according to table %2 modifications. +The view will remain as it is. + Невозможно обновить представление %1 в соответствии с модификациями таблицы %2. +Представление останется как есть. + + + + + + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. + Возникла проблема при обновлении конструкции %1 внутри триггера %2. Одна из вложенных конструкций %1, которая возможно ссылается на таблицу %3, не может быть корректно модифицирована. Возможно необходима ручная правка триггера. + + + + Could not parse DDL of the view to be created. Details: %1 + Невозможно проанализировать DDL создаваемого представления. Подробности: %1 + + + + Parsed query is not CREATE VIEW. It's: %1 + Проанализированный запрос не является запросом CREATE VIEW. Тип запроса: %1 + + + + SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. + SQLiteStudio не удалось определить столбцы, возвращаемые новым представлением, поэтому невозможно указать, какие триггеры могут сломаться в процессе воссоздания. + + + + QueryExecutor + + + Execution interrupted. + Выполнение прервано. + + + + Database is not open. + База данных не открыта. + + + + Only one query can be executed simultaneously. + Одновременно может быть выполнен только один запрос. + + + + + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 + Возникла ошибка при выполнении запроса count(*), поэтому разбивка данных по страницам отключена. Детали ошибки из базы данных: %1 + + + + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. + SQLiteStudio не удалось извлечь метаданные из запроса. Результаты нельзя будет редактировать. + + + + ScriptingQtDbProxy + + + No database available in current context, while called JavaScript's %1 command. + При вызове команды JavaScript %1, в текущем контексте нет доступных баз данных. + + + + Error from %1: %2 + Ошибка в команде %1: %2 + + + + SqlFileExecutor + + + Could not execute SQL, because application has failed to start transaction: %1 + Невозможно выполнить SQL-запрос, так как приложению не удалось начать транзакцию: %1 + + + + Execution from file cancelled. Any queries executed so far have been rolled back. + Выполнение запросов из файла отменено. Все выполненные ранее из него запросы откачены. + + + + Could not open file '%1' for reading: %2 + Невозможно открыть файл '%1' для чтения: %2 + + + + Could not execute SQL, because application has failed to commit the transaction: %1 + Невозможно выполнить SQL-запрос, так как приложению не удалось завершить транзакцию: %1 + + + + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. + Завершено выполнение %1 запросов за %2 секунд. %3 запросов не было выполнено из-за ошибок. + + + + Finished executing %1 queries in %2 seconds. + Завершено выполнение %1 запросов за %2 секунд. + + + + Could not execute SQL due to error. + Невозможно выполнить SQL-запрос из-за ошибки. + + + + SqlHistoryModel + + + Database + sql history header + База данных + + + + Execution date + sql history header + Дата выполнения + + + + Time spent + sql history header + Затраченное время + + + + Rows affected + sql history header + Затронуто строк + + + + SQL + sql history header + SQL + + + + UpdateManager + + + Could not check for updates (%1). + Невозможно проверить наличие обновлений (%1). + + + diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_sk.qm b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_sk.qm deleted file mode 100644 index de604e9..0000000 Binary files a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_sk.qm and /dev/null differ diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_sk.ts b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_sk.ts deleted file mode 100644 index 8db8efb..0000000 --- a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_sk.ts +++ /dev/null @@ -1,1178 +0,0 @@ - - - - - AbstractDb - - - - Cannot execute query on closed database. - Nemôžem spustiť dotaz na uzatvorenej databáze. - - - - Error attaching database %1: %2 - Chyba pri pripájaní databázy %1: %2 - - - - BugReporter - - Invalid login or password - Neplatné meno alebo heslo - - - - ChainExecutor - - - The database for executing queries was not defined. - chain executor - - - - - The database for executing queries was not open. - chain executor - - - - - Could not disable foreign keys in the database. Details: %1 - chain executor - - - - - Could not start a database transaction. Details: %1 - chain executor - - - - - Interrupted - chain executor - - - - - Could not commit a database transaction. Details: %1 - chain executor - - - - - CompletionHelper - - - New row reference - - - - - Old row reference - - - - - New table name - - - - - New index name - - - - - New view name - - - - - New trigger name - - - - - Table or column alias - - - - - transaction name - - - - - New column name - - - - - Column data type - - - - - Constraint name - - - - - Error message - - - - - Collation name - - - - - Any word - - - - - Default database - - - - - Temporary objects database - - - - - ConfigImpl - - - Could not start database transaction for deleting SQL history, therefore it's not deleted. - - - - - Could not commit database transaction for deleting SQL history, therefore it's not deleted. - - - - - DbManagerImpl - - - Could not add database %1: %2 - Nemôžem pridať databázu %1: %2 - - - - Database %1 could not be updated, because of an error: %2 - Databáza %1 nemôže byť aktualizovaná kvôli chybe: %2 - - - - - Database file doesn't exist. - Databázový súbor neexistuje. - - - - - - No supporting plugin loaded. - - - - - Database could not be initialized. - - - - - No suitable database driver plugin found. - - - - - DbObjectOrganizer - - - - Error while creating table in target database: %1 - Vyskytla sa chyba počas vytvárania tabuľky v cieľovej databáze: %1 - - - - Could not parse table. - - - - - Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. - - - - - Error while copying data for table %1: %2 - - - - - - - Error while copying data to table %1: %2 - - - - - Error while dropping source view %1: %2 -Tables, indexes, triggers and views copied to database %3 will remain. - - - - - Error while creating view in target database: %1 - - - - - Error while creating index in target database: %1 - - - - - Error while creating trigger in target database: %1 - - - - - - - Could not parse object '%1' in order to move or copy it. - - - - - DbVersionConverter - - - Target file exists, but could not be overwritten. - Cieľový súbor existuje ale nemôže byť prepísaný. - - - - Could not find proper database plugin to create target database. - Nieje možné nájsť správny databázový plugin pre vytvorenie cieľovej databázy. - - - - Error while converting database: %1 - Vyskytla sa chyba počas konvertovania databázy: %1 - - - - DdlHistoryModel - - - Database name - ddl history header - - - - - Database file - ddl history header - - - - - Date of execution - ddl history header - - - - - Changes - ddl history header - - - - - ExportManager - - - Export plugin %1 doesn't support exporing query results. - - - - - Export plugin %1 doesn't support exporing tables. - - - - - Export plugin %1 doesn't support exporing databases. - - - - - Export format '%1' is not supported. Supported formats are: %2. - - - - - Export to the clipboard was successful. - Export do schránky bol úspešný. - - - - Export to the file '%1' was successful. - Export do súboru '%1' bol úspešný. - - - - Export was successful. - Export bol úspešný. - - - - Could not export to file %1. File cannot be open for writting. - Nemôžem exportovať do súboru %1.Súbor nieje možné otvoriť pre zápis. - - - - ExportWorker - - - Error while exporting query results: %1 - - - - - Error while counting data column width to export from query results: %1 - - - - - - Could not parse %1 in order to export it. It will be excluded from the export output. - - - - - Error while reading data to export from table %1: %2 - - - - - Error while counting data to export from table %1: %2 - - - - - Error while counting data column width to export from table %1: %2 - - - - - FunctionManagerImpl - - - Invalid number of arguments to function '%1'. Expected %2, but got %3. - - - - - No such function registered in SQLiteStudio: %1(%2) - - - - - Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. - - - - - Invalid regular expression pattern: %1 - - - - - - Could not open file %1 for reading: %2 - - - - - Could not open file %1 for writting: %2 - - - - - Error while writting to file %1: %2 - - - - - Unsupported scripting language: %1 - - - - - GenericExportPlugin - - - Could not initialize text codec for exporting. Using default codec: %1 - - - - - ImportManager - - - Imported data to the table '%1' successfully. - - - - - ImportWorker - - - No columns provided by the import plugin. - - - - - Could not start transaction in order to import a data: %1 - - - - - Could not commit transaction for imported data: %1 - - - - - Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. - - - - - Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. - - - - - Could not create table to import to: %1 - - - - - - - Error while importing data: %1 - Vyskytla sa chyba počas importu dát: %1 - - - - - Interrupted. - import process status update - - - - - Could not import data row number %1. The row was ignored. Problem details: %2 - - - - - PluginManagerImpl - - - Cannot load plugin %1, because it's in conflict with plugin %2. - Nemôžem načítať plugin %1, pretože je v konflikte s pluginom %2. - - - - Cannot load plugin %1, because its dependency was not loaded: %2. - Nemôžem načítať plugin %1, pretože neboli načítané jeho závislosti %2. - - - - Cannot load plugin %1. Error details: %2 - Nemôžem načítať plugin %1. Detaily chyby %2 - - - - Cannot load plugin %1 (error while initializing plugin). - Nemôžem načítať plugin %1 (nastala chyba pri jeho inicializácii). - - - - min: %1 - plugin dependency version - - - - - max: %1 - plugin dependency version - - - - - PopulateConstant - - - Constant - populate constant plugin name - Konštanta - - - - PopulateConstantConfig - - - Constant value: - Hodnota konštanty: - - - - PopulateDictionary - - - Dictionary - dictionary populating plugin name - Slovník - - - - PopulateDictionaryConfig - - - Dictionary file - - - - - Pick dictionary file - - - - - Word separator - - - - - Whitespace - - - - - Line break - - - - - Method of using words - - - - - Ordered - - - - - Randomly - - - - - PopulateManager - - - Table '%1' populated successfully. - Tabuľka %1 úspešne naplnená. - - - - PopulateRandom - - - Random number - Náhodné číslo - - - - PopulateRandomConfig - - - Constant prefix - - - - - No prefix - - - - - Minimum value - - - - - Maximum value - - - - - Constant suffix - - - - - No suffix - - - - - PopulateRandomText - - - Random text - Náhodný text - - - - PopulateRandomTextConfig - - - Use characters from common sets: - - - - - Minimum length - - - - - Letters from a to z. - - - - - Alpha - - - - - Numbers from 0 to 9. - - - - - Numeric - - - - - A whitespace, a tab and a new line character. - - - - - Whitespace - - - - - Includes all above and all others. - - - - - Binary - - - - - Use characters from my custom set: - - - - - Maximum length - - - - - If you type some character multiple times, it's more likely to be used. - - - - - PopulateScript - - - Script - Skript - - - - PopulateScriptConfig - - - Initialization code (optional) - - - - - Per step code - - - - - Language - - - - - Help - - - - - PopulateSequence - - - Sequence - Sekvencia - - - - PopulateSequenceConfig - - - Start value: - - - - - Step: - - - - - PopulateWorker - - - Could not start transaction in order to perform table populating. Error details: %1 - - - - - Error while populating table: %1 - Vyskytla sa chyba počas napĺňania tabuľky: %1 - - - - Could not commit transaction after table populating. Error details: %1 - - - - - QObject - - - - Could not open database: %1 - - - - - - Result set expired or no row available. - - - - - - Could not load extension %1: %2 - - - - - Could not close database: %1 - - - - - - - - - - - SQLite %1 does not support '%2' statement. - - - - - SQLite %1 does not support '%2' statement, but the regular table can be created instead if you proceed. - - - - - Could not parse statement: %1 -Error details: %2 - - - - - - - - SQLite %1 does not support the '%2' clause. Cannot convert '%3' statement with that clause. - - - - - SQLite %1 does not support the '%2' clause in the '%3' statement. - - - - - SQLite %1 does not support current date or time clauses in expressions. - - - - - SQLite %1 does not support row value clauses in expressions. - - - - - - - SQLite %1 does not support '%2' clause in expressions. - - - - - Could not attach database %1: %2 - - - - - - Incomplete query. - - - - - - Parser stack overflow - - - - - - Syntax error - Chyba syntaxe - - - - Could not open dictionary file %1 for reading. - - - - - Dictionary file must exist and be readable. - - - - - Maximum value cannot be less than minimum value. - - - - - Maximum length cannot be less than minimum length. - - - - - Custom character set cannot be empty. - - - - - Could not find plugin to support scripting language: %1 - - - - - Error while executing populating initial code: %1 - - - - - Error while executing populating code: %1 - - - - - Select implementation language. - - - - - Implementation code cannot be empty. - - - - - Could not resolve data source for column: %1 - - - - - Could not resolve table for column '%1'. - - - - - Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Tried to initialize the file at following localizations: %1. - - - - - General purpose - plugin category name - - - - - Database support - plugin category name - - - - - Code formatter - plugin category name - - - - - Scripting languages - plugin category name - Skriptovacie jazyky - - - - Exporting - plugin category name - - - - - Importing - plugin category name - - - - - Table populating - plugin category name - - - - - Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. - - - - - All columns indexed by the index %1 are gone. The index will not be recreated after table modification. - - - - - There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. - - - - - Cannot not update trigger %1 according to table %2 modification. - - - - - - - There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. - - - - - All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. - - - - - Cannot not update view %1 according to table %2 modifications. -The view will remain as it is. - - - - - Could not parse DDL of the view to be created. Details: %1 - - - - - Parsed query is not CREATE VIEW. It's: %1 - - - - - SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. - - - - - Could not open file '%1' for reading: %2 - - - - - QueryExecutor - - - Execution interrupted. - - - - - Database is not open. - - - - - Only one query can be executed simultaneously. - - - - - - An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 - Vyskytla sa chyba počas vykonávania dotazu count(*), dôsledkom čoho bolo zablokované stránkovanie. Detail chyby: %1 - - - - SQLiteStudio was unable to extract metadata from the query. Results won't be editable. - - - - - ScriptingQtDbProxy - - - No database available in current context, while called QtScript's %1 command. - - - - - Error from %1: %2 - - - - - SqlHistoryModel - - - Database - sql history header - Dátum spustenia - Databáza - - - - Execution date - sql history header - Dátum spustenia - - - - Time spent - sql history header - Trvanie dotazu - - - - Rows affected - sql history header - Počet riadkov - - - - SQL - sql history header - SQL - - - - UpdateManager - - An error occurred while checking for updates: %1. - Vyskytla sa chyba počas kontroly aktualizácii: %1. - - - Downloading: %1 - Sťahujem: %1 - - - Installing updates. - Inštalujem aktualizácie. - - - Could not rename directory %1 to %2. - Nemôžem premenovať adresár %1na %2. - - - Could not delete directory %1. - Nemôžem vymazať adresár %1. - - - An error occurred while downloading updates: %1. Updating aborted. - Vyskytla sa chyba počas sťahovani aktualizácií:%1. Aktualizácia zrušená. - - - - Updates installer executable is missing. - - - - - - Unable to check for updates (%1) - - - - - details are unknown - - - - - Unable to run updater application (%1). Please report this. - - - - diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_sk_SK.ts b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_sk_SK.ts new file mode 100644 index 0000000..3496a22 --- /dev/null +++ b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_sk_SK.ts @@ -0,0 +1,1101 @@ + + + + + AbstractDb + + + + Cannot execute query on closed database. + Nemôžem spustiť dotaz na uzatvorenej databáze. + + + + Error attaching database %1: %2 + Chyba pri pripájaní databázy %1: %2 + + + + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + + + + ChainExecutor + + + The database for executing queries was not defined. + chain executor + The database for executing queries was not defined. + + + + The database for executing queries was not open. + chain executor + The database for executing queries was not open. + + + + Could not disable foreign keys in the database. Details: %1 + chain executor + Could not disable foreign keys in the database. Details: %1 + + + + Could not start a database transaction. Details: %1 + chain executor + Could not start a database transaction. Details: %1 + + + + Interrupted + chain executor + Interrupted + + + + Could not commit a database transaction. Details: %1 + chain executor + Could not commit a database transaction. Details: %1 + + + + CompletionHelper + + + New row reference + New row reference + + + + Old row reference + Old row reference + + + + New table name + New table name + + + + New index name + New index name + + + + New view name + New view name + + + + New trigger name + New trigger name + + + + Table or column alias + Table or column alias + + + + transaction name + transaction name + + + + New column name + New column name + + + + Column data type + Column data type + + + + Constraint name + Constraint name + + + + Error message + Error message + + + + Any word + Any word + + + + Default database + Default database + + + + Temporary objects database + Temporary objects database + + + + ConfigImpl + + + Could not start database transaction for deleting SQL history, therefore it's not deleted. + Could not start database transaction for deleting SQL history, therefore it's not deleted. + + + + Could not commit database transaction for deleting SQL history, therefore it's not deleted. + Could not commit database transaction for deleting SQL history, therefore it's not deleted. + + + + DbManagerImpl + + + Could not add database %1: %2 + Nemôžem pridať databázu %1: %2 + + + + Database %1 could not be updated, because of an error: %2 + Databáza %1 nemôže byť aktualizovaná kvôli chybe: %2 + + + + + Database file doesn't exist. + Databázový súbor neexistuje. + + + + + + No supporting plugin loaded. + No supporting plugin loaded. + + + + Database could not be initialized. + Database could not be initialized. + + + + No suitable database driver plugin found. + No suitable database driver plugin found. + + + + DbObjectOrganizer + + + + Error while creating table in target database: %1 + Vyskytla sa chyba počas vytvárania tabuľky v cieľovej databáze: %1 + + + + Could not parse table. + Could not parse table. + + + + Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. + Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. + + + + Error while copying data for table %1: %2 + Error while copying data for table %1: %2 + + + + + + Error while copying data to table %1: %2 + Error while copying data to table %1: %2 + + + + Error while dropping source view %1: %2 +Tables, indexes, triggers and views copied to database %3 will remain. + Error while dropping source view %1: %2 +Tables, indexes, triggers and views copied to database %3 will remain. + + + + Error while creating view in target database: %1 + Error while creating view in target database: %1 + + + + Error while creating index in target database: %1 + Error while creating index in target database: %1 + + + + Error while creating trigger in target database: %1 + Error while creating trigger in target database: %1 + + + + + + Could not parse object '%1' in order to move or copy it. + Could not parse object '%1' in order to move or copy it. + + + + DdlHistoryModel + + + Database name + ddl history header + Database name + + + + Database file + ddl history header + Database file + + + + Date of execution + ddl history header + Date of execution + + + + Changes + ddl history header + Changes + + + + ExportManager + + + Export plugin %1 doesn't support exporing query results. + Export plugin %1 doesn't support exporing query results. + + + + Export plugin %1 doesn't support exporing tables. + Export plugin %1 doesn't support exporing tables. + + + + Export plugin %1 doesn't support exporing databases. + Export plugin %1 doesn't support exporing databases. + + + + Export format '%1' is not supported. Supported formats are: %2. + Export format '%1' is not supported. Supported formats are: %2. + + + + Export to the clipboard was successful. + Export do schránky bol úspešný. + + + + Export to the file '%1' was successful. + Export do súboru '%1' bol úspešný. + + + + Export was successful. + Export bol úspešný. + + + + Could not export to file %1. File cannot be open for writting. + Nemôžem exportovať do súboru %1.Súbor nieje možné otvoriť pre zápis. + + + + ExportWorker + + + Error while exporting query results: %1 + Error while exporting query results: %1 + + + + Error while counting data column width to export from query results: %1 + Error while counting data column width to export from query results: %1 + + + + + Could not parse %1 in order to export it. It will be excluded from the export output. + Could not parse %1 in order to export it. It will be excluded from the export output. + + + + Error while reading data to export from table %1: %2 + Error while reading data to export from table %1: %2 + + + + Error while counting data to export from table %1: %2 + Error while counting data to export from table %1: %2 + + + + Error while counting data column width to export from table %1: %2 + Error while counting data column width to export from table %1: %2 + + + + FunctionManagerImpl + + + Invalid number of arguments to function '%1'. Expected %2, but got %3. + Invalid number of arguments to function '%1'. Expected %2, but got %3. + + + + No such function registered in SQLiteStudio: %1(%2) + No such function registered in SQLiteStudio: %1(%2) + + + + Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. + Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. + + + + Invalid regular expression pattern: %1 + Invalid regular expression pattern: %1 + + + + + Could not open file %1 for reading: %2 + Could not open file %1 for reading: %2 + + + + Could not open file %1 for writting: %2 + Could not open file %1 for writting: %2 + + + + Error while writting to file %1: %2 + Error while writting to file %1: %2 + + + + Unsupported scripting language: %1 + Unsupported scripting language: %1 + + + + GenericExportPlugin + + + Could not initialize text codec for exporting. Using default codec: %1 + Could not initialize text codec for exporting. Using default codec: %1 + + + + ImportManager + + + Imported data to the table '%1' successfully. Number of imported rows: %2 + Imported data to the table '%1' successfully. Number of imported rows: %2 + + + + ImportWorker + + + No columns provided by the import plugin. + No columns provided by the import plugin. + + + + Could not start transaction in order to import a data: %1 + Could not start transaction in order to import a data: %1 + + + + Could not commit transaction for imported data: %1 + Could not commit transaction for imported data: %1 + + + + Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. + Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. + + + + Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. + Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. + + + + Could not create table to import to: %1 + Could not create table to import to: %1 + + + + + + Error while importing data: %1 + Vyskytla sa chyba počas importu dát: %1 + + + + + Interrupted. + import process status update + Interrupted. + + + + Could not import data row number %1. The row was ignored. Problem details: %2 + Could not import data row number %1. The row was ignored. Problem details: %2 + + + + PluginManagerImpl + + + Cannot load plugin %1, because it's in conflict with plugin %2. + Nemôžem načítať plugin %1, pretože je v konflikte s pluginom %2. + + + + Cannot load plugin %1, because its dependency was not loaded: %2. + Nemôžem načítať plugin %1, pretože neboli načítané jeho závislosti %2. + + + + Cannot load plugin %1. Error details: %2 + Nemôžem načítať plugin %1. Detaily chyby %2 + + + + Cannot load plugin %1 (error while initializing plugin). + Nemôžem načítať plugin %1 (nastala chyba pri jeho inicializácii). + + + + min: %1 + plugin dependency version + min: %1 + + + + max: %1 + plugin dependency version + max: %1 + + + + PopulateConstant + + + Constant + populate constant plugin name + Konštanta + + + + PopulateConstantConfig + + + Constant value: + Hodnota konštanty: + + + + PopulateDictionary + + + Dictionary + dictionary populating plugin name + Slovník + + + + PopulateDictionaryConfig + + + Dictionary file + Dictionary file + + + + Pick dictionary file + Pick dictionary file + + + + Word separator + Word separator + + + + Whitespace + Whitespace + + + + Line break + Line break + + + + Method of using words + Method of using words + + + + Ordered + Ordered + + + + Randomly + Randomly + + + + PopulateManager + + + Table '%1' populated successfully. + Tabuľka %1 úspešne naplnená. + + + + PopulateRandom + + + Random number + Náhodné číslo + + + + PopulateRandomConfig + + + Constant prefix + Constant prefix + + + + No prefix + No prefix + + + + Minimum value + Minimum value + + + + Maximum value + Maximum value + + + + Constant suffix + Constant suffix + + + + No suffix + No suffix + + + + PopulateRandomText + + + Random text + Náhodný text + + + + PopulateRandomTextConfig + + + Use characters from common sets: + Use characters from common sets: + + + + Minimum length + Minimum length + + + + Letters from a to z. + Letters from a to z. + + + + Alpha + Alpha + + + + Numbers from 0 to 9. + Numbers from 0 to 9. + + + + Numeric + Numeric + + + + A whitespace, a tab and a new line character. + A whitespace, a tab and a new line character. + + + + Whitespace + Whitespace + + + + Includes all above and all others. + Includes all above and all others. + + + + Binary + Binary + + + + Use characters from my custom set: + Use characters from my custom set: + + + + Maximum length + Maximum length + + + + If you type some character multiple times, it's more likely to be used. + If you type some character multiple times, it's more likely to be used. + + + + PopulateScript + + + Script + Skript + + + + PopulateScriptConfig + + + Initialization code (optional) + Initialization code (optional) + + + + Per step code + Per step code + + + + Language + Language + + + + Help + Help + + + + PopulateSequence + + + Sequence + Sekvencia + + + + PopulateSequenceConfig + + + Start value: + Start value: + + + + Step: + Step: + + + + PopulateWorker + + + Could not start transaction in order to perform table populating. Error details: %1 + Could not start transaction in order to perform table populating. Error details: %1 + + + + Error while populating table: %1 + Vyskytla sa chyba počas napĺňania tabuľky: %1 + + + + Could not commit transaction after table populating. Error details: %1 + Could not commit transaction after table populating. Error details: %1 + + + + QObject + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Could not open database: %1 + Could not open database: %1 + + + + Result set expired or no row available. + Result set expired or no row available. + + + + + Could not load extension %1: %2 + Could not load extension %1: %2 + + + + Could not run WAL checkpoint: %1 + Could not run WAL checkpoint: %1 + + + + Could not close database: %1 + Could not close database: %1 + + + + Could not attach database %1: %2 + Could not attach database %1: %2 + + + + + Incomplete query. + Incomplete query. + + + + Parser stack overflow + Parser stack overflow + + + + Syntax error + Chyba syntaxe + + + + Could not open dictionary file %1 for reading. + Could not open dictionary file %1 for reading. + + + + Dictionary file must exist and be readable. + Dictionary file must exist and be readable. + + + + Maximum value cannot be less than minimum value. + Maximum value cannot be less than minimum value. + + + + Maximum length cannot be less than minimum length. + Maximum length cannot be less than minimum length. + + + + Custom character set cannot be empty. + Custom character set cannot be empty. + + + + Could not find plugin to support scripting language: %1 + Could not find plugin to support scripting language: %1 + + + + Error while executing populating initial code: %1 + Error while executing populating initial code: %1 + + + + Error while executing populating code: %1 + Error while executing populating code: %1 + + + + Select implementation language. + Select implementation language. + + + + Implementation code cannot be empty. + Implementation code cannot be empty. + + + + Could not resolve data source for column: %1 + Could not resolve data source for column: %1 + + + + Could not resolve table for column '%1'. + Could not resolve table for column '%1'. + + + + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Unable to create a file at following locations: %1. + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Unable to create a file at following locations: %1. + + + + General purpose + plugin category name + General purpose + + + + Database support + plugin category name + Database support + + + + Code formatter + plugin category name + Code formatter + + + + Scripting languages + plugin category name + Skriptovacie jazyky + + + + Exporting + plugin category name + Exporting + + + + Importing + plugin category name + Importing + + + + Table populating + plugin category name + Table populating + + + + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. + + + + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. + + + + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. + + + + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. + + + + Cannot not update trigger %1 according to table %2 modification. + Cannot not update trigger %1 according to table %2 modification. + + + + Cannot not update view %1 according to table %2 modifications. +The view will remain as it is. + Cannot not update view %1 according to table %2 modifications. +The view will remain as it is. + + + + + + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. + + + + Could not parse DDL of the view to be created. Details: %1 + Could not parse DDL of the view to be created. Details: %1 + + + + Parsed query is not CREATE VIEW. It's: %1 + Parsed query is not CREATE VIEW. It's: %1 + + + + SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. + SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. + + + + QueryExecutor + + + Execution interrupted. + Execution interrupted. + + + + Database is not open. + Database is not open. + + + + Only one query can be executed simultaneously. + Only one query can be executed simultaneously. + + + + + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 + Vyskytla sa chyba počas vykonávania dotazu count(*), dôsledkom čoho bolo zablokované stránkovanie. Detail chyby: %1 + + + + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. + + + + ScriptingQtDbProxy + + + No database available in current context, while called JavaScript's %1 command. + No database available in current context, while called JavaScript's %1 command. + + + + Error from %1: %2 + Error from %1: %2 + + + + SqlFileExecutor + + + Could not execute SQL, because application has failed to start transaction: %1 + Could not execute SQL, because application has failed to start transaction: %1 + + + + Execution from file cancelled. Any queries executed so far have been rolled back. + Execution from file cancelled. Any queries executed so far have been rolled back. + + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Could not execute SQL, because application has failed to commit the transaction: %1 + Could not execute SQL, because application has failed to commit the transaction: %1 + + + + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. + + + + Finished executing %1 queries in %2 seconds. + Finished executing %1 queries in %2 seconds. + + + + Could not execute SQL due to error. + Could not execute SQL due to error. + + + + SqlHistoryModel + + + Database + sql history header + Databáza + + + + Execution date + sql history header + Dátum spustenia + + + + Time spent + sql history header + Trvanie dotazu + + + + Rows affected + sql history header + Počet riadkov + + + + SQL + sql history header + SQL + + + + UpdateManager + + + Could not check for updates (%1). + Could not check for updates (%1). + + + diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_sr_SP.ts b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_sr_SP.ts new file mode 100644 index 0000000..48b9e7a --- /dev/null +++ b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_sr_SP.ts @@ -0,0 +1,1101 @@ + + + + + AbstractDb + + + + Cannot execute query on closed database. + Cannot execute query on closed database. + + + + Error attaching database %1: %2 + Error attaching database %1: %2 + + + + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + + + + ChainExecutor + + + The database for executing queries was not defined. + chain executor + The database for executing queries was not defined. + + + + The database for executing queries was not open. + chain executor + The database for executing queries was not open. + + + + Could not disable foreign keys in the database. Details: %1 + chain executor + Could not disable foreign keys in the database. Details: %1 + + + + Could not start a database transaction. Details: %1 + chain executor + Could not start a database transaction. Details: %1 + + + + Interrupted + chain executor + Interrupted + + + + Could not commit a database transaction. Details: %1 + chain executor + Could not commit a database transaction. Details: %1 + + + + CompletionHelper + + + New row reference + New row reference + + + + Old row reference + Old row reference + + + + New table name + New table name + + + + New index name + New index name + + + + New view name + New view name + + + + New trigger name + New trigger name + + + + Table or column alias + Table or column alias + + + + transaction name + transaction name + + + + New column name + New column name + + + + Column data type + Column data type + + + + Constraint name + Constraint name + + + + Error message + Error message + + + + Any word + Any word + + + + Default database + Default database + + + + Temporary objects database + Temporary objects database + + + + ConfigImpl + + + Could not start database transaction for deleting SQL history, therefore it's not deleted. + Could not start database transaction for deleting SQL history, therefore it's not deleted. + + + + Could not commit database transaction for deleting SQL history, therefore it's not deleted. + Could not commit database transaction for deleting SQL history, therefore it's not deleted. + + + + DbManagerImpl + + + Could not add database %1: %2 + Could not add database %1: %2 + + + + Database %1 could not be updated, because of an error: %2 + Database %1 could not be updated, because of an error: %2 + + + + + Database file doesn't exist. + Database file doesn't exist. + + + + + + No supporting plugin loaded. + No supporting plugin loaded. + + + + Database could not be initialized. + Database could not be initialized. + + + + No suitable database driver plugin found. + No suitable database driver plugin found. + + + + DbObjectOrganizer + + + + Error while creating table in target database: %1 + Error while creating table in target database: %1 + + + + Could not parse table. + Could not parse table. + + + + Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. + Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. + + + + Error while copying data for table %1: %2 + Error while copying data for table %1: %2 + + + + + + Error while copying data to table %1: %2 + Error while copying data to table %1: %2 + + + + Error while dropping source view %1: %2 +Tables, indexes, triggers and views copied to database %3 will remain. + Error while dropping source view %1: %2 +Tables, indexes, triggers and views copied to database %3 will remain. + + + + Error while creating view in target database: %1 + Error while creating view in target database: %1 + + + + Error while creating index in target database: %1 + Error while creating index in target database: %1 + + + + Error while creating trigger in target database: %1 + Error while creating trigger in target database: %1 + + + + + + Could not parse object '%1' in order to move or copy it. + Could not parse object '%1' in order to move or copy it. + + + + DdlHistoryModel + + + Database name + ddl history header + Database name + + + + Database file + ddl history header + Database file + + + + Date of execution + ddl history header + Date of execution + + + + Changes + ddl history header + Changes + + + + ExportManager + + + Export plugin %1 doesn't support exporing query results. + Export plugin %1 doesn't support exporing query results. + + + + Export plugin %1 doesn't support exporing tables. + Export plugin %1 doesn't support exporing tables. + + + + Export plugin %1 doesn't support exporing databases. + Export plugin %1 doesn't support exporing databases. + + + + Export format '%1' is not supported. Supported formats are: %2. + Export format '%1' is not supported. Supported formats are: %2. + + + + Export to the clipboard was successful. + Export to the clipboard was successful. + + + + Export to the file '%1' was successful. + Export to the file '%1' was successful. + + + + Export was successful. + Export was successful. + + + + Could not export to file %1. File cannot be open for writting. + Could not export to file %1. File cannot be open for writting. + + + + ExportWorker + + + Error while exporting query results: %1 + Error while exporting query results: %1 + + + + Error while counting data column width to export from query results: %1 + Error while counting data column width to export from query results: %1 + + + + + Could not parse %1 in order to export it. It will be excluded from the export output. + Could not parse %1 in order to export it. It will be excluded from the export output. + + + + Error while reading data to export from table %1: %2 + Error while reading data to export from table %1: %2 + + + + Error while counting data to export from table %1: %2 + Error while counting data to export from table %1: %2 + + + + Error while counting data column width to export from table %1: %2 + Error while counting data column width to export from table %1: %2 + + + + FunctionManagerImpl + + + Invalid number of arguments to function '%1'. Expected %2, but got %3. + Invalid number of arguments to function '%1'. Expected %2, but got %3. + + + + No such function registered in SQLiteStudio: %1(%2) + No such function registered in SQLiteStudio: %1(%2) + + + + Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. + Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. + + + + Invalid regular expression pattern: %1 + Invalid regular expression pattern: %1 + + + + + Could not open file %1 for reading: %2 + Could not open file %1 for reading: %2 + + + + Could not open file %1 for writting: %2 + Could not open file %1 for writting: %2 + + + + Error while writting to file %1: %2 + Error while writting to file %1: %2 + + + + Unsupported scripting language: %1 + Unsupported scripting language: %1 + + + + GenericExportPlugin + + + Could not initialize text codec for exporting. Using default codec: %1 + Could not initialize text codec for exporting. Using default codec: %1 + + + + ImportManager + + + Imported data to the table '%1' successfully. Number of imported rows: %2 + Imported data to the table '%1' successfully. Number of imported rows: %2 + + + + ImportWorker + + + No columns provided by the import plugin. + No columns provided by the import plugin. + + + + Could not start transaction in order to import a data: %1 + Could not start transaction in order to import a data: %1 + + + + Could not commit transaction for imported data: %1 + Could not commit transaction for imported data: %1 + + + + Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. + Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. + + + + Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. + Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. + + + + Could not create table to import to: %1 + Could not create table to import to: %1 + + + + + + Error while importing data: %1 + Error while importing data: %1 + + + + + Interrupted. + import process status update + Interrupted. + + + + Could not import data row number %1. The row was ignored. Problem details: %2 + Could not import data row number %1. The row was ignored. Problem details: %2 + + + + PluginManagerImpl + + + Cannot load plugin %1, because it's in conflict with plugin %2. + Cannot load plugin %1, because it's in conflict with plugin %2. + + + + Cannot load plugin %1, because its dependency was not loaded: %2. + Cannot load plugin %1, because its dependency was not loaded: %2. + + + + Cannot load plugin %1. Error details: %2 + Cannot load plugin %1. Error details: %2 + + + + Cannot load plugin %1 (error while initializing plugin). + Cannot load plugin %1 (error while initializing plugin). + + + + min: %1 + plugin dependency version + min: %1 + + + + max: %1 + plugin dependency version + max: %1 + + + + PopulateConstant + + + Constant + populate constant plugin name + Constant + + + + PopulateConstantConfig + + + Constant value: + Constant value: + + + + PopulateDictionary + + + Dictionary + dictionary populating plugin name + Dictionary + + + + PopulateDictionaryConfig + + + Dictionary file + Dictionary file + + + + Pick dictionary file + Pick dictionary file + + + + Word separator + Word separator + + + + Whitespace + Whitespace + + + + Line break + Line break + + + + Method of using words + Method of using words + + + + Ordered + Ordered + + + + Randomly + Randomly + + + + PopulateManager + + + Table '%1' populated successfully. + Table '%1' populated successfully. + + + + PopulateRandom + + + Random number + Random number + + + + PopulateRandomConfig + + + Constant prefix + Constant prefix + + + + No prefix + No prefix + + + + Minimum value + Minimum value + + + + Maximum value + Maximum value + + + + Constant suffix + Constant suffix + + + + No suffix + No suffix + + + + PopulateRandomText + + + Random text + Random text + + + + PopulateRandomTextConfig + + + Use characters from common sets: + Use characters from common sets: + + + + Minimum length + Minimum length + + + + Letters from a to z. + Letters from a to z. + + + + Alpha + Alpha + + + + Numbers from 0 to 9. + Numbers from 0 to 9. + + + + Numeric + Numeric + + + + A whitespace, a tab and a new line character. + A whitespace, a tab and a new line character. + + + + Whitespace + Whitespace + + + + Includes all above and all others. + Includes all above and all others. + + + + Binary + Binary + + + + Use characters from my custom set: + Use characters from my custom set: + + + + Maximum length + Maximum length + + + + If you type some character multiple times, it's more likely to be used. + If you type some character multiple times, it's more likely to be used. + + + + PopulateScript + + + Script + Script + + + + PopulateScriptConfig + + + Initialization code (optional) + Initialization code (optional) + + + + Per step code + Per step code + + + + Language + Language + + + + Help + Help + + + + PopulateSequence + + + Sequence + Sequence + + + + PopulateSequenceConfig + + + Start value: + Start value: + + + + Step: + Step: + + + + PopulateWorker + + + Could not start transaction in order to perform table populating. Error details: %1 + Could not start transaction in order to perform table populating. Error details: %1 + + + + Error while populating table: %1 + Error while populating table: %1 + + + + Could not commit transaction after table populating. Error details: %1 + Could not commit transaction after table populating. Error details: %1 + + + + QObject + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Could not open database: %1 + Could not open database: %1 + + + + Result set expired or no row available. + Result set expired or no row available. + + + + + Could not load extension %1: %2 + Could not load extension %1: %2 + + + + Could not run WAL checkpoint: %1 + Could not run WAL checkpoint: %1 + + + + Could not close database: %1 + Could not close database: %1 + + + + Could not attach database %1: %2 + Could not attach database %1: %2 + + + + + Incomplete query. + Incomplete query. + + + + Parser stack overflow + Parser stack overflow + + + + Syntax error + Syntax error + + + + Could not open dictionary file %1 for reading. + Could not open dictionary file %1 for reading. + + + + Dictionary file must exist and be readable. + Dictionary file must exist and be readable. + + + + Maximum value cannot be less than minimum value. + Maximum value cannot be less than minimum value. + + + + Maximum length cannot be less than minimum length. + Maximum length cannot be less than minimum length. + + + + Custom character set cannot be empty. + Custom character set cannot be empty. + + + + Could not find plugin to support scripting language: %1 + Could not find plugin to support scripting language: %1 + + + + Error while executing populating initial code: %1 + Error while executing populating initial code: %1 + + + + Error while executing populating code: %1 + Error while executing populating code: %1 + + + + Select implementation language. + Select implementation language. + + + + Implementation code cannot be empty. + Implementation code cannot be empty. + + + + Could not resolve data source for column: %1 + Could not resolve data source for column: %1 + + + + Could not resolve table for column '%1'. + Could not resolve table for column '%1'. + + + + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Unable to create a file at following locations: %1. + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Unable to create a file at following locations: %1. + + + + General purpose + plugin category name + General purpose + + + + Database support + plugin category name + Database support + + + + Code formatter + plugin category name + Code formatter + + + + Scripting languages + plugin category name + Scripting languages + + + + Exporting + plugin category name + Exporting + + + + Importing + plugin category name + Importing + + + + Table populating + plugin category name + Table populating + + + + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. + + + + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. + + + + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. + + + + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. + + + + Cannot not update trigger %1 according to table %2 modification. + Cannot not update trigger %1 according to table %2 modification. + + + + Cannot not update view %1 according to table %2 modifications. +The view will remain as it is. + Cannot not update view %1 according to table %2 modifications. +The view will remain as it is. + + + + + + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. + + + + Could not parse DDL of the view to be created. Details: %1 + Could not parse DDL of the view to be created. Details: %1 + + + + Parsed query is not CREATE VIEW. It's: %1 + Parsed query is not CREATE VIEW. It's: %1 + + + + SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. + SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. + + + + QueryExecutor + + + Execution interrupted. + Execution interrupted. + + + + Database is not open. + Database is not open. + + + + Only one query can be executed simultaneously. + Only one query can be executed simultaneously. + + + + + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 + + + + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. + + + + ScriptingQtDbProxy + + + No database available in current context, while called JavaScript's %1 command. + No database available in current context, while called JavaScript's %1 command. + + + + Error from %1: %2 + Error from %1: %2 + + + + SqlFileExecutor + + + Could not execute SQL, because application has failed to start transaction: %1 + Could not execute SQL, because application has failed to start transaction: %1 + + + + Execution from file cancelled. Any queries executed so far have been rolled back. + Execution from file cancelled. Any queries executed so far have been rolled back. + + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Could not execute SQL, because application has failed to commit the transaction: %1 + Could not execute SQL, because application has failed to commit the transaction: %1 + + + + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. + + + + Finished executing %1 queries in %2 seconds. + Finished executing %1 queries in %2 seconds. + + + + Could not execute SQL due to error. + Could not execute SQL due to error. + + + + SqlHistoryModel + + + Database + sql history header + Database + + + + Execution date + sql history header + Execution date + + + + Time spent + sql history header + Time spent + + + + Rows affected + sql history header + Rows affected + + + + SQL + sql history header + SQL + + + + UpdateManager + + + Could not check for updates (%1). + Could not check for updates (%1). + + + diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_sv_SE.ts b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_sv_SE.ts new file mode 100644 index 0000000..7943cb5 --- /dev/null +++ b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_sv_SE.ts @@ -0,0 +1,1101 @@ + + + + + AbstractDb + + + + Cannot execute query on closed database. + Cannot execute query on closed database. + + + + Error attaching database %1: %2 + Error attaching database %1: %2 + + + + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + + + + ChainExecutor + + + The database for executing queries was not defined. + chain executor + The database for executing queries was not defined. + + + + The database for executing queries was not open. + chain executor + The database for executing queries was not open. + + + + Could not disable foreign keys in the database. Details: %1 + chain executor + Could not disable foreign keys in the database. Details: %1 + + + + Could not start a database transaction. Details: %1 + chain executor + Could not start a database transaction. Details: %1 + + + + Interrupted + chain executor + Interrupted + + + + Could not commit a database transaction. Details: %1 + chain executor + Could not commit a database transaction. Details: %1 + + + + CompletionHelper + + + New row reference + New row reference + + + + Old row reference + Old row reference + + + + New table name + New table name + + + + New index name + New index name + + + + New view name + New view name + + + + New trigger name + New trigger name + + + + Table or column alias + Table or column alias + + + + transaction name + transaction name + + + + New column name + New column name + + + + Column data type + Column data type + + + + Constraint name + Constraint name + + + + Error message + Error message + + + + Any word + Any word + + + + Default database + Default database + + + + Temporary objects database + Temporary objects database + + + + ConfigImpl + + + Could not start database transaction for deleting SQL history, therefore it's not deleted. + Could not start database transaction for deleting SQL history, therefore it's not deleted. + + + + Could not commit database transaction for deleting SQL history, therefore it's not deleted. + Could not commit database transaction for deleting SQL history, therefore it's not deleted. + + + + DbManagerImpl + + + Could not add database %1: %2 + Could not add database %1: %2 + + + + Database %1 could not be updated, because of an error: %2 + Database %1 could not be updated, because of an error: %2 + + + + + Database file doesn't exist. + Database file doesn't exist. + + + + + + No supporting plugin loaded. + No supporting plugin loaded. + + + + Database could not be initialized. + Database could not be initialized. + + + + No suitable database driver plugin found. + No suitable database driver plugin found. + + + + DbObjectOrganizer + + + + Error while creating table in target database: %1 + Error while creating table in target database: %1 + + + + Could not parse table. + Could not parse table. + + + + Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. + Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. + + + + Error while copying data for table %1: %2 + Error while copying data for table %1: %2 + + + + + + Error while copying data to table %1: %2 + Error while copying data to table %1: %2 + + + + Error while dropping source view %1: %2 +Tables, indexes, triggers and views copied to database %3 will remain. + Error while dropping source view %1: %2 +Tables, indexes, triggers and views copied to database %3 will remain. + + + + Error while creating view in target database: %1 + Error while creating view in target database: %1 + + + + Error while creating index in target database: %1 + Error while creating index in target database: %1 + + + + Error while creating trigger in target database: %1 + Error while creating trigger in target database: %1 + + + + + + Could not parse object '%1' in order to move or copy it. + Could not parse object '%1' in order to move or copy it. + + + + DdlHistoryModel + + + Database name + ddl history header + Database name + + + + Database file + ddl history header + Database file + + + + Date of execution + ddl history header + Date of execution + + + + Changes + ddl history header + Changes + + + + ExportManager + + + Export plugin %1 doesn't support exporing query results. + Export plugin %1 doesn't support exporing query results. + + + + Export plugin %1 doesn't support exporing tables. + Export plugin %1 doesn't support exporing tables. + + + + Export plugin %1 doesn't support exporing databases. + Export plugin %1 doesn't support exporing databases. + + + + Export format '%1' is not supported. Supported formats are: %2. + Export format '%1' is not supported. Supported formats are: %2. + + + + Export to the clipboard was successful. + Export to the clipboard was successful. + + + + Export to the file '%1' was successful. + Export to the file '%1' was successful. + + + + Export was successful. + Export was successful. + + + + Could not export to file %1. File cannot be open for writting. + Could not export to file %1. File cannot be open for writting. + + + + ExportWorker + + + Error while exporting query results: %1 + Error while exporting query results: %1 + + + + Error while counting data column width to export from query results: %1 + Error while counting data column width to export from query results: %1 + + + + + Could not parse %1 in order to export it. It will be excluded from the export output. + Could not parse %1 in order to export it. It will be excluded from the export output. + + + + Error while reading data to export from table %1: %2 + Error while reading data to export from table %1: %2 + + + + Error while counting data to export from table %1: %2 + Error while counting data to export from table %1: %2 + + + + Error while counting data column width to export from table %1: %2 + Error while counting data column width to export from table %1: %2 + + + + FunctionManagerImpl + + + Invalid number of arguments to function '%1'. Expected %2, but got %3. + Invalid number of arguments to function '%1'. Expected %2, but got %3. + + + + No such function registered in SQLiteStudio: %1(%2) + No such function registered in SQLiteStudio: %1(%2) + + + + Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. + Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. + + + + Invalid regular expression pattern: %1 + Invalid regular expression pattern: %1 + + + + + Could not open file %1 for reading: %2 + Could not open file %1 for reading: %2 + + + + Could not open file %1 for writting: %2 + Could not open file %1 for writting: %2 + + + + Error while writting to file %1: %2 + Error while writting to file %1: %2 + + + + Unsupported scripting language: %1 + Unsupported scripting language: %1 + + + + GenericExportPlugin + + + Could not initialize text codec for exporting. Using default codec: %1 + Could not initialize text codec for exporting. Using default codec: %1 + + + + ImportManager + + + Imported data to the table '%1' successfully. Number of imported rows: %2 + Imported data to the table '%1' successfully. Number of imported rows: %2 + + + + ImportWorker + + + No columns provided by the import plugin. + No columns provided by the import plugin. + + + + Could not start transaction in order to import a data: %1 + Could not start transaction in order to import a data: %1 + + + + Could not commit transaction for imported data: %1 + Could not commit transaction for imported data: %1 + + + + Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. + Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. + + + + Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. + Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. + + + + Could not create table to import to: %1 + Could not create table to import to: %1 + + + + + + Error while importing data: %1 + Error while importing data: %1 + + + + + Interrupted. + import process status update + Interrupted. + + + + Could not import data row number %1. The row was ignored. Problem details: %2 + Could not import data row number %1. The row was ignored. Problem details: %2 + + + + PluginManagerImpl + + + Cannot load plugin %1, because it's in conflict with plugin %2. + Cannot load plugin %1, because it's in conflict with plugin %2. + + + + Cannot load plugin %1, because its dependency was not loaded: %2. + Cannot load plugin %1, because its dependency was not loaded: %2. + + + + Cannot load plugin %1. Error details: %2 + Cannot load plugin %1. Error details: %2 + + + + Cannot load plugin %1 (error while initializing plugin). + Cannot load plugin %1 (error while initializing plugin). + + + + min: %1 + plugin dependency version + min: %1 + + + + max: %1 + plugin dependency version + max: %1 + + + + PopulateConstant + + + Constant + populate constant plugin name + Constant + + + + PopulateConstantConfig + + + Constant value: + Constant value: + + + + PopulateDictionary + + + Dictionary + dictionary populating plugin name + Dictionary + + + + PopulateDictionaryConfig + + + Dictionary file + Dictionary file + + + + Pick dictionary file + Pick dictionary file + + + + Word separator + Word separator + + + + Whitespace + Whitespace + + + + Line break + Line break + + + + Method of using words + Method of using words + + + + Ordered + Ordered + + + + Randomly + Randomly + + + + PopulateManager + + + Table '%1' populated successfully. + Table '%1' populated successfully. + + + + PopulateRandom + + + Random number + Random number + + + + PopulateRandomConfig + + + Constant prefix + Constant prefix + + + + No prefix + No prefix + + + + Minimum value + Minimum value + + + + Maximum value + Maximum value + + + + Constant suffix + Constant suffix + + + + No suffix + No suffix + + + + PopulateRandomText + + + Random text + Random text + + + + PopulateRandomTextConfig + + + Use characters from common sets: + Use characters from common sets: + + + + Minimum length + Minimum length + + + + Letters from a to z. + Letters from a to z. + + + + Alpha + Alpha + + + + Numbers from 0 to 9. + Numbers from 0 to 9. + + + + Numeric + Numeric + + + + A whitespace, a tab and a new line character. + A whitespace, a tab and a new line character. + + + + Whitespace + Whitespace + + + + Includes all above and all others. + Includes all above and all others. + + + + Binary + Binary + + + + Use characters from my custom set: + Use characters from my custom set: + + + + Maximum length + Maximum length + + + + If you type some character multiple times, it's more likely to be used. + If you type some character multiple times, it's more likely to be used. + + + + PopulateScript + + + Script + Script + + + + PopulateScriptConfig + + + Initialization code (optional) + Initialization code (optional) + + + + Per step code + Per step code + + + + Language + Language + + + + Help + Help + + + + PopulateSequence + + + Sequence + Sequence + + + + PopulateSequenceConfig + + + Start value: + Start value: + + + + Step: + Step: + + + + PopulateWorker + + + Could not start transaction in order to perform table populating. Error details: %1 + Could not start transaction in order to perform table populating. Error details: %1 + + + + Error while populating table: %1 + Error while populating table: %1 + + + + Could not commit transaction after table populating. Error details: %1 + Could not commit transaction after table populating. Error details: %1 + + + + QObject + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Could not open database: %1 + Could not open database: %1 + + + + Result set expired or no row available. + Result set expired or no row available. + + + + + Could not load extension %1: %2 + Could not load extension %1: %2 + + + + Could not run WAL checkpoint: %1 + Could not run WAL checkpoint: %1 + + + + Could not close database: %1 + Could not close database: %1 + + + + Could not attach database %1: %2 + Could not attach database %1: %2 + + + + + Incomplete query. + Incomplete query. + + + + Parser stack overflow + Parser stack overflow + + + + Syntax error + Syntax error + + + + Could not open dictionary file %1 for reading. + Could not open dictionary file %1 for reading. + + + + Dictionary file must exist and be readable. + Dictionary file must exist and be readable. + + + + Maximum value cannot be less than minimum value. + Maximum value cannot be less than minimum value. + + + + Maximum length cannot be less than minimum length. + Maximum length cannot be less than minimum length. + + + + Custom character set cannot be empty. + Custom character set cannot be empty. + + + + Could not find plugin to support scripting language: %1 + Could not find plugin to support scripting language: %1 + + + + Error while executing populating initial code: %1 + Error while executing populating initial code: %1 + + + + Error while executing populating code: %1 + Error while executing populating code: %1 + + + + Select implementation language. + Select implementation language. + + + + Implementation code cannot be empty. + Implementation code cannot be empty. + + + + Could not resolve data source for column: %1 + Could not resolve data source for column: %1 + + + + Could not resolve table for column '%1'. + Could not resolve table for column '%1'. + + + + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Unable to create a file at following locations: %1. + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Unable to create a file at following locations: %1. + + + + General purpose + plugin category name + General purpose + + + + Database support + plugin category name + Database support + + + + Code formatter + plugin category name + Code formatter + + + + Scripting languages + plugin category name + Scripting languages + + + + Exporting + plugin category name + Exporting + + + + Importing + plugin category name + Importing + + + + Table populating + plugin category name + Table populating + + + + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. + + + + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. + + + + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. + + + + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. + + + + Cannot not update trigger %1 according to table %2 modification. + Cannot not update trigger %1 according to table %2 modification. + + + + Cannot not update view %1 according to table %2 modifications. +The view will remain as it is. + Cannot not update view %1 according to table %2 modifications. +The view will remain as it is. + + + + + + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. + + + + Could not parse DDL of the view to be created. Details: %1 + Could not parse DDL of the view to be created. Details: %1 + + + + Parsed query is not CREATE VIEW. It's: %1 + Parsed query is not CREATE VIEW. It's: %1 + + + + SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. + SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. + + + + QueryExecutor + + + Execution interrupted. + Execution interrupted. + + + + Database is not open. + Database is not open. + + + + Only one query can be executed simultaneously. + Only one query can be executed simultaneously. + + + + + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 + + + + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. + + + + ScriptingQtDbProxy + + + No database available in current context, while called JavaScript's %1 command. + No database available in current context, while called JavaScript's %1 command. + + + + Error from %1: %2 + Error from %1: %2 + + + + SqlFileExecutor + + + Could not execute SQL, because application has failed to start transaction: %1 + Could not execute SQL, because application has failed to start transaction: %1 + + + + Execution from file cancelled. Any queries executed so far have been rolled back. + Execution from file cancelled. Any queries executed so far have been rolled back. + + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Could not execute SQL, because application has failed to commit the transaction: %1 + Could not execute SQL, because application has failed to commit the transaction: %1 + + + + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. + + + + Finished executing %1 queries in %2 seconds. + Finished executing %1 queries in %2 seconds. + + + + Could not execute SQL due to error. + Could not execute SQL due to error. + + + + SqlHistoryModel + + + Database + sql history header + Database + + + + Execution date + sql history header + Execution date + + + + Time spent + sql history header + Time spent + + + + Rows affected + sql history header + Rows affected + + + + SQL + sql history header + SQL + + + + UpdateManager + + + Could not check for updates (%1). + Could not check for updates (%1). + + + diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_tr_TR.ts b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_tr_TR.ts new file mode 100644 index 0000000..4f3173c --- /dev/null +++ b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_tr_TR.ts @@ -0,0 +1,1101 @@ + + + + + AbstractDb + + + + Cannot execute query on closed database. + Kapalı veritabanında sorgu çalıştırılamaz. + + + + Error attaching database %1: %2 + Veritabanına eklenirken hata %1: %2 + + + + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + + + + ChainExecutor + + + The database for executing queries was not defined. + chain executor + Sorgu çalıştırılacak veritabanı belirtilmemiş. + + + + The database for executing queries was not open. + chain executor + Sorgu çalıştırılacak veritabanı açılmamış. + + + + Could not disable foreign keys in the database. Details: %1 + chain executor + Veritabanındaki ikincil anahtar devredışı bırakılamadı. Detaylar: %1 + + + + Could not start a database transaction. Details: %1 + chain executor + Veritabanı işlemi başlatılamadı. Detaylar: %1 + + + + Interrupted + chain executor + Yarıda kesildi + + + + Could not commit a database transaction. Details: %1 + chain executor + Veritabanı işlemi başarılı bitirilemedi. Detaylar: %1 + + + + CompletionHelper + + + New row reference + Yeni satır referansı + + + + Old row reference + Eski satır referansı + + + + New table name + Yeni tablo adı + + + + New index name + Yeni indeks + + + + New view name + Yeni view adı + + + + New trigger name + Yeni trigger adı + + + + Table or column alias + Tablo ya da kolon takma adı + + + + transaction name + işlem adı + + + + New column name + Yeni kolon adı + + + + Column data type + Kolon veri tipi + + + + Constraint name + Constraint adı + + + + Error message + Hata mesajı + + + + Any word + Herhangi bir kelime + + + + Default database + Varsayılan veritabanı + + + + Temporary objects database + Geçici nesneler veritabanı + + + + ConfigImpl + + + Could not start database transaction for deleting SQL history, therefore it's not deleted. + SQL geçmişini silme işlemi başlatılamadı, bu sebeple silinemedi. + + + + Could not commit database transaction for deleting SQL history, therefore it's not deleted. + SQL geçmişini silme işlemi commitlenemedi, bu sebeple silinmedi. + + + + DbManagerImpl + + + Could not add database %1: %2 + %1 veritabanı eklenemedi: %2 + + + + Database %1 could not be updated, because of an error: %2 + %2 hatası sebebiyle %1 veritabanı güncellenemedi + + + + + Database file doesn't exist. + Veritabanı dosyası bulunamadı. + + + + + + No supporting plugin loaded. + Hiçbir destekleyen eklenti yüklenmedi. + + + + Database could not be initialized. + Veritabanı açılamadı. + + + + No suitable database driver plugin found. + Hiçbir veritabanı sürücü eklentisi bulunamadı. + + + + DbObjectOrganizer + + + + Error while creating table in target database: %1 + Hedef veritabanında tablo yaratırken hata: %1 + + + + Could not parse table. + Tablo ayrıştırılamadı. + + + + Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. + Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. + + + + Error while copying data for table %1: %2 + Error while copying data for table %1: %2 + + + + + + Error while copying data to table %1: %2 + Error while copying data to table %1: %2 + + + + Error while dropping source view %1: %2 +Tables, indexes, triggers and views copied to database %3 will remain. + Error while dropping source view %1: %2 +Tables, indexes, triggers and views copied to database %3 will remain. + + + + Error while creating view in target database: %1 + Error while creating view in target database: %1 + + + + Error while creating index in target database: %1 + Error while creating index in target database: %1 + + + + Error while creating trigger in target database: %1 + Error while creating trigger in target database: %1 + + + + + + Could not parse object '%1' in order to move or copy it. + Could not parse object '%1' in order to move or copy it. + + + + DdlHistoryModel + + + Database name + ddl history header + Database name + + + + Database file + ddl history header + Veritabanı dosyası + + + + Date of execution + ddl history header + Date of execution + + + + Changes + ddl history header + Değişiklikler + + + + ExportManager + + + Export plugin %1 doesn't support exporing query results. + Export plugin %1 doesn't support exporing query results. + + + + Export plugin %1 doesn't support exporing tables. + Export plugin %1 doesn't support exporing tables. + + + + Export plugin %1 doesn't support exporing databases. + Export plugin %1 doesn't support exporing databases. + + + + Export format '%1' is not supported. Supported formats are: %2. + Export format '%1' is not supported. Supported formats are: %2. + + + + Export to the clipboard was successful. + Export to the clipboard was successful. + + + + Export to the file '%1' was successful. + Export to the file '%1' was successful. + + + + Export was successful. + Export was successful. + + + + Could not export to file %1. File cannot be open for writting. + Could not export to file %1. File cannot be open for writting. + + + + ExportWorker + + + Error while exporting query results: %1 + Error while exporting query results: %1 + + + + Error while counting data column width to export from query results: %1 + Error while counting data column width to export from query results: %1 + + + + + Could not parse %1 in order to export it. It will be excluded from the export output. + Could not parse %1 in order to export it. It will be excluded from the export output. + + + + Error while reading data to export from table %1: %2 + Error while reading data to export from table %1: %2 + + + + Error while counting data to export from table %1: %2 + Error while counting data to export from table %1: %2 + + + + Error while counting data column width to export from table %1: %2 + Error while counting data column width to export from table %1: %2 + + + + FunctionManagerImpl + + + Invalid number of arguments to function '%1'. Expected %2, but got %3. + Invalid number of arguments to function '%1'. Expected %2, but got %3. + + + + No such function registered in SQLiteStudio: %1(%2) + No such function registered in SQLiteStudio: %1(%2) + + + + Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. + Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. + + + + Invalid regular expression pattern: %1 + Invalid regular expression pattern: %1 + + + + + Could not open file %1 for reading: %2 + Could not open file %1 for reading: %2 + + + + Could not open file %1 for writting: %2 + Could not open file %1 for writting: %2 + + + + Error while writting to file %1: %2 + Error while writting to file %1: %2 + + + + Unsupported scripting language: %1 + Unsupported scripting language: %1 + + + + GenericExportPlugin + + + Could not initialize text codec for exporting. Using default codec: %1 + Could not initialize text codec for exporting. Using default codec: %1 + + + + ImportManager + + + Imported data to the table '%1' successfully. Number of imported rows: %2 + Imported data to the table '%1' successfully. Number of imported rows: %2 + + + + ImportWorker + + + No columns provided by the import plugin. + No columns provided by the import plugin. + + + + Could not start transaction in order to import a data: %1 + Could not start transaction in order to import a data: %1 + + + + Could not commit transaction for imported data: %1 + Could not commit transaction for imported data: %1 + + + + Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. + Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. + + + + Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. + Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. + + + + Could not create table to import to: %1 + Could not create table to import to: %1 + + + + + + Error while importing data: %1 + Error while importing data: %1 + + + + + Interrupted. + import process status update + Yarıda kesildi. + + + + Could not import data row number %1. The row was ignored. Problem details: %2 + Could not import data row number %1. The row was ignored. Problem details: %2 + + + + PluginManagerImpl + + + Cannot load plugin %1, because it's in conflict with plugin %2. + Cannot load plugin %1, because it's in conflict with plugin %2. + + + + Cannot load plugin %1, because its dependency was not loaded: %2. + Cannot load plugin %1, because its dependency was not loaded: %2. + + + + Cannot load plugin %1. Error details: %2 + Cannot load plugin %1. Error details: %2 + + + + Cannot load plugin %1 (error while initializing plugin). + Cannot load plugin %1 (error while initializing plugin). + + + + min: %1 + plugin dependency version + en az: %1 + + + + max: %1 + plugin dependency version + en fazla: %1 + + + + PopulateConstant + + + Constant + populate constant plugin name + Sabit + + + + PopulateConstantConfig + + + Constant value: + Sabit değer: + + + + PopulateDictionary + + + Dictionary + dictionary populating plugin name + Sözlük + + + + PopulateDictionaryConfig + + + Dictionary file + Kütüphane dosyası + + + + Pick dictionary file + Sözlük dosyası seç + + + + Word separator + Kelime ayracı + + + + Whitespace + Boşluk + + + + Line break + Satır sonu + + + + Method of using words + Method of using words + + + + Ordered + Sıralandı + + + + Randomly + Rastgele + + + + PopulateManager + + + Table '%1' populated successfully. + Table '%1' populated successfully. + + + + PopulateRandom + + + Random number + Rasgele Numara + + + + PopulateRandomConfig + + + Constant prefix + Constant prefix + + + + No prefix + Ön Ek Yok + + + + Minimum value + En düşük değer + + + + Maximum value + En yüksek değer + + + + Constant suffix + Constant suffix + + + + No suffix + Son ek yok + + + + PopulateRandomText + + + Random text + Rastgele metin + + + + PopulateRandomTextConfig + + + Use characters from common sets: + Use characters from common sets: + + + + Minimum length + En az uzunluk + + + + Letters from a to z. + Letters from a to z. + + + + Alpha + Şefaflık + + + + Numbers from 0 to 9. + 0'dan 9'a kadar sayılar. + + + + Numeric + Sayısal + + + + A whitespace, a tab and a new line character. + A whitespace, a tab and a new line character. + + + + Whitespace + Boşluk + + + + Includes all above and all others. + Includes all above and all others. + + + + Binary + İkili (Binary) + + + + Use characters from my custom set: + Use characters from my custom set: + + + + Maximum length + En yüksek uzunluk + + + + If you type some character multiple times, it's more likely to be used. + If you type some character multiple times, it's more likely to be used. + + + + PopulateScript + + + Script + Komut dizini + + + + PopulateScriptConfig + + + Initialization code (optional) + Initialization code (optional) + + + + Per step code + Per step code + + + + Language + Dil + + + + Help + Yardım + + + + PopulateSequence + + + Sequence + Sıra + + + + PopulateSequenceConfig + + + Start value: + Başlangıç değeri: + + + + Step: + Adım: + + + + PopulateWorker + + + Could not start transaction in order to perform table populating. Error details: %1 + Could not start transaction in order to perform table populating. Error details: %1 + + + + Error while populating table: %1 + Error while populating table: %1 + + + + Could not commit transaction after table populating. Error details: %1 + Could not commit transaction after table populating. Error details: %1 + + + + QObject + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Could not open database: %1 + Veritabanı açılamadı: %1 + + + + Result set expired or no row available. + Result set expired or no row available. + + + + + Could not load extension %1: %2 + Could not load extension %1: %2 + + + + Could not run WAL checkpoint: %1 + Could not run WAL checkpoint: %1 + + + + Could not close database: %1 + Could not close database: %1 + + + + Could not attach database %1: %2 + Could not attach database %1: %2 + + + + + Incomplete query. + Incomplete query. + + + + Parser stack overflow + Parser stack overflow + + + + Syntax error + Sözdizimi hatası + + + + Could not open dictionary file %1 for reading. + Could not open dictionary file %1 for reading. + + + + Dictionary file must exist and be readable. + Dictionary file must exist and be readable. + + + + Maximum value cannot be less than minimum value. + Maximum value cannot be less than minimum value. + + + + Maximum length cannot be less than minimum length. + Maximum length cannot be less than minimum length. + + + + Custom character set cannot be empty. + Custom character set cannot be empty. + + + + Could not find plugin to support scripting language: %1 + Could not find plugin to support scripting language: %1 + + + + Error while executing populating initial code: %1 + Error while executing populating initial code: %1 + + + + Error while executing populating code: %1 + Error while executing populating code: %1 + + + + Select implementation language. + Select implementation language. + + + + Implementation code cannot be empty. + Implementation code cannot be empty. + + + + Could not resolve data source for column: %1 + Could not resolve data source for column: %1 + + + + Could not resolve table for column '%1'. + Could not resolve table for column '%1'. + + + + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Unable to create a file at following locations: %1. + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Unable to create a file at following locations: %1. + + + + General purpose + plugin category name + Genel amaçlı + + + + Database support + plugin category name + Veritabanı desteği + + + + Code formatter + plugin category name + Kod biçimleyici + + + + Scripting languages + plugin category name + Betik dilleri + + + + Exporting + plugin category name + Dışa aktarılıyor + + + + Importing + plugin category name + İçeri aktarılıyor + + + + Table populating + plugin category name + Tablo doldurma + + + + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. + + + + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. + + + + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. + + + + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. + + + + Cannot not update trigger %1 according to table %2 modification. + Cannot not update trigger %1 according to table %2 modification. + + + + Cannot not update view %1 according to table %2 modifications. +The view will remain as it is. + Cannot not update view %1 according to table %2 modifications. +The view will remain as it is. + + + + + + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. + + + + Could not parse DDL of the view to be created. Details: %1 + Could not parse DDL of the view to be created. Details: %1 + + + + Parsed query is not CREATE VIEW. It's: %1 + Parsed query is not CREATE VIEW. It's: %1 + + + + SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. + SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. + + + + QueryExecutor + + + Execution interrupted. + Execution interrupted. + + + + Database is not open. + Veritabanı açık değil. + + + + Only one query can be executed simultaneously. + Only one query can be executed simultaneously. + + + + + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 + + + + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. + + + + ScriptingQtDbProxy + + + No database available in current context, while called JavaScript's %1 command. + No database available in current context, while called JavaScript's %1 command. + + + + Error from %1: %2 + Hata %1 den %2 + + + + SqlFileExecutor + + + Could not execute SQL, because application has failed to start transaction: %1 + Could not execute SQL, because application has failed to start transaction: %1 + + + + Execution from file cancelled. Any queries executed so far have been rolled back. + Execution from file cancelled. Any queries executed so far have been rolled back. + + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Could not execute SQL, because application has failed to commit the transaction: %1 + Could not execute SQL, because application has failed to commit the transaction: %1 + + + + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. + + + + Finished executing %1 queries in %2 seconds. + Finished executing %1 queries in %2 seconds. + + + + Could not execute SQL due to error. + Could not execute SQL due to error. + + + + SqlHistoryModel + + + Database + sql history header + Veritabanı + + + + Execution date + sql history header + Yürütme tarihi + + + + Time spent + sql history header + Harcanan zaman + + + + Rows affected + sql history header + Etkilenen satırlar + + + + SQL + sql history header + SQL + + + + UpdateManager + + + Could not check for updates (%1). + Güncelleştirmeler kontrol edilemedi (%1). + + + diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_uk_UA.ts b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_uk_UA.ts new file mode 100644 index 0000000..5abb81e --- /dev/null +++ b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_uk_UA.ts @@ -0,0 +1,1101 @@ + + + + + AbstractDb + + + + Cannot execute query on closed database. + Неможливо виконати запит в закритій базі даних. + + + + Error attaching database %1: %2 + Помилка підключення бази даних %1: %2 + + + + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + + + + ChainExecutor + + + The database for executing queries was not defined. + chain executor + Не вказана база даних для виконання запитів. + + + + The database for executing queries was not open. + chain executor + Не відкрита база даних для виконання запитів. + + + + Could not disable foreign keys in the database. Details: %1 + chain executor + Не вдалося відключити зовнішні ключі в базі даних. Подробиці: %1 + + + + Could not start a database transaction. Details: %1 + chain executor + Неможливо розпочати транзакцію. Подробиці: %1 + + + + Interrupted + chain executor + Перервано + + + + Could not commit a database transaction. Details: %1 + chain executor + Неможливо завершити транзакцію. Подробиці: %1 + + + + CompletionHelper + + + New row reference + Нове посилання на рядок + + + + Old row reference + Старе посилання на рядок + + + + New table name + Назва нової таблиці + + + + New index name + Назва нового індексу + + + + New view name + Нова назва розрізу даних (view) + + + + New trigger name + Назва нової тригера + + + + Table or column alias + Псевдонім таблиці або стовпця + + + + transaction name + назва транзакції + + + + New column name + Нове ім'я стовпця + + + + Column data type + Тип даних стовпця + + + + Constraint name + Назва обмеження + + + + Error message + Повідомлення про помилку + + + + Any word + Будь-яке слово + + + + Default database + База даних за замовчуванням + + + + Temporary objects database + База даних тимчасових об'єктів + + + + ConfigImpl + + + Could not start database transaction for deleting SQL history, therefore it's not deleted. + Не вдалося почати транзакцію бази даних для видалення SQL історії, тому вона не видалена. + + + + Could not commit database transaction for deleting SQL history, therefore it's not deleted. + Не вдалося завершити транзакцію бази даних для видалення SQL історії, тому вона не видалена. + + + + DbManagerImpl + + + Could not add database %1: %2 + Не вдалося додати базу даних %1: %2 + + + + Database %1 could not be updated, because of an error: %2 + База даних %1 не може бути оновлена через помилку: %2 + + + + + Database file doesn't exist. + Файл бази даних не існує. + + + + + + No supporting plugin loaded. + Модуль підтримки не завантажений. + + + + Database could not be initialized. + Неможливо ініціалізувати базу даних. + + + + No suitable database driver plugin found. + Не знайдено відповідного драйвера бази даних. + + + + DbObjectOrganizer + + + + Error while creating table in target database: %1 + Помилка створення таблиці в цільовій базі даних: %1 + + + + Could not parse table. + Не вдалося проаналізувати структуру таблиці. + + + + Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. + Неможливо приєднати базу даних %1 до бази даних %2, тому дані таблиці %3 будуть скопійовані за допомогою SQLiteStudio. Цей метод може бути повільним для великих таблиць, так що наберіться терпіння. + + + + Error while copying data for table %1: %2 + Помилка при копіюванні даних з таблиці %1: %2 + + + + + + Error while copying data to table %1: %2 + Помилка при копіюванні даних в таблицю %1: %2 + + + + Error while dropping source view %1: %2 +Tables, indexes, triggers and views copied to database %3 will remain. + Помилка при видаленні розрізу даних (view) %1: %2 +Таблиці, індекси, тригери та перегляди, що скопійовані в базу %3, залишаться. + + + + Error while creating view in target database: %1 + Помилка створення таблиці в цільовій базі даних: %1 + + + + Error while creating index in target database: %1 + Помилка створення індексу в цільовій базі даних: %1 + + + + Error while creating trigger in target database: %1 + Помилка створення тригера в цільовій базі даних: %1 + + + + + + Could not parse object '%1' in order to move or copy it. + Не вдалося проаналізувати об'єкт '%1' для того, щоб перемістити або скопіювати його. + + + + DdlHistoryModel + + + Database name + ddl history header + Назва бази даних + + + + Database file + ddl history header + Файл бази даних + + + + Date of execution + ddl history header + Дата виконання + + + + Changes + ddl history header + Зміни + + + + ExportManager + + + Export plugin %1 doesn't support exporing query results. + Модуль експорту %1 не підтримує експорт результатів запиту. + + + + Export plugin %1 doesn't support exporing tables. + Модуль експорту %1 не підтримує експорт таблиць. + + + + Export plugin %1 doesn't support exporing databases. + Модуль експорту %1 не підтримує експорт бази даних. + + + + Export format '%1' is not supported. Supported formats are: %2. + Формат експорту '%1' не підтримується. Підтримуються формати: %2. + + + + Export to the clipboard was successful. + Експорт до буфера обміну пройшов успішно. + + + + Export to the file '%1' was successful. + Експорт у файл '%1' успішно здійснено. + + + + Export was successful. + Видалення пройшло успішно. + + + + Could not export to file %1. File cannot be open for writting. + Не вдалося експортувати до файлу %1. Файл не може бути відкритий для запису. + + + + ExportWorker + + + Error while exporting query results: %1 + Помилка під час експорту результатів запиту: %1 + + + + Error while counting data column width to export from query results: %1 + Помилка під час підрахунку ширини стовпця даних для експорту з результатів запиту: %1 + + + + + Could not parse %1 in order to export it. It will be excluded from the export output. + Неможливо проаналізувати структуру %1. Даний об'єкт буде виключений при виконанні експорту. + + + + Error while reading data to export from table %1: %2 + Помилка при читанні даних для експорту з таблиці %1: %2 + + + + Error while counting data to export from table %1: %2 + Помилка при підрахунку кількості даних для експорту з таблиці %1: %2 + + + + Error while counting data column width to export from table %1: %2 + Помилка при підрахунку ширини стовпчика даних для експорту з таблиці %1: %2 + + + + FunctionManagerImpl + + + Invalid number of arguments to function '%1'. Expected %2, but got %3. + Некоректна кількість аргументів для функції '%1'. Очікувалось %2, але отримано %3. + + + + No such function registered in SQLiteStudio: %1(%2) + Немає такої функції, зареєстрованої в SQLiteStudio: %1(%2) + + + + Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. + Функція %1(%2) була зареєстрована на мові %3, але плагін, що підтримує мову, наразі не завантажений. + + + + Invalid regular expression pattern: %1 + Невірний шаблон регулярного виразу: %1 + + + + + Could not open file %1 for reading: %2 + Неможливо відкрити файл %1 для читання: %2 + + + + Could not open file %1 for writting: %2 + Неможливо відкрити файл %1 для запису: %2 + + + + Error while writting to file %1: %2 + Помилка при запису в файл %1: %2 + + + + Unsupported scripting language: %1 + Непідтримуваний скриптова мова: %1 + + + + GenericExportPlugin + + + Could not initialize text codec for exporting. Using default codec: %1 + Неможливо ініціалізувати текстовий кодек для експорту. Використовується кодек за замовчуванням: %1 + + + + ImportManager + + + Imported data to the table '%1' successfully. Number of imported rows: %2 + Дані в таблицю '%1' імпортовані успішно. Кількість імпортованих рядків: %2 + + + + ImportWorker + + + No columns provided by the import plugin. + Модуль імпорту не виявив жодного стовпчика. + + + + Could not start transaction in order to import a data: %1 + Не вдалося почати транзакцію для імпортування даних: %1 + + + + Could not commit transaction for imported data: %1 + Не вдалося завершити транзакцію для імпортованих даних: %1 + + + + Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. + Таблиця '%1' має менше стовпців, ніж в імпортованих даних. Зайві стовпці даних будуть проігноровані. + + + + Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. + У таблиці '%1' стовпців більше, ніж в імпортованих даних. Відсутні стовпці будуть залишені порожніми. + + + + Could not create table to import to: %1 + Не вдалося створити таблицю для імпорту: %1 + + + + + + Error while importing data: %1 + Помилка при імпорті даних: %1 + + + + + Interrupted. + import process status update + Перервано. + + + + Could not import data row number %1. The row was ignored. Problem details: %2 + Не вдалося імпортувати дані у рядку %1. Рядок було проігноровано. Подробиці проблеми: %2 + + + + PluginManagerImpl + + + Cannot load plugin %1, because it's in conflict with plugin %2. + Не вдалося завантажити плагін %1, тому що він конфліктує з плагіном %2. + + + + Cannot load plugin %1, because its dependency was not loaded: %2. + Неможливо завантажити модуль%1, тому що не завантажений необхідний йому модуль: %2. + + + + Cannot load plugin %1. Error details: %2 + Не вдалося завантажити плагін %1. Подробиці помилки: %2 + + + + Cannot load plugin %1 (error while initializing plugin). + Не вдалося завантажити плагін %1 (помилка при ініціалізації плагіна). + + + + min: %1 + plugin dependency version + мінімум: %1 + + + + max: %1 + plugin dependency version + максимум: %1 + + + + PopulateConstant + + + Constant + populate constant plugin name + Константа + + + + PopulateConstantConfig + + + Constant value: + Значення константи: + + + + PopulateDictionary + + + Dictionary + dictionary populating plugin name + Словник + + + + PopulateDictionaryConfig + + + Dictionary file + Файл словника + + + + Pick dictionary file + Вибрати файл словника + + + + Word separator + Розділювач слів + + + + Whitespace + Пробіл + + + + Line break + Перенесення рядка + + + + Method of using words + Спосіб використання слів + + + + Ordered + По порядку + + + + Randomly + Випадковим чином + + + + PopulateManager + + + Table '%1' populated successfully. + Таблиця '%1' успішно заповнена. + + + + PopulateRandom + + + Random number + Випадкове число + + + + PopulateRandomConfig + + + Constant prefix + Префікс константи + + + + No prefix + Без префікса + + + + Minimum value + Мінімальне значення + + + + Maximum value + Максимальне значення + + + + Constant suffix + Суфікс константи + + + + No suffix + Без суфікса + + + + PopulateRandomText + + + Random text + Випадковий текст + + + + PopulateRandomTextConfig + + + Use characters from common sets: + Використовувати символи з стандартного набору: + + + + Minimum length + Мінімальна довжина + + + + Letters from a to z. + Букви від a до z. + + + + Alpha + Буквений + + + + Numbers from 0 to 9. + Числа від 0 до 9. + + + + Numeric + Цифровий + + + + A whitespace, a tab and a new line character. + Пробіл, табуляція та символ нового рядка. + + + + Whitespace + Пробіл + + + + Includes all above and all others. + Включає всі перераховані вище і всі інші. + + + + Binary + Бінарний + + + + Use characters from my custom set: + Використовувати символи з мого набору: + + + + Maximum length + Максимальна довжина + + + + If you type some character multiple times, it's more likely to be used. + При вказівці одного символу кілька разів, ймовірність його використання збільшується. + + + + PopulateScript + + + Script + Скрипт + + + + PopulateScriptConfig + + + Initialization code (optional) + Ініціалізаційний код (необов'язково) + + + + Per step code + Код для кожного кроку + + + + Language + Мова + + + + Help + Допомога + + + + PopulateSequence + + + Sequence + Послідовність + + + + PopulateSequenceConfig + + + Start value: + Початкове значення: + + + + Step: + Крок: + + + + PopulateWorker + + + Could not start transaction in order to perform table populating. Error details: %1 + Не вдалося почати транзакцію для заповнення таблиці. Подробиці помилки: %1 + + + + Error while populating table: %1 + Помилка при заповненні таблиці: %1 + + + + Could not commit transaction after table populating. Error details: %1 + Не вдалося завершити транзакцію після заповнення таблиці. Подробиці помилки: %1 + + + + QObject + + + Could not open file '%1' for reading: %2 + Не вдалося відкрити файл '%1' для читання: %2 + + + + Could not open database: %1 + Не вдалося відкрити базу даних: %1 + + + + Result set expired or no row available. + Результуюча вибірка застаріла або жоден рядок не доступний. + + + + + Could not load extension %1: %2 + Не вдалося завантажити розширення %1: %2 + + + + Could not run WAL checkpoint: %1 + Could not run WAL checkpoint: %1 + + + + Could not close database: %1 + Не вдалося закрити базу даних: %1 + + + + Could not attach database %1: %2 + Не вдалося підключити базу даних %1: %2 + + + + + Incomplete query. + Незавершений запит. + + + + Parser stack overflow + Переповнення стека аналізатора + + + + Syntax error + Синтаксична помилка + + + + Could not open dictionary file %1 for reading. + Не вдалося відкрити файл словника %1 для читання. + + + + Dictionary file must exist and be readable. + Файл словника має існувати та бути читабельним. + + + + Maximum value cannot be less than minimum value. + Максимальне значення не може бути менше мінімального значення. + + + + Maximum length cannot be less than minimum length. + Максимальна довжина не може бути меншою мінімальної довжини. + + + + Custom character set cannot be empty. + Довільний набір символів не може бути пустим. + + + + Could not find plugin to support scripting language: %1 + Неможливо знайти модуль підтримки скриптового мови: %1 + + + + Error while executing populating initial code: %1 + Помилка при виконанні ініціалізації коду заповнення: %1 + + + + Error while executing populating code: %1 + Помилка при виконанні коду заповнення: %1 + + + + Select implementation language. + Виберіть мову реалізації. + + + + Implementation code cannot be empty. + Заповнюючий код не може бути порожнім. + + + + Could not resolve data source for column: %1 + Неможливо визначити джерело даних для стовпця: %1 + + + + Could not resolve table for column '%1'. + Неможливо визначити таблицю для стовпця '%1'. + + + + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Unable to create a file at following locations: %1. + Неможливо ініціалізувати конфігураційний файл. Будь-які зміни конфігурації і історія запитів будуть втрачені після перезавантаження програми. Неможливо створити файл в наступних місцях: %1. + + + + General purpose + plugin category name + Загального призначення + + + + Database support + plugin category name + Підтримка баз даних + + + + Code formatter + plugin category name + Форматування коду + + + + Scripting languages + plugin category name + Скриптові мови + + + + Exporting + plugin category name + Експорт + + + + Importing + plugin category name + Імпорт + + + + Table populating + plugin category name + Заповнення таблиць + + + + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. + Таблиця %1 посилається на таблицю %2, але опис зовнішнього ключа не буде оновлено для опису нової таблиці через проблеми з аналізом DDL таблиці %3. + + + + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. + Всі стовпчики, проіндексовані індексом %1, видалені. Індекс не буде відтворений після модифікації таблиці. + + + + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. + Виникла проблема при обробці тригера %1. Згодом він не буде повністю оновлений і вимагає вашої уваги. + + + + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. + Всі стовпчики, зачеплені в тригері %1, видалені. Тригер буде відтворений після модифікації таблиці. + + + + Cannot not update trigger %1 according to table %2 modification. + Не вдалося оновити тригер %1 відповідно до зміни таблиці %2. + + + + Cannot not update view %1 according to table %2 modifications. +The view will remain as it is. + Неможливо оновити розріз даних (view) %1 у відповідності зі зміною таблиці %2. +Вид залишиться таким, як є. + + + + + + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. + Виникла проблема при оновленні конструкції %1 всередині тригера %2. Одна з вкладених конструкцій %1, яка можливо посилається на таблицю %3, не може бути коректно модифікована. Можливо необхідне ручна правка тригера. + + + + Could not parse DDL of the view to be created. Details: %1 + Неможливо проаналізувати DDL створюваного розрізу даних (view). Подробиці: %1 + + + + Parsed query is not CREATE VIEW. It's: %1 + Проаналізований запит не є запитом CREATE VIEW. Тип запиту: %1 + + + + SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. + SQLiteStudio не вдалося визначити стовпці, які повертаються новим розрізом даних (view), тому неможливо вказати, які тригери можуть зламатися в процесі відтворення. + + + + QueryExecutor + + + Execution interrupted. + Виконання перервано. + + + + Database is not open. + Базу даних не відкрито. + + + + Only one query can be executed simultaneously. + Одночасно може бути виконаний тільки один запит. + + + + + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 + Сталася помилка під час виконання count(*) запиту, тому розбивка даних по сторінках буде вимкнено. Деталі помилки з бази даних: %1 + + + + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. + SQLiteStudio не вдалося витягти метадані із запиту. Результат не зможе бути редагованим. + + + + ScriptingQtDbProxy + + + No database available in current context, while called JavaScript's %1 command. + Немає доступної бази даних в поточному контексті, під час виклику JavaScript's %1 команди. + + + + Error from %1: %2 + Помилка в команді %1: %2 + + + + SqlFileExecutor + + + Could not execute SQL, because application has failed to start transaction: %1 + Could not execute SQL, because application has failed to start transaction: %1 + + + + Execution from file cancelled. Any queries executed so far have been rolled back. + Execution from file cancelled. Any queries executed so far have been rolled back. + + + + Could not open file '%1' for reading: %2 + Не вдалося відкрити файл '%1' для читання: %2 + + + + Could not execute SQL, because application has failed to commit the transaction: %1 + Could not execute SQL, because application has failed to commit the transaction: %1 + + + + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. + + + + Finished executing %1 queries in %2 seconds. + Finished executing %1 queries in %2 seconds. + + + + Could not execute SQL due to error. + Could not execute SQL due to error. + + + + SqlHistoryModel + + + Database + sql history header + База даних + + + + Execution date + sql history header + Дата виконання + + + + Time spent + sql history header + Витрачено часу + + + + Rows affected + sql history header + Торкнулося рядків + + + + SQL + sql history header + SQL + + + + UpdateManager + + + Could not check for updates (%1). + Не вдається перевірити наявність оновлень (%1). + + + diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_vi_VN.ts b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_vi_VN.ts new file mode 100644 index 0000000..173c03e --- /dev/null +++ b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_vi_VN.ts @@ -0,0 +1,1101 @@ + + + + + AbstractDb + + + + Cannot execute query on closed database. + Cannot execute query on closed database. + + + + Error attaching database %1: %2 + Error attaching database %1: %2 + + + + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + + + + ChainExecutor + + + The database for executing queries was not defined. + chain executor + The database for executing queries was not defined. + + + + The database for executing queries was not open. + chain executor + The database for executing queries was not open. + + + + Could not disable foreign keys in the database. Details: %1 + chain executor + Could not disable foreign keys in the database. Details: %1 + + + + Could not start a database transaction. Details: %1 + chain executor + Could not start a database transaction. Details: %1 + + + + Interrupted + chain executor + Interrupted + + + + Could not commit a database transaction. Details: %1 + chain executor + Could not commit a database transaction. Details: %1 + + + + CompletionHelper + + + New row reference + New row reference + + + + Old row reference + Old row reference + + + + New table name + New table name + + + + New index name + New index name + + + + New view name + New view name + + + + New trigger name + New trigger name + + + + Table or column alias + Table or column alias + + + + transaction name + transaction name + + + + New column name + New column name + + + + Column data type + Column data type + + + + Constraint name + Constraint name + + + + Error message + Error message + + + + Any word + Any word + + + + Default database + Default database + + + + Temporary objects database + Temporary objects database + + + + ConfigImpl + + + Could not start database transaction for deleting SQL history, therefore it's not deleted. + Could not start database transaction for deleting SQL history, therefore it's not deleted. + + + + Could not commit database transaction for deleting SQL history, therefore it's not deleted. + Could not commit database transaction for deleting SQL history, therefore it's not deleted. + + + + DbManagerImpl + + + Could not add database %1: %2 + Could not add database %1: %2 + + + + Database %1 could not be updated, because of an error: %2 + Database %1 could not be updated, because of an error: %2 + + + + + Database file doesn't exist. + Database file doesn't exist. + + + + + + No supporting plugin loaded. + No supporting plugin loaded. + + + + Database could not be initialized. + Database could not be initialized. + + + + No suitable database driver plugin found. + No suitable database driver plugin found. + + + + DbObjectOrganizer + + + + Error while creating table in target database: %1 + Error while creating table in target database: %1 + + + + Could not parse table. + Could not parse table. + + + + Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. + Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. + + + + Error while copying data for table %1: %2 + Error while copying data for table %1: %2 + + + + + + Error while copying data to table %1: %2 + Error while copying data to table %1: %2 + + + + Error while dropping source view %1: %2 +Tables, indexes, triggers and views copied to database %3 will remain. + Error while dropping source view %1: %2 +Tables, indexes, triggers and views copied to database %3 will remain. + + + + Error while creating view in target database: %1 + Error while creating view in target database: %1 + + + + Error while creating index in target database: %1 + Error while creating index in target database: %1 + + + + Error while creating trigger in target database: %1 + Error while creating trigger in target database: %1 + + + + + + Could not parse object '%1' in order to move or copy it. + Could not parse object '%1' in order to move or copy it. + + + + DdlHistoryModel + + + Database name + ddl history header + Database name + + + + Database file + ddl history header + Database file + + + + Date of execution + ddl history header + Date of execution + + + + Changes + ddl history header + Changes + + + + ExportManager + + + Export plugin %1 doesn't support exporing query results. + Export plugin %1 doesn't support exporing query results. + + + + Export plugin %1 doesn't support exporing tables. + Export plugin %1 doesn't support exporing tables. + + + + Export plugin %1 doesn't support exporing databases. + Export plugin %1 doesn't support exporing databases. + + + + Export format '%1' is not supported. Supported formats are: %2. + Export format '%1' is not supported. Supported formats are: %2. + + + + Export to the clipboard was successful. + Export to the clipboard was successful. + + + + Export to the file '%1' was successful. + Export to the file '%1' was successful. + + + + Export was successful. + Export was successful. + + + + Could not export to file %1. File cannot be open for writting. + Could not export to file %1. File cannot be open for writting. + + + + ExportWorker + + + Error while exporting query results: %1 + Error while exporting query results: %1 + + + + Error while counting data column width to export from query results: %1 + Error while counting data column width to export from query results: %1 + + + + + Could not parse %1 in order to export it. It will be excluded from the export output. + Could not parse %1 in order to export it. It will be excluded from the export output. + + + + Error while reading data to export from table %1: %2 + Error while reading data to export from table %1: %2 + + + + Error while counting data to export from table %1: %2 + Error while counting data to export from table %1: %2 + + + + Error while counting data column width to export from table %1: %2 + Error while counting data column width to export from table %1: %2 + + + + FunctionManagerImpl + + + Invalid number of arguments to function '%1'. Expected %2, but got %3. + Invalid number of arguments to function '%1'. Expected %2, but got %3. + + + + No such function registered in SQLiteStudio: %1(%2) + No such function registered in SQLiteStudio: %1(%2) + + + + Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. + Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. + + + + Invalid regular expression pattern: %1 + Invalid regular expression pattern: %1 + + + + + Could not open file %1 for reading: %2 + Could not open file %1 for reading: %2 + + + + Could not open file %1 for writting: %2 + Could not open file %1 for writting: %2 + + + + Error while writting to file %1: %2 + Error while writting to file %1: %2 + + + + Unsupported scripting language: %1 + Unsupported scripting language: %1 + + + + GenericExportPlugin + + + Could not initialize text codec for exporting. Using default codec: %1 + Could not initialize text codec for exporting. Using default codec: %1 + + + + ImportManager + + + Imported data to the table '%1' successfully. Number of imported rows: %2 + Imported data to the table '%1' successfully. Number of imported rows: %2 + + + + ImportWorker + + + No columns provided by the import plugin. + No columns provided by the import plugin. + + + + Could not start transaction in order to import a data: %1 + Could not start transaction in order to import a data: %1 + + + + Could not commit transaction for imported data: %1 + Could not commit transaction for imported data: %1 + + + + Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. + Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. + + + + Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. + Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. + + + + Could not create table to import to: %1 + Could not create table to import to: %1 + + + + + + Error while importing data: %1 + Error while importing data: %1 + + + + + Interrupted. + import process status update + Interrupted. + + + + Could not import data row number %1. The row was ignored. Problem details: %2 + Could not import data row number %1. The row was ignored. Problem details: %2 + + + + PluginManagerImpl + + + Cannot load plugin %1, because it's in conflict with plugin %2. + Cannot load plugin %1, because it's in conflict with plugin %2. + + + + Cannot load plugin %1, because its dependency was not loaded: %2. + Cannot load plugin %1, because its dependency was not loaded: %2. + + + + Cannot load plugin %1. Error details: %2 + Cannot load plugin %1. Error details: %2 + + + + Cannot load plugin %1 (error while initializing plugin). + Cannot load plugin %1 (error while initializing plugin). + + + + min: %1 + plugin dependency version + min: %1 + + + + max: %1 + plugin dependency version + max: %1 + + + + PopulateConstant + + + Constant + populate constant plugin name + Constant + + + + PopulateConstantConfig + + + Constant value: + Constant value: + + + + PopulateDictionary + + + Dictionary + dictionary populating plugin name + Dictionary + + + + PopulateDictionaryConfig + + + Dictionary file + Dictionary file + + + + Pick dictionary file + Pick dictionary file + + + + Word separator + Word separator + + + + Whitespace + Whitespace + + + + Line break + Line break + + + + Method of using words + Method of using words + + + + Ordered + Ordered + + + + Randomly + Randomly + + + + PopulateManager + + + Table '%1' populated successfully. + Table '%1' populated successfully. + + + + PopulateRandom + + + Random number + Random number + + + + PopulateRandomConfig + + + Constant prefix + Constant prefix + + + + No prefix + No prefix + + + + Minimum value + Minimum value + + + + Maximum value + Maximum value + + + + Constant suffix + Constant suffix + + + + No suffix + No suffix + + + + PopulateRandomText + + + Random text + Random text + + + + PopulateRandomTextConfig + + + Use characters from common sets: + Use characters from common sets: + + + + Minimum length + Minimum length + + + + Letters from a to z. + Letters from a to z. + + + + Alpha + Alpha + + + + Numbers from 0 to 9. + Numbers from 0 to 9. + + + + Numeric + Numeric + + + + A whitespace, a tab and a new line character. + A whitespace, a tab and a new line character. + + + + Whitespace + Whitespace + + + + Includes all above and all others. + Includes all above and all others. + + + + Binary + Binary + + + + Use characters from my custom set: + Use characters from my custom set: + + + + Maximum length + Maximum length + + + + If you type some character multiple times, it's more likely to be used. + If you type some character multiple times, it's more likely to be used. + + + + PopulateScript + + + Script + Script + + + + PopulateScriptConfig + + + Initialization code (optional) + Initialization code (optional) + + + + Per step code + Per step code + + + + Language + Language + + + + Help + Help + + + + PopulateSequence + + + Sequence + Sequence + + + + PopulateSequenceConfig + + + Start value: + Start value: + + + + Step: + Step: + + + + PopulateWorker + + + Could not start transaction in order to perform table populating. Error details: %1 + Could not start transaction in order to perform table populating. Error details: %1 + + + + Error while populating table: %1 + Error while populating table: %1 + + + + Could not commit transaction after table populating. Error details: %1 + Could not commit transaction after table populating. Error details: %1 + + + + QObject + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Could not open database: %1 + Could not open database: %1 + + + + Result set expired or no row available. + Result set expired or no row available. + + + + + Could not load extension %1: %2 + Could not load extension %1: %2 + + + + Could not run WAL checkpoint: %1 + Could not run WAL checkpoint: %1 + + + + Could not close database: %1 + Could not close database: %1 + + + + Could not attach database %1: %2 + Could not attach database %1: %2 + + + + + Incomplete query. + Incomplete query. + + + + Parser stack overflow + Parser stack overflow + + + + Syntax error + Syntax error + + + + Could not open dictionary file %1 for reading. + Could not open dictionary file %1 for reading. + + + + Dictionary file must exist and be readable. + Dictionary file must exist and be readable. + + + + Maximum value cannot be less than minimum value. + Maximum value cannot be less than minimum value. + + + + Maximum length cannot be less than minimum length. + Maximum length cannot be less than minimum length. + + + + Custom character set cannot be empty. + Custom character set cannot be empty. + + + + Could not find plugin to support scripting language: %1 + Could not find plugin to support scripting language: %1 + + + + Error while executing populating initial code: %1 + Error while executing populating initial code: %1 + + + + Error while executing populating code: %1 + Error while executing populating code: %1 + + + + Select implementation language. + Select implementation language. + + + + Implementation code cannot be empty. + Implementation code cannot be empty. + + + + Could not resolve data source for column: %1 + Could not resolve data source for column: %1 + + + + Could not resolve table for column '%1'. + Could not resolve table for column '%1'. + + + + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Unable to create a file at following locations: %1. + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Unable to create a file at following locations: %1. + + + + General purpose + plugin category name + General purpose + + + + Database support + plugin category name + Database support + + + + Code formatter + plugin category name + Code formatter + + + + Scripting languages + plugin category name + Scripting languages + + + + Exporting + plugin category name + Exporting + + + + Importing + plugin category name + Importing + + + + Table populating + plugin category name + Table populating + + + + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. + + + + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. + + + + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. + + + + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. + + + + Cannot not update trigger %1 according to table %2 modification. + Cannot not update trigger %1 according to table %2 modification. + + + + Cannot not update view %1 according to table %2 modifications. +The view will remain as it is. + Cannot not update view %1 according to table %2 modifications. +The view will remain as it is. + + + + + + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. + + + + Could not parse DDL of the view to be created. Details: %1 + Could not parse DDL of the view to be created. Details: %1 + + + + Parsed query is not CREATE VIEW. It's: %1 + Parsed query is not CREATE VIEW. It's: %1 + + + + SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. + SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. + + + + QueryExecutor + + + Execution interrupted. + Execution interrupted. + + + + Database is not open. + Database is not open. + + + + Only one query can be executed simultaneously. + Only one query can be executed simultaneously. + + + + + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 + + + + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. + + + + ScriptingQtDbProxy + + + No database available in current context, while called JavaScript's %1 command. + No database available in current context, while called JavaScript's %1 command. + + + + Error from %1: %2 + Error from %1: %2 + + + + SqlFileExecutor + + + Could not execute SQL, because application has failed to start transaction: %1 + Could not execute SQL, because application has failed to start transaction: %1 + + + + Execution from file cancelled. Any queries executed so far have been rolled back. + Execution from file cancelled. Any queries executed so far have been rolled back. + + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Could not execute SQL, because application has failed to commit the transaction: %1 + Could not execute SQL, because application has failed to commit the transaction: %1 + + + + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. + + + + Finished executing %1 queries in %2 seconds. + Finished executing %1 queries in %2 seconds. + + + + Could not execute SQL due to error. + Could not execute SQL due to error. + + + + SqlHistoryModel + + + Database + sql history header + Database + + + + Execution date + sql history header + Execution date + + + + Time spent + sql history header + Time spent + + + + Rows affected + sql history header + Rows affected + + + + SQL + sql history header + SQL + + + + UpdateManager + + + Could not check for updates (%1). + Could not check for updates (%1). + + + diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_zh_CN.qm b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_zh_CN.qm deleted file mode 100644 index be651ee..0000000 --- a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_zh_CN.qm +++ /dev/null @@ -1 +0,0 @@ - - - + + AbstractDb - - - Cannot execute query on closed database. - 无法在关闭的数据库上执行查询。 + + + Cannot execute query on closed database. + 无法在关闭的数据库上执行查询。 - - Error attaching database %1: %2 - 附加数据库 %1 时发生错误:%2 + + Error attaching database %1: %2 + 附加数据库 %1 时发生错误:%2 - - - BugReporter - Invalid login or password - 用户名或密码错误 + + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 - - + + ChainExecutor - - The database for executing queries was not defined. - chain executor - 用于执行查询的数据库没有被定义。 + + The database for executing queries was not defined. + chain executor + 没有定义执行查询的数据库。 - - The database for executing queries was not open. - chain executor - 用于执行查询的数据库没有打开。 + + The database for executing queries was not open. + chain executor + 没有打开执行查询的数据库。 - - Could not disable foreign keys in the database. Details: %1 - chain executor - 无法在数据库中禁用外键。详情:%1 + + Could not disable foreign keys in the database. Details: %1 + chain executor + 未能禁用该数据库中的外键。详情:%1 - - Could not start a database transaction. Details: %1 - chain executor - 无法开始数据库事务。详情:%1 + + Could not start a database transaction. Details: %1 + chain executor + 未能启动数据库事务。详情:%1 - - Interrupted - chain executor - 中断 + + Interrupted + chain executor + 中断 - - Could not commit a database transaction. Details: %1 - chain executor - 无法提交数据库事务。详情:%1 + + Could not commit a database transaction. Details: %1 + chain executor + 未能提交数据库事务。详情:%1 - - + + CompletionHelper - - New row reference - 新的行引用 + + New row reference + 新的行引用 - - Old row reference - 旧的行引用 + + Old row reference + 旧的行引用 - - New table name - 新的表名 + + New table name + 新的表名 - - New index name - 新的索引名 + + New index name + 新的索引名 - - New view name - 新的视图名 + + New view name + 新的视图名 - - New trigger name - 新的触发器名 + + New trigger name + 新的触发器名 - - Table or column alias - 表或字段别名 + + Table or column alias + 表或列别名 - - transaction name - 事务名 + + transaction name + 事务名 - - New column name - 新字段名 + + New column name + 新列名 - - Column data type - 字段数据类型 + + Column data type + 列数据类型 - - Constraint name - 约束名 + + Constraint name + 约束名 - - Error message - 错误信息 + + Error message + 错误信息 - - Collation name - 排序规则名 + + Any word + 任意单词 - - Any word - 任意单词 + + Default database + 默认数据库 - - Default database - 默认数据库 + + Temporary objects database + 临时对象数据库 - - - Temporary objects database - 临时对象数据库 - - - + + ConfigImpl - - Could not start database transaction for deleting SQL history, therefore it's not deleted. - 无法为删除 SQL 历史开始数据库事务,因此它没有被删除。 + + Could not start database transaction for deleting SQL history, therefore it's not deleted. + 删除 SQL 历史的数据库事务启动失败,因此未删除。 - - Could not commit database transaction for deleting SQL history, therefore it's not deleted. - 无法为删除 SQL 历史提交数据库事务,因此它没有被删除。 + + Could not commit database transaction for deleting SQL history, therefore it's not deleted. + 删除 SQL 历史的数据库事务提交失败,因此未删除。 - - + + DbManagerImpl - - Could not add database %1: %2 - 无法添加数据库 %1:%2 + + Could not add database %1: %2 + 无法添加数据库 %1:%2 - - Database %1 could not be updated, because of an error: %2 - 数据库 %1 没有被更新,由于错误:%2 + + Database %1 could not be updated, because of an error: %2 + 数据库 %1 没有被更新,由于错误:%2 - - - Database file doesn't exist. - 数据库文件不存在 + + + Database file doesn't exist. + 数据库文件不存在。 - - - - No supporting plugin loaded. - + + + + No supporting plugin loaded. + 没有加载所需的插件。 - - Database could not be initialized. - 数据库无法被初始化。 + + Database could not be initialized. + 无法初始化数据库。 - - No suitable database driver plugin found. - 没有找到合适的数据库驱动插件 + + No suitable database driver plugin found. + 没有找到合适的数据库驱动插件。 - - + + DbObjectOrganizer - - - Error while creating table in target database: %1 - 在目标数据库中创建表时发生错误:%1 + + + Error while creating table in target database: %1 + 在目标数据库中创建表时发生错误:%1 - - Could not parse table. - 无法解析表。 + + Could not parse table. + 无法解析表。 - - Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. - + + Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. + 数据库 %1 无法附加到数据库 %2,因此将使用 SQLiteStudio 做中间人来复制表 %3 的数据。此方法用于大型表格可能会很慢,请耐心等待。 - - Error while copying data for table %1: %2 - 在从表 %1 中复制数据时发生错误:%2 + + Error while copying data for table %1: %2 + 在从表 %1 中复制数据时发生错误:%2 - - - - Error while copying data to table %1: %2 - 在向表 %1 中复制数据时发生错误:%2 + + + + Error while copying data to table %1: %2 + 在向表 %1 中复制数据时发生错误:%2 - - Error while dropping source view %1: %2 + + Error while dropping source view %1: %2 Tables, indexes, triggers and views copied to database %3 will remain. - - - - - Error while creating view in target database: %1 - 在目标数据库中创建视图时发生错误:%1 - - - - Error while creating index in target database: %1 - 在目标数据库中创建索引时发生错误:%1 - - - - Error while creating trigger in target database: %1 - 在目标数据库中创建触发器时发生错误:%1 + 在丢弃源视图 %1:%2 时出错 +已拷贝至数据库 %3 的表格、索引、触发器和视图将被保留。 - - - - Could not parse object '%1' in order to move or copy it. - + + Error while creating view in target database: %1 + 在目标数据库中创建视图时发生错误:%1 - - - DbVersionConverter - - Target file exists, but could not be overwritten. - 目标文件存在,但无法被覆写。 + + Error while creating index in target database: %1 + 在目标数据库中创建索引时发生错误:%1 - - Could not find proper database plugin to create target database. - 无法找到合适的数据库插件用以创建目标数据库。 + + Error while creating trigger in target database: %1 + 在目标数据库中创建触发器时发生错误:%1 - - Error while converting database: %1 - 转换数据库时发生错误:%1 + + + + Could not parse object '%1' in order to move or copy it. + 无法解析对象 '%1' 用于移动或复制。 - - + + DdlHistoryModel - - Database name - ddl history header - 数据库名 + + Database name + ddl history header + 数据库名 - - Database file - ddl history header - 数据库文件 + + Database file + ddl history header + 数据库文件 - - Date of execution - ddl history header - 执行日期 + + Date of execution + ddl history header + 执行日期 - - Changes - ddl history header - 影响 + + Changes + ddl history header + 影响 - - + + ExportManager - - Export plugin %1 doesn't support exporing query results. - 导出插件 %1 不支持导出查询结果。 + + Export plugin %1 doesn't support exporing query results. + 导出插件 %1 不支持导出查询结果。 - - Export plugin %1 doesn't support exporing tables. - 导出插件 %1 不支持导出表。 + + Export plugin %1 doesn't support exporing tables. + 导出插件 %1 不支持导出表。 - - Export plugin %1 doesn't support exporing databases. - 导出插件 %1 不支持导出数据库。 + + Export plugin %1 doesn't support exporing databases. + 导出插件 %1 不支持导出数据库。 - - Export format '%1' is not supported. Supported formats are: %2. - 导出格式 '%1' 不受支持,受支持的格式是:%2。 + + Export format '%1' is not supported. Supported formats are: %2. + 导出格式 '%1' 不受支持,受支持的格式是:%2。 - - Export to the clipboard was successful. - 成功导出到剪贴板。 + + Export to the clipboard was successful. + 成功导出到剪贴板。 - - Export to the file '%1' was successful. - 成功导出到文件 '%1'。 + + Export to the file '%1' was successful. + 成功导出到文件 '%1'。 - - Export was successful. - 导出成功。 + + Export was successful. + 导出成功。 - - Could not export to file %1. File cannot be open for writting. - 无法导出到文件 %1。文件无法以写模式打开。 + + Could not export to file %1. File cannot be open for writting. + 无法导出到文件 %1。文件无法以写模式打开。 - - + + ExportWorker - - Error while exporting query results: %1 - 导出查询结果时发生错误:%1 + + Error while exporting query results: %1 + 导出查询结果时发生错误:%1 - - Error while counting data column width to export from query results: %1 - + + Error while counting data column width to export from query results: %1 + 计算从查询结果来导出数据的列宽度时出错:%1 - - - Could not parse %1 in order to export it. It will be excluded from the export output. - 无法为导出解析 %1。因此它将不会被包含在导出输出中。 + + + Could not parse %1 in order to export it. It will be excluded from the export output. + 无法为导出解析 %1。因此它将不会被包含在导出输出中。 - - Error while reading data to export from table %1: %2 - + + Error while reading data to export from table %1: %2 + 从表 %1读取数据并导出时出错:%2 - - Error while counting data to export from table %1: %2 - + + Error while counting data to export from table %1: %2 + 计算从 %1: %2 表导出数据的数量时出错 - - Error while counting data column width to export from table %1: %2 - + + Error while counting data column width to export from table %1: %2 + 计算从 %1: %2 表导出数据的列宽度时出错 - - + + FunctionManagerImpl - - Invalid number of arguments to function '%1'. Expected %2, but got %3. - 无效的参数个数。对于函数 %1,需要 %2 个,但得到 %3 个。 + + Invalid number of arguments to function '%1'. Expected %2, but got %3. + 无效的参数个数。对于函数 %1,需要 %2 个,但得到 %3 个。 - - No such function registered in SQLiteStudio: %1(%2) - 没有这样的一个在 SQLiteStudio 中注册的函数:%1(%2) + + No such function registered in SQLiteStudio: %1(%2) + SQLiteStudio 中没有注册该函数:%1(%2) - - Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. - 函数 %1(%2) 以 %3 语言被注册。但是支持该语言的插件没有被正确加载。 + + Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. + 函数 %1(%2) 以 %3 语言注册,但是支持该语言的插件没有被正确加载。 - - Invalid regular expression pattern: %1 - 无效的正则表达式:%1 + + Invalid regular expression pattern: %1 + 无效的正则表达式模式:%1 - - - Could not open file %1 for reading: %2 - 无法以读模式打开文件 %1:%2 + + + Could not open file %1 for reading: %2 + 无法以读模式打开文件 %1:%2 - - Could not open file %1 for writting: %2 - 无法以写模式打开文件 %1:%2 + + Could not open file %1 for writting: %2 + 无法以写模式打开文件 %1:%2 - - Error while writting to file %1: %2 - 写入文件 %1 时发生错误:%2 + + Error while writting to file %1: %2 + 写入文件 %1 时发生错误:%2 - - Unsupported scripting language: %1 - 不支持的脚本语言:%1 + + Unsupported scripting language: %1 + 不支持的脚本语言:%1 - - + + GenericExportPlugin - - Could not initialize text codec for exporting. Using default codec: %1 - 无法为导出初始化文本编解码器。使用默认的编解码器:%1 + + Could not initialize text codec for exporting. Using default codec: %1 + 无法为导出初始化文本编解码器。使用默认的编解码器:%1 - - + + ImportManager - - Imported data to the table '%1' successfully. - 成功导入数据至表 %1 + + Imported data to the table '%1' successfully. Number of imported rows: %2 + 成功向表 '%1' 导入数据。影响行数:%2 - - + + ImportWorker - - No columns provided by the import plugin. - + + No columns provided by the import plugin. + 导入插件没有提供列。 - - Could not start transaction in order to import a data: %1 - 无法为导入数据开始事务:%1 + + Could not start transaction in order to import a data: %1 + 无法为导入数据开始事务:%1 - - Could not commit transaction for imported data: %1 - 无法为导入数据提交事务:%1 + + Could not commit transaction for imported data: %1 + 无法为导入数据提交事务:%1 - - Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. - 表 %1 的字段数少于即将导入数据的字段数。过多的字段将会被忽略。 + + Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. + 表 '%1' 的列少于即将导入数据的列数。过多的数据列将被忽略。 - - Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. - 表 %1 的字段数多于即将导入数据的字段数。一些字段将会被置为空值。 + + Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. + 表 '%1' 的列多于即将导入数据的列数。一些字段将被留空。 - - Could not create table to import to: %1 - + + Could not create table to import to: %1 + 未能创建导入所用的表:%1 - - - - Error while importing data: %1 - 导入数据时发生错误:%1 + + + + Error while importing data: %1 + 导入数据时发生错误:%1 - - - Interrupted. - import process status update - 中断。 + + + Interrupted. + import process status update + 中断。 - - Could not import data row number %1. The row was ignored. Problem details: %2 - 无法导入行数为 %1 的数据,该行将会被忽略。问题详情:%2 + + Could not import data row number %1. The row was ignored. Problem details: %2 + 无法导入行号 %1 的数据。该行将被忽略。问题详情:%2 - - + + PluginManagerImpl - - Cannot load plugin %1, because it's in conflict with plugin %2. - 无法加载插件 %1,因为它与这些插件冲突:%2。 + + Cannot load plugin %1, because it's in conflict with plugin %2. + 无法加载插件 %1,因为它与这些插件冲突:%2。 - - Cannot load plugin %1, because its dependency was not loaded: %2. - 无法加载插件 %1,因为它依赖的这些插件没有被加载:%2。 + + Cannot load plugin %1, because its dependency was not loaded: %2. + 无法加载插件 %1,因为它依赖的这些插件没有被加载:%2。 - - Cannot load plugin %1. Error details: %2 - 无法加载插件 %1。错误详情:52 + + Cannot load plugin %1. Error details: %2 + 无法加载插件 %1。错误详情:%2 - - Cannot load plugin %1 (error while initializing plugin). - 无法加载插件 %1(初始化插件时发生错误)。 + + Cannot load plugin %1 (error while initializing plugin). + 无法加载插件 %1(初始化插件时发生错误)。 - - min: %1 - plugin dependency version - 最小:%1 + + min: %1 + plugin dependency version + 最小:%1 - - max: %1 - plugin dependency version - 最大:%1 + + max: %1 + plugin dependency version + 最大:%1 - - + + PopulateConstant - - Constant - populate constant plugin name - 常量 + + Constant + populate constant plugin name + 常量 - - + + PopulateConstantConfig - - Constant value: - 常量值: + + Constant value: + 常量值: - - + + PopulateDictionary - - Dictionary - dictionary populating plugin name - 字典 + + Dictionary + dictionary populating plugin name + 字典 - - + + PopulateDictionaryConfig - - Dictionary file - 字典文件 + + Dictionary file + 字典文件 - - Pick dictionary file - 选择字典文件 + + Pick dictionary file + 选择字典文件 - - Word separator - 文本分隔符 + + Word separator + 单词分隔符 - - Whitespace - 空白 + + Whitespace + 空白 - - Line break - 换行 + + Line break + 换行 - - Method of using words - + + Method of using words + 单词用法 - - Ordered - 有序的 + + Ordered + 有序 - - Randomly - 随机地 + + Randomly + 随机 - - + + PopulateManager - - Table '%1' populated successfully. - + + Table '%1' populated successfully. + 表 '%1' 填充成功。 - - + + PopulateRandom - - Random number - 随机数 + + Random number + 随机数 - - + + PopulateRandomConfig - - Constant prefix - 常量前缀 + + Constant prefix + 固定前缀 - - No prefix - 无前缀 + + No prefix + 无前缀 - - Minimum value - 最小值 + + Minimum value + 最小值 - - Maximum value - 最大值 + + Maximum value + 最大值 - - Constant suffix - 常量后缀 + + Constant suffix + 固定后缀 - - No suffix - 无后缀 + + No suffix + 无后缀 - - + + PopulateRandomText - - Random text - 随机文本 + + Random text + 随机文本 - - + + PopulateRandomTextConfig - - Use characters from common sets: - + + Use characters from common sets: + 使用常用字符集合: - - Minimum length - 最小长度 + + Minimum length + 最小长度 - - Letters from a to z. - 字母a到z。 + + Letters from a to z. + 字母 a 到 z。 - - Alpha - + + Alpha + 英文字母 - - Numbers from 0 to 9. - 数字0到9 + + Numbers from 0 to 9. + 数字 0 到 9。 - - Numeric - 数字 + + Numeric + 数字 - - A whitespace, a tab and a new line character. - + + A whitespace, a tab and a new line character. + 空格、制表符和换行符。 - - Whitespace - 空白 + + Whitespace + 空白字符 - - Includes all above and all others. - + + Includes all above and all others. + 包括上述及其他所有。 - - Binary - 二进制 + + Binary + 二进制 - - Use characters from my custom set: - + + Use characters from my custom set: + 使用自定义字符集合: - - Maximum length - 最大长度 + + Maximum length + 最大长度 - - If you type some character multiple times, it's more likely to be used. - + + If you type some character multiple times, it's more likely to be used. + 字符被输入的次数越多,被使用的概率越大。 - - + + PopulateScript - - Script - 脚本 + + Script + 脚本 - - + + PopulateScriptConfig - - Initialization code (optional) - 初始化代码(可选) + + Initialization code (optional) + 初始化代码(可选) - - Per step code - 每一步代码 + + Per step code + 步进代码 - - Language - 语言 + + Language + 语言 - - Help - 帮助 + + Help + 帮助 - - + + PopulateSequence - - Sequence - 序列 + + Sequence + 序列 - - + + PopulateSequenceConfig - - Start value: - 开始值: + + Start value: + 起始值: - - Step: - 步数: + + Step: + 步进: - - + + PopulateWorker - - Could not start transaction in order to perform table populating. Error details: %1 - + + Could not start transaction in order to perform table populating. Error details: %1 + 未能启动执行表填充的事务。错误细节:%1 - - Error while populating table: %1 - + + Error while populating table: %1 + 表填充出错:%1 - - Could not commit transaction after table populating. Error details: %1 - + + Could not commit transaction after table populating. Error details: %1 + 未能提交表填充事务。错误细节:%1 - - + + QObject - - - Could not open database: %1 - 无法打开数据库:%1 + + Could not open file '%1' for reading: %2 + 无法以读模式打开文件 '%1':%2 - - - Result set expired or no row available. - + + Could not open database: %1 + 无法打开数据库:%1 - - - Could not load extension %1: %2 - 无法加载扩展 %1:%2 + + Result set expired or no row available. + 结果集过期或者无可用的行。 - - Could not close database: %1 - 无法关闭数据库:%1 + + + Could not load extension %1: %2 + 无法加载扩展 %1:%2 - - - - - - - - SQLite %1 does not support '%2' statement. - + + Could not run WAL checkpoint: %1 + Could not run WAL checkpoint: %1 - - SQLite %1 does not support '%2' statement, but the regular table can be created instead if you proceed. - + + Could not close database: %1 + 无法关闭数据库:%1 - - Could not parse statement: %1 -Error details: %2 - + + Could not attach database %1: %2 + 无法附加数据库 %1:%2 - - - - - SQLite %1 does not support the '%2' clause. Cannot convert '%3' statement with that clause. - + + + Incomplete query. + 不完整的查询。 - - SQLite %1 does not support the '%2' clause in the '%3' statement. - + + Parser stack overflow + 解析堆栈溢出 - - SQLite %1 does not support current date or time clauses in expressions. - + + Syntax error + 语法错误 - - SQLite %1 does not support row value clauses in expressions. - + + Could not open dictionary file %1 for reading. + 无法以读模式打开字典文件 %1。 - - - - SQLite %1 does not support '%2' clause in expressions. - + + Dictionary file must exist and be readable. + 字典文件必须存在且可读。 - - Could not attach database %1: %2 - 无法附加数据库 %1:%2 + + Maximum value cannot be less than minimum value. + 最大值不能小于最小值。 - - - Incomplete query. - + + Maximum length cannot be less than minimum length. + 最大长度不能小于最小长度。 - - - Parser stack overflow - 解析堆栈溢出 + + Custom character set cannot be empty. + 自定义字符集合不能为空。 - - - Syntax error - 语法错误 + + Could not find plugin to support scripting language: %1 + 无法找到提供脚本语言支持的插件:%1 - - Could not open dictionary file %1 for reading. - 无法以读模式打开字典文件 %1。 + + Error while executing populating initial code: %1 + 执行填充初始化代码时出错:%1 - - Dictionary file must exist and be readable. - 字典文件必须存在且可读。 + + Error while executing populating code: %1 + 执行填充代码时出错:%1 - - Maximum value cannot be less than minimum value. - 最大值不饿能小于最小值。 + + Select implementation language. + 选择实现语言。 - - Maximum length cannot be less than minimum length. - 最大长度不能小于最小长度。 + + Implementation code cannot be empty. + 实现代码不得为空。 - - Custom character set cannot be empty. - + + Could not resolve data source for column: %1 + 无法解析该列的数据源:%1 - - Could not find plugin to support scripting language: %1 - 无法找到插件去支持脚本语言:%1 + + Could not resolve table for column '%1'. + 无法解析表的列 '%1'。 - - Error while executing populating initial code: %1 - + + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Unable to create a file at following locations: %1. + 无法初始化配置文件。所有的配置更改和查询历史都将在应用程序重启时丢失。无法在下列位置创建文件:%1。 - - Error while executing populating code: %1 - + + General purpose + plugin category name + 一般用途 - - Select implementation language. - 选择实现语言。 + + Database support + plugin category name + 数据库支持 - - Implementation code cannot be empty. - 实现代码不得为空。 + + Code formatter + plugin category name + 代码格式化 - - Could not resolve data source for column: %1 - + + Scripting languages + plugin category name + 脚本语言 - - Could not resolve table for column '%1'. - + + Exporting + plugin category name + 导出 - - Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Tried to initialize the file at following localizations: %1. - + + Importing + plugin category name + 导入 - - General purpose - plugin category name - + + Table populating + plugin category name + 数据表填充 - - Database support - plugin category name - 数据库支持 + + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. + 表 %1 引用了表 %2,但由于解析表 %3 的 DDL 出现问题,不会为新的表定义更新该外键。 - - Code formatter - plugin category name - + + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. + 索引 %1 涵盖的所有列索引已消失。表修改后该索引也不会被重新触发。 - - Scripting languages - plugin category name - 脚本语言 + + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. + 处理触发器 %1 时出现问题。它可能没有被充分更新,这需要您的注意。 - - Exporting - plugin category name - 导出 + + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. + 触发器 %1 涵盖的所有列已消失。表修改后该触发器也不会被重新触发。 - - Importing - plugin category name - 导入 + + Cannot not update trigger %1 according to table %2 modification. + 无法根据表 %2 的修改更新触发器 %1。 - - Table populating - plugin category name - + + Cannot not update view %1 according to table %2 modifications. +The view will remain as it is. + 无法根据表 %2 的修改更新视图 %1。 +视图将保持原样不变。 - - Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. - + + + + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. + 更新 %2 触发器内的一个 %1 语句时出现问题。%1 子句中引用的表 %3 可能无法被正确修改。必要时需要手动更新触发器。 - - All columns indexed by the index %1 are gone. The index will not be recreated after table modification. - + + Could not parse DDL of the view to be created. Details: %1 + 无法解析要创建的视图的 DDL。详情:%1 - - There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. - + + Parsed query is not CREATE VIEW. It's: %1 + 解析的查询不是 CREATE VIEW。它是:%1 - - Cannot not update trigger %1 according to table %2 modification. - 无法根据表 %2 的修改去更新触发器 %1。 + + SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. + SQLiteStudio 无法解析新建视图时返回的列,因此无法告知哪些触发器可能在触发过程中失败。 + + + QueryExecutor - - - - There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. - + + Execution interrupted. + 执行被中断。 - - All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. - + + Database is not open. + 数据库没有打开。 - - Cannot not update view %1 according to table %2 modifications. -The view will remain as it is. - + + Only one query can be executed simultaneously. + 只能同时执行一个查询。 - - Could not parse DDL of the view to be created. Details: %1 - + + + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 + 执行 count(*) 查询时出错,因此将禁用数据分页。数据库错误详情:%1 - - Parsed query is not CREATE VIEW. It's: %1 - + + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. + SQLiteStudio 无法从查询中提取元数据。结果将不可编辑。 + + + ScriptingQtDbProxy - - SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. - + + No database available in current context, while called JavaScript's %1 command. + 调用 JavaScript 的 %1 命令期间,当前上下文没有可用的数据库。 - - Could not open file '%1' for reading: %2 - 无法以读模式打开文件 '%1':%2 + + Error from %1: %2 + 来自 %1 的错误:%2 - - - QueryExecutor + + + SqlFileExecutor - - Execution interrupted. - 执行被中断。 + + Could not execute SQL, because application has failed to start transaction: %1 + Could not execute SQL, because application has failed to start transaction: %1 - - Database is not open. - 数据库没有打开。 + + Execution from file cancelled. Any queries executed so far have been rolled back. + Execution from file cancelled. Any queries executed so far have been rolled back. - - Only one query can be executed simultaneously. - 只能同时执行一个查询。 + + Could not open file '%1' for reading: %2 + 无法以读模式打开文件 '%1':%2 - - - An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 - + + Could not execute SQL, because application has failed to commit the transaction: %1 + Could not execute SQL, because application has failed to commit the transaction: %1 - - SQLiteStudio was unable to extract metadata from the query. Results won't be editable. - SQLiteStudio 无法从查询中提取元数据。结果将不可编辑。 + + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. - - - ScriptingQtDbProxy - - No database available in current context, while called QtScript's %1 command. - + + Finished executing %1 queries in %2 seconds. + Finished executing %1 queries in %2 seconds. - - Error from %1: %2 - 来自 %1 的错误:%2 + + Could not execute SQL due to error. + Could not execute SQL due to error. - - + + SqlHistoryModel - - Database - sql history header - 数据库 + + Database + sql history header + 数据库 - - Execution date - sql history header - 执行代码 + + Execution date + sql history header + 执行日期 - - Time spent - sql history header - 耗时 + + Time spent + sql history header + 用时 - - Rows affected - sql history header - 影响的行数 + + Rows affected + sql history header + 影响行数 - - SQL - sql history header - SQL + + SQL + sql history header + SQL - - + + UpdateManager - - Updates installer executable is missing. - 缺少更新安装程序可执行文件。 - - - - - Unable to check for updates (%1) - 无法检查更新(%1) - - - - details are unknown - 无法得知详情 - - - - Unable to run updater application (%1). Please report this. - 无法运行更新安装器(%1)。请报告这个问题。 + + Could not check for updates (%1). + 检查更新失败 (%1)。 - + diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_zh_TW.ts b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_zh_TW.ts new file mode 100644 index 0000000..7bcf7ed --- /dev/null +++ b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_zh_TW.ts @@ -0,0 +1,1101 @@ + + + + + AbstractDb + + + + Cannot execute query on closed database. + 在已關閉的資料庫中, 無法執行查詢 + + + + Error attaching database %1: %2 + 無法附加資料庫 %1: %2 + + + + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + Failed to make full WAL checkpoint on database '%1'. Error returned from SQLite engine: %2 + + + + ChainExecutor + + + The database for executing queries was not defined. + chain executor + 此資料庫無法執行不被定義的查詢 + + + + The database for executing queries was not open. + chain executor + 此資料庫無法執行沒有被開啟的查詢 + + + + Could not disable foreign keys in the database. Details: %1 + chain executor + 無法disable foreign keys. Details: %1 + + + + Could not start a database transaction. Details: %1 + chain executor + 無法啟動資料庫交易. 請見詳細資料說明: %1 + + + + Interrupted + chain executor + 已中斷 + + + + Could not commit a database transaction. Details: %1 + chain executor + 無法啟動資料庫交易. 請見詳細資料說明: %1 + + + + CompletionHelper + + + New row reference + 新的 row 參考 + + + + Old row reference + 舊的 row 參考 + + + + New table name + 新的table 名稱 %1 + + + + New index name + 新的index名稱 + + + + New view name + 新的view名稱 + + + + New trigger name + 新的trigger名稱 + + + + Table or column alias + Table 或 Column 別名 + + + + transaction name + transaction 名稱 + + + + New column name + 新欄位名稱: + + + + Column data type + 欄位型別 + + + + Constraint name + Constraint名稱 + + + + Error message + 錯誤訊息 + + + + Any word + 任何字 + + + + Default database + 預設資料庫 + + + + Temporary objects database + 暫時的物件資料庫 + + + + ConfigImpl + + + Could not start database transaction for deleting SQL history, therefore it's not deleted. + 因無法啟動資料庫交易, 造成刪除SQL 歷史失敗 + + + + Could not commit database transaction for deleting SQL history, therefore it's not deleted. + 因無法commit資料庫交易, 造成刪除SQL 歷史失敗 + + + + DbManagerImpl + + + Could not add database %1: %2 + 無法新增資料庫 %1: %2 + + + + Database %1 could not be updated, because of an error: %2 + 資料庫 %1 無法被更新,因為 error: %2 + + + + + Database file doesn't exist. + 資料庫檔案不存在 + + + + + + No supporting plugin loaded. + 無法載入可支援的 plugin + + + + Database could not be initialized. + 無法開啟資料庫。 + + + + No suitable database driver plugin found. + 沒有適合的資料庫趨動程式 plugin + + + + DbObjectOrganizer + + + + Error while creating table in target database: %1 + 在資料庫 %1 建立 table時發生錯誤 + + + + Could not parse table. + 無法解析 table + + + + Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. + 資料庫 %1 無法被附加至資料庫 %2, 所以 table %3 的資料將會被SQLiteStudio複製一份作為mediator. 此方法對於大table會很慢,請耐心等待. + + + + Error while copying data for table %1: %2 + 當複製table %1: %2 時發生錯誤 + + + + + + Error while copying data to table %1: %2 + 當複製table %1: %2 時發生錯誤 + + + + Error while dropping source view %1: %2 +Tables, indexes, triggers and views copied to database %3 will remain. + Error while dropping source view %1: %2 +Tables, indexes, triggers and views copied to database %3 will remain. + + + + Error while creating view in target database: %1 + 在資料庫 %1 建立 table時發生錯誤 + + + + Error while creating index in target database: %1 + 在資料庫 %1 建立 index時發生錯誤 + + + + Error while creating trigger in target database: %1 + 在資料庫 %1 建立 trigger 時發生錯誤 + + + + + + Could not parse object '%1' in order to move or copy it. + 無法依序解析 object '%1' 是要移動 (move) 或是複製 (copy) + + + + DdlHistoryModel + + + Database name + ddl history header + 資料庫名稱 + + + + Database file + ddl history header + 資料庫檔案 + + + + Date of execution + ddl history header + 執行日期 + + + + Changes + ddl history header + 變更 + + + + ExportManager + + + Export plugin %1 doesn't support exporing query results. + Export plugin %1 doesn't support exporing query results. + + + + Export plugin %1 doesn't support exporing tables. + Export plugin %1 doesn't support exporing tables. + + + + Export plugin %1 doesn't support exporing databases. + Export plugin %1 doesn't support exporing databases. + + + + Export format '%1' is not supported. Supported formats are: %2. + Export format '%1' is not supported. Supported formats are: %2. + + + + Export to the clipboard was successful. + 已成功將資料匯出至剪貼簿 + + + + Export to the file '%1' was successful. + Export to the file '%1' was successful. + + + + Export was successful. + 匯出成功。 + + + + Could not export to file %1. File cannot be open for writting. + Could not export to file %1. File cannot be open for writting. + + + + ExportWorker + + + Error while exporting query results: %1 + 當載入查詢結果 %1 時發生錯誤 + + + + Error while counting data column width to export from query results: %1 + Error while counting data column width to export from query results: %1 + + + + + Could not parse %1 in order to export it. It will be excluded from the export output. + Could not parse %1 in order to export it. It will be excluded from the export output. + + + + Error while reading data to export from table %1: %2 + Error while reading data to export from table %1: %2 + + + + Error while counting data to export from table %1: %2 + Error while counting data to export from table %1: %2 + + + + Error while counting data column width to export from table %1: %2 + Error while counting data column width to export from table %1: %2 + + + + FunctionManagerImpl + + + Invalid number of arguments to function '%1'. Expected %2, but got %3. + Invalid number of arguments to function '%1'. Expected %2, but got %3. + + + + No such function registered in SQLiteStudio: %1(%2) + 於 SQLiteStudio: %1(%2) ,找不到此function 被註冊的紀錄 + + + + Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. + Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. + + + + Invalid regular expression pattern: %1 + 無效的正規表示式:%1 + + + + + Could not open file %1 for reading: %2 + 無法開啟檔案 %1 以讀取:%2 + + + + Could not open file %1 for writting: %2 + 無法開啟檔案 %1 以寫入:%2 + + + + Error while writting to file %1: %2 + 當寫入檔案 %1:%2時發生錯誤。 + + + + Unsupported scripting language: %1 + 不支援的scripting language: %1 + + + + GenericExportPlugin + + + Could not initialize text codec for exporting. Using default codec: %1 + Could not initialize text codec for exporting. Using default codec: %1 + + + + ImportManager + + + Imported data to the table '%1' successfully. Number of imported rows: %2 + Imported data to the table '%1' successfully. Number of imported rows: %2 + + + + ImportWorker + + + No columns provided by the import plugin. + No columns provided by the import plugin. + + + + Could not start transaction in order to import a data: %1 + Could not start transaction in order to import a data: %1 + + + + Could not commit transaction for imported data: %1 + Could not commit transaction for imported data: %1 + + + + Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. + Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. + + + + Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. + Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. + + + + Could not create table to import to: %1 + Could not create table to import to: %1 + + + + + + Error while importing data: %1 + 載入資料 %1 時發生錯誤。 + + + + + Interrupted. + import process status update + 已中斷 + + + + Could not import data row number %1. The row was ignored. Problem details: %2 + Could not import data row number %1. The row was ignored. Problem details: %2 + + + + PluginManagerImpl + + + Cannot load plugin %1, because it's in conflict with plugin %2. + Cannot load plugin %1, because it's in conflict with plugin %2. + + + + Cannot load plugin %1, because its dependency was not loaded: %2. + Cannot load plugin %1, because its dependency was not loaded: %2. + + + + Cannot load plugin %1. Error details: %2 + Cannot load plugin %1. Error details: %2 + + + + Cannot load plugin %1 (error while initializing plugin). + Cannot load plugin %1 (error while initializing plugin). + + + + min: %1 + plugin dependency version + 最小值: %1 + + + + max: %1 + plugin dependency version + 最大值: %1 + + + + PopulateConstant + + + Constant + populate constant plugin name + 常數 + + + + PopulateConstantConfig + + + Constant value: + 常數值: + + + + PopulateDictionary + + + Dictionary + dictionary populating plugin name + 字典 + + + + PopulateDictionaryConfig + + + Dictionary file + 字典檔案 + + + + Pick dictionary file + 選擇字典檔 + + + + Word separator + 文字分隔字元 + + + + Whitespace + 空格 + + + + Line break + 換行 + + + + Method of using words + 使用字元的方法 + + + + Ordered + 排列 + + + + Randomly + 隨機 + + + + PopulateManager + + + Table '%1' populated successfully. + 表格 '%1' 已成功擴展 + + + + PopulateRandom + + + Random number + 亂數 + + + + PopulateRandomConfig + + + Constant prefix + 常數的字首文字 + + + + No prefix + 無字首文字 + + + + Minimum value + 最小值 + + + + Maximum value + 最大值 + + + + Constant suffix + 常數的字尾文字 + + + + No suffix + 無字尾文字 + + + + PopulateRandomText + + + Random text + 亂數文字 + + + + PopulateRandomTextConfig + + + Use characters from common sets: + 使用通用集合中的字元 + + + + Minimum length + 最小長度 + + + + Letters from a to z. + 從a到z的文字 + + + + Alpha + 透明度 + + + + Numbers from 0 to 9. + 從0到9的數字 + + + + Numeric + 數值 + + + + A whitespace, a tab and a new line character. + A whitespace, a tab and a new line character. + + + + Whitespace + 空格 + + + + Includes all above and all others. + 包含以下及所有. + + + + Binary + 二進制(Binary) + + + + Use characters from my custom set: + 使用自訂集合中的字元 + + + + Maximum length + 最大長度 + + + + If you type some character multiple times, it's more likely to be used. + If you type some character multiple times, it's more likely to be used. + + + + PopulateScript + + + Script + 腳本 Script + + + + PopulateScriptConfig + + + Initialization code (optional) + 初始化的程式片段 (optional) + + + + Per step code + Per step code + + + + Language + 語言設定 + + + + Help + 幫助 + + + + PopulateSequence + + + Sequence + 序列 + + + + PopulateSequenceConfig + + + Start value: + 起始值: + + + + Step: + 步骤: + + + + PopulateWorker + + + Could not start transaction in order to perform table populating. Error details: %1 + 當匯出table後無法依序啟動交易. 錯誤訊息 %1 + + + + Error while populating table: %1 + 當產生 table %1 時發生錯誤 + + + + Could not commit transaction after table populating. Error details: %1 + 當滙出table後無法commit transaction. 錯誤訊息 %1 + + + + QObject + + + Could not open file '%1' for reading: %2 + 無法開啟檔案 '%1' 為了讀取: %2 + + + + Could not open database: %1 + 無法開啟資料庫 %1。 + + + + Result set expired or no row available. + 結果集已過期或是無有效的資料 + + + + + Could not load extension %1: %2 + 無法載入extension %1: %2 + + + + Could not run WAL checkpoint: %1 + Could not run WAL checkpoint: %1 + + + + Could not close database: %1 + 無法關閉資料庫 %1 + + + + Could not attach database %1: %2 + 無法附加資料庫 %1: %2 + + + + + Incomplete query. + 不完整的查詢 + + + + Parser stack overflow + Parser 溢位 + + + + Syntax error + 語法錯誤 + + + + Could not open dictionary file %1 for reading. + 無法開啟檔案 %1 以讀取。 + + + + Dictionary file must exist and be readable. + 字典檔必須存在並且可被讀取 + + + + Maximum value cannot be less than minimum value. + 最大值不能小於最小值 + + + + Maximum length cannot be less than minimum length. + 最大值不能小於最小值 + + + + Custom character set cannot be empty. + 自訂字元集不能為空白 + + + + Could not find plugin to support scripting language: %1 + 無法找到plugin以支援scripting language: %1 + + + + Error while executing populating initial code: %1 + 當產生initial code: %1 時發生錯誤 + + + + Error while executing populating code: %1 + 當產生code: %1 時發生錯誤 + + + + Select implementation language. + 請選擇實作的語系 + + + + Implementation code cannot be empty. + Implementation code 不能是空的 + + + + Could not resolve data source for column: %1 + 無法解析資料來源, Column: %1 + + + + Could not resolve table for column '%1'. + 無法解析table, Column: '%1'. + + + + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Unable to create a file at following locations: %1. + 無法初始化設定檔. 在應用程式重啟時,任何設定檔的異動及查詢歷史將遺失. 無法建立檔案在以下位置: %1 + + + + General purpose + plugin category name + 通用目的說明 + + + + Database support + plugin category name + 資料庫支援 + + + + Code formatter + plugin category name + Code formatter + + + + Scripting languages + plugin category name + Scripting languages + + + + Exporting + plugin category name + 匯出中 + + + + Importing + plugin category name + 匯入中... + + + + Table populating + plugin category name + Table 產生中 + + + + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. + 當解析 table %3 的DDL時候發生了錯誤,因為Table %1 參照 Table %2 ,影響 table 中的foreign key 無法成功更新, + + + + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. + All columns indexed by the index %1 已遺失. 在 table 修改後, 此 index 並不會建立. + + + + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. + 當處理trigger %1時發生了問題。請注意此 trigger 可能尚未更新完成。 + + + + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. + 被trigger %1 包含的所有欄位異動均失效. 在 table 修改後, 此 Trigger 亦無法被建立. + + + + Cannot not update trigger %1 according to table %2 modification. + 根據 table %2 的修改內容,導致無法更新 trigger %1 + + + + Cannot not update view %1 according to table %2 modifications. +The view will remain as it is. + 因 table %2 的異動導致無法更新 view %1 +view 將保留原始內容 + + + + + + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. + 更新 trigger %2 中的SQL %1 時發生了錯誤,有可能是SQL %1 中參考了某張不能被修改的 table %3. 若有需要的話,如有需要請手動更新此trigger。 + + + + Could not parse DDL of the view to be created. Details: %1 + 無法解析此view的DDL, 詳細資料請見: %1 + + + + Parsed query is not CREATE VIEW. It's: %1 + 解析後的查詢並非CREATE VIEW, 它是: %1 + + + + SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. + SQLiteStudio 無法從回傳的新view中解析columns, 亦無法確認trigger 在重建程序中將導致失敗的狀況. + + + + QueryExecutor + + + Execution interrupted. + 執行中斷 + + + + Database is not open. + 資料庫未開啟 + + + + Only one query can be executed simultaneously. + 儘有單一查詢可被冋時執行 + + + + + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 + 當執行count(*) 查詢時發生錯誤, 資料分頁功能亦被停用. 詳細錯誤資訊來自於資料庫: %1 + + + + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. + SQLiteStudio無法從此查詢解析metadata. 結果亦無法編輯 + + + + ScriptingQtDbProxy + + + No database available in current context, while called JavaScript's %1 command. + 當呼叫JavaScript %1 時 ,無法確認資料庫是否有效。 + + + + Error from %1: %2 + 從 %1: %2 引發的錯誤 + + + + SqlFileExecutor + + + Could not execute SQL, because application has failed to start transaction: %1 + Could not execute SQL, because application has failed to start transaction: %1 + + + + Execution from file cancelled. Any queries executed so far have been rolled back. + Execution from file cancelled. Any queries executed so far have been rolled back. + + + + Could not open file '%1' for reading: %2 + 無法開啟檔案 '%1' 為了讀取: %2 + + + + Could not execute SQL, because application has failed to commit the transaction: %1 + Could not execute SQL, because application has failed to commit the transaction: %1 + + + + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. + Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. + + + + Finished executing %1 queries in %2 seconds. + Finished executing %1 queries in %2 seconds. + + + + Could not execute SQL due to error. + Could not execute SQL due to error. + + + + SqlHistoryModel + + + Database + sql history header + 資料庫 + + + + Execution date + sql history header + 執行時間 + + + + Time spent + sql history header + 所花費的時間 + + + + Rows affected + sql history header + 被影響的列數 + + + + SQL + sql history header + SQL + + + + UpdateManager + + + Could not check for updates (%1). + 不能檢查 for updates (%1). + + + diff --git a/SQLiteStudio3/create_macosx_bundle.sh b/SQLiteStudio3/create_macosx_bundle.sh index b6cdd3a..e1a8683 100755 --- a/SQLiteStudio3/create_macosx_bundle.sh +++ b/SQLiteStudio3/create_macosx_bundle.sh @@ -21,7 +21,7 @@ if [ "$?" -ne 0 ]; then exit 1 fi -cd $1/SQLiteStudio +cd "$1/SQLiteStudio" rm -rf SQLiteStudio.app/Contents/Frameworks rm -rf SQLiteStudio.app/Contents/PlugIns @@ -39,7 +39,7 @@ cp -RP styles/* SQLiteStudio.app/Contents/PlugIns/styles cp -RP lib*SQLiteStudio*.dylib SQLiteStudio.app/Contents/Frameworks # CLI paths -qtcore_path=`otool -L sqlitestudiocli | grep QtCore | awk '{print $1;}'` +qtcore_path=`otool -L sqlitestudiocli | awk '/QtCore/ {print $1;}'` new_qtcore_path="@rpath/QtCore.framework/Versions/5/QtCore" cp -P sqlitestudiocli SQLiteStudio.app/Contents/MacOS @@ -57,7 +57,7 @@ install_name_tool -change libsqlite3.0.dylib "@rpath/libsqlite3.0.dylib" SQLiteS cdir=`pwd` cd ../../../lib/ libdir=`pwd` -cd $cdir +cd "$cdir" echo "lib:" ls -l ../../../lib/ @@ -75,16 +75,16 @@ ls -l SQLiteStudio.app/Contents/Frameworks # Plugin paths function fixPluginPaths() { - for f in `ls $1` + for f in `ls "$1"` do - PLUGIN_FILE=$1/$f - if [ -f $PLUGIN_FILE ]; then + PLUGIN_FILE="$1/$f" + if [ -f "$PLUGIN_FILE" ]; then echo "Fixing paths for plugin $PLUGIN_FILE" - install_name_tool -change libcoreSQLiteStudio.1.dylib "@rpath/libcoreSQLiteStudio.1.dylib" $PLUGIN_FILE - install_name_tool -change libguiSQLiteStudio.1.dylib "@rpath/libguiSQLiteStudio.1.dylib" $PLUGIN_FILE + install_name_tool -change libcoreSQLiteStudio.1.dylib "@rpath/libcoreSQLiteStudio.1.dylib" "$PLUGIN_FILE" + install_name_tool -change libguiSQLiteStudio.1.dylib "@rpath/libguiSQLiteStudio.1.dylib" "$PLUGIN_FILE" fi - if [ -d $PLUGIN_FILE ]; then - fixPluginPaths $PLUGIN_FILE + if [ -d "$PLUGIN_FILE" ]; then + fixPluginPaths "$PLUGIN_FILE" fi done } @@ -93,7 +93,7 @@ fixPluginPaths SQLiteStudio.app/Contents/PlugIns function replaceInfo() { cdir=`pwd` echo Replacing Info.plist - cd $1/SQLiteStudio + cd "$1/SQLiteStudio" VERSION=`SQLiteStudio.app/Contents/MacOS/sqlitestudiocli -v | awk '{print $2}'` YEAR=`date '+%Y'` @@ -102,32 +102,43 @@ function replaceInfo() { echo "New plist:" cat Info.plist.new mv Info.plist.new Info.plist - cd $cdir + cd "$cdir" } if [ "$3" == "dmg" ]; then - replaceInfo $1 - $qt_deploy_bin SQLiteStudio.app -dmg + replaceInfo "$1" + "$qt_deploy_bin" SQLiteStudio.app -dmg elif [ "$3" == "dist" ]; then - replaceInfo $1 + replaceInfo "$1" - $qt_deploy_bin SQLiteStudio.app -dmg -executable=SQLiteStudio.app/Contents/MacOS/SQLiteStudio -always-overwrite -verbose=3 + "$qt_deploy_bin" SQLiteStudio.app -dmg -executable=SQLiteStudio.app/Contents/MacOS/SQLiteStudio -always-overwrite -verbose=3 - cd $1/SQLiteStudio + cd "$1/SQLiteStudio" VERSION=`SQLiteStudio.app/Contents/MacOS/sqlitestudiocli -v | awk '{print $2}'` mv SQLiteStudio.dmg sqlitestudio-$VERSION.dmg hdiutil attach sqlitestudio-$VERSION.dmg hdiutil detach /Volumes/SQLiteStudio - + + # Convert image to RW and attach hdiutil convert sqlitestudio-$VERSION.dmg -format UDRW -o sqlitestudio-rw-$VERSION.dmg hdiutil attach -readwrite sqlitestudio-rw-$VERSION.dmg - cp -RPf $libdir/libsqlite3.0.dylib /Volumes/SQLiteStudio/SQLiteStudio.app/Contents/Frameworks/ + + # Fix sqlite3 file in the image + cp -RPf "$libdir/libsqlite3.0.dylib" /Volumes/SQLiteStudio/SQLiteStudio.app/Contents/Frameworks/ + + # Fix python dependencies in the image + rm -f /Volumes/SQLiteStudio/SQLiteStudio.app/Contents/Frameworks/libpython* + rm -f /Volumes/SQLiteStudio/SQLiteStudio.app/Contents/Frameworks/libint* + install_name_tool -change "@loader_path/../Frameworks/libpython3.9.dylib" libpython3.9.dylib /Volumes/SQLiteStudio/SQLiteStudio.app/Contents/PlugIns/libScriptingPython.dylib + + # Detach RW image hdiutil detach /Volumes/SQLiteStudio hdiutil compact sqlitestudio-rw-$VERSION.dmg + # Convert image back to RO and compressed rm -f sqlitestudio-$VERSION.dmg hdiutil convert sqlitestudio-rw-$VERSION.dmg -format UDZO -o sqlitestudio-$VERSION.dmg rm -f sqlitestudio-rw-$VERSION.dmg @@ -139,6 +150,6 @@ elif [ "$3" == "dist" ]; then echo "Done." else - replaceInfo $1 - $qt_deploy_bin SQLiteStudio.app + "$qt_deploy_bin" SQLiteStudio.app + replaceInfo "$1" fi diff --git a/SQLiteStudio3/create_source_dist.sh b/SQLiteStudio3/create_source_dist.sh index 8fb9d4b..e631d3a 100755 --- a/SQLiteStudio3/create_source_dist.sh +++ b/SQLiteStudio3/create_source_dist.sh @@ -24,7 +24,7 @@ gzip -9 ../sqlitestudio-$VERSION.tar zip -r ../sqlitestudio-$VERSION.zip SQLiteStudio3 Plugins -cd $OLDDIR +cd "$OLDDIR" mv $TEMP/sqlitestudio-$VERSION.zip ../output mv $TEMP/sqlitestudio-$VERSION.tar.gz ../output @@ -35,4 +35,4 @@ rm -rf $TEMP echo "Source packages stored in `pwd`" -cd $OLDDIR +cd "$OLDDIR" diff --git a/SQLiteStudio3/dirs.pri b/SQLiteStudio3/dirs.pri deleted file mode 100644 index 777c640..0000000 --- a/SQLiteStudio3/dirs.pri +++ /dev/null @@ -1,50 +0,0 @@ -OUTPUT_DIR_NAME = output -export(OUTPUT_DIR_NAME) - -DESTDIR = $$PWD/../$$OUTPUT_DIR_NAME/SQLiteStudio -OBJECTS_DIR = $$PWD/../$$OUTPUT_DIR_NAME/build -MOC_DIR = $$PWD/../$$OUTPUT_DIR_NAME/build -UI_DIR = $$PWD/../$$OUTPUT_DIR_NAME/build - -LIBS += -L$$DESTDIR - -macx: { - QMAKE_CXXFLAGS += -Wno-gnu-zero-variadic-macro-arguments -Wno-overloaded-virtual - INCLUDEPATH += $$PWD/../../include - LIBS += -L$$PWD/../../lib -} - -win32: { - INCLUDEPATH += $$PWD/../../include $$PWD/../../include/quazip - LIBS += -L$$PWD/../../lib -} - -INCLUDEPATH += $$PWD/coreSQLiteStudio -DEPENDPATH += $$PWD/coreSQLiteStudio - -contains(QT, gui): { - INCLUDEPATH += $$PWD/guiSQLiteStudio $$PWD/../$$OUTPUT_DIR_NAME/build/guiSQLiteStudio - DEPENDPATH += $$PWD/guiSQLiteStudio -} - -win32|macx: { - CONFIG += portable -} - -portable { - QMAKE_LFLAGS += -Wl,-rpath,. - linux: { - LIBS += -L$$DESTDIR/lib - } -} - -unix: { - isEmpty(LIBDIR) { - LIBDIR = /usr/lib - } - export(LIBDIR) - isEmpty(BINDIR) { - BINDIR = /usr/bin - } - export(BINDIR) -} diff --git a/SQLiteStudio3/guiSQLiteStudio/common/datawidgetmapper.h b/SQLiteStudio3/guiSQLiteStudio/common/datawidgetmapper.h index 8ee4636..2174f54 100644 --- a/SQLiteStudio3/guiSQLiteStudio/common/datawidgetmapper.h +++ b/SQLiteStudio3/guiSQLiteStudio/common/datawidgetmapper.h @@ -27,8 +27,8 @@ class DataWidgetMapper : public QObject private: struct MappingEntry { - QWidget* widget = nullptr; - int columnIndex = 0; + QWidget* widget = nullptr; + int columnIndex = 0; QString propertyName; }; diff --git a/SQLiteStudio3/guiSQLiteStudio/common/dbcombobox.cpp b/SQLiteStudio3/guiSQLiteStudio/common/dbcombobox.cpp index 303a37a..273aab3 100644 --- a/SQLiteStudio3/guiSQLiteStudio/common/dbcombobox.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/common/dbcombobox.cpp @@ -8,6 +8,7 @@ DbComboBox::DbComboBox(QWidget* parent) : QComboBox(parent) dbComboModel->setCombo(this); setModel(dbComboModel); setEditable(false); + connect(dbComboModel, SIGNAL(listCleared()), this, SLOT(handleListCleared())); } DbListModel* DbComboBox::getModel() const @@ -24,3 +25,8 @@ Db* DbComboBox::currentDb() const { return dbComboModel->getDb(currentIndex()); } + +void DbComboBox::handleListCleared() +{ + emit currentTextChanged(QString()); +} diff --git a/SQLiteStudio3/guiSQLiteStudio/common/dbcombobox.h b/SQLiteStudio3/guiSQLiteStudio/common/dbcombobox.h index 39814a6..602c20e 100644 --- a/SQLiteStudio3/guiSQLiteStudio/common/dbcombobox.h +++ b/SQLiteStudio3/guiSQLiteStudio/common/dbcombobox.h @@ -9,6 +9,8 @@ class Db; class DbComboBox : public QComboBox { + Q_OBJECT + public: explicit DbComboBox(QWidget* parent = nullptr); @@ -18,6 +20,9 @@ class DbComboBox : public QComboBox private: DbListModel* dbComboModel = nullptr; + + private slots: + void handleListCleared(); }; #endif // DBCOMBOBOX_H diff --git a/SQLiteStudio3/guiSQLiteStudio/common/extactioncontainer.cpp b/SQLiteStudio3/guiSQLiteStudio/common/extactioncontainer.cpp index 1203582..bb49985 100644 --- a/SQLiteStudio3/guiSQLiteStudio/common/extactioncontainer.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/common/extactioncontainer.cpp @@ -129,7 +129,7 @@ void ExtActionContainer::createAction(int action, QAction* qAction, const QObjec qAction->setParent(owner); actionMap[action] = qAction; - QObject::connect(qAction, SIGNAL(triggered()), receiver, slot); + QObject::connect(qAction, SIGNAL(triggered(bool)), receiver, slot); container->addAction(qAction); } diff --git a/SQLiteStudio3/guiSQLiteStudio/common/extactioncontainer.h b/SQLiteStudio3/guiSQLiteStudio/common/extactioncontainer.h index 159d4e5..dbec385 100644 --- a/SQLiteStudio3/guiSQLiteStudio/common/extactioncontainer.h +++ b/SQLiteStudio3/guiSQLiteStudio/common/extactioncontainer.h @@ -1,7 +1,6 @@ #ifndef extactionCONTAINER_H #define extactionCONTAINER_H -#include "iconmanager.h" #include "config_builder.h" #include "extactionprototype.h" #include @@ -18,6 +17,7 @@ class QActionGroup; class QToolBar; class QSignalMapper; class QMenu; +class Icon; #define CFG_SHORTCUTS_METANAME "Shortcuts" @@ -58,7 +58,21 @@ class QMenu; } \ } -#define GET_SHORTCUTS(Type) ExtActionContainer::getAllShortcutSequences(Cfg::getShortcuts##Type##Instance()->ShortcutsCategory##Type) +/** + * @def Finds shortcut config category instance. + * Finds CfgCategory containing CfgEntry instances of all shortcuts defined for class \arg Type. + * For example: GET_SHORTCUTS_CATEGORY(EditorWindow)->getTitle() + * @return CfgCategory instance of a shortcuts configuration used for specified class. + */ +#define GET_SHORTCUTS_CATEGORY(Type) Cfg::getShortcuts##Type##Instance()->ShortcutsCategory##Type + +/** + * @def Finds shortcut config entry instance. + * Finds CfgEntry used to store shortcut for enumerated action with \arg ActionName in the class \arg Type. + * For example: GET_SHORTCUT_ENTRY(EditorWindow, EXEC_QUERY)->get().toString() + * @return CfgEntry instance of a shortcut config entry. + */ +#define GET_SHORTCUT_ENTRY(Type, ActionName) Cfg::getShortcuts##Type##Instance()->ShortcutsCategory##Type.getEntryByName(#ActionName) class GUI_API_EXPORT ExtActionContainer { @@ -224,7 +238,7 @@ void ExtActionContainer::removeAction(ExtActionPrototype* action, int toolbar) return; ActionDetails* dets = nullptr; - for (ActionDetails* d : extraActions[clsName][toolbar]) + for (ActionDetails*& d : extraActions[clsName][toolbar]) { if (d->action == action) { @@ -248,7 +262,7 @@ QList ExtActionContainer::getInstances() { QList typedInstances; T* typedInstance = nullptr; - for (ExtActionContainer* instance : instances) + for (ExtActionContainer*& instance : instances) { typedInstance = dynamic_cast(instance); if (typedInstance) diff --git a/SQLiteStudio3/guiSQLiteStudio/common/extlineedit.cpp b/SQLiteStudio3/guiSQLiteStudio/common/extlineedit.cpp index 2ac6531..325e93c 100644 --- a/SQLiteStudio3/guiSQLiteStudio/common/extlineedit.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/common/extlineedit.cpp @@ -56,15 +56,21 @@ void ExtLineEdit::setClearButtonEnabled(bool enable) return; } connect(clearAction, SIGNAL(triggered()), this, SLOT(checkForValueErased())); + connect(this, SIGNAL(textEdited(QString)), this, SLOT(checkForValueErased(QString))); } } void ExtLineEdit::checkForValueErased() { - if (text().isEmpty()) - return; + nextClearingIsFromButton = true; +} + +void ExtLineEdit::checkForValueErased(const QString& text) +{ + if (nextClearingIsFromButton && text.isEmpty()) + emit valueErased(); - emit valueErased(); + nextClearingIsFromButton = false; } bool ExtLineEdit::getExpanding() const diff --git a/SQLiteStudio3/guiSQLiteStudio/common/extlineedit.h b/SQLiteStudio3/guiSQLiteStudio/common/extlineedit.h index df2eaf6..81f189a 100644 --- a/SQLiteStudio3/guiSQLiteStudio/common/extlineedit.h +++ b/SQLiteStudio3/guiSQLiteStudio/common/extlineedit.h @@ -34,10 +34,12 @@ class GUI_API_EXPORT ExtLineEdit : public QLineEdit bool expanding = false; int expandingMinWidth = 0; int expandingMaxWidth = -1; + bool nextClearingIsFromButton = false; private slots: void handleTextChanged(); void checkForValueErased(); + void checkForValueErased(const QString &text); signals: void valueErased(); diff --git a/SQLiteStudio3/guiSQLiteStudio/common/immediatetooltip.cpp b/SQLiteStudio3/guiSQLiteStudio/common/immediatetooltip.cpp new file mode 100644 index 0000000..45531be --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/common/immediatetooltip.cpp @@ -0,0 +1,43 @@ +#include "immediatetooltip.h" +#include "common/unused.h" +#include +#include +#include +#include + +ImmediateTooltip::ImmediateTooltip(QWidget* parent) + : QObject(parent) +{ + parent->setMouseTracking(true); + parent->installEventFilter(this); +} + +bool ImmediateTooltip::eventFilter(QObject* obj, QEvent* event) +{ + UNUSED(obj); + switch (event->type()) + { + case QEvent::Enter: + { + QEnterEvent* e = dynamic_cast(event); + QToolTip::showText(e->globalPos(), toolTip); + break; + } + case QEvent::Leave: + QToolTip::hideText(); + break; + default: + break; + } + return false; +} + +const QString& ImmediateTooltip::getToolTip() const +{ + return toolTip; +} + +void ImmediateTooltip::setToolTip(const QString& newToolTip) +{ + toolTip = newToolTip; +} diff --git a/SQLiteStudio3/guiSQLiteStudio/common/immediatetooltip.h b/SQLiteStudio3/guiSQLiteStudio/common/immediatetooltip.h new file mode 100644 index 0000000..27ffacc --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/common/immediatetooltip.h @@ -0,0 +1,22 @@ +#ifndef IMMEDIATETOOLTIP_H +#define IMMEDIATETOOLTIP_H + +#include + +class ImmediateTooltip : public QObject +{ + Q_OBJECT + public: + explicit ImmediateTooltip(QWidget *parent = nullptr); + + const QString& getToolTip() const; + void setToolTip(const QString& newToolTip); + + protected: + bool eventFilter(QObject *obj, QEvent *event) override; + + private: + QString toolTip; +}; + +#endif // IMMEDIATETOOLTIP_H diff --git a/SQLiteStudio3/guiSQLiteStudio/common/mouseshortcut.cpp b/SQLiteStudio3/guiSQLiteStudio/common/mouseshortcut.cpp new file mode 100644 index 0000000..51fb524 --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/common/mouseshortcut.cpp @@ -0,0 +1,77 @@ +#include "mouseshortcut.h" +#include +#include +#include + +MouseShortcut::MouseShortcut(ClickType type, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, QObject* parent) + : QObject(parent), type(type), buttons(buttons), modifiers(modifiers) +{ +} + +MouseShortcut* MouseShortcut::forButton(ClickType type, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, QObject* receiver, const char* slot, QObject* parent) +{ + MouseShortcut* instance = new MouseShortcut(type, buttons, modifiers, parent); + connect(instance, SIGNAL(activated(QPoint)), receiver, slot); + parent->installEventFilter(instance); + return instance; +} + +MouseShortcut* MouseShortcut::forWheel(Qt::KeyboardModifiers modifiers, QObject* parent) +{ + return new MouseShortcut(Wheel, Qt::MouseButtons(), modifiers, parent); +} + +MouseShortcut* MouseShortcut::forWheel(Qt::KeyboardModifiers modifiers, QObject* parent, const char* slot) +{ + MouseShortcut* instance = new MouseShortcut(Wheel, Qt::MouseButtons(), modifiers, parent); + connect(instance, SIGNAL(wheelActivated(int)), parent, slot); + parent->installEventFilter(instance); + return instance; +} + +MouseShortcut* MouseShortcut::forWheel(Qt::KeyboardModifiers modifiers, QObject* receiver, const char* slot, QObject* parent) +{ + MouseShortcut* instance = new MouseShortcut(Wheel, Qt::MouseButtons(), modifiers, parent); + connect(instance, SIGNAL(wheelActivated(int)), receiver, slot); + parent->installEventFilter(instance); + return instance; +} + +void MouseShortcut::enableDebug() +{ + debug = true; +} + +bool MouseShortcut::eventFilter(QObject* object, QEvent* event) +{ + if (debug && event->type() != QEvent::Paint) + qDebug() << event; + + if ((event->type() == QEvent::MouseButtonPress && type == SingleClick && attributesMatch(event)) || + (event->type() == QEvent::MouseButtonDblClick && type == DoubleClick && attributesMatch(event))) + { + emit activated(dynamic_cast(event)->globalPos()); + return true; + } + + if (event->type() == QEvent::Wheel && type == Wheel) + { + QWheelEvent* wheelEvent = dynamic_cast(event); + if (modifiers == wheelEvent->modifiers()) + { + emit wheelActivated(wheelEvent->angleDelta().y()); + return true; + } + } + + return QObject::eventFilter(object, event); +} + +bool MouseShortcut::attributesMatch(QEvent* event) +{ + QMouseEvent* mouseEvent = dynamic_cast(event); + if (!mouseEvent) + return false; + + return (buttons.testFlag(mouseEvent->button())) && (modifiers == mouseEvent->modifiers()); +} diff --git a/SQLiteStudio3/guiSQLiteStudio/common/mouseshortcut.h b/SQLiteStudio3/guiSQLiteStudio/common/mouseshortcut.h new file mode 100644 index 0000000..e400a24 --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/common/mouseshortcut.h @@ -0,0 +1,59 @@ +#ifndef MOUSESHORTCUT_H +#define MOUSESHORTCUT_H + +#include + +class MouseShortcut : public QObject +{ + Q_OBJECT + + public: + enum ClickType + { + SingleClick, + DoubleClick, + Wheel + }; + + static MouseShortcut* forButton(MouseShortcut::ClickType type, + Qt::MouseButtons buttons, + Qt::KeyboardModifiers modifiers, + QObject* receiver, + const char* slot, + QObject *parent); + + static MouseShortcut* forWheel(Qt::KeyboardModifiers modifiers, + QObject *parent = 0); + + static MouseShortcut* forWheel(Qt::KeyboardModifiers modifiers, + QObject *parent, + const char *slot); + static MouseShortcut* forWheel(Qt::KeyboardModifiers modifiers, + QObject* receiver, + const char* slot, + QObject* parent); + + void enableDebug(); + + protected: + MouseShortcut(MouseShortcut::ClickType type, + Qt::MouseButtons buttons, + Qt::KeyboardModifiers modifiers, + QObject *parent = 0); + + bool eventFilter(QObject *object, QEvent *event); + + private: + bool attributesMatch(QEvent* event); + + MouseShortcut::ClickType type; + Qt::MouseButtons buttons; + Qt::KeyboardModifiers modifiers; + bool debug = false; + + signals: + void activated(const QPoint& pos); + void wheelActivated(int delta); +}; + +#endif // MOUSESHORTCUT_H diff --git a/SQLiteStudio3/guiSQLiteStudio/completer/completerview.cpp b/SQLiteStudio3/guiSQLiteStudio/completer/completerview.cpp index c154b14..a209c42 100644 --- a/SQLiteStudio3/guiSQLiteStudio/completer/completerview.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/completer/completerview.cpp @@ -1,6 +1,9 @@ #include "completerview.h" #include "completeritemdelegate.h" +#include "sqleditor.h" +#include #include +#include CompleterView::CompleterView(QWidget *parent) : QListView(parent) @@ -46,6 +49,11 @@ void CompleterView::focusOutEvent(QFocusEvent* e) void CompleterView::keyPressEvent(QKeyEvent* e) { + QKeySequence hotkey = GET_SHORTCUTS_CATEGORY(SqlEditor).COMPLETE.get(); + QKeySequence theKey = QKeySequence(e->key() | e->modifiers()); + if (hotkey == theKey) + return; + QString txt = e->text(); if (!txt.isEmpty() && txt[0].isPrint()) { diff --git a/SQLiteStudio3/guiSQLiteStudio/completer/completerwindow.cpp b/SQLiteStudio3/guiSQLiteStudio/completer/completerwindow.cpp index 89a0848..68ca58d 100644 --- a/SQLiteStudio3/guiSQLiteStudio/completer/completerwindow.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/completer/completerwindow.cpp @@ -4,16 +4,20 @@ #include "common/unused.h" #include "sqleditor.h" #include "common/utils_sql.h" +#include "services/codesnippetmanager.h" +#include "sqlitestudio.h" #include +#include #include +#include #include +#include CompleterWindow::CompleterWindow(SqlEditor *parent) : QDialog(parent, Qt::FramelessWindowHint), ui(new Ui::CompleterWindow), sqlEditor(parent) { - ui->setupUi(this); init(); } @@ -24,6 +28,11 @@ CompleterWindow::~CompleterWindow() void CompleterWindow::init() { + ui->setupUi(this); + + modeChangeShortcut = new QShortcut(GET_SHORTCUTS_CATEGORY(SqlEditor).COMPLETE.get(), this); + snippetSignalMapper = new QSignalMapper(this); + model = new CompleterModel(this); ui->list->setModel(model); model->setCompleterView(ui->list); @@ -36,9 +45,42 @@ void CompleterWindow::init() connect(ui->list, SIGNAL(backspace()), this, SIGNAL(backspacePressed())); connect(ui->list, SIGNAL(left()), this, SIGNAL(leftPressed())); connect(ui->list, SIGNAL(right()), this, SIGNAL(rightPressed())); + connect(modeChangeShortcut, SIGNAL(activated()), this, SLOT(modeChangeRequested())); + connect(ui->snippets, SIGNAL(itemDoubleClicked(QListWidgetItem*)), this, SLOT(snippetDoubleClicked(QListWidgetItem*))); +#if (QT_VERSION >= QT_VERSION_CHECK(5, 15, 0)) + connect(snippetSignalMapper, SIGNAL(mappedInt(int)), this, SLOT(snippetHotkeyPressed(int))); +#else + connect(snippetSignalMapper, SIGNAL(mapped(int)), this, SLOT(snippetHotkeyPressed(int))); +#endif reset(); } +void CompleterWindow::refreshSnippets() +{ + ui->snippets->clear(); + for (QShortcut*& sc : snippetShortcuts) + delete sc; + + snippetShortcuts.clear(); + + int i = 0; + for (CodeSnippetManager::CodeSnippet* snip : CODESNIPPETS->getSnippets()) + { + ui->snippets->addItem(snip->name); + if (!snip->hotkey.isEmpty()) + { + QShortcut* shortcut = new QShortcut(snip->hotkey, ui->snippets); + snippetShortcuts << shortcut; + snippetSignalMapper->setMapping(shortcut, i); + connect(shortcut, SIGNAL(activated()), snippetSignalMapper, SLOT(map())); + } + i++; + } + + if (ui->snippets->count() > 0) + ui->snippets->setCurrentRow(0); +} + void CompleterWindow::reset() { model->clear(); @@ -110,7 +152,17 @@ bool CompleterWindow::immediateResolution() return false; } -ExpectedTokenPtr CompleterWindow::getSelected() +CompleterWindow::Mode CompleterWindow::getMode() const +{ + return static_cast(ui->modeStack->currentIndex()); +} + +QString CompleterWindow::getSnippetName() const +{ + return ui->snippets->currentItem()->text(); +} + +ExpectedTokenPtr CompleterWindow::getSelected() const { QModelIndex current = ui->list->currentIndex(); if (!current.isValid()) @@ -228,10 +280,42 @@ void CompleterWindow::currentRowChanged(const QModelIndex& current, const QModel ui->status->showMessage(getStatusMsg(current)); } +void CompleterWindow::modeChangeRequested() +{ + ui->modeStack->setCurrentIndex((ui->modeStack->currentIndex() + 1) % ui->modeStack->count()); + + switch (ui->modeStack->currentIndex()) + { + case SNIPPETS: + ui->status->showMessage(tr("Insert a code snippet")); + refreshSnippets(); + break; + case CODE: + ui->status->showMessage(getStatusMsg(ui->list->currentIndex())); + break; + } +} + +void CompleterWindow::snippetHotkeyPressed(int index) +{ + ui->snippets->setCurrentRow(index); + accept(); +} + +void CompleterWindow::snippetDoubleClicked(QListWidgetItem* item) +{ + UNUSED(item); + accept(); +} + void CompleterWindow::showEvent(QShowEvent*e) { + ui->modeStack->setCurrentIndex(0); QDialog::showEvent(e); // A hack for Gnome3 to give this widget a focus. Harmless for others. ui->list->activateWindow(); + + // Refresh hotkey if changed + modeChangeShortcut->setKey(GET_SHORTCUTS_CATEGORY(SqlEditor).COMPLETE.get()); } diff --git a/SQLiteStudio3/guiSQLiteStudio/completer/completerwindow.h b/SQLiteStudio3/guiSQLiteStudio/completer/completerwindow.h index ec7256c..6e1f087 100644 --- a/SQLiteStudio3/guiSQLiteStudio/completer/completerwindow.h +++ b/SQLiteStudio3/guiSQLiteStudio/completer/completerwindow.h @@ -10,27 +10,37 @@ namespace Ui { class CompleterWindow; } - +class QListWidgetItem; +class QSignalMapper; class CompleterModel; class QSizeGrip; class SqlEditor; +class QShortcut; class GUI_API_EXPORT CompleterWindow : public QDialog { Q_OBJECT public: + enum Mode + { + CODE, + SNIPPETS + }; + explicit CompleterWindow(SqlEditor* parent = 0); ~CompleterWindow(); void reset(); void setData(const CompletionHelper::Results& completionResults); void setDb(Db* db); - ExpectedTokenPtr getSelected(); + ExpectedTokenPtr getSelected() const; int getNumberOfCharsToRemove(); void shringFilterBy(int chars); void extendFilterBy(const QString& text); bool immediateResolution(); + Mode getMode() const; + QString getSnippetName() const; protected: void changeEvent(QEvent *e); @@ -42,6 +52,7 @@ class GUI_API_EXPORT CompleterWindow : public QDialog QString getStatusMsg(const QModelIndex& index); void updateFilter(); void init(); + void refreshSnippets(); Ui::CompleterWindow *ui = nullptr; CompleterModel* model = nullptr; @@ -49,11 +60,17 @@ class GUI_API_EXPORT CompleterWindow : public QDialog QString filter; Db* db = nullptr; bool wrappedFilter = false; + QShortcut* modeChangeShortcut = nullptr; + QList snippetShortcuts; + QSignalMapper* snippetSignalMapper = nullptr; private slots: void focusOut(); void doubleClicked(const QModelIndex& index); void currentRowChanged(const QModelIndex& current, const QModelIndex& previous); + void modeChangeRequested(); + void snippetHotkeyPressed(int index); + void snippetDoubleClicked(QListWidgetItem* item); signals: void textTyped(const QString& text); diff --git a/SQLiteStudio3/guiSQLiteStudio/completer/completerwindow.ui b/SQLiteStudio3/guiSQLiteStudio/completer/completerwindow.ui index d5ce987..8944640 100644 --- a/SQLiteStudio3/guiSQLiteStudio/completer/completerwindow.ui +++ b/SQLiteStudio3/guiSQLiteStudio/completer/completerwindow.ui @@ -16,18 +16,72 @@ true - + 0 - + + 0 + + + 0 + + + 0 + + 0 - - - true - + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + true + + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + diff --git a/SQLiteStudio3/guiSQLiteStudio/configmapper.cpp b/SQLiteStudio3/guiSQLiteStudio/configmapper.cpp index b36d985..704104b 100644 --- a/SQLiteStudio3/guiSQLiteStudio/configmapper.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/configmapper.cpp @@ -293,14 +293,14 @@ void ConfigMapper::applyConfigToWidget(QWidget* widget, const QHashgetFullKey()]; if (!configValue.isValid()) - configValue = cfgEntry->getDefultValue(); + configValue = cfgEntry->getDefaultValue(); } else if (cfgEntry->isPersistable()) { // In case this is a persistable config, we should have everything in the config hash, which is just one, initial database query. // If we don't, than we don't want to call get(), because it will cause one more query to the database for it. // We go with the default value. - configValue = cfgEntry->getDefultValue(); + configValue = cfgEntry->getDefaultValue(); } else { @@ -329,18 +329,36 @@ void ConfigMapper::applyConfigToWidget(QWidget* widget, CfgEntry* cfgEntry, cons void ConfigMapper::applyConfigDefaultValueToWidget(QWidget* widget) { - QString keyStr = widget->property(CFG_MODEL_PROPERTY).toString(); + CfgEntry* key = getConfigForWidget(widget); + if (!key) + { + qWarning() << "Asked to apply config value to widget" << widget + << "but it's config entry key was not found."; + return; + } + + applyConfigToWidget(widget, key, key->getDefaultValue()); +} + +CfgEntry* ConfigMapper::getConfigForWidget(QWidget* widget) +{ + QString keyStr = getConfigFullKeyForWidget(widget); QHash allConfigEntries = getAllConfigEntries(); if (!allConfigEntries.contains(keyStr)) { - qWarning() << "Asked to apply config value to widget" << widget << "but it's config entry key was not found:" << keyStr; - return; + qWarning() << "Config entry with key not found:" << keyStr; + return nullptr; } - CfgEntry* key = allConfigEntries[keyStr]; - applyConfigToWidget(widget, key, key->getDefultValue()); + return allConfigEntries[keyStr]; } +QString ConfigMapper::getConfigFullKeyForWidget(QWidget* widget) +{ + return widget->property(CFG_MODEL_PROPERTY).toString(); +} + + void ConfigMapper::handleSpecialWidgets(QWidget* widget, const QHash& allConfigEntries) { handleConfigComboBox(widget, allConfigEntries); @@ -372,7 +390,7 @@ bool ConfigMapper::applyCustomConfigToWidget(CfgEntry* key, QWidget* widget, con handlers += internalCustomConfigWidgets; handlers += PLUGINS->getLoadedPlugins(); - for (CustomConfigWidgetPlugin* handler : handlers) + for (CustomConfigWidgetPlugin*& handler : handlers) { if (handler->isConfigForWidget(key, widget)) { @@ -389,11 +407,11 @@ bool ConfigMapper::connectCustomNotifierToWidget(QWidget* widget, CfgEntry* cfgE handlers += internalCustomConfigWidgets; handlers += PLUGINS->getLoadedPlugins(); - for (CustomConfigWidgetPlugin* handler : handlers) + for (CustomConfigWidgetPlugin*& handler : handlers) { if (handler->isConfigForWidget(cfgEntry, widget)) { - connect(widget, handler->getModifiedNotifier(), this, SIGNAL(modified())); + connect(widget, handler->getModifiedNotifier(), this, SLOT(handleCustomModified())); if (widget->property(CFG_NOTIFY_PROPERTY).isValid() && widget->property(CFG_NOTIFY_PROPERTY).toBool()) connect(widget, handler->getModifiedNotifier(), this, SLOT(uiConfigEntryChanged())); @@ -430,7 +448,7 @@ bool ConfigMapper::saveCustomConfigFromWidget(QWidget* widget, CfgEntry* key) handlers += internalCustomConfigWidgets; handlers += PLUGINS->getLoadedPlugins(); - for (CustomConfigWidgetPlugin* plugin : handlers) + for (CustomConfigWidgetPlugin*& plugin : handlers) { if (plugin->isConfigForWidget(key, widget)) { @@ -470,7 +488,7 @@ QHash ConfigMapper::getAllConfigEntries() if (allEntries.isEmpty()) { QString key; - for (CfgMain* cfgMain : cfgMainList) + for (CfgMain*& cfgMain : cfgMainList) { QHashIterator catIt(cfgMain->getCategories()); while (catIt.hasNext()) @@ -627,7 +645,13 @@ void ConfigMapper::handleModified() handleDependencyChange(widget); - emit modified(); + emit modified(widget); +} + +void ConfigMapper::handleCustomModified() +{ + QWidget* widget = dynamic_cast(sender()); + emit modified(widget); } void ConfigMapper::entryChanged(const QVariant& newValue) diff --git a/SQLiteStudio3/guiSQLiteStudio/configmapper.h b/SQLiteStudio3/guiSQLiteStudio/configmapper.h index ca70918..64b17ec 100644 --- a/SQLiteStudio3/guiSQLiteStudio/configmapper.h +++ b/SQLiteStudio3/guiSQLiteStudio/configmapper.h @@ -24,6 +24,9 @@ class GUI_API_EXPORT ConfigMapper : public QObject void saveFromWidget(QWidget* widget, bool noTransaction = false); void setInternalCustomConfigWidgets(const QList& value); bool isPersistant() const; + void applyConfigDefaultValueToWidget(QWidget *widget); + QList getAllConfigWidgets(QWidget* parent); + CfgEntry* getConfigForWidget(QWidget* widget); /** * @brief Scans widget and binds widgets to proper config objects. @@ -74,11 +77,11 @@ class GUI_API_EXPORT ConfigMapper : public QObject void clearExtraWidgets(); void ignoreWidget(QWidget* w); void removeIgnoredWidget(QWidget* w); + void saveFromWidget(QWidget* widget, CfgEntry* cfgEntry); private: void applyConfigToWidget(QWidget *widget, const QHash& allConfigEntries, const QHash &config); void applyConfigToWidget(QWidget *widget, CfgEntry* cfgEntry, const QVariant& configValue); - void applyConfigDefaultValueToWidget(QWidget *widget); void handleSpecialWidgets(QWidget *widget, const QHash& allConfigEntries); void handleConfigComboBox(QWidget *widget, const QHash& allConfigEntries); void connectCommonNotifierToWidget(QWidget *widget, CfgEntry* key); @@ -86,7 +89,6 @@ class GUI_API_EXPORT ConfigMapper : public QObject void applyCommonConfigToWidget(QWidget *widget, const QVariant& value, CfgEntry* cfgEntry); bool applyCustomConfigToWidget(CfgEntry* key, QWidget *widget, const QVariant& value); void saveWidget(QWidget* widget, const QHash& allConfigEntries); - void saveFromWidget(QWidget* widget, CfgEntry* cfgEntry); void saveCommonConfigFromWidget(QWidget *widget, CfgEntry* key); bool saveCustomConfigFromWidget(QWidget *widget, CfgEntry* key); QVariant getCommonConfigValueFromWidget(QWidget *widget, CfgEntry* key, bool& ok); @@ -96,11 +98,11 @@ class GUI_API_EXPORT ConfigMapper : public QObject CfgEntry* getConfigEntry(QWidget* widget, const QHash& allConfigEntries); CfgEntry* getEntryForProperty(QWidget* widget, const char* propertyName, const QHash& allConfigEntries); QHash getAllConfigEntries(); - QList getAllConfigWidgets(QWidget* parent); void handleDependencySettings(QWidget* widget); void handleBoolDependencySettings(const QString& boolDependency, QWidget* widget); void handleDependencyChange(QWidget* widget); bool handleBoolDependencyChange(QWidget* widget); + QString getConfigFullKeyForWidget(QWidget* widget); QWidget* configDialogWidget = nullptr; QList cfgMainList; @@ -122,13 +124,14 @@ class GUI_API_EXPORT ConfigMapper : public QObject private slots: void handleModified(); + void handleCustomModified(); void entryChanged(const QVariant& newValue); void uiConfigEntryChanged(); void updateConfigComboModel(const QVariant& value); void notifiableConfigKeyChanged(); signals: - void modified(); + void modified(QWidget* widget); void notifyEnabledWidgetModified(QWidget* widget, CfgEntry* key, const QVariant& value); }; diff --git a/SQLiteStudio3/guiSQLiteStudio/datagrid/fkcombobox.cpp b/SQLiteStudio3/guiSQLiteStudio/datagrid/fkcombobox.cpp new file mode 100644 index 0000000..b9ca7b7 --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/datagrid/fkcombobox.cpp @@ -0,0 +1,345 @@ +#include "fkcombobox.h" +#include "common/unused.h" +#include "datagrid/sqlqueryitem.h" +#include "schemaresolver.h" +#include "services/notifymanager.h" +#include "sqlquerymodel.h" +#include "sqlqueryview.h" +#include "uiconfig.h" +#include +#include +#include +#include + +FkComboBox::FkComboBox(QWidget* parent, int dropDownViewMinWidth) + : QComboBox(parent), dropDownViewMinWidth(dropDownViewMinWidth) +{ + init(); +} + +QString FkComboBox::getSqlForFkEditor(Db* db, SqlQueryModelColumn* columnModel, const QVariant& currentValue) +{ + static_qstring(sql, "SELECT %4, %1 FROM %2%3"); + static_qstring(currValueTpl, "(%1 == %2) AS %3"); + static_qstring(currNullValueTpl, "(%1 IS NULL) AS %2"); + static_qstring(dbColTpl, "%1 AS %2"); + static_qstring(conditionTpl, "%1.%2 = %3.%4"); + static_qstring(conditionPrefixTpl, " WHERE %1"); + + QStringList selectedCols; + QStringList fkConditionTables; + QStringList fkConditionCols; + QStringList srcCols; + SchemaResolver resolver(db); + + QList fkList = columnModel->getFkConstraints(); + int i = 0; + QString src; + QString fullSrcCol; + QString col; + QString firstSrcCol; + QStringList usedNames; + for (SqlQueryModelColumn::ConstraintFk*& fk : fkList) + { + col = wrapObjIfNeeded(fk->foreignColumn); + src = wrapObjIfNeeded(fk->foreignTable); + if (i == 0) + { + firstSrcCol = col; + fullSrcCol = src + "." + col; + selectedCols << dbColTpl.arg(fullSrcCol, wrapObjIfNeeded(columnModel->column)); + } + + if (fkConditionTables.contains(src, Qt::CaseInsensitive)) + continue; + + srcCols = resolver.getTableColumns(src); + for (QString& srcCol : srcCols) + { + if (fk->foreignColumn.compare(srcCol, Qt::CaseInsensitive) == 0) + continue; // Exclude matching column. We don't want the same column several times. + + fullSrcCol = src + "." + wrapObjIfNeeded(srcCol); + selectedCols << fullSrcCol; + usedNames << srcCol; + } + + fkConditionCols << col; + fkConditionTables << src; + + i++; + } + + QStringList conditions; + QString firstSrc = fkConditionTables.first(); + QString firstCol = fkConditionCols.first(); + for (i = 1; i < fkConditionTables.size(); i++) + { + src = fkConditionTables[i]; + col = fkConditionCols[i]; + conditions << conditionTpl.arg(firstSrc, firstCol, src, col); + } + + QString conditionsStr; + if (!conditions.isEmpty()) { + conditionsStr = conditionPrefixTpl.arg(conditions.join(", ")); + } + + // Current value column (will be 1 for row which matches current cell value) + QString currValueColName = generateUniqueName("curr", usedNames); + QString currValueExpr = currentValue.isNull() ? + currNullValueTpl.arg(firstSrcCol, currValueColName) : + currValueTpl.arg(firstSrcCol, wrapValueIfNeeded(currentValue), currValueColName); + + return sql.arg( + selectedCols.join(", "), + fkConditionTables.join(", "), + conditionsStr, + currValueExpr + ); +} + +void FkComboBox::init(Db* db, SqlQueryModelColumn* columnModel) +{ + this->columnModel = columnModel; + comboModel->setDb(db); +} + +void FkComboBox::setValue(const QVariant& value) +{ + bool doExecQuery = (sourceValue != value || comboModel->getQuery().isNull()); + sourceValue = value; + setCurrentText(value.toString()); + if (!value.isNull() && isEditable()) + lineEdit()->selectAll(); + + if (doExecQuery) + { + comboModel->setQuery(getSql()); + if (!comboModel->getQuery().isNull()) + comboModel->executeQuery(); + } +} + +QVariant FkComboBox::getValue(bool* manualValueUsed, bool* ok) const +{ + manualValueUsed && (*manualValueUsed = false); + ok && (*ok = true); + SqlQueryModel* cbModel = dynamic_cast(model()); + if (cbModel->isExecutionInProgress() || !cbModel->isAllDataLoaded()) + { + ok && (*ok = false); + return QVariant(); + } + + int idx = currentIndex(); + QModelIndex cbCol0Index = cbModel->index(idx, 0); + QString cbText = currentText(); + bool customValue = false; + + if (currentIndex() > -1 && !cbModel->itemFromIndex(cbCol0Index)) + { + // Inserted QStandardItem by QComboBox, meaning custom value (out of dropdown model) + // With Qt 5.15 (maybe earlier) QComboBox started inserting QStandardItems and setting them as currentIndex. + // Here we're extracting this inserted value and remembering this is the custom value. + cbText = cbModel->data(cbCol0Index).toString(); + customValue = true; + } + + // Regardless if its preselected value or custom value, we need to honor empty=null setting + if (CFG_UI.General.KeepNullWhenEmptyValue.get() && sourceValue.isNull() && cbText.isEmpty()) + { + ok && (*ok = false); + return QVariant(); + } + + // Out of index? So it's custom value. Set it and it's done. + // If we deal with custom value inserted as item, we also just set it and that's it. + if (idx < 0 || idx >= cbModel->rowCount() || customValue) + { + manualValueUsed && (*manualValueUsed = true); + return cbText; + } + + // Otherwise we will have at least 2 columns. 1st column is hidden and is meta-column holding 1/0 (1 for value matching current cell value) + QList row = cbModel->getRow(idx); + if (row.size() < 2 || !row[1]) + { + // This happens when inexisting value is confirmed with "Enter" key, + // and rowCount() is apparently incremented, but items not yet. + // Very likely this was addressed in recent Qt versions (5.15 or a bit earlier) + // which resulted in value insertion and the "customValue" flag above in this method. + qCritical() << "Confirmed FK edition, but there is no combo item in the row for index" << idx << ", CB row count is" << cbModel->rowCount(); + manualValueUsed && (*manualValueUsed = true); + return cbText; + } + + return row[1]->getValue(); +} + +void FkComboBox::init() +{ + setEditable(true); + + // Prepare combo dropdown view. + comboView = new SqlQueryView(); + comboView->setSimpleBrowserMode(true); + comboView->setMaximumWidth(QGuiApplication::primaryScreen()->size().width()); + + connect(comboView->horizontalHeader(), &QHeaderView::sectionResized, this, [this/*, comboView, model*/](int, int, int) + { + // This line is supposed to check if the source SqlQueryModel has already finished loading, + // before updating combo geometry, but I'm not sure at the moment, why & how would that ever need to be checked. + // Leaving it here for now, in case some bug appears related to this. +// if (!model->isAllDataLoaded()) +// return; + + updateComboViewGeometry(false); + }); + + comboModel = new SqlQueryModel(comboView); + comboModel->setView(comboView); + + // When execution is done, update combo. + connect(comboModel, SIGNAL(aboutToLoadResults()), this, SLOT(fkDataAboutToLoad())); + connect(comboModel, SIGNAL(executionSuccessful()), this, SLOT(fkDataReady())); + connect(comboModel, SIGNAL(executionFailed(QString)), this, SLOT(fkDataFailed(QString))); + connect(this, SIGNAL(currentTextChanged(QString)), this, SLOT(notifyValueModified())); + + // Setup combo, model, etc. + setModel(comboModel); + setView(comboView); + setModelColumn(1); + view()->viewport()->installEventFilter(new FkComboShowFilter(this)); + view()->verticalScrollBar()->installEventFilter(new FkComboShowFilter(this)); + + comboModel->setHardRowLimit(MAX_ROWS_FOR_FK); + comboModel->setCellDataLengthLimit(FK_CELL_LENGTH_LIMIT); + comboModel->setAsyncMode(true); + + comboView->verticalHeader()->setVisible(false); + comboView->horizontalHeader()->setVisible(true); + comboView->setSelectionMode(QAbstractItemView::SingleSelection); + comboView->setSelectionBehavior(QAbstractItemView::SelectRows); +} + +void FkComboBox::updateComboViewGeometry(bool initial) const +{ + int wd = getFkViewHeaderWidth(true); + comboView->setMinimumWidth(qMin(qMax(dropDownViewMinWidth, wd), comboView->maximumWidth())); + + if (initial && wd < comboView->minimumWidth()) + { + // First time, upon showing up + int currentSize = comboView->horizontalHeader()->sectionSize(1); + int gap = comboView->minimumWidth() - wd; + comboView->horizontalHeader()->resizeSection(1, currentSize + gap); + } + + QWidget* container = comboView->parentWidget(); + if (container->width() > comboView->minimumWidth()) + { + container->setMaximumWidth(comboView->minimumWidth()); + container->resize(comboView->minimumWidth(), container->height()); + } +} + +int FkComboBox::getFkViewHeaderWidth(bool includeScrollBar) const +{ + int wd = comboView->horizontalHeader()->length(); + if (includeScrollBar && comboView->verticalScrollBar()->isVisible()) + wd += comboView->verticalScrollBar()->width(); + + return wd; +} + +void FkComboBox::fkDataAboutToLoad() +{ + beforeLoadValue = currentText(); + + // Not editable combo needs to keep track of initially pre-loading value by using source value + if (!isEditable() && beforeLoadValue.isNull() && !sourceValue.isNull()) + beforeLoadValue = sourceValue.toString(); +} + +void FkComboBox::fkDataReady() +{ + disableValueChangeNotifications = true; + + comboView->horizontalHeader()->setSectionHidden(0, true); + comboView->resizeColumnsToContents(); + comboView->resizeRowsToContents(); + + updateComboViewGeometry(true); + + if (comboModel->rowCount() > 0) + { + QModelIndex startIdx = comboModel->index(0, modelColumn()); + QModelIndex endIdx = comboModel->index(comboModel->rowCount() - 1, modelColumn()); + QModelIndexList idxList = comboModel->findIndexes(startIdx, endIdx, SqlQueryItem::DataRole::VALUE, beforeLoadValue, 1, true); + + if (idxList.size() > 0) + { + setCurrentIndex(idxList.first().row()); + } + else + { + setCurrentIndex(-1); + setEditText(beforeLoadValue); + } + } + else + setEditText(beforeLoadValue); + + disableValueChangeNotifications = false; +} + +void FkComboBox::fkDataFailed(const QString& errorText) +{ + notifyWarn(tr("Cannot edit this cell. Details: %1").arg(errorText)); +} + +void FkComboBox::notifyValueModified() +{ + if (disableValueChangeNotifications || !comboModel->isAllDataLoaded()) + return; + + oldValue = currentText(); + emit valueModified(); +} + +FkComboBox::FkComboShowFilter::FkComboShowFilter(FkComboBox* parentCombo) + : QObject(parentCombo) +{ +} + +bool FkComboBox::FkComboShowFilter::eventFilter(QObject* obj, QEvent* event) +{ + UNUSED(obj); + if (event->type() == QEvent::Show) + dynamic_cast(parent())->updateComboViewGeometry(true); + + return false; +} + +QString FkComboBox::getSql() const +{ + if (columnModel == nullptr) { + qWarning() << "Called FkComboBox::getSqlForFkEditor() without column model defined. Tried to setValue() before init()?"; + return QString(); + } + + return getSqlForFkEditor(comboModel->getDb(), columnModel, sourceValue); +} + +qlonglong FkComboBox::getRowCountForFkEditor(Db* db, const QString& query, bool* isError) +{ + static_qstring(tpl, "SELECT count(*) FROM (%1)"); + + QString sql = tpl.arg(query); + SqlQueryPtr result = db->exec(sql); + if (isError) + *isError = result->isError(); + + return result->getSingleCell().toLongLong(); +} diff --git a/SQLiteStudio3/guiSQLiteStudio/datagrid/fkcombobox.h b/SQLiteStudio3/guiSQLiteStudio/datagrid/fkcombobox.h new file mode 100644 index 0000000..8cb22a5 --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/datagrid/fkcombobox.h @@ -0,0 +1,60 @@ +#ifndef FKCOMBOBOX_H +#define FKCOMBOBOX_H + +#include + +class SqlQueryModelColumn; +class SqlQueryModel; +class SqlQueryView; +class Db; + +class FkComboBox : public QComboBox +{ + Q_OBJECT + + public: + FkComboBox(QWidget *parent, int dropDownViewMinWidth = -1); + + static QString getSqlForFkEditor(Db* db, SqlQueryModelColumn* columnModel, const QVariant& currentValue); + static qlonglong getRowCountForFkEditor(Db* db, const QString& query, bool* isError); + + static const qlonglong MAX_ROWS_FOR_FK = 10000L; + static const int FK_CELL_LENGTH_LIMIT = 30; + + void init(Db* db, SqlQueryModelColumn* columnModel); + void setValue(const QVariant& value); + QVariant getValue(bool* manualValueUsed = nullptr, bool* ok = nullptr) const; + + private: + class FkComboShowFilter : public QObject + { + public: + explicit FkComboShowFilter(FkComboBox* parentCombo); + bool eventFilter(QObject *obj, QEvent *event); + }; + + void init(); + void updateComboViewGeometry(bool initial) const; + int getFkViewHeaderWidth(bool includeScrollBar) const; + QString getSql() const; + + int dropDownViewMinWidth; + SqlQueryView* comboView = nullptr; + SqlQueryModel* comboModel = nullptr; + SqlQueryModelColumn* columnModel = nullptr; + QString beforeLoadValue; + QVariant sourceValue; + bool disableValueChangeNotifications = false; + QString oldValue; + + private slots: + void fkDataAboutToLoad(); + void fkDataReady(); + void fkDataFailed(const QString& errorText); + void notifyValueModified(); + + signals: + void valueModified(); +}; + +#endif // FKCOMBOBOX_H diff --git a/SQLiteStudio3/guiSQLiteStudio/datagrid/sqldatasourcequerymodel.cpp b/SQLiteStudio3/guiSQLiteStudio/datagrid/sqldatasourcequerymodel.cpp new file mode 100644 index 0000000..a1a6cee --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/datagrid/sqldatasourcequerymodel.cpp @@ -0,0 +1,156 @@ +#include "sqldatasourcequerymodel.h" +#include "common/utils_sql.h" + +SqlDataSourceQueryModel::SqlDataSourceQueryModel(QObject *parent) : + SqlQueryModel(parent) +{ +} + +QString SqlDataSourceQueryModel::getDatabase() const +{ + return database; +} + +SqlQueryModel::Features SqlDataSourceQueryModel::features() const +{ + return FILTERING; +} + +void SqlDataSourceQueryModel::updateTablesInUse(const QString& inUse) +{ + QString dbName = database; + if (database.toLower() == "main" || database.isEmpty()) + dbName = QString(); + + tablesInUse.clear(); + tablesInUse << DbAndTable(db, dbName, inUse); +} + +void SqlDataSourceQueryModel::applyFilter(const QString& value, FilterValueProcessor valueProc) +{ +// static_qstring(sql, "SELECT * FROM %1 WHERE %2"); + if (value.isEmpty()) + { + resetFilter(); + return; + } + + QStringList conditions; + for (SqlQueryModelColumnPtr& column : columns) + conditions << wrapObjIfNeeded(column->getAliasedName())+" "+valueProc(value); + +// setQuery(sql.arg(getDataSource(), conditions.join(" OR "))); + queryExecutor->setFilters(conditions.join(" OR ")); + executeQuery(); +} + +void SqlDataSourceQueryModel::applyFilter(const QStringList& values, FilterValueProcessor valueProc) +{ +// static_qstring(sql, "SELECT * FROM %1 WHERE %2"); + if (values.isEmpty()) + { + resetFilter(); + return; + } + + if (values.size() != columns.size()) + { + qCritical() << "Asked to per-column filter, but number columns" + << columns.size() << "is different than number of values" << values.size(); + return; + } + + QStringList conditions; + for (int i = 0, total = columns.size(); i < total; ++i) + { + if (values[i].isEmpty()) + continue; + + conditions << wrapObjIfNeeded(columns[i]->getAliasedName())+" "+valueProc(values[i]); + } + +// setQuery(sql.arg(getDataSource(), conditions.join(" AND "))); + queryExecutor->setFilters(conditions.join(" AND ")); + executeQuery(); +} + +QString SqlDataSourceQueryModel::stringFilterValueProcessor(const QString& value) +{ + static_qstring(pattern, "LIKE '%%1%'"); + return pattern.arg(escapeString(value)); +} + +QString SqlDataSourceQueryModel::strictFilterValueProcessor(const QString& value) +{ + static_qstring(pattern, "= '%1'"); + return pattern.arg(escapeString(value)); +} + +QString SqlDataSourceQueryModel::regExpFilterValueProcessor(const QString& value) +{ + static_qstring(pattern, "REGEXP '%1'"); + return pattern.arg(escapeString(value)); +} + +void SqlDataSourceQueryModel::applySqlFilter(const QString& value) +{ + if (value.isEmpty()) + { + resetFilter(); + return; + } + +// setQuery("SELECT * FROM "+getDataSource()+" WHERE "+value); + queryExecutor->setFilters(value); + executeQuery(); +} + +void SqlDataSourceQueryModel::applyStringFilter(const QString& value) +{ + applyFilter(value, &stringFilterValueProcessor); +} + +void SqlDataSourceQueryModel::applyStringFilter(const QStringList& values) +{ + applyFilter(values, &stringFilterValueProcessor); +} + +void SqlDataSourceQueryModel::applyRegExpFilter(const QString& value) +{ + applyFilter(value, ®ExpFilterValueProcessor); +} + +void SqlDataSourceQueryModel::applyRegExpFilter(const QStringList& values) +{ + applyFilter(values, ®ExpFilterValueProcessor); +} + +void SqlDataSourceQueryModel::applyStrictFilter(const QString& value) +{ + applyFilter(value, &strictFilterValueProcessor); +} + +void SqlDataSourceQueryModel::applyStrictFilter(const QStringList& values) +{ + applyFilter(values, &strictFilterValueProcessor); +} + +void SqlDataSourceQueryModel::resetFilter() +{ +// setQuery("SELECT * FROM "+getDataSource()); + queryExecutor->setFilters(QString()); + executeQuery(); +} + +QString SqlDataSourceQueryModel::getDatabasePrefix() +{ + if (database.isNull()) + return ""; // not "main.", because the "main." doesn't work for TEMP tables, such as sqlite_temp_master + + return wrapObjIfNeeded(database) + "."; +} + +QString SqlDataSourceQueryModel::getDataSource() +{ + return QString(); +} diff --git a/SQLiteStudio3/guiSQLiteStudio/datagrid/sqldatasourcequerymodel.h b/SQLiteStudio3/guiSQLiteStudio/datagrid/sqldatasourcequerymodel.h new file mode 100644 index 0000000..6f8f696 --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/datagrid/sqldatasourcequerymodel.h @@ -0,0 +1,46 @@ +#ifndef SQLDATASOURCEQUERYMODEL_H +#define SQLDATASOURCEQUERYMODEL_H + +#include "sqlquerymodel.h" + +class SqlDataSourceQueryModel : public SqlQueryModel +{ + public: + explicit SqlDataSourceQueryModel(QObject *parent = 0); + + QString getDatabase() const; + Features features() const; + void updateTablesInUse(const QString& inUse); + + void applySqlFilter(const QString& value); + void applyStringFilter(const QString& value); + void applyStringFilter(const QStringList& values); + void applyRegExpFilter(const QString& value); + void applyRegExpFilter(const QStringList& values); + void applyStrictFilter(const QString& value); + void applyStrictFilter(const QStringList& values); + void resetFilter(); + + protected: + typedef std::function FilterValueProcessor; + + static QString stringFilterValueProcessor(const QString& value); + static QString strictFilterValueProcessor(const QString& value); + static QString regExpFilterValueProcessor(const QString& value); + + void applyFilter(const QString& value, FilterValueProcessor valueProc); + void applyFilter(const QStringList& values, FilterValueProcessor valueProc); + + QString getDatabasePrefix(); + + /** + * @brief Get the data source for this object. + * Default implementation returns an empty string. Working implementation + * (i.e. for a table) should return the data source string. + */ + virtual QString getDataSource(); + + QString database; +}; + +#endif // SQLDATASOURCEQUERYMODEL_H diff --git a/SQLiteStudio3/guiSQLiteStudio/datagrid/sqlqueryitem.cpp b/SQLiteStudio3/guiSQLiteStudio/datagrid/sqlqueryitem.cpp index ebca434..771e890 100644 --- a/SQLiteStudio3/guiSQLiteStudio/datagrid/sqlqueryitem.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/datagrid/sqlqueryitem.cpp @@ -55,7 +55,7 @@ void SqlQueryItem::setUncommitted(bool uncommitted) void SqlQueryItem::rollback() { - setValue(getOldValue(), getOldValueLimited(), true); + setValue(getOldValue(), true); setUncommitted(false); setDeletedRow(false); } @@ -126,7 +126,7 @@ QVariant SqlQueryItem::getValue() const return QStandardItem::data(DataRole::VALUE); } -void SqlQueryItem::setValue(const QVariant &value, bool limited, bool loadedFromDb) +void SqlQueryItem::setValue(const QVariant &value, bool loadedFromDb) { if (!valueSettingLock.tryLock()) { @@ -160,24 +160,14 @@ void SqlQueryItem::setValue(const QVariant &value, bool limited, bool loadedFrom QStandardItem::setData("x", DataRole::VALUE); QStandardItem::setData(newValue, DataRole::VALUE); - setLimitedValue(limited); setUncommitted(modified); - // Value for display (in a cell) will always be limited, for performance reasons - setValueForDisplay("x"); // the same trick as with the DataRole::VALUE - setValueForDisplay(newValue); - if (modified && getModel()) getModel()->itemValueEdited(this); valueSettingLock.unlock(); } -bool SqlQueryItem::isLimitedValue() const -{ - return QStandardItem::data(DataRole::LIMITED_VALUE).toBool(); -} - QVariant SqlQueryItem::getOldValue() const { return QStandardItem::data(DataRole::OLD_VALUE); @@ -188,31 +178,6 @@ void SqlQueryItem::setOldValue(const QVariant& value) QStandardItem::setData(value, DataRole::OLD_VALUE); } -bool SqlQueryItem::getOldValueLimited() const -{ - return QStandardItem::data(DataRole::OLD_VALUE_LIMITED).toBool(); -} - -void SqlQueryItem::setOldValueLimited(bool value) -{ - QStandardItem::setData(value, DataRole::OLD_VALUE_LIMITED); -} - -QVariant SqlQueryItem::getValueForDisplay() const -{ - return QStandardItem::data(DataRole::VALUE_FOR_DISPLAY); -} - -void SqlQueryItem::setValueForDisplay(const QVariant &value) -{ - QStandardItem::setData(value, DataRole::VALUE_FOR_DISPLAY); -} - -void SqlQueryItem::setLimitedValue(bool limited) -{ - QStandardItem::setData(QVariant(limited), DataRole::LIMITED_VALUE); -} - QVariant SqlQueryItem::adjustVariantType(const QVariant& value) { QVariant newValue; @@ -304,13 +269,11 @@ QString SqlQueryItem::getToolTip() const void SqlQueryItem::rememberOldValue() { setOldValue(getValue()); - setOldValueLimited(isLimitedValue()); } void SqlQueryItem::clearOldValue() { setOldValue(QVariant()); - setOldValueLimited(false); } SqlQueryModelColumn* SqlQueryItem::getColumn() const @@ -340,7 +303,7 @@ void SqlQueryItem::setData(const QVariant &value, int role) // -1 column is used by Qt for header items (ie. when setHeaderData() is called) // and we want this to mean that the value was loaded from db, because it forces // the value to be interpreted as not modified. - setValue(value, false, (column() == -1)); + setValue(value, (column() == -1)); return; } } @@ -364,7 +327,7 @@ QVariant SqlQueryItem::data(int role) const if (isDeletedRow()) return ""; - QVariant value = getValueForDisplay(); + QVariant value = getValue(); if (value.isNull()) return "NULL"; @@ -414,72 +377,3 @@ QVariant SqlQueryItem::data(int role) const return QStandardItem::data(role); } - -QString SqlQueryItem::loadFullData() -{ - SqlQueryModelColumn* col = getColumn(); - SqlQueryModel *model = getModel(); - Db* db = model->getDb(); - if (!db->isOpen()) - { - qWarning() << "Tried to load the data for a cell that refers to the already closed database."; - return tr("Cannot load the data for a cell that refers to the already closed database."); - } - - // Query - QString query; - QHash queryArgs; - if (col->editionForbiddenReason.size() > 0) - { - static_qstring(tpl, "SELECT %1 FROM (%2) LIMIT 1 OFFSET %3"); - - // The query - QString colName = !col->alias.isNull() ? col->alias : col->column; - if (colName.isNull()) - colName = col->displayName; - - QString column = wrapObjIfNeeded(colName); - query = tpl.arg(column, model->getQuery(), QString::number(index().row())); - } - else - { - static_qstring(tpl, "SELECT %1 FROM %2 WHERE %3"); - - // Column - QString column = wrapObjIfNeeded(col->column); - - // Db and table - QString source = wrapObjIfNeeded(col->table); - if (!col->database.isNull()) - source.prepend(wrapObjIfNeeded(col->database)+"."); - - // ROWID - RowIdConditionBuilder rowIdBuilder; - rowIdBuilder.setRowId(getRowId()); - QString rowId = rowIdBuilder.build(); - queryArgs = rowIdBuilder.getQueryArgs(); - - // The query - query = tpl.arg(column, source, rowId); - } - - // Get the data - SqlQueryPtr results = db->exec(query, queryArgs); - if (results->isError()) - return results->getErrorText(); - - setValue(results->getSingleCell(), false, true); - return QString(); -} - -QVariant SqlQueryItem::getFullValue() -{ - if (!isLimitedValue()) - return getValue(); - - QVariant originalValue = getValue(); - loadFullData(); - QVariant result = getValue(); - setValue(originalValue, true, !isUncommitted()); - return result; -} diff --git a/SQLiteStudio3/guiSQLiteStudio/datagrid/sqlqueryitem.h b/SQLiteStudio3/guiSQLiteStudio/datagrid/sqlqueryitem.h index 6ffddfc..0de01c1 100644 --- a/SQLiteStudio3/guiSQLiteStudio/datagrid/sqlqueryitem.h +++ b/SQLiteStudio3/guiSQLiteStudio/datagrid/sqlqueryitem.h @@ -19,17 +19,14 @@ class GUI_API_EXPORT SqlQueryItem : public QObject, public QStandardItem { ROWID = 1001, VALUE = 1002, - LIMITED_VALUE = 1003, - COLUMN = 1004, - UNCOMMITTED = 1005, - COMMITTING_ERROR = 1006, - NEW_ROW = 1007, - DELETED = 1008, - OLD_VALUE = 1009, - JUST_INSERTED_WITHOUT_ROWID = 1010, - VALUE_FOR_DISPLAY = 1011, - COMMITTING_ERROR_MESSAGE = 1012, - OLD_VALUE_LIMITED = 1013 + COLUMN = 1003, + UNCOMMITTED = 1004, + COMMITTING_ERROR = 1005, + NEW_ROW = 1006, + DELETED = 1007, + OLD_VALUE = 1008, + JUST_INSERTED_WITHOUT_ROWID = 1009, + COMMITTING_ERROR_MESSAGE = 1010 }; }; @@ -62,32 +59,11 @@ class GUI_API_EXPORT SqlQueryItem : public QObject, public QStandardItem void setDeletedRow(bool isDeleted); QVariant getValue() const; - void setValue(const QVariant& value, bool limited = false, bool loadedFromDb = false); - bool isLimitedValue() const; + void setValue(const QVariant& value, bool loadedFromDb = false); QVariant getOldValue() const; void setOldValue(const QVariant& value); - bool getOldValueLimited() const; - void setOldValueLimited(bool value); - - QVariant getValueForDisplay() const; - void setValueForDisplay(const QVariant& value); - - /** - * @brief loadFullData Reloads entire value of the cell from database. - * @return QString() on sucess, or error string on failure. - */ - QString loadFullData(); - - /** - * @brief getFullValue Loads and returns full value from database, but keeps the original value. - * @return Full value, reloaded from database. - * Calls loadFullData(), then getValue() for the result, - * but just before returning - restores initial, limited value. - */ - QVariant getFullValue(); - SqlQueryModelColumn* getColumn() const; void setColumn(SqlQueryModelColumn* column); @@ -97,7 +73,6 @@ class GUI_API_EXPORT SqlQueryItem : public QObject, public QStandardItem QVariant data(int role = Qt::UserRole + 1) const; private: - void setLimitedValue(bool limited); QVariant adjustVariantType(const QVariant& value); QString getToolTip() const; void rememberOldValue(); diff --git a/SQLiteStudio3/guiSQLiteStudio/datagrid/sqlqueryitemdelegate.cpp b/SQLiteStudio3/guiSQLiteStudio/datagrid/sqlqueryitemdelegate.cpp index 1ebf06f..7b01084 100644 --- a/SQLiteStudio3/guiSQLiteStudio/datagrid/sqlqueryitemdelegate.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/datagrid/sqlqueryitemdelegate.cpp @@ -6,6 +6,7 @@ #include "sqlqueryview.h" #include "uiconfig.h" #include "common/utils_sql.h" +#include "fkcombobox.h" #include "schemaresolver.h" #include #include @@ -28,9 +29,6 @@ bool SqlQueryItemDelegate::warnedAboutHugeContents = false; SqlQueryItemDelegate::SqlQueryItemDelegate(QObject *parent) : QStyledItemDelegate(parent) { - fullValueButtonOption.icon = ICONS.LOAD_FULL_VALUE; - fullValueButtonOption.iconSize = QSize(LOAD_FULL_VALUE_ICON_SIZE, LOAD_FULL_VALUE_ICON_SIZE); - fullValueButtonOption.state = QStyle::State_Enabled; } void SqlQueryItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const @@ -44,111 +42,6 @@ void SqlQueryItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem & painter->setBrush(Qt::NoBrush); painter->drawRect(option.rect.x(), option.rect.y(), option.rect.width()-1, option.rect.height()-1); } - - if (item->isLimitedValue()) - { - QStyleOptionViewItem opt = option; - initStyleOption(&opt, index); - QString text = displayText(item->getValue(), opt.locale); - int textWidth = opt.fontMetrics.horizontalAdvance(text); - int margin = QApplication::style()->pixelMetric(QStyle::PM_FocusFrameHMargin, nullptr, opt.widget) + 1; // from QCommonStyle source code - if (opt.rect.width() >= (textWidth + LOAD_FULL_VALUE_BUTTON_SIZE + margin)) - { - QStyleOptionButton button = fullValueButtonOption; - button.rect = getLoadFullValueButtonRegion(opt.rect); - button.state = QStyle::State_Enabled | QStyle::State_MouseOver; - if (lmbPressedOnButton) - button.state |= QStyle::State_Sunken | QStyle::State_Active; - - QApplication::style()->drawControl( - (mouseOverFullDataButton == index) ? QStyle::CE_PushButton : QStyle::CE_PushButtonLabel, - &button, painter); - } - } -} - -bool SqlQueryItemDelegate::editorEvent(QEvent* event, QAbstractItemModel* model, const QStyleOptionViewItem& option, const QModelIndex& index) -{ - switch (event->type()) - { - case QEvent::MouseButtonDblClick: - if (isOverFullValueButton(option.rect, dynamic_cast(event)) && isLimited(index)) - return true; - - break; - case QEvent::MouseButtonPress: - { - if (isOverFullValueButton(option.rect, dynamic_cast(event)) && isLimited(index)) - { - lmbPressedOnButton = true; - return true; - } - - break; - } - case QEvent::MouseButtonRelease: - if (lmbPressedOnButton && isOverFullValueButton(option.rect, dynamic_cast(event)) && isLimited(index)) - { - lmbPressedOnButton = false; - getItem(index)->loadFullData(); - return true; - } - lmbPressedOnButton = false; - break; - case QEvent::MouseMove: - { - bool isOverButton = isOverFullValueButton(option.rect, dynamic_cast(event)); - if (mouseOverFullDataButton.isValid() != isOverButton) - { - mouseOverFullDataButton = isOverButton ? index : QModelIndex(); - dynamic_cast(model)->getView()->update(index); - } - - if (!isOverButton && showingFullButtonTooltip) - { - QToolTip::hideText(); - showingFullButtonTooltip = false; - } - break; - } - default: - break; - } - - return QStyledItemDelegate::editorEvent(event, model, option, index); -} - -bool SqlQueryItemDelegate::shouldLoadFullData(const QRect& rect, QMouseEvent* event, const QModelIndex& index) -{ - return shouldLoadFullData(rect, event->x(), event->y(), index); -} - -bool SqlQueryItemDelegate::shouldLoadFullData(const QRect& rect, int x, int y, const QModelIndex& index) -{ - return isOverFullValueButton(rect, x, y) && isLimited(index); -} - -void SqlQueryItemDelegate::mouseLeftIndex(const QModelIndex& index) -{ - if (mouseOverFullDataButton == index) - mouseOverFullDataButton = QModelIndex(); -} - -bool SqlQueryItemDelegate::isLimited(const QModelIndex& index) -{ - return index.data(SqlQueryItem::DataRole::LIMITED_VALUE).toBool(); -} - -bool SqlQueryItemDelegate::helpEvent(QHelpEvent* event, QAbstractItemView* view, const QStyleOptionViewItem& option, const QModelIndex& index) -{ - if (shouldLoadFullData(option.rect, event->x(), event->y(), index)) - { - QToolTip::showText(view->mapToGlobal(event->pos() - QPoint(0, 15)), tr("Load remaining part of the value")); - showingFullButtonTooltip = true; - return true; - } - - return QStyledItemDelegate::helpEvent(event, view, option, index); } QWidget* SqlQueryItemDelegate::createEditor(QWidget* parent, const QStyleOptionViewItem& option, const QModelIndex& index) const @@ -172,7 +65,7 @@ QWidget* SqlQueryItemDelegate::createEditor(QWidget* parent, const QStyleOptionV return nullptr; } - if (item->isLimitedValue() && !item->loadFullData().isNull() && model->isStructureOutOfDate()) + if (model->isStructureOutOfDate()) { notifyWarn(tr("Cannot edit this cell. Details: %1").arg(tr("Structure of this table has changed since last data was loaded. Reload the data to proceed."))); return nullptr; @@ -189,7 +82,12 @@ QString SqlQueryItemDelegate::displayText(const QVariant& value, const QLocale& UNUSED(locale); if (value.type() == QVariant::Double) - return doubleToString(value); + { + if (CFG_UI.General.UseSciFormatForDoubles.get()) + return value.toString(); + else + return doubleToString(value); + } return QStyledItemDelegate::displayText(value, locale); } @@ -220,7 +118,7 @@ void SqlQueryItemDelegate::setEditorDataForFk(QComboBox* cb, const QModelIndex& void SqlQueryItemDelegate::setModelData(QWidget* editor, QAbstractItemModel* model, const QModelIndex& index) const { - QComboBox* cb = dynamic_cast(editor); + FkComboBox* cb = dynamic_cast(editor); QLineEdit* le = dynamic_cast(editor); if (cb) { setModelDataForFk(cb, model, index); @@ -234,29 +132,11 @@ void SqlQueryItemDelegate::setModelData(QWidget* editor, QAbstractItemModel* mod queryModel->notifyItemEditionEnded(index); } -void SqlQueryItemDelegate::setModelDataForFk(QComboBox* cb, QAbstractItemModel* model, const QModelIndex& index) const +void SqlQueryItemDelegate::setModelDataForFk(FkComboBox* cb, QAbstractItemModel* model, const QModelIndex& index) const { - SqlQueryModel* cbModel = dynamic_cast(cb->model()); - if (cbModel->isExecutionInProgress() || !cbModel->isAllDataLoaded()) - return; - - int idx = cb->currentIndex(); - QModelIndex cbCol0Index = cbModel->index(idx, 0); - QString cbText = cb->currentText(); - bool customValue = false; - - if (cb->currentIndex() > -1 && !cbModel->itemFromIndex(cbCol0Index)) - { - // Inserted QStandardItem by QComboBox, meaning custom value (out of dropdown model) - // With Qt 5.15 (maybe earlier) QComboBox started inserting QStandardItems and setting them as currentIndex. - // Here we're extracting this inserted value and remembering this is the custom value. - cbText = cbModel->data(cbCol0Index).toString(); - customValue = true; - } - - // Regardless if its preselected value or custom value, we need to honor empty=null setting - if (CFG_UI.General.KeepNullWhenEmptyValue.get() && model->data(index, Qt::EditRole).isNull() && cbText.isEmpty()) - return; + bool manualValue = false; + bool ok = false; + QVariant value = cb->getValue(&manualValue, &ok); SqlQueryModel* dataModel = dynamic_cast(model); SqlQueryItem* theItem = dataModel->itemFromIndex(index); @@ -266,33 +146,19 @@ void SqlQueryItemDelegate::setModelDataForFk(QComboBox* cb, QAbstractItemModel* if (!theItem) { qCritical() << "Confirmed FK edition, but there is no SqlQueryItem for which this was triggered!" << index; - model->setData(index, cbText, Qt::EditRole); + model->setData(index, value, Qt::EditRole); return; } // Out of index? So it's custom value. Set it and it's done. // If we deal with custom value inserted as item, we also just set it and that's it. - if (idx < 0 || idx >= cbModel->rowCount() || customValue) - { - theItem->setValue(cbText); - return; - } - - // Otherwise we will have at least 2 columns. 1st column is hidden and is meta-column holding 1/0 (1 for value matching current cell value) - QList row = cbModel->getRow(idx); - if (row.size() < 2 || !row[1]) + if (manualValue) { - // This happens when inexisting value is confirmed with "Enter" key, - // and rowCount() is apparently incremented, but items not yet. - // Very likely this was addressed in recent Qt versions (5.15 or a bit earlier) - // which resulted in value insertion and the "customValue" flag above in this method. - qCritical() << "Confirmed FK edition, but there is no combo item in the row for index" << idx << ", the item is" << theItem << ", CB row count is" << cbModel->rowCount(); - theItem->setValue(cbText); + theItem->setValue(value); return; } - QVariant comboData = row[1]->getFullValue(); - theItem->setValue(comboData); + theItem->setValue(value); } void SqlQueryItemDelegate::setModelDataForLineEdit(QLineEdit* editor, QAbstractItemModel* model, const QModelIndex& index) const @@ -328,7 +194,7 @@ void SqlQueryItemDelegate::setModelDataForLineEdit(QLineEdit* editor, QAbstractI void SqlQueryItemDelegate::setEditorDataForLineEdit(QLineEdit* le, const QModelIndex& index) const { QVariant value = index.data(Qt::EditRole); - if (value.userType() == QVariant::Double) + if (value.userType() == QVariant::Double && !CFG_UI.General.UseSciFormatForDoubles.get()) { le->setText(doubleToString(value)); return; @@ -382,7 +248,7 @@ QString SqlQueryItemDelegate::getSqlForFkEditor(SqlQueryItem* item) const QString col; QString firstSrcCol; QStringList usedNames; - for (SqlQueryModelColumn::ConstraintFk* fk : fkList) + for (SqlQueryModelColumn::ConstraintFk*& fk : fkList) { col = wrapObjIfNeeded(fk->foreignColumn); src = wrapObjIfNeeded(fk->foreignTable); @@ -397,7 +263,7 @@ QString SqlQueryItemDelegate::getSqlForFkEditor(SqlQueryItem* item) const continue; srcCols = resolver.getTableColumns(src); - for (const QString& srcCol : srcCols) + for (QString& srcCol : srcCols) { if (fk->foreignColumn.compare(srcCol, Qt::CaseInsensitive) == 0) continue; // Exclude matching column. We don't want the same column several times. @@ -429,11 +295,11 @@ QString SqlQueryItemDelegate::getSqlForFkEditor(SqlQueryItem* item) const } // Current value column (will be 1 for row which matches current cell value) - QVariant fullValue = item->getFullValue(); + QVariant value = item->getValue(); QString currValueColName = generateUniqueName("curr", usedNames); - QString currValueExpr = fullValue.isNull() ? + QString currValueExpr = value.isNull() ? currNullValueTpl.arg(firstSrcCol, currValueColName) : - currValueTpl.arg(firstSrcCol, wrapValueIfNeeded(fullValue), currValueColName); + currValueTpl.arg(firstSrcCol, wrapValueIfNeeded(value), currValueColName); return sql.arg( selectedCols.join(", "), @@ -443,56 +309,16 @@ QString SqlQueryItemDelegate::getSqlForFkEditor(SqlQueryItem* item) const ); } -qlonglong SqlQueryItemDelegate::getRowCountForFkEditor(Db* db, const QString& query, bool* isError) const -{ - static_qstring(tpl, "SELECT count(*) FROM (%1)"); - - QString sql = tpl.arg(query); - SqlQueryPtr result = db->exec(sql); - if (isError) - *isError = result->isError(); - - return result->getSingleCell().toLongLong(); -} - -QRect SqlQueryItemDelegate::getLoadFullValueButtonRegion(const QRect& cell) -{ - int x = cell.left() + cell.width() - LOAD_FULL_VALUE_BUTTON_SIZE - LOAD_FULL_VALUE_BUTTON_SIDE_MARGIN; - int y = cell.top() + (cell.height() / 2) - (LOAD_FULL_VALUE_BUTTON_SIZE / 2); - return QRect(x, y, LOAD_FULL_VALUE_BUTTON_SIZE, LOAD_FULL_VALUE_BUTTON_SIZE); -} - -bool SqlQueryItemDelegate::isOverFullValueButton(const QRect& cell, QMouseEvent* event) -{ - return isOverFullValueButton(cell, event->x(), event->y()); -} - -bool SqlQueryItemDelegate::isOverFullValueButton(const QRect& cell, int x, int y) -{ - QRect buttonRect = getLoadFullValueButtonRegion(cell); - return buttonRect.contains(x, y); -} - -int SqlQueryItemDelegate::getFkViewHeaderWidth(SqlQueryView* fkView, bool includeScrollBar) const -{ - int wd = fkView->horizontalHeader()->length(); - if (includeScrollBar && fkView->verticalScrollBar()->isVisible()) - wd += fkView->verticalScrollBar()->width(); - - return wd; -} - QWidget* SqlQueryItemDelegate::getFkEditor(SqlQueryItem* item, QWidget* parent, const SqlQueryModel* model) const { - QString sql = getSqlForFkEditor(item); - Db* db = model->getDb(); bool countingError = false; - qlonglong rowCount = getRowCountForFkEditor(db, sql, &countingError); - if (rowCount > MAX_ROWS_FOR_FK) + QString sql = FkComboBox::getSqlForFkEditor(db, item->getColumn(), item->getValue()); + qlonglong rowCount = FkComboBox::getRowCountForFkEditor(db, sql, &countingError); + if (rowCount > FkComboBox::MAX_ROWS_FOR_FK) { notifyWarn(tr("Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually.") - .arg(MAX_ROWS_FOR_FK).arg(item->getColumn()->column)); + .arg(FkComboBox::MAX_ROWS_FOR_FK).arg(item->getColumn()->column)); return getEditor(item->getValue().userType(), parent); } @@ -503,168 +329,9 @@ QWidget* SqlQueryItemDelegate::getFkEditor(SqlQueryItem* item, QWidget* parent, return nullptr; } - QComboBox *cb = new QComboBox(parent); - cb->setEditable(true); - - // Prepare combo dropdown view. - SqlQueryView* comboView = new SqlQueryView(); - comboView->setSimpleBrowserMode(true); - comboView->setMaximumWidth(QGuiApplication::primaryScreen()->size().width()); - - fkViewParentItemSize = model->getView()->horizontalHeader()->sectionSize(item->index().column()); - connect(comboView->horizontalHeader(), &QHeaderView::sectionResized, [this, comboView, model](int, int, int) - { - if (!model->isAllDataLoaded()) - return; - - updateComboViewGeometry(comboView, false); - }); - - SqlQueryModel* comboModel = new SqlQueryModel(comboView); - comboModel->setView(comboView); - - // Mapping of model to cb, so we can update combo when data arrives. - modelToFkInitialValue[comboModel] = item->getFullValue(); - modelToFkCombo[comboModel] = cb; - connect(cb, &QComboBox::destroyed, [this, comboModel](QObject*) - { - modelToFkCombo.remove(comboModel); - modelToFkInitialValue.remove(comboModel); - }); - - connect(cb, QOverload::of(&QComboBox::currentIndexChanged), [this, comboModel](int idx) - { - if (idx > -1 && idx < comboModel->getTotalRowsReturned() && comboModel->isAllDataLoaded()) - comboModel->itemFromIndex(idx, 1)->loadFullData(); - }); - - // When execution is done, update combo. - connect(comboModel, SIGNAL(executionSuccessful()), this, SLOT(fkDataReady())); - connect(comboModel, SIGNAL(executionFailed(QString)), this, SLOT(fkDataFailed(QString))); - - // Setup combo, model, etc. - cb->setModel(comboModel); - cb->setView(comboView); - cb->setModelColumn(1); - cb->view()->viewport()->installEventFilter(new FkComboFilter(this, comboView, cb)); - cb->view()->viewport()->installEventFilter(new FkComboShowFilter(this, comboView, cb)); - cb->view()->verticalScrollBar()->installEventFilter(new FkComboShowFilter(this, comboView, cb)); - - comboModel->setHardRowLimit(MAX_ROWS_FOR_FK); - comboModel->setCellDataLengthLimit(FK_CELL_LENGTH_LIMIT); - comboModel->setDb(db); - comboModel->setQuery(sql); - comboModel->setAsyncMode(false); - comboModel->executeQuery(); - - comboView->verticalHeader()->setVisible(false); - comboView->horizontalHeader()->setVisible(true); - comboView->setSelectionMode(QAbstractItemView::SingleSelection); - comboView->setSelectionBehavior(QAbstractItemView::SelectRows); - + int dropDownViewMinWidth = model->getView()->horizontalHeader()->sectionSize(item->index().column()); + FkComboBox* cb = new FkComboBox(parent, dropDownViewMinWidth); + cb->init(db, item->getColumn()); + cb->setValue(item->getValue()); return cb; } - -void SqlQueryItemDelegate::fkDataReady() -{ - SqlQueryModel* model = dynamic_cast(sender()); - SqlQueryView* queryView = model->getView(); - - queryView->horizontalHeader()->setSectionHidden(0, true); - queryView->resizeColumnsToContents(); - queryView->resizeRowsToContents(); - - updateComboViewGeometry(queryView, true); - - // Set selected combo value to initial value from the cell - QComboBox* cb = modelToFkCombo[model]; - QVariant valueFromQueryModel = modelToFkInitialValue[model]; - - if (model->rowCount() > 0) - { - QModelIndex startIdx = model->index(0, 0); - QModelIndex endIdx = model->index(model->rowCount() - 1, 0); - QModelIndexList idxList = model->findIndexes(startIdx, endIdx, SqlQueryItem::DataRole::VALUE, 1, 1); - - if (idxList.size() > 0) - { - model->itemFromIndex(idxList.first().row(), 1)->loadFullData(); - cb->setCurrentIndex(idxList.first().row()); - } - else - { - cb->setCurrentIndex(-1); - cb->setEditText(valueFromQueryModel.toString()); - } - } - else - cb->setEditText(valueFromQueryModel.toString()); - - cb->lineEdit()->selectAll(); -} - -void SqlQueryItemDelegate::fkDataFailed(const QString &errorText) -{ - notifyWarn(tr("Cannot edit this cell. Details: %1").arg(errorText)); -} - -void SqlQueryItemDelegate::updateComboViewGeometry(SqlQueryView* comboView, bool initial) const -{ - int wd = getFkViewHeaderWidth(comboView, true); - comboView->setMinimumWidth(qMin(qMax(fkViewParentItemSize, wd), comboView->maximumWidth())); - - if (initial && wd < comboView->minimumWidth()) - { - // First time, upon showing up - int currentSize = comboView->horizontalHeader()->sectionSize(1); - int gap = comboView->minimumWidth() - wd; - comboView->horizontalHeader()->resizeSection(1, currentSize + gap); - } - - QWidget* container = comboView->parentWidget(); - if (container->width() > comboView->minimumWidth()) - { - container->setMaximumWidth(comboView->minimumWidth()); - container->resize(comboView->minimumWidth(), container->height()); - } -} - - -SqlQueryItemDelegate::FkComboFilter::FkComboFilter(const SqlQueryItemDelegate* delegate, SqlQueryView* comboView, QObject* parent) - : QObject(parent), delegate(delegate), comboView(comboView) -{ -} - -bool SqlQueryItemDelegate::FkComboFilter::eventFilter(QObject* obj, QEvent* event) -{ - UNUSED(obj); - if (event->type() == QEvent::MouseButtonRelease) - { - QMouseEvent* e = dynamic_cast(event); - QModelIndex idx = comboView->indexAt(QPoint(e->pos())); - if (!idx.isValid()) - return false; - - SqlQueryItem* item = comboView->getModel()->itemFromIndex(idx); - if (shouldLoadFullData(comboView->visualRect(idx), e, idx)) - { - item->loadFullData(); - return true; - } - } - return false; -} - -SqlQueryItemDelegate::FkComboShowFilter::FkComboShowFilter(const SqlQueryItemDelegate* delegate, SqlQueryView* comboView, QObject* parent) - : QObject(parent), delegate(delegate), comboView(comboView) -{ -} - -bool SqlQueryItemDelegate::FkComboShowFilter::eventFilter(QObject* obj, QEvent* event) -{ - UNUSED(obj); - if (event->type() == QEvent::Show) - delegate->updateComboViewGeometry(comboView, true); - - return false; -} diff --git a/SQLiteStudio3/guiSQLiteStudio/datagrid/sqlqueryitemdelegate.h b/SQLiteStudio3/guiSQLiteStudio/datagrid/sqlqueryitemdelegate.h index dbd2192..655eae2 100644 --- a/SQLiteStudio3/guiSQLiteStudio/datagrid/sqlqueryitemdelegate.h +++ b/SQLiteStudio3/guiSQLiteStudio/datagrid/sqlqueryitemdelegate.h @@ -6,6 +6,7 @@ #include #include +class FkComboBox; class SqlQueryItem; class QComboBox; class QStandardItemModel; @@ -19,8 +20,6 @@ class GUI_API_EXPORT SqlQueryItemDelegate : public QStyledItemDelegate explicit SqlQueryItemDelegate(QObject *parent = 0); void paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const; - bool editorEvent(QEvent *event, QAbstractItemModel *model, const QStyleOptionViewItem &option, const QModelIndex &index); - bool helpEvent(QHelpEvent *event, QAbstractItemView *view, const QStyleOptionViewItem &option, const QModelIndex &index); QWidget* createEditor(QWidget* parent, const QStyleOptionViewItem& option, const QModelIndex& index) const; QString displayText(const QVariant & value, const QLocale & locale) const; void setEditorData(QWidget * editor, const QModelIndex & index) const; @@ -28,17 +27,6 @@ class GUI_API_EXPORT SqlQueryItemDelegate : public QStyledItemDelegate void mouseLeftIndex(const QModelIndex& index); private: - class FkComboFilter : public QObject - { - public: - explicit FkComboFilter(const SqlQueryItemDelegate* delegate, SqlQueryView* comboView, QObject* parent = 0); - bool eventFilter(QObject *obj, QEvent *event); - - private: - const SqlQueryItemDelegate* delegate = nullptr; - SqlQueryView* comboView = nullptr; - }; - class FkComboShowFilter : public QObject { public: @@ -50,45 +38,21 @@ class GUI_API_EXPORT SqlQueryItemDelegate : public QStyledItemDelegate SqlQueryView* comboView = nullptr; }; - static QRect getLoadFullValueButtonRegion(const QRect& cell); - static bool isOverFullValueButton(const QRect& cell, QMouseEvent* event); - static bool isOverFullValueButton(const QRect& cell, int x, int y); - static bool shouldLoadFullData(const QRect& rect, QMouseEvent* event, const QModelIndex& index); - static bool shouldLoadFullData(const QRect& rect, int x, int y, const QModelIndex& index); - static bool isLimited(const QModelIndex &index); - SqlQueryItem* getItem(const QModelIndex &index) const; QWidget* getEditor(int type, QWidget* parent) const; QWidget* getFkEditor(SqlQueryItem* item, QWidget* parent, const SqlQueryModel *model) const; void setEditorDataForLineEdit(QLineEdit* le, const QModelIndex& index) const; void setEditorDataForFk(QComboBox* cb, const QModelIndex& index) const; - void setModelDataForFk(QComboBox* editor, QAbstractItemModel* model, const QModelIndex& index) const; + void setModelDataForFk(FkComboBox* editor, QAbstractItemModel* model, const QModelIndex& index) const; void setModelDataForLineEdit(QLineEdit* editor, QAbstractItemModel* model, const QModelIndex& index) const; QString getSqlForFkEditor(SqlQueryItem* item) const; qlonglong getRowCountForFkEditor(Db* db, const QString& query, bool *isError) const; int getFkViewHeaderWidth(SqlQueryView* fkView, bool includeScrollBar) const; - void updateComboViewGeometry(SqlQueryView* comboView, bool initial) const; - QStyleOptionButton fullValueButtonOption; QSet editorsWithAsyncExecution; - QModelIndex mouseOverFullDataButton; - bool showingFullButtonTooltip = false; - bool lmbPressedOnButton = false; - mutable int fkViewParentItemSize = 0; - mutable QHash modelToFkCombo; - mutable QHash modelToFkInitialValue; static bool warnedAboutHugeContents; - static const int LOAD_FULL_VALUE_BUTTON_SIZE = 18; - static const int LOAD_FULL_VALUE_BUTTON_SIDE_MARGIN = 2; - static const int LOAD_FULL_VALUE_ICON_SIZE = 12; - static const qlonglong MAX_ROWS_FOR_FK = 10000L; - static const int FK_CELL_LENGTH_LIMIT = 30; static const int HUGE_CONTENTS_WARNING_LIMIT = 32767; // pow(2, 16) / 2 - 1 - - private slots: - void fkDataReady(); - void fkDataFailed(const QString& errorText); }; #endif // SQLQUERYITEMDELEGATE_H diff --git a/SQLiteStudio3/guiSQLiteStudio/datagrid/sqlquerymodel.cpp b/SQLiteStudio3/guiSQLiteStudio/datagrid/sqlquerymodel.cpp index dd3f655..2982415 100644 --- a/SQLiteStudio3/guiSQLiteStudio/datagrid/sqlquerymodel.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/datagrid/sqlquerymodel.cpp @@ -9,12 +9,12 @@ #include "parser/ast/sqlitecreatetable.h" #include "uiconfig.h" #include "datagrid/sqlqueryview.h" -#include "datagrid/sqlqueryrownummodel.h" #include "services/dbmanager.h" #include "querygenerator.h" #include "parser/lexer.h" #include "common/compatibility.h" #include "mainwindow.h" +#include "iconmanager.h" #include #include #include @@ -89,7 +89,6 @@ void SqlQueryModel::executeQuery() return; } - sortOrder.clear(); queryExecutor->setSkipRowCounting(false); queryExecutor->setSortOrder(sortOrder); queryExecutor->setPage(0); @@ -222,7 +221,7 @@ QModelIndexList SqlQueryModel::findIndexes(int role, const QVariant& value, int return findIndexes(startIdx, endIdx, role, value, hits); } -QModelIndexList SqlQueryModel::findIndexes(const QModelIndex& start, const QModelIndex& end, int role, const QVariant& value, int hits) const +QModelIndexList SqlQueryModel::findIndexes(const QModelIndex& start, const QModelIndex& end, int role, const QVariant& value, int hits, bool stringApproximation) const { QModelIndexList results; bool allHits = hits < 0; @@ -231,6 +230,7 @@ QModelIndexList SqlQueryModel::findIndexes(const QModelIndex& start, const QMode int toRow = end.row(); int fromCol = start.column(); int toCol = end.column(); + QString stringVal = value.toString(); for (int row = fromRow; row <= toRow && (allHits || results.count() < hits); row++) { @@ -241,7 +241,7 @@ QModelIndexList SqlQueryModel::findIndexes(const QModelIndex& start, const QMode continue; QVariant cellVal = data(idx, role); - if (value != cellVal) + if (value != cellVal && !(stringApproximation && stringVal == cellVal.toString())) continue; results.append(idx); @@ -312,9 +312,9 @@ QHash > SqlQueryModel::groupItemsByTable(cons { if (item->getColumn()) { - table.setDatabase(item->getColumn()->database.toLower()); - table.setTable(item->getColumn()->table.toLower()); - table.setTableAlias(item->getColumn()->tableAlias.toLower()); + table.setDatabase(item->getColumn()->database); + table.setTable(item->getColumn()->table); + table.setTableAlias(item->getColumn()->tableAlias); itemsByTable[table] << item; } else @@ -410,7 +410,7 @@ void SqlQueryModel::refreshGeneratedColumns(const QList& items) for (auto resultIt = resultValues.begin(); resultIt != resultValues.end(); resultIt++) { SqlQueryItem* item = resultIt.key(); - item->setValue(resultIt.value(), false, true); + item->setValue(resultIt.value(), true); item->setTextAlignment(findValueAlignment(resultIt.value(), item->getColumn())); } } @@ -1087,13 +1087,8 @@ void SqlQueryModel::updateItem(SqlQueryItem* item, const QVariant& value, int co void SqlQueryModel::updateItem(SqlQueryItem* item, const QVariant& value, int columnIndex, const RowId& rowId, Qt::Alignment alignment) { SqlQueryModelColumnPtr column = columns[columnIndex]; - - // This should be equal at most, unless we have UTF-8 string, than there might be more bytes. - // If less, than it's not limited. - bool limited = value.toByteArray().size() >= cellDataLengthLimit; - item->setJustInsertedWithOutRowId(false); - item->setValue(value, limited, true); + item->setValue(value, true); item->setColumn(column.data()); item->setTextAlignment(alignment); item->setRowId(rowId); @@ -1132,6 +1127,14 @@ RowId SqlQueryModel::getNewRowId(const RowId& currentRowId, const QListgetColumn(); + QStringList tableRowIdColumns = tableToRowIdColumn[col->getAliasedTable()].values(); + if (tableRowIdColumns.contains(col->column, Qt::CaseInsensitive)) + { + RowId newRowId; + newRowId[col->column] = item->getValue(); + return newRowId; + } + if (isRowIdKeyword(col->column) || col->isRowIdPk()) { RowId newRowId; @@ -1170,7 +1173,7 @@ QHash SqlQueryModel::toValuesGroupedByColumns(const QList { QHash values; for (SqlQueryItem* item : items) - values[item->getColumn()->displayName] << item->getFullValue(); + values[item->getColumn()->displayName] << item->getValue(); return values; } @@ -1187,7 +1190,6 @@ bool SqlQueryModel::readColumns() tablesInUse.clear(); // Reading column mapping for ROWID columns - int totalRowIdCols = 0; AliasedTable aliasedTable; DbAndTable dbAndTable; for (const QueryExecutor::ResultRowIdColumnPtr& resCol : queryExecutor->getRowIdResultColumns()) @@ -1205,7 +1207,6 @@ bool SqlQueryModel::readColumns() aliasedTable.setTable(resCol->table); aliasedTable.setTableAlias(resCol->tableAlias); tableToRowIdColumn[aliasedTable] = resCol->queryExecutorAliasToColumn; - totalRowIdCols += resCol->queryExecutorAliasToColumn.size(); } // Reading column details (datatype, constraints) @@ -1406,6 +1407,7 @@ void SqlQueryModel::handleExecFinished(SqlQueryPtr results) return; } + emit aboutToLoadResults(); storeStep1NumbersFromExecution(); if (!loadData(results)) return; @@ -1488,33 +1490,57 @@ void SqlQueryModel::itemValueEdited(SqlQueryItem* item) emit commitStatusChanged(getUncommittedItems().size() > 0); } +void SqlQueryModel::repaintAllItems() +{ + QModelIndex startIdx = index(0, 0); + if (!startIdx.isValid()) + return; + + QModelIndex endIdx = index(rowCount() - 1, columnCount() - 1); + emit dataChanged(startIdx, endIdx, QVector({Qt::DisplayRole, Qt::EditRole})); +} + void SqlQueryModel::changeSorting(int logicalIndex, Qt::SortOrder order) { if (!reloadAvailable) return; + QueryExecutor::SortList sortList = QueryExecutor::SortList(); + if (logicalIndex > -1) + sortList = {QueryExecutor::Sort(order, logicalIndex)}; + queryExecutor->setSkipRowCounting(true); - queryExecutor->setSortOrder({QueryExecutor::Sort(order, logicalIndex)}); + queryExecutor->setSortOrder(sortList); reloadInternal(); } void SqlQueryModel::changeSorting(int logicalIndex) { Qt::SortOrder newOrder = Qt::AscendingOrder; - if (sortOrder.size() == 1) + if (sortOrder.size() != 1) { - switch (sortOrder.first().order) - { - case QueryExecutor::Sort::ASC: - newOrder = Qt::DescendingOrder; - break; - case QueryExecutor::Sort::DESC: - newOrder = Qt::AscendingOrder; - break; - case QueryExecutor::Sort::NONE: - newOrder = Qt::AscendingOrder; - break; - } + changeSorting(logicalIndex, newOrder); + return; + } + + QueryExecutor::Sort singleOrder = sortOrder.first(); + if (singleOrder.column != logicalIndex) + { + changeSorting(logicalIndex, newOrder); + return; + } + + switch (singleOrder.order) + { + case QueryExecutor::Sort::ASC: + newOrder = Qt::DescendingOrder; + break; + case QueryExecutor::Sort::DESC: + logicalIndex = -1; + break; + case QueryExecutor::Sort::NONE: + newOrder = Qt::AscendingOrder; + break; } changeSorting(logicalIndex, newOrder); } @@ -2014,6 +2040,12 @@ void SqlQueryModel::applyStringFilter(const QString& value) // For custom query this is not supported. } +void SqlQueryModel::applyStrictFilter(const QString& value) +{ + UNUSED(value); + // For custom query this is not supported. +} + void SqlQueryModel::applyRegExpFilter(const QString& value) { UNUSED(value); @@ -2026,6 +2058,12 @@ void SqlQueryModel::applyStringFilter(const QStringList& values) // For custom query this is not supported. } +void SqlQueryModel::applyStrictFilter(const QStringList& values) +{ + UNUSED(values); + // For custom query this is not supported. +} + void SqlQueryModel::applyRegExpFilter(const QStringList& values) { UNUSED(values); @@ -2087,56 +2125,6 @@ bool SqlQueryModel::isExecutionInProgress() const return queryExecutor->isExecutionInProgress(); } -void SqlQueryModel::loadFullDataForEntireRow(int row) -{ - int colCnt = columns.size(); - SqlQueryItem *item = nullptr; - for (int col = 0; col < colCnt; col++) - { - item = itemFromIndex(row, col); - if (!item) - continue; - - if (!item->isLimitedValue()) - continue; - - item->loadFullData(); - } -} - -void SqlQueryModel::loadFullDataForEntireColumn(int column) -{ - int rowCnt = rowCount(); - SqlQueryItem *item = nullptr; - for (int row = 0; row < rowCnt; row++) - { - item = itemFromIndex(row, column); - if (!item) - continue; - - if (!item->isLimitedValue()) - continue; - - item->loadFullData(); - } -} - -bool SqlQueryModel::doesColumnHaveLimitedValues(int column) const -{ - int rowCnt = rowCount(); - SqlQueryItem *item = nullptr; - for (int row = 0; row < rowCnt; row++) - { - item = itemFromIndex(row, column); - if (!item) - continue; - - if (item->isLimitedValue()) - return true; - } - return false; -} - void SqlQueryModel::CommitUpdateQueryBuilder::clear() { database.clear(); @@ -2180,7 +2168,7 @@ QString SqlQueryModel::CommitUpdateQueryBuilder::build() int argIndex = 0; QString arg; QStringList assignments; - for (const QString& col : columns) + for (QString& col : columns) { arg = ":value_" + QString::number(argIndex++); assignmentArgs << arg; diff --git a/SQLiteStudio3/guiSQLiteStudio/datagrid/sqlquerymodel.h b/SQLiteStudio3/guiSQLiteStudio/datagrid/sqlquerymodel.h index 9a89205..43222f1 100644 --- a/SQLiteStudio3/guiSQLiteStudio/datagrid/sqlquerymodel.h +++ b/SQLiteStudio3/guiSQLiteStudio/datagrid/sqlquerymodel.h @@ -54,7 +54,7 @@ class GUI_API_EXPORT SqlQueryModel : public QStandardItemModel SqlQueryItem* itemFromIndex(const QModelIndex& index) const; SqlQueryItem* itemFromIndex(int row, int column) const; QModelIndexList findIndexes(int role, const QVariant &value, int hits = -1) const; - QModelIndexList findIndexes(const QModelIndex &start, const QModelIndex& end, int role, const QVariant &value, int hits = -1) const; + QModelIndexList findIndexes(const QModelIndex &start, const QModelIndex& end, int role, const QVariant &value, int hits = -1, bool stringApproximation = false) const; QList findItems(int role, const QVariant &value, int hits = -1) const; QList findItems(const QModelIndex &start, const QModelIndex& end, int role, const QVariant &value, int hits = -1) const; SqlQueryItem* findAnyInColumn(int column, int role, const QVariant &value) const; @@ -63,9 +63,6 @@ class GUI_API_EXPORT SqlQueryModel : public QStandardItemModel int columnCount(const QModelIndex& parent = QModelIndex()) const; QVariant headerData(int section, Qt::Orientation orientation, int role) const; bool isExecutionInProgress() const; - void loadFullDataForEntireRow(int row); - void loadFullDataForEntireColumn(int column); - bool doesColumnHaveLimitedValues(int column) const; StrHash attachDependencyTables(); void detachDependencyTables(); @@ -94,6 +91,15 @@ class GUI_API_EXPORT SqlQueryModel : public QStandardItemModel */ virtual void applySqlFilter(const QString& value); + /** + * @brief Request for applying an "equals" filtering on a dataset. + * @param value Filter expression. + * Default implementation does nothing. Working implementation (i.e. for a table) + * should set the query to temporary value which respects given filter and reload the data. + * Filter passed to this method is meant to be treated as strict value to be compared against. + */ + virtual void applyStrictFilter(const QString& value); + /** * @brief Request for applying "LIKE" filtering on a dataset. * @param value Filter expression. @@ -120,6 +126,14 @@ class GUI_API_EXPORT SqlQueryModel : public QStandardItemModel */ virtual void applyStringFilter(const QStringList& values); + /** + * @brief Request for applying an "equals" filtering on a dataset. + * @param values Filter expressions per column. + * This is the same as applyStrictFilter(const QString&), but is used for per-column filtering, + * when user enters filtering expressions for each column sparately. + */ + virtual void applyStrictFilter(const QStringList& values); + /** * @brief Request for applying Regular Expression filtering on a dataset. * @param values Filter expressions per column. @@ -501,6 +515,7 @@ class GUI_API_EXPORT SqlQueryModel : public QStandardItemModel public slots: void itemValueEdited(SqlQueryItem* item); + void repaintAllItems(); void changeSorting(int logicalIndex, Qt::SortOrder order); void changeSorting(int logicalIndex); void firstPage(); @@ -536,6 +551,12 @@ class GUI_API_EXPORT SqlQueryModel : public QStandardItemModel */ void executionSuccessful(); + /** + * @brief Execution is finished and data is about to be loaded to model. + * Emitted every query execution, every data reloading and every page change. + */ + void aboutToLoadResults(); + /** * @brief executionFailed * @param errorText diff --git a/SQLiteStudio3/guiSQLiteStudio/datagrid/sqlquerymodelcolumn.cpp b/SQLiteStudio3/guiSQLiteStudio/datagrid/sqlquerymodelcolumn.cpp index 8171154..68287bd 100644 --- a/SQLiteStudio3/guiSQLiteStudio/datagrid/sqlquerymodelcolumn.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/datagrid/sqlquerymodelcolumn.cpp @@ -56,6 +56,8 @@ SqlQueryModelColumn::EditionForbiddenReason SqlQueryModelColumn::convert(QueryEx return EditionForbiddenReason::DISTINCT_RESULTS; case QueryExecutor::ColumnEditionForbiddenReason::COMM_TAB_EXPR: return EditionForbiddenReason::COMMON_TABLE_EXPRESSION; + case QueryExecutor::ColumnEditionForbiddenReason::VIEW_NOT_EXPANDED: + return EditionForbiddenReason::VIEW_NOT_EXPANDED; } return static_cast(-1); } @@ -83,6 +85,8 @@ QString SqlQueryModelColumn::resolveMessage(SqlQueryModelColumn::EditionForbidde return QObject::tr("Cannot edit columns that are result of common table expression statement (%1).").arg("WITH ... SELECT ..."); case EditionForbiddenReason::GENERATED_COLUMN: return QObject::tr("Cannot edit table generated columns."); + case EditionForbiddenReason::VIEW_NOT_EXPANDED: + return QObject::tr("Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view)."); } qCritical() << "Reached null text message for SqlQueryModel::EditionForbiddenReason. This should not happen!"; return QString(); @@ -176,6 +180,11 @@ bool SqlQueryModelColumn::isGenerated() const return getConstraints().size() > 0; } +QString SqlQueryModelColumn::getAliasedName() const +{ + return this->alias.isEmpty() ? this->column : this->alias; +} + QList SqlQueryModelColumn::getFkConstraints() const { return getConstraints(); @@ -190,6 +199,11 @@ SqlQueryModelColumn::ConstraintDefault* SqlQueryModelColumn::getDefaultConstrain return list[0]; } +AliasedTable SqlQueryModelColumn::getAliasedTable() const +{ + return AliasedTable(database, table, tableAlias); +} + int qHash(SqlQueryModelColumn::EditionForbiddenReason reason) { return static_cast(reason); @@ -211,6 +225,11 @@ QDataStream&operator >>(QDataStream& in, SqlQueryModelColumn*& col) SqlQueryModelColumn::Constraint* SqlQueryModelColumn::Constraint::create(const QString& column, SqliteCreateTable::ConstraintPtr tableConstraint) +{ + return create(column, tableConstraint.data()); +} + +SqlQueryModelColumn::Constraint* SqlQueryModelColumn::Constraint::create(const QString& column, SqliteCreateTable::Constraint* tableConstraint) { Constraint* constr = nullptr; switch (tableConstraint->type) @@ -222,10 +241,18 @@ SqlQueryModelColumn::Constraint* SqlQueryModelColumn::Constraint::create(const Q constr = new ConstraintPk(); constr->type = Type::PRIMARY_KEY; + dynamic_cast(constr)->multiColumns = + map(tableConstraint->indexedColumns, [](SqliteIndexedColumn* idxCol) -> QString + { + return idxCol->detokenize().trimmed(); + }); break; } case SqliteCreateTable::Constraint::UNIQUE: { + if (!tableConstraint->doesAffectColumn(column)) + return nullptr; + constr = new ConstraintUnique(); constr->type = Type::UNIQUE; break; @@ -268,6 +295,11 @@ SqlQueryModelColumn::Constraint* SqlQueryModelColumn::Constraint::create(const Q } SqlQueryModelColumn::Constraint* SqlQueryModelColumn::Constraint::create(SqliteCreateTable::Column::ConstraintPtr columnConstraint) +{ + return create(columnConstraint.data()); +} + +SqlQueryModelColumn::Constraint* SqlQueryModelColumn::Constraint::create(SqliteCreateTable::Column::Constraint* columnConstraint) { Constraint* constr = nullptr; switch (columnConstraint->type) @@ -328,6 +360,7 @@ SqlQueryModelColumn::Constraint* SqlQueryModelColumn::Constraint::create(SqliteC { ConstraintGenerated* generate = new ConstraintGenerated(); generate->generatedType = columnConstraint->generatedType; + generate->expr = columnConstraint->expr ? columnConstraint->expr->detokenize() : QString(); constr = generate; constr->type = Type::GENERATED; break; @@ -377,6 +410,9 @@ QString SqlQueryModelColumn::ConstraintPk::getTypeString() const QString SqlQueryModelColumn::ConstraintPk::getDetails() const { QStringList detailList; + if (!multiColumns.isEmpty()) + detailList << "("+multiColumns.join(", ")+")"; + if (autoIncrement) detailList << "AUTOINCREMENT"; @@ -384,7 +420,12 @@ QString SqlQueryModelColumn::ConstraintPk::getDetails() const detailList << QObject::tr("on conflict: %1", "data view tooltip").arg(sqliteConflictAlgo(onConflict)); if (detailList.size() > 0) - return "("+detailList.join(", ")+")"; + { + if (detailList.size() > 1) + return "("+detailList.join(", ")+")"; + else + return detailList.join(", "); + } return ""; } @@ -503,8 +544,7 @@ QString SqlQueryModelColumn::ConstraintGenerated::getTypeString() const QString SqlQueryModelColumn::ConstraintGenerated::getDetails() const { - return "("+QObject::tr("generated column type: %1", "data view tooltip") - .arg(SqliteCreateTable::Column::Constraint::toString(generatedType))+")"; + return QString("(%1) %2").arg(expr, SqliteCreateTable::Column::Constraint::toString(generatedType)).trimmed(); } Icon* SqlQueryModelColumn::ConstraintGenerated::getIcon() const diff --git a/SQLiteStudio3/guiSQLiteStudio/datagrid/sqlquerymodelcolumn.h b/SQLiteStudio3/guiSQLiteStudio/datagrid/sqlquerymodelcolumn.h index 8e05fd5..1a347e5 100644 --- a/SQLiteStudio3/guiSQLiteStudio/datagrid/sqlquerymodelcolumn.h +++ b/SQLiteStudio3/guiSQLiteStudio/datagrid/sqlquerymodelcolumn.h @@ -29,7 +29,8 @@ class GUI_API_EXPORT SqlQueryModelColumn SMART_EXECUTION_FAILED, DISTINCT_RESULTS, COMMON_TABLE_EXPRESSION, - GENERATED_COLUMN + GENERATED_COLUMN, + VIEW_NOT_EXPANDED }; struct Constraint @@ -55,8 +56,10 @@ class GUI_API_EXPORT SqlQueryModelColumn virtual ~Constraint() {} + static Constraint* create(const QString& column, SqliteCreateTable::Constraint* tableConstraint); static Constraint* create(const QString& column, SqliteCreateTable::ConstraintPtr tableConstraint); static Constraint* create(SqliteCreateTable::Column::ConstraintPtr columnConstraint); + static Constraint* create(SqliteCreateTable::Column::Constraint* columnConstraint); virtual QString getTypeString() const = 0; virtual QString getDetails() const = 0; @@ -74,6 +77,7 @@ class GUI_API_EXPORT SqlQueryModelColumn Icon* getIcon() const; bool autoIncrement; + QStringList multiColumns; SqliteConflictAlgo onConflict = SqliteConflictAlgo::null; }; @@ -139,6 +143,7 @@ class GUI_API_EXPORT SqlQueryModelColumn QString getDetails() const; Icon* getIcon() const; + QString expr; SqliteCreateTable::Column::Constraint::GeneratedType generatedType = SqliteCreateTable::Column::Constraint::GeneratedType::null; }; @@ -163,8 +168,10 @@ class GUI_API_EXPORT SqlQueryModelColumn bool isDefault() const; bool isCollate() const; bool isGenerated() const; + QString getAliasedName() const; QList getFkConstraints() const; ConstraintDefault* getDefaultConstraint() const; + AliasedTable getAliasedTable() const; QString displayName; QString column; diff --git a/SQLiteStudio3/guiSQLiteStudio/datagrid/sqlqueryview.cpp b/SQLiteStudio3/guiSQLiteStudio/datagrid/sqlqueryview.cpp index 9d3ea96..d9695d7 100644 --- a/SQLiteStudio3/guiSQLiteStudio/datagrid/sqlqueryview.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/datagrid/sqlqueryview.cpp @@ -7,7 +7,6 @@ #include "iconmanager.h" #include "common/unused.h" #include "common/extaction.h" -#include "multieditor/multieditor.h" #include "multieditor/multieditordialog.h" #include "uiconfig.h" #include "dialogs/sortdialog.h" @@ -15,8 +14,7 @@ #include "windows/editorwindow.h" #include "mainwindow.h" #include "common/utils_sql.h" -#include "querygenerator.h" -#include "services/codeformatter.h" +#include "common/mouseshortcut.h" #include #include #include @@ -61,13 +59,17 @@ void SqlQueryView::init() connect(this, &QWidget::customContextMenuRequested, this, &SqlQueryView::customContextMenuRequested); connect(CFG_UI.Fonts.DataView, SIGNAL(changed(QVariant)), this, SLOT(updateFont())); connect(this, SIGNAL(activated(QModelIndex)), this, SLOT(itemActivated(QModelIndex))); - connect(horizontalHeader(), &QHeaderView::sectionResized, [this](int section, int, int newSize) + connect(horizontalHeader(), &QHeaderView::sectionResized, this, [this](int section, int, int newSize) { if (ignoreColumnWidthChanges) return; getModel()->setDesiredColumnWidth(section, newSize); }); + connect(verticalHeader(), SIGNAL(sectionDoubleClicked(int)), this, SLOT(adjustRowToContents(int))); + MouseShortcut::forWheel(Qt::ControlModifier, + this, SLOT(fontSizeChangeRequested(int)), + viewport()); horizontalHeader()->setSortIndicatorShown(false); horizontalHeader()->setSectionsClickable(true); @@ -98,6 +100,7 @@ void SqlQueryView::createActions() createAction(ROLLBACK, ICONS.ROLLBACK, tr("Rollback"), this, SLOT(rollback()), this); createAction(SELECTIVE_COMMIT, ICONS.COMMIT, tr("Commit selected cells"), this, SLOT(selectiveCommit()), this); createAction(SELECTIVE_ROLLBACK, ICONS.ROLLBACK, tr("Rollback selected cells"), this, SLOT(selectiveRollback()), this); + createAction(EDIT_CURRENT, tr("Edit current cell inline"), this, SLOT(editCurrent()), this); createAction(GENERATE_SELECT, "SELECT", this, SLOT(generateSelect()), this); createAction(GENERATE_INSERT, "INSERT", this, SLOT(generateInsert()), this); createAction(GENERATE_UPDATE, "UPDATE", this, SLOT(generateUpdate()), this); @@ -107,15 +110,19 @@ void SqlQueryView::createActions() createAction(INSERT_ROW, ICONS.INSERT_ROW, tr("Insert row"), this, SIGNAL(requestForRowInsert()), this); createAction(INSERT_MULTIPLE_ROWS, ICONS.INSERT_ROWS, tr("Insert multiple rows"), this, SIGNAL(requestForMultipleRowInsert()), this); createAction(DELETE_ROW, ICONS.DELETE_ROW, tr("Delete selected row"), this, SIGNAL(requestForRowDelete()), this); - createAction(LOAD_FULL_VALUES, ICONS.LOAD_FULL_VALUES, tr("Load full values"), this, SLOT(loadFullValuesForColumn()), this); - + createAction(ADJUST_ROWS_SIZE, tr("Adjust height of rows"), this, SLOT(toggleRowsHeightAdjustment(bool)), this); + actionMap[ADJUST_ROWS_SIZE]->setCheckable(true); + actionMap[ADJUST_ROWS_SIZE]->setChecked(false); actionMap[RESET_SORTING]->setEnabled(false); + createAction(INCR_FONT_SIZE, tr("Increase font size", "data view"), this, SLOT(incrFontSize()), this); + createAction(DECR_FONT_SIZE, tr("Decrease font size", "data view"), this, SLOT(decrFontSize()), this); + createAction(INVERT_SELECTION, ICONS.SELECTION_INVERT, tr("Invert selection", "data view"), this, SLOT(invertSelection()), this); } void SqlQueryView::setupDefShortcuts() { setShortcutContext({ROLLBACK, SET_NULL, ERASE, OPEN_VALUE_EDITOR, COMMIT, COPY, COPY_AS, - PASTE, PASTE_AS}, Qt::WidgetWithChildrenShortcut); + PASTE, PASTE_AS, ADJUST_ROWS_SIZE, INCR_FONT_SIZE, DECR_FONT_SIZE}, Qt::WidgetWithChildrenShortcut); BIND_SHORTCUTS(SqlQueryView, Action); } @@ -186,7 +193,6 @@ void SqlQueryView::setupActionsForMenu(SqlQueryItem* currentItem, const QListaddAction(actionMap[GENERATE_DELETE]); } - contextMenu->addSeparator(); contextMenu->addAction(actionMap[COPY]); contextMenu->addAction(actionMap[COPY_WITH_HEADER]); @@ -194,10 +200,13 @@ void SqlQueryView::setupActionsForMenu(SqlQueryItem* currentItem, const QListaddAction(actionMap[PASTE]); //contextMenu->addAction(actionMap[PASTE_AS]); // TODO uncomment when implemented } + contextMenu->addSeparator(); + contextMenu->addAction(actionMap[INVERT_SELECTION]); + contextMenu->addAction(actionMap[ADJUST_ROWS_SIZE]); if (additionalActions.size() > 0) { contextMenu->addSeparator(); - for (QAction* action : additionalActions) + for (QAction*& action : additionalActions) contextMenu->addAction(action); } } @@ -209,8 +218,6 @@ void SqlQueryView::setupHeaderMenu() headerContextMenu = new QMenu(horizontalHeader()); headerContextMenu->addAction(actionMap[SORT_DIALOG]); headerContextMenu->addAction(actionMap[RESET_SORTING]); - headerContextMenu->addSeparator(); - headerContextMenu->addAction(actionMap[LOAD_FULL_VALUES]); } QList SqlQueryView::getSelectedItems() @@ -251,8 +258,13 @@ void SqlQueryView::setModel(QAbstractItemModel* model) QTableView::setModel(model); SqlQueryModel* m = getModel(); connect(widgetCover, SIGNAL(cancelClicked()), m, SLOT(interrupt())); - connect(getModel(), &SqlQueryModel::commitStatusChanged, this, &SqlQueryView::updateCommitRollbackActions); - connect(getModel(), &SqlQueryModel::sortingUpdated, this, &SqlQueryView::sortingUpdated); + connect(m, &SqlQueryModel::commitStatusChanged, this, &SqlQueryView::updateCommitRollbackActions); + connect(m, &SqlQueryModel::sortingUpdated, this, &SqlQueryView::sortingUpdated); + connect(m, &SqlQueryModel::executionSuccessful, this, [this]() + { + if (actionMap[ADJUST_ROWS_SIZE]->isChecked()) + verticalHeader()->resizeSections(QHeaderView::ResizeToContents); + }); } SqlQueryItem* SqlQueryView::itemAt(const QPoint& pos) @@ -319,9 +331,67 @@ void SqlQueryView::generateDelete() MAINWINDOW->openSqlEditor(getModel()->getDb(), sql); } -void SqlQueryView::loadFullValuesForColumn() +void SqlQueryView::editCurrent() +{ + QModelIndex idx = getCurrentIndex(); + if (idx.isValid()) + edit(idx); +} + +void SqlQueryView::toggleRowsHeightAdjustment(bool enabled) +{ + QHeaderView* hdr = verticalHeader(); + if (enabled) + { + hdr->resizeSections(QHeaderView::ResizeToContents); + } + else + { + hdr->setSectionResizeMode(QHeaderView::Interactive); + hdr->resizeSections(QHeaderView::Interactive); + int height = hdr->defaultSectionSize(); + int rows = getModel()->rowCount(); + for (int row = 0; row < rows; row++) + hdr->resizeSection(row, height); + } +} + +void SqlQueryView::adjustRowToContents(int section) +{ + verticalHeader()->setSectionResizeMode(section, QHeaderView::ResizeToContents); +} + +void SqlQueryView::fontSizeChangeRequested(int delta) +{ + changeFontSize(delta >= 0 ? 1 : -1); +} + +void SqlQueryView::incrFontSize() +{ + changeFontSize(1); +} + +void SqlQueryView::decrFontSize() +{ + changeFontSize(-1); +} + +void SqlQueryView::invertSelection() { - getModel()->loadFullDataForEntireColumn(headerContextMenuSection); + SqlQueryModel* model = getModel(); + int rows = model->rowCount(); + int cols = model->columnCount(); + QItemSelectionModel* selection = selectionModel(); + for (int r = 0; r < rows; r++) + for (int c = 0; c < cols; c++) + selection->select(model->index(r, c), QItemSelectionModel::Toggle); + + if (!selection->isSelected(currentIndex())) + { + QModelIndexList idxList = selection->selectedIndexes(); + if (!idxList.isEmpty()) + selection->setCurrentIndex(selection->selectedIndexes().first(), QItemSelectionModel::NoUpdate); + } } bool SqlQueryView::editInEditorIfNecessary(SqlQueryItem* item) @@ -362,7 +432,7 @@ void SqlQueryView::paste(const QList >& data) if (!validatePasting(warnedColumns, warnedRowDeletion, item)) continue; - item->setValue(theValue, false, false); + item->setValue(theValue, false); } return; @@ -402,7 +472,7 @@ void SqlQueryView::paste(const QList >& data) if (!validatePasting(warnedColumns, warnedRowDeletion, item)) continue; - item->setValue(cell, false, false); + item->setValue(cell, false); } // Go to next row, first column @@ -429,7 +499,7 @@ bool SqlQueryView::validatePasting(QSet& warnedColumns, bool& warnedRow if (!warnedColumns.contains(colName)) { warnedColumns << colName; - notifyWarn(tr("Cannot paste to column %1. Details: %2").arg(colName).arg(item->getColumn()->getEditionForbiddenReason())); + notifyWarn(tr("Cannot paste to column %1. Details: %2").arg(colName, item->getColumn()->getEditionForbiddenReason())); } return false; } @@ -509,7 +579,7 @@ void SqlQueryView::copy(bool withHeader) if (withHeader) { int leftMostColumn = groupedItems.first().first()->column(); - for (SqlQueryModelColumnPtr col : getModel()->getColumns().mid(leftMostColumn, groupedItems.first().size())) + for (SqlQueryModelColumnPtr& col : getModel()->getColumns().mid(leftMostColumn, groupedItems.first().size())) { theDataRow << col->displayName; cells << col->displayName; @@ -527,7 +597,7 @@ void SqlQueryView::copy(bool withHeader) { for (SqlQueryItem* item : itemsInRows) { - itemValue = item->getFullValue(); + itemValue = item->getValue(); if (itemValue.userType() == QVariant::Double) cells << doubleToString(itemValue); else @@ -559,6 +629,13 @@ void SqlQueryView::copy(bool withHeader) qApp->clipboard()->setMimeData(mimeData); } +void SqlQueryView::changeFontSize(int factor) +{ + auto f = CFG_UI.Fonts.DataView.get(); + f.setPointSize(f.pointSize() + factor); + CFG_UI.Fonts.DataView.set(f); +} + bool SqlQueryView::getSimpleBrowserMode() const { return simpleBrowserMode; @@ -585,20 +662,6 @@ void SqlQueryView::scrollContentsBy(int dx, int dy) emit scrolledBy(dx, dy); } -void SqlQueryView::mouseMoveEvent(QMouseEvent* event) -{ - QAbstractItemView::mouseMoveEvent(event); - - QModelIndex idx = indexAt(QPoint(event->x(), event->y())); - if (idx != indexUnderCursor) - { - if (indexUnderCursor.isValid()) - itemDelegate->mouseLeftIndex(indexUnderCursor); - - indexUnderCursor = idx; - } -} - void SqlQueryView::updateCommitRollbackActions(bool enabled) { actionMap[COMMIT]->setEnabled(enabled); @@ -629,11 +692,6 @@ void SqlQueryView::headerContextMenuRequested(const QPoint& pos) if (simpleBrowserMode) return; - headerContextMenuSection = horizontalHeader()->visualIndexAt(pos.x()); - - bool hasLimitedValues = getModel()->doesColumnHaveLimitedValues(headerContextMenuSection); - actionMap[LOAD_FULL_VALUES]->setEnabled(hasLimitedValues); - headerContextMenu->popup(horizontalHeader()->mapToGlobal(pos)); } @@ -667,6 +725,8 @@ void SqlQueryView::updateFont() QFont f = CFG_UI.Fonts.DataView.get(); QFontMetrics fm(f); verticalHeader()->setDefaultSectionSize(fm.height() + 4); + if (getModel()) + getModel()->repaintAllItems(); } void SqlQueryView::executionStarted() @@ -727,6 +787,8 @@ void SqlQueryView::paste() QList deserializedRows = TsvSerializer::deserialize(mimeData->text()); bool trimOnPaste = false; bool trimOnPasteAsked = false; + bool pasteAsNull = false; + bool pasteAsNullAsked = false; QList dataRow; QList> dataToPaste; @@ -740,14 +802,30 @@ void SqlQueryView::paste() if ((cell.at(0).isSpace() || cell.at(cell.size() - 1).isSpace()) && !trimOnPasteAsked) #endif { - QMessageBox::StandardButton choice; - choice = QMessageBox::question(this, tr("Trim pasted text?"), + QMessageBox::StandardButton trimChoice; + trimChoice = QMessageBox::question(this, tr("Trim pasted text?"), tr("The pasted text contains leading or trailing white space. Trim it automatically?")); trimOnPasteAsked = true; - trimOnPaste = (choice == QMessageBox::Yes); + trimOnPaste = (trimChoice == QMessageBox::Yes); } - dataRow << (trimOnPaste ? cell.trimmed() : cell); + if (cell=="NULL" && !pasteAsNullAsked) + { + QMessageBox::StandardButton nullChoice; + nullChoice = QMessageBox::question(this, tr("Paste \"NULL\" as null value?"), + tr("The pasted text contains \"NULL\" literals. Do you want to consider them as NULL values?")); + pasteAsNullAsked = true; + pasteAsNull = (nullChoice == QMessageBox::Yes); + } + + if (cell=="NULL" && pasteAsNull) + { + dataRow << QVariant(); + } + else + { + dataRow << (trimOnPaste ? cell.trimmed() : cell); + } } dataToPaste << dataRow; @@ -776,7 +854,7 @@ void SqlQueryView::setNull() if (selItem->getColumn()->editionForbiddenReason.size() > 0) continue; - selItem->setValue(QVariant(QString()), false, false); + selItem->setValue(QVariant(QString()), false); } } @@ -789,7 +867,7 @@ void SqlQueryView::erase() if (selItem->getColumn()->editionForbiddenReason.size() > 0) continue; - selItem->setValue("", false, false); + selItem->setValue("", false); } } @@ -836,11 +914,17 @@ void SqlQueryView::openValueEditor(SqlQueryItem* item) return; } + SqlQueryModelColumn* column = item->getColumn(); + MultiEditorDialog editor(this); + if (!column->getFkConstraints().isEmpty()) + editor.enableFk(getModel()->getDb(), column); + + editor.setDataType(column->dataType); editor.setWindowTitle(tr("Edit value")); - editor.setDataType(item->getColumn()->dataType); - editor.setValue(item->getFullValue()); - editor.setReadOnly(!item->getColumn()->canEdit()); + editor.setValue(item->getValue()); + editor.setReadOnly(!column->canEdit()); + if (editor.exec() == QDialog::Rejected) return; @@ -867,7 +951,7 @@ QSize SqlQueryView::Header::sectionSizeFromContents(int section) const { QSize originalSize = QHeaderView::sectionSizeFromContents(section); int colCount = dynamic_cast(parent())->getModel()->columnCount(); - if (colCount <= 5) + if (colCount <= 5 || CFG_UI.General.ColumnWidthForName.get()) return originalSize; int wd = minHeaderWidth; diff --git a/SQLiteStudio3/guiSQLiteStudio/datagrid/sqlqueryview.h b/SQLiteStudio3/guiSQLiteStudio/datagrid/sqlqueryview.h index 5e50ed1..6cd528d 100644 --- a/SQLiteStudio3/guiSQLiteStudio/datagrid/sqlqueryview.h +++ b/SQLiteStudio3/guiSQLiteStudio/datagrid/sqlqueryview.h @@ -5,7 +5,6 @@ #include "common/extactioncontainer.h" #include "db/queryexecutor.h" #include "guiSQLiteStudio_global.h" -#include "common/table.h" #include #include @@ -19,24 +18,27 @@ class QProgressBar; class QMenu; CFG_KEY_LIST(SqlQueryView, QObject::tr("Data grid view"), - CFG_KEY_ENTRY(COPY, Qt::CTRL + Qt::Key_C, QObject::tr("Copy cell(s) contents to clipboard")) - CFG_KEY_ENTRY(COPY_WITH_HEADER, Qt::CTRL + Qt::SHIFT + Qt::Key_C, QObject::tr("Copy cell(s) contents together with header to clipboard")) -// CFG_KEY_ENTRY(COPY_AS, Qt::CTRL + Qt::ALT + Qt::Key_C, QObject::tr("")) - CFG_KEY_ENTRY(PASTE, Qt::CTRL + Qt::Key_V, QObject::tr("Paste cell(s) contents from clipboard")) -// CFG_KEY_ENTRY(PASTE_AS, Qt::CTRL + Qt::ALT + Qt::Key_V, QObject::tr("")) - CFG_KEY_ENTRY(ERASE, Qt::ALT + Qt::Key_Backspace, QObject::tr("Set empty value to selected cell(s)")) - CFG_KEY_ENTRY(SET_NULL, Qt::Key_Backspace, QObject::tr("Set NULL value to selected cell(s)")) - CFG_KEY_ENTRY(COMMIT, Qt::CTRL + Qt::Key_Return, QObject::tr("Commit changes to cell(s) contents")) - CFG_KEY_ENTRY(ROLLBACK, Qt::CTRL + Qt::Key_Backspace, QObject::tr("Rollback changes to cell(s) contents")) - CFG_KEY_ENTRY(DELETE_ROW, Qt::Key_Delete, QObject::tr("Delete selected data row")) - CFG_KEY_ENTRY(INSERT_ROW, Qt::Key_Insert, QObject::tr("Insert new data row")) - CFG_KEY_ENTRY(OPEN_VALUE_EDITOR, Qt::ALT + Qt::Key_Return, QObject::tr("Open contents of selected cell in a separate editor")) + CFG_KEY_ENTRY(EDIT_CURRENT, Qt::Key_F2, QObject::tr("Edit current cell inline")) + CFG_KEY_ENTRY(COPY, Qt::CTRL + Qt::Key_C, QObject::tr("Copy cell(s) contents to clipboard")) + CFG_KEY_ENTRY(COPY_WITH_HEADER, Qt::CTRL + Qt::SHIFT + Qt::Key_C, QObject::tr("Copy cell(s) contents together with header to clipboard")) +// CFG_KEY_ENTRY(COPY_AS, Qt::CTRL + Qt::ALT + Qt::Key_C, QObject::tr("")) + CFG_KEY_ENTRY(PASTE, Qt::CTRL + Qt::Key_V, QObject::tr("Paste cell(s) contents from clipboard")) +// CFG_KEY_ENTRY(PASTE_AS, Qt::CTRL + Qt::ALT + Qt::Key_V, QObject::tr("")) + CFG_KEY_ENTRY(ERASE, Qt::ALT + Qt::Key_Backspace, QObject::tr("Set empty value to selected cell(s)")) + CFG_KEY_ENTRY(SET_NULL, Qt::Key_Backspace, QObject::tr("Set NULL value to selected cell(s)")) + CFG_KEY_ENTRY(COMMIT, Qt::CTRL + Qt::Key_Return, QObject::tr("Commit changes to cell(s) contents")) + CFG_KEY_ENTRY(ROLLBACK, Qt::ALT + Qt::SHIFT + Qt::Key_Backspace, QObject::tr("Rollback changes to cell(s) contents")) + CFG_KEY_ENTRY(DELETE_ROW, Qt::Key_Delete, QObject::tr("Delete selected data row")) + CFG_KEY_ENTRY(INSERT_ROW, Qt::Key_Insert, QObject::tr("Insert new data row")) + CFG_KEY_ENTRY(OPEN_VALUE_EDITOR, Qt::ALT + Qt::Key_Return, QObject::tr("Open contents of selected cell in a separate editor")) + CFG_KEY_ENTRY(ADJUST_ROWS_SIZE, Qt::ALT + Qt::Key_H, QObject::tr("Toggle the height adjustment of rows")) + CFG_KEY_ENTRY(INCR_FONT_SIZE, Qt::CTRL + Qt::Key_Plus, QObject::tr("Increase font size", "data view")) + CFG_KEY_ENTRY(DECR_FONT_SIZE, Qt::CTRL + Qt::Key_Minus, QObject::tr("Decrease font size", "data view")) ) class GUI_API_EXPORT SqlQueryView : public QTableView, public ExtActionContainer { - Q_OBJECT - Q_ENUMS(Action) + Q_OBJECT public: enum Action @@ -55,15 +57,20 @@ class GUI_API_EXPORT SqlQueryView : public QTableView, public ExtActionContainer DELETE_ROW, SELECTIVE_COMMIT, SELECTIVE_ROLLBACK, + EDIT_CURRENT, OPEN_VALUE_EDITOR, SORT_DIALOG, RESET_SORTING, - LOAD_FULL_VALUES, GENERATE_SELECT, GENERATE_INSERT, GENERATE_UPDATE, - GENERATE_DELETE + GENERATE_DELETE, + INVERT_SELECTION, + ADJUST_ROWS_SIZE, + INCR_FONT_SIZE, + DECR_FONT_SIZE }; + Q_ENUM(Action) enum ToolBar { @@ -86,7 +93,6 @@ class GUI_API_EXPORT SqlQueryView : public QTableView, public ExtActionContainer protected: void scrollContentsBy(int dx, int dy); - void mouseMoveEvent(QMouseEvent *event); private: class Header : public QHeaderView @@ -110,6 +116,7 @@ class GUI_API_EXPORT SqlQueryView : public QTableView, public ExtActionContainer void addFkActionsToContextMenu(SqlQueryItem* currentItem); void goToReferencedRow(const QString& table, const QString& column, const QVariant& value); void copy(bool withHeaders); + void changeFontSize(int factor); constexpr static const char* mimeDataId = "application/x-sqlitestudio-data-view-data"; constexpr static const int minHeaderWidth = 15; @@ -125,8 +132,6 @@ class GUI_API_EXPORT SqlQueryView : public QTableView, public ExtActionContainer bool simpleBrowserMode = false; bool ignoreColumnWidthChanges = false; int beforeExecutionHorizontalPosition = -1; - int headerContextMenuSection = -1; - QModelIndex indexUnderCursor; private slots: void updateCommitRollbackActions(bool enabled); @@ -141,7 +146,13 @@ class GUI_API_EXPORT SqlQueryView : public QTableView, public ExtActionContainer void generateInsert(); void generateUpdate(); void generateDelete(); - void loadFullValuesForColumn(); + void editCurrent(); + void toggleRowsHeightAdjustment(bool enabled); + void adjustRowToContents(int section); + void fontSizeChangeRequested(int delta); + void incrFontSize(); + void decrFontSize(); + void invertSelection(); public slots: void executionStarted(); diff --git a/SQLiteStudio3/guiSQLiteStudio/datagrid/sqltablemodel.cpp b/SQLiteStudio3/guiSQLiteStudio/datagrid/sqltablemodel.cpp index 50db973..50b0c5b 100644 --- a/SQLiteStudio3/guiSQLiteStudio/datagrid/sqltablemodel.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/datagrid/sqltablemodel.cpp @@ -10,15 +10,10 @@ #include SqlTableModel::SqlTableModel(QObject *parent) : - SqlQueryModel(parent) + SqlDataSourceQueryModel(parent) { } -QString SqlTableModel::getDatabase() const -{ - return database; -} - QString SqlTableModel::getTable() const { return table; @@ -29,13 +24,7 @@ void SqlTableModel::setDatabaseAndTable(const QString& database, const QString& this->database = database; this->table = table; setQuery("SELECT * FROM "+getDataSource()); - - QString dbName = database; - if (database.toLower() == "main" || database.isEmpty()) - dbName = QString(); - - tablesInUse.clear(); - tablesInUse << DbAndTable(db, dbName, table); + updateTablesInUse(table); SchemaResolver resolver(db); isWithOutRowIdTable = resolver.isWithoutRowIdTable(database, table); @@ -156,109 +145,11 @@ bool SqlTableModel::commitDeletedRow(const QList& itemsInRow, QLi return true; } -void SqlTableModel::applyFilter(const QString& value, FilterValueProcessor valueProc) -{ - static_qstring(sql, "SELECT * FROM %1 WHERE %2"); - - if (value.isEmpty()) - { - resetFilter(); - return; - } - - QStringList conditions; - for (SqlQueryModelColumnPtr column : columns) - conditions << wrapObjIfNeeded(column->column)+" "+valueProc(value); - - setQuery(sql.arg(getDataSource(), conditions.join(" OR "))); - executeQuery(); -} - -void SqlTableModel::applyFilter(const QStringList& values, FilterValueProcessor valueProc) -{ - static_qstring(sql, "SELECT * FROM %1 WHERE %2"); - if (values.isEmpty()) - { - resetFilter(); - return; - } - - if (values.size() != columns.size()) - { - qCritical() << "Asked to per-column filter, but number columns" - << columns.size() << "is different than number of values" << values.size(); - return; - } - - QStringList conditions; - for (int i = 0, total = columns.size(); i < total; ++i) - { - if (values[i].isEmpty()) - continue; - - conditions << wrapObjIfNeeded(columns[i]->column)+" "+valueProc(values[i]); - } - - setQuery(sql.arg(getDataSource(), conditions.join(" AND "))); - executeQuery(); -} - -QString SqlTableModel::stringFilterValueProcessor(const QString& value) -{ - static_qstring(pattern, "LIKE '%%1%'"); - return pattern.arg(escapeString(value)); -} - -QString SqlTableModel::regExpFilterValueProcessor(const QString& value) -{ - static_qstring(pattern, "REGEXP '%1'"); - return pattern.arg(escapeString(value)); -} - bool SqlTableModel::supportsModifyingQueriesInMenu() const { return true; } -void SqlTableModel::applySqlFilter(const QString& value) -{ - if (value.isEmpty()) - { - resetFilter(); - return; - } - - setQuery("SELECT * FROM "+getDataSource()+" WHERE "+value); - executeQuery(); -} - -void SqlTableModel::applyStringFilter(const QString& value) -{ - applyFilter(value, &stringFilterValueProcessor); -} - -void SqlTableModel::applyStringFilter(const QStringList& values) -{ - applyFilter(values, &stringFilterValueProcessor); -} - -void SqlTableModel::applyRegExpFilter(const QString& value) -{ - applyFilter(value, ®ExpFilterValueProcessor); -} - -void SqlTableModel::applyRegExpFilter(const QStringList& values) -{ - applyFilter(values, ®ExpFilterValueProcessor); -} - -void SqlTableModel::resetFilter() -{ - setQuery("SELECT * FROM "+getDataSource()); - //reload(); - executeQuery(); -} - QString SqlTableModel::generateSelectQueryForItems(const QList& items) { QHash values = toValuesGroupedByColumns(items); @@ -435,14 +326,6 @@ void SqlTableModel::processDefaultValueAfterInsert(QHashvalue(colIdx++); } -QString SqlTableModel::getDatabasePrefix() -{ - if (database.isNull()) - return ""; // not "main.", because the "main." doesn't work for TEMP tables, such as sqlite_temp_master - - return wrapObjIfNeeded(database) + "."; -} - QString SqlTableModel::getDataSource() { return getDatabasePrefix() + wrapObjIfNeeded(table); @@ -490,7 +373,7 @@ void SqlTableModel::updateColumnsAndValues(const QList& itemsInRo colNameList << wrapObjIfNeeded(modelColumn->column); sqlValues << ":arg" + QString::number(i); - args << item->getFullValue(); + args << item->getValue(); } } diff --git a/SQLiteStudio3/guiSQLiteStudio/datagrid/sqltablemodel.h b/SQLiteStudio3/guiSQLiteStudio/datagrid/sqltablemodel.h index 3a1ab36..665e014 100644 --- a/SQLiteStudio3/guiSQLiteStudio/datagrid/sqltablemodel.h +++ b/SQLiteStudio3/guiSQLiteStudio/datagrid/sqltablemodel.h @@ -2,25 +2,18 @@ #define SQLTABLEMODEL_H #include "guiSQLiteStudio_global.h" -#include "sqlquerymodel.h" +#include "sqldatasourcequerymodel.h" -class GUI_API_EXPORT SqlTableModel : public SqlQueryModel +class GUI_API_EXPORT SqlTableModel : public SqlDataSourceQueryModel { Q_OBJECT public: explicit SqlTableModel(QObject *parent = 0); - QString getDatabase() const; QString getTable() const; void setDatabaseAndTable(const QString& database, const QString& table); Features features() const; - void applySqlFilter(const QString& value); - void applyStringFilter(const QString& value); - void applyStringFilter(const QStringList& values); - void applyRegExpFilter(const QString& value); - void applyRegExpFilter(const QStringList& values); - void resetFilter(); QString generateSelectQueryForItems(const QList& items); QString generateInsertQueryForItems(const QList& items); QString generateUpdateQueryForItems(const QList& items); @@ -31,6 +24,8 @@ class GUI_API_EXPORT SqlTableModel : public SqlQueryModel bool commitAddedRow(const QList& itemsInRow, QList& successfulCommitHandlers); bool commitDeletedRow(const QList& itemsInRow, QList& successfulCommitHandlers); + QString getDataSource(); + private: class CommitDeleteQueryBuilder : public CommitUpdateQueryBuilder { @@ -45,13 +40,6 @@ class GUI_API_EXPORT SqlTableModel : public SqlQueryModel void addColumn(const QString& col); }; - typedef std::function FilterValueProcessor; - - static QString stringFilterValueProcessor(const QString& value); - static QString regExpFilterValueProcessor(const QString& value); - - void applyFilter(const QString& value, FilterValueProcessor valueProc); - void applyFilter(const QStringList& values, FilterValueProcessor valueProc); void updateColumnsAndValuesWithDefaultValues(const QList& modelColumns, QStringList& colNameList, QStringList& sqlValues, QList& args); void updateColumnsAndValues(const QList& itemsInRow, const QList& modelColumns, @@ -65,11 +53,7 @@ class GUI_API_EXPORT SqlTableModel : public SqlQueryModel void processDefaultValueAfterInsert(QHash& columnsToReadFromDb, QHash& values, RowId rowId); - QString getDatabasePrefix(); - QString getDataSource(); - QString table; - QString database; bool isWithOutRowIdTable = false; }; diff --git a/SQLiteStudio3/guiSQLiteStudio/datagrid/sqlviewmodel.cpp b/SQLiteStudio3/guiSQLiteStudio/datagrid/sqlviewmodel.cpp index 653e4b5..1f8422c 100644 --- a/SQLiteStudio3/guiSQLiteStudio/datagrid/sqlviewmodel.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/datagrid/sqlviewmodel.cpp @@ -2,7 +2,7 @@ #include "querygenerator.h" SqlViewModel::SqlViewModel(QObject *parent) : - SqlQueryModel(parent) + SqlDataSourceQueryModel(parent) { } @@ -14,7 +14,17 @@ QString SqlViewModel::generateSelectQueryForItems(const QList& it return generator.generateSelectFromView(db, view, values); } -void SqlViewModel::setView(const QString& view) +void SqlViewModel::setDatabaseAndView(const QString& database, const QString& view) { + this->database = database; this->view = view; + //setQuery("SELECT * FROM "+getDataSource()); + updateTablesInUse(view); + + SchemaResolver resolver(db); +} + +QString SqlViewModel::getDataSource() +{ + return getDatabasePrefix() + wrapObjIfNeeded(view); } diff --git a/SQLiteStudio3/guiSQLiteStudio/datagrid/sqlviewmodel.h b/SQLiteStudio3/guiSQLiteStudio/datagrid/sqlviewmodel.h index 19efbce..e93eff5 100644 --- a/SQLiteStudio3/guiSQLiteStudio/datagrid/sqlviewmodel.h +++ b/SQLiteStudio3/guiSQLiteStudio/datagrid/sqlviewmodel.h @@ -1,15 +1,20 @@ #ifndef SQLVIEWMODEL_H #define SQLVIEWMODEL_H -#include "sqlquerymodel.h" +#include "sqldatasourcequerymodel.h" -class SqlViewModel : public SqlQueryModel +class SqlViewModel : public SqlDataSourceQueryModel { public: - SqlViewModel(QObject *parent = 0); + explicit SqlViewModel(QObject *parent = 0); + + QString getView() const; QString generateSelectQueryForItems(const QList& items); - void setView(const QString& view); + void setDatabaseAndView(const QString& database, const QString& view); + + protected: + QString getDataSource(); private: QString view; diff --git a/SQLiteStudio3/guiSQLiteStudio/dataview.cpp b/SQLiteStudio3/guiSQLiteStudio/dataview.cpp index 568954c..e7ae9b5 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dataview.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/dataview.cpp @@ -1,11 +1,9 @@ #include "dataview.h" -#include "datagrid/sqltablemodel.h" #include "datagrid/sqlquerymodel.h" #include "datagrid/sqlqueryview.h" #include "formview.h" #include "common/extlineedit.h" #include "mainwindow.h" -#include "statusfield.h" #include "common/intvalidator.h" #include "common/extaction.h" #include "iconmanager.h" @@ -77,7 +75,7 @@ void DataView::initSlots() connect(model, SIGNAL(executionStarted()), gridView, SLOT(executionStarted())); connect(model, SIGNAL(loadingEnded(bool)), gridView, SLOT(executionEnded())); connect(model, SIGNAL(totalRowsAndPagesAvailable()), this, SLOT(totalRowsAndPagesAvailable())); - connect(gridView->horizontalHeader(), SIGNAL(sectionClicked(int)), this, SLOT(columnsHeaderClicked(int))); + connect(gridView->horizontalHeader(), SIGNAL(sectionDoubleClicked(int)), this, SLOT(columnsHeaderDoubleClicked(int))); connect(this, SIGNAL(currentChanged(int)), this, SLOT(tabChanged(int))); connect(model, SIGNAL(itemEditionEnded(SqlQueryItem*)), this, SLOT(adjustColumnWidth(SqlQueryItem*))); connect(gridView, SIGNAL(scrolledBy(int, int)), this, SLOT(syncFilterScrollPosition())); @@ -235,8 +233,8 @@ void DataView::createActions() createAction(SELECTIVE_COMMIT, ICONS.COMMIT, tr("Commit changes for selected cells", "data view"), this, SLOT(selectiveCommitGrid()), this); createAction(SELECTIVE_ROLLBACK, ICONS.ROLLBACK, tr("Rollback changes for selected cells", "data view"), this, SLOT(selectiveRollbackGrid()), this); - createAction(SHOW_GRID_VIEW, tr("Show grid view of results", "sql editor"), this, SLOT(showGridView()), this); - createAction(SHOW_FORM_VIEW, tr("Show form view of results", "sql editor"), this, SLOT(showFormView()), this); + createAction(SHOW_GRID_VIEW, tr("Show grid view of results", "data view"), this, SLOT(showGridView()), this); + createAction(SHOW_FORM_VIEW, tr("Show form view of results", "data view"), this, SLOT(showFormView()), this); connect(gridView, SIGNAL(requestForRowInsert()), this, SLOT(insertRow())); connect(gridView, SIGNAL(requestForMultipleRowInsert()), this, SLOT(insertMultipleRows())); @@ -310,14 +308,11 @@ void DataView::resizeColumnsInitiallyToContents() continue; } + int headerMinSize = qMax(gridView->horizontalHeader()->sizeHintForColumn(i), 60); if (wd > CFG_UI.General.MaxInitialColumnWith.get()) - { gridView->setColumnWidth(i, CFG_UI.General.MaxInitialColumnWith.get()); - } - else if (wd < 60) - { - gridView->setColumnWidth(i, 60); - } + else if (wd < headerMinSize) + gridView->setColumnWidth(i, headerMinSize); } gridView->setIgnoreColumnWidthChanges(false); } @@ -427,7 +422,6 @@ void DataView::goToFormRow(IndexModifier idxMod) return; gridView->setCurrentIndex(newRowIdx); - model->loadFullDataForEntireRow(row); formView->updateFromGrid(); updateCurrentFormViewRow(); } @@ -551,6 +545,9 @@ void DataView::adjustColumnWidth(SqlQueryItem* item) if (model->getDesiredColumnWidth(col) > -1) return; + if (!CFG_UI.General.EnlargeColumnForValue.get()) + return; + gridView->resizeColumnToContents(col); if (gridView->columnWidth(col) > CFG_UI.General.MaxInitialColumnWith.get()) gridView->setColumnWidth(col, CFG_UI.General.MaxInitialColumnWith.get()); @@ -564,6 +561,9 @@ void DataView::syncFilterScrollPosition() void DataView::resizeFilter(int section, int oldSize, int newSize) { UNUSED(oldSize); + if (!model->features().testFlag(SqlQueryModel::FILTERING)) + return; + if (filterInputs.isEmpty()) return; @@ -841,6 +841,9 @@ void DataView::applyFilter() case DataView::FilterMode::REGEXP: model->applyRegExpFilter(filterValues); break; + case FilterMode::EXACT: + model->applyStrictFilter(filterValues); + break; } } else @@ -857,6 +860,9 @@ void DataView::applyFilter() case DataView::FilterMode::REGEXP: model->applyRegExpFilter(value); break; + case DataView::FilterMode::EXACT: + model->applyStrictFilter(value); + break; } } } @@ -938,19 +944,22 @@ void DataView::formViewFocusFirstEditor() void DataView::recreateFilterInputs() { + if (!model->features().testFlag(SqlQueryModel::FILTERING)) + return; + qApp->processEvents(); - for (QLineEdit* edit : filterInputs) + for (ExtLineEdit*& edit : filterInputs) delete edit; filterInputs.clear(); filterLeftSpacer->setFixedSize(gridView->verticalHeader()->width() + 1, 1); - QLineEdit* edit = nullptr; + ExtLineEdit* edit = nullptr; for (int i = 0, total = gridView->horizontalHeader()->count(); i < total; ++i) { - edit = new QLineEdit(perColumnWidget); + edit = new ExtLineEdit(perColumnWidget); edit->setPlaceholderText(tr("Filter")); edit->setClearButtonEnabled(true); edit->setFixedWidth(gridView->columnWidth(i)); @@ -982,20 +991,24 @@ void DataView::recreateFilterInputs() void DataView::createFilteringActions() { - createAction(FILTER_STRING, ICONS.APPLY_FILTER_TXT, tr("Filter by text", "data view"), this, SLOT(filterModeSelected()), this); + createAction(FILTER_STRING, ICONS.APPLY_FILTER_TXT, tr("Filter by text (if contains)", "data view"), this, SLOT(filterModeSelected()), this); + createAction(FILTER_EXACT, ICONS.APPLY_FILTER_TXT_STRICT, tr("Filter strictly by text (if equals)", "data view"), this, SLOT(filterModeSelected()), this); createAction(FILTER_REGEXP, ICONS.APPLY_FILTER_RE, tr("Filter by the Regular Expression", "data view"), this, SLOT(filterModeSelected()), this); createAction(FILTER_SQL, ICONS.APPLY_FILTER_SQL, tr("Filter by SQL expression", "data view"), this, SLOT(filterModeSelected()), this); actionMap[FILTER_STRING]->setProperty(DATA_VIEW_FILTER_PROP, static_cast(FilterMode::STRING)); + actionMap[FILTER_EXACT]->setProperty(DATA_VIEW_FILTER_PROP, static_cast(FilterMode::EXACT)); actionMap[FILTER_REGEXP]->setProperty(DATA_VIEW_FILTER_PROP, static_cast(FilterMode::REGEXP)); actionMap[FILTER_SQL]->setProperty(DATA_VIEW_FILTER_PROP, static_cast(FilterMode::SQL)); QActionGroup* filterGroup = new QActionGroup(gridToolBar); filterGroup->addAction(actionMap[FILTER_STRING]); + filterGroup->addAction(actionMap[FILTER_EXACT]); filterGroup->addAction(actionMap[FILTER_SQL]); filterGroup->addAction(actionMap[FILTER_REGEXP]); actionMap[FILTER_STRING]->setCheckable(true); + actionMap[FILTER_EXACT]->setCheckable(true); actionMap[FILTER_REGEXP]->setCheckable(true); actionMap[FILTER_SQL]->setCheckable(true); actionMap[FILTER_STRING]->setChecked(true); @@ -1006,6 +1019,7 @@ void DataView::createFilteringActions() actionMap[FILTER_VALUE] = gridToolBar->addWidget(filterEdit); createAction(FILTER, tr("Apply filter", "data view"), this, SLOT(applyFilter()), gridToolBar); attachActionInMenu(FILTER, actionMap[FILTER_STRING], gridToolBar); + attachActionInMenu(FILTER, actionMap[FILTER_EXACT], gridToolBar); attachActionInMenu(FILTER, actionMap[FILTER_REGEXP], gridToolBar); attachActionInMenu(FILTER, actionMap[FILTER_SQL], gridToolBar); addSeparatorInMenu(FILTER, gridToolBar); @@ -1018,7 +1032,8 @@ void DataView::createFilteringActions() gridView->getHeaderContextMenu()->addAction(actionMap[FILTER_PER_COLUMN]); } -void DataView::columnsHeaderClicked(int columnIdx) + +void DataView::columnsHeaderDoubleClicked(int columnIdx) { model->changeSorting(columnIdx); } @@ -1038,8 +1053,6 @@ void DataView::tabChanged(int newIndex) if (!gridView->getCurrentIndex().isValid() && model->rowCount() > 0) gridView->setCurrentRow(0); - int row = gridView->getCurrentIndex().row(); - model->loadFullDataForEntireRow(row); formView->updateFromGrid(); updateCurrentFormViewRow(); break; diff --git a/SQLiteStudio3/guiSQLiteStudio/dataview.h b/SQLiteStudio3/guiSQLiteStudio/dataview.h index 55c7895..d8f71dc 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dataview.h +++ b/SQLiteStudio3/guiSQLiteStudio/dataview.h @@ -26,8 +26,7 @@ CFG_KEY_LIST(DataView, QObject::tr("Data view (both grid and form)"), class GUI_API_EXPORT DataView : public QTabWidget, public ExtActionContainer { - Q_OBJECT - Q_ENUMS(Action) + Q_OBJECT public: enum Action @@ -48,6 +47,7 @@ class GUI_API_EXPORT DataView : public QTabWidget, public ExtActionContainer FILTER_STRING, FILTER_SQL, FILTER_REGEXP, + FILTER_EXACT, FILTER_PER_COLUMN, GRID_TOTAL_ROWS, SELECTIVE_COMMIT, @@ -59,6 +59,7 @@ class GUI_API_EXPORT DataView : public QTabWidget, public ExtActionContainer FORM_TOTAL_ROWS, FORM_CURRENT_ROW }; + Q_ENUM(Action) enum class ActionGroup { @@ -113,7 +114,8 @@ class GUI_API_EXPORT DataView : public QTabWidget, public ExtActionContainer { STRING, SQL, - REGEXP + REGEXP, + EXACT }; static void createStaticActions(); @@ -169,7 +171,7 @@ class GUI_API_EXPORT DataView : public QTabWidget, public ExtActionContainer bool uncommittedGrid = false; bool uncommittedForm = false; WidgetCover* widgetCover = nullptr; - QList filterInputs; + QList filterInputs; QStringList filterValues; QWidget* filterLeftSpacer = nullptr; QWidget* filterRightSpacer = nullptr; @@ -203,7 +205,7 @@ class GUI_API_EXPORT DataView : public QTabWidget, public ExtActionContainer void prevRow(); void nextRow(); void lastRow(); - void columnsHeaderClicked(int columnIdx); + void columnsHeaderDoubleClicked(int columnIdx); void tabChanged(int newIndex); void updateFormNavigationState(); void updateFormCommitRollbackActions(); diff --git a/SQLiteStudio3/guiSQLiteStudio/dblistmodel.cpp b/SQLiteStudio3/guiSQLiteStudio/dblistmodel.cpp index a03675f..61bca90 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dblistmodel.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/dblistmodel.cpp @@ -172,6 +172,9 @@ void DbListModel::dbDisconnected(Db* db) comboBox->setCurrentText(current); else if (newIdx > -1) comboBox->setCurrentIndex(newIdx); + + if (dbList.isEmpty()) + emit listCleared(); } DbListModel::DbTreeComparer::DbTreeComparer() diff --git a/SQLiteStudio3/guiSQLiteStudio/dblistmodel.h b/SQLiteStudio3/guiSQLiteStudio/dblistmodel.h index c375674..1bff305 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dblistmodel.h +++ b/SQLiteStudio3/guiSQLiteStudio/dblistmodel.h @@ -68,6 +68,9 @@ class GUI_API_EXPORT DbListModel : public QAbstractListModel private slots: void dbConnected(Db* db); void dbDisconnected(Db* db); + + signals: + void listCleared(); }; #endif // DBLISTMODEL_H diff --git a/SQLiteStudio3/guiSQLiteStudio/dbobjectdialogs.cpp b/SQLiteStudio3/guiSQLiteStudio/dbobjectdialogs.cpp index 05b614b..42f2841 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dbobjectdialogs.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/dbobjectdialogs.cpp @@ -4,6 +4,7 @@ #include "dialogs/triggerdialog.h" #include "common/utils_sql.h" #include "dbtree/dbtree.h" +#include "schemaresolver.h" #include "services/notifymanager.h" #include "mdiarea.h" #include "mdiwindow.h" @@ -121,27 +122,31 @@ ViewWindow* DbObjectDialogs::editView(const QString& database, const QString& vi return win; } -void DbObjectDialogs::editObject(const QString& name) +void DbObjectDialogs::editObject(Type type, const QString& name) { - editObject("main", name); + editObject(type, "main", name); } -void DbObjectDialogs::editObject(const QString& database, const QString& name) +void DbObjectDialogs::editObject(Type type, const QString& database, const QString& name) { - Type type = getObjectType(database, name); + SchemaResolver schemaResolver(db); + QString normalizedName = schemaResolver.normalizeCaseObjectName(database, name); + if (type == Type::UNKNOWN) + type = getObjectType(database, normalizedName); + switch (type) { case Type::TABLE: - editTable(database, name); + editTable(database, normalizedName); break; case Type::INDEX: - editIndex(name); + editIndex(normalizedName); break; case Type::TRIGGER: - editTrigger(name); + editTrigger(normalizedName); break; case Type::VIEW: - editView(database, name); + editView(database, normalizedName); break; default: { @@ -151,19 +156,20 @@ void DbObjectDialogs::editObject(const QString& database, const QString& name) } } -bool DbObjectDialogs::dropObject(const QString& name) +bool DbObjectDialogs::dropObject(Type type, const QString& name) { - return dropObject("main", name); + return dropObject(type, "main", name); } -bool DbObjectDialogs::dropObject(const QString& database, const QString& name) +bool DbObjectDialogs::dropObject(Type type, const QString& database, const QString& name) { - static const QString dropSql2 = "DROP %1 %2;"; static const QString dropSql3 = "DROP %1 %2.%3;"; QString dbName = wrapObjIfNeeded(database); - Type type = getObjectType(database, name); + if (type == Type::UNKNOWN) + type = getObjectType(database, name); + QString title; QString message; QString typeForSql; @@ -210,7 +216,7 @@ bool DbObjectDialogs::dropObject(const QString& database, const QString& name) results = db->exec(finalSql); if (results->isError()) { - notifyError(tr("Error while dropping %1: %2").arg(name).arg(results->getErrorText())); + notifyError(tr("Error while dropping %1: %2").arg(name, results->getErrorText())); qCritical() << "Error while dropping object " << database << "." << name << ":" << results->getErrorText(); return false; } @@ -366,7 +372,7 @@ void DbObjectDialogs::setNoConfirmation(bool value) TableWindow* DbObjectDialogs::editTable(const QString& database, const QString& table) { TableWindow* win = nullptr; - for (MdiWindow* mdiWin : mdiArea->getWindows()) + for (MdiWindow*& mdiWin : mdiArea->getWindows()) { win = dynamic_cast(mdiWin->getMdiChild()); if (!win) diff --git a/SQLiteStudio3/guiSQLiteStudio/dbobjectdialogs.h b/SQLiteStudio3/guiSQLiteStudio/dbobjectdialogs.h index 5be09cc..7003356 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dbobjectdialogs.h +++ b/SQLiteStudio3/guiSQLiteStudio/dbobjectdialogs.h @@ -17,6 +17,15 @@ class GUI_API_EXPORT DbObjectDialogs : public QObject Q_OBJECT public: + enum class Type + { + TABLE = 0, + INDEX = 1, + TRIGGER = 2, + VIEW = 3, + UNKNOWN = -1 + }; + explicit DbObjectDialogs(Db* db); DbObjectDialogs(Db* db, QWidget* parentWidget); @@ -35,10 +44,10 @@ class GUI_API_EXPORT DbObjectDialogs : public QObject ViewWindow* addView(const QString& initialSelect = QString()); ViewWindow* editView(const QString& database, const QString& view); - void editObject(const QString& name); - void editObject(const QString& database, const QString& name); - bool dropObject(const QString& name); - bool dropObject(const QString& database, const QString& name); + void editObject(Type type, const QString& name); + void editObject(Type type, const QString& database, const QString& name); + bool dropObject(Type type, const QString& name); + bool dropObject(Type type, const QString& database, const QString& name); bool dropObjects(const QStringList& names); bool dropObjects(const QHash& objects); @@ -49,15 +58,6 @@ class GUI_API_EXPORT DbObjectDialogs : public QObject void setNoSchemaRefreshing(bool value); private: - enum class Type - { - TABLE = 0, - INDEX = 1, - TRIGGER = 2, - VIEW = 3, - UNKNOWN = -1 - }; - Type getObjectType(const QString& database, const QString& name); QHash > groupObjects(const QHash& objects); diff --git a/SQLiteStudio3/guiSQLiteStudio/dbtree/dbtree.cpp b/SQLiteStudio3/guiSQLiteStudio/dbtree/dbtree.cpp index 85a7047..0540aae 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dbtree/dbtree.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/dbtree/dbtree.cpp @@ -3,7 +3,6 @@ #include "ui_dbtree.h" #include "actionentry.h" #include "common/utils_sql.h" -#include "common/utils.h" #include "dbtreemodel.h" #include "dialogs/dbdialog.h" #include "services/dbmanager.h" @@ -11,14 +10,11 @@ #include "common/global.h" #include "services/notifymanager.h" #include "mainwindow.h" -#include "mdiarea.h" #include "common/unused.h" #include "dbobjectdialogs.h" #include "common/userinputfilter.h" #include "common/widgetcover.h" #include "windows/tablewindow.h" -#include "dialogs/indexdialog.h" -#include "dialogs/triggerdialog.h" #include "dialogs/exportdialog.h" #include "dialogs/importdialog.h" #include "dialogs/populatedialog.h" @@ -30,6 +26,8 @@ #include "dialogs/execfromfiledialog.h" #include "dialogs/fileexecerrorsdialog.h" #include "common/compatibility.h" +#include "sqlfileexecutor.h" +#include "common/mouseshortcut.h" #include #include #include @@ -76,6 +74,8 @@ void DbTree::init() THEME_TUNER->manageCompactLayout(widget()); + fileExecutor = new SqlFileExecutor(this); + ui->nameFilter->setClearButtonEnabled(true); treeRefreshWidgetCover = new WidgetCover(this); @@ -87,25 +87,12 @@ void DbTree::init() fileExecWidgetCover->initWithInterruptContainer(); fileExecWidgetCover->displayProgress(100); fileExecWidgetCover->hide(); - connect(fileExecWidgetCover, &WidgetCover::cancelClicked, [this]() - { - if (!this->executingQueriesFromFile) - return; - - this->executingQueriesFromFile = 0; - - if (this->executingQueriesFromFileDb) // should always be there, but just in case - { - this->executingQueriesFromFileDb->interrupt(); - this->executingQueriesFromFileDb->rollback(); - this->executingQueriesFromFileDb = nullptr; - notifyWarn(tr("Execution from file cancelled. Any queries executed so far have been rolled back.")); - } - }); - connect(this, &DbTree::updateFileExecProgress, this, &DbTree::setFileExecProgress, Qt::QueuedConnection); - connect(this, &DbTree::fileExecCoverToBeClosed, this, &DbTree::hideFileExecCover, Qt::QueuedConnection); - connect(this, &DbTree::fileExecErrors, this, &DbTree::showFileExecErrors, Qt::QueuedConnection); - connect(this, SIGNAL(schemaNeedsRefreshing(Db*)), this, SLOT(refreshSchema(Db*)), Qt::QueuedConnection); + connect(fileExecWidgetCover, &WidgetCover::cancelClicked, fileExecutor, &SqlFileExecutor::stopExecution); + connect(fileExecutor, SIGNAL(updateProgress(int)), this, SLOT(setFileExecProgress(int)), Qt::QueuedConnection); + connect(fileExecutor, SIGNAL(execEnded()), this, SLOT(hideFileExecCover()), Qt::QueuedConnection); + connect(fileExecutor, SIGNAL(execErrors(QList>, bool)), this, SLOT(showFileExecErrors(QList>, bool)), + Qt::QueuedConnection); + connect(fileExecutor, SIGNAL(schemaNeedsRefreshing(Db*)), this, SLOT(refreshSchema(Db*)), Qt::QueuedConnection); treeModel = new DbTreeModel(); treeModel->setTreeView(ui->treeView); @@ -127,6 +114,13 @@ void DbTree::init() connect(IMPORT_MANAGER, SIGNAL(schemaModified(Db*)), this, SLOT(refreshSchema(Db*))); connect(CFG_UI.Fonts.DbTree, SIGNAL(changed(QVariant)), this, SLOT(refreshFont())); + MouseShortcut::forWheel(Qt::ControlModifier, this, SLOT(fontSizeChangeRequested(int)), ui->treeView->viewport()); + + connect(treeModel, SIGNAL(rowsInserted(QModelIndex,int,int)), this, SIGNAL(sessionValueChanged())); + connect(treeModel, SIGNAL(rowsMoved(QModelIndex,int,int,QModelIndex,int)), this, SIGNAL(sessionValueChanged())); + connect(treeModel, SIGNAL(rowsRemoved(QModelIndex,int,int)), this, SIGNAL(sessionValueChanged())); + connect(ui->treeView, SIGNAL(expanded(QModelIndex)), this, SIGNAL(sessionValueChanged())); + connect(ui->treeView, SIGNAL(collapsed(QModelIndex)), this, SIGNAL(sessionValueChanged())); updateActionsForCurrent(); } @@ -179,6 +173,8 @@ void DbTree::createActions() createAction(GENERATE_DELETE, "DELETE", this, SLOT(generateDeleteForTable()), this); createAction(OPEN_DB_DIRECTORY, ICONS.DIRECTORY_OPEN_WITH_DB, tr("Open file's directory"), this, SLOT(openDbDirectory()), this); createAction(EXEC_SQL_FROM_FILE, ICONS.EXEC_SQL_FROM_FILE, tr("Execute SQL from file"), this, SLOT(execSqlFromFile()), this); + createAction(INCR_FONT_SIZE, tr("Increase font size", "database list"), this, SLOT(incrFontSize()), this); + createAction(DECR_FONT_SIZE, tr("Decrease font size", "database list"), this, SLOT(decrFontSize()), this); } void DbTree::updateActionStates(const QStandardItem *item) @@ -255,7 +251,7 @@ void DbTree::updateActionStates(const QStandardItem *item) break; case DbTreeItem::Type::TRIGGERS: { - if (parentItem->getType() == DbTreeItem::Type::TABLE) + if (parentItem && parentItem->getType() == DbTreeItem::Type::TABLE) { enabled << EDIT_TABLE << DEL_TABLE; enabled << ADD_INDEX << ADD_TRIGGER; @@ -271,7 +267,7 @@ void DbTree::updateActionStates(const QStandardItem *item) } case DbTreeItem::Type::TRIGGER: { - if (grandParentItem->getType() == DbTreeItem::Type::TABLE) + if (grandParentItem && grandParentItem->getType() == DbTreeItem::Type::TABLE) { enabled << EDIT_TABLE << DEL_TABLE; enabled << ADD_INDEX << ADD_TRIGGER; @@ -490,7 +486,7 @@ void DbTree::setupActionsForMenu(DbTreeItem* currItem, QMenu* contextMenu) { actions += ActionEntry(ADD_TRIGGER); actions += ActionEntry(_separator); - if (parentItem->getType() == DbTreeItem::Type::TABLE) + if (parentItem && parentItem->getType() == DbTreeItem::Type::TABLE) { actions += ActionEntry(ADD_TABLE); actions += ActionEntry(EDIT_TABLE); @@ -512,7 +508,7 @@ void DbTree::setupActionsForMenu(DbTreeItem* currItem, QMenu* contextMenu) actions += ActionEntry(EDIT_TRIGGER); actions += ActionEntry(DEL_TRIGGER); actions += ActionEntry(_separator); - if (grandParentItem->getType() == DbTreeItem::Type::TABLE) + if (grandParentItem && grandParentItem->getType() == DbTreeItem::Type::TABLE) { actions += ActionEntry(ADD_TABLE); actions += ActionEntry(EDIT_TABLE); @@ -707,7 +703,7 @@ bool DbTree::areDbTreeItemsValidForItem(QList srcItems, const DbTre srcDbs << srcItem->getDb(); } - for (DbTreeItem::Type srcType : srcTypes) + for (DbTreeItem::Type& srcType : srcTypes) { if (!allowedTypesInside[dstType].contains(srcType)) return false; @@ -854,27 +850,26 @@ void DbTree::editTrigger(DbTreeItem* item) dialogs.editTrigger(item->text()); } -void DbTree::delSelectedObject() -{ - Db* db = getSelectedOpenDb(); - if (!db) - return; +//void DbTree::delSelectedObject() +//{ +// Db* db = getSelectedOpenDb(); +// if (!db) +// return; - DbTreeItem* item = ui->treeView->currentItem(); - if (!item) - return; +// DbTreeItem* item = ui->treeView->currentItem(); +// if (!item) +// return; - DbObjectDialogs dialogs(db); - dialogs.dropObject(item->text()); // TODO add database prefix when supported -} +// DbObjectDialogs dialogs(db); +// dialogs.dropObject(item->text()); // TODO add database prefix when supported +//} void DbTree::filterUndeletableItems(QList& items) { QMutableListIterator it(items); - DbTreeItem::Type type; while (it.hasNext()) { - type = it.next()->getType(); + DbTreeItem::Type type = it.next()->getType(); switch (type) { case DbTreeItem::Type::TABLES: @@ -918,27 +913,28 @@ void DbTree::filterItemsWithParentInList(QList& items) void DbTree::deleteItem(DbTreeItem* item) { + DbObjectDialogs::Type objType = DbObjectDialogs::Type::UNKNOWN; switch (item->getType()) { case DbTreeItem::Type::DIR: treeModel->deleteGroup(item); - break; + return; case DbTreeItem::Type::DB: DBLIST->removeDb(item->getDb()); - break; + return; case DbTreeItem::Type::TABLE: case DbTreeItem::Type::VIRTUAL_TABLE: + objType = DbObjectDialogs::Type::TABLE; + break; case DbTreeItem::Type::INDEX: + objType = DbObjectDialogs::Type::INDEX; + break; case DbTreeItem::Type::TRIGGER: + objType = DbObjectDialogs::Type::TRIGGER; + break; case DbTreeItem::Type::VIEW: - { - Db* db = item->getDb(); - DbObjectDialogs dialogs(db); - dialogs.setNoConfirmation(true); // confirmation is done in deleteSelected() - dialogs.setNoSchemaRefreshing(true); // we will refresh after all items are deleted - dialogs.dropObject(item->text()); // TODO database name when supported + objType = DbObjectDialogs::Type::VIEW; break; - } case DbTreeItem::Type::TABLES: case DbTreeItem::Type::INDEXES: case DbTreeItem::Type::TRIGGERS: @@ -946,7 +942,16 @@ void DbTree::deleteItem(DbTreeItem* item) case DbTreeItem::Type::COLUMNS: case DbTreeItem::Type::COLUMN: case DbTreeItem::Type::ITEM_PROTOTYPE: - break; + return; + } + + if (objType != DbObjectDialogs::Type::UNKNOWN) + { + Db* db = item->getDb(); + DbObjectDialogs dialogs(db); + dialogs.setNoConfirmation(true); // confirmation is done in deleteSelected() + dialogs.setNoSchemaRefreshing(true); // we will refresh after all items are deleted + dialogs.dropObject(objType, item->text()); // TODO database name when supported } } @@ -1034,6 +1039,19 @@ void DbTree::refreshSchema(Db* db) treeModel->refreshSchema(db); updateActionsForCurrent(); + + for (MdiChild*& mdi : MAINWINDOW->getMdiArea()->getMdiChilds()) + { + EditorWindow* editor = dynamic_cast(mdi); + if (!editor) + continue; + + Db* editorDb = editor->getCurrentDb(); + if (!editorDb || editorDb != db) + continue; + + editor->refreshValidDbObjects(); + } } void DbTree::copy() @@ -1209,6 +1227,9 @@ void DbTree::disconnectFromDb() if (!db->isOpen()) return; + DbTreeItem* dbItem = ui->treeView->currentDbItem(); + ui->treeView->setCurrentIndex(dbItem->index()); + db->close(); } @@ -1667,6 +1688,17 @@ QList DbTree::getSelectedItems(DbTree::ItemFilterFunc filterFunc) return items; } +void DbTree::changeFontSize(int factor) +{ + auto f = CFG_UI.Fonts.DbTree.get(); + f.setPointSize(f.pointSize() + factor); + CFG_UI.Fonts.DbTree.set(f); + + f = CFG_UI.Fonts.DbTreeLabel.get(); + f.setPointSize(f.pointSize() + factor); + CFG_UI.Fonts.DbTreeLabel.set(f); +} + void DbTree::deleteItems(const QList& itemsToDelete) { QList items = itemsToDelete; @@ -1729,6 +1761,8 @@ void DbTree::deleteItems(const QList& itemsToDelete) refreshSchema(dbToRefresh); } + + emit sessionValueChanged(); } void DbTree::refreshSchemas() @@ -1771,16 +1805,33 @@ void DbTree::showFileExecErrors(const QList >& errors, b dialog.exec(); } +void DbTree::fontSizeChangeRequested(int delta) +{ + changeFontSize(delta >= 0 ? 1 : -1); +} + +void DbTree::incrFontSize() +{ + changeFontSize(1); +} + +void DbTree::decrFontSize() +{ + changeFontSize(-1); +} + void DbTree::dbConnected(Db* db) { updateActionsForCurrent(); updateDbIcon(db); + emit sessionValueChanged(); } void DbTree::dbDisconnected(Db* db) { updateActionsForCurrent(); updateDbIcon(db); + emit sessionValueChanged(); } void DbTree::updateDbIcon(Db* db) @@ -1861,156 +1912,11 @@ void DbTree::execSqlFromFile() if (res != QDialog::Accepted) return; - if (executingQueriesFromFile) + if (fileExecutor->isExecuting()) return; - // Exec file - executingQueriesFromFile = 1; - executingQueriesFromFileDb = db; - fileExecWidgetCover->setProgress(0); fileExecWidgetCover->show(); - if (!db->begin()) - { - notifyError(tr("Could not execute SQL, because application has failed to start transaction: %1").arg(db->getErrorText())); - fileExecWidgetCover->hide(); - return; - } - - QtConcurrent::run(this, &DbTree::execFromFileAsync, dialog.filePath(), db, dialog.ignoreErrors(), dialog.codec()); -} - -void DbTree::execFromFileAsync(const QString& path, Db* db, bool ignoreErrors, const QString& codec) -{ - // Open file - QFile file(path); - if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) - { - notifyError(tr("Could not open file '%1' for reading: %2").arg(path).arg(file.errorString())); - executingQueriesFromFile = 0; - emit fileExecCoverToBeClosed(); - return; - } - - - QTextStream stream(&file); - stream.setCodec(codec.toLatin1().constData()); - - qint64 fileSize = file.size(); - int attemptedExecutions = 0; - int executed = 0; - bool ok = true; - - QElapsedTimer timer; - timer.start(); - QList> errors = executeFileQueries(db, stream, executed, attemptedExecutions, ok, ignoreErrors, fileSize); - int millis = timer.elapsed(); - if (executingQueriesFromFile.loadAcquire()) - { - handleFileQueryExecution(db, executed, attemptedExecutions, ok, ignoreErrors, millis); - if (!errors.isEmpty()) - emit fileExecErrors(errors, !ok && !ignoreErrors); - } - - file.close(); - emit fileExecCoverToBeClosed(); - executingQueriesFromFile = 0; -} - -QList> DbTree::executeFileQueries(Db* db, QTextStream& stream, int& executed, int& attemptedExecutions, bool& ok, bool ignoreErrors, qint64 fileSize) -{ - QList> errors; - qint64 pos = 0; - QChar c; - QString sql; - sql.reserve(10000); - SqlQueryPtr results; - while (!stream.atEnd() && executingQueriesFromFile.loadAcquire()) - { - while (!db->isComplete(sql) && !stream.atEnd()) - { - stream >> c; - sql.append(c); - while (c != ';' && !stream.atEnd()) - { - stream >> c; - sql.append(c); - } - } - - if (shouldSkipQueryFromFileExecution(sql)) - { - sql.clear();; - continue; - } - - results = db->exec(sql); - attemptedExecutions++; - if (results->isError()) - { - ok = false; - errors << QPair(sql, results->getErrorText()); - - if (!ignoreErrors) - break; - } - else - executed++; - - sql.clear(); - if (attemptedExecutions % 100 == 0) - { - pos = stream.device()->pos(); - emit updateFileExecProgress(static_cast(100 * pos / fileSize)); - } - } - return errors; -} - -bool DbTree::shouldSkipQueryFromFileExecution(const QString& sql) -{ - if (sql.trimmed().isEmpty()) - return true; - - QString upper = sql.toUpper().trimmed().split("\n").last().trimmed(); - return (upper.startsWith("BEGIN") || - upper.startsWith("COMMIT") || - upper.startsWith("ROLLBACK") || - upper.startsWith("END")); -} - -void DbTree::handleFileQueryExecution(Db* db, int executed, int attemptedExecutions, bool ok, bool ignoreErrors, int millis) -{ - bool doCommit = ok ? true : ignoreErrors; - if (doCommit) - { - if (!db->commit()) - { - notifyError(tr("Could not execute SQL, because application has failed to commit the transaction: %1").arg(db->getErrorText())); - db->rollback(); - } - else if (!ok) // committed with errors - { - notifyInfo(tr("Finished executing %1 queries in %2 seconds. %3 were not executed due to errors.") - .arg(executed).arg(millis / 1000.0).arg(attemptedExecutions - executed)); - - emit schemaNeedsRefreshing(db); - } - else - { - notifyInfo(tr("Finished executing %1 queries in %2 seconds.").arg(executed).arg(millis / 1000.0)); - emit schemaNeedsRefreshing(db); - } - } - else - { - db->rollback(); - notifyError(tr("Could not execute SQL due to error.")); - } -} - -bool DbTree::execQueryFromFile(Db* db, const QString& sql) -{ - return !db->exec(sql)->isError(); + fileExecutor->execSqlFromFile(db, dialog.filePath(), dialog.ignoreErrors(), dialog.codec()); } void DbTree::setupDefShortcuts() diff --git a/SQLiteStudio3/guiSQLiteStudio/dbtree/dbtree.h b/SQLiteStudio3/guiSQLiteStudio/dbtree/dbtree.h index 62ef0df..e424a41 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dbtree/dbtree.h +++ b/SQLiteStudio3/guiSQLiteStudio/dbtree/dbtree.h @@ -21,25 +21,28 @@ class ViewWindow; class UserInputFilter; class DbTreeView; + +class SqlFileExecutor; namespace Ui { class DbTree; } CFG_KEY_LIST(DbTree, QObject::tr("Database list"), - CFG_KEY_ENTRY(DEL_SELECTED, Qt::Key_Delete, QObject::tr("Delete selected item")) - CFG_KEY_ENTRY(CLEAR_FILTER, Qt::Key_Escape, QObject::tr("Clear filter contents")) - CFG_KEY_ENTRY(REFRESH_SCHEMA, Qt::Key_F5, QObject::tr("Refresh schema")) - CFG_KEY_ENTRY(REFRESH_SCHEMAS, Qt::SHIFT + Qt::Key_F5, QObject::tr("Refresh all schemas")) - CFG_KEY_ENTRY(ADD_DB, Qt::CTRL + Qt::Key_O, QObject::tr("Add database")) - CFG_KEY_ENTRY(SELECT_ALL, Qt::CTRL + Qt::Key_A, QObject::tr("Select all items")) - CFG_KEY_ENTRY(COPY, Qt::CTRL + Qt::Key_C, QObject::tr("Copy selected item(s)")) - CFG_KEY_ENTRY(PASTE, Qt::CTRL + Qt::Key_V, QObject::tr("Paste from clipboard")) + CFG_KEY_ENTRY(DEL_SELECTED, Qt::Key_Delete, QObject::tr("Delete selected item")) + CFG_KEY_ENTRY(CLEAR_FILTER, Qt::Key_Escape, QObject::tr("Clear filter contents")) + CFG_KEY_ENTRY(REFRESH_SCHEMA, Qt::Key_F5, QObject::tr("Refresh schema")) + CFG_KEY_ENTRY(REFRESH_SCHEMAS, Qt::SHIFT + Qt::Key_F5, QObject::tr("Refresh all schemas")) + CFG_KEY_ENTRY(ADD_DB, Qt::CTRL + Qt::Key_O, QObject::tr("Add database")) + CFG_KEY_ENTRY(SELECT_ALL, Qt::CTRL + Qt::Key_A, QObject::tr("Select all items")) + CFG_KEY_ENTRY(COPY, Qt::CTRL + Qt::Key_C, QObject::tr("Copy selected item(s)")) + CFG_KEY_ENTRY(PASTE, Qt::CTRL + Qt::Key_V, QObject::tr("Paste from clipboard")) + CFG_KEY_ENTRY(INCR_FONT_SIZE, Qt::CTRL + Qt::Key_Plus, QObject::tr("Increase font size", "database list")) + CFG_KEY_ENTRY(DECR_FONT_SIZE, Qt::CTRL + Qt::Key_Minus, QObject::tr("Decrease font size", "database list")) ) class GUI_API_EXPORT DbTree : public QDockWidget, public ExtActionContainer { - Q_OBJECT - Q_ENUMS(Action) + Q_OBJECT public: friend class DbTreeView; @@ -92,8 +95,11 @@ class GUI_API_EXPORT DbTree : public QDockWidget, public ExtActionContainer GENERATE_DELETE, OPEN_DB_DIRECTORY, EXEC_SQL_FROM_FILE, + INCR_FONT_SIZE, + DECR_FONT_SIZE, _separator // Never use it directly, it's just for menu setup }; + Q_ENUM(Action) enum ToolBar { @@ -138,7 +144,7 @@ class GUI_API_EXPORT DbTree : public QDockWidget, public ExtActionContainer ViewWindow* newView(Db* db); void editIndex(DbTreeItem* item); void editTrigger(DbTreeItem* item); - void delSelectedObject(); +// void delSelectedObject(); void filterUndeletableItems(QList& items); void filterItemsWithParentInList(QList& items); void deleteItem(DbTreeItem* item); @@ -151,11 +157,7 @@ class GUI_API_EXPORT DbTree : public QDockWidget, public ExtActionContainer QString getSelectedViewName() const; QList getSelectedItems(DbTreeItem::Type itemType); QList getSelectedItems(ItemFilterFunc filterFunc = nullptr); - void execFromFileAsync(const QString& path, Db* db, bool ignoreErrors, const QString& codec); - bool execQueryFromFile(Db* db, const QString& sql); - void handleFileQueryExecution(Db* db, int executed, int attemptedExecutions, bool ok, bool ignoreErrors, int millis); - QList> executeFileQueries(Db* db, QTextStream& stream, int& executed, int& attemptedExecutions, bool& ok, bool ignoreErrors, qint64 fileSize); - bool shouldSkipQueryFromFileExecution(const QString& sql); + void changeFontSize(int factor); static bool areDbTreeItemsValidForItem(QList srcItems, const DbTreeItem* dstItem, bool forPasting = false); static bool areUrlsValidForItem(const QList& srcUrls, const DbTreeItem* dstItem); @@ -165,8 +167,7 @@ class GUI_API_EXPORT DbTree : public QDockWidget, public ExtActionContainer DbTreeModel* treeModel = nullptr; WidgetCover* treeRefreshWidgetCover = nullptr; WidgetCover* fileExecWidgetCover = nullptr; - QAtomicInt executingQueriesFromFile = 0; - Db* executingQueriesFromFileDb = nullptr; + SqlFileExecutor* fileExecutor = nullptr; static QHash> allowedTypesInside; static QSet draggableTypes; @@ -235,12 +236,15 @@ class GUI_API_EXPORT DbTree : public QDockWidget, public ExtActionContainer void setFileExecProgress(int newValue); void hideFileExecCover(); void showFileExecErrors(const QList>& errors, bool rolledBack); + void fontSizeChangeRequested(int delta); + void incrFontSize(); + void decrFontSize(); signals: void updateFileExecProgress(int value); void fileExecCoverToBeClosed(); void fileExecErrors(const QList>& errors, bool rolledBack); - void schemaNeedsRefreshing(Db* db); + void sessionValueChanged(); }; int qHash(DbTree::Action action); diff --git a/SQLiteStudio3/guiSQLiteStudio/dbtree/dbtreemodel.cpp b/SQLiteStudio3/guiSQLiteStudio/dbtree/dbtreemodel.cpp index 436ab50..6620290 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dbtree/dbtreemodel.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/dbtree/dbtreemodel.cpp @@ -420,7 +420,7 @@ QString DbTreeModel::getDbToolTip(DbTreeItem* item) const fileSize = QFile(db->getPath()).size(); rows << toolTipHdrRowTmp.arg(iconPath).arg(tr("Database: %1", "dbtree tooltip").arg(db->getName())); - rows << toolTipRowTmp.arg("URI:").arg(db->getPath()); + rows << toolTipRowTmp.arg(tr("URI:", "dbtree tooltip")).arg(toNativePath(db->getPath())); if (db->isValid()) { @@ -714,6 +714,7 @@ void DbTreeModel::dbConnected(Db* db, bool expandItem) if (CFG_UI.General.ExpandViews.get()) treeView->expand(item->model()->index(1, 0, item->index())); // also expand views } + treeView->setCurrentIndex(item->index()); } void DbTreeModel::dbDisconnected(Db* db) diff --git a/SQLiteStudio3/guiSQLiteStudio/dbtree/dbtreeview.cpp b/SQLiteStudio3/guiSQLiteStudio/dbtree/dbtreeview.cpp index 9382d7c..797652a 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dbtree/dbtreeview.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/dbtree/dbtreeview.cpp @@ -45,6 +45,15 @@ DbTreeItem *DbTreeView::currentItem() return dynamic_cast(model()->itemFromIndex(currentIndex())); } +DbTreeItem* DbTreeView::currentDbItem() +{ + DbTreeItem* item = currentItem(); + if (item->getType() == DbTreeItem::Type::DB) + return item; + + return item->findParentItem(DbTreeItem::Type::DB); +} + DbTreeItem *DbTreeView::itemAt(const QPoint &pos) { return dynamic_cast(model()->itemFromIndex(indexAt(pos))); diff --git a/SQLiteStudio3/guiSQLiteStudio/dbtree/dbtreeview.h b/SQLiteStudio3/guiSQLiteStudio/dbtree/dbtreeview.h index 3ec33b4..3fa0255 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dbtree/dbtreeview.h +++ b/SQLiteStudio3/guiSQLiteStudio/dbtree/dbtreeview.h @@ -22,6 +22,7 @@ class GUI_API_EXPORT DbTreeView : public QTreeView DbTree* getDbTree() const; DbTreeItem *currentItem(); + DbTreeItem *currentDbItem(); DbTreeItem *itemAt(const QPoint& pos); QList selectionItems(); DbTreeModel *model() const; diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/aboutdialog.cpp b/SQLiteStudio3/guiSQLiteStudio/dialogs/aboutdialog.cpp index 7e084fb..26a9f52 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dialogs/aboutdialog.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/aboutdialog.cpp @@ -1,16 +1,18 @@ #include "aboutdialog.h" #include "ui_aboutdialog.h" #include "common/utils.h" -#include "sqlitestudio.h" #include "iconmanager.h" #include "services/extralicensemanager.h" #include "services/pluginmanager.h" +#include "services/sqliteextensionmanager.h" #include "formmanager.h" #include "iconmanager.h" +#include "mainwindow.h" #include #include #include #include +#include AboutDialog::AboutDialog(InitialMode initialMode, QWidget *parent) : QDialog(parent), @@ -38,8 +40,8 @@ void AboutDialog::init(InitialMode initialMode) case DistributionType::PORTABLE: distName = tr("Portable distribution."); break; - case DistributionType::OSX_BOUNDLE: - distName = tr("MacOS X application boundle distribution."); + case DistributionType::OSX_BUNDLE: + distName = tr("MacOS X application bundle distribution."); break; case DistributionType::OS_MANAGED: distName = tr("Operating system managed distribution."); @@ -75,28 +77,21 @@ void AboutDialog::init(InitialMode initialMode) licenseContents.clear(); // Environment - ui->appDirEdit->setText(qApp->applicationDirPath()); - ui->cfgDirEdit->setText(CFG->getConfigDir()); - ui->pluginDirList->addItems(filterResourcePaths(PLUGINS->getPluginDirs())); - ui->iconDirList->addItems(filterResourcePaths(ICONMANAGER->getIconDirs())); - ui->formDirList->addItems(filterResourcePaths(FORMS->getFormDirs())); + ui->appDirEdit->setText(toNativePath(qApp->applicationDirPath())); + ui->cfgDirEdit->setText(toNativePath(CFG->getConfigDir())); + ui->pluginDirList->setPlainText(filterResourcePaths(PLUGINS->getPluginDirs()).join("\n")); + ui->iconDirList->setPlainText(filterResourcePaths(ICONMANAGER->getIconDirs()).join("\n")); + ui->formDirList->setPlainText(filterResourcePaths(FORMS->getFormDirs()).join("\n")); + ui->extensionDirList->setPlainText(filterResourcePaths(SQLITE_EXTENSIONS->getExtensionDirs()).join("\n")); ui->qtVerEdit->setText(QT_VERSION_STR); ui->sqlite3Edit->setText(CFG->getSqlite3Version()); - - QAction* copyAct; - for (QListWidget* w : {ui->pluginDirList, ui->iconDirList, ui->formDirList}) - { - copyAct = new QAction(tr("Copy"), w); - w->addAction(copyAct); - connect(copyAct, SIGNAL(triggered()), this, SLOT(copy())); - } } void AboutDialog::buildIndex() { static const QString entryTpl = QStringLiteral("
  • %1
  • "); QStringList entries; - for (const QString& idx : indexContents) + for (QString& idx : indexContents) entries += entryTpl.arg(idx); licenseContents.prepend(tr("

    Table of contents:

      %2
    ").arg(entries.join(""))); @@ -135,24 +130,8 @@ QStringList AboutDialog::filterResourcePaths(const QStringList& paths) if (path.startsWith(":")) continue; - output << path; + QString newPath = toNativePath(path); + output << newPath; } return output; } - -void AboutDialog::copy() -{ - QListWidget* list = dynamic_cast(sender()->parent()); - if (!list) - return; - - QList items = list->selectedItems(); - if (items.size() == 0) - return; - - QStringList lines; - for (QListWidgetItem* item : items) - lines << item->text(); - - QApplication::clipboard()->setText(lines.join("\n")); -} diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/aboutdialog.h b/SQLiteStudio3/guiSQLiteStudio/dialogs/aboutdialog.h index a43daec..73d891d 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dialogs/aboutdialog.h +++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/aboutdialog.h @@ -34,9 +34,6 @@ class GUI_API_EXPORT AboutDialog : public QDialog Ui::AboutDialog *ui = nullptr; QStringList indexContents; QString licenseContents; - - private slots: - void copy(); }; #endif // ABOUTDIALOG_H diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/aboutdialog.ui b/SQLiteStudio3/guiSQLiteStudio/dialogs/aboutdialog.ui index 16a6e1f..fda2099 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dialogs/aboutdialog.ui +++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/aboutdialog.ui @@ -7,7 +7,7 @@ 0 0 741 - 447 + 500
    @@ -17,7 +17,7 @@ - 0 + 2 @@ -55,70 +55,51 @@ Environment - - - - Icon directories - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + true - - - - Qt::ActionsContextMenu - - - QAbstractItemView::ExtendedSelection + + + + - - + + - Form directories + Configuration directory Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - Qt::ActionsContextMenu - - - QAbstractItemView::ExtendedSelection - - - - - + + - Plugin directories + Qt version: Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - Configuration directory - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + true - - + + - Application directory + Icon directories Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter @@ -126,12 +107,16 @@ - - - Qt::ActionsContextMenu + + + true - - QAbstractItemView::ExtendedSelection + + + + + + true @@ -142,31 +127,34 @@ - - + + - Qt version: + + + + + + + + Plugin directories Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - + + - + Application directory - - - - - - true + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - + SQLite 3 version: @@ -176,10 +164,30 @@ - - + + - + Form directories + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + true + + + + + + + SQLite extension directories + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/bindparamsdialog.cpp b/SQLiteStudio3/guiSQLiteStudio/dialogs/bindparamsdialog.cpp index 1d7ba66..90f816f 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dialogs/bindparamsdialog.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/bindparamsdialog.cpp @@ -44,20 +44,21 @@ void BindParamsDialog::init() void BindParamsDialog::initEditors() { QStringList paramNames; - for (BindParam* param : bindParams) + for (BindParam*& param : bindParams) paramNames << param->originalName; MultiEditor* firstEditor = nullptr; MultiEditor* multiEditor = nullptr; QVector> paramHistory = CFG->getBindParamHistory(paramNames); - for (BindParam* param : bindParams) + for (BindParam*& param : bindParams) { multiEditor = initEditor(param, paramHistory.size() > param->position ? paramHistory[param->position].second : QVariant()); if (firstEditor == nullptr) firstEditor = multiEditor; } - firstEditor->focusThisEditor(); + if (firstEditor) + firstEditor->focusThisEditor(); } MultiEditor* BindParamsDialog::initEditor(BindParam* param, const QVariant& cachedValue) diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/bindparamsdialog.h b/SQLiteStudio3/guiSQLiteStudio/dialogs/bindparamsdialog.h index 666ffc4..99adca6 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dialogs/bindparamsdialog.h +++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/bindparamsdialog.h @@ -27,7 +27,7 @@ class BindParamsDialog : public QDialog static const int margins = 2; static const int spacing = 2; - static const int minimumFieldHeight = 80; + static const int minimumFieldHeight = 120; Ui::BindParamsDialog *ui; QVector bindParams; diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/columndialog.cpp b/SQLiteStudio3/guiSQLiteStudio/dialogs/columndialog.cpp index ebf9253..a217da6 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dialogs/columndialog.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/columndialog.cpp @@ -1,5 +1,6 @@ #include "columndialog.h" #include "common/unused.h" +#include "services/notifymanager.h" #include "ui_columndialog.h" #include "columndialogconstraintsmodel.h" #include "iconmanager.h" @@ -36,10 +37,6 @@ void ColumnDialog::init() ui->scale->setStrict(true, true); ui->precision->setStrict(true, true); - ui->typeCombo->addItem(""); - for (DataType::Enum type : DataType::getAllTypes()) - ui->typeCombo->addItem(DataType::toString(type)); - connect(ui->typeCombo, SIGNAL(currentTextChanged(QString)), this, SLOT(updateDataType())); constraintsModel = new ColumnDialogConstraintsModel(); @@ -54,7 +51,7 @@ void ColumnDialog::init() connect(ui->constraintsView, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(editConstraint(QModelIndex))); connect(constraintsModel, SIGNAL(constraintsChanged()), this, SLOT(updateValidations())); connect(constraintsModel, SIGNAL(constraintsChanged()), this, SLOT(updateState())); - connect(ui->typeCombo, SIGNAL(currentTextChanged(const QString&)), this, SLOT(updateValidations())); + connect(ui->typeCombo, SIGNAL(currentTextChanged(QString)), this, SLOT(updateValidations())); connect(ui->scale, SIGNAL(modified()), this, SLOT(updateValidations())); connect(ui->precision, SIGNAL(modified()), this, SLOT(updateValidations())); @@ -617,7 +614,7 @@ void ColumnDialog::updateValidations() setValidState(tb, true); } - for (SqliteCreateTable::Column::Constraint* constr : column->constraints) + for (SqliteCreateTable::Column::Constraint*& constr : column->constraints) updateConstraint(constr); updateTypeValidations(); @@ -640,11 +637,40 @@ void ColumnDialog::setColumn(SqliteCreateTable::Column* value) constraintsModel->setColumn(column.data()); ui->name->setText(value->name); - if (value->type) + + SqliteCreateTable* createTable = dynamic_cast(value->parentStatement()); + if (createTable->strict) + { + ui->typeCombo->setEditable(false); + for (DataType::Enum& type : DataType::getStrictValues()) + ui->typeCombo->addItem(DataType::toString(type)); + + ui->scale->setVisible(false); + ui->precision->setVisible(false); + ui->sizeLabel->setVisible(false); + ui->sizeCommaLabel->setVisible(false); + + if (value->type) + { + int idx = ui->typeCombo->findText(value->type->name, Qt::MatchFixedString); + if (idx > -1) + ui->typeCombo->setCurrentIndex(idx); + else + notifyError(tr("Could not match valid STRICT table datatype from declared type: %1.").arg(value->type->name)); + } + } + else { - ui->typeCombo->setEditText(value->type->name); - ui->scale->setValue(value->type->scale, false); - ui->precision->setValue(value->type->precision, false); + ui->typeCombo->addItem(""); + for (DataType::Enum& type : DataType::getAllTypesForUiDropdown()) + ui->typeCombo->addItem(DataType::toString(type)); + + if (value->type) + { + ui->typeCombo->setEditText(value->type->name); + ui->scale->setValue(value->type->scale, false); + ui->precision->setValue(value->type->precision, false); + } } updateValidations(); diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/columndialog.ui b/SQLiteStudio3/guiSQLiteStudio/dialogs/columndialog.ui index 6094ab1..8ff75fd 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dialogs/columndialog.ui +++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/columndialog.ui @@ -7,7 +7,7 @@ 0 0 467 - 393 + 431 @@ -37,7 +37,7 @@ - + , diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/configdialog.cpp b/SQLiteStudio3/guiSQLiteStudio/dialogs/configdialog.cpp index be45873..8c80f6d 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dialogs/configdialog.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/configdialog.cpp @@ -1,6 +1,5 @@ #include "configdialog.h" #include "ui_configdialog.h" -#include "services/config.h" #include "uiconfig.h" #include "customconfigwidgetplugin.h" #include "services/pluginmanager.h" @@ -17,14 +16,18 @@ #include "plugins/confignotifiableplugin.h" #include "mainwindow.h" #include "common/unused.h" -#include "sqlitestudio.h" #include "configmapper.h" #include "datatype.h" #include "uiutils.h" +#include "common/utils.h" #include "translations.h" #include "plugins/uiconfiguredplugin.h" #include "dbtree/dbtree.h" #include "common/compatibility.h" +#include "windows/editorwindow.h" +#include "syntaxhighlighterplugin.h" +#include "sqleditor.h" +#include "style.h" #include #include #include @@ -39,7 +42,9 @@ #include #include #include +#include #include +#include #define GET_FILTER_STRING(Widget, WidgetType, Method) \ if (qobject_cast(Widget))\ @@ -50,6 +55,18 @@ if (w##WidgetType)\ return getFilterString(w##WidgetType) + " " + Widget->toolTip(); +class ConfigDialogItemDelegate : public QItemDelegate +{ + public: + QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const + { + QVariant userData = index.data(Qt::UserRole); + bool isCategory = userData.isValid() && userData.toBool(); + QSize size = QItemDelegate::sizeHint(option, index); + return isCategory ? QSize(size.width(), size.height() * 1.7) : size; + } +}; + ConfigDialog::ConfigDialog(QWidget *parent) : QDialog(parent), ui(new Ui::ConfigDialog) @@ -59,12 +76,14 @@ ConfigDialog::ConfigDialog(QWidget *parent) : ConfigDialog::~ConfigDialog() { + rollbackColorsConfig(); + // Cancel transaction on CfgMain objects from plugins rollbackPluginConfigs(); // Notify plugins about dialog being closed UiConfiguredPlugin* cfgPlugin = nullptr; - for (Plugin* plugin : PLUGINS->getLoadedPlugins()) + for (Plugin*& plugin : PLUGINS->getLoadedPlugins()) { cfgPlugin = dynamic_cast(plugin); if (!cfgPlugin) @@ -74,14 +93,14 @@ ConfigDialog::~ConfigDialog() } // Delete UI and other resources + qDeleteAll(colorPreviewEditors); delete ui; safe_delete(configMapper); - for (ConfigMapper* mapper : pluginConfigMappers.values()) + for (ConfigMapper*& mapper : pluginConfigMappers) delete mapper; pluginConfigMappers.clear(); - } void ConfigDialog::configureDataEditors(const QString& dataTypeString) @@ -161,6 +180,23 @@ QString ConfigDialog::getFilterString(QTableWidget *widget) return strList.join(" "); } +void ConfigDialog::showEvent(QShowEvent* event) +{ + UNUSED(event); + ui->categoriesTree->resizeColumnToContents(0); + int adjustedColumnWidth = ui->categoriesTree->columnWidth(0) + 4; + if (adjustedColumnWidth > ui->categoriesTree->width()) { + if (adjustedColumnWidth > (width() / 2)) + adjustedColumnWidth = width() / 2; + + QList sizes = ui->splitter->sizes(); + int rightPartSize = sizes[0] + sizes[1] - adjustedColumnWidth; + sizes[0] = adjustedColumnWidth; + sizes[1] = rightPartSize; + ui->splitter->setSizes(sizes); + } +} + void ConfigDialog::init() { ui->setupUi(this); @@ -184,12 +220,15 @@ void ConfigDialog::init() initDataEditors(); initShortcuts(); initLangs(); + initTooltips(); + initColors(); connect(ui->categoriesTree, SIGNAL(currentItemChanged(QTreeWidgetItem*,QTreeWidgetItem*)), this, SLOT(switchPage(QTreeWidgetItem*))); connect(ui->previewTabs, SIGNAL(currentChanged(int)), this, SLOT(updateStylePreview())); connect(ui->activeStyleCombo, SIGNAL(currentTextChanged(QString)), this, SLOT(updateStylePreview())); connect(ui->buttonBox->button(QDialogButtonBox::Apply), SIGNAL(clicked()), this, SLOT(apply())); connect(ui->hideBuiltInPluginsCheck, SIGNAL(toggled(bool)), this, SLOT(updateBuiltInPluginsVisibility())); + connect(ui->codeColorsResetBtn, SIGNAL(pressed()), this, SLOT(resetCodeSyntaxColors())); QList entries; entries << CFG_UI.General.SortObjects @@ -199,12 +238,13 @@ void ConfigDialog::init() << CFG_UI.General.ShowSystemObjects << CFG_UI.General.ShowVirtualTableLabels; - for (CfgEntry* cfg : entries) + for (CfgEntry*& cfg : entries) connect(cfg, SIGNAL(changed(QVariant)), this, SLOT(markRequiresSchemasRefresh())); QStringList styles = QStyleFactory::keys(); styles.sort(Qt::CaseInsensitive); ui->activeStyleCombo->addItems(styles); + ui->activeStyleCombo->setCurrentText(STYLE->name()); connect(ui->stackedWidget, SIGNAL(currentChanged(int)), this, SLOT(pageSwitched())); @@ -214,8 +254,14 @@ void ConfigDialog::init() ui->updatesGroup->setVisible(false); #endif + resettingColors = true; load(); + resettingColors = false; + colorChanged(); updateStylePreview(); + updateColorsAfterLoad(); + + ui->categoriesTree->expandAll(); } void ConfigDialog::load() @@ -229,14 +275,28 @@ void ConfigDialog::load() void ConfigDialog::save() { if (MainWindow::getInstance()->currentStyle().compare(ui->activeStyleCombo->currentText(), Qt::CaseInsensitive) != 0) + { + QList unmodifiedColors = prepareCodeSyntaxColorsForStyle(); + bool wasDark = STYLE->isDark(); + MainWindow::getInstance()->setStyle(ui->activeStyleCombo->currentText()); + if (STYLE->isDark() != wasDark) + { + resettingColors = true; // to avoid mass events of color change on syntax page + adjustSyntaxColorsForStyle(unmodifiedColors); + resettingColors = false; + colorChanged(); + } + } + QString loadedPlugins = collectLoadedPlugins(); storeSelectedFormatters(); CFG->beginMassSave(); CFG_CORE.General.LoadedPlugins.set(loadedPlugins); configMapper->saveFromWidget(ui->stackedWidget, true); commitPluginConfigs(); + commitColorsConfig(); CFG->commitMassSave(); if (requiresSchemasRefresh) @@ -302,7 +362,7 @@ void ConfigDialog::applyFilter(const QString &filter) QColor disabledColor = ui->categoriesTree->palette().color(QPalette::Disabled, QPalette::WindowText); if (filter.isEmpty()) { - for (QTreeWidgetItem* item : getAllCategoryItems()) + for (QTreeWidgetItem*& item : getAllCategoryItems()) item->setForeground(0, normalColor); return; @@ -318,10 +378,11 @@ void ConfigDialog::applyFilter(const QString &filter) QHash pageToCategoryItem = buildPageToCategoryItemMap(); QSet matchedCategories; - for (QWidget* page : pageToCategoryItem.keys()) + for (auto it = pageToCategoryItem.keyBegin(), end = pageToCategoryItem.keyEnd(); it != end; ++it) { - for (QWidget* matched : matchedWidgets) + for (QWidget* matched : qAsConst(matchedWidgets)) { + QWidget* page = *it; if (page->isAncestorOf(matched)) { if (!pageToCategoryItem.contains(page)) @@ -336,10 +397,10 @@ void ConfigDialog::applyFilter(const QString &filter) } } - for (QTreeWidgetItem* item : getAllCategoryItems()) + for (QTreeWidgetItem*& item : getAllCategoryItems()) item->setForeground(0, disabledColor); - for (QTreeWidgetItem* item : matchedCategories) + for (QTreeWidgetItem* item : qAsConst(matchedCategories)) { item->setForeground(0, normalColor); while ((item = item->parent()) != nullptr) @@ -350,7 +411,7 @@ void ConfigDialog::applyFilter(const QString &filter) QHash ConfigDialog::buildPageToCategoryItemMap() const { QHash pageNameToCategoryItem; - for (QTreeWidgetItem* item : getAllCategoryItems()) + for (QTreeWidgetItem*& item : getAllCategoryItems()) pageNameToCategoryItem[item->statusTip(0)] = item; QWidget* page = nullptr; @@ -393,7 +454,7 @@ QList ConfigDialog::getDefaultEditorsForType(DataType: }); QList results; - for (const PluginWithPriority& p: sortedPlugins) + for (PluginWithPriority& p: sortedPlugins) results << p.second; return results; @@ -427,7 +488,7 @@ void ConfigDialog::updateDataTypeEditors() ui->dataEditorsAvailableList->sortItems(); - for (MultiEditorWidgetPlugin* plugin : sortedPlugins) + for (MultiEditorWidgetPlugin*& plugin : sortedPlugins) addDataTypeEditor(plugin); } @@ -557,7 +618,7 @@ void ConfigDialog::addDataType(const QString& typeStr) void ConfigDialog::rollbackPluginConfigs() { CfgMain* mainCfg = nullptr; - for (UiConfiguredPlugin* plugin : pluginConfigMappers.keys()) + for (UiConfiguredPlugin*& plugin : pluginConfigMappers.keys()) { mainCfg = plugin->getMainUiConfig(); if (mainCfg) @@ -565,24 +626,68 @@ void ConfigDialog::rollbackPluginConfigs() } } +void ConfigDialog::rollbackColorsConfig() +{ + CFG_UI.Colors.rollback(); +} + void ConfigDialog::commitPluginConfigs() { CfgMain* mainCfg = nullptr; - for (UiConfiguredPlugin* plugin : pluginConfigMappers.keys()) + for (auto it = pluginConfigMappers.keyBegin(), end = pluginConfigMappers.keyEnd(); it != end; ++it) { - mainCfg = plugin->getMainUiConfig(); + mainCfg = (*it)->getMainUiConfig(); if (mainCfg) { mainCfg->commit(); mainCfg->begin(); // be prepared for further changes after "Apply" } } + + auto it = highlightingPluginForPreviewEditor.iterator(); + while (it.hasNext()) + { + auto item = it.next(); + if (item.value()->getLanguageName() == "SQL") + continue; + + item.value()->refreshFormats(); + } +} + +void ConfigDialog::commitColorsConfig() +{ + CFG_UI.Colors.commit(); + CFG_UI.Colors.begin(); } void ConfigDialog::connectMapperSignals(ConfigMapper* mapper) { - connect(mapper, SIGNAL(modified()), this, SLOT(markModified())); - connect(mapper, SIGNAL(notifyEnabledWidgetModified(QWidget*, CfgEntry*, const QVariant&)), this, SLOT(notifyPluginsAboutModification(QWidget*, CfgEntry*, const QVariant&))); + connect(mapper, SIGNAL(modified(QWidget*)), this, SLOT(markModified())); + connect(mapper, SIGNAL(notifyEnabledWidgetModified(QWidget*,CfgEntry*,QVariant)), this, SLOT(notifyPluginsAboutModification(QWidget*,CfgEntry*,QVariant))); +} + +QList ConfigDialog::getShortcutsCfgMains() const +{ + static const QString metaName = CFG_SHORTCUTS_METANAME; + QList mains; + for (CfgMain*& cfgMain : CfgMain::getInstances()) + { + if (cfgMain->getMetaName() != metaName) + continue; + + mains << cfgMain; + } + return mains; +} + +QList ConfigDialog::getShortcutsCfgCategories() const +{ + QList categories; + for (CfgMain*& cfgMain : getShortcutsCfgMains()) + categories.append(cfgMain->getCategories().values()); + + return categories; } void ConfigDialog::updateDataTypeListState() @@ -792,23 +897,23 @@ void ConfigDialog::detailsClicked(const QString& pluginName) // Rows QStringList rows; - rows << row.arg(tr("Description:", "plugin details")).arg(PLUGINS->getDescription(pluginName)); - rows << row.arg(tr("Category:", "plugin details")).arg(type->getTitle()); - rows << row.arg(tr("Version:", "plugin details")).arg(PLUGINS->getPrintableVersion(pluginName)); - rows << row.arg(tr("Author:", "plugin details")).arg(PLUGINS->getAuthor(pluginName)); + rows << row.arg(tr("Description:", "plugin details"), PLUGINS->getDescription(pluginName)); + rows << row.arg(tr("Category:", "plugin details"), type->getTitle()); + rows << row.arg(tr("Version:", "plugin details"), PLUGINS->getPrintableVersion(pluginName)); + rows << row.arg(tr("Author:", "plugin details"), PLUGINS->getAuthor(pluginName)); rows << hline; - rows << row.arg(tr("Internal name:", "plugin details")).arg(pluginName); - rows << row.arg(tr("Dependencies:", "plugin details")).arg(PLUGINS->getDependencies(pluginName).join(", ")); - rows << row.arg(tr("Conflicts:", "plugin details")).arg(PLUGINS->getConflicts(pluginName).join(", ")); + rows << row.arg(tr("Internal name:", "plugin details"), pluginName); + rows << row.arg(tr("Dependencies:", "plugin details"), PLUGINS->getDependencies(pluginName).join(", ")); + rows << row.arg(tr("Conflicts:", "plugin details"), PLUGINS->getConflicts(pluginName).join(", ")); // Message - QString pluginDetails = details.arg(PLUGINS->getTitle(pluginName)).arg(rows.join("")); + QString pluginDetails = details.arg(PLUGINS->getTitle(pluginName), rows.join("")); QMessageBox::information(this, tr("Plugin details"), pluginDetails); } void ConfigDialog::failedToLoadPlugin(const QString& pluginName) { - QTreeWidgetItem* theItem = itemToPluginNameMap.valueByRight(pluginName); + QTreeWidgetItem* theItem = pluginListItemToPluginNameMap.valueByRight(pluginName); if (!theItem) { qWarning() << "Plugin" << pluginName << "failed to load, but it could not be found on the plugins list in ConfigDialog."; @@ -833,7 +938,7 @@ void ConfigDialog::loadUnloadPlugin(QTreeWidgetItem* item, int column) if (column != 0) return; - QString pluginName = itemToPluginNameMap.valueByLeft(item); + QString pluginName = pluginListItemToPluginNameMap.valueByLeft(item); if (PLUGINS->isBuiltIn(pluginName)) return; @@ -866,6 +971,10 @@ void ConfigDialog::pluginAboutToUnload(Plugin* plugin, PluginType* type) if (notifiablePlugin && notifiablePlugins.contains(notifiablePlugin)) notifiablePlugins.removeOne(notifiablePlugin); + // Update code colors page + if (type->isForPluginType()) + highlighterPluginUnloaded(dynamic_cast(plugin)); + // Deinit page deinitPluginPage(plugin); @@ -879,6 +988,14 @@ void ConfigDialog::pluginLoaded(Plugin* plugin, PluginType* type, bool skipConfi if (type->isForPluginType()) codeFormatterLoaded(); + // Update code colors page + if (type->isForPluginType()) + highlighterPluginLoaded(dynamic_cast(plugin)); + + QTreeWidgetItem* listItem = pluginListItemToPluginNameMap.valueByRight(plugin->getName()); + if (listItem && listItem->checkState(0) == Qt::Unchecked) + listItem->setCheckState(0, Qt::Checked); + // Init page if (!initPluginPage(plugin, skipConfigLoading)) return; @@ -901,7 +1018,9 @@ void ConfigDialog::pluginLoaded(Plugin* plugin, PluginType* type, bool skipConfi void ConfigDialog::pluginUnloaded(const QString& pluginName, PluginType* type) { - UNUSED(pluginName); + QTreeWidgetItem* item = pluginListItemToPluginNameMap.valueByRight(pluginName); + if (item && item->checkState(0) == Qt::Checked) + item->setCheckState(0, Qt::Unchecked); // Update formatters page if (type->isForPluginType()) @@ -918,7 +1037,7 @@ void ConfigDialog::updatePluginCategoriesVisibility() void ConfigDialog::updateBuiltInPluginsVisibility() { bool hideBuiltIn = ui->hideBuiltInPluginsCheck->isChecked(); - QHashIterator it = itemToPluginNameMap.iterator(); + QHashIterator it = pluginListItemToPluginNameMap.iterator(); while (it.hasNext()) { it.next(); @@ -929,6 +1048,13 @@ void ConfigDialog::updateBuiltInPluginsVisibility() } } +void ConfigDialog::refreshColorsInSyntaxHighlighters() +{ + auto it = highlightingPluginForPreviewEditor.iterator(); + while (it.hasNext()) + it.next().value()->refreshFormats(); +} + void ConfigDialog::applyShortcutsFilter(const QString &filter) { QTreeWidgetItem* categoryItem = nullptr; @@ -964,10 +1090,144 @@ void ConfigDialog::markRequiresSchemasRefresh() void ConfigDialog::notifyPluginsAboutModification(QWidget*, CfgEntry* key, const QVariant& value) { - for (ConfigNotifiablePlugin* plugin : notifiablePlugins) + for (ConfigNotifiablePlugin*& plugin : notifiablePlugins) plugin->configModified(key, value); } +void ConfigDialog::resetCodeSyntaxColors() +{ + resettingColors = true; + for (QWidget*& widget : configMapper->getAllConfigWidgets(ui->commonCodeColorsGroup)) + configMapper->applyConfigDefaultValueToWidget(widget); + + resettingColors = false; + colorChanged(); +} + +void ConfigDialog::colorChanged() +{ + refreshColorsInSyntaxHighlighters(); + for (QSyntaxHighlighter*& highligter : colorPreviewHighlighters) + highligter->rehighlight(); + + if (codePreviewSqlEditor) + codePreviewSqlEditor->colorsConfigChanged(); +} + +void ConfigDialog::adjustSyntaxColorsForStyle(QList& unmodifiedColors) +{ + for (QWidget*& w : unmodifiedColors) + configMapper->applyConfigDefaultValueToWidget(w); +} + +void ConfigDialog::highlighterPluginLoaded(SyntaxHighlighterPlugin* plugin) +{ + QPlainTextEdit* editor = nullptr; + if (plugin->getLanguageName() == "SQL") + { + // For SQL there is assumed just one, built-in plugin + codePreviewSqlEditor = new SqlEditor(ui->codeColorsPreviewTabWidget); + codePreviewSqlEditor->setShowLineNumbers(false); + codePreviewSqlEditor->setCurrentQueryHighlighting(true); + editor = codePreviewSqlEditor; + } + else + { + editor = new QPlainTextEdit(ui->codeColorsPreviewTabWidget); + editor->setFont(CFG_UI.Fonts.SqlEditor.get()); + colorPreviewHighlighters << plugin->createSyntaxHighlighter(editor); + } + + editor->setPlainText(plugin->previewSampleCode()); + editor->setReadOnly(true); + colorPreviewEditors << editor; + highlightingPluginForPreviewEditor.insert(editor, plugin); + ui->codeColorsPreviewTabWidget->addTab(editor, plugin->getLanguageName()); +} + +void ConfigDialog::highlighterPluginUnloaded(SyntaxHighlighterPlugin* plugin) +{ + QPlainTextEdit* editor = highlightingPluginForPreviewEditor.valueByRight(plugin); + if (!editor) + { + qCritical() << "Highlighter plugin unloaded for which there is no preview editor! Application crash is possible. Plugin:" << plugin->getName(); + return; + } + + QTextDocument* document = editor->document(); + QSyntaxHighlighter* highlighter = findFirst(colorPreviewHighlighters, [document](auto highlighter) {return highlighter->document() == document;}); + + ui->codeColorsPreviewTabWidget->removeTab(ui->codeColorsPreviewTabWidget->indexOf(editor)); + colorPreviewHighlighters.removeOne(highlighter); + colorPreviewEditors.removeOne(editor); + delete editor; + + highlightingPluginForPreviewEditor.removeRight(plugin); +} + +QList ConfigDialog::prepareCodeSyntaxColorsForStyle() +{ + QList unmodified; + for (QWidget*& w : configMapper->getAllConfigWidgets(ui->commonCodeColorsGroup)) + { + CfgEntry* entry = configMapper->getConfigForWidget(w); + if (entry->getDefaultValue() == entry->get()) + unmodified << w; + } + return unmodified; +} + +void ConfigDialog::initColors() +{ + CFG_UI.Colors.begin(); + connect(configMapper, &ConfigMapper::modified, this, + [this](QWidget* widget) + { + CfgEntry* key = configMapper->getBindConfigForWidget(widget); + if (!key) + { + qCritical() << "Missing CfgEntry in Colors configuration for widget" << widget->objectName(); + return; + } + + if (key->getCategory() != CFG_UI.Colors) + return; + + configMapper->saveFromWidget(widget, key); + if (key->getName().endsWith("Custom")) + toggleColorButtonState(key); + + if (resettingColors) + return; + + colorChanged(); + }); +} + +void ConfigDialog::updateColorsAfterLoad() +{ + QHash entries = CFG_UI.Colors.getEntries(); + auto it = entries.begin(); + while (it != entries.end()) + { + if (it.key().endsWith("Custom")) + toggleColorButtonState(it.value()); + + it++; + } +} + +void ConfigDialog::toggleColorButtonState(CfgEntry* colorCheckEntry) +{ + CfgEntry* colorKey = colorCheckEntry->getCategory()->getEntryByName(colorCheckEntry->getName().chopped(6)); + if (colorKey) + { + QWidget* button = configMapper->getBindWidgetForConfig(colorKey); + if (button) + button->setEnabled(colorCheckEntry->get().toBool()); + } +} + void ConfigDialog::updatePluginCategoriesVisibility(QTreeWidgetItem* categoryItem) { categoryItem->setHidden(categoryItem->childCount() == 0); @@ -976,7 +1236,7 @@ void ConfigDialog::updatePluginCategoriesVisibility(QTreeWidgetItem* categoryIte QString ConfigDialog::collectLoadedPlugins() const { QStringList loaded; - QHashIterator it = itemToPluginNameMap.iterator(); + QHashIterator it = pluginListItemToPluginNameMap.iterator(); while (it.hasNext()) { it.next(); @@ -1147,8 +1407,7 @@ QTreeWidgetItem* ConfigDialog::createPluginsTypeItem(const QString& widgetName, if (item->statusTip(0) == widgetName) return item; } - return nullptr; - + return new QTreeWidgetItem({title}); } QTreeWidgetItem* ConfigDialog::getItemByTitle(const QString& title) const @@ -1195,23 +1454,24 @@ void ConfigDialog::initPlugins() // Recreate QTreeWidgetItem *typeItem = nullptr; - for (PluginType* pluginType : PLUGINS->getPluginTypes()) + for (PluginType*& pluginType : PLUGINS->getPluginTypes()) { typeItem = createPluginsTypeItem(pluginType->getConfigUiForm(), pluginType->getTitle()); - if (!typeItem) - continue; item->addChild(typeItem); pluginTypeToItemMap[pluginType] = typeItem; - for (Plugin* plugin : pluginType->getLoadedPlugins()) + for (Plugin*& plugin : pluginType->getLoadedPlugins()) pluginLoaded(plugin, pluginType, true); } updatePluginCategoriesVisibility(); + // Using old connect() syntax, becase the pointer syntax does not work correctly with signals declared in an interface class. + // At least that's the case with Qt 5.15.2. connect(PLUGINS, SIGNAL(loaded(Plugin*,PluginType*)), this, SLOT(pluginLoaded(Plugin*,PluginType*))); connect(PLUGINS, SIGNAL(aboutToUnload(Plugin*,PluginType*)), this, SLOT(pluginAboutToUnload(Plugin*,PluginType*))); + connect(PLUGINS, SIGNAL(unloaded(QString,PluginType*)), this, SLOT(pluginUnloaded(QString,PluginType*))); } void ConfigDialog::initPluginsPage() @@ -1255,7 +1515,7 @@ void ConfigDialog::initPluginsPage() categoryRow = 0; QList pluginTypes = PLUGINS->getPluginTypes(); sSort(pluginTypes, PluginType::nameLessThan); - for (PluginType* pluginType : pluginTypes) + for (PluginType*& pluginType : pluginTypes) { category = new QTreeWidgetItem({pluginType->getTitle()}); font.setItalic(false); @@ -1275,7 +1535,7 @@ void ConfigDialog::initPluginsPage() itemRow = 0; pluginNames = pluginType->getAllPluginNames(); sSort(pluginNames); - for (const QString& pluginName : pluginNames) + for (QString& pluginName : pluginNames) { builtIn = PLUGINS->isBuiltIn(pluginName); title = PLUGINS->getTitle(pluginName); @@ -1290,10 +1550,10 @@ void ConfigDialog::initPluginsPage() category->addChild(item); - itemToPluginNameMap.insert(item, pluginName); + pluginListItemToPluginNameMap.insert(item, pluginName); // Details button - detailsLabel = new QLabel(QString("%2 ").arg(pluginName).arg(tr("Details")), ui->pluginsList); + detailsLabel = new QLabel(QString("%2 ").arg(pluginName, tr("Details")), ui->pluginsList); detailsLabel->setAlignment(Qt::AlignRight); itemIndex = ui->pluginsList->model()->index(itemRow, 1, categoryIndex); ui->pluginsList->setIndexWidget(itemIndex, detailsLabel); @@ -1322,10 +1582,10 @@ void ConfigDialog::initPluginsPage() bool ConfigDialog::initPluginPage(Plugin* plugin, bool skipConfigLoading) { - if (!dynamic_cast(plugin)) + UiConfiguredPlugin* cfgPlugin = dynamic_cast(plugin); + if (!cfgPlugin) return false; - UiConfiguredPlugin* cfgPlugin = dynamic_cast(plugin); QString pluginName = plugin->getName(); QString formName = cfgPlugin->getConfigUiForm(); QWidget* widget = FORMS->createWidget(formName); @@ -1398,7 +1658,7 @@ void ConfigDialog::initDataEditors() sSort(dataTypeList); QListWidgetItem* item = nullptr; - for (const QString& type : dataTypeList) + for (QString& type : dataTypeList) { item = new QListWidgetItem(type); if (!DataType::getAllNames().contains(type)) @@ -1441,49 +1701,30 @@ void ConfigDialog::initShortcuts() ui->shortcutsTable->header()->setSectionResizeMode(2, QHeaderView::Fixed); ui->shortcutsTable->header()->resizeSection(1, 150); ui->shortcutsTable->header()->resizeSection(2, 26); + ui->shortcutsTable->header()->resizeSection(3, 26); ui->shortcutsFilterEdit->setClearButtonEnabled(true); new UserInputFilter(ui->shortcutsFilterEdit, this, SLOT(applyShortcutsFilter(QString))); - static const QString metaName = CFG_SHORTCUTS_METANAME; - QList categories; - for (CfgMain* cfgMain : CfgMain::getInstances()) - { - if (cfgMain->getMetaName() != metaName) - continue; - - for (CfgCategory* cat : cfgMain->getCategories().values()) - categories << cat; - } + QList categories = getShortcutsCfgCategories(); + ui->shortcutsTable->setItemDelegate(new ConfigDialogItemDelegate()); sSort(categories, [](CfgCategory* cat1, CfgCategory* cat2) -> bool { return cat1->getTitle().compare(cat2->getTitle()) < 0; }); - for (CfgCategory* cat : categories) + for (CfgCategory*& cat : categories) initShortcuts(cat); } void ConfigDialog::initShortcuts(CfgCategory *cfgCategory) { - QTreeWidgetItem* item = nullptr; - QFont font; - QModelIndex categoryIndex; - QModelIndex itemIndex; - QKeySequenceEdit *sequenceEdit = nullptr; - QToolButton* clearButton = nullptr; - QString title; - QSize itemSize; - // Font and metrics - item = new QTreeWidgetItem({""}); - font = item->font(0); - - QFontMetrics fm(font); - itemSize = QSize(-1, (fm.ascent() + fm.descent() + 4)); - - delete item; + QTreeWidgetItem item({""}); + QFont font = item.font(0); +// QFontMetrics fm(font); +// QSize itemSize = QSize(-1, -1); // Creating... QBrush categoryBg = ui->shortcutsTable->palette().button(); @@ -1493,47 +1734,63 @@ void ConfigDialog::initShortcuts(CfgCategory *cfgCategory) font.setItalic(false); font.setBold(true); category->setFont(0, font); - for (int i = 0; i < 3; i++) + for (int i = 0; i < 4; i++) { + category->setData(i, Qt::UserRole, true); category->setBackground(i, categoryBg); category->setForeground(i, categoryFg); } - category->setSizeHint(0, itemSize); +// category->setSizeHint(0, itemSize); category->setFlags(category->flags() ^ Qt::ItemIsSelectable); ui->shortcutsTable->addTopLevelItem(category); int categoryRow = ui->shortcutsTable->topLevelItemCount() - 1; - categoryIndex = ui->shortcutsTable->model()->index(categoryRow, 0); + QModelIndex categoryIndex = ui->shortcutsTable->model()->index(categoryRow, 0); int itemRow = 0; QStringList entryNames = cfgCategory->getEntries().keys(); sSort(entryNames); - for (const QString& entryName : entryNames) + for (QString& entryName : entryNames) { + CfgEntry* cfgEntry = cfgCategory->getEntries()[entryName]; + // Title - title = cfgCategory->getEntries()[entryName]->getTitle(); - item = new QTreeWidgetItem(category, {title}); + QString title = cfgEntry->getTitle(); + new QTreeWidgetItem(category, {title}); // Key edit - sequenceEdit = new QKeySequenceEdit(ui->shortcutsTable); + QKeySequenceEdit* sequenceEdit = new QKeySequenceEdit(ui->shortcutsTable); sequenceEdit->setFixedWidth(150); - sequenceEdit->setProperty("cfg", cfgCategory->getEntries()[entryName]->getFullKey()); - itemIndex = ui->shortcutsTable->model()->index(itemRow, 1, categoryIndex); + sequenceEdit->setProperty("cfg", cfgEntry->getFullKey()); + QModelIndex itemIndex = ui->shortcutsTable->model()->index(itemRow, 1, categoryIndex); ui->shortcutsTable->setIndexWidget(itemIndex, sequenceEdit); configMapper->addExtraWidget(sequenceEdit); // Clear button - clearButton = new QToolButton(ui->shortcutsTable); + QToolButton* clearButton = new QToolButton(ui->shortcutsTable); clearButton->setIcon(ICONS.CLEAR_LINEEDIT); - connect(clearButton, &QToolButton::clicked, [this, sequenceEdit]() + clearButton->setToolTip(tr("Clear hotkey for this action")); + connect(clearButton, &QToolButton::clicked, this, [this, sequenceEdit]() { sequenceEdit->clear(); this->markModified(); - }); itemIndex = ui->shortcutsTable->model()->index(itemRow, 2, categoryIndex); ui->shortcutsTable->setIndexWidget(itemIndex, clearButton); + // Restore default value button + QToolButton* defaultButton = new QToolButton(ui->shortcutsTable); + defaultButton->setIcon(ICONS.RESTORE_DEFAULT); + defaultButton->setToolTip(tr("Restore original hotkey for this action")); + connect(defaultButton, &QToolButton::clicked, this, [this, sequenceEdit, cfgEntry]() + { + cfgEntry->reset(); + sequenceEdit->setKeySequence(QKeySequence::fromString(cfgEntry->get().toString())); + this->markModified(); + }); + itemIndex = ui->shortcutsTable->model()->index(itemRow, 3, categoryIndex); + ui->shortcutsTable->setIndexWidget(itemIndex, defaultButton); + itemRow++; } @@ -1545,7 +1802,9 @@ void ConfigDialog::initLangs() QMap langs = getAvailableLanguages(); int idx = 0; int selected = -1; - for (const QString& lang : langs.keys()) + QStringList langList = langs.keys(); + strSort(langList, Qt::CaseInsensitive); + for (QString& lang : langList) { ui->langCombo->addItem(lang, langs[lang]); if (langs[lang] == SQLITESTUDIO->getCurrentLang()) @@ -1557,6 +1816,21 @@ void ConfigDialog::initLangs() ui->langCombo->setCurrentIndex(selected); } +void ConfigDialog::initTooltips() +{ + ui->execQueryUnderCursorCheck->setToolTip(ui->execQueryUnderCursorCheck->toolTip().arg( + GET_SHORTCUT_ENTRY(EditorWindow, EXEC_ONE_QUERY)->get().toString(), + GET_SHORTCUT_ENTRY(EditorWindow, EXEC_ALL_QUERIES)->get().toString() + )); + + setValidStateTooltip(ui->commonCodeColorsGroup, + tr("Here you can configure colors for code syntax highlighting. " + "They are shared across different languages - not only for SQL, but also JavaScript and others. " + "By default a theme-based color is used. To define your own color, enable a custom color " + "by selecting a checkbox next to a particular color.")); + +} + bool ConfigDialog::isPluginCategoryItem(QTreeWidgetItem *item) const { return item->parent() && item->parent()->parent() && item->parent()->parent() == getPluginsCategoryItem(); diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/configdialog.h b/SQLiteStudio3/guiSQLiteStudio/dialogs/configdialog.h index f0ab1de..7f5abb3 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dialogs/configdialog.h +++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/configdialog.h @@ -26,6 +26,13 @@ class ConfigMapper; class MultiEditorWidgetPlugin; class ConfigNotifiablePlugin; class UiConfiguredPlugin; +class SyntaxHighlighterPlugin; +class QPlainTextEdit; +class QSyntaxHighlighter; +class SqlEditor; + +#define CFG_UI_NAME "Ui" +#define CFG_COLORS_NAME "Colors" class GUI_API_EXPORT ConfigDialog : public QDialog { @@ -43,6 +50,9 @@ class GUI_API_EXPORT ConfigDialog : public QDialog static QString getFilterString(QListWidget* widget); static QString getFilterString(QTableWidget* widget); + protected: + void showEvent(QShowEvent* event); + private: void init(); void load(); @@ -57,6 +67,10 @@ class GUI_API_EXPORT ConfigDialog : public QDialog void initShortcuts(); void initShortcuts(CfgCategory* cfgCategory); void initLangs(); + void initTooltips(); + void initColors(); + void updateColorsAfterLoad(); + void toggleColorButtonState(CfgEntry* colorCheckEntry); void applyStyle(QWidget* widget, QStyle* style); QTreeWidgetItem* getPluginsCategoryItem() const; QTreeWidgetItem* getPluginsCategoryItem(PluginType* type) const; @@ -83,13 +97,23 @@ class GUI_API_EXPORT ConfigDialog : public QDialog void setPluginNamesForDataTypeItem(QListWidgetItem* typeItem, const QStringList& pluginNames); void addDataType(const QString& typeStr); void rollbackPluginConfigs(); + void rollbackColorsConfig(); void commitPluginConfigs(); + void commitColorsConfig(); void connectMapperSignals(ConfigMapper* mapper); + QList getShortcutsCfgMains() const; + QList getShortcutsCfgCategories() const; + void refreshColorsInSyntaxHighlighters(); + void colorChanged(); + QList prepareCodeSyntaxColorsForStyle(); + void adjustSyntaxColorsForStyle(QList& unmodifiedColors); + void highlighterPluginLoaded(SyntaxHighlighterPlugin* plugin); + void highlighterPluginUnloaded(SyntaxHighlighterPlugin* plugin); Ui::ConfigDialog *ui = nullptr; QStyle* previewStyle = nullptr; QHash nameToPage; - BiHash itemToPluginNameMap; + BiHash pluginListItemToPluginNameMap; QHash pluginTypeToItemMap; QHash pluginToItemMap; QHash formatterLangToPluginComboMap; @@ -102,6 +126,11 @@ class GUI_API_EXPORT ConfigDialog : public QDialog bool modifiedFlag = false; QList notifiablePlugins; bool requiresSchemasRefresh = false; + QList colorPreviewEditors; + SqlEditor* codePreviewSqlEditor = nullptr; + QList colorPreviewHighlighters; + BiHash highlightingPluginForPreviewEditor; + bool resettingColors = false; private slots: void refreshFormattersPage(); @@ -138,6 +167,7 @@ class GUI_API_EXPORT ConfigDialog : public QDialog void applyShortcutsFilter(const QString& filter); void markRequiresSchemasRefresh(); void notifyPluginsAboutModification(QWidget*, CfgEntry* key, const QVariant& value); + void resetCodeSyntaxColors(); public slots: void accept(); diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/configdialog.ui b/SQLiteStudio3/guiSQLiteStudio/dialogs/configdialog.ui index 4452f63..475d7b0 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dialogs/configdialog.ui +++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/configdialog.ui @@ -6,8 +6,8 @@ 0 0 - 770 - 539 + 866 + 580 @@ -148,6 +148,18 @@ :/icons/img/config_font.png:/icons/img/config_font.png + + + Code colors + + + codeColorsPage + + + + :/icons/img/config_colors.png:/icons/img/config_colors.png + + @@ -161,6 +173,18 @@ :/icons/img/database_online.png:/icons/img/database_online.png + + + Code assistant + + + codeAssistantPage + + + + :/icons/img/code_assistant.png:/icons/img/code_assistant.png + + Data browsing @@ -217,7 +241,7 @@ - 1 + 4 @@ -395,8 +419,8 @@ 0 0 - 564 - 540 + 433 + 718 @@ -406,41 +430,16 @@ Data browsing and editing - - - - - 150 - 16777215 - - - - 1 - - - 99999 - - - General.NumberOfRowsPerPage - - - - + - <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> - - - 10 + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> - 99999 - - - 600 + 999999 - General.MaxInitialColumnWith + General.PopulateHistorySize @@ -452,16 +451,42 @@ - + - <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + + + Number of memorized table populating configurations + + + + + + + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> - Limit initial data column width to (in pixels): + Limit number of rows for in case of dozens of columns + + + General.LimitRowsForManyColumns + + + + + + + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> + + + Show column and row details tooltip in data view + + + General.ShowDataViewTooltips - + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> @@ -474,65 +499,118 @@ - - - - <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + + + + + 150 + 16777215 + + + + 1 - 999999 + 99999 - General.PopulateHistorySize + General.NumberOfRowsPerPage - - + + - <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> - Number of memorized table populating configurations + Keep NULL value when entering empty value + + + General.KeepNullWhenEmptyValue - - + + - <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> - Show column and row details tooltip in data view + Use scientific notation for real numbers in the grid view - General.ShowDataViewTooltips + General.UseSciFormatForDoubles - - + + + + + + + Data column width + + + + - <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> - Keep NULL value when entering empty value + Enlarge column when entering value longer than current width - General.KeepNullWhenEmptyValue + General.EnlargeColumnForValue - - + + + + + 150 + 16777215 + + - <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> + + + 10 + + + 99999 + + + 600 + + + General.MaxInitialColumnWith + + + + + + + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> - Limit number of rows for in case of dozens of columns + Limit automatic data column width to (in pixels): + + + + + + + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + + + Keep at least the width to show complete column name - General.LimitRowsForManyColumns + General.ColumnWidthForName @@ -851,13 +929,13 @@ - - + + - Number of queries kept in the history. + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> - History size: + Number of memorized query parameters @@ -877,7 +955,7 @@ - <p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute.</p> + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> Execute only the query under the cursor @@ -887,13 +965,39 @@ - - + + - <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> + Number of queries kept in the history. - Number of memorized query parameters + History size: + + + + + + + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + + + Wrap lines in SQL editor + + + General.SqlEditorWrapWords + + + + + + + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + + + Highlight current query + + + General.SqlEditorCurrQueryHighlight @@ -941,7 +1045,7 @@ Allow multiple instances of the application at the same time - General.AllowMultipleSessions + General.AllowMultipleSessions @@ -985,6 +1089,387 @@ + + + + 15 + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + 0 + 0 + + + + Code syntax colors + + + + + + Keyword foreground + + + Colors.SyntaxKeywordFgCustom + + + + + + + + 50 + 16777215 + + + + + + + Colors.SyntaxForeground + + + + + + + + 50 + 16777215 + + + + + + + Colors.SyntaxBlobFg + + + + + + + + 50 + 16777215 + + + + + + + Colors.SyntaxKeywordFg + + + + + + + + 50 + 16777215 + + + + + + + Colors.SyntaxValidObject + + + + + + + + 50 + 16777215 + + + + + + + Colors.SyntaxCommentFg + + + + + + + Regular foreground + + + Colors.SyntaxForegroundCustom + + + + + + + Comment foreground + + + Colors.SyntaxCommentFgCustom + + + + + + + + 50 + 16777215 + + + + + + + Colors.SyntaxNumberFg + + + + + + + Number foreground + + + Colors.SyntaxNumberFgCustom + + + + + + + + 50 + 16777215 + + + + + + + Colors.SyntaxParenthesisBg + + + + + + + Valid objects foreground + + + Colors.SyntaxValidObjectCustom + + + + + + + + 50 + 16777215 + + + + + + + Colors.SyntaxStringFg + + + + + + + + 50 + 16777215 + + + + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + + + + + + Colors.SyntaxCurrentQueryBg + + + + + + + BLOB value foreground + + + Colors.SyntaxBlobFgCustom + + + + + + + String foreground + + + Colors.SyntaxStringFgCustom + + + + + + + + 50 + 16777215 + + + + + + + Colors.SyntaxCurrentLineBg + + + + + + + + + + Colors.SyntaxParenthesisFg + + + + + + + Bind parameter foreground + + + Colors.SyntaxBindParamFgCustom + + + + + + + + 50 + 16777215 + + + + + + + Colors.SyntaxBindParamFg + + + + + + + Current line background + + + Colors.SyntaxCurrentLineBgCustom + + + + + + + Current query background + + + Colors.SyntaxCurrentQueryBgCustom + + + + + + + Matched parenthesis background + + + Colors.SyntaxParenthesisBgCustom + + + + + + + Matched parenthesis foreground + + + Colors.SyntaxParenthesisFgCustom + + + + + + + + + + QFrame::NoFrame + + + QFrame::Raised + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Reset to defaults + + + + + + + + @@ -1053,7 +1538,12 @@
    - + + + + + + @@ -1084,8 +1574,8 @@ 0 0 - 339 - 264 + 364 + 283 @@ -1503,10 +1993,13 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +<html><head><meta name="qrichtext" content="1" /><meta charset="utf-8" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Abcdefgh</span></p></body></html> +hr { height: 1px; border-width: 0; } +li.unchecked::marker { content: "\2610"; } +li.checked::marker { content: "\2612"; } +</style></head><body style=" font-family:'Segoe UI'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">Abcdefgh</span></p></body></html> @@ -1596,8 +2089,8 @@ p, li { white-space: pre-wrap; } 0 0 - 206 - 298 + 222 + 313 @@ -1700,6 +2193,45 @@ p, li { white-space: pre-wrap; } + + + + + + Code assistant settings + + + + + + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + + + Automatically trigger the assistant after a dot is typed after an object name + + + CodeAssistant.AutoTrigger + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + @@ -1717,19 +2249,13 @@ p, li { white-space: pre-wrap; } - - - - 0 - 0 - 100 - 30 - - - - + + ConfigRadioButton + QRadioButton +
    common/configradiobutton.h
    +
    FontEdit QWidget @@ -1737,9 +2263,9 @@ p, li { white-space: pre-wrap; } 1 - ConfigRadioButton - QRadioButton -
    common/configradiobutton.h
    + ColorButton + QPushButton +
    common/colorbutton.h
    diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.cpp b/SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.cpp index 1e56258..e6a53db 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.cpp @@ -1,4 +1,6 @@ #include "dbdialog.h" +#include "common/immediatetooltip.h" +#include "services/notifymanager.h" #include "ui_dbdialog.h" #include "services/pluginmanager.h" #include "plugins/dbplugin.h" @@ -18,6 +20,8 @@ #include #include #include +#include +#include DbDialog::DbDialog(Mode mode, QWidget *parent) : QDialog(parent), @@ -42,14 +46,32 @@ void DbDialog::setPermanent(bool perm) ui->permamentCheckBox->setChecked(perm); } + +void DbDialog::dragEnterEvent(QDragEnterEvent* e) +{ + if (e->mimeData()->hasUrls()) + e->acceptProposedAction(); +} + +void DbDialog::dropEvent(QDropEvent* e) +{ + if (!e->isAccepted() && e->mimeData()->hasUrls()) + { + setPath(e->mimeData()->urls().first().toLocalFile()); + e->accept(); + } +} + QString DbDialog::getPath() { - return ui->fileEdit->text(); + QString newPath = QDir::fromNativeSeparators(ui->fileEdit->text()); + return newPath; } void DbDialog::setPath(const QString& path) { - ui->fileEdit->setText(path); + QString newPath = QDir::toNativeSeparators(path); + ui->fileEdit->setText(newPath); } QString DbDialog::getName() @@ -82,7 +104,7 @@ void DbDialog::showEvent(QShowEvent *e) int idx = ui->typeCombo->findText(db->getTypeLabel()); ui->typeCombo->setCurrentIndex(idx); - ui->fileEdit->setText(db->getPath()); + setPath(db->getPath()); ui->nameEdit->setText(db->getName()); disableTypeAutodetection = false; } @@ -111,8 +133,7 @@ void DbDialog::showEvent(QShowEvent *e) void DbDialog::init() { ui->setupUi(this); - - ui->browseCreateButton->setIcon(ICONS.PLUS); + connIconTooltip = new ImmediateTooltip(ui->testConnIcon); for (DbPlugin* dbPlugin : PLUGINS->getLoadedPlugins()) dbPlugins[dbPlugin->getLabel()] = dbPlugin; @@ -122,12 +143,10 @@ void DbDialog::init() typeLabels.sort(Qt::CaseInsensitive); ui->typeCombo->addItems(typeLabels); - ui->browseCreateButton->setVisible(true); ui->testConnIcon->setVisible(false); connect(ui->fileEdit, SIGNAL(textChanged(QString)), this, SLOT(fileChanged(QString))); connect(ui->nameEdit, SIGNAL(textEdited(QString)), this, SLOT(nameModified(QString))); - connect(ui->browseCreateButton, SIGNAL(clicked()), this, SLOT(browseClicked())); connect(ui->browseOpenButton, SIGNAL(clicked()), this, SLOT(browseClicked())); connect(ui->testConnButton, SIGNAL(clicked()), this, SLOT(testConnectionClicked())); connect(ui->typeCombo, SIGNAL(currentIndexChanged(int)), this, SLOT(dbTypeChanged(int))); @@ -145,7 +164,7 @@ void DbDialog::updateOptions() setUpdatesEnabled(false); // Remove olds - for (QWidget* w : optionWidgets) + for (QWidget*& w : optionWidgets) { ui->optionsGrid->removeWidget(w); delete w; @@ -153,8 +172,7 @@ void DbDialog::updateOptions() customBrowseHandler = nullptr; ui->pathGroup->setTitle(tr("File")); - ui->browseOpenButton->setToolTip(tr("Browse for existing database file on local computer")); - ui->browseCreateButton->setVisible(true); + ui->browseOpenButton->setToolTip(tr("Select new or existing file on local computer")); optionWidgets.clear(); optionKeyToWidget.clear(); @@ -191,7 +209,6 @@ void DbDialog::addOption(const DbPluginOption& option, int& row) // This option does not add any editor, but has it's own label for path edit. row--; ui->pathGroup->setTitle(option.label); - ui->browseCreateButton->setVisible(false); if (!option.toolTip.isEmpty()) ui->browseOpenButton->setToolTip(option.toolTip); @@ -450,7 +467,7 @@ void DbDialog::updateType() if (disableTypeAutodetection) return; - DbPlugin* validPlugin = SQLITESTUDIO->getDbManager()->getPluginForDbFile(ui->fileEdit->text()); + DbPlugin* validPlugin = SQLITESTUDIO->getDbManager()->getPluginForDbFile(getPath()); if (!validPlugin || validPlugin->getLabel() == ui->typeCombo->currentText()) return; @@ -476,14 +493,20 @@ QHash DbDialog::collectOptions() return options; } -bool DbDialog::testDatabase() +bool DbDialog::testDatabase(QString& errorMsg) { if (ui->typeCombo->currentIndex() < 0) + { + errorMsg = tr("Database type not selected."); return false; + } - QString path = ui->fileEdit->text(); + QString path = getPath(); if (path.isEmpty()) + { + errorMsg = tr("Database path not specified."); return false; + } QUrl url(path); if (url.scheme().isEmpty()) @@ -491,7 +514,7 @@ bool DbDialog::testDatabase() QHash options = collectOptions(); DbPlugin* plugin = dbPlugins[ui->typeCombo->currentText()]; - Db* testDb = plugin->getInstance("", path, options); + Db* testDb = plugin->getInstance("", path, options, &errorMsg); bool res = false; if (testDb) @@ -499,6 +522,7 @@ bool DbDialog::testDatabase() if (testDb->openForProbing()) { res = !testDb->exec("SELECT sqlite_version();")->getSingleCell().toString().isEmpty(); + errorMsg = testDb->getErrorText(); testDb->closeQuiet(); } delete testDb; @@ -546,7 +570,7 @@ bool DbDialog::validate() if (fileState) { - registeredDb = DBLIST->getByPath(ui->fileEdit->text()); + registeredDb = DBLIST->getByPath(getPath()); if (registeredDb && (mode == Mode::ADD || registeredDb != db)) { setValidState(ui->fileEdit, false, tr("This database is already on the list under name: %1").arg(registeredDb->getName())); @@ -601,6 +625,7 @@ void DbDialog::typeChanged(int index) { UNUSED(index); updateOptions(); + updateState(); } void DbDialog::valueForNameGenerationChanged() @@ -612,10 +637,9 @@ void DbDialog::valueForNameGenerationChanged() QString generatedName; DbPlugin* plugin = dbPlugins.count() > 0 ? dbPlugins[ui->typeCombo->currentText()] : nullptr; if (plugin) - generatedName = DBLIST->generateUniqueDbName(plugin, ui->fileEdit->text()); + generatedName = DBLIST->generateUniqueDbName(plugin, getPath()); else - generatedName = DBLIST->generateUniqueDbName(ui->fileEdit->text()); - + generatedName = DBLIST->generateUniqueDbName(getPath()); ui->nameEdit->setText(generatedName); } @@ -624,7 +648,7 @@ void DbDialog::browseForFile() { QString dir = getFileDialogInitPath(); QString path = QFileDialog::getOpenFileName(0, QString(), dir); - if (path.isNull()) + if (path.isEmpty()) return; QString key = helperToKey[dynamic_cast(sender())]; @@ -645,18 +669,16 @@ void DbDialog::browseClicked() { if (customBrowseHandler) { - QString newUrl = customBrowseHandler(ui->fileEdit->text()); + QString newUrl = customBrowseHandler(getPath()); if (!newUrl.isNull()) { - ui->fileEdit->setText(newUrl); + setPath(newUrl); updateState(); } return; } - bool createMode = (sender() == ui->browseCreateButton); - - QFileInfo fileInfo(ui->fileEdit->text()); + QFileInfo fileInfo(getPath()); QString dir; if (ui->fileEdit->text().isEmpty()) dir = getFileDialogInitPath(); @@ -667,7 +689,7 @@ void DbDialog::browseClicked() else dir = getFileDialogInitPath(); - QString path = getDbPath(createMode, dir); + QString path = getDbPath(dir); if (path.isNull()) return; @@ -679,8 +701,19 @@ void DbDialog::browseClicked() void DbDialog::testConnectionClicked() { - ui->testConnIcon->setPixmap(testDatabase() ? ICONS.TEST_CONN_OK : ICONS.TEST_CONN_ERROR); + QString errorMsg; + bool ok = testDatabase(errorMsg); + ui->testConnIcon->setPixmap(ok ? ICONS.TEST_CONN_OK : ICONS.TEST_CONN_ERROR); + connIconTooltip->setToolTip(ok ? QString() : errorMsg); ui->testConnIcon->setVisible(true); + if (!ok) + { + QString path = getPath(); + if (!path.isEmpty()) + notifyWarn(QString("%1: %2").arg(getPath(), errorMsg)); + else + notifyWarn(errorMsg); + } } void DbDialog::dbTypeChanged(int index) diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.h b/SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.h index 3d1a9da..76cd3ec 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.h +++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.h @@ -12,6 +12,7 @@ class DbPlugin; class QGridLayout; struct DbPluginOption; +class ImmediateTooltip; namespace Ui { class DbDialog; @@ -44,6 +45,8 @@ class GUI_API_EXPORT DbDialog : public QDialog protected: void changeEvent(QEvent *e); void showEvent(QShowEvent* e); + void dragEnterEvent(QDragEnterEvent* e); + void dropEvent(QDropEvent*e); private: void init(); @@ -53,7 +56,7 @@ class GUI_API_EXPORT DbDialog : public QDialog QVariant getValueFrom(DbPluginOption::Type type, QWidget* editor); void setValueFor(DbPluginOption::Type type, QWidget* editor, const QVariant& value); void updateType(); - bool testDatabase(); + bool testDatabase(QString& errorMsg); bool validate(); void updateState(); @@ -71,6 +74,7 @@ class GUI_API_EXPORT DbDialog : public QDialog bool disableTypeAutodetection = false; bool doAutoTest = false; bool nameManuallyEdited = false; + ImmediateTooltip* connIconTooltip = nullptr; static const constexpr int ADDITIONAL_ROWS_BEGIN_INDEX = 1; diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.ui b/SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.ui index 9878bec..f0ebe2a 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.ui +++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.ui @@ -16,6 +16,9 @@ 0 + + true + Database @@ -45,20 +48,6 @@ - - - - Create new database file - - - - - - - :/icons/img/plus.png:/icons/img/plus.png - - - diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/exportdialog.cpp b/SQLiteStudio3/guiSQLiteStudio/dialogs/exportdialog.cpp index 7dda03e..135bc9d 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dialogs/exportdialog.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/exportdialog.cpp @@ -187,6 +187,7 @@ void ExportDialog::initQueryPage() return dbOk && queryOk; }); + ui->queryEdit->setAlwaysEnforceErrorsChecking(true); connect(ui->queryEdit, SIGNAL(errorsChecked(bool)), ui->queryPage, SIGNAL(completeChanged())); connect(ui->queryEdit, SIGNAL(textChanged()), ui->queryPage, SIGNAL(completeChanged())); @@ -619,7 +620,7 @@ void ExportDialog::updatePluginOptions(ExportPlugin* plugin, int& optionsRow) configMapper = new ConfigMapper(cfgMain); configMapper->bindToConfig(pluginOptionsWidget); - connect(configMapper, SIGNAL(modified()), this, SLOT(updateValidation())); + connect(configMapper, SIGNAL(modified(QWidget*)), this, SLOT(updateValidation())); plugin->validateOptions(); } diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/importdialog.cpp b/SQLiteStudio3/guiSQLiteStudio/dialogs/importdialog.cpp index 565feb4..f443f18 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dialogs/importdialog.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/importdialog.cpp @@ -1,12 +1,9 @@ #include "importdialog.h" #include "dblistmodel.h" #include "dbobjlistmodel.h" -#include "common/widgetstateindicator.h" #include "uiutils.h" #include "common/widgetcover.h" #include "services/dbmanager.h" -#include "services/pluginmanager.h" -#include "sqlitestudio.h" #include "plugins/importplugin.h" #include "ui_importdialog.h" #include "configmapper.h" @@ -14,6 +11,8 @@ #include "common/utils.h" #include "uiconfig.h" #include "themetuner.h" +#include "iconmanager.h" +#include "mainwindow.h" #include #include #include @@ -203,6 +202,7 @@ void ImportDialog::initDataSourcePage() void ImportDialog::removeOldOptions() { + pluginConfigOk.clear(); safe_delete(configMapper); safe_delete(pluginOptionsWidget); } @@ -284,7 +284,7 @@ void ImportDialog::updatePluginOptions(int& rows) configMapper = new ConfigMapper(cfgMain); configMapper->bindToConfig(pluginOptionsWidget); - connect(configMapper, SIGNAL(modified()), this, SLOT(updateValidation())); + connect(configMapper, SIGNAL(modified(QWidget*)), this, SLOT(updateValidation())); updateValidation(); } diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/indexdialog.cpp b/SQLiteStudio3/guiSQLiteStudio/dialogs/indexdialog.cpp index ebf9beb..d5249d0 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dialogs/indexdialog.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/indexdialog.cpp @@ -13,7 +13,6 @@ #include "indexexprcolumndialog.h" #include "windows/editorwindow.h" #include "services/codeformatter.h" -#include "common/compatibility.h" #include #include #include @@ -37,6 +36,10 @@ IndexDialog::IndexDialog(Db* db, const QString& index, QWidget* parent) : { existingIndex = true; init(); + + bool sysIdx = isSystemIndex(index); + ui->indexTab->setDisabled(sysIdx); + ui->ddlTab->setDisabled(sysIdx); } IndexDialog::~IndexDialog() @@ -709,15 +712,32 @@ void IndexDialog::preReject() preRejected = true; } +QString IndexDialog::getOriginalDdl() const +{ + SqliteCreateIndex* initialCreateIndex = originalCreateIndex->typeClone(); + initialCreateIndex->rebuildTokens(); + QString initialDdl = initialCreateIndex->detokenize(); + delete initialCreateIndex; + return initialDdl; +} + void IndexDialog::accept() { + QString initialDdl = getOriginalDdl(); rebuildCreateIndex(); + QString ddl = createIndex->detokenize(); + if (initialDdl == ddl) + { + // Nothing changed. Just close. + QDialog::accept(); + return; + } QStringList sqls; if (existingIndex) sqls << QString("DROP INDEX %1").arg(wrapObjIfNeeded(originalCreateIndex->index)); - sqls << createIndex->detokenize(); + sqls << ddl; if (!CFG_UI.General.DontShowDdlPreview.get()) { diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/indexdialog.h b/SQLiteStudio3/guiSQLiteStudio/dialogs/indexdialog.h index 2e586d4..dd68137 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dialogs/indexdialog.h +++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/indexdialog.h @@ -123,6 +123,7 @@ class GUI_API_EXPORT IndexDialog : public QDialog QStringList getExistingColumnExprs(const QString& exceptThis = QString()) const; QStringList getTableColumns() const; void preReject(); + QString getOriginalDdl() const; bool existingIndex = false; Db* db = nullptr; diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/languagedialog.cpp b/SQLiteStudio3/guiSQLiteStudio/dialogs/languagedialog.cpp index d9f05ff..b68ce10 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dialogs/languagedialog.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/languagedialog.cpp @@ -1,3 +1,4 @@ +#include "iconmanager.h" #include "languagedialog.h" #include "ui_languagedialog.h" #include "uiconfig.h" @@ -43,3 +44,8 @@ void LanguageDialog::askedForDefaultLanguage() { CFG_UI.General.LanguageAsked.set(true); } + +void LanguageDialog::showEvent(QShowEvent*) +{ + setWindowIcon(ICONS.SQLITESTUDIO_APP); +} diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/languagedialog.h b/SQLiteStudio3/guiSQLiteStudio/dialogs/languagedialog.h index d5fbed4..a11fc8a 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dialogs/languagedialog.h +++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/languagedialog.h @@ -13,6 +13,9 @@ class GUI_API_EXPORT LanguageDialog : public QDialog { Q_OBJECT + protected: + void showEvent(QShowEvent*); + public: explicit LanguageDialog(QWidget *parent = 0); ~LanguageDialog(); diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/newversiondialog.ui b/SQLiteStudio3/guiSQLiteStudio/dialogs/newversiondialog.ui index 12794ce..045c245 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dialogs/newversiondialog.ui +++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/newversiondialog.ui @@ -18,7 +18,6 @@ - 75 true @@ -35,12 +34,11 @@ 16 - 75 true - 0.0.0 + 0.0.0 Qt::AlignCenter diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/populateconfigdialog.cpp b/SQLiteStudio3/guiSQLiteStudio/dialogs/populateconfigdialog.cpp index 5dc506f..f4d93a4 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dialogs/populateconfigdialog.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/populateconfigdialog.cpp @@ -2,9 +2,9 @@ #include "ui_populateconfigdialog.h" #include "plugins/populateplugin.h" #include "services/populatemanager.h" -#include "sqlitestudio.h" #include "formmanager.h" #include "configmapper.h" +#include "mainwindow.h" #include "uiutils.h" #include #include @@ -55,7 +55,7 @@ void PopulateConfigDialog::init() ui->headerLabel->setText(headerString ); configMapper = new ConfigMapper(engine->getConfig()); - connect(configMapper, SIGNAL(modified()), this, SLOT(validateEngine())); + connect(configMapper, SIGNAL(modified(QWidget*)), this, SLOT(validateEngine())); connect(POPULATE_MANAGER, SIGNAL(validationResultFromPlugin(bool,CfgEntry*,QString)), this, SLOT(validationResultFromPlugin(bool,CfgEntry*,QString))); connect(POPULATE_MANAGER, SIGNAL(stateUpdateRequestFromPlugin(CfgEntry*,bool,bool)), this, SLOT(stateUpdateRequestFromPlugin(CfgEntry*,bool,bool))); diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/populatedialog.cpp b/SQLiteStudio3/guiSQLiteStudio/dialogs/populatedialog.cpp index aae0d58..89fff04 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dialogs/populatedialog.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/populatedialog.cpp @@ -32,8 +32,13 @@ PopulateDialog::~PopulateDialog() void PopulateDialog::setDbAndTable(Db* db, const QString& table) { + QString oldTable = ui->tableCombo->currentText(); ui->databaseCombo->setCurrentText(db->getName()); ui->tableCombo->setCurrentText(table); + + // #4177 + if (oldTable == table) + refreshColumns(); } void PopulateDialog::init() @@ -48,7 +53,7 @@ void PopulateDialog::init() return p1->getTitle().compare(p2->getTitle()) < 0; }); - for (PopulatePlugin* plugin : plugins) + for (PopulatePlugin*& plugin : plugins) { pluginByName[plugin->getName()] = plugin; pluginTitles << plugin->getTitle(); @@ -103,7 +108,7 @@ void PopulateDialog::rebuildEngines(const QHashtableCombo->currentText().isNull(); bool colCountOk = false; - for (const ColumnEntry& entry : columnEntries) + for (ColumnEntry& entry : columnEntries) { if (entry.check->isChecked()) { diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/triggercolumnsdialog.cpp b/SQLiteStudio3/guiSQLiteStudio/dialogs/triggercolumnsdialog.cpp index 7890b3c..896ef39 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dialogs/triggercolumnsdialog.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/triggercolumnsdialog.cpp @@ -1,10 +1,13 @@ #include "triggercolumnsdialog.h" #include "ui_triggercolumnsdialog.h" -#include "uiutils.h" #include TriggerColumnsDialog::TriggerColumnsDialog(QWidget *parent, int globalX, int globalY) : +#ifdef Q_OS_OSX + QDialog(parent), +#else QDialog(parent, Qt::Popup), +#endif globalX(globalX), globalY(globalY), ui(new Ui::TriggerColumnsDialog) diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/triggerdialog.cpp b/SQLiteStudio3/guiSQLiteStudio/dialogs/triggerdialog.cpp index 86862e2..5091613 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dialogs/triggerdialog.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/triggerdialog.cpp @@ -1,12 +1,10 @@ #include "triggerdialog.h" #include "ui_triggerdialog.h" -#include "parser/ast/sqliteselect.h" #include "services/notifymanager.h" #include "parser/ast/sqliteexpr.h" #include "triggercolumnsdialog.h" #include "common/utils_sql.h" #include "schemaresolver.h" -#include "parser/parser.h" #include "iconmanager.h" #include "db/chainexecutor.h" #include "dbtree/dbtree.h" @@ -208,11 +206,14 @@ void TriggerDialog::readTrigger() if (createTrigger->queries.size() > 0) { QStringList sqls; - for (SqliteQuery* query : createTrigger->queries) + for (SqliteQuery*& query : createTrigger->queries) sqls << query->detokenize(); ui->codeEdit->setPlainText(sqls.join(";\n")+";"); } + + rebuildTrigger(); + originalDdl = ddl; } void TriggerDialog::setupVirtualSqls() @@ -299,7 +300,7 @@ void TriggerDialog::rebuildTrigger() if (actionType == SqliteCreateTrigger::Event::UPDATE_OF) { QStringList colNames; - for (const QString& colName : selectedColumns) + for (QString& colName : selectedColumns) colNames << wrapObjIfNeeded(colName); columns = " "+colNames.join(", "); @@ -321,7 +322,7 @@ void TriggerDialog::rebuildTrigger() if (!scope.isNull()) scope.prepend(" "); - ddl = tempDdl.arg(trigName).arg(when).arg(action).arg(columns).arg(target).arg(scope).arg(precondition).arg(queries); + ddl = tempDdl.arg(trigName, when, action, columns, target, scope, precondition, queries); } void TriggerDialog::updateState() @@ -385,6 +386,12 @@ void TriggerDialog::tableChanged(const QString& newValue) void TriggerDialog::accept() { rebuildTrigger(); + if (originalDdl == ddl) + { + // Nothing changed. Just close. + QDialog::accept(); + return; + } QStringList sqls; if (existingTrigger) diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/triggerdialog.h b/SQLiteStudio3/guiSQLiteStudio/dialogs/triggerdialog.h index 712ea5e..1eb7064 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dialogs/triggerdialog.h +++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/triggerdialog.h @@ -50,6 +50,7 @@ class GUI_API_EXPORT TriggerDialog : public QDialog QStringList targetColumns; QStringList selectedColumns; QString ddl; + QString originalDdl; SqliteCreateTriggerPtr createTrigger; Ui::TriggerDialog *ui = nullptr; diff --git a/SQLiteStudio3/guiSQLiteStudio/extendedpalette.cpp b/SQLiteStudio3/guiSQLiteStudio/extendedpalette.cpp index 8357810..eba2f4c 100644 --- a/SQLiteStudio3/guiSQLiteStudio/extendedpalette.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/extendedpalette.cpp @@ -1,10 +1,10 @@ #include "extendedpalette.h" +#include "common/unused.h" #include #include ExtendedPalette::ExtendedPalette() { - } QBrush ExtendedPalette::editorString() const @@ -27,26 +27,44 @@ void ExtendedPalette::setEditorLineBase(const QBrush &value) editorLineBaseBrush = value; } -void ExtendedPalette::styleChanged(QStyle *style, const QString &themeName) +bool ExtendedPalette::styleChanged(QStyle *style, const QString &themeName) { + UNUSED(themeName); QPalette stdPalette = style->standardPalette(); + if (stdPalette == lastPalette) + return false; + + lastPalette = stdPalette; bool isDark = stdPalette.base().color().lightness() < 128; - static const QColor stdAltColor = QColor(Qt::green); + static const QColor stdStrColor = QColor(Qt::green); + static const QColor stdExprColor = QColor(Qt::magenta); if (stdPalette.text().color().lightness() >= 128) - editorStringBrush = QBrush(stdAltColor.lighter()); + editorStringBrush = stdStrColor.lighter(); else - editorStringBrush = QBrush(stdAltColor.darker()); + editorStringBrush = stdStrColor.darker(); - if (themeName.toLower() == "macintosh" && isDark) - editorLineBaseBrush = QBrush(stdPalette.alternateBase().color().darker(300)); + if (stdPalette.text().color().lightness() >= 128) + editorExpressionBrush = stdExprColor.lighter(); else - editorLineBaseBrush = stdPalette.alternateBase(); + editorExpressionBrush = stdExprColor; if (isDark) + { mdiAreaBaseBrush = stdPalette.alternateBase(); + editorLineNumberBaseBrush = stdPalette.base().color().lighter(130); + editorLineBaseBrush = stdPalette.base().color().lighter(130); + editorCurrentQueryBrush = stdPalette.base().color().lighter(120); + } else - mdiAreaBaseBrush = QBrush("#8a8a8a"); + { + editorLineNumberBaseBrush = stdPalette.base().color().darker(120); + editorLineBaseBrush = stdPalette.base().color().darker(120); + editorCurrentQueryBrush = stdPalette.base().color().darker(110); + mdiAreaBaseBrush = QColor(138, 138, 138); + } + + return true; } QBrush ExtendedPalette::mdiAreaBase() const @@ -58,3 +76,33 @@ void ExtendedPalette::setMdiAreaBase(const QBrush& value) { mdiAreaBaseBrush = value; } + +QBrush ExtendedPalette::editorExpression() const +{ + return editorExpressionBrush; +} + +void ExtendedPalette::setEditorExpression(const QBrush& value) +{ + editorExpressionBrush = value; +} + +const QBrush& ExtendedPalette::editorCurrentQueryBase() const +{ + return editorCurrentQueryBrush; +} + +void ExtendedPalette::setEditorCurrentQueryBase(const QBrush& value) +{ + editorCurrentQueryBrush = value; +} + +const QBrush& ExtendedPalette::editorLineNumberBase() const +{ + return editorLineNumberBaseBrush; +} + +void ExtendedPalette::setEditorLineNumberBaseBrush(const QBrush& newEditorLineNumberBaseBrush) +{ + editorLineNumberBaseBrush = newEditorLineNumberBaseBrush; +} diff --git a/SQLiteStudio3/guiSQLiteStudio/extendedpalette.h b/SQLiteStudio3/guiSQLiteStudio/extendedpalette.h index e6e5aef..6afaeba 100644 --- a/SQLiteStudio3/guiSQLiteStudio/extendedpalette.h +++ b/SQLiteStudio3/guiSQLiteStudio/extendedpalette.h @@ -2,6 +2,7 @@ #define EXTENDEDPALETTE_H #include +#include class QStyle; @@ -16,15 +17,29 @@ class ExtendedPalette QBrush editorLineBase() const; void setEditorLineBase(const QBrush &value); - void styleChanged(QStyle* style, const QString& themeName); + bool styleChanged(QStyle* style, const QString& themeName); QBrush mdiAreaBase() const; void setMdiAreaBase(const QBrush& value); + QBrush editorExpression() const; + void setEditorExpression(const QBrush& value); + + const QBrush& editorCurrentQueryBase() const; + void setEditorCurrentQueryBase(const QBrush& newEditorCurrentQueryBrush); + + const QBrush& editorLineNumberBase() const; + void setEditorLineNumberBaseBrush(const QBrush& newEditorLineNumberBaseBrush); + private: QBrush editorStringBrush; + QBrush editorExpressionBrush; QBrush editorLineBaseBrush; + QBrush editorLineNumberBaseBrush; + QBrush editorCurrentQueryBrush; QBrush mdiAreaBaseBrush; + + QPalette lastPalette; }; #endif // EXTENDEDPALETTE_H diff --git a/SQLiteStudio3/guiSQLiteStudio/formmanager.cpp b/SQLiteStudio3/guiSQLiteStudio/formmanager.cpp index bd5f6c0..55b0038 100644 --- a/SQLiteStudio3/guiSQLiteStudio/formmanager.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/formmanager.cpp @@ -1,7 +1,5 @@ #include "formmanager.h" -#include "services/config.h" #include "services/pluginmanager.h" -#include "sqlitestudio.h" #include "uiloader.h" #include "common/unused.h" #include "common/global.h" @@ -143,7 +141,7 @@ void FormManager::loadRecurently(const QString& path, const QString& prefix) continue; } - qDebug() << "Loading form file:" << fullPath; + qDebug().noquote() << "Loading form file:" << toNativePath(fullPath); widgetName = getWidgetName(fullPath); if (widgetName.isNull()) diff --git a/SQLiteStudio3/guiSQLiteStudio/formmanager.h b/SQLiteStudio3/guiSQLiteStudio/formmanager.h index fbffd7e..466dbd2 100644 --- a/SQLiteStudio3/guiSQLiteStudio/formmanager.h +++ b/SQLiteStudio3/guiSQLiteStudio/formmanager.h @@ -2,11 +2,13 @@ #define FORMMANAGER_H #include "guiSQLiteStudio_global.h" -#include "mainwindow.h" #include #include +#include class UiLoader; +class Plugin; +class PluginType; class GUI_API_EXPORT FormManager : public QObject { diff --git a/SQLiteStudio3/guiSQLiteStudio/formview.cpp b/SQLiteStudio3/guiSQLiteStudio/formview.cpp index 575c2de..84f9091 100644 --- a/SQLiteStudio3/guiSQLiteStudio/formview.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/formview.cpp @@ -1,11 +1,13 @@ #include "formview.h" #include "common/unused.h" +#include "datagrid/fkcombobox.h" #include "datagrid/sqlquerymodel.h" #include "datagrid/sqlqueryview.h" #include "widgetresizer.h" #include "datagrid/sqlqueryitem.h" #include "uiconfig.h" #include "common/datawidgetmapper.h" +#include "iconmanager.h" #include #include #include @@ -62,15 +64,15 @@ void FormView::setModel(SqlQueryModel* value) void FormView::load() { - reloadInternal(); - dataMapper->toFirst(); + shouldReload = true; + indexForReload = 0; } void FormView::reload() { - int idx = dataMapper->getCurrentIndex(); + shouldReload = true; + indexForReload = dataMapper->getCurrentIndex(); reloadInternal(); - dataMapper->setCurrentIndex(idx); } void FormView::focusFirstEditor() @@ -83,9 +85,14 @@ void FormView::focusFirstEditor() void FormView::reloadInternal() { + if (!shouldReload) + return; + + shouldReload = false; + // Cleanup dataMapper->clearMapping(); - for (QWidget* widget : widgets) + for (QWidget*& widget : widgets) { contents->layout()->removeWidget(widget); delete widget; @@ -97,8 +104,8 @@ void FormView::reloadInternal() // Recreate dataMapper->setModel(model.data()); int i = 0; - for (SqlQueryModelColumnPtr column : model->getColumns()) - addColumn(i++, column->displayName, column->dataType, (column->editionForbiddenReason.size() > 0)); + for (SqlQueryModelColumnPtr& column : model->getColumns()) + addColumn(i++, column.data()); } bool FormView::isModified() const @@ -106,12 +113,14 @@ bool FormView::isModified() const return valueModified; } -void FormView::addColumn(int colIdx, const QString& name, const DataType& dataType, bool readOnly) +MultiEditor* FormView::addColumn(int colIdx, SqlQueryModelColumn* column) { + bool readOnly = (column->editionForbiddenReason.size() > 0); + // Group with label - QString groupLabel = name; - if (!dataType.toString().isEmpty()) - groupLabel += " (" + dataType.toString() + ")"; + QString groupLabel = column->displayName; + if (!column->dataType.toString().isEmpty()) + groupLabel += " (" + column->dataType.toString() + ")"; // MultiEditor MultiEditor* multiEditor = new MultiEditor(); @@ -126,7 +135,24 @@ void FormView::addColumn(int colIdx, const QString& name, const DataType& dataTy connect(multiEditor, SIGNAL(modified()), this, SLOT(editorValueModified())); // MultiEditor editors - multiEditor->setDataType(dataType); + if (!column->getFkConstraints().isEmpty()) + { + Db* db = model->getDb(); + QString sql = FkComboBox::getSqlForFkEditor(db, column, QVariant()); + bool countingError = false; + qlonglong rowCount = FkComboBox::getRowCountForFkEditor(db, sql, &countingError); + if (!countingError && rowCount <= FkComboBox::MAX_ROWS_FOR_FK) + multiEditor->enableFk(db, column); + else + { + qDebug() << "FkCombo excluded from FormView for column" << column->column << "due to" + << (countingError ? + "error with row counting query" : + "too many rows in the FK table: " + QString::number(rowCount)); + } + } + + multiEditor->setDataType(column->dataType); // Resizer WidgetResizer* resizer = new WidgetResizer(Qt::Vertical); @@ -134,6 +160,8 @@ void FormView::addColumn(int colIdx, const QString& name, const DataType& dataTy resizer->setWidgetMinimumSize(0, minimumFieldHeight); widgets << resizer; contents->layout()->addWidget(resizer); + + return multiEditor; } bool FormView::isCurrentRowModifiedInGrid() @@ -266,3 +294,9 @@ QToolBar* FormView::getToolBar(int toolbar) const UNUSED(toolbar); return nullptr; } + +void FormView::showEvent(QShowEvent* event) +{ + UNUSED(event); + reloadInternal(); +} diff --git a/SQLiteStudio3/guiSQLiteStudio/formview.h b/SQLiteStudio3/guiSQLiteStudio/formview.h index 7f84e4f..c8f757a 100644 --- a/SQLiteStudio3/guiSQLiteStudio/formview.h +++ b/SQLiteStudio3/guiSQLiteStudio/formview.h @@ -2,32 +2,30 @@ #define FORMVIEW_H #include "guiSQLiteStudio_global.h" -#include "datagrid/sqlquerymodelcolumn.h" #include "multieditor/multieditor.h" +#include "common/extactioncontainer.h" #include #include #include -#include class SqlQueryModel; class SqlQueryView; class DataWidgetMapper; CFG_KEY_LIST(FormView, QObject::tr("Data form view"), - CFG_KEY_ENTRY(COMMIT, Qt::CTRL + Qt::Key_Return, QObject::tr("Commit changes for current row")) - CFG_KEY_ENTRY(ROLLBACK, Qt::CTRL + Qt::Key_Backspace, QObject::tr("Rollback changes for current row")) - CFG_KEY_ENTRY(FIRST_ROW, Qt::CTRL + Qt::ALT + Qt::Key_PageUp, QObject::tr("Go to first row on current page")) - CFG_KEY_ENTRY(NEXT_ROW, Qt::CTRL + Qt::ALT + Qt::Key_Right, QObject::tr("Go to next row")) - CFG_KEY_ENTRY(PREV_ROW, Qt::CTRL + Qt::ALT + Qt::Key_Left, QObject::tr("Go to previous row")) - CFG_KEY_ENTRY(LAST_ROW, Qt::CTRL + Qt::ALT + Qt::Key_PageDown, QObject::tr("Go to last row on current page")) - CFG_KEY_ENTRY(INSERT_ROW, Qt::Key_Insert, QObject::tr("Insert new row")) - CFG_KEY_ENTRY(DELETE_ROW, Qt::CTRL + Qt::Key_Delete, QObject::tr("Delete current row")) + CFG_KEY_ENTRY(COMMIT, Qt::CTRL + Qt::Key_Return, QObject::tr("Commit changes for current row")) + CFG_KEY_ENTRY(ROLLBACK, Qt::ALT + Qt::SHIFT + Qt::Key_Backspace, QObject::tr("Rollback changes for current row")) + CFG_KEY_ENTRY(FIRST_ROW, Qt::CTRL + Qt::ALT + Qt::Key_PageUp, QObject::tr("Go to first row on current page")) + CFG_KEY_ENTRY(NEXT_ROW, Qt::CTRL + Qt::ALT + Qt::Key_Right, QObject::tr("Go to next row")) + CFG_KEY_ENTRY(PREV_ROW, Qt::CTRL + Qt::ALT + Qt::Key_Left, QObject::tr("Go to previous row")) + CFG_KEY_ENTRY(LAST_ROW, Qt::CTRL + Qt::ALT + Qt::Key_PageDown, QObject::tr("Go to last row on current page")) + CFG_KEY_ENTRY(INSERT_ROW, Qt::Key_Insert, QObject::tr("Insert new row")) + CFG_KEY_ENTRY(DELETE_ROW, Qt::CTRL + Qt::Key_Delete, QObject::tr("Delete current row")) ) class GUI_API_EXPORT FormView : public QScrollArea, public ExtActionContainer { Q_OBJECT - Q_ENUMS(Action) public: enum Action @@ -41,6 +39,7 @@ class GUI_API_EXPORT FormView : public QScrollArea, public ExtActionContainer INSERT_ROW, DELETE_ROW }; + Q_ENUM(Action) enum ToolBar { @@ -64,10 +63,11 @@ class GUI_API_EXPORT FormView : public QScrollArea, public ExtActionContainer void createActions(); void setupDefShortcuts(); QToolBar* getToolBar(int toolbar) const; + void showEvent(QShowEvent* event); private: void reloadInternal(); - void addColumn(int colIdx, const QString& name, const DataType& dataType, bool readOnly); + MultiEditor* addColumn(int colIdx, SqlQueryModelColumn* column); bool isCurrentRowModifiedInGrid(); void updateDeletedState(); @@ -84,6 +84,8 @@ class GUI_API_EXPORT FormView : public QScrollArea, public ExtActionContainer QList readOnly; bool valueModified = false; bool currentIndexUpdating = false; + bool shouldReload = false; + int indexForReload = 0; private slots: void dataLoaded(bool successful); diff --git a/SQLiteStudio3/guiSQLiteStudio/guiSQLiteStudio.pro b/SQLiteStudio3/guiSQLiteStudio/guiSQLiteStudio.pro index 59a56d0..9a436de 100644 --- a/SQLiteStudio3/guiSQLiteStudio/guiSQLiteStudio.pro +++ b/SQLiteStudio3/guiSQLiteStudio/guiSQLiteStudio.pro @@ -6,7 +6,7 @@ QT += core gui uitools widgets xml svg -include($$PWD/../dirs.pri) +include($$PWD/../common.pri) include($$PWD/../utils.pri) OBJECTS_DIR = $$OBJECTS_DIR/guiSQLiteStudio @@ -31,20 +31,12 @@ QMAKE_CXXFLAGS += -pedantic DEFINES += GUISQLITESTUDIO_LIBRARY -TRANSLATIONS += translations/guiSQLiteStudio_ro_RO.ts \ - translations/guiSQLiteStudio_de.ts \ - translations/guiSQLiteStudio_it.ts \ - translations/guiSQLiteStudio_zh_CN.ts \ - translations/guiSQLiteStudio_sk.ts \ - translations/guiSQLiteStudio_ru.ts \ - translations/guiSQLiteStudio_pt_BR.ts \ - translations/guiSQLiteStudio_fr.ts \ - translations/guiSQLiteStudio_es.ts \ - translations/guiSQLiteStudio_pl.ts - SOURCES +=\ common/dbcombobox.cpp \ + common/immediatetooltip.cpp \ + common/mouseshortcut.cpp \ constraints/columngeneratedpanel.cpp \ + datagrid/fkcombobox.cpp \ extendedpalette.cpp \ mainwindow.cpp \ iconmanager.cpp \ @@ -53,12 +45,14 @@ SOURCES +=\ dbtree/dbtree.cpp \ dbtree/dbtreeview.cpp \ actionentry.cpp \ + multieditor/multieditorfk.cpp \ style.cpp \ uiutils.cpp \ dbtree/dbtreeitemdelegate.cpp \ dbtree/dbtreeitemfactory.cpp \ sqleditor.cpp \ datagrid/sqlquerymodel.cpp \ + datagrid/sqldatasourcequerymodel.cpp \ dblistmodel.cpp \ mdiarea.cpp \ statusfield.cpp \ @@ -96,6 +90,8 @@ SOURCES +=\ completer/completerview.cpp \ dialogs/searchtextdialog.cpp \ searchtextlocator.cpp \ + windows/codesnippeteditor.cpp \ + windows/codesnippeteditormodel.cpp \ windows/tablewindow.cpp \ windows/editorwindow.cpp \ datagrid/sqltablemodel.cpp \ @@ -197,7 +193,10 @@ SOURCES +=\ HEADERS += mainwindow.h \ common/dbcombobox.h \ + common/immediatetooltip.h \ + common/mouseshortcut.h \ constraints/columngeneratedpanel.h \ + datagrid/fkcombobox.h \ extendedpalette.h \ iconmanager.h \ dbtree/dbtreemodel.h \ @@ -205,12 +204,14 @@ HEADERS += mainwindow.h \ dbtree/dbtree.h \ dbtree/dbtreeview.h \ actionentry.h \ + multieditor/multieditorfk.h \ style.h \ uiutils.h \ dbtree/dbtreeitemdelegate.h \ dbtree/dbtreeitemfactory.h \ sqleditor.h \ datagrid/sqlquerymodel.h \ + datagrid/sqldatasourcequerymodel.h \ dblistmodel.h \ mdiarea.h \ statusfield.h \ @@ -249,6 +250,8 @@ HEADERS += mainwindow.h \ completer/completerview.h \ dialogs/searchtextdialog.h \ searchtextlocator.h \ + windows/codesnippeteditor.h \ + windows/codesnippeteditormodel.h \ windows/tablewindow.h \ windows/editorwindow.h \ datagrid/sqltablemodel.h \ @@ -359,6 +362,7 @@ FORMS += mainwindow.ui \ statusfield.ui \ completer/completerwindow.ui \ dialogs/searchtextdialog.ui \ + windows/codesnippeteditor.ui \ windows/tablewindow.ui \ windows/editorwindow.ui \ dialogs/columndialog.ui \ @@ -428,6 +432,17 @@ DISTFILES += \ + + + + + + + + + + + diff --git a/SQLiteStudio3/guiSQLiteStudio/guiSQLiteStudio.qrc b/SQLiteStudio3/guiSQLiteStudio/guiSQLiteStudio.qrc index 56db5ac..07ef5dd 100644 --- a/SQLiteStudio3/guiSQLiteStudio/guiSQLiteStudio.qrc +++ b/SQLiteStudio3/guiSQLiteStudio/guiSQLiteStudio.qrc @@ -1,18 +1,5 @@ - - translations/guiSQLiteStudio_ro_RO.qm - translations/guiSQLiteStudio_pl.qm - translations/guiSQLiteStudio_ru.qm - translations/guiSQLiteStudio_fr.qm - translations/guiSQLiteStudio_sk.qm - translations/guiSQLiteStudio_zh_CN.qm - translations/guiSQLiteStudio_de.qm - general.css - - - - diff --git a/SQLiteStudio3/guiSQLiteStudio/iconmanager.cpp b/SQLiteStudio3/guiSQLiteStudio/iconmanager.cpp index 8610dbf..3ab4341 100644 --- a/SQLiteStudio3/guiSQLiteStudio/iconmanager.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/iconmanager.cpp @@ -48,7 +48,7 @@ void IconManager::init() iconFileExtensions << "*.png" << "*.PNG" << "*.jpg" << "*.JPG" << "*.svg" << "*.SVG"; movieFileExtensions << "*.gif" << "*.GIF" << "*.mng" << "*.MNG"; - for (QString dirPath : iconDirs) + for (QString& dirPath : iconDirs) { loadRecurently(dirPath, "", false); loadRecurently(dirPath, "", true); diff --git a/SQLiteStudio3/guiSQLiteStudio/iconmanager.h b/SQLiteStudio3/guiSQLiteStudio/iconmanager.h index 6bff0e0..d698a2b 100644 --- a/SQLiteStudio3/guiSQLiteStudio/iconmanager.h +++ b/SQLiteStudio3/guiSQLiteStudio/iconmanager.h @@ -32,11 +32,14 @@ class GUI_API_EXPORT IconManager : public QObject DEF_ICON(APPLY_FILTER_RE, "apply_filter_re") DEF_ICON(APPLY_FILTER_SQL, "apply_filter_sql") DEF_ICON(APPLY_FILTER_TXT, "apply_filter_txt") + DEF_ICON(APPLY_FILTER_TXT_STRICT, "apply_filter_txt_strict") DEF_ICON(BUG, "bug") DEF_ICON(BUG_LIST, "bug_list") DEF_ICON(CLEAR_HISTORY, "clear_history") DEF_ICON(CLEAR_LINEEDIT, "clear_lineedit") DEF_ICON(CLOSE, "close") + DEF_ICON(CODE_ASSISTANT, "code_assistant") + DEF_ICON(CODE_SNIPPET, "code_snippet") DEF_ICON(COLUMN, "column") DEF_ICON(COLUMN_CONSTRAINT, "column_constraint") DEF_ICO2(COLUMN_CONSTRAINT_ADD, COLUMN_CONSTRAINT, PLUS) @@ -142,8 +145,6 @@ class GUI_API_EXPORT IconManager : public QObject DEF_ICON(KEYWORD, "keyword") DEF_ICON(LICENSES, "licenses") DEF_ICON(LOADING, "loading") - DEF_ICON(LOAD_FULL_VALUE, "load_full_value") - DEF_ICON(LOAD_FULL_VALUES, "load_full_values") DEF_ICON(MOVE_DOWN, "move_down") DEF_ICON(MOVE_UP, "move_up") DEF_ICO3(NEW_COLLATION, INSERT_ROW) @@ -164,6 +165,7 @@ class GUI_API_EXPORT IconManager : public QObject DEF_ICON(RENAME_FN_ARG, "rename_fn_arg") DEF_ICO3(RENAME_DATATYPE, RENAME_FN_ARG) DEF_ICON(RESET_AUTOINCREMENT, "reset_autoincrement") + DEF_ICON(RESTORE_DEFAULT, "restore_default") DEF_ICON(RESULTS_BELOW, "results_below") DEF_ICON(RESULTS_IN_TAB, "results_in_tab") DEF_ICON(ROLLBACK, "rollback") @@ -171,6 +173,7 @@ class GUI_API_EXPORT IconManager : public QObject DEF_ICON(SAVE_SQL_FILE, "save_sql_file") DEF_ICON(SEARCH, "search") DEF_ICON(SEARCH_AND_REPLACE, "search_and_replace") + DEF_ICON(SELECTION_INVERT, "selection_invert") DEF_ICON(SET_NULL, "set_null") DEF_ICON(SORT_COLUMNS, "sort_columns") DEF_ICON(SORT_COUNT_01, "sort_cnt_01") @@ -241,6 +244,8 @@ class GUI_API_EXPORT IconManager : public QObject DEF_ICON(WIN_TILE_VERTICAL, "win_tile_vertical") DEF_ICON(WIN_CLOSE, "window_close") DEF_ICON(WIN_CLOSE_ALL, "window_close_all") + DEF_ICON(WIN_CLOSE_ALL_LEFT, "window_close_all_left") + DEF_ICON(WIN_CLOSE_ALL_RIGHT, "window_close_all_right") DEF_ICON(WIN_CLOSE_OTHER, "window_close_other") DEF_ICON(WIN_RESTORE, "window_restore") DEF_ICON(WIN_RENAME, "window_rename") diff --git a/SQLiteStudio3/guiSQLiteStudio/icons.qrc b/SQLiteStudio3/guiSQLiteStudio/icons.qrc index 67c9351..cdb1f02 100644 --- a/SQLiteStudio3/guiSQLiteStudio/icons.qrc +++ b/SQLiteStudio3/guiSQLiteStudio/icons.qrc @@ -205,5 +205,12 @@ img/load_full_value.png img/load_full_values.png img/quit.png + img/window_close_all_left.png + img/window_close_all_right.png + img/code_assistant.png + img/code_snippet.png + img/selection_invert.png + img/apply_filter_txt_strict.png + img/restore_default.png diff --git a/SQLiteStudio3/guiSQLiteStudio/img/apply_filter_txt_strict.png b/SQLiteStudio3/guiSQLiteStudio/img/apply_filter_txt_strict.png new file mode 100644 index 0000000..593c5e2 Binary files /dev/null and b/SQLiteStudio3/guiSQLiteStudio/img/apply_filter_txt_strict.png differ diff --git a/SQLiteStudio3/guiSQLiteStudio/img/code_assistant.png b/SQLiteStudio3/guiSQLiteStudio/img/code_assistant.png new file mode 100644 index 0000000..5b47c67 Binary files /dev/null and b/SQLiteStudio3/guiSQLiteStudio/img/code_assistant.png differ diff --git a/SQLiteStudio3/guiSQLiteStudio/img/code_snippet.png b/SQLiteStudio3/guiSQLiteStudio/img/code_snippet.png new file mode 100644 index 0000000..d398622 Binary files /dev/null and b/SQLiteStudio3/guiSQLiteStudio/img/code_snippet.png differ diff --git a/SQLiteStudio3/guiSQLiteStudio/img/restore_default.png b/SQLiteStudio3/guiSQLiteStudio/img/restore_default.png new file mode 100644 index 0000000..d39f06d Binary files /dev/null and b/SQLiteStudio3/guiSQLiteStudio/img/restore_default.png differ diff --git a/SQLiteStudio3/guiSQLiteStudio/img/selection_invert.png b/SQLiteStudio3/guiSQLiteStudio/img/selection_invert.png new file mode 100644 index 0000000..889cb10 Binary files /dev/null and b/SQLiteStudio3/guiSQLiteStudio/img/selection_invert.png differ diff --git a/SQLiteStudio3/guiSQLiteStudio/img/sqlitestudio_256.png b/SQLiteStudio3/guiSQLiteStudio/img/sqlitestudio_256.png new file mode 100644 index 0000000..5b99669 Binary files /dev/null and b/SQLiteStudio3/guiSQLiteStudio/img/sqlitestudio_256.png differ diff --git a/SQLiteStudio3/guiSQLiteStudio/img/sqlitestudio_48.png b/SQLiteStudio3/guiSQLiteStudio/img/sqlitestudio_48.png new file mode 100644 index 0000000..1d7da73 Binary files /dev/null and b/SQLiteStudio3/guiSQLiteStudio/img/sqlitestudio_48.png differ diff --git a/SQLiteStudio3/guiSQLiteStudio/img/sqlitestudio_installer.png b/SQLiteStudio3/guiSQLiteStudio/img/sqlitestudio_installer.png new file mode 100644 index 0000000..198b93f Binary files /dev/null and b/SQLiteStudio3/guiSQLiteStudio/img/sqlitestudio_installer.png differ diff --git a/SQLiteStudio3/guiSQLiteStudio/img/sqlitestudio_opt.ico b/SQLiteStudio3/guiSQLiteStudio/img/sqlitestudio_opt.ico new file mode 100644 index 0000000..79cad9f Binary files /dev/null and b/SQLiteStudio3/guiSQLiteStudio/img/sqlitestudio_opt.ico differ diff --git a/SQLiteStudio3/guiSQLiteStudio/img/window_close_all_left.png b/SQLiteStudio3/guiSQLiteStudio/img/window_close_all_left.png new file mode 100644 index 0000000..6c6f3a8 Binary files /dev/null and b/SQLiteStudio3/guiSQLiteStudio/img/window_close_all_left.png differ diff --git a/SQLiteStudio3/guiSQLiteStudio/img/window_close_all_right.png b/SQLiteStudio3/guiSQLiteStudio/img/window_close_all_right.png new file mode 100644 index 0000000..0b21b17 Binary files /dev/null and b/SQLiteStudio3/guiSQLiteStudio/img/window_close_all_right.png differ diff --git a/SQLiteStudio3/guiSQLiteStudio/mainwindow.cpp b/SQLiteStudio3/guiSQLiteStudio/mainwindow.cpp index 57c7d35..b1f1f42 100644 --- a/SQLiteStudio3/guiSQLiteStudio/mainwindow.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/mainwindow.cpp @@ -4,8 +4,6 @@ #include "dbtree/dbtreemodel.h" #include "iconmanager.h" #include "windows/editorwindow.h" -#include "windows/tablewindow.h" -#include "windows/viewwindow.h" #include "windows/functionseditor.h" #include "windows/collationseditor.h" #include "windows/ddlhistorywindow.h" @@ -13,8 +11,6 @@ #include "mdiarea.h" #include "statusfield.h" #include "uiconfig.h" -#include "common/extaction.h" -#include "dbobjectdialogs.h" #include "services/notifymanager.h" #include "dialogs/configdialog.h" #include "services/pluginmanager.h" @@ -35,12 +31,13 @@ #include "dialogs/aboutdialog.h" #include "dialogs/newversiondialog.h" #include "dialogs/quitconfirmdialog.h" -#include "common/widgetcover.h" #include "dialogs/cssdebugdialog.h" #include "themetuner.h" #include "style.h" #include "services/codeformatter.h" #include "common/compatibility.h" +#include "windows/codesnippeteditor.h" +#include "uiutils.h" #include #include #include @@ -51,6 +48,8 @@ #include #include #include +#include +#include CFG_KEYS_DEFINE(MainWindow) MainWindow* MainWindow::instance = nullptr; @@ -139,6 +138,30 @@ void MainWindow::init() updateMultipleSessionsSetting(); fixFonts(); + fixToolbars(); + observeSessionChanges(); + + SQLITESTUDIO->installCrashHandler([this]() + { + saveSession(); + }); +} + +void MainWindow::observeSessionChanges() +{ + saveSessionTimer = new QTimer(this); + saveSessionTimer->setSingleShot(true); + connect(saveSessionTimer, SIGNAL(timeout()), this, SLOT(saveSession())); + + for (QDockWidget* dock : QList({dbTree, statusField})) + { + connect(dock, SIGNAL(topLevelChanged(bool)), this, SLOT(scheduleSessionSave())); + connect(dock, SIGNAL(dockLocationChanged(Qt::DockWidgetArea)), this, SLOT(scheduleSessionSave())); + connect(dock, SIGNAL(visibilityChanged(bool)), this, SLOT(scheduleSessionSave())); + } + connect(dbTree, SIGNAL(sessionValueChanged()), this, SLOT(scheduleSessionSave())); + connect(getMdiArea(), SIGNAL(sessionValueChanged()), this, SLOT(scheduleSessionSave())); + connect(this, SIGNAL(sessionValueChanged()), this, SLOT(scheduleSessionSave())); } void MainWindow::cleanUp() @@ -186,6 +209,8 @@ void MainWindow::updateWindowActions() actionMap[CLOSE_WINDOW]->setEnabled(hasActiveTask); actionMap[CLOSE_OTHER_WINDOWS]->setEnabled(hasActiveTask); actionMap[CLOSE_ALL_WINDOWS]->setEnabled(hasActiveTask); + actionMap[CLOSE_ALL_WINDOWS_LEFT]->setEnabled(hasActiveTask); + actionMap[CLOSE_ALL_WINDOWS_RIGHT]->setEnabled(hasActiveTask); actionMap[RENAME_WINDOW]->setEnabled(hasActiveTask); actionMap[RESTORE_WINDOW]->setEnabled(hasClosedWindowToRestore()); } @@ -225,11 +250,13 @@ void MainWindow::closeEvent(QCloseEvent* event) return; } + saveSessionTimer->stop(); + safe_delete(saveSessionTimer); + closingApp = true; closeNonSessionWindows(); - MdiWindow* currWindow = ui->mdiArea->getCurrentWindow(); - hide(); - saveSession(currWindow); + saveSession(true); + SQLITESTUDIO->cleanUp(); QMainWindow::closeEvent(event); } @@ -238,6 +265,7 @@ void MainWindow::createActions() createAction(OPEN_SQL_EDITOR, ICONS.OPEN_SQL_EDITOR, tr("Open SQL &editor"), this, SLOT(openSqlEditorSlot()), ui->mainToolBar); createAction(OPEN_DDL_HISTORY, ICONS.DDL_HISTORY, tr("Open DDL &history"), this, SLOT(openDdlHistorySlot()), ui->mainToolBar); createAction(OPEN_FUNCTION_EDITOR, ICONS.FUNCTION, tr("Open SQL &functions editor"), this, SLOT(openFunctionEditorSlot()), ui->mainToolBar); + createAction(OPEN_SNIPPETS_EDITOR, ICONS.CODE_SNIPPET, tr("Open code &snippets editor"), this, SLOT(openCodeSnippetsEditorSlot()), ui->mainToolBar); createAction(OPEN_COLLATION_EDITOR, ICONS.CONSTRAINT_COLLATION, tr("Open &collations editor"), this, SLOT(openCollationEditorSlot()), ui->mainToolBar); createAction(OPEN_EXTENSION_MANAGER, ICONS.EXTENSION, tr("Open ex&tension manager"), this, SLOT(openExtensionManagerSlot()), ui->mainToolBar); createAction(IMPORT, ICONS.IMPORT, tr("&Import"), this, SLOT(importAnything()), ui->mainToolBar); @@ -253,11 +281,13 @@ void MainWindow::createActions() createAction(PREV_TASK, tr("Previous window"), ui->taskBar, SLOT(prevTask()), this); createAction(HIDE_STATUS_FIELD, tr("Hide status field"), this, SLOT(hideStatusField()), this); - createAction(CLOSE_WINDOW, ICONS.WIN_CLOSE, tr("Close selected &window"), this, SLOT(closeSelectedWindow()), this); - createAction(CLOSE_OTHER_WINDOWS, ICONS.WIN_CLOSE_OTHER, tr("Close all windows &but selected"), this, SLOT(closeAllWindowsButSelected()), this); + createAction(CLOSE_WINDOW, ICONS.WIN_CLOSE, tr("Close current &window"), this, SLOT(closeSelectedWindow()), this); + createAction(CLOSE_OTHER_WINDOWS, ICONS.WIN_CLOSE_OTHER, tr("Close &other windows"), this, SLOT(closeAllWindowsButSelected()), this); createAction(CLOSE_ALL_WINDOWS, ICONS.WIN_CLOSE_ALL, tr("Close &all windows"), this, SLOT(closeAllWindows()), this); + createAction(CLOSE_ALL_WINDOWS_LEFT, ICONS.WIN_CLOSE_ALL_LEFT, tr("Close windows on the &left"), this, SLOT(closeAllLeftWindows()), this); + createAction(CLOSE_ALL_WINDOWS_RIGHT, ICONS.WIN_CLOSE_ALL_RIGHT, tr("Close windows on the &right"), this, SLOT(closeAllRightWindows()), this); createAction(RESTORE_WINDOW, ICONS.WIN_RESTORE, tr("Re&store recently closed window"), this, SLOT(restoreLastClosedWindow()), this); - createAction(RENAME_WINDOW, ICONS.WIN_RENAME, tr("&Rename selected window"), this, SLOT(renameWindow()), this); + createAction(RENAME_WINDOW, ICONS.WIN_RENAME, tr("Re&name selected window"), this, SLOT(renameWindow()), this); createAction(OPEN_DEBUG_CONSOLE, tr("Open Debug Console"), this, SLOT(openDebugConsole()), this); createAction(OPEN_CSS_CONSOLE, tr("Open CSS Console"), this, SLOT(openCssConsole()), this); @@ -352,8 +382,10 @@ void MainWindow::initMenuBar() viewMenu->addAction(actionMap[MDI_CASCADE]); viewMenu->addSeparator(); viewMenu->addAction(actionMap[CLOSE_WINDOW]); - viewMenu->addAction(actionMap[CLOSE_OTHER_WINDOWS]); viewMenu->addAction(actionMap[CLOSE_ALL_WINDOWS]); + viewMenu->addAction(actionMap[CLOSE_OTHER_WINDOWS]); + viewMenu->addAction(actionMap[CLOSE_ALL_WINDOWS_LEFT]); + viewMenu->addAction(actionMap[CLOSE_ALL_WINDOWS_RIGHT]); viewMenu->addSeparator(); viewMenu->addAction(actionMap[RESTORE_WINDOW]); viewMenu->addAction(actionMap[RENAME_WINDOW]); @@ -369,6 +401,7 @@ void MainWindow::initMenuBar() toolsMenu->addAction(actionMap[OPEN_SQL_EDITOR]); toolsMenu->addAction(actionMap[OPEN_DDL_HISTORY]); toolsMenu->addAction(actionMap[OPEN_FUNCTION_EDITOR]); + toolsMenu->addAction(actionMap[OPEN_SNIPPETS_EDITOR]); toolsMenu->addAction(actionMap[OPEN_COLLATION_EDITOR]); toolsMenu->addAction(actionMap[OPEN_EXTENSION_MANAGER]); toolsMenu->addAction(actionMap[IMPORT]); @@ -448,10 +481,16 @@ void MainWindow::restoreSession() } if (sessionValue.contains("style")) - setStyle(sessionValue["style"].toString()); + { + QString styleName = sessionValue["style"].toString(); + setStyle(styleName); + } else THEME_TUNER->tuneCurrentTheme(); + QString styleName = currentStyle(); + CFG_UI.General.Style.set(styleName); + if (sessionValue.contains("geometry")) restoreGeometry(sessionValue["geometry"].toByteArray()); @@ -533,22 +572,24 @@ MdiWindow* MainWindow::restoreWindowSession(const QVariant &windowSessions) { window->setCloseWithoutSessionSaving(true); delete window; + return nullptr; } return window; } -void MainWindow::setStyle(const QString& styleName) +bool MainWindow::setStyle(const QString& styleName) { QStyle* style = QStyleFactory::create(styleName); if (!style) { notifyWarn(tr("Could not set style: %1", "main window").arg(styleName)); - return; + return false; } STYLE->setStyle(style, styleName); statusField->refreshColors(); + return true; } QString MainWindow::currentStyle() const @@ -570,12 +611,33 @@ EditorWindow* MainWindow::openSqlEditor(Db* dbToSet, const QString& sql) return win; } +void MainWindow::saveSession(bool hide) +{ + MdiWindow* currWindow = ui->mdiArea->getCurrentWindow(); + if (hide) + this->hide(); + + saveSession(currWindow); +} + +void MainWindow::saveSession() +{ + saveSession(false); +} + +void MainWindow::scheduleSessionSave() +{ + if (saveSessionTimer) + saveSessionTimer->start(saveSessionDelayMs); +} + void MainWindow::closeNonSessionWindows() { for (MdiWindow* window : ui->mdiArea->getWindows()) if (!window->restoreSessionNextTime()) window->close(); } + FormManager* MainWindow::getFormManager() const { return formManager; @@ -607,6 +669,7 @@ void MainWindow::refreshMdiWindows() for (const QString& name : actionNames) mdiMenu->addAction(nameToAction[name]); + fixToolbarTooltips(ui->viewToolbar); updateWindowActions(); } @@ -632,6 +695,11 @@ void MainWindow::openFunctionEditorSlot() openFunctionEditor(); } +void MainWindow::openCodeSnippetsEditorSlot() +{ + openCodeSnippetEditor(); +} + void MainWindow::openCollationEditorSlot() { openCollationEditor(); @@ -679,6 +747,16 @@ void MainWindow::closeAllWindows() ui->mdiArea->closeAllSubWindows(); } +void MainWindow::closeAllLeftWindows() +{ + ui->mdiArea->closeAllLeftToActive(); +} + +void MainWindow::closeAllRightWindows() +{ + ui->mdiArea->closeAllRightToActive(); +} + void MainWindow::closeAllWindowsButSelected() { ui->mdiArea->closeAllButActive(); @@ -784,14 +862,12 @@ void MainWindow::quit() void MainWindow::updateMultipleSessionsSetting(const QVariant& newValue) { - QSettings sett; - sett.setValue(ALLOW_MULTIPLE_SESSIONS_SETTING, newValue); + Config::getSettings()->setValue(ALLOW_MULTIPLE_SESSIONS_SETTING, newValue); } void MainWindow::updateMultipleSessionsSetting() { - QSettings sett; - sett.setValue(ALLOW_MULTIPLE_SESSIONS_SETTING, CFG_UI.General.AllowMultipleSessions.get()); + Config::getSettings()->setValue(ALLOW_MULTIPLE_SESSIONS_SETTING, CFG_UI.General.AllowMultipleSessions.get()); } #ifdef PORTABLE_CONFIG @@ -859,6 +935,11 @@ FunctionsEditor* MainWindow::openFunctionEditor() return openMdiWindow(); } +CodeSnippetEditor* MainWindow::openCodeSnippetEditor() +{ + return openMdiWindow(); +} + CollationsEditor* MainWindow::openCollationEditor() { return openMdiWindow(); @@ -876,10 +957,18 @@ void MainWindow::fixFonts() { typed = dynamic_cast*>(cfg); if (typed->get().pointSize() == 0) - cfg->set(cfg->getDefultValue()); + cfg->set(cfg->getDefaultValue()); } } +void MainWindow::fixToolbars() +{ + fixToolbarTooltips(ui->viewToolbar); + fixToolbarTooltips(ui->mainToolBar); + fixToolbarTooltips(ui->structureToolbar); + fixToolbarTooltips(ui->dbToolbar); +} + bool MainWindow::confirmQuit(const QList& instances) { QuitConfirmDialog dialog(MAINWINDOW); diff --git a/SQLiteStudio3/guiSQLiteStudio/mainwindow.h b/SQLiteStudio3/guiSQLiteStudio/mainwindow.h index cedbc20..01457b0 100644 --- a/SQLiteStudio3/guiSQLiteStudio/mainwindow.h +++ b/SQLiteStudio3/guiSQLiteStudio/mainwindow.h @@ -5,7 +5,6 @@ #include "db/db.h" #include "ui_mainwindow.h" #include "mdiwindow.h" -#include "services/updatemanager.h" #include "guiSQLiteStudio_global.h" #include #include @@ -30,8 +29,10 @@ class Committable; class WidgetCover; class QProgressBar; class QLabel; +class QTimer; class ThemeTuner; class SqliteExtensionEditor; +class CodeSnippetEditor; #ifdef Q_OS_MACX #define PREV_TASK_KEY_SEQ Qt::CTRL + Qt::ALT + Qt::Key_Left @@ -42,20 +43,26 @@ class SqliteExtensionEditor; #endif CFG_KEY_LIST(MainWindow, QObject::tr("Main window"), - CFG_KEY_ENTRY(OPEN_SQL_EDITOR, Qt::ALT + Qt::Key_E, QObject::tr("Open SQL editor")) - CFG_KEY_ENTRY(PREV_TASK, PREV_TASK_KEY_SEQ, QObject::tr("Previous window")) - CFG_KEY_ENTRY(NEXT_TASK, NEXT_TASK_KEY_SEQ, QObject::tr("Next window")) - CFG_KEY_ENTRY(HIDE_STATUS_FIELD, Qt::Key_Escape, QObject::tr("Hide status area")) - CFG_KEY_ENTRY(OPEN_CONFIG, Qt::Key_F2, QObject::tr("Open configuration dialog")) - CFG_KEY_ENTRY(OPEN_DEBUG_CONSOLE, Qt::Key_F12, QObject::tr("Open Debug Console")) - CFG_KEY_ENTRY(OPEN_CSS_CONSOLE, Qt::Key_F11, QObject::tr("Open CSS Console")) - CFG_KEY_ENTRY(QUIT, Qt::CTRL + Qt::Key_Q, QObject::tr("Quit the application")) + CFG_KEY_ENTRY(OPEN_SQL_EDITOR, Qt::ALT + Qt::Key_E, QObject::tr("Open SQL editor")) + CFG_KEY_ENTRY(OPEN_DDL_HISTORY, Qt::CTRL + Qt::Key_H, QObject::tr("Open DDL history window")) + CFG_KEY_ENTRY(OPEN_SNIPPETS_EDITOR, Qt::CTRL + Qt::SHIFT + Qt::Key_P, QObject::tr("Open snippets editor window")) + CFG_KEY_ENTRY(OPEN_FUNCTION_EDITOR, Qt::CTRL + Qt::SHIFT + Qt::Key_F, QObject::tr("Open function editor window")) + CFG_KEY_ENTRY(OPEN_COLLATION_EDITOR, Qt::CTRL + Qt::SHIFT + Qt::Key_C, QObject::tr("Open collation editor window")) + CFG_KEY_ENTRY(OPEN_EXTENSION_MANAGER, Qt::CTRL + Qt::SHIFT + Qt::Key_E, QObject::tr("Open extension manager window")) + CFG_KEY_ENTRY(PREV_TASK, PREV_TASK_KEY_SEQ, QObject::tr("Previous window")) + CFG_KEY_ENTRY(NEXT_TASK, NEXT_TASK_KEY_SEQ, QObject::tr("Next window")) + CFG_KEY_ENTRY(HIDE_STATUS_FIELD, Qt::Key_Escape, QObject::tr("Hide status area")) + CFG_KEY_ENTRY(USER_MANUAL, Qt::Key_F1, QObject::tr("Open user manual")) + CFG_KEY_ENTRY(OPEN_CONFIG, Qt::Key_F10, QObject::tr("Open configuration dialog")) + CFG_KEY_ENTRY(OPEN_DEBUG_CONSOLE, Qt::Key_F12, QObject::tr("Open Debug Console")) + CFG_KEY_ENTRY(OPEN_CSS_CONSOLE, Qt::Key_F11, QObject::tr("Open CSS Console")) + CFG_KEY_ENTRY(ABOUT, Qt::SHIFT + Qt::Key_F1, QObject::tr("Open the About dialog")) + CFG_KEY_ENTRY(QUIT, Qt::CTRL + Qt::Key_Q, QObject::tr("Quit the application")) ) class GUI_API_EXPORT MainWindow : public QMainWindow, public ExtActionContainer { - Q_OBJECT - Q_ENUMS(Action) + Q_OBJECT public: enum Action @@ -70,6 +77,7 @@ class GUI_API_EXPORT MainWindow : public QMainWindow, public ExtActionContainer HIDE_STATUS_FIELD, OPEN_CONFIG, OPEN_DDL_HISTORY, + OPEN_SNIPPETS_EDITOR, OPEN_FUNCTION_EDITOR, OPEN_COLLATION_EDITOR, OPEN_EXTENSION_MANAGER, @@ -77,6 +85,8 @@ class GUI_API_EXPORT MainWindow : public QMainWindow, public ExtActionContainer IMPORT, CLOSE_WINDOW, CLOSE_ALL_WINDOWS, + CLOSE_ALL_WINDOWS_LEFT, + CLOSE_ALL_WINDOWS_RIGHT, CLOSE_OTHER_WINDOWS, RESTORE_WINDOW, RENAME_WINDOW, @@ -94,6 +104,7 @@ class GUI_API_EXPORT MainWindow : public QMainWindow, public ExtActionContainer CHECK_FOR_UPDATES, QUIT }; + Q_ENUM(Action) enum ToolBar { @@ -109,7 +120,7 @@ class GUI_API_EXPORT MainWindow : public QMainWindow, public ExtActionContainer DbTree* getDbTree() const; StatusField* getStatusField() const; void restoreSession(); - void setStyle(const QString& styleName); + bool setStyle(const QString& styleName); FormManager* getFormManager() const; bool eventFilter(QObject* obj, QEvent* e); void pushClosedWindowSessionValue(const QVariant& value); @@ -136,18 +147,22 @@ class GUI_API_EXPORT MainWindow : public QMainWindow, public ExtActionContainer ~MainWindow(); void init(); + void observeSessionChanges(); void createActions(); void setupDefShortcuts(); void initMenuBar(); void saveSession(MdiWindow* currWindow); + void saveSession(bool hide); void restoreWindowSessions(const QList& windowSessions); MdiWindow *restoreWindowSession(const QVariant& windowSessions); void closeNonSessionWindows(); DdlHistoryWindow* openDdlHistory(); FunctionsEditor* openFunctionEditor(); + CodeSnippetEditor* openCodeSnippetEditor(); CollationsEditor* openCollationEditor(); SqliteExtensionEditor* openExtensionManager(); void fixFonts(); + void fixToolbars(); template T* openMdiWindow(); @@ -157,6 +172,7 @@ class GUI_API_EXPORT MainWindow : public QMainWindow, public ExtActionContainer static MainWindow* instance; static constexpr int closedWindowsStackSize = 20; static_char* openUpdatesUrl = "open_updates://"; + static constexpr int saveSessionDelayMs = 500; Ui::MainWindow *ui = nullptr; DbTree* dbTree = nullptr; @@ -175,6 +191,7 @@ class GUI_API_EXPORT MainWindow : public QMainWindow, public ExtActionContainer #endif WidgetCover* widgetCover = nullptr; bool manualUpdatesChecking = false; + QTimer* saveSessionTimer = nullptr; public slots: EditorWindow* openSqlEditor(); @@ -198,11 +215,14 @@ class GUI_API_EXPORT MainWindow : public QMainWindow, public ExtActionContainer void openConfig(); void openDdlHistorySlot(); void openFunctionEditorSlot(); + void openCodeSnippetsEditorSlot(); void openCollationEditorSlot(); void openExtensionManagerSlot(); void exportAnything(); void importAnything(); void closeAllWindows(); + void closeAllLeftWindows(); + void closeAllRightWindows(); void closeAllWindowsButSelected(); void closeSelectedWindow(); void restoreLastClosedWindow(); @@ -221,6 +241,11 @@ class GUI_API_EXPORT MainWindow : public QMainWindow, public ExtActionContainer void quit(); void updateMultipleSessionsSetting(); void updateMultipleSessionsSetting(const QVariant& newValue); + void saveSession(); + void scheduleSessionSave(); + + signals: + void sessionValueChanged(); }; template diff --git a/SQLiteStudio3/guiSQLiteStudio/mdiarea.cpp b/SQLiteStudio3/guiSQLiteStudio/mdiarea.cpp index 8f8521d..d73c506 100644 --- a/SQLiteStudio3/guiSQLiteStudio/mdiarea.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/mdiarea.cpp @@ -42,7 +42,10 @@ MdiWindow *MdiArea::addSubWindow(MdiChild *mdiChild) mdiWin->setWindowState(mdiWin->windowState()|Qt::WindowMaximized); } + connect(mdiChild, SIGNAL(sessionValueChanged()), this, SIGNAL(sessionValueChanged())); + emit windowListChanged(); + emit sessionValueChanged(); return mdiWin; } @@ -87,6 +90,16 @@ QList MdiArea::getMdiChilds() const return childs; } +void MdiArea::enforceTaskSelectionAfterWindowClose(QAction* task) +{ + taskToSelectAfterWindowClose = task; +} + +void MdiArea::enforceCurrentTaskSelectionAfterWindowClose() +{ + enforceTaskSelectionAfterWindowClose(getTaskBar()->getActiveTask()); +} + QList MdiArea::getWindowsToTile() const { QList list; @@ -110,6 +123,7 @@ void MdiArea::taskActivated() } setActiveSubWindow(actionToWinMap[action]); + emit sessionValueChanged(); } void MdiArea::windowDestroyed(MdiWindow* window) @@ -121,7 +135,11 @@ void MdiArea::windowDestroyed(MdiWindow* window) QAction* taskToSelect = nullptr; if (!MAINWINDOW->isClosingApp()) { - taskToSelect = taskBar->getNextTask(action); + taskToSelect = taskToSelectAfterWindowClose; + taskToSelectAfterWindowClose = nullptr; + if (!taskToSelect || action == taskToSelect || !taskBar->getTasks().contains(taskToSelect)) + taskToSelect = taskBar->getNextTask(action); + if (!taskToSelect) taskToSelect = taskBar->getPrevTask(action); } @@ -132,6 +150,7 @@ void MdiArea::windowDestroyed(MdiWindow* window) delete action; emit windowListChanged(); + emit sessionValueChanged(); if (taskToSelect) taskBar->setActiveTask(taskToSelect); @@ -151,6 +170,7 @@ void MdiArea::windowActivated() QAction* action = winToActionMap[subWin]; action->setChecked(true); + emit sessionValueChanged(); } void MdiArea::tileHorizontally() @@ -212,16 +232,36 @@ void MdiArea::closeAllButActive() QList allButActive = subWindowList(); allButActive.removeOne(activeSubWindow()); - for (QMdiSubWindow *window : allButActive) + for (QMdiSubWindow*& window : allButActive) window->close(); } +void MdiArea::closeAllLeftToActive() +{ + QList tasks = taskBar->getTasks(); + QAction* activeTask = taskBar->getActiveTask(); + int activeIdx = tasks.indexOf(activeTask); + + for (QAction*& task : tasks.mid(0, activeIdx)) + actionToWinMap[task]->close(); +} + +void MdiArea::closeAllRightToActive() +{ + QList tasks = taskBar->getTasks(); + QAction* activeTask = taskBar->getActiveTask(); + int activeIdx = tasks.indexOf(activeTask); + + for (QAction*& task : tasks.mid(activeIdx + 1)) + actionToWinMap[task]->close(); +} + MdiWindow* MdiArea::getWindowByChild(MdiChild *child) { if (!child) return nullptr; - for (QMdiSubWindow *window : subWindowList()) + for (QMdiSubWindow*& window : subWindowList()) if (window->widget() == child) return dynamic_cast(window); diff --git a/SQLiteStudio3/guiSQLiteStudio/mdiarea.h b/SQLiteStudio3/guiSQLiteStudio/mdiarea.h index f34434e..2cb488a 100644 --- a/SQLiteStudio3/guiSQLiteStudio/mdiarea.h +++ b/SQLiteStudio3/guiSQLiteStudio/mdiarea.h @@ -28,6 +28,8 @@ class GUI_API_EXPORT MdiArea : public QMdiArea QAction* getTaskByWindow(MdiWindow* window); QList getWindows() const; QList getMdiChilds() const; + void enforceTaskSelectionAfterWindowClose(QAction* task); + void enforceCurrentTaskSelectionAfterWindowClose(); template QList getMdiChilds() const; @@ -38,9 +40,11 @@ class GUI_API_EXPORT MdiArea : public QMdiArea TaskBar* taskBar = nullptr; QHash actionToWinMap; QHash winToActionMap; + QAction* taskToSelectAfterWindowClose = nullptr; signals: void windowListChanged(); + void sessionValueChanged(); private slots: void taskActivated(); @@ -51,6 +55,8 @@ class GUI_API_EXPORT MdiArea : public QMdiArea void tileHorizontally(); void tileVertically(); void closeAllButActive(); + void closeAllLeftToActive(); + void closeAllRightToActive(); }; template diff --git a/SQLiteStudio3/guiSQLiteStudio/mdichild.h b/SQLiteStudio3/guiSQLiteStudio/mdichild.h index 5ca20e5..fa0c3e5 100644 --- a/SQLiteStudio3/guiSQLiteStudio/mdichild.h +++ b/SQLiteStudio3/guiSQLiteStudio/mdichild.h @@ -41,6 +41,9 @@ class GUI_API_EXPORT MdiChild : public QWidget, public ExtActionContainer, publi private: MdiWindow* mdiWindow = nullptr; + + signals: + void sessionValueChanged(); }; diff --git a/SQLiteStudio3/guiSQLiteStudio/mdiwindow.cpp b/SQLiteStudio3/guiSQLiteStudio/mdiwindow.cpp index 685e608..f6072c3 100644 --- a/SQLiteStudio3/guiSQLiteStudio/mdiwindow.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/mdiwindow.cpp @@ -1,7 +1,7 @@ #include "mdiwindow.h" #include "mdichild.h" -#include "common/unused.h" #include "mdiarea.h" +#include "iconmanager.h" #include "mainwindow.h" #include "services/dbmanager.h" #include "db/db.h" @@ -170,7 +170,7 @@ void MdiWindow::closeEvent(QCloseEvent* e) void MdiWindow::dbAboutToBeDisconnected(Db* db, bool& deny) { - if (!db || getMdiChild()->getAssociatedDb() != db) + if (!isAssociatedWithDb(db)) return; if (MAINWINDOW->isClosingApp()) @@ -184,14 +184,13 @@ void MdiWindow::dbAboutToBeDisconnected(Db* db, bool& deny) void MdiWindow::dbDisconnected(Db* db) { - if (!db || getMdiChild()->getAssociatedDb() != db) + if (!isAssociatedWithDb(db)) return; if (MAINWINDOW->isClosingApp()) return; - getMdiChild()->dbClosedFinalCleanup(); - close(); + closeWindow(); } bool MdiWindow::confirmClose() @@ -208,6 +207,22 @@ bool MdiWindow::confirmClose() return (msgBox.exec() == QMessageBox::Yes); } + +void MdiWindow::closeWindow() +{ + getMdiChild()->dbClosedFinalCleanup(); + MDIAREA->enforceCurrentTaskSelectionAfterWindowClose(); + close(); +} + +bool MdiWindow::isAssociatedWithDb(Db* db) +{ + if (dbBeingClosed) + return true; // it was already confirmed by dbAboutToBeDisconnected() and any changes to the "db" member afterwards should not inflict decision change here + + return db && getMdiChild()->getAssociatedDb() == db; +} + bool MdiWindow::getCloseWithoutSessionSaving() const { return closeWithoutSessionSaving; diff --git a/SQLiteStudio3/guiSQLiteStudio/mdiwindow.h b/SQLiteStudio3/guiSQLiteStudio/mdiwindow.h index 9a7be2b..18dafa2 100644 --- a/SQLiteStudio3/guiSQLiteStudio/mdiwindow.h +++ b/SQLiteStudio3/guiSQLiteStudio/mdiwindow.h @@ -33,6 +33,8 @@ class GUI_API_EXPORT MdiWindow : public QMdiSubWindow private: bool confirmClose(); + void closeWindow(); + bool isAssociatedWithDb(Db* db); QPointer lastFocusedWidget; MdiArea* mdiArea = nullptr; diff --git a/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditor.cpp b/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditor.cpp index 0f965cd..b3ee1ee 100644 --- a/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditor.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditor.cpp @@ -1,4 +1,5 @@ #include "multieditor.h" +#include "multieditor/multieditorfk.h" #include "multieditortext.h" #include "multieditornumeric.h" #include "multieditordatetime.h" @@ -7,15 +8,15 @@ #include "multieditorbool.h" #include "multieditorhex.h" #include "mainwindow.h" -#include "common/unused.h" +#include "iconmanager.h" #include "services/notifymanager.h" #include "services/pluginmanager.h" #include "multieditorwidgetplugin.h" #include "uiconfig.h" #include "dialogs/configdialog.h" -#include "formview.h" #include "themetuner.h" #include "common/compatibility.h" +#include "datagrid/sqlquerymodelcolumn.h" #include #include #include @@ -191,7 +192,6 @@ void MultiEditor::addEditor(MultiEditorWidget* editorWidget) connect(editorWidget, SIGNAL(valueModified()), this, SLOT(invalidateValue())); editors << editorWidget; tabs->addTab(editorWidget, editorWidget->getTabLabel().replace("&", "&&")); - THEME_TUNER->manageCompactLayout(editorWidget); editorWidget->installEventFilter(this); connect(editorWidget, &MultiEditorWidget::aboutToBeDeleted, [this, editorWidget]() @@ -280,7 +280,7 @@ void MultiEditor::setDataType(const DataType& dataType) { this->dataType = dataType; - for (MultiEditorWidget* editorWidget : getEditorTypes(dataType)) + for (MultiEditorWidget*& editorWidget : getEditorTypes(dataType)) addEditor(editorWidget); showTab(0); @@ -288,6 +288,14 @@ void MultiEditor::setDataType(const DataType& dataType) configBtn->setEnabled(true); } +void MultiEditor::enableFk(Db* db, SqlQueryModelColumn* column) +{ + MultiEditorFk* fkEditor = new MultiEditorFk(); + fkEditor->initFkCombo(db, column); + fkEditor->setTabLabel(tr("Foreign Key")); + addEditor(fkEditor); +} + void MultiEditor::focusThisEditor() { MultiEditorWidget* w = dynamic_cast(tabs->currentWidget()); @@ -324,14 +332,15 @@ QList MultiEditor::getEditorTypes(const DataType& dataType) if (editorsOrder.contains(typeStr)) { MultiEditorWidgetPlugin* plugin = nullptr; - for (const QString& editorPluginName : editorsOrder[typeStr].toStringList()) + for (QString& editorPluginName : editorsOrder[typeStr].toStringList()) { plugin = dynamic_cast(PLUGINS->getLoadedPlugin(editorPluginName)); if (!plugin) { if (!missingEditorPluginsAlreadyWarned.contains(editorPluginName)) { - notifyWarn(tr("Data editor plugin '%1' not loaded, while it is defined for editing '%1' data type.")); + notifyWarn(tr("Data editor plugin '%1' not loaded, while it is defined for editing '%2' data type.") + .arg(editorPluginName, typeStr)); missingEditorPluginsAlreadyWarned[editorPluginName] = true; } continue; @@ -371,7 +380,7 @@ QList MultiEditor::getEditorTypes(const DataType& dataType) return ed1.first < ed2.first; }); - for (const EditorWithPriority& e : sortedEditors) + for (EditorWithPriority& e : sortedEditors) editors << e.second; return editors; @@ -439,7 +448,7 @@ QVariant MultiEditor::getValueOmmitNull() const void MultiEditor::initAddTabMenu() { addTabMenu = new QMenu(addTabBtn); - for (MultiEditorWidgetPlugin* plugin : PLUGINS->getLoadedPlugins()) + for (MultiEditorWidgetPlugin*& plugin : PLUGINS->getLoadedPlugins()) addPluginToMenu(plugin); sortAddTabMenu(); diff --git a/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditor.h b/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditor.h index 55d7f2e..25b09de 100644 --- a/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditor.h +++ b/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditor.h @@ -1,11 +1,13 @@ #ifndef MULTIEDITOR_H #define MULTIEDITOR_H +#include "datatype.h" #include "guiSQLiteStudio_global.h" -#include "datagrid/sqlquerymodelcolumn.h" #include #include +class Db; +class SqlQueryModelColumn; class QCheckBox; class QTabWidget; class MultiEditorWidget; @@ -51,9 +53,23 @@ class GUI_API_EXPORT MultiEditor : public QWidget void setReadOnly(bool value); void setDeletedRow(bool value); void setDataType(const DataType& dataType); + void enableFk(Db* db, SqlQueryModelColumn* column); void focusThisEditor(); void setCornerLabel(const QString& label); + template + T* getEditorWidget() const + { + QListIterator it(editors); + while (it.hasNext()) + { + T* casted = dynamic_cast(it.next()); + if (casted) + return casted; + } + return nullptr; + } + static void loadBuiltInEditors(); private: diff --git a/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditorbool.cpp b/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditorbool.cpp index 1882335..a466e81 100644 --- a/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditorbool.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditorbool.cpp @@ -175,6 +175,7 @@ bool MultiEditorBoolPlugin::validFor(const DataType& dataType) case DataType::DATE: case DataType::DATETIME: case DataType::TIME: + case DataType::ANY: case DataType::unknown: break; } @@ -188,6 +189,7 @@ int MultiEditorBoolPlugin::getPriority(const DataType& dataType) case DataType::BOOLEAN: return 1; case DataType::BLOB: + case DataType::ANY: case DataType::BIGINT: case DataType::DECIMAL: case DataType::DOUBLE: diff --git a/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditordate.cpp b/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditordate.cpp index 4059f96..2377a7d 100644 --- a/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditordate.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditordate.cpp @@ -45,6 +45,7 @@ bool MultiEditorDatePlugin::validFor(const DataType& dataType) case DataType::VARCHAR: case DataType::DATETIME: case DataType::TIME: + case DataType::ANY: case DataType::unknown: break; case DataType::DATE: @@ -59,6 +60,7 @@ int MultiEditorDatePlugin::getPriority(const DataType& dataType) { case DataType::BLOB: case DataType::BOOLEAN: + case DataType::ANY: case DataType::BIGINT: case DataType::DECIMAL: case DataType::DOUBLE: diff --git a/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditordatetime.cpp b/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditordatetime.cpp index 99053b0..d876378 100644 --- a/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditordatetime.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditordatetime.cpp @@ -231,6 +231,7 @@ bool MultiEditorDateTimePlugin::validFor(const DataType& dataType) case DataType::CHAR: case DataType::VARCHAR: case DataType::TIME: + case DataType::ANY: case DataType::unknown: break; case DataType::DATE: @@ -259,6 +260,7 @@ int MultiEditorDateTimePlugin::getPriority(const DataType& dataType) case DataType::CHAR: case DataType::VARCHAR: case DataType::TIME: + case DataType::ANY: case DataType::unknown: break; case DataType::DATE: diff --git a/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditordialog.cpp b/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditordialog.cpp index 5e3985c..75ebb07 100644 --- a/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditordialog.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditordialog.cpp @@ -47,3 +47,8 @@ void MultiEditorDialog::setReadOnly(bool readOnly) { multiEditor->setReadOnly(readOnly); } + +void MultiEditorDialog::enableFk(Db* db, SqlQueryModelColumn* column) +{ + multiEditor->enableFk(db, column); +} diff --git a/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditordialog.h b/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditordialog.h index ffbbd9c..57fb4f2 100644 --- a/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditordialog.h +++ b/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditordialog.h @@ -20,6 +20,7 @@ class GUI_API_EXPORT MultiEditorDialog : public QDialog void setDataType(const DataType& dataType); void setReadOnly(bool readOnly); + void enableFk(Db* db, SqlQueryModelColumn* column); private: MultiEditor* multiEditor = nullptr; diff --git a/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditorfk.cpp b/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditorfk.cpp new file mode 100644 index 0000000..e0ec5e1 --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditorfk.cpp @@ -0,0 +1,49 @@ +#include "multieditorfk.h" +#include "datagrid/fkcombobox.h" +#include +#include + +MultiEditorFk::MultiEditorFk(QWidget* parent) + : MultiEditorWidget(parent) +{ + setLayout(new QVBoxLayout()); + comboBox = new FkComboBox(this); + comboBox->setEditable(false); + layout()->addWidget(comboBox); + + connect(comboBox, SIGNAL(valueModified()), this, SIGNAL(valueModified())); + + setFocusProxy(comboBox); +} + +void MultiEditorFk::initFkCombo(Db* db, SqlQueryModelColumn* columnModel) +{ + comboBox->init(db, columnModel); +} + +void MultiEditorFk::setValue(const QVariant& value) +{ + comboBox->setValue(value); +} + +QVariant MultiEditorFk::getValue() +{ + return comboBox->getValue(); +} + +void MultiEditorFk::setReadOnly(bool value) +{ + comboBox->setDisabled(value); +} + +void MultiEditorFk::focusThisWidget() +{ + comboBox->setFocus(); +} + +QList MultiEditorFk::getNoScrollWidgets() +{ + QList list; + list << comboBox; + return list; +} diff --git a/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditorfk.h b/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditorfk.h new file mode 100644 index 0000000..5854ffc --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditorfk.h @@ -0,0 +1,29 @@ +#ifndef MULTIEDITORFK_H +#define MULTIEDITORFK_H + +#include "multieditorwidget.h" + +class Db; +class SqlQueryModelColumn; +class FkComboBox; + +class MultiEditorFk : public MultiEditorWidget +{ + Q_OBJECT + + public: + explicit MultiEditorFk(QWidget *parent = nullptr); + + void initFkCombo(Db* db, SqlQueryModelColumn* columnModel); + void setValue(const QVariant& value); + QVariant getValue(); + void setReadOnly(bool value); + void focusThisWidget(); + + QList getNoScrollWidgets(); + + private: + FkComboBox* comboBox = nullptr; +}; + +#endif // MULTIEDITORFK_H diff --git a/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditorhex.cpp b/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditorhex.cpp index a959e53..3f92330 100644 --- a/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditorhex.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditorhex.cpp @@ -65,6 +65,7 @@ int MultiEditorHexPlugin::getPriority(const DataType& dataType) case DataType::BLOB: return 1; case DataType::BIGINT: + case DataType::ANY: case DataType::DECIMAL: case DataType::DOUBLE: case DataType::INTEGER: diff --git a/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditornumeric.cpp b/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditornumeric.cpp index 6b1dd09..322c94f 100644 --- a/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditornumeric.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditornumeric.cpp @@ -70,6 +70,7 @@ bool MultiEditorNumericPlugin::validFor(const DataType& dataType) case DataType::DATE: case DataType::DATETIME: case DataType::TIME: + case DataType::ANY: case DataType::unknown: break; } @@ -98,6 +99,7 @@ int MultiEditorNumericPlugin::getPriority(const DataType& dataType) case DataType::DATE: case DataType::DATETIME: case DataType::TIME: + case DataType::ANY: case DataType::unknown: break; } diff --git a/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditortext.cpp b/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditortext.cpp index 0d963a5..9222f40 100644 --- a/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditortext.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditortext.cpp @@ -1,5 +1,6 @@ #include "multieditortext.h" #include "common/unused.h" +#include "iconmanager.h" #include #include #include @@ -173,6 +174,7 @@ int MultiEditorTextPlugin::getPriority(const DataType& dataType) case DataType::TEXT: case DataType::CHAR: case DataType::VARCHAR: + case DataType::ANY: case DataType::unknown: break; } diff --git a/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditortext.h b/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditortext.h index 59d2a44..369dada 100644 --- a/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditortext.h +++ b/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditortext.h @@ -20,8 +20,7 @@ CFG_KEY_LIST(MultiEditorText, QObject::tr("Cell text value editor"), class GUI_API_EXPORT MultiEditorText : public MultiEditorWidget, public ExtActionContainer { - Q_OBJECT - Q_ENUMS(Action) + Q_OBJECT public: enum Action @@ -34,6 +33,7 @@ class GUI_API_EXPORT MultiEditorText : public MultiEditorWidget, public ExtActio UNDO, REDO }; + Q_ENUM(Action) enum ToolBar { diff --git a/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditortime.cpp b/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditortime.cpp index 35800ce..1acd606 100644 --- a/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditortime.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditortime.cpp @@ -48,6 +48,7 @@ bool MultiEditorTimePlugin::validFor(const DataType& dataType) case DataType::VARCHAR: case DataType::DATE: case DataType::DATETIME: + case DataType::ANY: case DataType::unknown: break; case DataType::TIME: @@ -76,6 +77,7 @@ int MultiEditorTimePlugin::getPriority(const DataType& dataType) case DataType::VARCHAR: case DataType::DATE: case DataType::DATETIME: + case DataType::ANY: case DataType::unknown: break; case DataType::TIME: diff --git a/SQLiteStudio3/guiSQLiteStudio/qtscriptsyntaxhighlighter.cpp b/SQLiteStudio3/guiSQLiteStudio/qtscriptsyntaxhighlighter.cpp index 58e4315..8304f9c 100644 --- a/SQLiteStudio3/guiSQLiteStudio/qtscriptsyntaxhighlighter.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/qtscriptsyntaxhighlighter.cpp @@ -1,196 +1,219 @@ #include "qtscriptsyntaxhighlighter.h" #include "style.h" +#include "uiconfig.h" +#include "common/global.h" #include #include #include +#include +#include + +/** + * @brief The JavaScript highlighter + * + * This class is mostly copied from Ofi Labs X2 project. It has been slightly modified for SQLiteStudio needs. + * See the source code for the full license disclaimer. + */ +class GUI_API_EXPORT JavaScriptSyntaxHighlighter : public QSyntaxHighlighter +{ + public: + explicit JavaScriptSyntaxHighlighter(QTextDocument *parent, const QHash* formats); + + protected: + void highlightBlock(const QString &text); + + private: + void highlightTemplateExpressions(const QString &text, int strStart, int strEnd); + + QSet keywords; + QSet knownIds; + const QHash* formats = nullptr; +}; -JavaScriptSyntaxHighlighter::JavaScriptSyntaxHighlighter(QTextDocument *parent) - : QSyntaxHighlighter(parent) - , m_markCaseSensitivity(Qt::CaseInsensitive) +JavaScriptSyntaxHighlighter::JavaScriptSyntaxHighlighter(QTextDocument *parent, const QHash* formats) + : QSyntaxHighlighter(parent), formats(formats) { // https://developer.mozilla.org/en/JavaScript/Reference/Reserved_Words - m_keywords << "break"; - m_keywords << "case"; - m_keywords << "catch"; - m_keywords << "continue"; - m_keywords << "default"; - m_keywords << "delete"; - m_keywords << "do"; - m_keywords << "else"; - m_keywords << "finally"; - m_keywords << "for"; - m_keywords << "function"; - m_keywords << "if"; - m_keywords << "in"; - m_keywords << "instanceof"; - m_keywords << "new"; - m_keywords << "return"; - m_keywords << "switch"; - m_keywords << "this"; - m_keywords << "throw"; - m_keywords << "try"; - m_keywords << "typeof"; - m_keywords << "var"; - m_keywords << "void"; - m_keywords << "while"; - m_keywords << "with"; - - m_keywords << "true"; - m_keywords << "false"; - m_keywords << "null"; + keywords << "break"; + keywords << "case"; + keywords << "catch"; + keywords << "continue"; + keywords << "default"; + keywords << "delete"; + keywords << "do"; + keywords << "else"; + keywords << "finally"; + keywords << "for"; + keywords << "function"; + keywords << "if"; + keywords << "in"; + keywords << "instanceof"; + keywords << "new"; + keywords << "return"; + keywords << "switch"; + keywords << "this"; + keywords << "throw"; + keywords << "try"; + keywords << "typeof"; + keywords << "var"; + keywords << "void"; + keywords << "while"; + keywords << "with"; + + keywords << "true"; + keywords << "false"; + keywords << "null"; // built-in and other popular objects + properties - m_knownIds << "Object"; - m_knownIds << "prototype"; - m_knownIds << "create"; - m_knownIds << "defineProperty"; - m_knownIds << "defineProperties"; - m_knownIds << "getOwnPropertyDescriptor"; - m_knownIds << "keys"; - m_knownIds << "getOwnPropertyNames"; - m_knownIds << "constructor"; - m_knownIds << "__parent__"; - m_knownIds << "__proto__"; - m_knownIds << "__defineGetter__"; - m_knownIds << "__defineSetter__"; - m_knownIds << "eval"; - m_knownIds << "hasOwnProperty"; - m_knownIds << "isPrototypeOf"; - m_knownIds << "__lookupGetter__"; - m_knownIds << "__lookupSetter__"; - m_knownIds << "__noSuchMethod__"; - m_knownIds << "propertyIsEnumerable"; - m_knownIds << "toSource"; - m_knownIds << "toLocaleString"; - m_knownIds << "toString"; - m_knownIds << "unwatch"; - m_knownIds << "valueOf"; - m_knownIds << "watch"; - - m_knownIds << "Function"; - m_knownIds << "arguments"; - m_knownIds << "arity"; - m_knownIds << "caller"; - m_knownIds << "constructor"; - m_knownIds << "length"; - m_knownIds << "name"; - m_knownIds << "apply"; - m_knownIds << "bind"; - m_knownIds << "call"; - - m_knownIds << "String"; - m_knownIds << "fromCharCode"; - m_knownIds << "length"; - m_knownIds << "charAt"; - m_knownIds << "charCodeAt"; - m_knownIds << "concat"; - m_knownIds << "indexOf"; - m_knownIds << "lastIndexOf"; - m_knownIds << "localCompare"; - m_knownIds << "match"; - m_knownIds << "quote"; - m_knownIds << "replace"; - m_knownIds << "search"; - m_knownIds << "slice"; - m_knownIds << "split"; - m_knownIds << "substr"; - m_knownIds << "substring"; - m_knownIds << "toLocaleLowerCase"; - m_knownIds << "toLocaleUpperCase"; - m_knownIds << "toLowerCase"; - m_knownIds << "toUpperCase"; - m_knownIds << "trim"; - m_knownIds << "trimLeft"; - m_knownIds << "trimRight"; - - m_knownIds << "Array"; - m_knownIds << "isArray"; - m_knownIds << "index"; - m_knownIds << "input"; - m_knownIds << "pop"; - m_knownIds << "push"; - m_knownIds << "reverse"; - m_knownIds << "shift"; - m_knownIds << "sort"; - m_knownIds << "splice"; - m_knownIds << "unshift"; - m_knownIds << "concat"; - m_knownIds << "join"; - m_knownIds << "filter"; - m_knownIds << "forEach"; - m_knownIds << "every"; - m_knownIds << "map"; - m_knownIds << "some"; - m_knownIds << "reduce"; - m_knownIds << "reduceRight"; - - m_knownIds << "RegExp"; - m_knownIds << "global"; - m_knownIds << "ignoreCase"; - m_knownIds << "lastIndex"; - m_knownIds << "multiline"; - m_knownIds << "source"; - m_knownIds << "exec"; - m_knownIds << "test"; - - m_knownIds << "JSON"; - m_knownIds << "parse"; - m_knownIds << "stringify"; - - m_knownIds << "decodeURI"; - m_knownIds << "decodeURIComponent"; - m_knownIds << "encodeURI"; - m_knownIds << "encodeURIComponent"; - m_knownIds << "eval"; - m_knownIds << "isFinite"; - m_knownIds << "isNaN"; - m_knownIds << "parseFloat"; - m_knownIds << "parseInt"; - m_knownIds << "Infinity"; - m_knownIds << "NaN"; - m_knownIds << "undefined"; - - m_knownIds << "Math"; - m_knownIds << "E"; - m_knownIds << "LN2"; - m_knownIds << "LN10"; - m_knownIds << "LOG2E"; - m_knownIds << "LOG10E"; - m_knownIds << "PI"; - m_knownIds << "SQRT1_2"; - m_knownIds << "SQRT2"; - m_knownIds << "abs"; - m_knownIds << "acos"; - m_knownIds << "asin"; - m_knownIds << "atan"; - m_knownIds << "atan2"; - m_knownIds << "ceil"; - m_knownIds << "cos"; - m_knownIds << "exp"; - m_knownIds << "floor"; - m_knownIds << "log"; - m_knownIds << "max"; - m_knownIds << "min"; - m_knownIds << "pow"; - m_knownIds << "random"; - m_knownIds << "round"; - m_knownIds << "sin"; - m_knownIds << "sqrt"; - m_knownIds << "tan"; - - m_knownIds << "document"; - m_knownIds << "window"; - m_knownIds << "navigator"; - m_knownIds << "userAgent"; - - keywordsFormat.setFontWeight(QFont::Bold); - commentFormat.setFontItalic(true); + knownIds << "Object"; + knownIds << "prototype"; + knownIds << "create"; + knownIds << "defineProperty"; + knownIds << "defineProperties"; + knownIds << "getOwnPropertyDescriptor"; + knownIds << "keys"; + knownIds << "getOwnPropertyNames"; + knownIds << "constructor"; + knownIds << "__parent__"; + knownIds << "__proto__"; + knownIds << "__defineGetter__"; + knownIds << "__defineSetter__"; + knownIds << "eval"; + knownIds << "hasOwnProperty"; + knownIds << "isPrototypeOf"; + knownIds << "__lookupGetter__"; + knownIds << "__lookupSetter__"; + knownIds << "__noSuchMethod__"; + knownIds << "propertyIsEnumerable"; + knownIds << "toSource"; + knownIds << "toLocaleString"; + knownIds << "toString"; + knownIds << "unwatch"; + knownIds << "valueOf"; + knownIds << "watch"; + + knownIds << "Function"; + knownIds << "arguments"; + knownIds << "arity"; + knownIds << "caller"; + knownIds << "constructor"; + knownIds << "length"; + knownIds << "name"; + knownIds << "apply"; + knownIds << "bind"; + knownIds << "call"; + + knownIds << "String"; + knownIds << "fromCharCode"; + knownIds << "length"; + knownIds << "charAt"; + knownIds << "charCodeAt"; + knownIds << "concat"; + knownIds << "indexOf"; + knownIds << "lastIndexOf"; + knownIds << "localCompare"; + knownIds << "match"; + knownIds << "quote"; + knownIds << "replace"; + knownIds << "search"; + knownIds << "slice"; + knownIds << "split"; + knownIds << "substr"; + knownIds << "substring"; + knownIds << "toLocaleLowerCase"; + knownIds << "toLocaleUpperCase"; + knownIds << "toLowerCase"; + knownIds << "toUpperCase"; + knownIds << "trim"; + knownIds << "trimLeft"; + knownIds << "trimRight"; + + knownIds << "Array"; + knownIds << "isArray"; + knownIds << "index"; + knownIds << "input"; + knownIds << "pop"; + knownIds << "push"; + knownIds << "reverse"; + knownIds << "shift"; + knownIds << "sort"; + knownIds << "splice"; + knownIds << "unshift"; + knownIds << "concat"; + knownIds << "join"; + knownIds << "filter"; + knownIds << "forEach"; + knownIds << "every"; + knownIds << "map"; + knownIds << "some"; + knownIds << "reduce"; + knownIds << "reduceRight"; + + knownIds << "RegExp"; + knownIds << "global"; + knownIds << "ignoreCase"; + knownIds << "lastIndex"; + knownIds << "multiline"; + knownIds << "source"; + knownIds << "exec"; + knownIds << "test"; + + knownIds << "JSON"; + knownIds << "parse"; + knownIds << "stringify"; + + knownIds << "decodeURI"; + knownIds << "decodeURIComponent"; + knownIds << "encodeURI"; + knownIds << "encodeURIComponent"; + knownIds << "eval"; + knownIds << "isFinite"; + knownIds << "isNaN"; + knownIds << "parseFloat"; + knownIds << "parseInt"; + knownIds << "Infinity"; + knownIds << "NaN"; + knownIds << "undefined"; + + knownIds << "Math"; + knownIds << "E"; + knownIds << "LN2"; + knownIds << "LN10"; + knownIds << "LOG2E"; + knownIds << "LOG10E"; + knownIds << "PI"; + knownIds << "SQRT1_2"; + knownIds << "SQRT2"; + knownIds << "abs"; + knownIds << "acos"; + knownIds << "asin"; + knownIds << "atan"; + knownIds << "atan2"; + knownIds << "ceil"; + knownIds << "cos"; + knownIds << "exp"; + knownIds << "floor"; + knownIds << "log"; + knownIds << "max"; + knownIds << "min"; + knownIds << "pow"; + knownIds << "random"; + knownIds << "round"; + knownIds << "sin"; + knownIds << "sqrt"; + knownIds << "tan"; + + knownIds << "document"; + knownIds << "window"; + knownIds << "navigator"; + knownIds << "userAgent"; } void JavaScriptSyntaxHighlighter::highlightBlock(const QString &text) { // parsing state - enum { + enum + { Start = -1, Number = 1, Identifier = 2, @@ -199,167 +222,256 @@ void JavaScriptSyntaxHighlighter::highlightBlock(const QString &text) Regex = 5 }; - commentFormat.setForeground(QApplication::style()->standardPalette().dark()); - keywordsFormat.setForeground(QApplication::style()->standardPalette().windowText()); - keywordsFormat.setFontWeight(QFont::Bold); - normalFormat.setForeground(QApplication::style()->standardPalette().text()); - stringFormat.setForeground(STYLE->extendedPalette().editorString()); - int state = previousBlockState(); + setFormat(0, text.length(), formats->value(JavaScriptHighlighterPlugin::NORMAL)); int start = 0; int i = 0; - while (i <= text.length()) { + while (i <= text.length()) + { QChar ch = (i < text.length()) ? text.at(i) : QChar(); QChar next = (i < text.length() - 1) ? text.at(i + 1) : QChar(); - switch (state) { - - case Start: - start = i; - if (ch.isSpace()) { - ++i; - } else if (ch.isDigit()) { - ++i; - state = Number; - } else if (ch.isLetter() || ch == '_') { - ++i; - state = Identifier; - } else if (ch == '\'' || ch == '\"') { - ++i; - state = String; - } else if (ch == '/' && next == '*') { - ++i; - ++i; - state = Comment; - } else if (ch == '/' && next == '/') { - i = text.length(); - setFormat(start, text.length(), commentFormat); - } else if (ch == '/' && next != '*') { - ++i; - state = Regex; - } else { - if (!QString("(){}[]").contains(ch)) - setFormat(start, 1, normalFormat); - ++i; - state = Start; - } - break; + switch (state) + { + case Start: + start = i; + if (ch.isSpace()) + { + ++i; + } + else if (ch.isDigit()) + { + ++i; + state = Number; + } + else if (ch.isLetter() || ch == '_') + { + ++i; + state = Identifier; + } + else if (ch == '\'' || ch == '\"' || ch == '`') + { + ++i; + state = String; + } + else if (ch == '/' && next == '*') + { + ++i; + ++i; + state = Comment; + } + else if (ch == '/' && next == '/') + { + i = text.length(); + setFormat(start, text.length(), formats->value(JavaScriptHighlighterPlugin::COMMENT)); + } + else if (ch == '/' && next != '*') + { + ++i; + state = Regex; + } + else + { + if (!QString("(){}[]").contains(ch)) + setFormat(start, 1, formats->value(JavaScriptHighlighterPlugin::NORMAL)); + ++i; + state = Start; + } + break; - case Number: - if (ch.isSpace() || !ch.isDigit()) { - setFormat(start, i - start, normalFormat); - state = Start; - } else { - ++i; - } - break; + case Number: + if (ch.isSpace() || !ch.isDigit()) + { + setFormat(start, i - start, formats->value(JavaScriptHighlighterPlugin::NUMBER)); + state = Start; + } + else + ++i; - case Identifier: - if (ch.isSpace() || !(ch.isDigit() || ch.isLetter() || ch == '_')) { - QString token = text.mid(start, i - start).trimmed(); - if (m_keywords.contains(token)) - setFormat(start, i - start, keywordsFormat); - else if (m_knownIds.contains(token)) - setFormat(start, i - start, normalFormat); + break; - state = Start; - } else { - ++i; - } - break; + case Identifier: + if (ch.isSpace() || !(ch.isDigit() || ch.isLetter() || ch == '_')) + { + QString token = text.mid(start, i - start).trimmed(); + if (keywords.contains(token)) + setFormat(start, i - start, formats->value(JavaScriptHighlighterPlugin::KEYWORDS)); + else if (knownIds.contains(token)) + setFormat(start, i - start, formats->value(JavaScriptHighlighterPlugin::NORMAL)); - case String: - if (ch == text.at(start)) { - QChar prev = (i > 0) ? text.at(i - 1) : QChar(); - if (prev != '\\') { - ++i; - setFormat(start, i - start, stringFormat); state = Start; - } else { + } + else ++i; + + break; + + case String: + if (ch == text.at(start)) + { + QChar prev = (i > 0) ? text.at(i - 1) : QChar(); + if (prev != '\\') + { + ++i; + setFormat(start, i - start, formats->value(JavaScriptHighlighterPlugin::STRING)); + if (ch == '`') + highlightTemplateExpressions(text, start, i); + + state = Start; + } + else + ++i; } - } else { - ++i; - } - break; + else + ++i; - case Comment: - if (ch == '*' && next == '/') { - ++i; - ++i; - setFormat(start, i - start, commentFormat); - state = Start; - } else { - ++i; - } - break; + break; - case Regex: - if (ch == '/') { - QChar prev = (i > 0) ? text.at(i - 1) : QChar(); - if (prev != '\\') { + case Comment: + if (ch == '*' && next == '/') + { + ++i; ++i; - setFormat(start, i - start, normalFormat); + setFormat(start, i - start, formats->value(JavaScriptHighlighterPlugin::COMMENT)); state = Start; - } else { + } + else ++i; + + break; + + case Regex: + if (ch == '/') + { + QChar prev = (i > 0) ? text.at(i - 1) : QChar(); + if (prev != '\\') + { + ++i; + setFormat(start, i - start, formats->value(JavaScriptHighlighterPlugin::EXPRESSION)); + state = Start; + } + else + ++i; } - } else { - ++i; - } - break; + else + ++i; - default: - state = Start; - break; + break; + + default: + state = Start; + break; } } if (state == Comment) - setFormat(start, text.length(), commentFormat); + setFormat(start, text.length(), formats->value(JavaScriptHighlighterPlugin::COMMENT)); else state = Start; - if (!m_markString.isEmpty()) { - int pos = 0; - int len = m_markString.length(); - QTextCharFormat markerFormat; - markerFormat.setBackground(QApplication::style()->standardPalette().alternateBase()); - markerFormat.setForeground(QApplication::style()->standardPalette().text()); - for (;;) { - pos = text.indexOf(m_markString, pos, m_markCaseSensitivity); - if (pos < 0) - break; - setFormat(pos, len, markerFormat); - ++pos; - } - } - setCurrentBlockState(state); } -void JavaScriptSyntaxHighlighter::mark(const QString &str, Qt::CaseSensitivity caseSensitivity) +void JavaScriptSyntaxHighlighter::highlightTemplateExpressions(const QString& text, int strStart, int strEnd) { - m_markString = str; - m_markCaseSensitivity = caseSensitivity; - rehighlight(); + bool expr = false; + int i = strStart; + int start = i; + while (i <= strEnd) + { + QChar ch = text.at(i); + QChar next = (i < strEnd - 1) ? text.at(i + 1) : QChar(); + if (expr) + { + if (ch == '}') + { + QChar prev = (i > 0) ? text.at(i - 1) : QChar(); + if (prev != '\\') + { + ++i; + setFormat(start, i - start, formats->value(JavaScriptHighlighterPlugin::EXPRESSION)); + expr = false; + } + else + ++i; + } + else + ++i; + + } + else if (ch == '$' && next == '{') + { + start = i; + expr = true; + ++i; + ++i; + } + else + { + ++i; + } + } } +bool JavaScriptHighlighterPlugin::init() +{ + refreshFormats(); + return true; +} QString JavaScriptHighlighterPlugin::getLanguageName() const { - return QStringLiteral("QtScript"); + return QStringLiteral("JavaScript"); } QSyntaxHighlighter* JavaScriptHighlighterPlugin::createSyntaxHighlighter(QWidget* textEdit) const { QPlainTextEdit* plainEdit = dynamic_cast(textEdit); if (plainEdit) - return new JavaScriptSyntaxHighlighter(plainEdit->document()); + return new JavaScriptSyntaxHighlighter(plainEdit->document(), &formats); QTextEdit* edit = dynamic_cast(textEdit); if (edit) - return new JavaScriptSyntaxHighlighter(edit->document()); + return new JavaScriptSyntaxHighlighter(edit->document(), &formats); return nullptr; } + +void JavaScriptHighlighterPlugin::refreshFormats() +{ + QTextCharFormat format; + + format.setForeground(Cfg::getSyntaxForeground()); + formats[NORMAL] = format; + + format.setForeground(Cfg::getSyntaxNumberFg()); + formats[NUMBER] = format; + + format.setForeground(Cfg::getSyntaxKeywordFg()); + format.setFontWeight(QFont::Bold); + formats[KEYWORDS] = format; + + format.setFontItalic(true); + format.setFontWeight(QFont::Normal); + format.setForeground(Cfg::getSyntaxCommentFg()); + formats[COMMENT] = format; + + format.setFontItalic(false); + format.setForeground(Cfg::getSyntaxStringFg()); + formats[STRING] = format; + + format.setForeground(Cfg::getSyntaxNumberFg()); + formats[EXPRESSION] = format; +} + +QString JavaScriptHighlighterPlugin::previewSampleCode() const +{ + static_qstring(code, + "function myFunction() { // Declare a function\n" + " return \"Hello World!\";\n" + "}\n" + "\n" + "myFunction(); // Call the function" + ); + return code; +} diff --git a/SQLiteStudio3/guiSQLiteStudio/qtscriptsyntaxhighlighter.h b/SQLiteStudio3/guiSQLiteStudio/qtscriptsyntaxhighlighter.h index 3d701de..3d5e6bd 100644 --- a/SQLiteStudio3/guiSQLiteStudio/qtscriptsyntaxhighlighter.h +++ b/SQLiteStudio3/guiSQLiteStudio/qtscriptsyntaxhighlighter.h @@ -33,46 +33,37 @@ #include "guiSQLiteStudio_global.h" #include "plugins/builtinplugin.h" #include "syntaxhighlighterplugin.h" -#include -#include -/** - * @brief The JavaScript (also QtScript) highlighter - * - * This class is mostly copied from Ofi Labs X2 project. It has been slightly modified for SQLiteStudio needs. - * See the source code for the full license disclaimer. - */ -class GUI_API_EXPORT JavaScriptSyntaxHighlighter : public QSyntaxHighlighter -{ - public: - explicit JavaScriptSyntaxHighlighter(QTextDocument *parent = 0); - void mark(const QString &str, Qt::CaseSensitivity caseSensitivity); - - protected: - void highlightBlock(const QString &text); - - private: - QSet m_keywords; - QSet m_knownIds; - QString m_markString; - Qt::CaseSensitivity m_markCaseSensitivity; - QTextCharFormat normalFormat; - QTextCharFormat keywordsFormat; - QTextCharFormat commentFormat; - QTextCharFormat stringFormat; -}; +#include class GUI_API_EXPORT JavaScriptHighlighterPlugin : public BuiltInPlugin, public SyntaxHighlighterPlugin { Q_OBJECT - SQLITESTUDIO_PLUGIN_TITLE("QtScript highlighter") - SQLITESTUDIO_PLUGIN_DESC("QtScript (JavaScript) syntax highlighter.") - SQLITESTUDIO_PLUGIN_VERSION(10000) + SQLITESTUDIO_PLUGIN_TITLE("JavaScript highlighter") + SQLITESTUDIO_PLUGIN_DESC("JavaScript syntax highlighter.") + SQLITESTUDIO_PLUGIN_VERSION(10200) SQLITESTUDIO_PLUGIN_AUTHOR("sqlitestudio.pl") public: + enum State + { + NORMAL, + NUMBER, + KEYWORDS, + COMMENT, + STRING, + EXPRESSION + }; + + bool init(); QString getLanguageName() const; QSyntaxHighlighter* createSyntaxHighlighter(QWidget* textEdit) const; + void refreshFormats(); + QString previewSampleCode() const; + + private: + QHash formats; + }; #endif // JAVASCRIPTSYNTAXHIGHLIGHTER_H diff --git a/SQLiteStudio3/guiSQLiteStudio/searchtextlocator.cpp b/SQLiteStudio3/guiSQLiteStudio/searchtextlocator.cpp index 7e5c2ec..ac93028 100644 --- a/SQLiteStudio3/guiSQLiteStudio/searchtextlocator.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/searchtextlocator.cpp @@ -204,8 +204,45 @@ bool SearchTextLocator::replaceAndFind() void SearchTextLocator::replaceAll() { - while (replaceAndFind()) - continue; + QString origContents = document->toPlainText(); + QString contents = origContents; + Qt::CaseSensitivity cs = caseSensitive ? Qt::CaseSensitive : Qt::CaseInsensitive; + int replLen = replaceString.length(); + int diff = 0; + if (regularExpression) + { + QRegExp re(lookupString, cs); + contents.replace(re, replaceString); + + int pos = 0; + while ((pos = re.indexIn(origContents, pos)) != -1 && pos < startPosition) + { + int len = re.matchedLength(); + pos += len; + diff += (replLen - len); + } + } + else + { + contents.replace(lookupString, replaceString, cs); + + int len = lookupString.length(); + int singleDiff = (replLen - len); + int pos = 0; + while ((pos = origContents.indexOf(lookupString, pos, cs)) != -1 && pos < startPosition) + { + pos += len; + diff += singleDiff; + } + } + int newPos = startPosition + diff; // calculated before replacing contents to use original startPosition + + QTextCursor cursor(document); + cursor.setPosition(0); + cursor.setPosition(origContents.length(), QTextCursor::KeepAnchor); + cursor.insertText(contents); + + emit newCursorPositionAfterAllReplaced(newPos); } void SearchTextLocator::cursorMoved() diff --git a/SQLiteStudio3/guiSQLiteStudio/searchtextlocator.h b/SQLiteStudio3/guiSQLiteStudio/searchtextlocator.h index 534da51..687821b 100644 --- a/SQLiteStudio3/guiSQLiteStudio/searchtextlocator.h +++ b/SQLiteStudio3/guiSQLiteStudio/searchtextlocator.h @@ -71,6 +71,7 @@ class GUI_API_EXPORT SearchTextLocator : public QObject void found(int start, int end); void reachedEnd(); void replaceAvailable(bool available); + void newCursorPositionAfterAllReplaced(int newPos); }; #endif // SEARCHTEXTLOCATOR_H diff --git a/SQLiteStudio3/guiSQLiteStudio/sqleditor.cpp b/SQLiteStudio3/guiSQLiteStudio/sqleditor.cpp index 50189d4..d1f1a47 100644 --- a/SQLiteStudio3/guiSQLiteStudio/sqleditor.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/sqleditor.cpp @@ -1,8 +1,10 @@ #include "sqleditor.h" -#include "log.h" +#include "common/mouseshortcut.h" +#include "sqlitesyntaxhighlighter.h" +#include "db/db.h" #include "uiconfig.h" #include "uiutils.h" -#include "services/config.h" +#include "services/codesnippetmanager.h" #include "iconmanager.h" #include "completer/completerwindow.h" #include "completionhelper.h" @@ -16,12 +18,13 @@ #include "dbobjectdialogs.h" #include "searchtextlocator.h" #include "services/codeformatter.h" -#include "sqlitestudio.h" #include "style.h" #include "dbtree/dbtreeitem.h" #include "dbtree/dbtree.h" #include "dbtree/dbtreemodel.h" +#include "dbtree/dbtreeview.h" #include "common/lazytrigger.h" +#include "common/extaction.h" #include #include #include @@ -36,6 +39,28 @@ CFG_KEYS_DEFINE(SqlEditor) +QHash SqlEditor::staticActions; +bool SqlEditor::wrapWords = false; + +void SqlEditor::createStaticActions() +{ + staticActions[WORD_WRAP] = new ExtAction(tr("Wrap words", "sql editor"), MainWindow::getInstance()); + + staticActions[WORD_WRAP]->setCheckable(true); + staticActions[WORD_WRAP]->setChecked(wrapWords); + connect(staticActions[WORD_WRAP], &QAction::toggled, [=](bool value) + { + wrapWords = value; + CFG_UI.General.SqlEditorWrapWords.set(value); + }); +} + +void SqlEditor::staticInit() +{ + wrapWords = CFG_UI.General.SqlEditorWrapWords.get(); + createStaticActions(); +} + SqlEditor::SqlEditor(QWidget *parent) : QPlainTextEdit(parent) { @@ -44,8 +69,8 @@ SqlEditor::SqlEditor(QWidget *parent) : SqlEditor::~SqlEditor() { - if (objectsInNamedDbFuture.isRunning()) - objectsInNamedDbFuture.waitForFinished(); + if (objectsInNamedDbWatcher->isRunning()) + objectsInNamedDbWatcher->waitForFinished(); if (queryParser) { @@ -57,20 +82,25 @@ SqlEditor::~SqlEditor() void SqlEditor::init() { highlighter = new SqliteSyntaxHighlighter(document()); - setFont(CFG_UI.Fonts.SqlEditor.get()); initActions(); setupMenu(); + objectsInNamedDbWatcher = new QFutureWatcher>(this); + connect(objectsInNamedDbWatcher, SIGNAL(finished()), this, SLOT(scheduleQueryParserForSchemaRefresh())); + textLocator = new SearchTextLocator(document(), this); connect(textLocator, SIGNAL(found(int,int)), this, SLOT(found(int,int))); connect(textLocator, SIGNAL(reachedEnd()), this, SLOT(reachedEnd())); + connect(textLocator, SIGNAL(newCursorPositionAfterAllReplaced(int)), this, SLOT(moveCursorTo(int))); lineNumberArea = new LineNumberArea(this); + changeFont(CFG_UI.Fonts.SqlEditor.get()); connect(this, SIGNAL(blockCountChanged(int)), this, SLOT(updateLineNumberAreaWidth())); connect(this, SIGNAL(updateRequest(QRect,int)), this, SLOT(updateLineNumberArea(QRect,int))); connect(this, SIGNAL(textChanged()), this, SLOT(checkContentSize())); connect(this, SIGNAL(cursorPositionChanged()), this, SLOT(cursorMoved())); + MouseShortcut::forWheel(Qt::ControlModifier, this, SLOT(fontSizeChangeRequested(int)), viewport()); updateLineNumberAreaWidth(); highlightCurrentCursorContext(); @@ -97,6 +127,7 @@ void SqlEditor::init() connect(this, &QWidget::customContextMenuRequested, this, &SqlEditor::customContextMenuRequested); connect(CFG_UI.Fonts.SqlEditor, SIGNAL(changed(QVariant)), this, SLOT(changeFont(QVariant))); connect(CFG, SIGNAL(massSaveCommitted()), this, SLOT(configModified())); + connect(STYLE, SIGNAL(paletteChanged()), this, SLOT(colorsConfigChanged())); } void SqlEditor::removeErrorMarkers() @@ -143,6 +174,8 @@ void SqlEditor::createActions() createAction(FIND_PREV, tr("Find previous", "sql editor"), this, SLOT(findPrevious()), this); createAction(REPLACE, ICONS.SEARCH_AND_REPLACE, tr("Replace", "sql editor"), this, SLOT(replace()), this); createAction(TOGGLE_COMMENT, tr("Toggle comment", "sql editor"), this, SLOT(toggleComment()), this); + createAction(INCR_FONT_SIZE, tr("Increase font size", "sql editor"), this, SLOT(incrFontSize()), this); + createAction(DECR_FONT_SIZE, tr("Decrease font size", "sql editor"), this, SLOT(decrFontSize()), this); actionMap[CUT]->setEnabled(false); actionMap[COPY]->setEnabled(false); @@ -153,12 +186,14 @@ void SqlEditor::createActions() connect(this, &QPlainTextEdit::undoAvailable, this, &SqlEditor::updateUndoAction); connect(this, &QPlainTextEdit::redoAvailable, this, &SqlEditor::updateRedoAction); connect(this, &QPlainTextEdit::copyAvailable, this, &SqlEditor::updateCopyAction); + + connect(CFG_UI.General.SqlEditorWrapWords, SIGNAL(changed(QVariant)), this, SLOT(wordWrappingChanged(QVariant))); } void SqlEditor::setupDefShortcuts() { setShortcutContext({CUT, COPY, PASTE, DELETE, SELECT_ALL, UNDO, REDO, COMPLETE, FORMAT_SQL, SAVE_SQL_FILE, OPEN_SQL_FILE, - DELETE_LINE}, Qt::WidgetWithChildrenShortcut); + DELETE_LINE, INCR_FONT_SIZE, DECR_FONT_SIZE}, Qt::WidgetWithChildrenShortcut); BIND_SHORTCUTS(SqlEditor, Action); } @@ -167,6 +202,7 @@ void SqlEditor::setupMenu() { contextMenu = new QMenu(this); contextMenu->addAction(actionMap[FORMAT_SQL]); + contextMenu->addAction(staticActions[WORD_WRAP]); contextMenu->addSeparator(); contextMenu->addAction(actionMap[SAVE_SQL_FILE]); contextMenu->addAction(actionMap[OPEN_SQL_FILE]); @@ -194,7 +230,7 @@ void SqlEditor::setDb(Db* value) { db = value; refreshValidObjects(); - scheduleQueryParser(true); + scheduleQueryParser(true, true); } void SqlEditor::setAutoCompletion(bool enabled) @@ -243,10 +279,13 @@ bool SqlEditor::handleValidObjectContextMenu(const QPoint& pos) void SqlEditor::saveToFile(const QString &fileName) { + if (!openSaveActionsEnabled) + return; + QFile file(fileName); if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) { - notifyError(tr("Could not open file '%1' for writing: %2").arg(fileName).arg(file.errorString())); + notifyError(tr("Could not open file '%1' for writing: %2").arg(fileName, file.errorString())); return; } @@ -271,7 +310,34 @@ void SqlEditor::toggleLineCommentForLine(const QTextBlock& block) } else cur.insertText("--"); +} +bool SqlEditor::getAlwaysEnforceErrorsChecking() const +{ + return alwaysEnforceErrorsChecking; +} + +void SqlEditor::setAlwaysEnforceErrorsChecking(bool newAlwaysEnforceErrorsChecking) +{ + alwaysEnforceErrorsChecking = newAlwaysEnforceErrorsChecking; +} + +bool SqlEditor::getHighlightingSyntax() const +{ + return highlightingSyntax; +} + +void SqlEditor::setOpenSaveActionsEnabled(bool value) +{ + openSaveActionsEnabled = value; + if (value) + { + noConfigShortcutActions.remove(SAVE_SQL_FILE); + noConfigShortcutActions.remove(SAVE_AS_SQL_FILE); + noConfigShortcutActions.remove(OPEN_SQL_FILE); + } + else + noConfigShortcutActions << SAVE_SQL_FILE << SAVE_AS_SQL_FILE << OPEN_SQL_FILE; } void SqlEditor::updateUndoAction(bool enabled) @@ -487,6 +553,12 @@ void SqlEditor::updateCompleterPosition() void SqlEditor::completeSelected() { + if (completer->getMode() == CompleterWindow::SNIPPETS) + { + insertPlainText(CODESNIPPETS->getCodeByName(completer->getSnippetName())); + return; + } + deletePreviousChars(completer->getNumberOfCharsToRemove()); ExpectedTokenPtr token = completer->getSelected(); @@ -505,7 +577,7 @@ void SqlEditor::completeSelected() void SqlEditor::checkForAutoCompletion() { - if (!db || !autoCompletion || deletionKeyPressed || !richFeaturesEnabled) + if (!db || !autoCompletion || deletionKeyPressed || !richFeaturesEnabled || !CFG_CORE.CodeAssistant.AutoTrigger.get()) return; Lexer lexer; @@ -529,21 +601,25 @@ void SqlEditor::refreshValidObjects() if (!db || !db->isValid()) return; - objectsInNamedDbFuture = QtConcurrent::run([this]() + Db* dbClone = db->clone(); + QFuture> objectsInNamedDbFuture = QtConcurrent::run([dbClone]() { - QMutexLocker lock(&objectsInNamedDbMutex); - objectsInNamedDb.clear(); - - SchemaResolver resolver(db); + dbClone->openQuiet(); + QHash objectsByDbName; + SchemaResolver resolver(dbClone); QSet databases = resolver.getDatabases(); databases << "main"; QStringList objects; - for (const QString& dbName : databases) + for (const QString& dbName : qAsConst(databases)) { objects = resolver.getAllObjects(dbName); - objectsInNamedDb[dbName] << objects; + objectsByDbName[dbName] << objects; } + dbClone->closeQuiet(); + delete dbClone; + return objectsByDbName; }); + objectsInNamedDbWatcher->setFuture(objectsInNamedDbFuture); } void SqlEditor::setObjectLinks(bool enabled) @@ -551,7 +627,7 @@ void SqlEditor::setObjectLinks(bool enabled) objectLinksEnabled = enabled; setMouseTracking(enabled); highlighter->setObjectLinksEnabled(enabled); - highlighter->rehighlight(); + highlightSyntax(); if (enabled) handleValidObjectCursor(mapFromGlobal(QCursor::pos())); @@ -574,7 +650,7 @@ void SqlEditor::clearDbObjects() void SqlEditor::lineNumberAreaPaintEvent(QPaintEvent* event) { QPainter painter(lineNumberArea); - painter.fillRect(event->rect(), STYLE->extendedPalette().editorLineBase()); + painter.fillRect(event->rect(), STYLE->extendedPalette().editorLineNumberBase()); QTextBlock block = firstVisibleBlock(); int blockNumber = block.blockNumber(); int top = (int) blockBoundingGeometry(block).translated(contentOffset()).top(); @@ -649,9 +725,32 @@ void SqlEditor::highlightParenthesis(QList& selection markMatchedParenthesis(thePar->position, matchedPar->position, selections); } -void SqlEditor::highlightCurrentCursorContext() +void SqlEditor::highlightCurrentQuery(QList& selections) +{ + QTextCursor cursor = textCursor(); + int curPos = cursor.position(); + QString contents = cursor.document()->toPlainText(); + QPair boundries = getQueryBoundriesForPosition(contents, curPos, true); + if (boundries.second < 0) + return; + + QTextEdit::ExtraSelection selection; + selection.format.setBackground(STYLE->extendedPalette().editorCurrentQueryBase()); + + cursor.setPosition(boundries.first); + cursor.setPosition(boundries.second, QTextCursor::KeepAnchor); + selection.cursor = cursor; + selections.append(selection); +} + +void SqlEditor::highlightCurrentCursorContext(bool delayedCall) { QList selections; + if (delayedCall) + highlightCurrentQuery(selections); + else if (currentQueryTimer) + currentQueryTimer->start(); + highlightCurrentLine(selections); highlightParenthesis(selections); setExtraSelections(selections); @@ -661,8 +760,8 @@ void SqlEditor::markMatchedParenthesis(int pos1, int pos2, QListstandardPalette().windowText()); - selection.format.setForeground(style()->standardPalette().window()); + selection.format.setBackground(Cfg::getSyntaxParenthesisBg()); + selection.format.setForeground(Cfg::getSyntaxParenthesisFg()); QTextCursor cursor = textCursor(); @@ -829,7 +928,7 @@ void SqlEditor::completerRightPressed() void SqlEditor::parseContents() { - if (!richFeaturesEnabled) + if (!richFeaturesEnabled && !alwaysEnforceErrorsChecking) return; QString sql = toPlainText(); @@ -841,13 +940,20 @@ void SqlEditor::parseContents() sql = virtualSqlExpression.arg(sql); } + queryParser->parse(sql); if (richFeaturesEnabled) - { - queryParser->parse(sql); checkForValidObjects(); - checkForSyntaxErrors(); - highlighter->rehighlight(); - } + + checkForSyntaxErrors(); + + if (richFeaturesEnabled) + highlightSyntax(); +} + +void SqlEditor::scheduleQueryParserForSchemaRefresh() +{ + objectsInNamedDb = objectsInNamedDbWatcher->future().result(); + scheduleQueryParser(true, true); } void SqlEditor::checkForSyntaxErrors() @@ -858,9 +964,9 @@ void SqlEditor::checkForSyntaxErrors() // Marking invalid tokens, like in "SELECT * from test] t" - the "]" token is invalid. // Such tokens don't cause parser to fail. - for (SqliteQueryPtr query : queryParser->getQueries()) + for (const SqliteQueryPtr& query : queryParser->getQueries()) { - for (TokenPtr token : query->tokens) + for (TokenPtr& token : query->tokens) { if (token->type == Token::INVALID) markErrorAt(token->start, token->end, true); @@ -886,16 +992,15 @@ void SqlEditor::checkForValidObjects() if (!db || !db->isValid()) return; - QMutexLocker lock(&objectsInNamedDbMutex); QList fullObjects; QString dbName; - for (SqliteQueryPtr query : queryParser->getQueries()) + for (const SqliteQueryPtr& query : queryParser->getQueries()) { fullObjects = query->getContextFullObjects(); - for (const SqliteStatement::FullObject& fullObj : fullObjects) + for (SqliteStatement::FullObject& fullObj : fullObjects) { dbName = fullObj.database ? stripObjName(fullObj.database->value) : "main"; - if (!objectsInNamedDb.contains(dbName)) + if (!objectsInNamedDb.contains(dbName, Qt::CaseInsensitive)) continue; if (fullObj.type == SqliteStatement::FullObject::DATABASE) @@ -905,7 +1010,7 @@ void SqlEditor::checkForValidObjects() continue; } - if (!objectsInNamedDb[dbName].contains(stripObjName(fullObj.object->value))) + if (!objectsInNamedDb[dbName].contains(stripObjName(fullObj.object->value), Qt::CaseInsensitive)) continue; // Valid object name @@ -914,7 +1019,7 @@ void SqlEditor::checkForValidObjects() } } -void SqlEditor::scheduleQueryParser(bool force) +void SqlEditor::scheduleQueryParser(bool force, bool skipCompleter) { if (!document()->isModified() && !force) return; @@ -923,7 +1028,8 @@ void SqlEditor::scheduleQueryParser(bool force) document()->setModified(false); queryParserTrigger->schedule(); - autoCompleteTrigger->schedule(); + if (!skipCompleter) + autoCompleteTrigger->schedule(); } int SqlEditor::sqlIndex(int idx) @@ -968,7 +1074,14 @@ QString SqlEditor::getSelectedText() const void SqlEditor::openObject(const QString& database, const QString& name) { DbObjectDialogs dialogs(db); - dialogs.editObject(database, name); + dialogs.editObject(DbObjectDialogs::Type::UNKNOWN, database, name); +} + +void SqlEditor::highlightSyntax() +{ + highlightingSyntax = true; + highlighter->rehighlight(); + highlightingSyntax = false; } void SqlEditor::updateLineNumberAreaWidth() @@ -987,7 +1100,6 @@ void SqlEditor::highlightCurrentLine(QList& selection if (!isReadOnly() && isEnabled()) { QTextEdit::ExtraSelection selection; - selection.format.setBackground(STYLE->extendedPalette().editorLineBase()); selection.format.setProperty(QTextFormat::FullWidthSelection, true); selection.cursor = textCursor(); @@ -1059,6 +1171,9 @@ void SqlEditor::saveToFile() void SqlEditor::saveAsToFile() { + if (!openSaveActionsEnabled) + return; + QString dir = getFileDialogInitPath(); QString fName = QFileDialog::getSaveFileName(this, tr("Save to file"), dir); if (fName.isNull()) @@ -1071,6 +1186,9 @@ void SqlEditor::saveAsToFile() void SqlEditor::loadFromFile() { + if (!openSaveActionsEnabled) + return; + QString dir = getFileDialogInitPath(); QString filters = tr("SQL scripts (*.sql);;All files (*)"); QString fName = QFileDialog::getOpenFileName(this, tr("Open file"), dir, filters); @@ -1083,7 +1201,7 @@ void SqlEditor::loadFromFile() QString sql = readFileContents(fName, &err); if (sql.isNull() && !err.isNull()) { - notifyError(tr("Could not open file '%1' for reading: %2").arg(fName).arg(err)); + notifyError(tr("Could not open file '%1' for reading: %2").arg(fName, err)); return; } @@ -1293,13 +1411,14 @@ void SqlEditor::reachedEnd() void SqlEditor::changeFont(const QVariant& font) { - setFont(font.value()); + auto f = font.value(); + setFont(f); + lineNumberArea->setFont(f); } void SqlEditor::configModified() { - highlighter->rehighlight(); - highlightCurrentCursorContext(); + colorsConfigChanged(); } void SqlEditor::toggleComment() @@ -1387,6 +1506,51 @@ void SqlEditor::toggleComment() setTextCursor(cur); } +void SqlEditor::wordWrappingChanged(const QVariant& value) +{ + setLineWrapMode(value.toBool() ? QPlainTextEdit::WidgetWidth : QPlainTextEdit::NoWrap); +} + +void SqlEditor::currentCursorContextDelayedHighlight() +{ + highlightCurrentCursorContext(true); +} + +void SqlEditor::fontSizeChangeRequested(int delta) +{ + changeFontSize(delta >= 0 ? 1 : -1); +} + +void SqlEditor::incrFontSize() +{ + changeFontSize(1); +} + +void SqlEditor::decrFontSize() +{ + changeFontSize(-1); +} + +void SqlEditor::moveCursorTo(int pos) +{ + QTextCursor cur = textCursor(); + cur.setPosition(pos); + setTextCursor(cur); +} + +void SqlEditor::changeFontSize(int factor) +{ + auto f = font(); + f.setPointSize(f.pointSize() + factor); + CFG_UI.Fonts.SqlEditor.set(f); +} + +void SqlEditor::colorsConfigChanged() +{ + highlightSyntax(); + highlightCurrentCursorContext(); +} + void SqlEditor::keyPressEvent(QKeyEvent* e) { switch (e->key()) @@ -1563,6 +1727,21 @@ QToolBar* SqlEditor::getToolBar(int toolbar) const return nullptr; } +void SqlEditor::setCurrentQueryHighlighting(bool enabled) +{ + if (enabled && !currentQueryTimer) + { + currentQueryTimer = new QTimer(this); + currentQueryTimer->setInterval(300); + currentQueryTimer->setSingleShot(true); + connect(currentQueryTimer, SIGNAL(timeout()), this, SLOT(currentCursorContextDelayedHighlight())); + } + else if (!enabled && currentQueryTimer) + { + safe_delete(currentQueryTimer); + } +} + QString SqlEditor::getVirtualSqlExpression() const { return virtualSqlExpression; @@ -1600,7 +1779,7 @@ const SqlEditor::DbObject* SqlEditor::getValidObjectForPosition(const QPoint& po const SqlEditor::DbObject* SqlEditor::getValidObjectForPosition(int position, bool movedLeft) { - for (const DbObject& obj : validDbObjects) + for (DbObject& obj : validDbObjects) { if ((!movedLeft && position > obj.from && position-1 <= obj.to) || (movedLeft && position >= obj.from && position <= obj.to)) @@ -1641,3 +1820,16 @@ void SqlEditor::changeEvent(QEvent* e) QPlainTextEdit::changeEvent(e); } + +void SqlEditor::showEvent(QShowEvent* event) +{ + UNUSED(event); + setLineWrapMode(wrapWords ? QPlainTextEdit::WidgetWidth : QPlainTextEdit::NoWrap); +} + +void SqlEditor::dropEvent(QDropEvent* e) +{ + QPlainTextEdit::dropEvent(e); + if (MAINWINDOW->getDbTree()->getModel()->hasDbTreeItem(e->mimeData())) + e->ignore(); +} diff --git a/SQLiteStudio3/guiSQLiteStudio/sqleditor.h b/SQLiteStudio3/guiSQLiteStudio/sqleditor.h index ca79a1c..4af89c1 100644 --- a/SQLiteStudio3/guiSQLiteStudio/sqleditor.h +++ b/SQLiteStudio3/guiSQLiteStudio/sqleditor.h @@ -1,9 +1,9 @@ #ifndef SQLEDITOR_H #define SQLEDITOR_H +#include "common/strhash.h" #include "guiSQLiteStudio_global.h" #include "common/extactioncontainer.h" -#include "db/db.h" #include "sqlitesyntaxhighlighter.h" #include #include @@ -18,6 +18,8 @@ class SqlEditor; class SearchTextDialog; class SearchTextLocator; class LazyTrigger; +class Db; +class QTimer; #ifdef Q_OS_OSX # define COMPLETE_REQ_KEY Qt::META @@ -40,19 +42,20 @@ CFG_KEY_LIST(SqlEditor, QObject::tr("SQL editor input field"), CFG_KEY_ENTRY(FIND_PREV, QKeySequence::FindPrevious, QObject::tr("Find previous")) CFG_KEY_ENTRY(REPLACE, QKeySequence::Replace, QObject::tr("Replace in text")) CFG_KEY_ENTRY(DELETE_LINE, Qt::CTRL + Qt::Key_D, QObject::tr("Delete current line")) - CFG_KEY_ENTRY(COMPLETE, COMPLETE_REQ_KEY + Qt::Key_Space, QObject::tr("Request code assistant")) + CFG_KEY_ENTRY(COMPLETE, COMPLETE_REQ_KEY + Qt::Key_Space, QObject::tr("Request code assistant")) CFG_KEY_ENTRY(FORMAT_SQL, Qt::CTRL + Qt::Key_T, QObject::tr("Format contents")) CFG_KEY_ENTRY(MOVE_BLOCK_DOWN, Qt::ALT + Qt::Key_Down, QObject::tr("Move selected block of text one line down")) CFG_KEY_ENTRY(MOVE_BLOCK_UP, Qt::ALT + Qt::Key_Up, QObject::tr("Move selected block of text one line up")) CFG_KEY_ENTRY(COPY_BLOCK_DOWN, Qt::ALT + Qt::CTRL + Qt::Key_Down, QObject::tr("Copy selected block of text and paste it a line below")) CFG_KEY_ENTRY(COPY_BLOCK_UP, Qt::ALT + Qt::CTRL + Qt::Key_Up, QObject::tr("Copy selected block of text and paste it a line above")) CFG_KEY_ENTRY(TOGGLE_COMMENT, Qt::CTRL + Qt::Key_Slash, QObject::tr("Toggle comment")) + CFG_KEY_ENTRY(INCR_FONT_SIZE, Qt::CTRL + Qt::Key_Plus, QObject::tr("Increase font size", "sql editor")) + CFG_KEY_ENTRY(DECR_FONT_SIZE, Qt::CTRL + Qt::Key_Minus, QObject::tr("Decrease font size", "sql editor")) ) class GUI_API_EXPORT SqlEditor : public QPlainTextEdit, public ExtActionContainer { - Q_OBJECT - Q_ENUMS(Action) + Q_OBJECT public: enum Action @@ -78,13 +81,20 @@ class GUI_API_EXPORT SqlEditor : public QPlainTextEdit, public ExtActionContaine FIND_NEXT, FIND_PREV, REPLACE, - TOGGLE_COMMENT + TOGGLE_COMMENT, + WORD_WRAP, + INCR_FONT_SIZE, + DECR_FONT_SIZE }; + Q_ENUM(Action) enum ToolBar { }; + static void createStaticActions(); + static void staticInit(); + explicit SqlEditor(QWidget *parent = 0); ~SqlEditor(); @@ -102,9 +112,17 @@ class GUI_API_EXPORT SqlEditor : public QPlainTextEdit, public ExtActionContaine void saveSelection(); void restoreSelection(); QToolBar* getToolBar(int toolbar) const; - + void setCurrentQueryHighlighting(bool enabled); bool getVirtualSqlCompleteSemicolon() const; void setVirtualSqlCompleteSemicolon(bool value); + bool getHighlightingSyntax() const; + void setOpenSaveActionsEnabled(bool value); + + static QHash staticActions; + static bool wrapWords; + + bool getAlwaysEnforceErrorsChecking() const; + void setAlwaysEnforceErrorsChecking(bool newAlwaysEnforceErrorsChecking); protected: void setupDefShortcuts(); @@ -116,7 +134,9 @@ class GUI_API_EXPORT SqlEditor : public QPlainTextEdit, public ExtActionContaine void mouseMoveEvent(QMouseEvent* e); void mousePressEvent(QMouseEvent* e); void resizeEvent(QResizeEvent *e); - void changeEvent(QEvent*e); + void changeEvent(QEvent* e); + void showEvent(QShowEvent* event); + void dropEvent(QDropEvent* e); private: class LineNumberArea : public QWidget @@ -162,7 +182,6 @@ class GUI_API_EXPORT SqlEditor : public QPlainTextEdit, public ExtActionContaine */ void markErrorAt(int start, int end, bool limitedDamage = false); void deletePreviousChars(int length = 1); - void refreshValidObjects(); void checkForSyntaxErrors(); void checkForValidObjects(); void setObjectLinks(bool enabled); @@ -171,8 +190,9 @@ class GUI_API_EXPORT SqlEditor : public QPlainTextEdit, public ExtActionContaine void lineNumberAreaPaintEvent(QPaintEvent* event); int lineNumberAreaWidth(); void highlightParenthesis(QList& selections); + void highlightCurrentQuery(QList& selections); void highlightCurrentLine(QList& selections); - void highlightCurrentCursorContext(); + void highlightCurrentCursorContext(bool delayedCall = false); const TextBlockData::Parenthesis* matchParenthesis(QList parList, const TextBlockData::Parenthesis* thePar); void markMatchedParenthesis(int pos1, int pos2, QList& selections); void doBackspace(int repeats = 1); @@ -211,8 +231,7 @@ class GUI_API_EXPORT SqlEditor : public QPlainTextEdit, public ExtActionContaine bool deletionKeyPressed = false; LazyTrigger* queryParserTrigger = nullptr; Parser* queryParser = nullptr; - QHash objectsInNamedDb; - QMutex objectsInNamedDbMutex; + StrHash objectsInNamedDb; bool objectLinksEnabled = false; QList validDbObjects; QWidget* lineNumberArea = nullptr; @@ -224,6 +243,11 @@ class GUI_API_EXPORT SqlEditor : public QPlainTextEdit, public ExtActionContaine int storedSelectionStart = 0; int storedSelectionEnd = 0; bool richFeaturesEnabled = true; + bool alwaysEnforceErrorsChecking = false; + bool highlightingSyntax = true; + QBrush currentQueryBrush; + QTimer* currentQueryTimer = nullptr; + bool openSaveActionsEnabled = true; /** * @brief virtualSqlExpression @@ -245,12 +269,14 @@ class GUI_API_EXPORT SqlEditor : public QPlainTextEdit, public ExtActionContaine bool virtualSqlCompleteSemicolon = false; QString createTriggerTable; QString loadedFile; - QFuture objectsInNamedDbFuture; + QFutureWatcher>* objectsInNamedDbWatcher = nullptr; + void changeFontSize(int factor); static const int autoCompleterDelay = 300; static const int queryParserDelay = 500; private slots: + void highlightSyntax(); void customContextMenuRequested(const QPoint& pos); void updateUndoAction(bool enabled); void updateRedoAction(bool enabled); @@ -268,7 +294,8 @@ class GUI_API_EXPORT SqlEditor : public QPlainTextEdit, public ExtActionContaine void completerLeftPressed(); void completerRightPressed(); void parseContents(); - void scheduleQueryParser(bool force = false); + void scheduleQueryParserForSchemaRefresh(); + void scheduleQueryParser(bool force = false, bool skipCompleter = false); void updateLineNumberAreaWidth(); void updateLineNumberArea(const QRect&rect, int dy); void cursorMoved(); @@ -291,6 +318,16 @@ class GUI_API_EXPORT SqlEditor : public QPlainTextEdit, public ExtActionContaine void changeFont(const QVariant& font); void configModified(); void toggleComment(); + void wordWrappingChanged(const QVariant& value); + void currentCursorContextDelayedHighlight(); + void fontSizeChangeRequested(int delta); + void incrFontSize(); + void decrFontSize(); + void moveCursorTo(int pos); + + public slots: + void colorsConfigChanged(); + void refreshValidObjects(); signals: void errorsChecked(bool haveErrors); diff --git a/SQLiteStudio3/guiSQLiteStudio/sqlitesyntaxhighlighter.cpp b/SQLiteStudio3/guiSQLiteStudio/sqlitesyntaxhighlighter.cpp index 92679e2..8ebdb7b 100644 --- a/SQLiteStudio3/guiSQLiteStudio/sqlitesyntaxhighlighter.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/sqlitesyntaxhighlighter.cpp @@ -3,80 +3,32 @@ #include "services/config.h" #include "style.h" #include "parser/keywords.h" +#include "uiconfig.h" +#include "services/pluginmanager.h" #include #include #include #include #include -SqliteSyntaxHighlighter::SqliteSyntaxHighlighter(QTextDocument *parent) : +SqliteSyntaxHighlighter::SqliteSyntaxHighlighter(QTextDocument *parent, const QHash* formats) : QSyntaxHighlighter(parent) { - setupFormats(); - setupMapping(); - setCurrentBlockState(regulartTextBlockState); - connect(CFG, SIGNAL(massSaveCommitted()), this, SLOT(setupFormats())); -} - -void SqliteSyntaxHighlighter::setFormat(SqliteSyntaxHighlighter::State state, QTextCharFormat format) -{ - formats[state] = format; + init(formats); } -QTextCharFormat SqliteSyntaxHighlighter::getFormat(SqliteSyntaxHighlighter::State state) const +SqliteSyntaxHighlighter::SqliteSyntaxHighlighter(QTextDocument* parent) : + QSyntaxHighlighter(parent) { - return formats[state]; + SqliteHighlighterPlugin* plugin = dynamic_cast(PLUGINS->getLoadedPlugin("SqliteHighlighterPlugin")); + init(plugin->getFormats()); } -void SqliteSyntaxHighlighter::setupFormats() +void SqliteSyntaxHighlighter::init(const QHash* formats) { - QTextCharFormat format; - - // Standard - format.setForeground(QApplication::style()->standardPalette().text()); - format.setFontWeight(QFont::Normal); - format.setFontItalic(false); - formats[State::STANDARD] = format; - - // Parenthesis - format.setForeground(QApplication::style()->standardPalette().text()); - formats[State::PARENTHESIS] = format; - - // String - format.setForeground(STYLE->extendedPalette().editorString()); - format.setFontWeight(QFont::Normal); - format.setFontItalic(true); - formats[State::STRING] = format; - - // Keyword - format.setForeground(QApplication::style()->standardPalette().windowText()); - format.setFontWeight(QFont::ExtraBold); - format.setFontItalic(false); - formats[State::KEYWORD] = format; - - // BindParam - format.setForeground(QApplication::style()->standardPalette().linkVisited()); - format.setFontWeight(QFont::Normal); - format.setFontItalic(false); - formats[State::BIND_PARAM] = format; - - // Blob - format.setForeground(QApplication::style()->standardPalette().text()); - format.setFontWeight(QFont::Normal); - format.setFontItalic(false); - formats[State::BLOB] = format; - - // Comment - format.setForeground(QApplication::style()->standardPalette().dark()); - format.setFontWeight(QFont::Normal); - format.setFontItalic(true); - formats[State::COMMENT] = format; - - // Number - format.setForeground(QApplication::style()->standardPalette().text()); - format.setFontWeight(QFont::Normal); - format.setFontItalic(false); - formats[State::NUMBER] = format; + this->formats = formats; + setupMapping(); + setCurrentBlockState(regulartTextBlockState); } void SqliteSyntaxHighlighter::setupMapping() @@ -127,7 +79,7 @@ void SqliteSyntaxHighlighter::highlightBlock(const QString &text) return; // Reset to default - QSyntaxHighlighter::setFormat(0, text.length(), formats[State::STANDARD]); + QSyntaxHighlighter::setFormat(0, text.length(), formats->value(State::STANDARD)); qint32 idxModifier = 0; QString statePrefix = ""; @@ -207,14 +159,14 @@ bool SqliteSyntaxHighlighter::handleToken(TokenPtr token, TokenPtr aheadToken, q ); bool fatalError = (error && !limitedDamage) || wasError; - QTextCharFormat format = formats[State::STANDARD]; + QTextCharFormat format = formats->value(State::STANDARD); // Applying valid object format. applyValidObjectFormat(format, valid, error, wasError); // Get format for token type (if any) if (tokenTypeMapping.contains(token->type)) - format = formats[tokenTypeMapping[token->type]]; + format = formats->value(tokenTypeMapping[token->type]); // Merge with error format (if this is an error). applyErrorFormat(format, error, wasError, token->type); @@ -283,7 +235,7 @@ bool SqliteSyntaxHighlighter::isError(int start, int lgt, bool* limitedDamage) { start += currentBlock().position(); int end = start + lgt - 1; - for (const Error& error : errors) + for (Error& error : errors) { if (error.from <= start && error.to >= end) { @@ -298,7 +250,7 @@ bool SqliteSyntaxHighlighter::isValid(int start, int lgt) { start += currentBlock().position(); int end = start + lgt - 1; - for (const DbObject& obj : dbObjects) + for (DbObject& obj : dbObjects) { if (obj.from <= start && obj.to >= end) return true; @@ -383,7 +335,7 @@ SqliteSyntaxHighlighter::DbObject::DbObject(int from, int to) : QList TextBlockData::parentheses() { QList list; - for (const TextBlockData::Parenthesis& par : parData) + for (TextBlockData::Parenthesis& par : parData) list << ∥ return list; @@ -399,7 +351,7 @@ void TextBlockData::insertParenthesis(int pos, char c) const TextBlockData::Parenthesis* TextBlockData::parenthesisForPosision(int pos) { - for (const Parenthesis& par : parData) + for (Parenthesis& par : parData) { if (par.position == pos) return ∥ @@ -431,6 +383,12 @@ int TextBlockData::Parenthesis::operator==(const TextBlockData::Parenthesis& oth return other.position == position && other.character == character; } +bool SqliteHighlighterPlugin::init() +{ + refreshFormats(); + return true; +} + QString SqliteHighlighterPlugin::getLanguageName() const { return "SQL"; @@ -440,11 +398,80 @@ QSyntaxHighlighter* SqliteHighlighterPlugin::createSyntaxHighlighter(QWidget* te { QPlainTextEdit* plainEdit = dynamic_cast(textEdit); if (plainEdit) - return new SqliteSyntaxHighlighter(plainEdit->document()); + return new SqliteSyntaxHighlighter(plainEdit->document(), &formats); QTextEdit* edit = dynamic_cast(textEdit); if (edit) - return new SqliteSyntaxHighlighter(edit->document()); + return new SqliteSyntaxHighlighter(edit->document(), &formats); return nullptr; } + +void SqliteHighlighterPlugin::refreshFormats() +{ + QTextCharFormat format; + + // Standard + format.setForeground(Cfg::getSyntaxForeground()); + format.setFontWeight(QFont::Normal); + format.setFontItalic(false); + formats[SqliteSyntaxHighlighter::State::STANDARD] = format; + + // Parenthesis + format.setForeground(Cfg::getSyntaxForeground()); + formats[SqliteSyntaxHighlighter::State::PARENTHESIS] = format; + + // String + format.setForeground(Cfg::getSyntaxStringFg()); + format.setFontWeight(QFont::Normal); + format.setFontItalic(true); + formats[SqliteSyntaxHighlighter::State::STRING] = format; + + // Keyword + format.setForeground(Cfg::getSyntaxKeywordFg()); + format.setFontWeight(QFont::ExtraBold); + format.setFontItalic(false); + formats[SqliteSyntaxHighlighter::State::KEYWORD] = format; + + // BindParam + format.setForeground(Cfg::getSyntaxBindParamFg()); + format.setFontWeight(QFont::Normal); + format.setFontItalic(false); + formats[SqliteSyntaxHighlighter::State::BIND_PARAM] = format; + + // Blob + format.setForeground(Cfg::getSyntaxBlobFg()); + format.setFontWeight(QFont::Normal); + format.setFontItalic(false); + formats[SqliteSyntaxHighlighter::State::BLOB] = format; + + // Comment + format.setForeground(Cfg::getSyntaxCommentFg()); + format.setFontWeight(QFont::Normal); + format.setFontItalic(true); + formats[SqliteSyntaxHighlighter::State::COMMENT] = format; + + // Number + format.setForeground(Cfg::getSyntaxNumberFg()); + format.setFontWeight(QFont::Normal); + format.setFontItalic(false); + formats[SqliteSyntaxHighlighter::State::NUMBER] = format; +} + +QString SqliteHighlighterPlugin::previewSampleCode() const +{ + static_qstring(code, + "SELECT my_column\n" + " FROM my_table;\n" + "\n" + "SELECT my_column, 'sample string', x'afff'\n" + " FROM my_table -- sample comment\n" + " WHERE (col1 + col2) > @input_param;" + ); + return code; +} + +const QHash* SqliteHighlighterPlugin::getFormats() const +{ + return &formats; +} diff --git a/SQLiteStudio3/guiSQLiteStudio/sqlitesyntaxhighlighter.h b/SQLiteStudio3/guiSQLiteStudio/sqlitesyntaxhighlighter.h index b17c45f..c11ab7d 100644 --- a/SQLiteStudio3/guiSQLiteStudio/sqlitesyntaxhighlighter.h +++ b/SQLiteStudio3/guiSQLiteStudio/sqlitesyntaxhighlighter.h @@ -52,11 +52,9 @@ class GUI_API_EXPORT SqliteSyntaxHighlighter : public QSyntaxHighlighter NUMBER }; + SqliteSyntaxHighlighter(QTextDocument *parent, const QHash* formats); explicit SqliteSyntaxHighlighter(QTextDocument *parent); - void setFormat(State state, QTextCharFormat format); - QTextCharFormat getFormat(State state) const; - void addError(int from, int to, bool limitedDamage = false); void clearErrors(); bool haveErrors(); @@ -107,6 +105,8 @@ class GUI_API_EXPORT SqliteSyntaxHighlighter : public QSyntaxHighlighter int to; }; + void init(const QHash* formats); + void setupMapping(); /** @@ -155,15 +155,13 @@ class GUI_API_EXPORT SqliteSyntaxHighlighter : public QSyntaxHighlighter void handleParenthesis(TokenPtr token, TextBlockData* data); static const int regulartTextBlockState = static_cast(TextBlockState::REGULAR); - QHash formats; + QHash tokenTypeMapping; QList errors; QList dbObjects; bool objectLinksEnabled = false; bool createTriggerContext = false; - - private slots: - void setupFormats(); + const QHash* formats = nullptr; }; class GUI_API_EXPORT SqliteHighlighterPlugin : public BuiltInPlugin, public SyntaxHighlighterPlugin @@ -172,12 +170,19 @@ class GUI_API_EXPORT SqliteHighlighterPlugin : public BuiltInPlugin, public Synt SQLITESTUDIO_PLUGIN_TITLE("SQL highlighter") SQLITESTUDIO_PLUGIN_DESC("SQL (SQLite) syntax highlighter.") - SQLITESTUDIO_PLUGIN_VERSION(10000) + SQLITESTUDIO_PLUGIN_VERSION(10100) SQLITESTUDIO_PLUGIN_AUTHOR("sqlitestudio.pl") public: + bool init(); QString getLanguageName() const; QSyntaxHighlighter* createSyntaxHighlighter(QWidget* textEdit) const; + void refreshFormats(); + QString previewSampleCode() const; + const QHash* getFormats() const; + + private: + QHash formats; }; GUI_API_EXPORT int qHash(SqliteSyntaxHighlighter::State state); diff --git a/SQLiteStudio3/guiSQLiteStudio/statusfield.cpp b/SQLiteStudio3/guiSQLiteStudio/statusfield.cpp index 11eed59..6b4d040 100644 --- a/SQLiteStudio3/guiSQLiteStudio/statusfield.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/statusfield.cpp @@ -1,11 +1,11 @@ #include "statusfield.h" #include "ui_statusfield.h" -#include "mainwindow.h" #include "uiconfig.h" #include "iconmanager.h" #include "themetuner.h" #include "common/tablewidget.h" #include "services/notifymanager.h" +#include "common/mouseshortcut.h" #include #include #include @@ -29,6 +29,7 @@ StatusField::StatusField(QWidget *parent) : connect(nm, SIGNAL(notifyError(QString)), this, SLOT(error(QString))); connect(nm, SIGNAL(notifyWarning(QString)), this, SLOT(warn(QString))); connect(CFG_UI.Fonts.StatusField, SIGNAL(changed(QVariant)), this, SLOT(fontChanged(QVariant))); + MouseShortcut::forWheel(Qt::ControlModifier, this, SLOT(fontSizeChangeRequested(int)), ui->tableWidget->viewport()); THEME_TUNER->manageCompactLayout(widget()); @@ -206,7 +207,7 @@ void StatusField::customContextMenuRequested(const QPoint &pos) void StatusField::reset() { - for (QAbstractAnimation* anim : itemAnimations) + for (QAbstractAnimation*& anim : itemAnimations) anim->stop(); itemAnimations.clear(); @@ -226,3 +227,15 @@ void StatusField::fontChanged(const QVariant& variant) ui->tableWidget->item(row, col)->setFont(font); } } + +void StatusField::changeFontSize(int factor) +{ + auto f = CFG_UI.Fonts.StatusField.get(); + f.setPointSize(f.pointSize() + factor); + CFG_UI.Fonts.StatusField.set(f); +} + +void StatusField::fontSizeChangeRequested(int delta) +{ + changeFontSize(delta >= 0 ? 1 : -1); +} diff --git a/SQLiteStudio3/guiSQLiteStudio/statusfield.h b/SQLiteStudio3/guiSQLiteStudio/statusfield.h index 6f9ad22..5e9b59e 100644 --- a/SQLiteStudio3/guiSQLiteStudio/statusfield.h +++ b/SQLiteStudio3/guiSQLiteStudio/statusfield.h @@ -38,6 +38,7 @@ class GUI_API_EXPORT StatusField : public QDockWidget void flashItems(const QList& items, const QColor& color); void setupMenu(); void readRecentMessages(); + void changeFontSize(int factor); Ui::StatusField *ui = nullptr; QMenu* menu = nullptr; @@ -58,6 +59,7 @@ class GUI_API_EXPORT StatusField : public QDockWidget void error(const QString& text); void reset(); void fontChanged(const QVariant& variant); + void fontSizeChangeRequested(int delta); public slots: void refreshColors(); diff --git a/SQLiteStudio3/guiSQLiteStudio/style.cpp b/SQLiteStudio3/guiSQLiteStudio/style.cpp index 525a832..6946443 100644 --- a/SQLiteStudio3/guiSQLiteStudio/style.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/style.cpp @@ -1,9 +1,12 @@ #include "style.h" #include "themetuner.h" -#include "common/global.h" #include "mainwindow.h" +#include "common/unused.h" +#include "syntaxhighlighterplugin.h" +#include "services/pluginmanager.h" #include #include +#include Style* Style::instance = nullptr; @@ -15,6 +18,12 @@ Style* Style::getInstance() return instance; } + +bool Style::isDark(const QStyle* style) +{ + return style->standardPalette().text().color().value() >= 80; +} + const ExtendedPalette& Style::extendedPalette() const { return extPalette; @@ -24,15 +33,21 @@ void Style::setStyle(QStyle *style, const QString &styleName) { setBaseStyle(style); - QApplication::setPalette(initialPalette); // reset palette, cause styles don't provide - // full palette when changed in runtime (i.e. windowsvista) - QApplication::setStyle(this); - QApplication::setPalette(standardPalette()); - THEME_TUNER->tuneTheme(styleName); - QToolTip::setPalette(standardPalette()); + QApplication::setAttribute(Qt::AA_DisableWindowContextHelpButton); - extPalette.styleChanged(this, styleName); + if (styleName != "qt5ct-style") + { + QApplication::setPalette(initialPalette); // reset palette, cause styles don't provide + // full palette when changed in runtime (i.e. windowsvista) + } + QApplication::setStyle(this); + if (styleName != "qt5ct-style") + { + QApplication::setPalette(standardPalette()); + QToolTip::setPalette(standardPalette()); + } + THEME_TUNER->tuneTheme(styleName); MAINWINDOW->getMdiArea()->setBackground(extPalette.mdiAreaBase()); } @@ -41,8 +56,36 @@ QString Style::name() const return baseStyle()->objectName(); } +bool Style::isDark() const +{ + return isDark(this); +} + +bool Style::eventFilter(QObject *obj, QEvent *ev) +{ + UNUSED(obj); + if (ev->type() == QEvent::PaletteChange) + { + if (extPalette.styleChanged(this, name())) + { + QList plugins = PLUGINS->getLoadedPlugins(); + auto it = plugins.begin(); + while (it != plugins.end()) + { + (*it)->refreshFormats(); + it++; + } + emit paletteChanged(); + } + } + + return false; +} + Style::Style(QStyle *style) : QProxyStyle(style) { initialPalette = style->standardPalette(); + extPalette.styleChanged(this, name()); + qApp->installEventFilter(this); } diff --git a/SQLiteStudio3/guiSQLiteStudio/style.h b/SQLiteStudio3/guiSQLiteStudio/style.h index ccb5e9e..82d79bc 100644 --- a/SQLiteStudio3/guiSQLiteStudio/style.h +++ b/SQLiteStudio3/guiSQLiteStudio/style.h @@ -5,15 +5,23 @@ #include #include +class CfgEntry; class Style : public QProxyStyle { + Q_OBJECT + public: static Style* getInstance(); + static bool isDark(const QStyle* style); const ExtendedPalette &extendedPalette() const; void setStyle(QStyle* style, const QString& styleName); QString name() const; + bool isDark() const; + + protected: + bool eventFilter(QObject *obj, QEvent *ev) override; private: static Style* instance; @@ -22,6 +30,9 @@ class Style : public QProxyStyle ExtendedPalette extPalette; QPalette initialPalette; + + signals: + void paletteChanged(); }; #define STYLE Style::getInstance() diff --git a/SQLiteStudio3/guiSQLiteStudio/syntaxhighlighterplugin.h b/SQLiteStudio3/guiSQLiteStudio/syntaxhighlighterplugin.h index 15b6c2c..8a33265 100644 --- a/SQLiteStudio3/guiSQLiteStudio/syntaxhighlighterplugin.h +++ b/SQLiteStudio3/guiSQLiteStudio/syntaxhighlighterplugin.h @@ -12,6 +12,8 @@ class GUI_API_EXPORT SyntaxHighlighterPlugin : virtual public Plugin public: virtual QString getLanguageName() const = 0; virtual QSyntaxHighlighter* createSyntaxHighlighter(QWidget* textEdit) const = 0; + virtual void refreshFormats() = 0; + virtual QString previewSampleCode() const = 0; }; #endif // SYNTAXHIGHLIGHTERPLUGIN_H diff --git a/SQLiteStudio3/guiSQLiteStudio/taskbar.cpp b/SQLiteStudio3/guiSQLiteStudio/taskbar.cpp index b209bbc..2e6a93a 100644 --- a/SQLiteStudio3/guiSQLiteStudio/taskbar.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/taskbar.cpp @@ -125,8 +125,10 @@ void TaskBar::initContextMenu(ExtActionContainer* mainWin) // because that macro causes MainWindow initialization and this caused endless loop. taskMenu = new QMenu(this); taskMenu->addAction(mainWin->getAction(MainWindow::CLOSE_WINDOW)); - taskMenu->addAction(mainWin->getAction(MainWindow::CLOSE_OTHER_WINDOWS)); taskMenu->addAction(mainWin->getAction(MainWindow::CLOSE_ALL_WINDOWS)); + taskMenu->addAction(mainWin->getAction(MainWindow::CLOSE_OTHER_WINDOWS)); + taskMenu->addAction(mainWin->getAction(MainWindow::CLOSE_ALL_WINDOWS_LEFT)); + taskMenu->addAction(mainWin->getAction(MainWindow::CLOSE_ALL_WINDOWS_RIGHT)); taskMenu->addSeparator(); taskMenu->addAction(mainWin->getAction(MainWindow::RESTORE_WINDOW)); taskMenu->addAction(mainWin->getAction(MainWindow::RENAME_WINDOW)); diff --git a/SQLiteStudio3/guiSQLiteStudio/themetuner.cpp b/SQLiteStudio3/guiSQLiteStudio/themetuner.cpp index 89092d6..ee8a0b9 100644 --- a/SQLiteStudio3/guiSQLiteStudio/themetuner.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/themetuner.cpp @@ -35,7 +35,7 @@ void ThemeTuner::manageCompactLayout(QWidget* w) void ThemeTuner::manageCompactLayout(QList wList) { widgetsForCompactLayout += wList; - for (QWidget* w : wList) + for (QWidget*& w : wList) connect(w, SIGNAL(destroyed()), this, SLOT(handleWidgetDestroyed())); handleCompactLayoutChange(CFG_UI.General.CompactLayout.get()); @@ -59,11 +59,27 @@ void ThemeTuner::darkThemeFix(QWizard* wizard) } void ThemeTuner::registerQWizardThemeTuneRequired(const QString& styleName) +{ + if (MAINWINDOW->isClosingApp()) + return; + + getInstance()->registerQWizardThemeTuneRequiredInternal(styleName); +} + +void ThemeTuner::registerQWizardThemeTuneRequiredInternal(const QString& styleName) { qwizardThemeTuneRequired << styleName; } void ThemeTuner::deregisterQWizardThemeTuneRequired(const QString& styleName) +{ + if (MAINWINDOW->isClosingApp()) + return; + + getInstance()->deregisterQWizardThemeTuneRequiredInternal(styleName); +} + +void ThemeTuner::deregisterQWizardThemeTuneRequiredInternal(const QString& styleName) { qwizardThemeTuneRequired.removeOne(styleName); } @@ -126,7 +142,7 @@ void ThemeTuner::handleCompactLayoutChange(const QVariant& newValue) { if (newValue.toBool()) { - for (QWidget* w : widgetsForCompactLayout) + for (QWidget*& w : widgetsForCompactLayout) { w->layout()->setContentsMargins(0, 0, 0, 0); w->layout()->setSpacing(0); @@ -134,7 +150,7 @@ void ThemeTuner::handleCompactLayoutChange(const QVariant& newValue) } else { - for (QWidget* w : widgetsForCompactLayout) + for (QWidget*& w : widgetsForCompactLayout) { w->layout()->setContentsMargins(-1, -1, -1, -1); w->layout()->setSpacing(-1); diff --git a/SQLiteStudio3/guiSQLiteStudio/themetuner.h b/SQLiteStudio3/guiSQLiteStudio/themetuner.h index 805ca94..5607fcd 100644 --- a/SQLiteStudio3/guiSQLiteStudio/themetuner.h +++ b/SQLiteStudio3/guiSQLiteStudio/themetuner.h @@ -22,14 +22,16 @@ class GUI_API_EXPORT ThemeTuner : public QObject void manageCompactLayout(QList wList); QString getDefaultCss(const QString& themeName = QString()) const; void darkThemeFix(QWizard* wizard); - void registerQWizardThemeTuneRequired(const QString& styleName); - void deregisterQWizardThemeTuneRequired(const QString& styleName); + static void registerQWizardThemeTuneRequired(const QString& styleName); + static void deregisterQWizardThemeTuneRequired(const QString& styleName); static ThemeTuner* getInstance(); static void cleanUp(); private: ThemeTuner(QObject* parent = 0); + void registerQWizardThemeTuneRequiredInternal(const QString& styleName); + void deregisterQWizardThemeTuneRequiredInternal(const QString& styleName); void init(); void tuneCss(const QString& themeName); diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio.ts b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio.ts new file mode 100644 index 0000000..a796b76 --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio.ts @@ -0,0 +1,7087 @@ + + + + + AboutDialog + + + About SQLiteStudio and licenses + + + + + About + + + + + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + + + + + Licenses + + + + + Environment + + + + + Icon directories + + + + + Form directories + + + + + SQLite extension directories + + + + + Plugin directories + + + + + Configuration directory + + + + + Application directory + + + + + Qt version: + + + + + SQLite 3 version: + + + + + Portable distribution. + + + + + MacOS X application bundle distribution. + + + + + Operating system managed distribution. + + + + + <h3>Table of contents:</h3><ol>%2</ol> + + + + + BindParamsDialog + + + Query parameters + + + + + Please provide values for query parameters + + + + + CodeSnippetEditor + + + Filter snippets + + + + + + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + + + + + + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + + + + + Snippet name + + + + + Code assistant shortcut + + + + + Snippet code + + + + + Code Snippets editor window has uncommitted modifications. + + + + + Code Snippets editor + + + + + Commit all snippet changes + + + + + Rollback all snippet changes + + + + + Create new snippet + + + + + Delete selected snippet + + + + + Move the snippet up + + + + + Move the snippet down + + + + + Code snippets manual + + + + + Enter a non-empty, unique name of the snippet. + + + + + Enter a non-empty snippet content. + + + + + This hotkey is not unique in context of a code assistant. + + + + + CollationsEditor + + + Filter collations + + + + + Databases + + + + + Register in all databases + + + + + Register in following databases: + + + + + Implementation code: + + + + + Collation name: + + + + + Implementation language: + + + + + Collations editor + + + + + Commit all collation changes + + + + + Rollback all collation changes + + + + + Create new collation + + + + + Delete selected collation + + + + + Editing collations manual + + + + + Enter a non-empty, unique name of the collation. + + + + + Pick the implementation language. + + + + + Enter a non-empty implementation code. + + + + + Collations editor window has uncommitted modifications. + + + + + ColorButton + + + Pick a color + + + + + ColumnCollatePanel + + + Collation name: + + + + + Named constraint: + + + + + Enter a name of the constraint. + + + + + Enter a collation name. + + + + + ColumnDefaultPanel + + + Default value: + + + + + Named constraint: + + + + + Enter a default value expression. + + + + + Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. + + + + + Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. + + + + + Enter a name of the constraint. + + + + + ColumnDialog + + + Column + + + + + Name and type + + + + + Scale + + + + + Precision + + + + + Data type: + + + + + Column name: + + + + + Size: + + + + + Constraints + + + + + Generated value + + + + + Unique + + + + + + + + + + + + Configure + + + + + Foreign Key + + + + + Collate + + + + + Not NULL + + + + + Check condition + + + + + Primary Key + + + + + Default + + + + + Advanced mode + + + + + Add constraint + column dialog + + + + + Edit constraint + column dialog + + + + + + Delete constraint + column dialog + + + + + Move constraint up + column dialog + + + + + Move constraint down + column dialog + + + + + Add a primary key + column dialog + + + + + Add a foreign key + column dialog + + + + + Add an unique constraint + column dialog + + + + + Add a check constraint + column dialog + + + + + Add a not null constraint + column dialog + + + + + Add a collate constraint + column dialog + + + + + Add a generated value constraint + column dialog + + + + + Add a default constraint + column dialog + + + + + Are you sure you want to delete constraint '%1'? + column dialog + + + + + Correct the constraint's configuration. + + + + + Scale is not allowed for INTEGER PRIMARY KEY columns. + + + + + Precision cannot be defined without the scale. + + + + + Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. + + + + + INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. + + + + + Precision is not allowed for INTEGER PRIMARY KEY columns. + + + + + Could not match valid STRICT table datatype from declared type: %1. + + + + + ColumnDialogConstraintsModel + + + Type + column dialog constraints + + + + + Name + column dialog constraints + + + + + Details + column dialog constraints + + + + + ColumnForeignKeyPanel + + + Foreign table: + + + + + Foreign column: + + + + + Reactions + + + + + Deferred foreign key + + + + + Named constraint + + + + + Constraint name + + + + + Pick the foreign table. + + + + + Pick the foreign column. + + + + + Enter a name of the constraint. + + + + + ColumnGeneratedPanel + + + Generating code: + + + + + Explicit type: + + + + + Use "GENERATED ALWAYS" keywords + + + + + Named constraint: + + + + + Enter the column value generating expression. + + + + + Invalid value generating expression: %1. + + + + + Invalid value generating expression. + + + + + Enter a name of the constraint. + + + + + ColumnPrimaryKeyPanel + + + Autoincrement + + + + + Sort order: + + + + + Named constraint: + + + + + On conflict: + + + + + Enter a name of the constraint. + + + + + Descending order is not allowed with AUTOINCREMENT. + + + + + ColumnUniqueAndNotNullPanel + + + Named constraint: + + + + + On conflict: + + + + + Enter a name of the constraint. + + + + + CompleterWindow + + + Column: %1 + completer statusbar + + + + + Table: %1 + completer statusbar + + + + + Index: %1 + completer statusbar + + + + + Trigger: %1 + completer statusbar + + + + + View: %1 + completer statusbar + + + + + Database: %1 + completer statusbar + + + + + Keyword: %1 + completer statusbar + + + + + Function: %1 + completer statusbar + + + + + Operator: %1 + completer statusbar + + + + + String + completer statusbar + + + + + Number + completer statusbar + + + + + Binary data + completer statusbar + + + + + Collation: %1 + completer statusbar + + + + + Pragma function: %1 + completer statusbar + + + + + Insert a code snippet + + + + + ConfigDialog + + + + Configuration + + + + + Search + + + + + General + + + + + Keyboard shortcuts + + + + + Look & feel + + + + + Style + + + + + Fonts + + + + + Code colors + + + + + + Database list + + + + + Code assistant + + + + + Data browsing + + + + + Data editors + + + + + Plugins + + + + + Code formatters + + + + + If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. + + + + + Sort table columns alphabetically + + + + + Expand tables node when connected to a database + + + + + <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> + + + + + Display additional labels on the list + + + + + For regular tables labels will show number of columns, indexes and triggers for each of tables. + + + + + Display labels for regular tables + + + + + Virtual tables will be marked with a 'virtual' label. + + + + + Display labels for virtual tables + + + + + Expand views node when connected to a database + + + + + If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) + + + + + Sort objects (tables, indexes, triggers and views) alphabetically + + + + + Display system tables and indexes on the list + + + + + Database dialog window + + + + + <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> + + + + + Do not mark database to be "permanent" by default + + + + + <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> + + + + + Try to bypass dialog completly when dropping database file onto the list + + + + + Data browsing and editing + + + + + + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + + + + + Number of memorized table populating configurations + + + + + Data column width + + + + + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + + + + + Enlarge column when entering value longer than current width + + + + + <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> + + + + + Number of data rows per page: + + + + + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> + + + + + Show column and row details tooltip in data view + + + + + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + + + + + Keep NULL value when entering empty value + + + + + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> + + + + + Use DEFAULT value (if defined), when committing NULL value + + + + + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + + + + + Limit number of rows for in case of dozens of columns + + + + + Inserting new row in data grid + + + + + Before currently selected row + + + + + After currently selected row + + + + + At the end of data view + + + + + Table windows + + + + + <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> + + + + + Open Table Windows with the data tab for start + + + + + <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> + + + + + Place data tab as first tab in a Table Window + + + + + View windows + + + + + <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> + + + + + Open View Windows with the data tab for start + + + + + <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> + + + + + Place data tab as first tab in a View Window + + + + + Data types + + + + + Available editors: + + + + + Editors selected for this data type: + + + + + Schema editing + + + + + Number of DDL changes kept in history. + + + + + DDL history size: + + + + + Don't show DDL preview dialog when committing schema changes + + + + + SQL queries + + + + + + Number of queries kept in the history. + + + + + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> + + + + + History size: + + + + + + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> + + + + + Execute only the query under the cursor + + + + + Number of memorized query parameters + + + + + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + + + + + Use scientific notation for real numbers in the grid view + + + + + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + + + + + Limit automatic data column width to (in pixels): + + + + + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + + + + + Keep at least the width to show complete column name + + + + + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + + + + + Wrap lines in SQL editor + + + + + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + + + + + Highlight current query + + + + + Updates + + + + + Automatically check for updates at startup + + + + + Session + + + + + Restore last session (active MDI windows) after startup + + + + + Allow multiple instances of the application at the same time + + + + + Status Field + + + + + <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> + + + + + Always open Status panel when new message is printed + + + + + Code syntax colors + + + + + Keyword foreground + + + + + Regular foreground + + + + + String foreground + + + + + Comment foreground + + + + + Valid objects foreground + + + + + Current query background + + + + + Bind parameter foreground + + + + + Current line background + + + + + Matched parenthesis background + + + + + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + + + + + Number foreground + + + + + BLOB value foreground + + + + + Matched parenthesis foreground + + + + + Reset to defaults + + + + + Filter shortcuts by name or key combination + + + + + Action + + + + + Key combination + + + + + + Language + + + + + Changing language requires application restart to take effect. + + + + + Compact layout + + + + + <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> + + + + + Use compact layout + + + + + Main window dock areas + + + + + Left and right areas occupy corners + + + + + Top and bottom areas occupy corners + + + + + Hide built-in plugins + + + + + Current style: + + + + + Preview + + + + + Enabled + + + + + Disabled + + + + + Active formatter plugin + + + + + SQL editor font + + + + + Database list font + + + + + Database list additional label font + + + + + Data view font + + + + + Status field font + + + + + Code assistant settings + + + + + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + + + + + Automatically trigger the assistant after a dot is typed after an object name + + + + + Description: + plugin details + + + + + Category: + plugin details + + + + + Version: + plugin details + + + + + Author: + plugin details + + + + + Internal name: + plugin details + + + + + Dependencies: + plugin details + + + + + Conflicts: + plugin details + + + + + Plugin details + + + + + Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. + + + + + %1 (built-in) + plugins manager in configuration dialog + + + + + Details + + + + + No plugins in this category. + + + + + Add new data type + + + + + Rename selected data type + + + + + Delete selected data type + + + + + Help for configuring data type editors + + + + + Clear hotkey for this action + + + + + Restore original hotkey for this action + + + + + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + + + + + ConstraintCheckPanel + + + The condition + + + + + Named constraint: + + + + + On conflict + + + + + Enter a valid condition. + + + + + Enter a name of the constraint. + + + + + ConstraintDialog + + + New constraint + constraint dialog + + + + + Create + constraint dialog + + + + + Edit constraint + dialog window + + + + + Apply + constraint dialog + + + + + Primary key + table constraints + + + + + Foreign key + table constraints + + + + + Unique + table constraints + + + + + Not NULL + table constraints + + + + + Check + table constraints + + + + + Generated + table constraints + + + + + Collate + table constraints + + + + + Default + table constraints + + + + + ConstraintTabModel + + + Table + table constraints + + + + + Column (%1) + table constraints + + + + + Scope + table constraints + + + + + Type + table constraints + + + + + Details + table constraints + + + + + Name + table constraints + + + + + CssDebugDialog + + + SQLiteStudio CSS console + + + + + DataView + + + Filter data + data view + + + + + Grid view + + + + + Form view + + + + + Refresh table data + data view + + + + + First page + data view + + + + + Previous page + data view + + + + + Next page + data view + + + + + Last page + data view + + + + + Commit changes for selected cells + data view + + + + + Rollback changes for selected cells + data view + + + + + Show grid view of results + data view + + + + + Show form view of results + data view + + + + + Filter by text (if contains) + data view + + + + + Filter strictly by text (if equals) + data view + + + + + Tabs on top + data view + + + + + Tabs at bottom + data view + + + + + Place new rows above selected row + data view + + + + + Place new rows below selected row + data view + + + + + Place new rows at the end of the data view + data view + + + + + Total number of rows is being counted. +Browsing other pages will be possible after the row counting is done. + + + + + Row: %1 + + + + + Filter + + + + + Hit Enter key or press "Apply filter" button on toolbar to apply new value. + + + + + Filter by the Regular Expression + data view + + + + + Filter by SQL expression + data view + + + + + Show filter inputs per column + data view + + + + + Apply filter + data view + + + + + DbDialog + + + Database + + + + + Database type + + + + + Database driver + + + + + + File + + + + + Name (on the list) + + + + + Options + + + + + <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> + aasfd + + + + + Permanent (keep it in configuration) + + + + + Test connection + + + + + Select new or existing file on local computer + + + + + Browse + + + + + Database type not selected. + + + + + Database path not specified. + + + + + Enter an unique database name. + + + + + This name is already in use. Please enter unique name. + + + + + <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> + + + + + Enter a database file path. + + + + + This database is already on the list under name: %1 + + + + + Select a database type. + + + + + DbObjectDialogs + + + Delete table + + + + + Are you sure you want to delete table %1? + + + + + Delete index + + + + + Are you sure you want to delete index %1? + + + + + Delete trigger + + + + + Are you sure you want to delete trigger %1? + + + + + Delete view + + + + + Are you sure you want to delete view %1? + + + + + + Error while dropping %1: %2 + + + + + Delete objects + + + + + Are you sure you want to delete following objects: +%1 + + + + + Cannot start transaction. Details: %1 + + + + + Cannot commit transaction. Details: %1 + + + + + DbTree + + + Databases + + + + + Filter by name + + + + + Copy + + + + + Paste + + + + + Select all + + + + + Create a group + + + + + Delete the group + + + + + Rename the group + + + + + &Add a database + + + + + &Edit the database + + + + + &Remove the database + + + + + &Connect to the database + + + + + &Disconnect from the database + + + + + Import + + + + + &Export the database + + + + + Vac&uum + + + + + &Integrity check + + + + + Create a &table + + + + + Edit the t&able + + + + + Delete the ta&ble + + + + + Export the table + + + + + Import into the table + + + + + Populate table + + + + + Create similar table + + + + + Reset autoincrement sequence + + + + + Create an &index + + + + + Edit the i&ndex + + + + + Delete the in&dex + + + + + Create a trig&ger + + + + + Edit the trigg&er + + + + + Delete the trigge&r + + + + + Create a &view + + + + + Edit the v&iew + + + + + Delete the vi&ew + + + + + Add a column + + + + + Edit the column + + + + + Delete the column + + + + + Delete selected items + + + + + Clear filter + + + + + &Refresh all database schemas + + + + + Re&fresh selected database schema + + + + + + Erase table data + + + + + Open file's directory + + + + + Execute SQL from file + + + + + Increase font size + database list + + + + + Decrease font size + database list + + + + + + Database + + + + + Grouping + + + + + Generate query for table + + + + + + Create group + + + + + Group name + + + + + Entry with name %1 already exists in group %2. + + + + + Delete group + + + + + Are you sure you want to delete group %1? +All objects from this group will be moved to parent group. + + + + + Are you sure you want to remove database '%1' from the list? + + + + + Are you sure you want to remove following databases from the list: +%1 + + + + + Remove database + + + + + + Cannot import, because no import plugin is loaded. + + + + + + Cannot export, because no export plugin is loaded. + + + + + Vacuum (%1) + + + + + Integrity check (%1) + + + + + Reset autoincrement + + + + + Are you sure you want to reset autoincrement value for table '%1'? + + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + + + + + Autoincrement value for table '%1' has been reset successfully. + + + + + Are you sure you want to delete all data from table(s): %1? + + + + + An error occurred while trying to delete data from table '%1': %2 + + + + + All data has been deleted for table '%1'. + + + + + Following objects will be deleted: %1. + + + + + Following databases will be removed from list: %1. + + + + + Remainig objects from deleted group will be moved in place where the group used to be. + + + + + %1<br><br>Are you sure you want to continue? + + + + + Delete objects + + + + + DbTreeItemDelegate + + + error + dbtree labels + + + + + (system table) + database tree label + + + + + (virtual) + virtual table label + + + + + (system index) + database tree label + + + + + DbTreeModel + + + Database: %1 + dbtree tooltip + + + + + URI: + dbtree tooltip + + + + + Version: + dbtree tooltip + + + + + File size: + dbtree tooltip + + + + + Encoding: + dbtree tooltip + + + + + Error: + dbtree tooltip + + + + + Table : %1 + dbtree tooltip + + + + + Columns (%1): + dbtree tooltip + + + + + Indexes (%1): + dbtree tooltip + + + + + Triggers (%1): + dbtree tooltip + + + + + Copy + + + + + Move + + + + + Include data + + + + + Include indexes + + + + + Include triggers + + + + + Abort + + + + + Could not add dropped database file '%1' automatically. Manual setup is necessary. + + + + + Referenced tables + + + + + Do you want to include following referenced tables as well: +%1 + + + + + Name conflict + + + + + Following object already exists in the target database. +Please enter new, unique name, or press '%1' to abort the operation: + + + + + SQL statements conversion + + + + + Following error occurred while converting SQL statements to the target SQLite version: + + + + + Would you like to ignore those errors and proceed? + + + + + DdlHistoryWindow + + + Filter by database: + + + + + Clear entire history + + + + + -- Queries executed on database %1 (%2) +-- Date and time of execution: %3 +%4 + + + + + Clear history + + + + + Are you sure you want to erase entire DDL history? + + + + + DDL history + + + + + DdlPreviewDialog + + + Queries to be executed + + + + + Don't show again + + + + + DebugConsole + + + SQLiteStudio Debug Console + + + + + EditorWindow + + + SQL editor + + + + + Query + + + + + History + + + + + Results in the separate tab + + + + + Results below the query + + + + + + SQL editor %1 + + + + + + Results + + + + + Execute query + + + + + Explain query + + + + + Clear execution history + sql editor + + + + + Export results + sql editor + + + + + Create view from query + sql editor + + + + + Previous database + + + + + Next database + + + + + Show next tab + sql editor + + + + + Show previous tab + sql editor + + + + + Focus results below + sql editor + + + + + Focus SQL editor above + sql editor + + + + + Delete selected SQL history entries + sql editor + + + + + Execute single query under cursor + + + + + Execute all queries in editor + + + + + Active database (%1/%2) + + + + + Query finished in %1 second(s). Rows affected: %2 + + + + + Query finished in %1 second(s). + + + + + Clear execution history + + + + + Are you sure you want to erase the entire SQL execution history? This cannot be undone. + + + + + Cannot export, because no export plugin is loaded. + + + + + No database selected in the SQL editor. Cannot create a view for unknown database. + + + + + Editor window "%1" has uncommitted data. + + + + + ErrorsConfirmDialog + + + Errors + + + + + Following errors occured: + + + + + Would you like to proceed? + + + + + ExecFromFileDialog + + + Execute SQL from file + + + + + Input file + + + + + Path to file + + + + + Browse for file + + + + + Options + + + + + File encoding + + + + + Skip failing SQL statements + + + + + SQL scripts (*.sql);;All files (*) + + + + + Execute SQL file + + + + + Please provide file to be executed. + + + + + Provided file does not exist or cannot be read. + + + + + ExportDialog + + + Export + + + + + What do you want to export? + + + + + A database + + + + + A single table + + + + + Query results + + + + + Table to export + + + + + Database + + + + + Table + + + + + Options + + + + + When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. + + + + + Export table data + + + + + Export table indexes + + + + + Export table triggers + + + + + Note, that exporting table indexes and triggers may be unsupported by some output formats. + + + + + Select database objects to export + + + + + Export data from tables + + + + + Select all + + + + + Deselect all + + + + + + Database: + + + + + Query to export results for + + + + + Query to be executed for results: + + + + + Export format and options + + + + + Export format + + + + + Output + + + + + Exported file path + + + + + Clipboard + + + + + File + + + + + Exported text encoding: + + + + + Export format options + + + + + Cancel + + + + + + + Select database to export. + + + + + Select table to export. + + + + + Enter valid query to export. + + + + + Select at least one object to export. + + + + + You must provide a file name to export to. + + + + + Path you provided is an existing directory. You cannot overwrite it. + + + + + The directory '%1' does not exist. + + + + + The file '%1' exists and will be overwritten. + + + + + All files (*) + + + + + Pick file to export to + + + + + Internal error during export. This is a bug. Please report it. + + + + + FileExecErrorsDialog + + + Execution errors + + + + + Following errors were encountered during execution of SQL statements from the file: + + + + + SQL + + + + + Error + + + + + Statements that were executed successfully were commited. + + + + + Statements that were executed successfully were rolled back. + + + + + FkComboBox + + + Cannot edit this cell. Details: %1 + + + + + FontEdit + + + Choose font + font configuration + + + + + Form + + + Active SQL formatter plugin + + + + + FormView + + + Commit row + form view + + + + + Rollback row + form view + + + + + First row + form view + + + + + Previous row + form view + + + + + Next row + form view + + + + + Last row + form view + + + + + Insert new row + form view + + + + + Delete current row + form view + + + + + FunctionsEditor + + + Filter functions + + + + + Input arguments + + + + + Undefined + + + + + Databases + + + + + Register in all databases + + + + + Register in following databases: + + + + + Type: + + + + + Function name: + + + + + Implementation language: + + + + + Deterministic + + + + + Initialization code: + + + + + + Function implementation code: + + + + + Final step implementation code: + + + + + SQL functions editor + + + + + Commit all function changes + + + + + Rollback all function changes + + + + + Create new function + + + + + Delete selected function + + + + + Custom SQL functions manual + + + + + Add function argument + + + + + Rename function argument + + + + + Delete function argument + + + + + Move function argument up + + + + + Move function argument down + + + + + Scalar + + + + + Aggregate + + + + + Enter a non-empty, unique name of the function. + + + + + Pick the implementation language. + + + + + Per step code: + + + + + Enter a non-empty implementation code. + + + + + argument + new function argument name in function editor window + + + + + Functions editor window has uncommitted modifications. + + + + + ImportDialog + + + Import data + + + + + Table to import to + + + + + Table + + + + + Database + + + + + Data source to import from + + + + + Data source type + + + + + Options + + + + + Text encoding: + + + + + Input file: + + + + + <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> + + + + + Ignore errors + + + + + Data source options + + + + + Cancel + + + + + If you type table name that doesn't exist, it will be created. + + + + + Enter the table name + + + + + Select import plugin. + + + + + You must provide a file to import from. + + + + + The file '%1' does not exist. + + + + + Path you provided is a directory. A regular file is required. + + + + + Pick file to import from + + + + + IndexDialog + + + + Index + + + + + Column + + + + + Sort + + + + + Collation + + + + + On table: + + + + + Delete selected indexed expression + + + + + Moves selected index column up in the order, making it more significant in the index. + + + + + Moves selected index column down in the order, making it less significant in the index. + + + + + Partial index condition + + + + + Unique index + + + + + Index name: + + + + + Edit selected indexed expression + + + + + Add indexed expression + + + + + DDL + + + + + Tried to open index dialog for closed or inexisting database. + + + + + Could not process index %1 correctly. Unable to open an index dialog. + + + + + Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. + + + + + Pick the table for the index. + + + + + Select at least one column. + + + + + Enter a valid condition. + + + + + default + index dialog + + + + + Sort order + table constraints + + + + + + Error + index dialog + + + + + Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? + + + + + An error occurred while executing SQL statements: +%1 + + + + + IndexExprColumnDialog + + + Indexed expression + + + + + Expression to index + + + + + This expression is already indexed by the index. + + + + + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. + + + + + Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. + + + + + It's forbidden to use 'SELECT' statements in indexed expressions. + + + + + Enter an indexed expression. + + + + + Invalid expression. + + + + + LanguageDialog + + + Language + + + + + Please choose language: + + + + + MainWindow + + + Database toolbar + + + + + Structure toolbar + + + + + Tools + + + + + Window list + + + + + View toolbar + + + + + Configuration widgets + + + + + Syntax highlighting engines + + + + + Data editors + + + + + Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. + + + + + Running in debug mode. Debug messages are printed to the standard output. + + + + + You need to restart application to make the language change take effect. + + + + + Open SQL &editor + + + + + Open DDL &history + + + + + Open SQL &functions editor + + + + + Open code &snippets editor + + + + + Open &collations editor + + + + + Open ex&tension manager + + + + + &Import + + + + + E&xport + + + + + Open confi&guration dialog + + + + + &Tile windows + + + + + Tile windows &horizontally + + + + + Tile windows &vertically + + + + + &Cascade windows + + + + + Next window + + + + + Previous window + + + + + Hide status field + + + + + Close &all windows + + + + + Re&store recently closed window + + + + + Close current &window + + + + + Close &other windows + + + + + Close windows on the &left + + + + + Close windows on the &right + + + + + Re&name selected window + + + + + Open Debug Console + + + + + Open CSS Console + + + + + Report a &bug + + + + + D&onate + + + + + Propose a new &feature + + + + + &About + + + + + &Licenses + + + + + Open home &page + + + + + User &Manual + + + + + SQLite &documentation + + + + + Bugs and feature &requests + + + + + Quit + + + + + Check for &updates + + + + + &Database + menubar + + + + + &Structure + menubar + + + + + &View + menubar + + + + + Window list + menubar view menu + + + + + &Tools + menubar + + + + + &Help + + + + + Could not set style: %1 + main window + + + + + Cannot export, because no export plugin is loaded. + + + + + Cannot import, because no import plugin is loaded. + + + + + Rename window + + + + + Enter new name for the window: + + + + + New updates are available. <a href="%1">Click here for details</a>. + + + + + You're running the most recent version. No updates are available. + + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + + + + + Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 + + + + + Could not add database %1 to list. + + + + + MdiWindow + + + Uncommitted changes + + + + + Close anyway + + + + + Don't close + + + + + MultiEditor + + + Null value + multieditor + + + + + Configure editors for this data type + + + + + Open another tab + + + + + Foreign Key + + + + + Data editor plugin '%1' not loaded, while it is defined for editing '%2' data type. + + + + + Deleted + multieditor + + + + + Read only + multieditor + + + + + MultiEditorBoolPlugin + + + Boolean + + + + + MultiEditorDatePlugin + + + Date + + + + + MultiEditorDateTimePlugin + + + Date & time + + + + + MultiEditorHexPlugin + + + Hex + + + + + MultiEditorNumericPlugin + + + Number + numeric multi editor tab name + + + + + MultiEditorText + + + Tab changes focus + + + + + Cut + + + + + Copy + + + + + Paste + + + + + Delete + + + + + Undo + + + + + Redo + + + + + MultiEditorTextPlugin + + + Text + + + + + MultiEditorTimePlugin + + + Time + + + + + NewConstraintDialog + + + New constraint + + + + + + Primary Key + new constraint dialog + + + + + + Foreign Key + new constraint dialog + + + + + + Unique + new constraint dialog + + + + + + Check + new constraint dialog + + + + + Not NULL + new constraint dialog + + + + + Collate + new constraint dialog + + + + + Generated + new constraint dialog + + + + + Default + new constraint dialog + + + + + NewVersionDialog + + + SQLiteStudio updates + + + + + New version is available! + + + + + Download new version! + + + + + New version package will be downloaded. It will be up to you to install it whenever you're ready. + + + + + Open SQLiteStudio home page. + + + + + Read release notes && download package yourself. + + + + + Just close this window. + + + + + Check for updates on startup + + + + + Not now. + + + + + PopulateConfigDialog + + + Populating configuration + + + + + Configuring <b>%1</b> for column <b>%2</b> + + + + + PopulateDialog + + + Populate table + + + + + Database + + + + + Table + + + + + Columns + + + + + Number of rows to populate: + + + + + Populate + populate dialog button + + + + + Abort + + + + + Configure + + + + + Populating configuration for this column is invalid or incomplete. + + + + + Select database with table to populate + + + + + Select table to populate + + + + + You have to select at least one column. + + + + + QObject + + + Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). + + + + + The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. + + + + + Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. + + + + + Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. + + + + + Cannot edit results of query other than %1. + + + + + Cannot edit columns that are result of aggregated %1 statements. + + + + + Cannot edit columns that are result of %1 statement. + + + + + Cannot edit columns that are result of common table expression statement (%1). + + + + + Cannot edit table generated columns. + + + + + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). + + + + + + + + on conflict: %1 + data view tooltip + + + + + references table %1, column %2 + data view tooltip + + + + + condition: %1 + data view tooltip + + + + + collation name: %1 + data view tooltip + + + + + Data grid view + + + + + Edit current cell inline + + + + + Copy cell(s) contents to clipboard + + + + + Copy cell(s) contents together with header to clipboard + + + + + Paste cell(s) contents from clipboard + + + + + Set empty value to selected cell(s) + + + + + Set NULL value to selected cell(s) + + + + + Commit changes to cell(s) contents + + + + + Rollback changes to cell(s) contents + + + + + Delete selected data row + + + + + Insert new data row + + + + + Open contents of selected cell in a separate editor + + + + + Toggle the height adjustment of rows + + + + + Increase font size + data view + + + + + Decrease font size + data view + + + + + Total pages available: %1 + + + + + Total rows loaded: %1 + + + + + Data view (both grid and form) + + + + + Refresh data + + + + + Switch to grid view of the data + + + + + Switch to form view of the data + + + + + Database list + + + + + Delete selected item + + + + + Clear filter contents + + + + + Refresh schema + + + + + Refresh all schemas + + + + + Add database + + + + + Select all items + + + + + Copy selected item(s) + + + + + + + Paste from clipboard + + + + + Increase font size + database list + + + + + Decrease font size + database list + + + + + Tables + + + + + Indexes + + + + + Triggers + + + + + Views + + + + + Columns + + + + + Data form view + + + + + Commit changes for current row + + + + + Rollback changes for current row + + + + + Go to first row on current page + + + + + Go to next row + + + + + Go to previous row + + + + + Go to last row on current page + + + + + Insert new row + + + + + Delete current row + + + + + Main window + + + + + Open SQL editor + + + + + Open DDL history window + + + + + Open snippets editor window + + + + + Open function editor window + + + + + Open collation editor window + + + + + Open extension manager window + + + + + Previous window + + + + + Next window + + + + + Hide status area + + + + + Open user manual + + + + + Open configuration dialog + + + + + Open Debug Console + + + + + Open CSS Console + + + + + Open the About dialog + + + + + Quit the application + + + + + Cell text value editor + + + + + + Cut selected text + + + + + + Copy selected text + + + + + + Delete selected text + + + + + + Undo + + + + + + Redo + + + + + SQL editor input field + + + + + Select whole editor contents + + + + + Save contents into a file + + + + + Load contents from a file + + + + + Find in text + + + + + Find next + + + + + Find previous + + + + + Replace in text + + + + + Delete current line + + + + + Request code assistant + + + + + Format contents + + + + + Move selected block of text one line down + + + + + Move selected block of text one line up + + + + + Copy selected block of text and paste it a line below + + + + + Copy selected block of text and paste it a line above + + + + + Toggle comment + + + + + Increase font size + sql editor + + + + + Decrease font size + sql editor + + + + + All SQLite databases + + + + + All files + + + + + Select database file + + + + + Select + + + + + File type + + + + + SQL editor window + + + + + Execute query + + + + + Execute single query under cursor + + + + + Execute all queries in editor + + + + + Execute "%1" query + + + + + Switch current working database to previous on the list + + + + + Switch current working database to next on the list + + + + + Go to next editor tab + + + + + Go to previous editor tab + + + + + Move keyboard input focus to the results view below + + + + + Move keyboard input focus to the SQL editor above + + + + + Delete selected SQL history entries + + + + + Table window + + + + + Commit the table structure + + + + + Rollback pending changes in the table structure + + + + + Refresh table structure + + + + + Add new column + + + + + Edit selected column + + + + + Delete selected column + + + + + Export table data + + + + + Import data to the table + + + + + Add new table constraint + + + + + Edit selected table constraint + + + + + Delete selected table constraint + + + + + Refresh table index list + + + + + Add new index + + + + + Edit selected index + + + + + Delete selected index + + + + + Refresh table trigger list + + + + + + Add new trigger + + + + + + Edit selected trigger + + + + + + Delete selected trigger + + + + + + Go to next tab + + + + + + Go to previous tab + + + + + A view window + + + + + Commit the view's query + + + + + Rollback pending changes in the view's query + + + + + Refresh view trigger list + + + + + Execute the view's query + + + + + A code snippets editor window + + + + + + + + Commit the pending changes + + + + + + + + Rollback the pending changes + + + + + A collation editor window + + + + + A function editor window + + + + + A SQLite extension editor window + + + + + QuitConfirmDialog + + + Uncommitted changes + + + + + Are you sure you want to quit the application? + +Following items are pending: + + + + + SearchTextDialog + + + Find or replace + + + + + Find: + + + + + Case sensitive + + + + + Search backwards + + + + + Regular expression matching + + + + + Replace && +find next + + + + + Replace with: + + + + + Replace all + + + + + Find + + + + + SortDialog + + + Sort by columns + + + + + + Column + + + + + + Order + + + + + Sort by: %1 + + + + + Move column up + + + + + Move column down + + + + + SqlEditor + + + Wrap words + sql editor + + + + + Cut + sql editor + + + + + Copy + sql editor + + + + + Paste + sql editor + + + + + Delete + sql editor + + + + + Select all + sql editor + + + + + Undo + sql editor + + + + + Redo + sql editor + + + + + Complete + sql editor + + + + + Format SQL + sql editor + + + + + Save SQL to file + sql editor + + + + + Select file to save SQL + sql editor + + + + + Load SQL from file + sql editor + + + + + Delete line + sql editor + + + + + Move block down + sql editor + + + + + Move block up + sql editor + + + + + Copy block down + sql editor + + + + + Copy up down + sql editor + + + + + Find + sql editor + + + + + Find next + sql editor + + + + + Find previous + sql editor + + + + + Replace + sql editor + + + + + Toggle comment + sql editor + + + + + Increase font size + sql editor + + + + + Decrease font size + sql editor + + + + + Could not open file '%1' for writing: %2 + + + + + Saved SQL contents to file: %1 + + + + + Syntax completion can be used only when a valid database is set for the SQL editor. + + + + + Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. + + + + + Save to file + + + + + SQL scripts (*.sql);;All files (*) + + + + + Open file + + + + + Could not open file '%1' for reading: %2 + + + + + Reached the end of document. Hit the find again to restart the search. + + + + + SqlQueryItem + + + Committing error: + data view tooltip + + + + + Column: + data view tooltip + + + + + Data type: + data view + + + + + Table: + data view tooltip + + + + + Constraints: + data view tooltip + + + + + SqlQueryItemDelegate + + + + + + Cannot edit this cell. Details: %1 + + + + + The row is marked for deletion. + + + + + + Structure of this table has changed since last data was loaded. Reload the data to proceed. + + + + + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). + + + + + Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. + + + + + SqlQueryModel + + + + Only one query can be executed simultaneously. + + + + + Cannot execute query on undefined or invalid database. + + + + + Cannot execute empty query. + + + + + Uncommitted data + + + + + There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. + + + + + Cannot commit the data for a cell that refers to the already closed database. + + + + + Could not begin transaction on the database. Details: %1 + + + + + An error occurred while committing the transaction: %1 + + + + + An error occurred while rolling back the transaction: %1 + + + + + Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. + + + + + An error occurred while committing the data: %1 + + + + + Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. + + + + + + Error while executing SQL query on database '%1': %2 + + + + + Error while loading query results: %1 + + + + + Insert multiple rows + + + + + Number of rows to insert: + + + + + Delete rows + + + + + You're about to delete newly inserted rows that are not committed yet. Row numbers: %1 +Such deletion will be permanent. Are you sure you want to delete them? + + + + + SqlQueryView + + + Go to referenced row in... + + + + + Copy + + + + + Copy with headers + + + + + Copy as... + + + + + Paste + + + + + Paste as... + + + + + Set NULL values + + + + + Erase values + + + + + Commit + + + + + Rollback + + + + + Commit selected cells + + + + + Rollback selected cells + + + + + Edit current cell inline + + + + + Define columns to sort by + + + + + Remove custom sorting + + + + + Insert row + + + + + Insert multiple rows + + + + + Delete selected row + + + + + Adjust height of rows + + + + + Increase font size + data view + + + + + Decrease font size + data view + + + + + Invert selection + data view + + + + + Edit value in editor + + + + + Show value in a viewer + + + + + Generate query for selected cells + + + + + No items selected to paste clipboard contents to. + + + + + Cannot paste data. Details: %1 + + + + + Structure of at least one table used has changed since last data was loaded. Reload the data to proceed. + + + + + Cannot paste to a cell. Details: %1 + + + + + The row is marked for deletion. + + + + + Cannot paste to column %1. Details: %2 + + + + + Go to referenced row in table '%1' + + + + + table '%1' + + + + + Referenced row (%1) + + + + + Trim pasted text? + + + + + The pasted text contains leading or trailing white space. Trim it automatically? + + + + + Paste "NULL" as null value? + + + + + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + + + + + Edit value + + + + + SqlTableModel + + + Error while committing new row: %1 + + + + + Error while deleting row from table %1: %2 + + + + + SqliteExtensionEditor + + + Filter extensions + + + + + Leave empty to use default function + + + + + Extension file + + + + + Initialization function + + + + + Databases + + + + + Register in all databases + + + + + Register in following databases: + + + + + Extension manager window has uncommitted modifications. + + + + + Extension manager + + + + + Commit all extension changes + + + + + Rollback all extension changes + + + + + Add new extension + + + + + Remove selected extension + + + + + Editing extensions manual + + + + + File with given path does not exist or is not readable. + + + + + Unable to load extension: %1 + + + + + Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. + + + + + Dynamic link libraries (*.dll);;All files (*) + + + + + Shared objects (*.so);;All files (*) + + + + + Dynamic libraries (*.dylib);;All files (*) + + + + + All files (*) + + + + + Open file + + + + + StatusField + + + Status + + + + + Copy + + + + + Clear + + + + + TableConstraintsModel + + + Type + table constraints + + + + + Details + table constraints + + + + + Name + table constraints + + + + + TableForeignKeyPanel + + + Foreign table: + + + + + Columns + + + + + Local column + + + + + Foreign column + + + + + Reactions + + + + + Deferred foreign key + + + + + Named constraint + + + + + Constraint name + + + + + Pick the foreign column. + + + + + Pick the foreign table. + + + + + Select at least one foreign column. + + + + + Enter a name of the constraint. + + + + + Foreign column + table constraints + + + + + TablePrimaryKeyAndUniquePanel + + + Columns + + + + + Column + + + + + Collation + + + + + Sort + + + + + Valid only for a single column with INTEGER data type + + + + + Autoincrement + + + + + Named constraint + + + + + Constraint name + + + + + On conflict + + + + + Collate + table constraints + + + + + Sort order + table constraints + + + + + Select at least one column. + + + + + Enter a name of the constraint. + + + + + TableStructureModel + + + Name + table structure columns + + + + + Data type + table structure columns + + + + + Primary +Key + table structure columns + + + + + Foreign +Key + table structure columns + + + + + Unique + table structure columns + + + + + Check + table structure columns + + + + + Not +NULL + table structure columns + + + + + Collate + table structure columns + + + + + Generated + table structure columns + + + + + Default value + table structure columns + + + + + TableWindow + + + Structure + + + + + Table name: + + + + + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + + + + + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + + + + + + Data + + + + + Constraints + + + + + Indexes + + + + + Triggers + + + + + DDL + + + + + Export table + table window + + + + + Import data to table + table window + + + + + Populate table + table window + + + + + Refresh structure + table window + + + + + Commit structure changes + table window + + + + + Rollback structure changes + table window + + + + + Add column + table window + + + + + Edit column + table window + + + + + + Delete column + table window + + + + + Move column up + table window + + + + + Move column down + table window + + + + + Create similar table + table window + + + + + Reset autoincrement value + table window + + + + + Add table constraint + table window + + + + + Edit table constraint + table window + + + + + Delete table constraint + table window + + + + + Move table constraint up + table window + + + + + Move table constraint down + table window + + + + + Add table primary key + table window + + + + + Add table foreign key + table window + + + + + Add table unique constraint + table window + + + + + Add table check constraint + table window + + + + + Refresh index list + table window + + + + + + Create index + table window + + + + + Edit index + table window + + + + + Delete index + table window + + + + + Refresh trigger list + table window + + + + + + Create trigger + table window + + + + + Edit trigger + table window + + + + + Delete trigger + table window + + + + + Are you sure you want to delete column '%1'? + table window + + + + + Following problems will take place while modifying the table. +Would you like to proceed? + table window + + + + + Table modification + table window + + + + + Could not load data for table %1. Error details: %2 + + + + + Could not process the %1 table correctly. Unable to open a table window. + + + + + Database + + + + + Could not restore window %1, because no database or table was stored in session for this window. + + + + + Could not restore window '%1', because no database or table was stored in session for this window. + + + + + Could not restore window '%1', because database %2 could not be resolved. + + + + + Could not restore window '%1', because the table %2 doesn't exist in the database %3. + + + + + + New table %1 + + + + + Committed changes for table '%1' successfully. + + + + + Committed changes for table '%1' (named before '%2') successfully. + + + + + Could not commit table structure. Error message: %1 + table window + + + + + Reset autoincrement + + + + + Are you sure you want to reset autoincrement value for table '%1'? + + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + + + + + Autoincrement value for table '%1' has been reset successfully. + + + + + Empty name + + + + + A blank name for the table is allowed in SQLite, but it is not recommended. +Are you sure you want to create a table with blank name? + + + + + Cannot create a table without at least one column. + + + + + Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. + + + + + Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. + + + + + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 + + + + + Are you sure you want to delete table constraint '%1'? + table window + + + + + Delete constraint + table window + + + + + Cannot export, because no export plugin is loaded. + + + + + Cannot import, because no import plugin is loaded. + + + + + Uncommitted changes + + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + + + + + Go back to structure tab + + + + + Commit modifications and browse data. + + + + + Name + table window indexes + + + + + Unique + table window indexes + + + + + Columns + table window indexes + + + + + Partial index condition + table window indexes + + + + + Name + table window triggers + + + + + Event + table window triggers + + + + + Condition + table window triggers + + + + + Details + table window triggers + + + + + Table window "%1" has uncommitted structure modifications and data. + + + + + Table window "%1" has uncommitted data. + + + + + Table window "%1" has uncommitted structure modifications. + + + + + TriggerColumnsDialog + + + Trigger columns + + + + + Triggering columns: + + + + + Select all + + + + + Deselect all + + + + + TriggerDialog + + + + Trigger + + + + + On table: + + + + + Action: + + + + + + <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> + + + + + Pre-condition: + + + + + The scope is still not fully supported by the SQLite database. + + + + + Trigger name: + + + + + When: + + + + + List of columns for UPDATE OF action. + + + + + Scope: + + + + + Code: + + + + + Trigger statements to be executed. + + + + + DDL + + + + + On view: + + + + + Could not process trigger %1 correctly. Unable to open a trigger dialog. + + + + + Enter a valid condition. + + + + + Enter a valid trigger code. + + + + + Error + trigger dialog + + + + + An error occurred while executing SQL statements: +%1 + + + + + VersionConvertSummaryDialog + + + Database version convert + + + + + Following changes to the SQL statements will be made: + + + + + Before + + + + + After + + + + + ViewWindow + + + Query + + + + + View name: + + + + + Output column names + + + + + + Data + + + + + Triggers + + + + + DDL + + + + + + Could not restore window '%1', because no database or view was stored in session for this window. + + + + + Could not restore window '%1', because database %2 could not be resolved. + + + + + Could not restore window '%1', because database %2 could not be open. + + + + + Could not restore window '%1', because the view %2 doesn't exist in the database %3. + + + + + + New view %1 + + + + + Database + + + + + Refresh the view + view window + + + + + Commit the view changes + view window + + + + + Rollback the view changes + view window + + + + + Explicit column names + + + + + Generate output column names automatically basing on result columns of the view. + + + + + Add column + view window + + + + + Edit column + view window + + + + + Delete column + view window + + + + + Move column up + view window + + + + + Move column down + view window + + + + + Refresh trigger list + view window + + + + + Create new trigger + view window + + + + + Edit selected trigger + view window + + + + + Delete selected trigger + view window + + + + + View window "%1" has uncommitted structure modifications and data. + + + + + View window "%1" has uncommitted data. + + + + + View window "%1" has uncommitted structure modifications. + + + + + Could not load data for view %1. Error details: %2 + + + + + Uncommitted changes + + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + + + + + Go back to structure tab + + + + + Commit modifications and browse data. + + + + + View '%1' was committed successfully. + + + + + Committed changes for view '%1' successfully. + + + + + Committed changes for view '%1' (named before '%2') successfully. + + + + + Could not commit view changes. Error message: %1 + view window + + + + + Override columns + + + + + Currently defined columns will be overriden. Do you want to continue? + + + + + Could not determinate columns returned from the view. The query is problably incomplete or contains errors. + + + + + Name + view window triggers + + + + + Instead of + view window triggers + + + + + Condition + view window triggers + + + + + Details + table window triggers + + + + + Could not process the %1 view correctly. Unable to open a view window. + + + + + Empty name + + + + + A blank name for the view is allowed in SQLite, but it is not recommended. +Are you sure you want to create a view with blank name? + + + + + The SELECT statement could not be parsed. Please correct the query and retry. +Details: %1 + + + + + The view could not be modified due to internal SQLiteStudio error. Please report this! + + + + + The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. + + + + + Following problems will take place while modifying the view. +Would you like to proceed? + view window + + + + + View modification + view window + + + + + WidgetCover + + + Interrupt + + + + diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_af_ZA.ts b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_af_ZA.ts new file mode 100644 index 0000000..cadd4bc --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_af_ZA.ts @@ -0,0 +1,7111 @@ + + + + + AboutDialog + + + About SQLiteStudio and licenses + About SQLiteStudio and licenses + + + + About + About + + + + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + + + + Licenses + Licenses + + + + Environment + Environment + + + + Icon directories + Icon directories + + + + Form directories + Form directories + + + + SQLite extension directories + SQLite extension directories + + + + Plugin directories + Plugin directories + + + + Configuration directory + Configuration directory + + + + Application directory + Application directory + + + + Qt version: + Qt version: + + + + SQLite 3 version: + SQLite 3 version: + + + + Portable distribution. + Portable distribution. + + + + MacOS X application bundle distribution. + MacOS X application bundle distribution. + + + + Operating system managed distribution. + Operating system managed distribution. + + + + <h3>Table of contents:</h3><ol>%2</ol> + <h3>Table of contents:</h3><ol>%2</ol> + + + + BindParamsDialog + + + Query parameters + Query parameters + + + + Please provide values for query parameters + Please provide values for query parameters + + + + CodeSnippetEditor + + + Filter snippets + Filter snippets + + + + + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + + + + + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + + + + Snippet name + Snippet name + + + + Code assistant shortcut + Code assistant shortcut + + + + Snippet code + Snippet code + + + + Code Snippets editor window has uncommitted modifications. + Code Snippets editor window has uncommitted modifications. + + + + Code Snippets editor + Code Snippets editor + + + + Commit all snippet changes + Commit all snippet changes + + + + Rollback all snippet changes + Rollback all snippet changes + + + + Create new snippet + Create new snippet + + + + Delete selected snippet + Delete selected snippet + + + + Move the snippet up + Move the snippet up + + + + Move the snippet down + Move the snippet down + + + + Code snippets manual + Code snippets manual + + + + Enter a non-empty, unique name of the snippet. + Enter a non-empty, unique name of the snippet. + + + + Enter a non-empty snippet content. + Enter a non-empty snippet content. + + + + This hotkey is not unique in context of a code assistant. + This hotkey is not unique in context of a code assistant. + + + + CollationsEditor + + + Filter collations + Filter collations + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Implementation code: + Implementation code: + + + + Collation name: + Collation name: + + + + Implementation language: + Implementation language: + + + + Collations editor + Collations editor + + + + Commit all collation changes + Commit all collation changes + + + + Rollback all collation changes + Rollback all collation changes + + + + Create new collation + Create new collation + + + + Delete selected collation + Delete selected collation + + + + Editing collations manual + Editing collations manual + + + + Enter a non-empty, unique name of the collation. + Enter a non-empty, unique name of the collation. + + + + Pick the implementation language. + Pick the implementation language. + + + + Enter a non-empty implementation code. + Enter a non-empty implementation code. + + + + Collations editor window has uncommitted modifications. + Collations editor window has uncommitted modifications. + + + + ColorButton + + + Pick a color + Pick a color + + + + ColumnCollatePanel + + + Collation name: + Collation name: + + + + Named constraint: + Named constraint: + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + Enter a collation name. + Enter a collation name. + + + + ColumnDefaultPanel + + + Default value: + Default value: + + + + Named constraint: + Named constraint: + + + + Enter a default value expression. + Enter a default value expression. + + + + Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. + Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. + + + + Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. + Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ColumnDialog + + + Column + Column + + + + Name and type + Name and type + + + + Scale + Scale + + + + Precision + Precision + + + + Data type: + Data type: + + + + Column name: + Column name: + + + + Size: + Size: + + + + Constraints + Constraints + + + + Generated value + Generated value + + + + Unique + Unique + + + + + + + + + + + Configure + Configure + + + + Foreign Key + Foreign Key + + + + Collate + Collate + + + + Not NULL + Not NULL + + + + Check condition + Check condition + + + + Primary Key + Primary Key + + + + Default + Default + + + + Advanced mode + Advanced mode + + + + Add constraint + column dialog + Add constraint + + + + Edit constraint + column dialog + Edit constraint + + + + + Delete constraint + column dialog + Delete constraint + + + + Move constraint up + column dialog + Move constraint up + + + + Move constraint down + column dialog + Move constraint down + + + + Add a primary key + column dialog + Add a primary key + + + + Add a foreign key + column dialog + Add a foreign key + + + + Add an unique constraint + column dialog + Add an unique constraint + + + + Add a check constraint + column dialog + Add a check constraint + + + + Add a not null constraint + column dialog + Add a not null constraint + + + + Add a collate constraint + column dialog + Add a collate constraint + + + + Add a generated value constraint + column dialog + Add a generated value constraint + + + + Add a default constraint + column dialog + Add a default constraint + + + + Are you sure you want to delete constraint '%1'? + column dialog + Are you sure you want to delete constraint '%1'? + + + + Correct the constraint's configuration. + Correct the constraint's configuration. + + + + Scale is not allowed for INTEGER PRIMARY KEY columns. + Scale is not allowed for INTEGER PRIMARY KEY columns. + + + + Precision cannot be defined without the scale. + Precision cannot be defined without the scale. + + + + Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. + Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. + + + + INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. + INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. + + + + Precision is not allowed for INTEGER PRIMARY KEY columns. + Precision is not allowed for INTEGER PRIMARY KEY columns. + + + + Could not match valid STRICT table datatype from declared type: %1. + Could not match valid STRICT table datatype from declared type: %1. + + + + ColumnDialogConstraintsModel + + + Type + column dialog constraints + Type + + + + Name + column dialog constraints + Name + + + + Details + column dialog constraints + Details + + + + ColumnForeignKeyPanel + + + Foreign table: + Foreign table: + + + + Foreign column: + Foreign column: + + + + Reactions + Reactions + + + + Deferred foreign key + Deferred foreign key + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + Pick the foreign table. + Pick the foreign table. + + + + Pick the foreign column. + Pick the foreign column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ColumnGeneratedPanel + + + Generating code: + Generating code: + + + + Explicit type: + Explicit type: + + + + Use "GENERATED ALWAYS" keywords + Use "GENERATED ALWAYS" keywords + + + + Named constraint: + Named constraint: + + + + Enter the column value generating expression. + Enter the column value generating expression. + + + + Invalid value generating expression: %1. + Invalid value generating expression: %1. + + + + Invalid value generating expression. + Invalid value generating expression. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ColumnPrimaryKeyPanel + + + Autoincrement + Autoincrement + + + + Sort order: + Sort order: + + + + Named constraint: + Named constraint: + + + + On conflict: + On conflict: + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + Descending order is not allowed with AUTOINCREMENT. + Descending order is not allowed with AUTOINCREMENT. + + + + ColumnUniqueAndNotNullPanel + + + Named constraint: + Named constraint: + + + + On conflict: + On conflict: + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + CompleterWindow + + + Column: %1 + completer statusbar + Column: %1 + + + + Table: %1 + completer statusbar + Table: %1 + + + + Index: %1 + completer statusbar + Index: %1 + + + + Trigger: %1 + completer statusbar + Trigger: %1 + + + + View: %1 + completer statusbar + View: %1 + + + + Database: %1 + completer statusbar + Database: %1 + + + + Keyword: %1 + completer statusbar + Keyword: %1 + + + + Function: %1 + completer statusbar + Function: %1 + + + + Operator: %1 + completer statusbar + Operator: %1 + + + + String + completer statusbar + String + + + + Number + completer statusbar + Number + + + + Binary data + completer statusbar + Binary data + + + + Collation: %1 + completer statusbar + Collation: %1 + + + + Pragma function: %1 + completer statusbar + Pragma function: %1 + + + + Insert a code snippet + Insert a code snippet + + + + ConfigDialog + + + + Configuration + Configuration + + + + Search + Search + + + + General + General + + + + Keyboard shortcuts + Keyboard shortcuts + + + + Look & feel + Look & feel + + + + Style + Style + + + + Fonts + Fonts + + + + Code colors + Code colors + + + + + Database list + Database list + + + + Code assistant + Code assistant + + + + Data browsing + Data browsing + + + + Data editors + Data editors + + + + Plugins + Plugins + + + + Code formatters + Code formatters + + + + If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. + If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. + + + + Sort table columns alphabetically + Sort table columns alphabetically + + + + Expand tables node when connected to a database + Expand tables node when connected to a database + + + + <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> + <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> + + + + Display additional labels on the list + Display additional labels on the list + + + + For regular tables labels will show number of columns, indexes and triggers for each of tables. + For regular tables labels will show number of columns, indexes and triggers for each of tables. + + + + Display labels for regular tables + Display labels for regular tables + + + + Virtual tables will be marked with a 'virtual' label. + Virtual tables will be marked with a 'virtual' label. + + + + Display labels for virtual tables + Display labels for virtual tables + + + + Expand views node when connected to a database + Expand views node when connected to a database + + + + If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) + If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) + + + + Sort objects (tables, indexes, triggers and views) alphabetically + Sort objects (tables, indexes, triggers and views) alphabetically + + + + Display system tables and indexes on the list + Display system tables and indexes on the list + + + + Database dialog window + Database dialog window + + + + <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> + <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> + + + + Do not mark database to be "permanent" by default + Do not mark database to be "permanent" by default + + + + <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> + <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> + + + + Try to bypass dialog completly when dropping database file onto the list + Try to bypass dialog completly when dropping database file onto the list + + + + Data browsing and editing + Data browsing and editing + + + + + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + + + + Number of memorized table populating configurations + Number of memorized table populating configurations + + + + Data column width + Data column width + + + + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + + + + Enlarge column when entering value longer than current width + Enlarge column when entering value longer than current width + + + + <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> + <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> + + + + Number of data rows per page: + Number of data rows per page: + + + + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> + + + + Show column and row details tooltip in data view + Show column and row details tooltip in data view + + + + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + + + + Keep NULL value when entering empty value + Keep NULL value when entering empty value + + + + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> + + + + Use DEFAULT value (if defined), when committing NULL value + Use DEFAULT value (if defined), when committing NULL value + + + + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + + + + Limit number of rows for in case of dozens of columns + Limit number of rows for in case of dozens of columns + + + + Inserting new row in data grid + Inserting new row in data grid + + + + Before currently selected row + Before currently selected row + + + + After currently selected row + After currently selected row + + + + At the end of data view + At the end of data view + + + + Table windows + Table windows + + + + <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> + <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> + + + + Open Table Windows with the data tab for start + Open Table Windows with the data tab for start + + + + <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> + <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> + + + + Place data tab as first tab in a Table Window + Place data tab as first tab in a Table Window + + + + View windows + View windows + + + + <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> + <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> + + + + Open View Windows with the data tab for start + Open View Windows with the data tab for start + + + + <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> + <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> + + + + Place data tab as first tab in a View Window + Place data tab as first tab in a View Window + + + + Data types + Data types + + + + Available editors: + Available editors: + + + + Editors selected for this data type: + Editors selected for this data type: + + + + Schema editing + Schema editing + + + + Number of DDL changes kept in history. + Number of DDL changes kept in history. + + + + DDL history size: + DDL history size: + + + + Don't show DDL preview dialog when committing schema changes + Don't show DDL preview dialog when committing schema changes + + + + SQL queries + SQL queries + + + + + Number of queries kept in the history. + Number of queries kept in the history. + + + + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> + + + + History size: + History size: + + + + + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> + + + + Execute only the query under the cursor + Execute only the query under the cursor + + + + Number of memorized query parameters + Number of memorized query parameters + + + + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + + + + Use scientific notation for real numbers in the grid view + Use scientific notation for real numbers in the grid view + + + + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + + + + Limit automatic data column width to (in pixels): + Limit automatic data column width to (in pixels): + + + + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + + + + Keep at least the width to show complete column name + Keep at least the width to show complete column name + + + + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + + + + Wrap lines in SQL editor + Wrap lines in SQL editor + + + + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + + + + Highlight current query + Highlight current query + + + + Updates + Updates + + + + Automatically check for updates at startup + Automatically check for updates at startup + + + + Session + Session + + + + Restore last session (active MDI windows) after startup + Restore last session (active MDI windows) after startup + + + + Allow multiple instances of the application at the same time + Allow multiple instances of the application at the same time + + + + Status Field + Status Field + + + + <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> + <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> + + + + Always open Status panel when new message is printed + Always open Status panel when new message is printed + + + + Code syntax colors + Code syntax colors + + + + Keyword foreground + Keyword foreground + + + + Regular foreground + Regular foreground + + + + String foreground + String foreground + + + + Comment foreground + Comment foreground + + + + Valid objects foreground + Valid objects foreground + + + + Current query background + Current query background + + + + Bind parameter foreground + Bind parameter foreground + + + + Current line background + Current line background + + + + Matched parenthesis background + Matched parenthesis background + + + + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + + + + Number foreground + Number foreground + + + + BLOB value foreground + BLOB value foreground + + + + Matched parenthesis foreground + Matched parenthesis foreground + + + + Reset to defaults + Reset to defaults + + + + Filter shortcuts by name or key combination + Filter shortcuts by name or key combination + + + + Action + Action + + + + Key combination + Key combination + + + + + Language + Language + + + + Changing language requires application restart to take effect. + Changing language requires application restart to take effect. + + + + Compact layout + Compact layout + + + + <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> + <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> + + + + Use compact layout + Use compact layout + + + + Main window dock areas + Main window dock areas + + + + Left and right areas occupy corners + Left and right areas occupy corners + + + + Top and bottom areas occupy corners + Top and bottom areas occupy corners + + + + Hide built-in plugins + Hide built-in plugins + + + + Current style: + Current style: + + + + Preview + Preview + + + + Enabled + Enabled + + + + Disabled + Disabled + + + + Active formatter plugin + Active formatter plugin + + + + SQL editor font + SQL editor font + + + + Database list font + Database list font + + + + Database list additional label font + Database list additional label font + + + + Data view font + Data view font + + + + Status field font + Status field font + + + + Code assistant settings + Code assistant settings + + + + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + + + + Automatically trigger the assistant after a dot is typed after an object name + Automatically trigger the assistant after a dot is typed after an object name + + + + Description: + plugin details + Description: + + + + Category: + plugin details + Category: + + + + Version: + plugin details + Version: + + + + Author: + plugin details + Author: + + + + Internal name: + plugin details + Internal name: + + + + Dependencies: + plugin details + Dependencies: + + + + Conflicts: + plugin details + Conflicts: + + + + Plugin details + Plugin details + + + + Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. + Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. + + + + %1 (built-in) + plugins manager in configuration dialog + %1 (built-in) + + + + Details + Details + + + + No plugins in this category. + No plugins in this category. + + + + Add new data type + Add new data type + + + + Rename selected data type + Rename selected data type + + + + Delete selected data type + Delete selected data type + + + + Help for configuring data type editors + Help for configuring data type editors + + + + Clear hotkey for this action + Clear hotkey for this action + + + + Restore original hotkey for this action + Restore original hotkey for this action + + + + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + + + + ConstraintCheckPanel + + + The condition + The condition + + + + Named constraint: + Named constraint: + + + + On conflict + On conflict + + + + Enter a valid condition. + Enter a valid condition. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ConstraintDialog + + + New constraint + constraint dialog + New constraint + + + + Create + constraint dialog + Create + + + + Edit constraint + dialog window + Edit constraint + + + + Apply + constraint dialog + Apply + + + + Primary key + table constraints + Primary key + + + + Foreign key + table constraints + Foreign key + + + + Unique + table constraints + Unique + + + + Not NULL + table constraints + Not NULL + + + + Check + table constraints + Check + + + + Generated + table constraints + Generated + + + + Collate + table constraints + Collate + + + + Default + table constraints + Default + + + + ConstraintTabModel + + + Table + table constraints + Table + + + + Column (%1) + table constraints + Column (%1) + + + + Scope + table constraints + Scope + + + + Type + table constraints + Type + + + + Details + table constraints + Details + + + + Name + table constraints + Name + + + + CssDebugDialog + + + SQLiteStudio CSS console + SQLiteStudio CSS console + + + + DataView + + + Filter data + data view + Filter data + + + + Grid view + Grid view + + + + Form view + Form view + + + + Refresh table data + data view + Refresh table data + + + + First page + data view + First page + + + + Previous page + data view + Previous page + + + + Next page + data view + Next page + + + + Last page + data view + Last page + + + + Commit changes for selected cells + data view + Commit changes for selected cells + + + + Rollback changes for selected cells + data view + Rollback changes for selected cells + + + + Show grid view of results + data view + Show grid view of results + + + + Show form view of results + data view + Show form view of results + + + + Filter by text (if contains) + data view + Filter by text (if contains) + + + + Filter strictly by text (if equals) + data view + Filter strictly by text (if equals) + + + + Tabs on top + data view + Tabs on top + + + + Tabs at bottom + data view + Tabs at bottom + + + + Place new rows above selected row + data view + Place new rows above selected row + + + + Place new rows below selected row + data view + Place new rows below selected row + + + + Place new rows at the end of the data view + data view + Place new rows at the end of the data view + + + + Total number of rows is being counted. +Browsing other pages will be possible after the row counting is done. + Total number of rows is being counted. +Browsing other pages will be possible after the row counting is done. + + + + Row: %1 + Row: %1 + + + + Filter + Filter + + + + Hit Enter key or press "Apply filter" button on toolbar to apply new value. + Hit Enter key or press "Apply filter" button on toolbar to apply new value. + + + + Filter by the Regular Expression + data view + Filter by the Regular Expression + + + + Filter by SQL expression + data view + Filter by SQL expression + + + + Show filter inputs per column + data view + Show filter inputs per column + + + + Apply filter + data view + Apply filter + + + + DbDialog + + + Database + Database + + + + Database type + Database type + + + + Database driver + Database driver + + + + + File + File + + + + Name (on the list) + Name (on the list) + + + + Options + Options + + + + <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> + aasfd + <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> + + + + Permanent (keep it in configuration) + Permanent (keep it in configuration) + + + + Test connection + Test connection + + + + Select new or existing file on local computer + Select new or existing file on local computer + + + + Browse + Browse + + + + Database type not selected. + Database type not selected. + + + + Database path not specified. + Database path not specified. + + + + Enter an unique database name. + Enter an unique database name. + + + + This name is already in use. Please enter unique name. + This name is already in use. Please enter unique name. + + + + <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> + <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> + + + + Enter a database file path. + Enter a database file path. + + + + This database is already on the list under name: %1 + This database is already on the list under name: %1 + + + + Select a database type. + Select a database type. + + + + DbObjectDialogs + + + Delete table + Delete table + + + + Are you sure you want to delete table %1? + Are you sure you want to delete table %1? + + + + Delete index + Delete index + + + + Are you sure you want to delete index %1? + Are you sure you want to delete index %1? + + + + Delete trigger + Delete trigger + + + + Are you sure you want to delete trigger %1? + Are you sure you want to delete trigger %1? + + + + Delete view + Delete view + + + + Are you sure you want to delete view %1? + Are you sure you want to delete view %1? + + + + + Error while dropping %1: %2 + Error while dropping %1: %2 + + + + Delete objects + Delete objects + + + + Are you sure you want to delete following objects: +%1 + Are you sure you want to delete following objects: +%1 + + + + Cannot start transaction. Details: %1 + Cannot start transaction. Details: %1 + + + + Cannot commit transaction. Details: %1 + Cannot commit transaction. Details: %1 + + + + DbTree + + + Databases + Databases + + + + Filter by name + Filter by name + + + + Copy + Copy + + + + Paste + Paste + + + + Select all + Select all + + + + Create a group + Create a group + + + + Delete the group + Delete the group + + + + Rename the group + Rename the group + + + + &Add a database + &Add a database + + + + &Edit the database + &Edit the database + + + + &Remove the database + &Remove the database + + + + &Connect to the database + &Connect to the database + + + + &Disconnect from the database + &Disconnect from the database + + + + Import + Import + + + + &Export the database + &Export the database + + + + Vac&uum + Vac&uum + + + + &Integrity check + &Integrity check + + + + Create a &table + Create a &table + + + + Edit the t&able + Edit the t&able + + + + Delete the ta&ble + Delete the ta&ble + + + + Export the table + Export the table + + + + Import into the table + Import into the table + + + + Populate table + Populate table + + + + Create similar table + Create similar table + + + + Reset autoincrement sequence + Reset autoincrement sequence + + + + Create an &index + Create an &index + + + + Edit the i&ndex + Edit the i&ndex + + + + Delete the in&dex + Delete the in&dex + + + + Create a trig&ger + Create a trig&ger + + + + Edit the trigg&er + Edit the trigg&er + + + + Delete the trigge&r + Delete the trigge&r + + + + Create a &view + Create a &view + + + + Edit the v&iew + Edit the v&iew + + + + Delete the vi&ew + Delete the vi&ew + + + + Add a column + Add a column + + + + Edit the column + Edit the column + + + + Delete the column + Delete the column + + + + Delete selected items + Delete selected items + + + + Clear filter + Clear filter + + + + &Refresh all database schemas + &Refresh all database schemas + + + + Re&fresh selected database schema + Re&fresh selected database schema + + + + + Erase table data + Erase table data + + + + Open file's directory + Open file's directory + + + + Execute SQL from file + Execute SQL from file + + + + Increase font size + database list + Increase font size + + + + Decrease font size + database list + Decrease font size + + + + + Database + Database + + + + Grouping + Grouping + + + + Generate query for table + Generate query for table + + + + + Create group + Create group + + + + Group name + Group name + + + + Entry with name %1 already exists in group %2. + Entry with name %1 already exists in group %2. + + + + Delete group + Delete group + + + + Are you sure you want to delete group %1? +All objects from this group will be moved to parent group. + Are you sure you want to delete group %1? +All objects from this group will be moved to parent group. + + + + Are you sure you want to remove database '%1' from the list? + Are you sure you want to remove database '%1' from the list? + + + + Are you sure you want to remove following databases from the list: +%1 + Are you sure you want to remove following databases from the list: +%1 + + + + Remove database + Remove database + + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Vacuum (%1) + Vacuum (%1) + + + + Integrity check (%1) + Integrity check (%1) + + + + Reset autoincrement + Reset autoincrement + + + + Are you sure you want to reset autoincrement value for table '%1'? + Are you sure you want to reset autoincrement value for table '%1'? + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + An error occurred while trying to reset autoincrement value for table '%1': %2 + + + + Autoincrement value for table '%1' has been reset successfully. + Autoincrement value for table '%1' has been reset successfully. + + + + Are you sure you want to delete all data from table(s): %1? + Are you sure you want to delete all data from table(s): %1? + + + + An error occurred while trying to delete data from table '%1': %2 + An error occurred while trying to delete data from table '%1': %2 + + + + All data has been deleted for table '%1'. + All data has been deleted for table '%1'. + + + + Following objects will be deleted: %1. + Following objects will be deleted: %1. + + + + Following databases will be removed from list: %1. + Following databases will be removed from list: %1. + + + + Remainig objects from deleted group will be moved in place where the group used to be. + Remainig objects from deleted group will be moved in place where the group used to be. + + + + %1<br><br>Are you sure you want to continue? + %1<br><br>Are you sure you want to continue? + + + + Delete objects + Delete objects + + + + DbTreeItemDelegate + + + error + dbtree labels + error + + + + (system table) + database tree label + (system table) + + + + (virtual) + virtual table label + (virtual) + + + + (system index) + database tree label + (system index) + + + + DbTreeModel + + + Database: %1 + dbtree tooltip + Database: %1 + + + + URI: + dbtree tooltip + URI: + + + + Version: + dbtree tooltip + Version: + + + + File size: + dbtree tooltip + File size: + + + + Encoding: + dbtree tooltip + Encoding: + + + + Error: + dbtree tooltip + Error: + + + + Table : %1 + dbtree tooltip + Table : %1 + + + + Columns (%1): + dbtree tooltip + Columns (%1): + + + + Indexes (%1): + dbtree tooltip + Indexes (%1): + + + + Triggers (%1): + dbtree tooltip + Triggers (%1): + + + + Copy + Copy + + + + Move + Move + + + + Include data + Include data + + + + Include indexes + Include indexes + + + + Include triggers + Include triggers + + + + Abort + Abort + + + + Could not add dropped database file '%1' automatically. Manual setup is necessary. + Could not add dropped database file '%1' automatically. Manual setup is necessary. + + + + Referenced tables + Referenced tables + + + + Do you want to include following referenced tables as well: +%1 + Do you want to include following referenced tables as well: +%1 + + + + Name conflict + Name conflict + + + + Following object already exists in the target database. +Please enter new, unique name, or press '%1' to abort the operation: + Following object already exists in the target database. +Please enter new, unique name, or press '%1' to abort the operation: + + + + SQL statements conversion + SQL statements conversion + + + + Following error occurred while converting SQL statements to the target SQLite version: + Following error occurred while converting SQL statements to the target SQLite version: + + + + Would you like to ignore those errors and proceed? + Would you like to ignore those errors and proceed? + + + + DdlHistoryWindow + + + Filter by database: + Filter by database: + + + + Clear entire history + Clear entire history + + + + -- Queries executed on database %1 (%2) +-- Date and time of execution: %3 +%4 + -- Queries executed on database %1 (%2) +-- Date and time of execution: %3 +%4 + + + + Clear history + Clear history + + + + Are you sure you want to erase entire DDL history? + Are you sure you want to erase entire DDL history? + + + + DDL history + DDL history + + + + DdlPreviewDialog + + + Queries to be executed + Queries to be executed + + + + Don't show again + Don't show again + + + + DebugConsole + + + SQLiteStudio Debug Console + SQLiteStudio Debug Console + + + + EditorWindow + + + SQL editor + SQL editor + + + + Query + Query + + + + History + History + + + + Results in the separate tab + Results in the separate tab + + + + Results below the query + Results below the query + + + + + SQL editor %1 + SQL editor %1 + + + + + Results + Results + + + + Execute query + Execute query + + + + Explain query + Explain query + + + + Clear execution history + sql editor + Clear execution history + + + + Export results + sql editor + Export results + + + + Create view from query + sql editor + Create view from query + + + + Previous database + Previous database + + + + Next database + Next database + + + + Show next tab + sql editor + Show next tab + + + + Show previous tab + sql editor + Show previous tab + + + + Focus results below + sql editor + Focus results below + + + + Focus SQL editor above + sql editor + Focus SQL editor above + + + + Delete selected SQL history entries + sql editor + Delete selected SQL history entries + + + + Execute single query under cursor + Execute single query under cursor + + + + Execute all queries in editor + Execute all queries in editor + + + + Active database (%1/%2) + Active database (%1/%2) + + + + Query finished in %1 second(s). Rows affected: %2 + Query finished in %1 second(s). Rows affected: %2 + + + + Query finished in %1 second(s). + Query finished in %1 second(s). + + + + Clear execution history + Clear execution history + + + + Are you sure you want to erase the entire SQL execution history? This cannot be undone. + Are you sure you want to erase the entire SQL execution history? This cannot be undone. + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + No database selected in the SQL editor. Cannot create a view for unknown database. + No database selected in the SQL editor. Cannot create a view for unknown database. + + + + Editor window "%1" has uncommitted data. + Editor window "%1" has uncommitted data. + + + + ErrorsConfirmDialog + + + Errors + Errors + + + + Following errors occured: + Following errors occured: + + + + Would you like to proceed? + Would you like to proceed? + + + + ExecFromFileDialog + + + Execute SQL from file + Execute SQL from file + + + + Input file + Input file + + + + Path to file + Path to file + + + + Browse for file + Browse for file + + + + Options + Options + + + + File encoding + File encoding + + + + Skip failing SQL statements + Skip failing SQL statements + + + + SQL scripts (*.sql);;All files (*) + SQL scripts (*.sql);;All files (*) + + + + Execute SQL file + Execute SQL file + + + + Please provide file to be executed. + Please provide file to be executed. + + + + Provided file does not exist or cannot be read. + Provided file does not exist or cannot be read. + + + + ExportDialog + + + Export + Export + + + + What do you want to export? + What do you want to export? + + + + A database + A database + + + + A single table + A single table + + + + Query results + Query results + + + + Table to export + Table to export + + + + Database + Database + + + + Table + Table + + + + Options + Options + + + + When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. + When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. + + + + Export table data + Export table data + + + + Export table indexes + Export table indexes + + + + Export table triggers + Export table triggers + + + + Note, that exporting table indexes and triggers may be unsupported by some output formats. + Note, that exporting table indexes and triggers may be unsupported by some output formats. + + + + Select database objects to export + Select database objects to export + + + + Export data from tables + Export data from tables + + + + Select all + Select all + + + + Deselect all + Deselect all + + + + + Database: + Database: + + + + Query to export results for + Query to export results for + + + + Query to be executed for results: + Query to be executed for results: + + + + Export format and options + Export format and options + + + + Export format + Export format + + + + Output + Output + + + + Exported file path + Exported file path + + + + Clipboard + Clipboard + + + + File + File + + + + Exported text encoding: + Exported text encoding: + + + + Export format options + Export format options + + + + Cancel + Cancel + + + + + + Select database to export. + Select database to export. + + + + Select table to export. + Select table to export. + + + + Enter valid query to export. + Enter valid query to export. + + + + Select at least one object to export. + Select at least one object to export. + + + + You must provide a file name to export to. + You must provide a file name to export to. + + + + Path you provided is an existing directory. You cannot overwrite it. + Path you provided is an existing directory. You cannot overwrite it. + + + + The directory '%1' does not exist. + The directory '%1' does not exist. + + + + The file '%1' exists and will be overwritten. + The file '%1' exists and will be overwritten. + + + + All files (*) + All files (*) + + + + Pick file to export to + Pick file to export to + + + + Internal error during export. This is a bug. Please report it. + Internal error during export. This is a bug. Please report it. + + + + FileExecErrorsDialog + + + Execution errors + Execution errors + + + + Following errors were encountered during execution of SQL statements from the file: + Following errors were encountered during execution of SQL statements from the file: + + + + SQL + SQL + + + + Error + Error + + + + Statements that were executed successfully were commited. + Statements that were executed successfully were commited. + + + + Statements that were executed successfully were rolled back. + Statements that were executed successfully were rolled back. + + + + FkComboBox + + + Cannot edit this cell. Details: %1 + Cannot edit this cell. Details: %1 + + + + FontEdit + + + Choose font + font configuration + Choose font + + + + Form + + + Active SQL formatter plugin + Active SQL formatter plugin + + + + FormView + + + Commit row + form view + Commit row + + + + Rollback row + form view + Rollback row + + + + First row + form view + First row + + + + Previous row + form view + Previous row + + + + Next row + form view + Next row + + + + Last row + form view + Last row + + + + Insert new row + form view + Insert new row + + + + Delete current row + form view + Delete current row + + + + FunctionsEditor + + + Filter functions + Filter functions + + + + Input arguments + Input arguments + + + + Undefined + Undefined + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Type: + Type: + + + + Function name: + Function name: + + + + Implementation language: + Implementation language: + + + + Deterministic + Deterministic + + + + Initialization code: + Initialization code: + + + + + Function implementation code: + Function implementation code: + + + + Final step implementation code: + Final step implementation code: + + + + SQL functions editor + SQL functions editor + + + + Commit all function changes + Commit all function changes + + + + Rollback all function changes + Rollback all function changes + + + + Create new function + Create new function + + + + Delete selected function + Delete selected function + + + + Custom SQL functions manual + Custom SQL functions manual + + + + Add function argument + Add function argument + + + + Rename function argument + Rename function argument + + + + Delete function argument + Delete function argument + + + + Move function argument up + Move function argument up + + + + Move function argument down + Move function argument down + + + + Scalar + Scalar + + + + Aggregate + Aggregate + + + + Enter a non-empty, unique name of the function. + Enter a non-empty, unique name of the function. + + + + Pick the implementation language. + Pick the implementation language. + + + + Per step code: + Per step code: + + + + Enter a non-empty implementation code. + Enter a non-empty implementation code. + + + + argument + new function argument name in function editor window + argument + + + + Functions editor window has uncommitted modifications. + Functions editor window has uncommitted modifications. + + + + ImportDialog + + + Import data + Import data + + + + Table to import to + Table to import to + + + + Table + Table + + + + Database + Database + + + + Data source to import from + Data source to import from + + + + Data source type + Data source type + + + + Options + Options + + + + Text encoding: + Text encoding: + + + + Input file: + Input file: + + + + <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> + <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> + + + + Ignore errors + Ignore errors + + + + Data source options + Data source options + + + + Cancel + Cancel + + + + If you type table name that doesn't exist, it will be created. + If you type table name that doesn't exist, it will be created. + + + + Enter the table name + Enter the table name + + + + Select import plugin. + Select import plugin. + + + + You must provide a file to import from. + You must provide a file to import from. + + + + The file '%1' does not exist. + The file '%1' does not exist. + + + + Path you provided is a directory. A regular file is required. + Path you provided is a directory. A regular file is required. + + + + Pick file to import from + Pick file to import from + + + + IndexDialog + + + + Index + Index + + + + Column + Column + + + + Sort + Sort + + + + Collation + Collation + + + + On table: + On table: + + + + Delete selected indexed expression + Delete selected indexed expression + + + + Moves selected index column up in the order, making it more significant in the index. + Moves selected index column up in the order, making it more significant in the index. + + + + Moves selected index column down in the order, making it less significant in the index. + Moves selected index column down in the order, making it less significant in the index. + + + + Partial index condition + Partial index condition + + + + Unique index + Unique index + + + + Index name: + Index name: + + + + Edit selected indexed expression + Edit selected indexed expression + + + + Add indexed expression + Add indexed expression + + + + DDL + DDL + + + + Tried to open index dialog for closed or inexisting database. + Tried to open index dialog for closed or inexisting database. + + + + Could not process index %1 correctly. Unable to open an index dialog. + Could not process index %1 correctly. Unable to open an index dialog. + + + + Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. + Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. + + + + Pick the table for the index. + Pick the table for the index. + + + + Select at least one column. + Select at least one column. + + + + Enter a valid condition. + Enter a valid condition. + + + + default + index dialog + default + + + + Sort order + table constraints + Sort order + + + + + Error + index dialog + Error + + + + Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? + Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? + + + + An error occurred while executing SQL statements: +%1 + An error occurred while executing SQL statements: +%1 + + + + IndexExprColumnDialog + + + Indexed expression + Indexed expression + + + + Expression to index + Expression to index + + + + This expression is already indexed by the index. + This expression is already indexed by the index. + + + + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. + + + + Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. + Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. + + + + It's forbidden to use 'SELECT' statements in indexed expressions. + It's forbidden to use 'SELECT' statements in indexed expressions. + + + + Enter an indexed expression. + Enter an indexed expression. + + + + Invalid expression. + Invalid expression. + + + + LanguageDialog + + + Language + Language + + + + Please choose language: + Please choose language: + + + + MainWindow + + + Database toolbar + Database toolbar + + + + Structure toolbar + Structure toolbar + + + + Tools + Tools + + + + Window list + Window list + + + + View toolbar + View toolbar + + + + Configuration widgets + Configuration widgets + + + + Syntax highlighting engines + Syntax highlighting engines + + + + Data editors + Data editors + + + + Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. + Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. + + + + Running in debug mode. Debug messages are printed to the standard output. + Running in debug mode. Debug messages are printed to the standard output. + + + + You need to restart application to make the language change take effect. + You need to restart application to make the language change take effect. + + + + Open SQL &editor + Open SQL &editor + + + + Open DDL &history + Open DDL &history + + + + Open SQL &functions editor + Open SQL &functions editor + + + + Open code &snippets editor + Open code &snippets editor + + + + Open &collations editor + Open &collations editor + + + + Open ex&tension manager + Open ex&tension manager + + + + &Import + &Import + + + + E&xport + E&xport + + + + Open confi&guration dialog + Open confi&guration dialog + + + + &Tile windows + &Tile windows + + + + Tile windows &horizontally + Tile windows &horizontally + + + + Tile windows &vertically + Tile windows &vertically + + + + &Cascade windows + &Cascade windows + + + + Next window + Next window + + + + Previous window + Previous window + + + + Hide status field + Hide status field + + + + Close &all windows + Close &all windows + + + + Re&store recently closed window + Re&store recently closed window + + + + Close current &window + Close current &window + + + + Close &other windows + Close &other windows + + + + Close windows on the &left + Close windows on the &left + + + + Close windows on the &right + Close windows on the &right + + + + Re&name selected window + Re&name selected window + + + + Open Debug Console + Open Debug Console + + + + Open CSS Console + Open CSS Console + + + + Report a &bug + Report a &bug + + + + D&onate + D&onate + + + + Propose a new &feature + Propose a new &feature + + + + &About + &About + + + + &Licenses + &Licenses + + + + Open home &page + Open home &page + + + + User &Manual + User &Manual + + + + SQLite &documentation + SQLite &documentation + + + + Bugs and feature &requests + Bugs and feature &requests + + + + Quit + Quit + + + + Check for &updates + Check for &updates + + + + &Database + menubar + &Database + + + + &Structure + menubar + &Structure + + + + &View + menubar + &View + + + + Window list + menubar view menu + Window list + + + + &Tools + menubar + &Tools + + + + &Help + &Help + + + + Could not set style: %1 + main window + Could not set style: %1 + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + Rename window + Rename window + + + + Enter new name for the window: + Enter new name for the window: + + + + New updates are available. <a href="%1">Click here for details</a>. + New updates are available. <a href="%1">Click here for details</a>. + + + + You're running the most recent version. No updates are available. + You're running the most recent version. No updates are available. + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + Database passed in command line parameters (%1) was already on the list under name: %2 + + + + Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 + Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + MdiWindow + + + Uncommitted changes + Uncommitted changes + + + + Close anyway + Close anyway + + + + Don't close + Don't close + + + + MultiEditor + + + Null value + multieditor + Null value + + + + Configure editors for this data type + Configure editors for this data type + + + + Open another tab + Open another tab + + + + Foreign Key + Foreign Key + + + + Data editor plugin '%1' not loaded, while it is defined for editing '%2' data type. + Data editor plugin '%1' not loaded, while it is defined for editing '%1' data type. {1'?} {2'?} {1' or 2'?} + + + + Deleted + multieditor + Deleted + + + + Read only + multieditor + Read only + + + + MultiEditorBoolPlugin + + + Boolean + Boolean + + + + MultiEditorDatePlugin + + + Date + Date + + + + MultiEditorDateTimePlugin + + + Date & time + Date & time + + + + MultiEditorHexPlugin + + + Hex + Hex + + + + MultiEditorNumericPlugin + + + Number + numeric multi editor tab name + Number + + + + MultiEditorText + + + Tab changes focus + Tab changes focus + + + + Cut + Cut + + + + Copy + Copy + + + + Paste + Paste + + + + Delete + Delete + + + + Undo + Undo + + + + Redo + Redo + + + + MultiEditorTextPlugin + + + Text + Text + + + + MultiEditorTimePlugin + + + Time + Time + + + + NewConstraintDialog + + + New constraint + New constraint + + + + + Primary Key + new constraint dialog + Primary Key + + + + + Foreign Key + new constraint dialog + Foreign Key + + + + + Unique + new constraint dialog + Unique + + + + + Check + new constraint dialog + Check + + + + Not NULL + new constraint dialog + Not NULL + + + + Collate + new constraint dialog + Collate + + + + Generated + new constraint dialog + Generated + + + + Default + new constraint dialog + Default + + + + NewVersionDialog + + + SQLiteStudio updates + SQLiteStudio updates + + + + New version is available! + New version is available! + + + + Download new version! + Download new version! + + + + New version package will be downloaded. It will be up to you to install it whenever you're ready. + New version package will be downloaded. It will be up to you to install it whenever you're ready. + + + + Open SQLiteStudio home page. + Open SQLiteStudio home page. + + + + Read release notes && download package yourself. + Read release notes && download package yourself. + + + + Just close this window. + Just close this window. + + + + Check for updates on startup + Check for updates on startup + + + + Not now. + Not now. + + + + PopulateConfigDialog + + + Populating configuration + Populating configuration + + + + Configuring <b>%1</b> for column <b>%2</b> + Configuring <b>%1</b> for column <b>%2</b> + + + + PopulateDialog + + + Populate table + Populate table + + + + Database + Database + + + + Table + Table + + + + Columns + Columns + + + + Number of rows to populate: + Number of rows to populate: + + + + Populate + populate dialog button + Populate + + + + Abort + Abort + + + + Configure + Configure + + + + Populating configuration for this column is invalid or incomplete. + Populating configuration for this column is invalid or incomplete. + + + + Select database with table to populate + Select database with table to populate + + + + Select table to populate + Select table to populate + + + + You have to select at least one column. + You have to select at least one column. + + + + QObject + + + Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). + Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). + + + + The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. + The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. + + + + Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. + Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. + + + + Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. + Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. + + + + Cannot edit results of query other than %1. + Cannot edit results of query other than %1. + + + + Cannot edit columns that are result of aggregated %1 statements. + Cannot edit columns that are result of aggregated %1 statements. + + + + Cannot edit columns that are result of %1 statement. + Cannot edit columns that are result of %1 statement. + + + + Cannot edit columns that are result of common table expression statement (%1). + Cannot edit columns that are result of common table expression statement (%1). + + + + Cannot edit table generated columns. + Cannot edit table generated columns. + + + + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). + + + + + + + on conflict: %1 + data view tooltip + on conflict: %1 + + + + references table %1, column %2 + data view tooltip + references table %1, column %2 + + + + condition: %1 + data view tooltip + condition: %1 + + + + collation name: %1 + data view tooltip + collation name: %1 + + + + Data grid view + Data grid view + + + + Edit current cell inline + Edit current cell inline + + + + Copy cell(s) contents to clipboard + Copy cell(s) contents to clipboard + + + + Copy cell(s) contents together with header to clipboard + Copy cell(s) contents together with header to clipboard + + + + Paste cell(s) contents from clipboard + Paste cell(s) contents from clipboard + + + + Set empty value to selected cell(s) + Set empty value to selected cell(s) + + + + Set NULL value to selected cell(s) + Set NULL value to selected cell(s) + + + + Commit changes to cell(s) contents + Commit changes to cell(s) contents + + + + Rollback changes to cell(s) contents + Rollback changes to cell(s) contents + + + + Delete selected data row + Delete selected data row + + + + Insert new data row + Insert new data row + + + + Open contents of selected cell in a separate editor + Open contents of selected cell in a separate editor + + + + Toggle the height adjustment of rows + Toggle the height adjustment of rows + + + + Increase font size + data view + Increase font size + + + + Decrease font size + data view + Decrease font size + + + + Total pages available: %1 + Total pages available: %1 + + + + Total rows loaded: %1 + Total rows loaded: %1 + + + + Data view (both grid and form) + Data view (both grid and form) + + + + Refresh data + Refresh data + + + + Switch to grid view of the data + Switch to grid view of the data + + + + Switch to form view of the data + Switch to form view of the data + + + + Database list + Database list + + + + Delete selected item + Delete selected item + + + + Clear filter contents + Clear filter contents + + + + Refresh schema + Refresh schema + + + + Refresh all schemas + Refresh all schemas + + + + Add database + Add database + + + + Select all items + Select all items + + + + Copy selected item(s) + Copy selected item(s) + + + + + + Paste from clipboard + Paste from clipboard + + + + Increase font size + database list + Increase font size + + + + Decrease font size + database list + Decrease font size + + + + Tables + Tables + + + + Indexes + Indexes + + + + Triggers + Triggers + + + + Views + Views + + + + Columns + Columns + + + + Data form view + Data form view + + + + Commit changes for current row + Commit changes for current row + + + + Rollback changes for current row + Rollback changes for current row + + + + Go to first row on current page + Go to first row on current page + + + + Go to next row + Go to next row + + + + Go to previous row + Go to previous row + + + + Go to last row on current page + Go to last row on current page + + + + Insert new row + Insert new row + + + + Delete current row + Delete current row + + + + Main window + Main window + + + + Open SQL editor + Open SQL editor + + + + Open DDL history window + Open DDL history window + + + + Open snippets editor window + Open snippets editor window + + + + Open function editor window + Open function editor window + + + + Open collation editor window + Open collation editor window + + + + Open extension manager window + Open extension manager window + + + + Previous window + Previous window + + + + Next window + Next window + + + + Hide status area + Hide status area + + + + Open user manual + Open user manual + + + + Open configuration dialog + Open configuration dialog + + + + Open Debug Console + Open Debug Console + + + + Open CSS Console + Open CSS Console + + + + Open the About dialog + Open the About dialog + + + + Quit the application + Quit the application + + + + Cell text value editor + Cell text value editor + + + + + Cut selected text + Cut selected text + + + + + Copy selected text + Copy selected text + + + + + Delete selected text + Delete selected text + + + + + Undo + Undo + + + + + Redo + Redo + + + + SQL editor input field + SQL editor input field + + + + Select whole editor contents + Select whole editor contents + + + + Save contents into a file + Save contents into a file + + + + Load contents from a file + Load contents from a file + + + + Find in text + Find in text + + + + Find next + Find next + + + + Find previous + Find previous + + + + Replace in text + Replace in text + + + + Delete current line + Delete current line + + + + Request code assistant + Request code assistant + + + + Format contents + Format contents + + + + Move selected block of text one line down + Move selected block of text one line down + + + + Move selected block of text one line up + Move selected block of text one line up + + + + Copy selected block of text and paste it a line below + Copy selected block of text and paste it a line below + + + + Copy selected block of text and paste it a line above + Copy selected block of text and paste it a line above + + + + Toggle comment + Toggle comment + + + + Increase font size + sql editor + Increase font size + + + + Decrease font size + sql editor + Decrease font size + + + + All SQLite databases + All SQLite databases + + + + All files + All files + + + + Select database file + Select database file + + + + Select + Select + + + + File type + File type + + + + SQL editor window + SQL editor window + + + + Execute query + Execute query + + + + Execute single query under cursor + Execute single query under cursor + + + + Execute all queries in editor + Execute all queries in editor + + + + Execute "%1" query + Execute "%1" query + + + + Switch current working database to previous on the list + Switch current working database to previous on the list + + + + Switch current working database to next on the list + Switch current working database to next on the list + + + + Go to next editor tab + Go to next editor tab + + + + Go to previous editor tab + Go to previous editor tab + + + + Move keyboard input focus to the results view below + Move keyboard input focus to the results view below + + + + Move keyboard input focus to the SQL editor above + Move keyboard input focus to the SQL editor above + + + + Delete selected SQL history entries + Delete selected SQL history entries + + + + Table window + Table window + + + + Commit the table structure + Commit the table structure + + + + Rollback pending changes in the table structure + Rollback pending changes in the table structure + + + + Refresh table structure + Refresh table structure + + + + Add new column + Add new column + + + + Edit selected column + Edit selected column + + + + Delete selected column + Delete selected column + + + + Export table data + Export table data + + + + Import data to the table + Import data to the table + + + + Add new table constraint + Add new table constraint + + + + Edit selected table constraint + Edit selected table constraint + + + + Delete selected table constraint + Delete selected table constraint + + + + Refresh table index list + Refresh table index list + + + + Add new index + Add new index + + + + Edit selected index + Edit selected index + + + + Delete selected index + Delete selected index + + + + Refresh table trigger list + Refresh table trigger list + + + + + Add new trigger + Add new trigger + + + + + Edit selected trigger + Edit selected trigger + + + + + Delete selected trigger + Delete selected trigger + + + + + Go to next tab + Go to next tab + + + + + Go to previous tab + Go to previous tab + + + + A view window + A view window + + + + Commit the view's query + Commit the view's query + + + + Rollback pending changes in the view's query + Rollback pending changes in the view's query + + + + Refresh view trigger list + Refresh view trigger list + + + + Execute the view's query + Execute the view's query + + + + A code snippets editor window + A code snippets editor window + + + + + + + Commit the pending changes + Commit the pending changes + + + + + + + Rollback the pending changes + Rollback the pending changes + + + + A collation editor window + A collation editor window + + + + A function editor window + A function editor window + + + + A SQLite extension editor window + A SQLite extension editor window + + + + QuitConfirmDialog + + + Uncommitted changes + Uncommitted changes + + + + Are you sure you want to quit the application? + +Following items are pending: + Are you sure you want to quit the application? + +Following items are pending: + + + + SearchTextDialog + + + Find or replace + Find or replace + + + + Find: + Find: + + + + Case sensitive + Case sensitive + + + + Search backwards + Search backwards + + + + Regular expression matching + Regular expression matching + + + + Replace && +find next + Replace && +find next + + + + Replace with: + Replace with: + + + + Replace all + Replace all + + + + Find + Find + + + + SortDialog + + + Sort by columns + Sort by columns + + + + + Column + Column + + + + + Order + Order + + + + Sort by: %1 + Sort by: %1 + + + + Move column up + Move column up + + + + Move column down + Move column down + + + + SqlEditor + + + Wrap words + sql editor + Wrap words + + + + Cut + sql editor + Cut + + + + Copy + sql editor + Copy + + + + Paste + sql editor + Paste + + + + Delete + sql editor + Delete + + + + Select all + sql editor + Select all + + + + Undo + sql editor + Undo + + + + Redo + sql editor + Redo + + + + Complete + sql editor + Complete + + + + Format SQL + sql editor + Format SQL + + + + Save SQL to file + sql editor + Save SQL to file + + + + Select file to save SQL + sql editor + Select file to save SQL + + + + Load SQL from file + sql editor + Load SQL from file + + + + Delete line + sql editor + Delete line + + + + Move block down + sql editor + Move block down + + + + Move block up + sql editor + Move block up + + + + Copy block down + sql editor + Copy block down + + + + Copy up down + sql editor + Copy up down + + + + Find + sql editor + Find + + + + Find next + sql editor + Find next + + + + Find previous + sql editor + Find previous + + + + Replace + sql editor + Replace + + + + Toggle comment + sql editor + Toggle comment + + + + Increase font size + sql editor + Increase font size + + + + Decrease font size + sql editor + Decrease font size + + + + Could not open file '%1' for writing: %2 + Could not open file '%1' for writing: %2 + + + + Saved SQL contents to file: %1 + Saved SQL contents to file: %1 + + + + Syntax completion can be used only when a valid database is set for the SQL editor. + Syntax completion can be used only when a valid database is set for the SQL editor. + + + + Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. + Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. + + + + Save to file + Save to file + + + + SQL scripts (*.sql);;All files (*) + SQL scripts (*.sql);;All files (*) + + + + Open file + Open file + + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Reached the end of document. Hit the find again to restart the search. + Reached the end of document. Hit the find again to restart the search. + + + + SqlQueryItem + + + Committing error: + data view tooltip + Committing error: + + + + Column: + data view tooltip + Column: + + + + Data type: + data view + Data type: + + + + Table: + data view tooltip + Table: + + + + Constraints: + data view tooltip + Constraints: + + + + SqlQueryItemDelegate + + + + + + Cannot edit this cell. Details: %1 + Cannot edit this cell. Details: %1 + + + + The row is marked for deletion. + The row is marked for deletion. + + + + + Structure of this table has changed since last data was loaded. Reload the data to proceed. + Structure of this table has changed since last data was loaded. Reload the data to proceed. + + + + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). + + + + Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. + Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. + + + + SqlQueryModel + + + + Only one query can be executed simultaneously. + Only one query can be executed simultaneously. + + + + Cannot execute query on undefined or invalid database. + Cannot execute query on undefined or invalid database. + + + + Cannot execute empty query. + Cannot execute empty query. + + + + Uncommitted data + Uncommitted data + + + + There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. + There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. + + + + Cannot commit the data for a cell that refers to the already closed database. + Cannot commit the data for a cell that refers to the already closed database. + + + + Could not begin transaction on the database. Details: %1 + Could not begin transaction on the database. Details: %1 + + + + An error occurred while committing the transaction: %1 + An error occurred while committing the transaction: %1 + + + + An error occurred while rolling back the transaction: %1 + An error occurred while rolling back the transaction: %1 + + + + Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. + Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. + + + + An error occurred while committing the data: %1 + An error occurred while committing the data: %1 + + + + Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. + Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. + + + + + Error while executing SQL query on database '%1': %2 + Error while executing SQL query on database '%1': %2 + + + + Error while loading query results: %1 + Error while loading query results: %1 + + + + Insert multiple rows + Insert multiple rows + + + + Number of rows to insert: + Number of rows to insert: + + + + Delete rows + Delete rows + + + + You're about to delete newly inserted rows that are not committed yet. Row numbers: %1 +Such deletion will be permanent. Are you sure you want to delete them? + You're about to delete newly inserted rows that are not committed yet. Row numbers: %1 +Such deletion will be permanent. Are you sure you want to delete them? + + + + SqlQueryView + + + Go to referenced row in... + Go to referenced row in... + + + + Copy + Copy + + + + Copy with headers + Copy with headers + + + + Copy as... + Copy as... + + + + Paste + Paste + + + + Paste as... + Paste as... + + + + Set NULL values + Set NULL values + + + + Erase values + Erase values + + + + Commit + Commit + + + + Rollback + Rollback + + + + Commit selected cells + Commit selected cells + + + + Rollback selected cells + Rollback selected cells + + + + Edit current cell inline + Edit current cell inline + + + + Define columns to sort by + Define columns to sort by + + + + Remove custom sorting + Remove custom sorting + + + + Insert row + Insert row + + + + Insert multiple rows + Insert multiple rows + + + + Delete selected row + Delete selected row + + + + Adjust height of rows + Adjust height of rows + + + + Increase font size + data view + Increase font size + + + + Decrease font size + data view + Decrease font size + + + + Invert selection + data view + Invert selection + + + + Edit value in editor + Edit value in editor + + + + Show value in a viewer + Show value in a viewer + + + + Generate query for selected cells + Generate query for selected cells + + + + No items selected to paste clipboard contents to. + No items selected to paste clipboard contents to. + + + + Cannot paste data. Details: %1 + Cannot paste data. Details: %1 + + + + Structure of at least one table used has changed since last data was loaded. Reload the data to proceed. + Structure of at least one table used has changed since last data was loaded. Reload the data to proceed. + + + + Cannot paste to a cell. Details: %1 + Cannot paste to a cell. Details: %1 + + + + The row is marked for deletion. + The row is marked for deletion. + + + + Cannot paste to column %1. Details: %2 + Cannot paste to column %1. Details: %2 + + + + Go to referenced row in table '%1' + Go to referenced row in table '%1' + + + + table '%1' + table '%1' + + + + Referenced row (%1) + Referenced row (%1) + + + + Trim pasted text? + Trim pasted text? + + + + The pasted text contains leading or trailing white space. Trim it automatically? + The pasted text contains leading or trailing white space. Trim it automatically? + + + + Paste "NULL" as null value? + Paste "NULL" as null value? + + + + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + + + + Edit value + Edit value + + + + SqlTableModel + + + Error while committing new row: %1 + Error while committing new row: %1 + + + + Error while deleting row from table %1: %2 + Error while deleting row from table %1: %2 + + + + SqliteExtensionEditor + + + Filter extensions + Filter extensions + + + + Leave empty to use default function + Leave empty to use default function + + + + Extension file + Extension file + + + + Initialization function + Initialization function + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Extension manager window has uncommitted modifications. + Extension manager window has uncommitted modifications. + + + + Extension manager + Extension manager + + + + Commit all extension changes + Commit all extension changes + + + + Rollback all extension changes + Rollback all extension changes + + + + Add new extension + Add new extension + + + + Remove selected extension + Remove selected extension + + + + Editing extensions manual + Editing extensions manual + + + + File with given path does not exist or is not readable. + File with given path does not exist or is not readable. + + + + Unable to load extension: %1 + Unable to load extension: %1 + + + + Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. + Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. + + + + Dynamic link libraries (*.dll);;All files (*) + Dynamic link libraries (*.dll);;All files (*) + + + + Shared objects (*.so);;All files (*) + Shared objects (*.so);;All files (*) + + + + Dynamic libraries (*.dylib);;All files (*) + Dynamic libraries (*.dylib);;All files (*) + + + + All files (*) + All files (*) + + + + Open file + Open file + + + + StatusField + + + Status + Status + + + + Copy + Copy + + + + Clear + Clear + + + + TableConstraintsModel + + + Type + table constraints + Type + + + + Details + table constraints + Details + + + + Name + table constraints + Name + + + + TableForeignKeyPanel + + + Foreign table: + Foreign table: + + + + Columns + Columns + + + + Local column + Local column + + + + Foreign column + Foreign column + + + + Reactions + Reactions + + + + Deferred foreign key + Deferred foreign key + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + Pick the foreign column. + Pick the foreign column. + + + + Pick the foreign table. + Pick the foreign table. + + + + Select at least one foreign column. + Select at least one foreign column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + Foreign column + table constraints + Foreign column + + + + TablePrimaryKeyAndUniquePanel + + + Columns + Columns + + + + Column + Column + + + + Collation + Collation + + + + Sort + Sort + + + + Valid only for a single column with INTEGER data type + Valid only for a single column with INTEGER data type + + + + Autoincrement + Autoincrement + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + On conflict + On conflict + + + + Collate + table constraints + Collate + + + + Sort order + table constraints + Sort order + + + + Select at least one column. + Select at least one column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + TableStructureModel + + + Name + table structure columns + Name + + + + Data type + table structure columns + Data type + + + + Primary +Key + table structure columns + Primary +Key + + + + Foreign +Key + table structure columns + Foreign +Key + + + + Unique + table structure columns + Unique + + + + Check + table structure columns + Check + + + + Not +NULL + table structure columns + Not +NULL + + + + Collate + table structure columns + Collate + + + + Generated + table structure columns + Generated + + + + Default value + table structure columns + Default value + + + + TableWindow + + + Structure + Structure + + + + Table name: + Table name: + + + + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + + + + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + + + + + Data + Data + + + + Constraints + Constraints + + + + Indexes + Indexes + + + + Triggers + Triggers + + + + DDL + DDL + + + + Export table + table window + Export table + + + + Import data to table + table window + Import data to table + + + + Populate table + table window + Populate table + + + + Refresh structure + table window + Refresh structure + + + + Commit structure changes + table window + Commit structure changes + + + + Rollback structure changes + table window + Rollback structure changes + + + + Add column + table window + Add column + + + + Edit column + table window + Edit column + + + + + Delete column + table window + Delete column + + + + Move column up + table window + Move column up + + + + Move column down + table window + Move column down + + + + Create similar table + table window + Create similar table + + + + Reset autoincrement value + table window + Reset autoincrement value + + + + Add table constraint + table window + Add table constraint + + + + Edit table constraint + table window + Edit table constraint + + + + Delete table constraint + table window + Delete table constraint + + + + Move table constraint up + table window + Move table constraint up + + + + Move table constraint down + table window + Move table constraint down + + + + Add table primary key + table window + Add table primary key + + + + Add table foreign key + table window + Add table foreign key + + + + Add table unique constraint + table window + Add table unique constraint + + + + Add table check constraint + table window + Add table check constraint + + + + Refresh index list + table window + Refresh index list + + + + + Create index + table window + Create index + + + + Edit index + table window + Edit index + + + + Delete index + table window + Delete index + + + + Refresh trigger list + table window + Refresh trigger list + + + + + Create trigger + table window + Create trigger + + + + Edit trigger + table window + Edit trigger + + + + Delete trigger + table window + Delete trigger + + + + Are you sure you want to delete column '%1'? + table window + Are you sure you want to delete column '%1'? + + + + Following problems will take place while modifying the table. +Would you like to proceed? + table window + Following problems will take place while modifying the table. +Would you like to proceed? + + + + Table modification + table window + Table modification + + + + Could not load data for table %1. Error details: %2 + Could not load data for table %1. Error details: %2 + + + + Could not process the %1 table correctly. Unable to open a table window. + Could not process the %1 table correctly. Unable to open a table window. + + + + Database + Database + + + + Could not restore window %1, because no database or table was stored in session for this window. + Could not restore window %1, because no database or table was stored in session for this window. + + + + Could not restore window '%1', because no database or table was stored in session for this window. + Could not restore window '%1', because no database or table was stored in session for this window. + + + + Could not restore window '%1', because database %2 could not be resolved. + Could not restore window '%1', because database %2 could not be resolved. + + + + Could not restore window '%1', because the table %2 doesn't exist in the database %3. + Could not restore window '%1', because the table %2 doesn't exist in the database %3. + + + + + New table %1 + New table %1 + + + + Committed changes for table '%1' successfully. + Committed changes for table '%1' successfully. + + + + Committed changes for table '%1' (named before '%2') successfully. + Committed changes for table '%1' (named before '%2') successfully. + + + + Could not commit table structure. Error message: %1 + table window + Could not commit table structure. Error message: %1 + + + + Reset autoincrement + Reset autoincrement + + + + Are you sure you want to reset autoincrement value for table '%1'? + Are you sure you want to reset autoincrement value for table '%1'? + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + An error occurred while trying to reset autoincrement value for table '%1': %2 + + + + Autoincrement value for table '%1' has been reset successfully. + Autoincrement value for table '%1' has been reset successfully. + + + + Empty name + Empty name + + + + A blank name for the table is allowed in SQLite, but it is not recommended. +Are you sure you want to create a table with blank name? + A blank name for the table is allowed in SQLite, but it is not recommended. +Are you sure you want to create a table with blank name? + + + + Cannot create a table without at least one column. + Cannot create a table without at least one column. + + + + Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. + Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. + + + + Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. + Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. + + + + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 + + + + Are you sure you want to delete table constraint '%1'? + table window + Are you sure you want to delete table constraint '%1'? + + + + Delete constraint + table window + Delete constraint + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + Uncommitted changes + Uncommitted changes + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + + + + Go back to structure tab + Go back to structure tab + + + + Commit modifications and browse data. + Commit modifications and browse data. + + + + Name + table window indexes + Name + + + + Unique + table window indexes + Unique + + + + Columns + table window indexes + Columns + + + + Partial index condition + table window indexes + Partial index condition + + + + Name + table window triggers + Name + + + + Event + table window triggers + Event + + + + Condition + table window triggers + Condition + + + + Details + table window triggers + Details + + + + Table window "%1" has uncommitted structure modifications and data. + Table window "%1" has uncommitted structure modifications and data. + + + + Table window "%1" has uncommitted data. + Table window "%1" has uncommitted data. + + + + Table window "%1" has uncommitted structure modifications. + Table window "%1" has uncommitted structure modifications. + + + + TriggerColumnsDialog + + + Trigger columns + Trigger columns + + + + Triggering columns: + Triggering columns: + + + + Select all + Select all + + + + Deselect all + Deselect all + + + + TriggerDialog + + + + Trigger + Trigger + + + + On table: + On table: + + + + Action: + Action: + + + + + <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> + <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> + + + + Pre-condition: + Pre-condition: + + + + The scope is still not fully supported by the SQLite database. + The scope is still not fully supported by the SQLite database. + + + + Trigger name: + Trigger name: + + + + When: + When: + + + + List of columns for UPDATE OF action. + List of columns for UPDATE OF action. + + + + Scope: + Scope: + + + + Code: + Code: + + + + Trigger statements to be executed. + Trigger statements to be executed. + + + + DDL + DDL + + + + On view: + On view: + + + + Could not process trigger %1 correctly. Unable to open a trigger dialog. + Could not process trigger %1 correctly. Unable to open a trigger dialog. + + + + Enter a valid condition. + Enter a valid condition. + + + + Enter a valid trigger code. + Enter a valid trigger code. + + + + Error + trigger dialog + Error + + + + An error occurred while executing SQL statements: +%1 + An error occurred while executing SQL statements: +%1 + + + + VersionConvertSummaryDialog + + + Database version convert + Database version convert + + + + Following changes to the SQL statements will be made: + Following changes to the SQL statements will be made: + + + + Before + Before + + + + After + After + + + + ViewWindow + + + Query + Query + + + + View name: + View name: + + + + Output column names + Output column names + + + + + Data + Data + + + + Triggers + Triggers + + + + DDL + DDL + + + + + Could not restore window '%1', because no database or view was stored in session for this window. + Could not restore window '%1', because no database or view was stored in session for this window. + + + + Could not restore window '%1', because database %2 could not be resolved. + Could not restore window '%1', because database %2 could not be resolved. + + + + Could not restore window '%1', because database %2 could not be open. + Could not restore window '%1', because database %2 could not be open. + + + + Could not restore window '%1', because the view %2 doesn't exist in the database %3. + Could not restore window '%1', because the view %2 doesn't exist in the database %3. + + + + + New view %1 + New view %1 + + + + Database + Database + + + + Refresh the view + view window + Refresh the view + + + + Commit the view changes + view window + Commit the view changes + + + + Rollback the view changes + view window + Rollback the view changes + + + + Explicit column names + Explicit column names + + + + Generate output column names automatically basing on result columns of the view. + Generate output column names automatically basing on result columns of the view. + + + + Add column + view window + Add column + + + + Edit column + view window + Edit column + + + + Delete column + view window + Delete column + + + + Move column up + view window + Move column up + + + + Move column down + view window + Move column down + + + + Refresh trigger list + view window + Refresh trigger list + + + + Create new trigger + view window + Create new trigger + + + + Edit selected trigger + view window + Edit selected trigger + + + + Delete selected trigger + view window + Delete selected trigger + + + + View window "%1" has uncommitted structure modifications and data. + View window "%1" has uncommitted structure modifications and data. + + + + View window "%1" has uncommitted data. + View window "%1" has uncommitted data. + + + + View window "%1" has uncommitted structure modifications. + View window "%1" has uncommitted structure modifications. + + + + Could not load data for view %1. Error details: %2 + Could not load data for view %1. Error details: %2 + + + + Uncommitted changes + Uncommitted changes + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + + + + Go back to structure tab + Go back to structure tab + + + + Commit modifications and browse data. + Commit modifications and browse data. + + + + View '%1' was committed successfully. + View '%1' was committed successfully. + + + + Committed changes for view '%1' successfully. + Committed changes for view '%1' successfully. + + + + Committed changes for view '%1' (named before '%2') successfully. + Committed changes for view '%1' (named before '%2') successfully. + + + + Could not commit view changes. Error message: %1 + view window + Could not commit view changes. Error message: %1 + + + + Override columns + Override columns + + + + Currently defined columns will be overriden. Do you want to continue? + Currently defined columns will be overriden. Do you want to continue? + + + + Could not determinate columns returned from the view. The query is problably incomplete or contains errors. + Could not determinate columns returned from the view. The query is problably incomplete or contains errors. + + + + Name + view window triggers + Name + + + + Instead of + view window triggers + Instead of + + + + Condition + view window triggers + Condition + + + + Details + table window triggers + Details + + + + Could not process the %1 view correctly. Unable to open a view window. + Could not process the %1 view correctly. Unable to open a view window. + + + + Empty name + Empty name + + + + A blank name for the view is allowed in SQLite, but it is not recommended. +Are you sure you want to create a view with blank name? + A blank name for the view is allowed in SQLite, but it is not recommended. +Are you sure you want to create a view with blank name? + + + + The SELECT statement could not be parsed. Please correct the query and retry. +Details: %1 + The SELECT statement could not be parsed. Please correct the query and retry. +Details: %1 + + + + The view could not be modified due to internal SQLiteStudio error. Please report this! + The view could not be modified due to internal SQLiteStudio error. Please report this! + + + + The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. + The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. + + + + Following problems will take place while modifying the view. +Would you like to proceed? + view window + Following problems will take place while modifying the view. +Would you like to proceed? + + + + View modification + view window + View modification + + + + WidgetCover + + + Interrupt + Interrupt + + + diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_ar_SA.ts b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_ar_SA.ts new file mode 100644 index 0000000..e2e9763 --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_ar_SA.ts @@ -0,0 +1,7111 @@ + + + + + AboutDialog + + + About SQLiteStudio and licenses + About SQLiteStudio and licenses + + + + About + About + + + + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + + + + Licenses + Licenses + + + + Environment + Environment + + + + Icon directories + Icon directories + + + + Form directories + Form directories + + + + SQLite extension directories + SQLite extension directories + + + + Plugin directories + Plugin directories + + + + Configuration directory + Configuration directory + + + + Application directory + Application directory + + + + Qt version: + Qt version: + + + + SQLite 3 version: + SQLite 3 version: + + + + Portable distribution. + Portable distribution. + + + + MacOS X application bundle distribution. + MacOS X application bundle distribution. + + + + Operating system managed distribution. + Operating system managed distribution. + + + + <h3>Table of contents:</h3><ol>%2</ol> + <h3>Table of contents:</h3><ol>%2</ol> + + + + BindParamsDialog + + + Query parameters + Query parameters + + + + Please provide values for query parameters + Please provide values for query parameters + + + + CodeSnippetEditor + + + Filter snippets + Filter snippets + + + + + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + + + + + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + + + + Snippet name + Snippet name + + + + Code assistant shortcut + Code assistant shortcut + + + + Snippet code + Snippet code + + + + Code Snippets editor window has uncommitted modifications. + Code Snippets editor window has uncommitted modifications. + + + + Code Snippets editor + Code Snippets editor + + + + Commit all snippet changes + Commit all snippet changes + + + + Rollback all snippet changes + Rollback all snippet changes + + + + Create new snippet + Create new snippet + + + + Delete selected snippet + Delete selected snippet + + + + Move the snippet up + Move the snippet up + + + + Move the snippet down + Move the snippet down + + + + Code snippets manual + Code snippets manual + + + + Enter a non-empty, unique name of the snippet. + Enter a non-empty, unique name of the snippet. + + + + Enter a non-empty snippet content. + Enter a non-empty snippet content. + + + + This hotkey is not unique in context of a code assistant. + This hotkey is not unique in context of a code assistant. + + + + CollationsEditor + + + Filter collations + Filter collations + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Implementation code: + Implementation code: + + + + Collation name: + Collation name: + + + + Implementation language: + Implementation language: + + + + Collations editor + Collations editor + + + + Commit all collation changes + Commit all collation changes + + + + Rollback all collation changes + Rollback all collation changes + + + + Create new collation + Create new collation + + + + Delete selected collation + Delete selected collation + + + + Editing collations manual + Editing collations manual + + + + Enter a non-empty, unique name of the collation. + Enter a non-empty, unique name of the collation. + + + + Pick the implementation language. + Pick the implementation language. + + + + Enter a non-empty implementation code. + Enter a non-empty implementation code. + + + + Collations editor window has uncommitted modifications. + Collations editor window has uncommitted modifications. + + + + ColorButton + + + Pick a color + Pick a color + + + + ColumnCollatePanel + + + Collation name: + Collation name: + + + + Named constraint: + Named constraint: + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + Enter a collation name. + Enter a collation name. + + + + ColumnDefaultPanel + + + Default value: + Default value: + + + + Named constraint: + Named constraint: + + + + Enter a default value expression. + Enter a default value expression. + + + + Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. + Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. + + + + Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. + Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ColumnDialog + + + Column + Column + + + + Name and type + Name and type + + + + Scale + Scale + + + + Precision + Precision + + + + Data type: + Data type: + + + + Column name: + Column name: + + + + Size: + Size: + + + + Constraints + Constraints + + + + Generated value + Generated value + + + + Unique + Unique + + + + + + + + + + + Configure + Configure + + + + Foreign Key + Foreign Key + + + + Collate + Collate + + + + Not NULL + Not NULL + + + + Check condition + Check condition + + + + Primary Key + Primary Key + + + + Default + Default + + + + Advanced mode + Advanced mode + + + + Add constraint + column dialog + Add constraint + + + + Edit constraint + column dialog + Edit constraint + + + + + Delete constraint + column dialog + Delete constraint + + + + Move constraint up + column dialog + Move constraint up + + + + Move constraint down + column dialog + Move constraint down + + + + Add a primary key + column dialog + Add a primary key + + + + Add a foreign key + column dialog + Add a foreign key + + + + Add an unique constraint + column dialog + Add an unique constraint + + + + Add a check constraint + column dialog + Add a check constraint + + + + Add a not null constraint + column dialog + Add a not null constraint + + + + Add a collate constraint + column dialog + Add a collate constraint + + + + Add a generated value constraint + column dialog + Add a generated value constraint + + + + Add a default constraint + column dialog + Add a default constraint + + + + Are you sure you want to delete constraint '%1'? + column dialog + Are you sure you want to delete constraint '%1'? + + + + Correct the constraint's configuration. + Correct the constraint's configuration. + + + + Scale is not allowed for INTEGER PRIMARY KEY columns. + Scale is not allowed for INTEGER PRIMARY KEY columns. + + + + Precision cannot be defined without the scale. + Precision cannot be defined without the scale. + + + + Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. + Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. + + + + INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. + INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. + + + + Precision is not allowed for INTEGER PRIMARY KEY columns. + Precision is not allowed for INTEGER PRIMARY KEY columns. + + + + Could not match valid STRICT table datatype from declared type: %1. + Could not match valid STRICT table datatype from declared type: %1. + + + + ColumnDialogConstraintsModel + + + Type + column dialog constraints + Type + + + + Name + column dialog constraints + Name + + + + Details + column dialog constraints + Details + + + + ColumnForeignKeyPanel + + + Foreign table: + Foreign table: + + + + Foreign column: + Foreign column: + + + + Reactions + Reactions + + + + Deferred foreign key + Deferred foreign key + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + Pick the foreign table. + Pick the foreign table. + + + + Pick the foreign column. + Pick the foreign column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ColumnGeneratedPanel + + + Generating code: + Generating code: + + + + Explicit type: + Explicit type: + + + + Use "GENERATED ALWAYS" keywords + Use "GENERATED ALWAYS" keywords + + + + Named constraint: + Named constraint: + + + + Enter the column value generating expression. + Enter the column value generating expression. + + + + Invalid value generating expression: %1. + Invalid value generating expression: %1. + + + + Invalid value generating expression. + Invalid value generating expression. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ColumnPrimaryKeyPanel + + + Autoincrement + Autoincrement + + + + Sort order: + Sort order: + + + + Named constraint: + Named constraint: + + + + On conflict: + On conflict: + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + Descending order is not allowed with AUTOINCREMENT. + Descending order is not allowed with AUTOINCREMENT. + + + + ColumnUniqueAndNotNullPanel + + + Named constraint: + Named constraint: + + + + On conflict: + On conflict: + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + CompleterWindow + + + Column: %1 + completer statusbar + Column: %1 + + + + Table: %1 + completer statusbar + Table: %1 + + + + Index: %1 + completer statusbar + Index: %1 + + + + Trigger: %1 + completer statusbar + Trigger: %1 + + + + View: %1 + completer statusbar + View: %1 + + + + Database: %1 + completer statusbar + Database: %1 + + + + Keyword: %1 + completer statusbar + Keyword: %1 + + + + Function: %1 + completer statusbar + Function: %1 + + + + Operator: %1 + completer statusbar + Operator: %1 + + + + String + completer statusbar + String + + + + Number + completer statusbar + Number + + + + Binary data + completer statusbar + Binary data + + + + Collation: %1 + completer statusbar + Collation: %1 + + + + Pragma function: %1 + completer statusbar + Pragma function: %1 + + + + Insert a code snippet + Insert a code snippet + + + + ConfigDialog + + + + Configuration + Configuration + + + + Search + Search + + + + General + General + + + + Keyboard shortcuts + Keyboard shortcuts + + + + Look & feel + Look & feel + + + + Style + Style + + + + Fonts + Fonts + + + + Code colors + Code colors + + + + + Database list + Database list + + + + Code assistant + Code assistant + + + + Data browsing + Data browsing + + + + Data editors + Data editors + + + + Plugins + Plugins + + + + Code formatters + Code formatters + + + + If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. + If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. + + + + Sort table columns alphabetically + Sort table columns alphabetically + + + + Expand tables node when connected to a database + Expand tables node when connected to a database + + + + <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> + <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> + + + + Display additional labels on the list + Display additional labels on the list + + + + For regular tables labels will show number of columns, indexes and triggers for each of tables. + For regular tables labels will show number of columns, indexes and triggers for each of tables. + + + + Display labels for regular tables + Display labels for regular tables + + + + Virtual tables will be marked with a 'virtual' label. + Virtual tables will be marked with a 'virtual' label. + + + + Display labels for virtual tables + Display labels for virtual tables + + + + Expand views node when connected to a database + Expand views node when connected to a database + + + + If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) + If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) + + + + Sort objects (tables, indexes, triggers and views) alphabetically + Sort objects (tables, indexes, triggers and views) alphabetically + + + + Display system tables and indexes on the list + Display system tables and indexes on the list + + + + Database dialog window + Database dialog window + + + + <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> + <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> + + + + Do not mark database to be "permanent" by default + Do not mark database to be "permanent" by default + + + + <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> + <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> + + + + Try to bypass dialog completly when dropping database file onto the list + Try to bypass dialog completly when dropping database file onto the list + + + + Data browsing and editing + Data browsing and editing + + + + + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + + + + Number of memorized table populating configurations + Number of memorized table populating configurations + + + + Data column width + Data column width + + + + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + + + + Enlarge column when entering value longer than current width + Enlarge column when entering value longer than current width + + + + <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> + <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> + + + + Number of data rows per page: + Number of data rows per page: + + + + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> + + + + Show column and row details tooltip in data view + Show column and row details tooltip in data view + + + + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + + + + Keep NULL value when entering empty value + Keep NULL value when entering empty value + + + + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> + + + + Use DEFAULT value (if defined), when committing NULL value + Use DEFAULT value (if defined), when committing NULL value + + + + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + + + + Limit number of rows for in case of dozens of columns + Limit number of rows for in case of dozens of columns + + + + Inserting new row in data grid + Inserting new row in data grid + + + + Before currently selected row + Before currently selected row + + + + After currently selected row + After currently selected row + + + + At the end of data view + At the end of data view + + + + Table windows + Table windows + + + + <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> + <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> + + + + Open Table Windows with the data tab for start + Open Table Windows with the data tab for start + + + + <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> + <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> + + + + Place data tab as first tab in a Table Window + Place data tab as first tab in a Table Window + + + + View windows + View windows + + + + <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> + <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> + + + + Open View Windows with the data tab for start + Open View Windows with the data tab for start + + + + <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> + <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> + + + + Place data tab as first tab in a View Window + Place data tab as first tab in a View Window + + + + Data types + Data types + + + + Available editors: + Available editors: + + + + Editors selected for this data type: + Editors selected for this data type: + + + + Schema editing + Schema editing + + + + Number of DDL changes kept in history. + Number of DDL changes kept in history. + + + + DDL history size: + DDL history size: + + + + Don't show DDL preview dialog when committing schema changes + Don't show DDL preview dialog when committing schema changes + + + + SQL queries + SQL queries + + + + + Number of queries kept in the history. + Number of queries kept in the history. + + + + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> + + + + History size: + History size: + + + + + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> + + + + Execute only the query under the cursor + Execute only the query under the cursor + + + + Number of memorized query parameters + Number of memorized query parameters + + + + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + + + + Use scientific notation for real numbers in the grid view + Use scientific notation for real numbers in the grid view + + + + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + + + + Limit automatic data column width to (in pixels): + Limit automatic data column width to (in pixels): + + + + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + + + + Keep at least the width to show complete column name + Keep at least the width to show complete column name + + + + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + + + + Wrap lines in SQL editor + Wrap lines in SQL editor + + + + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + + + + Highlight current query + Highlight current query + + + + Updates + Updates + + + + Automatically check for updates at startup + Automatically check for updates at startup + + + + Session + Session + + + + Restore last session (active MDI windows) after startup + Restore last session (active MDI windows) after startup + + + + Allow multiple instances of the application at the same time + Allow multiple instances of the application at the same time + + + + Status Field + Status Field + + + + <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> + <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> + + + + Always open Status panel when new message is printed + Always open Status panel when new message is printed + + + + Code syntax colors + Code syntax colors + + + + Keyword foreground + Keyword foreground + + + + Regular foreground + Regular foreground + + + + String foreground + String foreground + + + + Comment foreground + Comment foreground + + + + Valid objects foreground + Valid objects foreground + + + + Current query background + Current query background + + + + Bind parameter foreground + Bind parameter foreground + + + + Current line background + Current line background + + + + Matched parenthesis background + Matched parenthesis background + + + + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + + + + Number foreground + Number foreground + + + + BLOB value foreground + BLOB value foreground + + + + Matched parenthesis foreground + Matched parenthesis foreground + + + + Reset to defaults + Reset to defaults + + + + Filter shortcuts by name or key combination + Filter shortcuts by name or key combination + + + + Action + Action + + + + Key combination + Key combination + + + + + Language + Language + + + + Changing language requires application restart to take effect. + Changing language requires application restart to take effect. + + + + Compact layout + Compact layout + + + + <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> + <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> + + + + Use compact layout + Use compact layout + + + + Main window dock areas + Main window dock areas + + + + Left and right areas occupy corners + Left and right areas occupy corners + + + + Top and bottom areas occupy corners + Top and bottom areas occupy corners + + + + Hide built-in plugins + Hide built-in plugins + + + + Current style: + Current style: + + + + Preview + Preview + + + + Enabled + Enabled + + + + Disabled + Disabled + + + + Active formatter plugin + Active formatter plugin + + + + SQL editor font + SQL editor font + + + + Database list font + Database list font + + + + Database list additional label font + Database list additional label font + + + + Data view font + Data view font + + + + Status field font + Status field font + + + + Code assistant settings + Code assistant settings + + + + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + + + + Automatically trigger the assistant after a dot is typed after an object name + Automatically trigger the assistant after a dot is typed after an object name + + + + Description: + plugin details + Description: + + + + Category: + plugin details + Category: + + + + Version: + plugin details + Version: + + + + Author: + plugin details + Author: + + + + Internal name: + plugin details + Internal name: + + + + Dependencies: + plugin details + Dependencies: + + + + Conflicts: + plugin details + Conflicts: + + + + Plugin details + Plugin details + + + + Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. + Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. + + + + %1 (built-in) + plugins manager in configuration dialog + %1 (built-in) + + + + Details + Details + + + + No plugins in this category. + No plugins in this category. + + + + Add new data type + Add new data type + + + + Rename selected data type + Rename selected data type + + + + Delete selected data type + Delete selected data type + + + + Help for configuring data type editors + Help for configuring data type editors + + + + Clear hotkey for this action + Clear hotkey for this action + + + + Restore original hotkey for this action + Restore original hotkey for this action + + + + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + + + + ConstraintCheckPanel + + + The condition + The condition + + + + Named constraint: + Named constraint: + + + + On conflict + On conflict + + + + Enter a valid condition. + Enter a valid condition. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ConstraintDialog + + + New constraint + constraint dialog + New constraint + + + + Create + constraint dialog + Create + + + + Edit constraint + dialog window + Edit constraint + + + + Apply + constraint dialog + Apply + + + + Primary key + table constraints + Primary key + + + + Foreign key + table constraints + Foreign key + + + + Unique + table constraints + Unique + + + + Not NULL + table constraints + Not NULL + + + + Check + table constraints + Check + + + + Generated + table constraints + Generated + + + + Collate + table constraints + Collate + + + + Default + table constraints + Default + + + + ConstraintTabModel + + + Table + table constraints + Table + + + + Column (%1) + table constraints + Column (%1) + + + + Scope + table constraints + Scope + + + + Type + table constraints + Type + + + + Details + table constraints + Details + + + + Name + table constraints + Name + + + + CssDebugDialog + + + SQLiteStudio CSS console + SQLiteStudio CSS console + + + + DataView + + + Filter data + data view + Filter data + + + + Grid view + Grid view + + + + Form view + Form view + + + + Refresh table data + data view + Refresh table data + + + + First page + data view + First page + + + + Previous page + data view + Previous page + + + + Next page + data view + Next page + + + + Last page + data view + Last page + + + + Commit changes for selected cells + data view + Commit changes for selected cells + + + + Rollback changes for selected cells + data view + Rollback changes for selected cells + + + + Show grid view of results + data view + Show grid view of results + + + + Show form view of results + data view + Show form view of results + + + + Filter by text (if contains) + data view + Filter by text (if contains) + + + + Filter strictly by text (if equals) + data view + Filter strictly by text (if equals) + + + + Tabs on top + data view + Tabs on top + + + + Tabs at bottom + data view + Tabs at bottom + + + + Place new rows above selected row + data view + Place new rows above selected row + + + + Place new rows below selected row + data view + Place new rows below selected row + + + + Place new rows at the end of the data view + data view + Place new rows at the end of the data view + + + + Total number of rows is being counted. +Browsing other pages will be possible after the row counting is done. + Total number of rows is being counted. +Browsing other pages will be possible after the row counting is done. + + + + Row: %1 + Row: %1 + + + + Filter + Filter + + + + Hit Enter key or press "Apply filter" button on toolbar to apply new value. + Hit Enter key or press "Apply filter" button on toolbar to apply new value. + + + + Filter by the Regular Expression + data view + Filter by the Regular Expression + + + + Filter by SQL expression + data view + Filter by SQL expression + + + + Show filter inputs per column + data view + Show filter inputs per column + + + + Apply filter + data view + Apply filter + + + + DbDialog + + + Database + Database + + + + Database type + Database type + + + + Database driver + Database driver + + + + + File + File + + + + Name (on the list) + Name (on the list) + + + + Options + Options + + + + <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> + aasfd + <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> + + + + Permanent (keep it in configuration) + Permanent (keep it in configuration) + + + + Test connection + Test connection + + + + Select new or existing file on local computer + Select new or existing file on local computer + + + + Browse + Browse + + + + Database type not selected. + Database type not selected. + + + + Database path not specified. + Database path not specified. + + + + Enter an unique database name. + Enter an unique database name. + + + + This name is already in use. Please enter unique name. + This name is already in use. Please enter unique name. + + + + <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> + <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> + + + + Enter a database file path. + Enter a database file path. + + + + This database is already on the list under name: %1 + This database is already on the list under name: %1 + + + + Select a database type. + Select a database type. + + + + DbObjectDialogs + + + Delete table + Delete table + + + + Are you sure you want to delete table %1? + Are you sure you want to delete table %1? + + + + Delete index + Delete index + + + + Are you sure you want to delete index %1? + Are you sure you want to delete index %1? + + + + Delete trigger + Delete trigger + + + + Are you sure you want to delete trigger %1? + Are you sure you want to delete trigger %1? + + + + Delete view + Delete view + + + + Are you sure you want to delete view %1? + Are you sure you want to delete view %1? + + + + + Error while dropping %1: %2 + Error while dropping %1: %2 + + + + Delete objects + Delete objects + + + + Are you sure you want to delete following objects: +%1 + Are you sure you want to delete following objects: +%1 + + + + Cannot start transaction. Details: %1 + Cannot start transaction. Details: %1 + + + + Cannot commit transaction. Details: %1 + Cannot commit transaction. Details: %1 + + + + DbTree + + + Databases + Databases + + + + Filter by name + Filter by name + + + + Copy + Copy + + + + Paste + Paste + + + + Select all + Select all + + + + Create a group + Create a group + + + + Delete the group + Delete the group + + + + Rename the group + Rename the group + + + + &Add a database + &Add a database + + + + &Edit the database + &Edit the database + + + + &Remove the database + &Remove the database + + + + &Connect to the database + &Connect to the database + + + + &Disconnect from the database + &Disconnect from the database + + + + Import + Import + + + + &Export the database + &Export the database + + + + Vac&uum + Vac&uum + + + + &Integrity check + &Integrity check + + + + Create a &table + Create a &table + + + + Edit the t&able + Edit the t&able + + + + Delete the ta&ble + Delete the ta&ble + + + + Export the table + Export the table + + + + Import into the table + Import into the table + + + + Populate table + Populate table + + + + Create similar table + Create similar table + + + + Reset autoincrement sequence + Reset autoincrement sequence + + + + Create an &index + Create an &index + + + + Edit the i&ndex + Edit the i&ndex + + + + Delete the in&dex + Delete the in&dex + + + + Create a trig&ger + Create a trig&ger + + + + Edit the trigg&er + Edit the trigg&er + + + + Delete the trigge&r + Delete the trigge&r + + + + Create a &view + Create a &view + + + + Edit the v&iew + Edit the v&iew + + + + Delete the vi&ew + Delete the vi&ew + + + + Add a column + Add a column + + + + Edit the column + Edit the column + + + + Delete the column + Delete the column + + + + Delete selected items + Delete selected items + + + + Clear filter + Clear filter + + + + &Refresh all database schemas + &Refresh all database schemas + + + + Re&fresh selected database schema + Re&fresh selected database schema + + + + + Erase table data + Erase table data + + + + Open file's directory + Open file's directory + + + + Execute SQL from file + Execute SQL from file + + + + Increase font size + database list + Increase font size + + + + Decrease font size + database list + Decrease font size + + + + + Database + Database + + + + Grouping + Grouping + + + + Generate query for table + Generate query for table + + + + + Create group + Create group + + + + Group name + Group name + + + + Entry with name %1 already exists in group %2. + Entry with name %1 already exists in group %2. + + + + Delete group + Delete group + + + + Are you sure you want to delete group %1? +All objects from this group will be moved to parent group. + Are you sure you want to delete group %1? +All objects from this group will be moved to parent group. + + + + Are you sure you want to remove database '%1' from the list? + Are you sure you want to remove database '%1' from the list? + + + + Are you sure you want to remove following databases from the list: +%1 + Are you sure you want to remove following databases from the list: +%1 + + + + Remove database + Remove database + + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Vacuum (%1) + Vacuum (%1) + + + + Integrity check (%1) + Integrity check (%1) + + + + Reset autoincrement + Reset autoincrement + + + + Are you sure you want to reset autoincrement value for table '%1'? + Are you sure you want to reset autoincrement value for table '%1'? + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + An error occurred while trying to reset autoincrement value for table '%1': %2 + + + + Autoincrement value for table '%1' has been reset successfully. + Autoincrement value for table '%1' has been reset successfully. + + + + Are you sure you want to delete all data from table(s): %1? + Are you sure you want to delete all data from table(s): %1? + + + + An error occurred while trying to delete data from table '%1': %2 + An error occurred while trying to delete data from table '%1': %2 + + + + All data has been deleted for table '%1'. + All data has been deleted for table '%1'. + + + + Following objects will be deleted: %1. + Following objects will be deleted: %1. + + + + Following databases will be removed from list: %1. + Following databases will be removed from list: %1. + + + + Remainig objects from deleted group will be moved in place where the group used to be. + Remainig objects from deleted group will be moved in place where the group used to be. + + + + %1<br><br>Are you sure you want to continue? + %1<br><br>Are you sure you want to continue? + + + + Delete objects + Delete objects + + + + DbTreeItemDelegate + + + error + dbtree labels + error + + + + (system table) + database tree label + (system table) + + + + (virtual) + virtual table label + (virtual) + + + + (system index) + database tree label + (system index) + + + + DbTreeModel + + + Database: %1 + dbtree tooltip + Database: %1 + + + + URI: + dbtree tooltip + URI: + + + + Version: + dbtree tooltip + Version: + + + + File size: + dbtree tooltip + File size: + + + + Encoding: + dbtree tooltip + Encoding: + + + + Error: + dbtree tooltip + Error: + + + + Table : %1 + dbtree tooltip + Table : %1 + + + + Columns (%1): + dbtree tooltip + Columns (%1): + + + + Indexes (%1): + dbtree tooltip + Indexes (%1): + + + + Triggers (%1): + dbtree tooltip + Triggers (%1): + + + + Copy + Copy + + + + Move + Move + + + + Include data + Include data + + + + Include indexes + Include indexes + + + + Include triggers + Include triggers + + + + Abort + Abort + + + + Could not add dropped database file '%1' automatically. Manual setup is necessary. + Could not add dropped database file '%1' automatically. Manual setup is necessary. + + + + Referenced tables + Referenced tables + + + + Do you want to include following referenced tables as well: +%1 + Do you want to include following referenced tables as well: +%1 + + + + Name conflict + Name conflict + + + + Following object already exists in the target database. +Please enter new, unique name, or press '%1' to abort the operation: + Following object already exists in the target database. +Please enter new, unique name, or press '%1' to abort the operation: + + + + SQL statements conversion + SQL statements conversion + + + + Following error occurred while converting SQL statements to the target SQLite version: + Following error occurred while converting SQL statements to the target SQLite version: + + + + Would you like to ignore those errors and proceed? + Would you like to ignore those errors and proceed? + + + + DdlHistoryWindow + + + Filter by database: + Filter by database: + + + + Clear entire history + Clear entire history + + + + -- Queries executed on database %1 (%2) +-- Date and time of execution: %3 +%4 + -- Queries executed on database %1 (%2) +-- Date and time of execution: %3 +%4 + + + + Clear history + Clear history + + + + Are you sure you want to erase entire DDL history? + Are you sure you want to erase entire DDL history? + + + + DDL history + DDL history + + + + DdlPreviewDialog + + + Queries to be executed + Queries to be executed + + + + Don't show again + Don't show again + + + + DebugConsole + + + SQLiteStudio Debug Console + SQLiteStudio Debug Console + + + + EditorWindow + + + SQL editor + SQL editor + + + + Query + Query + + + + History + History + + + + Results in the separate tab + Results in the separate tab + + + + Results below the query + Results below the query + + + + + SQL editor %1 + SQL editor %1 + + + + + Results + Results + + + + Execute query + Execute query + + + + Explain query + Explain query + + + + Clear execution history + sql editor + Clear execution history + + + + Export results + sql editor + Export results + + + + Create view from query + sql editor + Create view from query + + + + Previous database + Previous database + + + + Next database + Next database + + + + Show next tab + sql editor + Show next tab + + + + Show previous tab + sql editor + Show previous tab + + + + Focus results below + sql editor + Focus results below + + + + Focus SQL editor above + sql editor + Focus SQL editor above + + + + Delete selected SQL history entries + sql editor + Delete selected SQL history entries + + + + Execute single query under cursor + Execute single query under cursor + + + + Execute all queries in editor + Execute all queries in editor + + + + Active database (%1/%2) + Active database (%1/%2) + + + + Query finished in %1 second(s). Rows affected: %2 + Query finished in %1 second(s). Rows affected: %2 + + + + Query finished in %1 second(s). + Query finished in %1 second(s). + + + + Clear execution history + Clear execution history + + + + Are you sure you want to erase the entire SQL execution history? This cannot be undone. + Are you sure you want to erase the entire SQL execution history? This cannot be undone. + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + No database selected in the SQL editor. Cannot create a view for unknown database. + No database selected in the SQL editor. Cannot create a view for unknown database. + + + + Editor window "%1" has uncommitted data. + Editor window "%1" has uncommitted data. + + + + ErrorsConfirmDialog + + + Errors + Errors + + + + Following errors occured: + Following errors occured: + + + + Would you like to proceed? + Would you like to proceed? + + + + ExecFromFileDialog + + + Execute SQL from file + Execute SQL from file + + + + Input file + Input file + + + + Path to file + Path to file + + + + Browse for file + Browse for file + + + + Options + Options + + + + File encoding + File encoding + + + + Skip failing SQL statements + Skip failing SQL statements + + + + SQL scripts (*.sql);;All files (*) + SQL scripts (*.sql);;All files (*) + + + + Execute SQL file + Execute SQL file + + + + Please provide file to be executed. + Please provide file to be executed. + + + + Provided file does not exist or cannot be read. + Provided file does not exist or cannot be read. + + + + ExportDialog + + + Export + Export + + + + What do you want to export? + What do you want to export? + + + + A database + A database + + + + A single table + A single table + + + + Query results + Query results + + + + Table to export + Table to export + + + + Database + Database + + + + Table + Table + + + + Options + Options + + + + When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. + When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. + + + + Export table data + Export table data + + + + Export table indexes + Export table indexes + + + + Export table triggers + Export table triggers + + + + Note, that exporting table indexes and triggers may be unsupported by some output formats. + Note, that exporting table indexes and triggers may be unsupported by some output formats. + + + + Select database objects to export + Select database objects to export + + + + Export data from tables + Export data from tables + + + + Select all + Select all + + + + Deselect all + Deselect all + + + + + Database: + Database: + + + + Query to export results for + Query to export results for + + + + Query to be executed for results: + Query to be executed for results: + + + + Export format and options + Export format and options + + + + Export format + Export format + + + + Output + Output + + + + Exported file path + Exported file path + + + + Clipboard + Clipboard + + + + File + File + + + + Exported text encoding: + Exported text encoding: + + + + Export format options + Export format options + + + + Cancel + Cancel + + + + + + Select database to export. + Select database to export. + + + + Select table to export. + Select table to export. + + + + Enter valid query to export. + Enter valid query to export. + + + + Select at least one object to export. + Select at least one object to export. + + + + You must provide a file name to export to. + You must provide a file name to export to. + + + + Path you provided is an existing directory. You cannot overwrite it. + Path you provided is an existing directory. You cannot overwrite it. + + + + The directory '%1' does not exist. + The directory '%1' does not exist. + + + + The file '%1' exists and will be overwritten. + The file '%1' exists and will be overwritten. + + + + All files (*) + All files (*) + + + + Pick file to export to + Pick file to export to + + + + Internal error during export. This is a bug. Please report it. + Internal error during export. This is a bug. Please report it. + + + + FileExecErrorsDialog + + + Execution errors + Execution errors + + + + Following errors were encountered during execution of SQL statements from the file: + Following errors were encountered during execution of SQL statements from the file: + + + + SQL + SQL + + + + Error + Error + + + + Statements that were executed successfully were commited. + Statements that were executed successfully were commited. + + + + Statements that were executed successfully were rolled back. + Statements that were executed successfully were rolled back. + + + + FkComboBox + + + Cannot edit this cell. Details: %1 + Cannot edit this cell. Details: %1 + + + + FontEdit + + + Choose font + font configuration + Choose font + + + + Form + + + Active SQL formatter plugin + Active SQL formatter plugin + + + + FormView + + + Commit row + form view + Commit row + + + + Rollback row + form view + Rollback row + + + + First row + form view + First row + + + + Previous row + form view + Previous row + + + + Next row + form view + Next row + + + + Last row + form view + Last row + + + + Insert new row + form view + Insert new row + + + + Delete current row + form view + Delete current row + + + + FunctionsEditor + + + Filter functions + Filter functions + + + + Input arguments + Input arguments + + + + Undefined + Undefined + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Type: + Type: + + + + Function name: + Function name: + + + + Implementation language: + Implementation language: + + + + Deterministic + Deterministic + + + + Initialization code: + Initialization code: + + + + + Function implementation code: + Function implementation code: + + + + Final step implementation code: + Final step implementation code: + + + + SQL functions editor + SQL functions editor + + + + Commit all function changes + Commit all function changes + + + + Rollback all function changes + Rollback all function changes + + + + Create new function + Create new function + + + + Delete selected function + Delete selected function + + + + Custom SQL functions manual + Custom SQL functions manual + + + + Add function argument + Add function argument + + + + Rename function argument + Rename function argument + + + + Delete function argument + Delete function argument + + + + Move function argument up + Move function argument up + + + + Move function argument down + Move function argument down + + + + Scalar + Scalar + + + + Aggregate + Aggregate + + + + Enter a non-empty, unique name of the function. + Enter a non-empty, unique name of the function. + + + + Pick the implementation language. + Pick the implementation language. + + + + Per step code: + Per step code: + + + + Enter a non-empty implementation code. + Enter a non-empty implementation code. + + + + argument + new function argument name in function editor window + argument + + + + Functions editor window has uncommitted modifications. + Functions editor window has uncommitted modifications. + + + + ImportDialog + + + Import data + Import data + + + + Table to import to + Table to import to + + + + Table + Table + + + + Database + Database + + + + Data source to import from + Data source to import from + + + + Data source type + Data source type + + + + Options + Options + + + + Text encoding: + Text encoding: + + + + Input file: + Input file: + + + + <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> + <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> + + + + Ignore errors + Ignore errors + + + + Data source options + Data source options + + + + Cancel + Cancel + + + + If you type table name that doesn't exist, it will be created. + If you type table name that doesn't exist, it will be created. + + + + Enter the table name + Enter the table name + + + + Select import plugin. + Select import plugin. + + + + You must provide a file to import from. + You must provide a file to import from. + + + + The file '%1' does not exist. + The file '%1' does not exist. + + + + Path you provided is a directory. A regular file is required. + Path you provided is a directory. A regular file is required. + + + + Pick file to import from + Pick file to import from + + + + IndexDialog + + + + Index + Index + + + + Column + Column + + + + Sort + Sort + + + + Collation + Collation + + + + On table: + On table: + + + + Delete selected indexed expression + Delete selected indexed expression + + + + Moves selected index column up in the order, making it more significant in the index. + Moves selected index column up in the order, making it more significant in the index. + + + + Moves selected index column down in the order, making it less significant in the index. + Moves selected index column down in the order, making it less significant in the index. + + + + Partial index condition + Partial index condition + + + + Unique index + Unique index + + + + Index name: + Index name: + + + + Edit selected indexed expression + Edit selected indexed expression + + + + Add indexed expression + Add indexed expression + + + + DDL + DDL + + + + Tried to open index dialog for closed or inexisting database. + Tried to open index dialog for closed or inexisting database. + + + + Could not process index %1 correctly. Unable to open an index dialog. + Could not process index %1 correctly. Unable to open an index dialog. + + + + Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. + Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. + + + + Pick the table for the index. + Pick the table for the index. + + + + Select at least one column. + Select at least one column. + + + + Enter a valid condition. + Enter a valid condition. + + + + default + index dialog + default + + + + Sort order + table constraints + Sort order + + + + + Error + index dialog + Error + + + + Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? + Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? + + + + An error occurred while executing SQL statements: +%1 + An error occurred while executing SQL statements: +%1 + + + + IndexExprColumnDialog + + + Indexed expression + Indexed expression + + + + Expression to index + Expression to index + + + + This expression is already indexed by the index. + This expression is already indexed by the index. + + + + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. + + + + Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. + Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. + + + + It's forbidden to use 'SELECT' statements in indexed expressions. + It's forbidden to use 'SELECT' statements in indexed expressions. + + + + Enter an indexed expression. + Enter an indexed expression. + + + + Invalid expression. + Invalid expression. + + + + LanguageDialog + + + Language + Language + + + + Please choose language: + Please choose language: + + + + MainWindow + + + Database toolbar + Database toolbar + + + + Structure toolbar + Structure toolbar + + + + Tools + Tools + + + + Window list + Window list + + + + View toolbar + View toolbar + + + + Configuration widgets + Configuration widgets + + + + Syntax highlighting engines + Syntax highlighting engines + + + + Data editors + Data editors + + + + Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. + Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. + + + + Running in debug mode. Debug messages are printed to the standard output. + Running in debug mode. Debug messages are printed to the standard output. + + + + You need to restart application to make the language change take effect. + You need to restart application to make the language change take effect. + + + + Open SQL &editor + Open SQL &editor + + + + Open DDL &history + Open DDL &history + + + + Open SQL &functions editor + Open SQL &functions editor + + + + Open code &snippets editor + Open code &snippets editor + + + + Open &collations editor + Open &collations editor + + + + Open ex&tension manager + Open ex&tension manager + + + + &Import + &Import + + + + E&xport + E&xport + + + + Open confi&guration dialog + Open confi&guration dialog + + + + &Tile windows + &Tile windows + + + + Tile windows &horizontally + Tile windows &horizontally + + + + Tile windows &vertically + Tile windows &vertically + + + + &Cascade windows + &Cascade windows + + + + Next window + Next window + + + + Previous window + Previous window + + + + Hide status field + Hide status field + + + + Close &all windows + Close &all windows + + + + Re&store recently closed window + Re&store recently closed window + + + + Close current &window + Close current &window + + + + Close &other windows + Close &other windows + + + + Close windows on the &left + Close windows on the &left + + + + Close windows on the &right + Close windows on the &right + + + + Re&name selected window + Re&name selected window + + + + Open Debug Console + Open Debug Console + + + + Open CSS Console + Open CSS Console + + + + Report a &bug + Report a &bug + + + + D&onate + D&onate + + + + Propose a new &feature + Propose a new &feature + + + + &About + &About + + + + &Licenses + &Licenses + + + + Open home &page + Open home &page + + + + User &Manual + User &Manual + + + + SQLite &documentation + SQLite &documentation + + + + Bugs and feature &requests + Bugs and feature &requests + + + + Quit + Quit + + + + Check for &updates + Check for &updates + + + + &Database + menubar + &Database + + + + &Structure + menubar + &Structure + + + + &View + menubar + &View + + + + Window list + menubar view menu + Window list + + + + &Tools + menubar + &Tools + + + + &Help + &Help + + + + Could not set style: %1 + main window + Could not set style: %1 + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + Rename window + Rename window + + + + Enter new name for the window: + Enter new name for the window: + + + + New updates are available. <a href="%1">Click here for details</a>. + New updates are available. <a href="%1">Click here for details</a>. + + + + You're running the most recent version. No updates are available. + You're running the most recent version. No updates are available. + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + Database passed in command line parameters (%1) was already on the list under name: %2 + + + + Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 + Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + MdiWindow + + + Uncommitted changes + Uncommitted changes + + + + Close anyway + Close anyway + + + + Don't close + Don't close + + + + MultiEditor + + + Null value + multieditor + Null value + + + + Configure editors for this data type + Configure editors for this data type + + + + Open another tab + Open another tab + + + + Foreign Key + Foreign Key + + + + Data editor plugin '%1' not loaded, while it is defined for editing '%2' data type. + Data editor plugin '%1' not loaded, while it is defined for editing '%1' data type. {1'?} {2'?} {1' or 2'?} + + + + Deleted + multieditor + Deleted + + + + Read only + multieditor + Read only + + + + MultiEditorBoolPlugin + + + Boolean + Boolean + + + + MultiEditorDatePlugin + + + Date + Date + + + + MultiEditorDateTimePlugin + + + Date & time + Date & time + + + + MultiEditorHexPlugin + + + Hex + Hex + + + + MultiEditorNumericPlugin + + + Number + numeric multi editor tab name + Number + + + + MultiEditorText + + + Tab changes focus + Tab changes focus + + + + Cut + Cut + + + + Copy + Copy + + + + Paste + Paste + + + + Delete + Delete + + + + Undo + Undo + + + + Redo + Redo + + + + MultiEditorTextPlugin + + + Text + Text + + + + MultiEditorTimePlugin + + + Time + Time + + + + NewConstraintDialog + + + New constraint + New constraint + + + + + Primary Key + new constraint dialog + Primary Key + + + + + Foreign Key + new constraint dialog + Foreign Key + + + + + Unique + new constraint dialog + Unique + + + + + Check + new constraint dialog + Check + + + + Not NULL + new constraint dialog + Not NULL + + + + Collate + new constraint dialog + Collate + + + + Generated + new constraint dialog + Generated + + + + Default + new constraint dialog + Default + + + + NewVersionDialog + + + SQLiteStudio updates + SQLiteStudio updates + + + + New version is available! + New version is available! + + + + Download new version! + Download new version! + + + + New version package will be downloaded. It will be up to you to install it whenever you're ready. + New version package will be downloaded. It will be up to you to install it whenever you're ready. + + + + Open SQLiteStudio home page. + Open SQLiteStudio home page. + + + + Read release notes && download package yourself. + Read release notes && download package yourself. + + + + Just close this window. + Just close this window. + + + + Check for updates on startup + Check for updates on startup + + + + Not now. + Not now. + + + + PopulateConfigDialog + + + Populating configuration + Populating configuration + + + + Configuring <b>%1</b> for column <b>%2</b> + Configuring <b>%1</b> for column <b>%2</b> + + + + PopulateDialog + + + Populate table + Populate table + + + + Database + Database + + + + Table + Table + + + + Columns + Columns + + + + Number of rows to populate: + Number of rows to populate: + + + + Populate + populate dialog button + Populate + + + + Abort + Abort + + + + Configure + Configure + + + + Populating configuration for this column is invalid or incomplete. + Populating configuration for this column is invalid or incomplete. + + + + Select database with table to populate + Select database with table to populate + + + + Select table to populate + Select table to populate + + + + You have to select at least one column. + You have to select at least one column. + + + + QObject + + + Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). + Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). + + + + The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. + The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. + + + + Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. + Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. + + + + Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. + Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. + + + + Cannot edit results of query other than %1. + Cannot edit results of query other than %1. + + + + Cannot edit columns that are result of aggregated %1 statements. + Cannot edit columns that are result of aggregated %1 statements. + + + + Cannot edit columns that are result of %1 statement. + Cannot edit columns that are result of %1 statement. + + + + Cannot edit columns that are result of common table expression statement (%1). + Cannot edit columns that are result of common table expression statement (%1). + + + + Cannot edit table generated columns. + Cannot edit table generated columns. + + + + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). + + + + + + + on conflict: %1 + data view tooltip + on conflict: %1 + + + + references table %1, column %2 + data view tooltip + references table %1, column %2 + + + + condition: %1 + data view tooltip + condition: %1 + + + + collation name: %1 + data view tooltip + collation name: %1 + + + + Data grid view + Data grid view + + + + Edit current cell inline + Edit current cell inline + + + + Copy cell(s) contents to clipboard + Copy cell(s) contents to clipboard + + + + Copy cell(s) contents together with header to clipboard + Copy cell(s) contents together with header to clipboard + + + + Paste cell(s) contents from clipboard + Paste cell(s) contents from clipboard + + + + Set empty value to selected cell(s) + Set empty value to selected cell(s) + + + + Set NULL value to selected cell(s) + Set NULL value to selected cell(s) + + + + Commit changes to cell(s) contents + Commit changes to cell(s) contents + + + + Rollback changes to cell(s) contents + Rollback changes to cell(s) contents + + + + Delete selected data row + Delete selected data row + + + + Insert new data row + Insert new data row + + + + Open contents of selected cell in a separate editor + Open contents of selected cell in a separate editor + + + + Toggle the height adjustment of rows + Toggle the height adjustment of rows + + + + Increase font size + data view + Increase font size + + + + Decrease font size + data view + Decrease font size + + + + Total pages available: %1 + Total pages available: %1 + + + + Total rows loaded: %1 + Total rows loaded: %1 + + + + Data view (both grid and form) + Data view (both grid and form) + + + + Refresh data + Refresh data + + + + Switch to grid view of the data + Switch to grid view of the data + + + + Switch to form view of the data + Switch to form view of the data + + + + Database list + Database list + + + + Delete selected item + Delete selected item + + + + Clear filter contents + Clear filter contents + + + + Refresh schema + Refresh schema + + + + Refresh all schemas + Refresh all schemas + + + + Add database + Add database + + + + Select all items + Select all items + + + + Copy selected item(s) + Copy selected item(s) + + + + + + Paste from clipboard + Paste from clipboard + + + + Increase font size + database list + Increase font size + + + + Decrease font size + database list + Decrease font size + + + + Tables + Tables + + + + Indexes + Indexes + + + + Triggers + Triggers + + + + Views + Views + + + + Columns + Columns + + + + Data form view + Data form view + + + + Commit changes for current row + Commit changes for current row + + + + Rollback changes for current row + Rollback changes for current row + + + + Go to first row on current page + Go to first row on current page + + + + Go to next row + Go to next row + + + + Go to previous row + Go to previous row + + + + Go to last row on current page + Go to last row on current page + + + + Insert new row + Insert new row + + + + Delete current row + Delete current row + + + + Main window + Main window + + + + Open SQL editor + Open SQL editor + + + + Open DDL history window + Open DDL history window + + + + Open snippets editor window + Open snippets editor window + + + + Open function editor window + Open function editor window + + + + Open collation editor window + Open collation editor window + + + + Open extension manager window + Open extension manager window + + + + Previous window + Previous window + + + + Next window + Next window + + + + Hide status area + Hide status area + + + + Open user manual + Open user manual + + + + Open configuration dialog + Open configuration dialog + + + + Open Debug Console + Open Debug Console + + + + Open CSS Console + Open CSS Console + + + + Open the About dialog + Open the About dialog + + + + Quit the application + Quit the application + + + + Cell text value editor + Cell text value editor + + + + + Cut selected text + Cut selected text + + + + + Copy selected text + Copy selected text + + + + + Delete selected text + Delete selected text + + + + + Undo + Undo + + + + + Redo + Redo + + + + SQL editor input field + SQL editor input field + + + + Select whole editor contents + Select whole editor contents + + + + Save contents into a file + Save contents into a file + + + + Load contents from a file + Load contents from a file + + + + Find in text + Find in text + + + + Find next + Find next + + + + Find previous + Find previous + + + + Replace in text + Replace in text + + + + Delete current line + Delete current line + + + + Request code assistant + Request code assistant + + + + Format contents + Format contents + + + + Move selected block of text one line down + Move selected block of text one line down + + + + Move selected block of text one line up + Move selected block of text one line up + + + + Copy selected block of text and paste it a line below + Copy selected block of text and paste it a line below + + + + Copy selected block of text and paste it a line above + Copy selected block of text and paste it a line above + + + + Toggle comment + Toggle comment + + + + Increase font size + sql editor + Increase font size + + + + Decrease font size + sql editor + Decrease font size + + + + All SQLite databases + All SQLite databases + + + + All files + All files + + + + Select database file + Select database file + + + + Select + Select + + + + File type + File type + + + + SQL editor window + SQL editor window + + + + Execute query + Execute query + + + + Execute single query under cursor + Execute single query under cursor + + + + Execute all queries in editor + Execute all queries in editor + + + + Execute "%1" query + Execute "%1" query + + + + Switch current working database to previous on the list + Switch current working database to previous on the list + + + + Switch current working database to next on the list + Switch current working database to next on the list + + + + Go to next editor tab + Go to next editor tab + + + + Go to previous editor tab + Go to previous editor tab + + + + Move keyboard input focus to the results view below + Move keyboard input focus to the results view below + + + + Move keyboard input focus to the SQL editor above + Move keyboard input focus to the SQL editor above + + + + Delete selected SQL history entries + Delete selected SQL history entries + + + + Table window + Table window + + + + Commit the table structure + Commit the table structure + + + + Rollback pending changes in the table structure + Rollback pending changes in the table structure + + + + Refresh table structure + Refresh table structure + + + + Add new column + Add new column + + + + Edit selected column + Edit selected column + + + + Delete selected column + Delete selected column + + + + Export table data + Export table data + + + + Import data to the table + Import data to the table + + + + Add new table constraint + Add new table constraint + + + + Edit selected table constraint + Edit selected table constraint + + + + Delete selected table constraint + Delete selected table constraint + + + + Refresh table index list + Refresh table index list + + + + Add new index + Add new index + + + + Edit selected index + Edit selected index + + + + Delete selected index + Delete selected index + + + + Refresh table trigger list + Refresh table trigger list + + + + + Add new trigger + Add new trigger + + + + + Edit selected trigger + Edit selected trigger + + + + + Delete selected trigger + Delete selected trigger + + + + + Go to next tab + Go to next tab + + + + + Go to previous tab + Go to previous tab + + + + A view window + A view window + + + + Commit the view's query + Commit the view's query + + + + Rollback pending changes in the view's query + Rollback pending changes in the view's query + + + + Refresh view trigger list + Refresh view trigger list + + + + Execute the view's query + Execute the view's query + + + + A code snippets editor window + A code snippets editor window + + + + + + + Commit the pending changes + Commit the pending changes + + + + + + + Rollback the pending changes + Rollback the pending changes + + + + A collation editor window + A collation editor window + + + + A function editor window + A function editor window + + + + A SQLite extension editor window + A SQLite extension editor window + + + + QuitConfirmDialog + + + Uncommitted changes + Uncommitted changes + + + + Are you sure you want to quit the application? + +Following items are pending: + Are you sure you want to quit the application? + +Following items are pending: + + + + SearchTextDialog + + + Find or replace + Find or replace + + + + Find: + Find: + + + + Case sensitive + Case sensitive + + + + Search backwards + Search backwards + + + + Regular expression matching + Regular expression matching + + + + Replace && +find next + Replace && +find next + + + + Replace with: + Replace with: + + + + Replace all + Replace all + + + + Find + Find + + + + SortDialog + + + Sort by columns + Sort by columns + + + + + Column + Column + + + + + Order + Order + + + + Sort by: %1 + Sort by: %1 + + + + Move column up + Move column up + + + + Move column down + Move column down + + + + SqlEditor + + + Wrap words + sql editor + Wrap words + + + + Cut + sql editor + Cut + + + + Copy + sql editor + Copy + + + + Paste + sql editor + Paste + + + + Delete + sql editor + Delete + + + + Select all + sql editor + Select all + + + + Undo + sql editor + Undo + + + + Redo + sql editor + Redo + + + + Complete + sql editor + Complete + + + + Format SQL + sql editor + Format SQL + + + + Save SQL to file + sql editor + Save SQL to file + + + + Select file to save SQL + sql editor + Select file to save SQL + + + + Load SQL from file + sql editor + Load SQL from file + + + + Delete line + sql editor + Delete line + + + + Move block down + sql editor + Move block down + + + + Move block up + sql editor + Move block up + + + + Copy block down + sql editor + Copy block down + + + + Copy up down + sql editor + Copy up down + + + + Find + sql editor + Find + + + + Find next + sql editor + Find next + + + + Find previous + sql editor + Find previous + + + + Replace + sql editor + Replace + + + + Toggle comment + sql editor + Toggle comment + + + + Increase font size + sql editor + Increase font size + + + + Decrease font size + sql editor + Decrease font size + + + + Could not open file '%1' for writing: %2 + Could not open file '%1' for writing: %2 + + + + Saved SQL contents to file: %1 + Saved SQL contents to file: %1 + + + + Syntax completion can be used only when a valid database is set for the SQL editor. + Syntax completion can be used only when a valid database is set for the SQL editor. + + + + Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. + Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. + + + + Save to file + Save to file + + + + SQL scripts (*.sql);;All files (*) + SQL scripts (*.sql);;All files (*) + + + + Open file + Open file + + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Reached the end of document. Hit the find again to restart the search. + Reached the end of document. Hit the find again to restart the search. + + + + SqlQueryItem + + + Committing error: + data view tooltip + Committing error: + + + + Column: + data view tooltip + Column: + + + + Data type: + data view + Data type: + + + + Table: + data view tooltip + Table: + + + + Constraints: + data view tooltip + Constraints: + + + + SqlQueryItemDelegate + + + + + + Cannot edit this cell. Details: %1 + Cannot edit this cell. Details: %1 + + + + The row is marked for deletion. + The row is marked for deletion. + + + + + Structure of this table has changed since last data was loaded. Reload the data to proceed. + Structure of this table has changed since last data was loaded. Reload the data to proceed. + + + + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). + + + + Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. + Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. + + + + SqlQueryModel + + + + Only one query can be executed simultaneously. + Only one query can be executed simultaneously. + + + + Cannot execute query on undefined or invalid database. + Cannot execute query on undefined or invalid database. + + + + Cannot execute empty query. + Cannot execute empty query. + + + + Uncommitted data + Uncommitted data + + + + There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. + There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. + + + + Cannot commit the data for a cell that refers to the already closed database. + Cannot commit the data for a cell that refers to the already closed database. + + + + Could not begin transaction on the database. Details: %1 + Could not begin transaction on the database. Details: %1 + + + + An error occurred while committing the transaction: %1 + An error occurred while committing the transaction: %1 + + + + An error occurred while rolling back the transaction: %1 + An error occurred while rolling back the transaction: %1 + + + + Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. + Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. + + + + An error occurred while committing the data: %1 + An error occurred while committing the data: %1 + + + + Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. + Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. + + + + + Error while executing SQL query on database '%1': %2 + Error while executing SQL query on database '%1': %2 + + + + Error while loading query results: %1 + Error while loading query results: %1 + + + + Insert multiple rows + Insert multiple rows + + + + Number of rows to insert: + Number of rows to insert: + + + + Delete rows + Delete rows + + + + You're about to delete newly inserted rows that are not committed yet. Row numbers: %1 +Such deletion will be permanent. Are you sure you want to delete them? + You're about to delete newly inserted rows that are not committed yet. Row numbers: %1 +Such deletion will be permanent. Are you sure you want to delete them? + + + + SqlQueryView + + + Go to referenced row in... + Go to referenced row in... + + + + Copy + Copy + + + + Copy with headers + Copy with headers + + + + Copy as... + Copy as... + + + + Paste + Paste + + + + Paste as... + Paste as... + + + + Set NULL values + Set NULL values + + + + Erase values + Erase values + + + + Commit + Commit + + + + Rollback + Rollback + + + + Commit selected cells + Commit selected cells + + + + Rollback selected cells + Rollback selected cells + + + + Edit current cell inline + Edit current cell inline + + + + Define columns to sort by + Define columns to sort by + + + + Remove custom sorting + Remove custom sorting + + + + Insert row + Insert row + + + + Insert multiple rows + Insert multiple rows + + + + Delete selected row + Delete selected row + + + + Adjust height of rows + Adjust height of rows + + + + Increase font size + data view + Increase font size + + + + Decrease font size + data view + Decrease font size + + + + Invert selection + data view + Invert selection + + + + Edit value in editor + Edit value in editor + + + + Show value in a viewer + Show value in a viewer + + + + Generate query for selected cells + Generate query for selected cells + + + + No items selected to paste clipboard contents to. + No items selected to paste clipboard contents to. + + + + Cannot paste data. Details: %1 + Cannot paste data. Details: %1 + + + + Structure of at least one table used has changed since last data was loaded. Reload the data to proceed. + Structure of at least one table used has changed since last data was loaded. Reload the data to proceed. + + + + Cannot paste to a cell. Details: %1 + Cannot paste to a cell. Details: %1 + + + + The row is marked for deletion. + The row is marked for deletion. + + + + Cannot paste to column %1. Details: %2 + Cannot paste to column %1. Details: %2 + + + + Go to referenced row in table '%1' + Go to referenced row in table '%1' + + + + table '%1' + table '%1' + + + + Referenced row (%1) + Referenced row (%1) + + + + Trim pasted text? + Trim pasted text? + + + + The pasted text contains leading or trailing white space. Trim it automatically? + The pasted text contains leading or trailing white space. Trim it automatically? + + + + Paste "NULL" as null value? + Paste "NULL" as null value? + + + + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + + + + Edit value + Edit value + + + + SqlTableModel + + + Error while committing new row: %1 + Error while committing new row: %1 + + + + Error while deleting row from table %1: %2 + Error while deleting row from table %1: %2 + + + + SqliteExtensionEditor + + + Filter extensions + Filter extensions + + + + Leave empty to use default function + Leave empty to use default function + + + + Extension file + Extension file + + + + Initialization function + Initialization function + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Extension manager window has uncommitted modifications. + Extension manager window has uncommitted modifications. + + + + Extension manager + Extension manager + + + + Commit all extension changes + Commit all extension changes + + + + Rollback all extension changes + Rollback all extension changes + + + + Add new extension + Add new extension + + + + Remove selected extension + Remove selected extension + + + + Editing extensions manual + Editing extensions manual + + + + File with given path does not exist or is not readable. + File with given path does not exist or is not readable. + + + + Unable to load extension: %1 + Unable to load extension: %1 + + + + Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. + Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. + + + + Dynamic link libraries (*.dll);;All files (*) + Dynamic link libraries (*.dll);;All files (*) + + + + Shared objects (*.so);;All files (*) + Shared objects (*.so);;All files (*) + + + + Dynamic libraries (*.dylib);;All files (*) + Dynamic libraries (*.dylib);;All files (*) + + + + All files (*) + All files (*) + + + + Open file + Open file + + + + StatusField + + + Status + Status + + + + Copy + Copy + + + + Clear + Clear + + + + TableConstraintsModel + + + Type + table constraints + Type + + + + Details + table constraints + Details + + + + Name + table constraints + Name + + + + TableForeignKeyPanel + + + Foreign table: + Foreign table: + + + + Columns + Columns + + + + Local column + Local column + + + + Foreign column + Foreign column + + + + Reactions + Reactions + + + + Deferred foreign key + Deferred foreign key + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + Pick the foreign column. + Pick the foreign column. + + + + Pick the foreign table. + Pick the foreign table. + + + + Select at least one foreign column. + Select at least one foreign column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + Foreign column + table constraints + Foreign column + + + + TablePrimaryKeyAndUniquePanel + + + Columns + Columns + + + + Column + Column + + + + Collation + Collation + + + + Sort + Sort + + + + Valid only for a single column with INTEGER data type + Valid only for a single column with INTEGER data type + + + + Autoincrement + Autoincrement + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + On conflict + On conflict + + + + Collate + table constraints + Collate + + + + Sort order + table constraints + Sort order + + + + Select at least one column. + Select at least one column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + TableStructureModel + + + Name + table structure columns + Name + + + + Data type + table structure columns + Data type + + + + Primary +Key + table structure columns + Primary +Key + + + + Foreign +Key + table structure columns + Foreign +Key + + + + Unique + table structure columns + Unique + + + + Check + table structure columns + Check + + + + Not +NULL + table structure columns + Not +NULL + + + + Collate + table structure columns + Collate + + + + Generated + table structure columns + Generated + + + + Default value + table structure columns + Default value + + + + TableWindow + + + Structure + Structure + + + + Table name: + Table name: + + + + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + + + + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + + + + + Data + Data + + + + Constraints + Constraints + + + + Indexes + Indexes + + + + Triggers + Triggers + + + + DDL + DDL + + + + Export table + table window + Export table + + + + Import data to table + table window + Import data to table + + + + Populate table + table window + Populate table + + + + Refresh structure + table window + Refresh structure + + + + Commit structure changes + table window + Commit structure changes + + + + Rollback structure changes + table window + Rollback structure changes + + + + Add column + table window + Add column + + + + Edit column + table window + Edit column + + + + + Delete column + table window + Delete column + + + + Move column up + table window + Move column up + + + + Move column down + table window + Move column down + + + + Create similar table + table window + Create similar table + + + + Reset autoincrement value + table window + Reset autoincrement value + + + + Add table constraint + table window + Add table constraint + + + + Edit table constraint + table window + Edit table constraint + + + + Delete table constraint + table window + Delete table constraint + + + + Move table constraint up + table window + Move table constraint up + + + + Move table constraint down + table window + Move table constraint down + + + + Add table primary key + table window + Add table primary key + + + + Add table foreign key + table window + Add table foreign key + + + + Add table unique constraint + table window + Add table unique constraint + + + + Add table check constraint + table window + Add table check constraint + + + + Refresh index list + table window + Refresh index list + + + + + Create index + table window + Create index + + + + Edit index + table window + Edit index + + + + Delete index + table window + Delete index + + + + Refresh trigger list + table window + Refresh trigger list + + + + + Create trigger + table window + Create trigger + + + + Edit trigger + table window + Edit trigger + + + + Delete trigger + table window + Delete trigger + + + + Are you sure you want to delete column '%1'? + table window + Are you sure you want to delete column '%1'? + + + + Following problems will take place while modifying the table. +Would you like to proceed? + table window + Following problems will take place while modifying the table. +Would you like to proceed? + + + + Table modification + table window + Table modification + + + + Could not load data for table %1. Error details: %2 + Could not load data for table %1. Error details: %2 + + + + Could not process the %1 table correctly. Unable to open a table window. + Could not process the %1 table correctly. Unable to open a table window. + + + + Database + Database + + + + Could not restore window %1, because no database or table was stored in session for this window. + Could not restore window %1, because no database or table was stored in session for this window. + + + + Could not restore window '%1', because no database or table was stored in session for this window. + Could not restore window '%1', because no database or table was stored in session for this window. + + + + Could not restore window '%1', because database %2 could not be resolved. + Could not restore window '%1', because database %2 could not be resolved. + + + + Could not restore window '%1', because the table %2 doesn't exist in the database %3. + Could not restore window '%1', because the table %2 doesn't exist in the database %3. + + + + + New table %1 + New table %1 + + + + Committed changes for table '%1' successfully. + Committed changes for table '%1' successfully. + + + + Committed changes for table '%1' (named before '%2') successfully. + Committed changes for table '%1' (named before '%2') successfully. + + + + Could not commit table structure. Error message: %1 + table window + Could not commit table structure. Error message: %1 + + + + Reset autoincrement + Reset autoincrement + + + + Are you sure you want to reset autoincrement value for table '%1'? + Are you sure you want to reset autoincrement value for table '%1'? + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + An error occurred while trying to reset autoincrement value for table '%1': %2 + + + + Autoincrement value for table '%1' has been reset successfully. + Autoincrement value for table '%1' has been reset successfully. + + + + Empty name + Empty name + + + + A blank name for the table is allowed in SQLite, but it is not recommended. +Are you sure you want to create a table with blank name? + A blank name for the table is allowed in SQLite, but it is not recommended. +Are you sure you want to create a table with blank name? + + + + Cannot create a table without at least one column. + Cannot create a table without at least one column. + + + + Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. + Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. + + + + Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. + Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. + + + + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 + + + + Are you sure you want to delete table constraint '%1'? + table window + Are you sure you want to delete table constraint '%1'? + + + + Delete constraint + table window + Delete constraint + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + Uncommitted changes + Uncommitted changes + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + + + + Go back to structure tab + Go back to structure tab + + + + Commit modifications and browse data. + Commit modifications and browse data. + + + + Name + table window indexes + Name + + + + Unique + table window indexes + Unique + + + + Columns + table window indexes + Columns + + + + Partial index condition + table window indexes + Partial index condition + + + + Name + table window triggers + Name + + + + Event + table window triggers + Event + + + + Condition + table window triggers + Condition + + + + Details + table window triggers + Details + + + + Table window "%1" has uncommitted structure modifications and data. + Table window "%1" has uncommitted structure modifications and data. + + + + Table window "%1" has uncommitted data. + Table window "%1" has uncommitted data. + + + + Table window "%1" has uncommitted structure modifications. + Table window "%1" has uncommitted structure modifications. + + + + TriggerColumnsDialog + + + Trigger columns + Trigger columns + + + + Triggering columns: + Triggering columns: + + + + Select all + Select all + + + + Deselect all + Deselect all + + + + TriggerDialog + + + + Trigger + Trigger + + + + On table: + On table: + + + + Action: + Action: + + + + + <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> + <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> + + + + Pre-condition: + Pre-condition: + + + + The scope is still not fully supported by the SQLite database. + The scope is still not fully supported by the SQLite database. + + + + Trigger name: + Trigger name: + + + + When: + When: + + + + List of columns for UPDATE OF action. + List of columns for UPDATE OF action. + + + + Scope: + Scope: + + + + Code: + Code: + + + + Trigger statements to be executed. + Trigger statements to be executed. + + + + DDL + DDL + + + + On view: + On view: + + + + Could not process trigger %1 correctly. Unable to open a trigger dialog. + Could not process trigger %1 correctly. Unable to open a trigger dialog. + + + + Enter a valid condition. + Enter a valid condition. + + + + Enter a valid trigger code. + Enter a valid trigger code. + + + + Error + trigger dialog + Error + + + + An error occurred while executing SQL statements: +%1 + An error occurred while executing SQL statements: +%1 + + + + VersionConvertSummaryDialog + + + Database version convert + Database version convert + + + + Following changes to the SQL statements will be made: + Following changes to the SQL statements will be made: + + + + Before + Before + + + + After + After + + + + ViewWindow + + + Query + Query + + + + View name: + View name: + + + + Output column names + Output column names + + + + + Data + Data + + + + Triggers + Triggers + + + + DDL + DDL + + + + + Could not restore window '%1', because no database or view was stored in session for this window. + Could not restore window '%1', because no database or view was stored in session for this window. + + + + Could not restore window '%1', because database %2 could not be resolved. + Could not restore window '%1', because database %2 could not be resolved. + + + + Could not restore window '%1', because database %2 could not be open. + Could not restore window '%1', because database %2 could not be open. + + + + Could not restore window '%1', because the view %2 doesn't exist in the database %3. + Could not restore window '%1', because the view %2 doesn't exist in the database %3. + + + + + New view %1 + New view %1 + + + + Database + Database + + + + Refresh the view + view window + Refresh the view + + + + Commit the view changes + view window + Commit the view changes + + + + Rollback the view changes + view window + Rollback the view changes + + + + Explicit column names + Explicit column names + + + + Generate output column names automatically basing on result columns of the view. + Generate output column names automatically basing on result columns of the view. + + + + Add column + view window + Add column + + + + Edit column + view window + Edit column + + + + Delete column + view window + Delete column + + + + Move column up + view window + Move column up + + + + Move column down + view window + Move column down + + + + Refresh trigger list + view window + Refresh trigger list + + + + Create new trigger + view window + Create new trigger + + + + Edit selected trigger + view window + Edit selected trigger + + + + Delete selected trigger + view window + Delete selected trigger + + + + View window "%1" has uncommitted structure modifications and data. + View window "%1" has uncommitted structure modifications and data. + + + + View window "%1" has uncommitted data. + View window "%1" has uncommitted data. + + + + View window "%1" has uncommitted structure modifications. + View window "%1" has uncommitted structure modifications. + + + + Could not load data for view %1. Error details: %2 + Could not load data for view %1. Error details: %2 + + + + Uncommitted changes + Uncommitted changes + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + + + + Go back to structure tab + Go back to structure tab + + + + Commit modifications and browse data. + Commit modifications and browse data. + + + + View '%1' was committed successfully. + View '%1' was committed successfully. + + + + Committed changes for view '%1' successfully. + Committed changes for view '%1' successfully. + + + + Committed changes for view '%1' (named before '%2') successfully. + Committed changes for view '%1' (named before '%2') successfully. + + + + Could not commit view changes. Error message: %1 + view window + Could not commit view changes. Error message: %1 + + + + Override columns + Override columns + + + + Currently defined columns will be overriden. Do you want to continue? + Currently defined columns will be overriden. Do you want to continue? + + + + Could not determinate columns returned from the view. The query is problably incomplete or contains errors. + Could not determinate columns returned from the view. The query is problably incomplete or contains errors. + + + + Name + view window triggers + Name + + + + Instead of + view window triggers + Instead of + + + + Condition + view window triggers + Condition + + + + Details + table window triggers + Details + + + + Could not process the %1 view correctly. Unable to open a view window. + Could not process the %1 view correctly. Unable to open a view window. + + + + Empty name + Empty name + + + + A blank name for the view is allowed in SQLite, but it is not recommended. +Are you sure you want to create a view with blank name? + A blank name for the view is allowed in SQLite, but it is not recommended. +Are you sure you want to create a view with blank name? + + + + The SELECT statement could not be parsed. Please correct the query and retry. +Details: %1 + The SELECT statement could not be parsed. Please correct the query and retry. +Details: %1 + + + + The view could not be modified due to internal SQLiteStudio error. Please report this! + The view could not be modified due to internal SQLiteStudio error. Please report this! + + + + The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. + The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. + + + + Following problems will take place while modifying the view. +Would you like to proceed? + view window + Following problems will take place while modifying the view. +Would you like to proceed? + + + + View modification + view window + View modification + + + + WidgetCover + + + Interrupt + Interrupt + + + diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_ca_ES.ts b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_ca_ES.ts new file mode 100644 index 0000000..5d58b1f --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_ca_ES.ts @@ -0,0 +1,7111 @@ + + + + + AboutDialog + + + About SQLiteStudio and licenses + About SQLiteStudio and licenses + + + + About + About + + + + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + + + + Licenses + Licenses + + + + Environment + Environment + + + + Icon directories + Icon directories + + + + Form directories + Form directories + + + + SQLite extension directories + SQLite extension directories + + + + Plugin directories + Plugin directories + + + + Configuration directory + Configuration directory + + + + Application directory + Application directory + + + + Qt version: + Qt version: + + + + SQLite 3 version: + SQLite 3 version: + + + + Portable distribution. + Portable distribution. + + + + MacOS X application bundle distribution. + MacOS X application bundle distribution. + + + + Operating system managed distribution. + Operating system managed distribution. + + + + <h3>Table of contents:</h3><ol>%2</ol> + <h3>Table of contents:</h3><ol>%2</ol> + + + + BindParamsDialog + + + Query parameters + Query parameters + + + + Please provide values for query parameters + Please provide values for query parameters + + + + CodeSnippetEditor + + + Filter snippets + Filter snippets + + + + + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + + + + + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + + + + Snippet name + Snippet name + + + + Code assistant shortcut + Code assistant shortcut + + + + Snippet code + Snippet code + + + + Code Snippets editor window has uncommitted modifications. + Code Snippets editor window has uncommitted modifications. + + + + Code Snippets editor + Code Snippets editor + + + + Commit all snippet changes + Commit all snippet changes + + + + Rollback all snippet changes + Rollback all snippet changes + + + + Create new snippet + Create new snippet + + + + Delete selected snippet + Delete selected snippet + + + + Move the snippet up + Move the snippet up + + + + Move the snippet down + Move the snippet down + + + + Code snippets manual + Code snippets manual + + + + Enter a non-empty, unique name of the snippet. + Enter a non-empty, unique name of the snippet. + + + + Enter a non-empty snippet content. + Enter a non-empty snippet content. + + + + This hotkey is not unique in context of a code assistant. + This hotkey is not unique in context of a code assistant. + + + + CollationsEditor + + + Filter collations + Filter collations + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Implementation code: + Implementation code: + + + + Collation name: + Collation name: + + + + Implementation language: + Implementation language: + + + + Collations editor + Collations editor + + + + Commit all collation changes + Commit all collation changes + + + + Rollback all collation changes + Rollback all collation changes + + + + Create new collation + Create new collation + + + + Delete selected collation + Delete selected collation + + + + Editing collations manual + Editing collations manual + + + + Enter a non-empty, unique name of the collation. + Enter a non-empty, unique name of the collation. + + + + Pick the implementation language. + Pick the implementation language. + + + + Enter a non-empty implementation code. + Enter a non-empty implementation code. + + + + Collations editor window has uncommitted modifications. + Collations editor window has uncommitted modifications. + + + + ColorButton + + + Pick a color + Pick a color + + + + ColumnCollatePanel + + + Collation name: + Collation name: + + + + Named constraint: + Named constraint: + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + Enter a collation name. + Enter a collation name. + + + + ColumnDefaultPanel + + + Default value: + Default value: + + + + Named constraint: + Named constraint: + + + + Enter a default value expression. + Enter a default value expression. + + + + Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. + Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. + + + + Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. + Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ColumnDialog + + + Column + Column + + + + Name and type + Name and type + + + + Scale + Scale + + + + Precision + Precision + + + + Data type: + Data type: + + + + Column name: + Column name: + + + + Size: + Size: + + + + Constraints + Constraints + + + + Generated value + Generated value + + + + Unique + Unique + + + + + + + + + + + Configure + Configure + + + + Foreign Key + Foreign Key + + + + Collate + Collate + + + + Not NULL + Not NULL + + + + Check condition + Check condition + + + + Primary Key + Primary Key + + + + Default + Default + + + + Advanced mode + Advanced mode + + + + Add constraint + column dialog + Add constraint + + + + Edit constraint + column dialog + Edit constraint + + + + + Delete constraint + column dialog + Delete constraint + + + + Move constraint up + column dialog + Move constraint up + + + + Move constraint down + column dialog + Move constraint down + + + + Add a primary key + column dialog + Add a primary key + + + + Add a foreign key + column dialog + Add a foreign key + + + + Add an unique constraint + column dialog + Add an unique constraint + + + + Add a check constraint + column dialog + Add a check constraint + + + + Add a not null constraint + column dialog + Add a not null constraint + + + + Add a collate constraint + column dialog + Add a collate constraint + + + + Add a generated value constraint + column dialog + Add a generated value constraint + + + + Add a default constraint + column dialog + Add a default constraint + + + + Are you sure you want to delete constraint '%1'? + column dialog + Are you sure you want to delete constraint '%1'? + + + + Correct the constraint's configuration. + Correct the constraint's configuration. + + + + Scale is not allowed for INTEGER PRIMARY KEY columns. + Scale is not allowed for INTEGER PRIMARY KEY columns. + + + + Precision cannot be defined without the scale. + Precision cannot be defined without the scale. + + + + Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. + Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. + + + + INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. + INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. + + + + Precision is not allowed for INTEGER PRIMARY KEY columns. + Precision is not allowed for INTEGER PRIMARY KEY columns. + + + + Could not match valid STRICT table datatype from declared type: %1. + Could not match valid STRICT table datatype from declared type: %1. + + + + ColumnDialogConstraintsModel + + + Type + column dialog constraints + Type + + + + Name + column dialog constraints + Name + + + + Details + column dialog constraints + Details + + + + ColumnForeignKeyPanel + + + Foreign table: + Foreign table: + + + + Foreign column: + Foreign column: + + + + Reactions + Reactions + + + + Deferred foreign key + Deferred foreign key + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + Pick the foreign table. + Pick the foreign table. + + + + Pick the foreign column. + Pick the foreign column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ColumnGeneratedPanel + + + Generating code: + Generating code: + + + + Explicit type: + Explicit type: + + + + Use "GENERATED ALWAYS" keywords + Use "GENERATED ALWAYS" keywords + + + + Named constraint: + Named constraint: + + + + Enter the column value generating expression. + Enter the column value generating expression. + + + + Invalid value generating expression: %1. + Invalid value generating expression: %1. + + + + Invalid value generating expression. + Invalid value generating expression. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ColumnPrimaryKeyPanel + + + Autoincrement + Autoincrement + + + + Sort order: + Sort order: + + + + Named constraint: + Named constraint: + + + + On conflict: + On conflict: + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + Descending order is not allowed with AUTOINCREMENT. + Descending order is not allowed with AUTOINCREMENT. + + + + ColumnUniqueAndNotNullPanel + + + Named constraint: + Named constraint: + + + + On conflict: + On conflict: + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + CompleterWindow + + + Column: %1 + completer statusbar + Column: %1 + + + + Table: %1 + completer statusbar + Table: %1 + + + + Index: %1 + completer statusbar + Index: %1 + + + + Trigger: %1 + completer statusbar + Trigger: %1 + + + + View: %1 + completer statusbar + View: %1 + + + + Database: %1 + completer statusbar + Database: %1 + + + + Keyword: %1 + completer statusbar + Keyword: %1 + + + + Function: %1 + completer statusbar + Function: %1 + + + + Operator: %1 + completer statusbar + Operator: %1 + + + + String + completer statusbar + String + + + + Number + completer statusbar + Number + + + + Binary data + completer statusbar + Binary data + + + + Collation: %1 + completer statusbar + Collation: %1 + + + + Pragma function: %1 + completer statusbar + Pragma function: %1 + + + + Insert a code snippet + Insert a code snippet + + + + ConfigDialog + + + + Configuration + Configuration + + + + Search + Search + + + + General + General + + + + Keyboard shortcuts + Keyboard shortcuts + + + + Look & feel + Look & feel + + + + Style + Style + + + + Fonts + Fonts + + + + Code colors + Code colors + + + + + Database list + Database list + + + + Code assistant + Code assistant + + + + Data browsing + Data browsing + + + + Data editors + Data editors + + + + Plugins + Plugins + + + + Code formatters + Code formatters + + + + If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. + If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. + + + + Sort table columns alphabetically + Sort table columns alphabetically + + + + Expand tables node when connected to a database + Expand tables node when connected to a database + + + + <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> + <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> + + + + Display additional labels on the list + Display additional labels on the list + + + + For regular tables labels will show number of columns, indexes and triggers for each of tables. + For regular tables labels will show number of columns, indexes and triggers for each of tables. + + + + Display labels for regular tables + Display labels for regular tables + + + + Virtual tables will be marked with a 'virtual' label. + Virtual tables will be marked with a 'virtual' label. + + + + Display labels for virtual tables + Display labels for virtual tables + + + + Expand views node when connected to a database + Expand views node when connected to a database + + + + If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) + If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) + + + + Sort objects (tables, indexes, triggers and views) alphabetically + Sort objects (tables, indexes, triggers and views) alphabetically + + + + Display system tables and indexes on the list + Display system tables and indexes on the list + + + + Database dialog window + Database dialog window + + + + <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> + <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> + + + + Do not mark database to be "permanent" by default + Do not mark database to be "permanent" by default + + + + <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> + <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> + + + + Try to bypass dialog completly when dropping database file onto the list + Try to bypass dialog completly when dropping database file onto the list + + + + Data browsing and editing + Data browsing and editing + + + + + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + + + + Number of memorized table populating configurations + Number of memorized table populating configurations + + + + Data column width + Data column width + + + + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + + + + Enlarge column when entering value longer than current width + Enlarge column when entering value longer than current width + + + + <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> + <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> + + + + Number of data rows per page: + Number of data rows per page: + + + + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> + + + + Show column and row details tooltip in data view + Show column and row details tooltip in data view + + + + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + + + + Keep NULL value when entering empty value + Keep NULL value when entering empty value + + + + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> + + + + Use DEFAULT value (if defined), when committing NULL value + Use DEFAULT value (if defined), when committing NULL value + + + + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + + + + Limit number of rows for in case of dozens of columns + Limit number of rows for in case of dozens of columns + + + + Inserting new row in data grid + Inserting new row in data grid + + + + Before currently selected row + Before currently selected row + + + + After currently selected row + After currently selected row + + + + At the end of data view + At the end of data view + + + + Table windows + Table windows + + + + <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> + <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> + + + + Open Table Windows with the data tab for start + Open Table Windows with the data tab for start + + + + <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> + <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> + + + + Place data tab as first tab in a Table Window + Place data tab as first tab in a Table Window + + + + View windows + View windows + + + + <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> + <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> + + + + Open View Windows with the data tab for start + Open View Windows with the data tab for start + + + + <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> + <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> + + + + Place data tab as first tab in a View Window + Place data tab as first tab in a View Window + + + + Data types + Data types + + + + Available editors: + Available editors: + + + + Editors selected for this data type: + Editors selected for this data type: + + + + Schema editing + Schema editing + + + + Number of DDL changes kept in history. + Number of DDL changes kept in history. + + + + DDL history size: + DDL history size: + + + + Don't show DDL preview dialog when committing schema changes + Don't show DDL preview dialog when committing schema changes + + + + SQL queries + SQL queries + + + + + Number of queries kept in the history. + Number of queries kept in the history. + + + + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> + + + + History size: + History size: + + + + + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> + + + + Execute only the query under the cursor + Execute only the query under the cursor + + + + Number of memorized query parameters + Number of memorized query parameters + + + + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + + + + Use scientific notation for real numbers in the grid view + Use scientific notation for real numbers in the grid view + + + + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + + + + Limit automatic data column width to (in pixels): + Limit automatic data column width to (in pixels): + + + + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + + + + Keep at least the width to show complete column name + Keep at least the width to show complete column name + + + + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + + + + Wrap lines in SQL editor + Wrap lines in SQL editor + + + + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + + + + Highlight current query + Highlight current query + + + + Updates + Updates + + + + Automatically check for updates at startup + Automatically check for updates at startup + + + + Session + Session + + + + Restore last session (active MDI windows) after startup + Restore last session (active MDI windows) after startup + + + + Allow multiple instances of the application at the same time + Allow multiple instances of the application at the same time + + + + Status Field + Status Field + + + + <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> + <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> + + + + Always open Status panel when new message is printed + Always open Status panel when new message is printed + + + + Code syntax colors + Code syntax colors + + + + Keyword foreground + Keyword foreground + + + + Regular foreground + Regular foreground + + + + String foreground + String foreground + + + + Comment foreground + Comment foreground + + + + Valid objects foreground + Valid objects foreground + + + + Current query background + Current query background + + + + Bind parameter foreground + Bind parameter foreground + + + + Current line background + Current line background + + + + Matched parenthesis background + Matched parenthesis background + + + + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + + + + Number foreground + Number foreground + + + + BLOB value foreground + BLOB value foreground + + + + Matched parenthesis foreground + Matched parenthesis foreground + + + + Reset to defaults + Reset to defaults + + + + Filter shortcuts by name or key combination + Filter shortcuts by name or key combination + + + + Action + Action + + + + Key combination + Key combination + + + + + Language + Language + + + + Changing language requires application restart to take effect. + Changing language requires application restart to take effect. + + + + Compact layout + Compact layout + + + + <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> + <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> + + + + Use compact layout + Use compact layout + + + + Main window dock areas + Main window dock areas + + + + Left and right areas occupy corners + Left and right areas occupy corners + + + + Top and bottom areas occupy corners + Top and bottom areas occupy corners + + + + Hide built-in plugins + Hide built-in plugins + + + + Current style: + Current style: + + + + Preview + Preview + + + + Enabled + Enabled + + + + Disabled + Disabled + + + + Active formatter plugin + Active formatter plugin + + + + SQL editor font + SQL editor font + + + + Database list font + Database list font + + + + Database list additional label font + Database list additional label font + + + + Data view font + Data view font + + + + Status field font + Status field font + + + + Code assistant settings + Code assistant settings + + + + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + + + + Automatically trigger the assistant after a dot is typed after an object name + Automatically trigger the assistant after a dot is typed after an object name + + + + Description: + plugin details + Description: + + + + Category: + plugin details + Category: + + + + Version: + plugin details + Version: + + + + Author: + plugin details + Author: + + + + Internal name: + plugin details + Internal name: + + + + Dependencies: + plugin details + Dependencies: + + + + Conflicts: + plugin details + Conflicts: + + + + Plugin details + Plugin details + + + + Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. + Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. + + + + %1 (built-in) + plugins manager in configuration dialog + %1 (built-in) + + + + Details + Details + + + + No plugins in this category. + No plugins in this category. + + + + Add new data type + Add new data type + + + + Rename selected data type + Rename selected data type + + + + Delete selected data type + Delete selected data type + + + + Help for configuring data type editors + Help for configuring data type editors + + + + Clear hotkey for this action + Clear hotkey for this action + + + + Restore original hotkey for this action + Restore original hotkey for this action + + + + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + + + + ConstraintCheckPanel + + + The condition + The condition + + + + Named constraint: + Named constraint: + + + + On conflict + On conflict + + + + Enter a valid condition. + Enter a valid condition. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ConstraintDialog + + + New constraint + constraint dialog + New constraint + + + + Create + constraint dialog + Create + + + + Edit constraint + dialog window + Edit constraint + + + + Apply + constraint dialog + Apply + + + + Primary key + table constraints + Primary key + + + + Foreign key + table constraints + Foreign key + + + + Unique + table constraints + Unique + + + + Not NULL + table constraints + Not NULL + + + + Check + table constraints + Check + + + + Generated + table constraints + Generated + + + + Collate + table constraints + Collate + + + + Default + table constraints + Default + + + + ConstraintTabModel + + + Table + table constraints + Table + + + + Column (%1) + table constraints + Column (%1) + + + + Scope + table constraints + Scope + + + + Type + table constraints + Type + + + + Details + table constraints + Details + + + + Name + table constraints + Name + + + + CssDebugDialog + + + SQLiteStudio CSS console + SQLiteStudio CSS console + + + + DataView + + + Filter data + data view + Filter data + + + + Grid view + Grid view + + + + Form view + Form view + + + + Refresh table data + data view + Refresh table data + + + + First page + data view + First page + + + + Previous page + data view + Previous page + + + + Next page + data view + Next page + + + + Last page + data view + Last page + + + + Commit changes for selected cells + data view + Commit changes for selected cells + + + + Rollback changes for selected cells + data view + Rollback changes for selected cells + + + + Show grid view of results + data view + Show grid view of results + + + + Show form view of results + data view + Show form view of results + + + + Filter by text (if contains) + data view + Filter by text (if contains) + + + + Filter strictly by text (if equals) + data view + Filter strictly by text (if equals) + + + + Tabs on top + data view + Tabs on top + + + + Tabs at bottom + data view + Tabs at bottom + + + + Place new rows above selected row + data view + Place new rows above selected row + + + + Place new rows below selected row + data view + Place new rows below selected row + + + + Place new rows at the end of the data view + data view + Place new rows at the end of the data view + + + + Total number of rows is being counted. +Browsing other pages will be possible after the row counting is done. + Total number of rows is being counted. +Browsing other pages will be possible after the row counting is done. + + + + Row: %1 + Row: %1 + + + + Filter + Filter + + + + Hit Enter key or press "Apply filter" button on toolbar to apply new value. + Hit Enter key or press "Apply filter" button on toolbar to apply new value. + + + + Filter by the Regular Expression + data view + Filter by the Regular Expression + + + + Filter by SQL expression + data view + Filter by SQL expression + + + + Show filter inputs per column + data view + Show filter inputs per column + + + + Apply filter + data view + Apply filter + + + + DbDialog + + + Database + Database + + + + Database type + Database type + + + + Database driver + Database driver + + + + + File + File + + + + Name (on the list) + Name (on the list) + + + + Options + Options + + + + <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> + aasfd + <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> + + + + Permanent (keep it in configuration) + Permanent (keep it in configuration) + + + + Test connection + Test connection + + + + Select new or existing file on local computer + Select new or existing file on local computer + + + + Browse + Browse + + + + Database type not selected. + Database type not selected. + + + + Database path not specified. + Database path not specified. + + + + Enter an unique database name. + Enter an unique database name. + + + + This name is already in use. Please enter unique name. + This name is already in use. Please enter unique name. + + + + <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> + <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> + + + + Enter a database file path. + Enter a database file path. + + + + This database is already on the list under name: %1 + This database is already on the list under name: %1 + + + + Select a database type. + Select a database type. + + + + DbObjectDialogs + + + Delete table + Delete table + + + + Are you sure you want to delete table %1? + Are you sure you want to delete table %1? + + + + Delete index + Delete index + + + + Are you sure you want to delete index %1? + Are you sure you want to delete index %1? + + + + Delete trigger + Delete trigger + + + + Are you sure you want to delete trigger %1? + Are you sure you want to delete trigger %1? + + + + Delete view + Delete view + + + + Are you sure you want to delete view %1? + Are you sure you want to delete view %1? + + + + + Error while dropping %1: %2 + Error while dropping %1: %2 + + + + Delete objects + Delete objects + + + + Are you sure you want to delete following objects: +%1 + Are you sure you want to delete following objects: +%1 + + + + Cannot start transaction. Details: %1 + Cannot start transaction. Details: %1 + + + + Cannot commit transaction. Details: %1 + Cannot commit transaction. Details: %1 + + + + DbTree + + + Databases + Databases + + + + Filter by name + Filter by name + + + + Copy + Copy + + + + Paste + Paste + + + + Select all + Select all + + + + Create a group + Create a group + + + + Delete the group + Delete the group + + + + Rename the group + Rename the group + + + + &Add a database + &Add a database + + + + &Edit the database + &Edit the database + + + + &Remove the database + &Remove the database + + + + &Connect to the database + &Connect to the database + + + + &Disconnect from the database + &Disconnect from the database + + + + Import + Import + + + + &Export the database + &Export the database + + + + Vac&uum + Vac&uum + + + + &Integrity check + &Integrity check + + + + Create a &table + Create a &table + + + + Edit the t&able + Edit the t&able + + + + Delete the ta&ble + Delete the ta&ble + + + + Export the table + Export the table + + + + Import into the table + Import into the table + + + + Populate table + Populate table + + + + Create similar table + Create similar table + + + + Reset autoincrement sequence + Reset autoincrement sequence + + + + Create an &index + Create an &index + + + + Edit the i&ndex + Edit the i&ndex + + + + Delete the in&dex + Delete the in&dex + + + + Create a trig&ger + Create a trig&ger + + + + Edit the trigg&er + Edit the trigg&er + + + + Delete the trigge&r + Delete the trigge&r + + + + Create a &view + Create a &view + + + + Edit the v&iew + Edit the v&iew + + + + Delete the vi&ew + Delete the vi&ew + + + + Add a column + Add a column + + + + Edit the column + Edit the column + + + + Delete the column + Delete the column + + + + Delete selected items + Delete selected items + + + + Clear filter + Clear filter + + + + &Refresh all database schemas + &Refresh all database schemas + + + + Re&fresh selected database schema + Re&fresh selected database schema + + + + + Erase table data + Erase table data + + + + Open file's directory + Open file's directory + + + + Execute SQL from file + Execute SQL from file + + + + Increase font size + database list + Increase font size + + + + Decrease font size + database list + Decrease font size + + + + + Database + Database + + + + Grouping + Grouping + + + + Generate query for table + Generate query for table + + + + + Create group + Create group + + + + Group name + Group name + + + + Entry with name %1 already exists in group %2. + Entry with name %1 already exists in group %2. + + + + Delete group + Delete group + + + + Are you sure you want to delete group %1? +All objects from this group will be moved to parent group. + Are you sure you want to delete group %1? +All objects from this group will be moved to parent group. + + + + Are you sure you want to remove database '%1' from the list? + Are you sure you want to remove database '%1' from the list? + + + + Are you sure you want to remove following databases from the list: +%1 + Are you sure you want to remove following databases from the list: +%1 + + + + Remove database + Remove database + + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Vacuum (%1) + Vacuum (%1) + + + + Integrity check (%1) + Integrity check (%1) + + + + Reset autoincrement + Reset autoincrement + + + + Are you sure you want to reset autoincrement value for table '%1'? + Are you sure you want to reset autoincrement value for table '%1'? + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + An error occurred while trying to reset autoincrement value for table '%1': %2 + + + + Autoincrement value for table '%1' has been reset successfully. + Autoincrement value for table '%1' has been reset successfully. + + + + Are you sure you want to delete all data from table(s): %1? + Are you sure you want to delete all data from table(s): %1? + + + + An error occurred while trying to delete data from table '%1': %2 + An error occurred while trying to delete data from table '%1': %2 + + + + All data has been deleted for table '%1'. + All data has been deleted for table '%1'. + + + + Following objects will be deleted: %1. + Following objects will be deleted: %1. + + + + Following databases will be removed from list: %1. + Following databases will be removed from list: %1. + + + + Remainig objects from deleted group will be moved in place where the group used to be. + Remainig objects from deleted group will be moved in place where the group used to be. + + + + %1<br><br>Are you sure you want to continue? + %1<br><br>Are you sure you want to continue? + + + + Delete objects + Delete objects + + + + DbTreeItemDelegate + + + error + dbtree labels + error + + + + (system table) + database tree label + (system table) + + + + (virtual) + virtual table label + (virtual) + + + + (system index) + database tree label + (system index) + + + + DbTreeModel + + + Database: %1 + dbtree tooltip + Database: %1 + + + + URI: + dbtree tooltip + URI: + + + + Version: + dbtree tooltip + Version: + + + + File size: + dbtree tooltip + File size: + + + + Encoding: + dbtree tooltip + Encoding: + + + + Error: + dbtree tooltip + Error: + + + + Table : %1 + dbtree tooltip + Table : %1 + + + + Columns (%1): + dbtree tooltip + Columns (%1): + + + + Indexes (%1): + dbtree tooltip + Indexes (%1): + + + + Triggers (%1): + dbtree tooltip + Triggers (%1): + + + + Copy + Copy + + + + Move + Move + + + + Include data + Include data + + + + Include indexes + Include indexes + + + + Include triggers + Include triggers + + + + Abort + Abort + + + + Could not add dropped database file '%1' automatically. Manual setup is necessary. + Could not add dropped database file '%1' automatically. Manual setup is necessary. + + + + Referenced tables + Referenced tables + + + + Do you want to include following referenced tables as well: +%1 + Do you want to include following referenced tables as well: +%1 + + + + Name conflict + Name conflict + + + + Following object already exists in the target database. +Please enter new, unique name, or press '%1' to abort the operation: + Following object already exists in the target database. +Please enter new, unique name, or press '%1' to abort the operation: + + + + SQL statements conversion + SQL statements conversion + + + + Following error occurred while converting SQL statements to the target SQLite version: + Following error occurred while converting SQL statements to the target SQLite version: + + + + Would you like to ignore those errors and proceed? + Would you like to ignore those errors and proceed? + + + + DdlHistoryWindow + + + Filter by database: + Filter by database: + + + + Clear entire history + Clear entire history + + + + -- Queries executed on database %1 (%2) +-- Date and time of execution: %3 +%4 + -- Queries executed on database %1 (%2) +-- Date and time of execution: %3 +%4 + + + + Clear history + Clear history + + + + Are you sure you want to erase entire DDL history? + Are you sure you want to erase entire DDL history? + + + + DDL history + DDL history + + + + DdlPreviewDialog + + + Queries to be executed + Queries to be executed + + + + Don't show again + Don't show again + + + + DebugConsole + + + SQLiteStudio Debug Console + SQLiteStudio Debug Console + + + + EditorWindow + + + SQL editor + SQL editor + + + + Query + Query + + + + History + History + + + + Results in the separate tab + Results in the separate tab + + + + Results below the query + Results below the query + + + + + SQL editor %1 + SQL editor %1 + + + + + Results + Results + + + + Execute query + Execute query + + + + Explain query + Explain query + + + + Clear execution history + sql editor + Clear execution history + + + + Export results + sql editor + Export results + + + + Create view from query + sql editor + Create view from query + + + + Previous database + Previous database + + + + Next database + Next database + + + + Show next tab + sql editor + Show next tab + + + + Show previous tab + sql editor + Show previous tab + + + + Focus results below + sql editor + Focus results below + + + + Focus SQL editor above + sql editor + Focus SQL editor above + + + + Delete selected SQL history entries + sql editor + Delete selected SQL history entries + + + + Execute single query under cursor + Execute single query under cursor + + + + Execute all queries in editor + Execute all queries in editor + + + + Active database (%1/%2) + Active database (%1/%2) + + + + Query finished in %1 second(s). Rows affected: %2 + Query finished in %1 second(s). Rows affected: %2 + + + + Query finished in %1 second(s). + Query finished in %1 second(s). + + + + Clear execution history + Clear execution history + + + + Are you sure you want to erase the entire SQL execution history? This cannot be undone. + Are you sure you want to erase the entire SQL execution history? This cannot be undone. + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + No database selected in the SQL editor. Cannot create a view for unknown database. + No database selected in the SQL editor. Cannot create a view for unknown database. + + + + Editor window "%1" has uncommitted data. + Editor window "%1" has uncommitted data. + + + + ErrorsConfirmDialog + + + Errors + Errors + + + + Following errors occured: + Following errors occured: + + + + Would you like to proceed? + Would you like to proceed? + + + + ExecFromFileDialog + + + Execute SQL from file + Execute SQL from file + + + + Input file + Input file + + + + Path to file + Path to file + + + + Browse for file + Browse for file + + + + Options + Options + + + + File encoding + File encoding + + + + Skip failing SQL statements + Skip failing SQL statements + + + + SQL scripts (*.sql);;All files (*) + SQL scripts (*.sql);;All files (*) + + + + Execute SQL file + Execute SQL file + + + + Please provide file to be executed. + Please provide file to be executed. + + + + Provided file does not exist or cannot be read. + Provided file does not exist or cannot be read. + + + + ExportDialog + + + Export + Export + + + + What do you want to export? + What do you want to export? + + + + A database + A database + + + + A single table + A single table + + + + Query results + Query results + + + + Table to export + Table to export + + + + Database + Database + + + + Table + Table + + + + Options + Options + + + + When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. + When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. + + + + Export table data + Export table data + + + + Export table indexes + Export table indexes + + + + Export table triggers + Export table triggers + + + + Note, that exporting table indexes and triggers may be unsupported by some output formats. + Note, that exporting table indexes and triggers may be unsupported by some output formats. + + + + Select database objects to export + Select database objects to export + + + + Export data from tables + Export data from tables + + + + Select all + Select all + + + + Deselect all + Deselect all + + + + + Database: + Database: + + + + Query to export results for + Query to export results for + + + + Query to be executed for results: + Query to be executed for results: + + + + Export format and options + Export format and options + + + + Export format + Export format + + + + Output + Output + + + + Exported file path + Exported file path + + + + Clipboard + Clipboard + + + + File + File + + + + Exported text encoding: + Exported text encoding: + + + + Export format options + Export format options + + + + Cancel + Cancel + + + + + + Select database to export. + Select database to export. + + + + Select table to export. + Select table to export. + + + + Enter valid query to export. + Enter valid query to export. + + + + Select at least one object to export. + Select at least one object to export. + + + + You must provide a file name to export to. + You must provide a file name to export to. + + + + Path you provided is an existing directory. You cannot overwrite it. + Path you provided is an existing directory. You cannot overwrite it. + + + + The directory '%1' does not exist. + The directory '%1' does not exist. + + + + The file '%1' exists and will be overwritten. + The file '%1' exists and will be overwritten. + + + + All files (*) + All files (*) + + + + Pick file to export to + Pick file to export to + + + + Internal error during export. This is a bug. Please report it. + Internal error during export. This is a bug. Please report it. + + + + FileExecErrorsDialog + + + Execution errors + Execution errors + + + + Following errors were encountered during execution of SQL statements from the file: + Following errors were encountered during execution of SQL statements from the file: + + + + SQL + SQL + + + + Error + Error + + + + Statements that were executed successfully were commited. + Statements that were executed successfully were commited. + + + + Statements that were executed successfully were rolled back. + Statements that were executed successfully were rolled back. + + + + FkComboBox + + + Cannot edit this cell. Details: %1 + Cannot edit this cell. Details: %1 + + + + FontEdit + + + Choose font + font configuration + Choose font + + + + Form + + + Active SQL formatter plugin + Active SQL formatter plugin + + + + FormView + + + Commit row + form view + Commit row + + + + Rollback row + form view + Rollback row + + + + First row + form view + First row + + + + Previous row + form view + Previous row + + + + Next row + form view + Next row + + + + Last row + form view + Last row + + + + Insert new row + form view + Insert new row + + + + Delete current row + form view + Delete current row + + + + FunctionsEditor + + + Filter functions + Filter functions + + + + Input arguments + Input arguments + + + + Undefined + Undefined + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Type: + Type: + + + + Function name: + Function name: + + + + Implementation language: + Implementation language: + + + + Deterministic + Deterministic + + + + Initialization code: + Initialization code: + + + + + Function implementation code: + Function implementation code: + + + + Final step implementation code: + Final step implementation code: + + + + SQL functions editor + SQL functions editor + + + + Commit all function changes + Commit all function changes + + + + Rollback all function changes + Rollback all function changes + + + + Create new function + Create new function + + + + Delete selected function + Delete selected function + + + + Custom SQL functions manual + Custom SQL functions manual + + + + Add function argument + Add function argument + + + + Rename function argument + Rename function argument + + + + Delete function argument + Delete function argument + + + + Move function argument up + Move function argument up + + + + Move function argument down + Move function argument down + + + + Scalar + Scalar + + + + Aggregate + Aggregate + + + + Enter a non-empty, unique name of the function. + Enter a non-empty, unique name of the function. + + + + Pick the implementation language. + Pick the implementation language. + + + + Per step code: + Per step code: + + + + Enter a non-empty implementation code. + Enter a non-empty implementation code. + + + + argument + new function argument name in function editor window + argument + + + + Functions editor window has uncommitted modifications. + Functions editor window has uncommitted modifications. + + + + ImportDialog + + + Import data + Import data + + + + Table to import to + Table to import to + + + + Table + Table + + + + Database + Database + + + + Data source to import from + Data source to import from + + + + Data source type + Data source type + + + + Options + Options + + + + Text encoding: + Text encoding: + + + + Input file: + Input file: + + + + <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> + <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> + + + + Ignore errors + Ignore errors + + + + Data source options + Data source options + + + + Cancel + Cancel + + + + If you type table name that doesn't exist, it will be created. + If you type table name that doesn't exist, it will be created. + + + + Enter the table name + Enter the table name + + + + Select import plugin. + Select import plugin. + + + + You must provide a file to import from. + You must provide a file to import from. + + + + The file '%1' does not exist. + The file '%1' does not exist. + + + + Path you provided is a directory. A regular file is required. + Path you provided is a directory. A regular file is required. + + + + Pick file to import from + Pick file to import from + + + + IndexDialog + + + + Index + Index + + + + Column + Column + + + + Sort + Sort + + + + Collation + Collation + + + + On table: + On table: + + + + Delete selected indexed expression + Delete selected indexed expression + + + + Moves selected index column up in the order, making it more significant in the index. + Moves selected index column up in the order, making it more significant in the index. + + + + Moves selected index column down in the order, making it less significant in the index. + Moves selected index column down in the order, making it less significant in the index. + + + + Partial index condition + Partial index condition + + + + Unique index + Unique index + + + + Index name: + Index name: + + + + Edit selected indexed expression + Edit selected indexed expression + + + + Add indexed expression + Add indexed expression + + + + DDL + DDL + + + + Tried to open index dialog for closed or inexisting database. + Tried to open index dialog for closed or inexisting database. + + + + Could not process index %1 correctly. Unable to open an index dialog. + Could not process index %1 correctly. Unable to open an index dialog. + + + + Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. + Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. + + + + Pick the table for the index. + Pick the table for the index. + + + + Select at least one column. + Select at least one column. + + + + Enter a valid condition. + Enter a valid condition. + + + + default + index dialog + default + + + + Sort order + table constraints + Sort order + + + + + Error + index dialog + Error + + + + Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? + Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? + + + + An error occurred while executing SQL statements: +%1 + An error occurred while executing SQL statements: +%1 + + + + IndexExprColumnDialog + + + Indexed expression + Indexed expression + + + + Expression to index + Expression to index + + + + This expression is already indexed by the index. + This expression is already indexed by the index. + + + + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. + + + + Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. + Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. + + + + It's forbidden to use 'SELECT' statements in indexed expressions. + It's forbidden to use 'SELECT' statements in indexed expressions. + + + + Enter an indexed expression. + Enter an indexed expression. + + + + Invalid expression. + Invalid expression. + + + + LanguageDialog + + + Language + Language + + + + Please choose language: + Please choose language: + + + + MainWindow + + + Database toolbar + Database toolbar + + + + Structure toolbar + Structure toolbar + + + + Tools + Tools + + + + Window list + Window list + + + + View toolbar + View toolbar + + + + Configuration widgets + Configuration widgets + + + + Syntax highlighting engines + Syntax highlighting engines + + + + Data editors + Data editors + + + + Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. + Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. + + + + Running in debug mode. Debug messages are printed to the standard output. + Running in debug mode. Debug messages are printed to the standard output. + + + + You need to restart application to make the language change take effect. + You need to restart application to make the language change take effect. + + + + Open SQL &editor + Open SQL &editor + + + + Open DDL &history + Open DDL &history + + + + Open SQL &functions editor + Open SQL &functions editor + + + + Open code &snippets editor + Open code &snippets editor + + + + Open &collations editor + Open &collations editor + + + + Open ex&tension manager + Open ex&tension manager + + + + &Import + &Import + + + + E&xport + E&xport + + + + Open confi&guration dialog + Open confi&guration dialog + + + + &Tile windows + &Tile windows + + + + Tile windows &horizontally + Tile windows &horizontally + + + + Tile windows &vertically + Tile windows &vertically + + + + &Cascade windows + &Cascade windows + + + + Next window + Next window + + + + Previous window + Previous window + + + + Hide status field + Hide status field + + + + Close &all windows + Close &all windows + + + + Re&store recently closed window + Re&store recently closed window + + + + Close current &window + Close current &window + + + + Close &other windows + Close &other windows + + + + Close windows on the &left + Close windows on the &left + + + + Close windows on the &right + Close windows on the &right + + + + Re&name selected window + Re&name selected window + + + + Open Debug Console + Open Debug Console + + + + Open CSS Console + Open CSS Console + + + + Report a &bug + Report a &bug + + + + D&onate + D&onate + + + + Propose a new &feature + Propose a new &feature + + + + &About + &About + + + + &Licenses + &Licenses + + + + Open home &page + Open home &page + + + + User &Manual + User &Manual + + + + SQLite &documentation + SQLite &documentation + + + + Bugs and feature &requests + Bugs and feature &requests + + + + Quit + Quit + + + + Check for &updates + Check for &updates + + + + &Database + menubar + &Database + + + + &Structure + menubar + &Structure + + + + &View + menubar + &View + + + + Window list + menubar view menu + Window list + + + + &Tools + menubar + &Tools + + + + &Help + &Help + + + + Could not set style: %1 + main window + Could not set style: %1 + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + Rename window + Rename window + + + + Enter new name for the window: + Enter new name for the window: + + + + New updates are available. <a href="%1">Click here for details</a>. + New updates are available. <a href="%1">Click here for details</a>. + + + + You're running the most recent version. No updates are available. + You're running the most recent version. No updates are available. + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + Database passed in command line parameters (%1) was already on the list under name: %2 + + + + Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 + Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + MdiWindow + + + Uncommitted changes + Uncommitted changes + + + + Close anyway + Close anyway + + + + Don't close + Don't close + + + + MultiEditor + + + Null value + multieditor + Null value + + + + Configure editors for this data type + Configure editors for this data type + + + + Open another tab + Open another tab + + + + Foreign Key + Foreign Key + + + + Data editor plugin '%1' not loaded, while it is defined for editing '%2' data type. + Data editor plugin '%1' not loaded, while it is defined for editing '%1' data type. {1'?} {2'?} {1' or 2'?} + + + + Deleted + multieditor + Deleted + + + + Read only + multieditor + Read only + + + + MultiEditorBoolPlugin + + + Boolean + Boolean + + + + MultiEditorDatePlugin + + + Date + Date + + + + MultiEditorDateTimePlugin + + + Date & time + Date & time + + + + MultiEditorHexPlugin + + + Hex + Hex + + + + MultiEditorNumericPlugin + + + Number + numeric multi editor tab name + Number + + + + MultiEditorText + + + Tab changes focus + Tab changes focus + + + + Cut + Cut + + + + Copy + Copy + + + + Paste + Paste + + + + Delete + Delete + + + + Undo + Undo + + + + Redo + Redo + + + + MultiEditorTextPlugin + + + Text + Text + + + + MultiEditorTimePlugin + + + Time + Time + + + + NewConstraintDialog + + + New constraint + New constraint + + + + + Primary Key + new constraint dialog + Primary Key + + + + + Foreign Key + new constraint dialog + Foreign Key + + + + + Unique + new constraint dialog + Unique + + + + + Check + new constraint dialog + Check + + + + Not NULL + new constraint dialog + Not NULL + + + + Collate + new constraint dialog + Collate + + + + Generated + new constraint dialog + Generated + + + + Default + new constraint dialog + Default + + + + NewVersionDialog + + + SQLiteStudio updates + SQLiteStudio updates + + + + New version is available! + New version is available! + + + + Download new version! + Download new version! + + + + New version package will be downloaded. It will be up to you to install it whenever you're ready. + New version package will be downloaded. It will be up to you to install it whenever you're ready. + + + + Open SQLiteStudio home page. + Open SQLiteStudio home page. + + + + Read release notes && download package yourself. + Read release notes && download package yourself. + + + + Just close this window. + Just close this window. + + + + Check for updates on startup + Check for updates on startup + + + + Not now. + Not now. + + + + PopulateConfigDialog + + + Populating configuration + Populating configuration + + + + Configuring <b>%1</b> for column <b>%2</b> + Configuring <b>%1</b> for column <b>%2</b> + + + + PopulateDialog + + + Populate table + Populate table + + + + Database + Database + + + + Table + Table + + + + Columns + Columns + + + + Number of rows to populate: + Number of rows to populate: + + + + Populate + populate dialog button + Populate + + + + Abort + Abort + + + + Configure + Configure + + + + Populating configuration for this column is invalid or incomplete. + Populating configuration for this column is invalid or incomplete. + + + + Select database with table to populate + Select database with table to populate + + + + Select table to populate + Select table to populate + + + + You have to select at least one column. + You have to select at least one column. + + + + QObject + + + Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). + Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). + + + + The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. + The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. + + + + Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. + Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. + + + + Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. + Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. + + + + Cannot edit results of query other than %1. + Cannot edit results of query other than %1. + + + + Cannot edit columns that are result of aggregated %1 statements. + Cannot edit columns that are result of aggregated %1 statements. + + + + Cannot edit columns that are result of %1 statement. + Cannot edit columns that are result of %1 statement. + + + + Cannot edit columns that are result of common table expression statement (%1). + Cannot edit columns that are result of common table expression statement (%1). + + + + Cannot edit table generated columns. + Cannot edit table generated columns. + + + + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). + + + + + + + on conflict: %1 + data view tooltip + on conflict: %1 + + + + references table %1, column %2 + data view tooltip + references table %1, column %2 + + + + condition: %1 + data view tooltip + condition: %1 + + + + collation name: %1 + data view tooltip + collation name: %1 + + + + Data grid view + Data grid view + + + + Edit current cell inline + Edit current cell inline + + + + Copy cell(s) contents to clipboard + Copy cell(s) contents to clipboard + + + + Copy cell(s) contents together with header to clipboard + Copy cell(s) contents together with header to clipboard + + + + Paste cell(s) contents from clipboard + Paste cell(s) contents from clipboard + + + + Set empty value to selected cell(s) + Set empty value to selected cell(s) + + + + Set NULL value to selected cell(s) + Set NULL value to selected cell(s) + + + + Commit changes to cell(s) contents + Commit changes to cell(s) contents + + + + Rollback changes to cell(s) contents + Rollback changes to cell(s) contents + + + + Delete selected data row + Delete selected data row + + + + Insert new data row + Insert new data row + + + + Open contents of selected cell in a separate editor + Open contents of selected cell in a separate editor + + + + Toggle the height adjustment of rows + Toggle the height adjustment of rows + + + + Increase font size + data view + Increase font size + + + + Decrease font size + data view + Decrease font size + + + + Total pages available: %1 + Total pages available: %1 + + + + Total rows loaded: %1 + Total rows loaded: %1 + + + + Data view (both grid and form) + Data view (both grid and form) + + + + Refresh data + Refresh data + + + + Switch to grid view of the data + Switch to grid view of the data + + + + Switch to form view of the data + Switch to form view of the data + + + + Database list + Database list + + + + Delete selected item + Delete selected item + + + + Clear filter contents + Clear filter contents + + + + Refresh schema + Refresh schema + + + + Refresh all schemas + Refresh all schemas + + + + Add database + Add database + + + + Select all items + Select all items + + + + Copy selected item(s) + Copy selected item(s) + + + + + + Paste from clipboard + Paste from clipboard + + + + Increase font size + database list + Increase font size + + + + Decrease font size + database list + Decrease font size + + + + Tables + Tables + + + + Indexes + Indexes + + + + Triggers + Triggers + + + + Views + Views + + + + Columns + Columns + + + + Data form view + Data form view + + + + Commit changes for current row + Commit changes for current row + + + + Rollback changes for current row + Rollback changes for current row + + + + Go to first row on current page + Go to first row on current page + + + + Go to next row + Go to next row + + + + Go to previous row + Go to previous row + + + + Go to last row on current page + Go to last row on current page + + + + Insert new row + Insert new row + + + + Delete current row + Delete current row + + + + Main window + Main window + + + + Open SQL editor + Open SQL editor + + + + Open DDL history window + Open DDL history window + + + + Open snippets editor window + Open snippets editor window + + + + Open function editor window + Open function editor window + + + + Open collation editor window + Open collation editor window + + + + Open extension manager window + Open extension manager window + + + + Previous window + Previous window + + + + Next window + Next window + + + + Hide status area + Hide status area + + + + Open user manual + Open user manual + + + + Open configuration dialog + Open configuration dialog + + + + Open Debug Console + Open Debug Console + + + + Open CSS Console + Open CSS Console + + + + Open the About dialog + Open the About dialog + + + + Quit the application + Quit the application + + + + Cell text value editor + Cell text value editor + + + + + Cut selected text + Cut selected text + + + + + Copy selected text + Copy selected text + + + + + Delete selected text + Delete selected text + + + + + Undo + Undo + + + + + Redo + Redo + + + + SQL editor input field + SQL editor input field + + + + Select whole editor contents + Select whole editor contents + + + + Save contents into a file + Save contents into a file + + + + Load contents from a file + Load contents from a file + + + + Find in text + Find in text + + + + Find next + Find next + + + + Find previous + Find previous + + + + Replace in text + Replace in text + + + + Delete current line + Delete current line + + + + Request code assistant + Request code assistant + + + + Format contents + Format contents + + + + Move selected block of text one line down + Move selected block of text one line down + + + + Move selected block of text one line up + Move selected block of text one line up + + + + Copy selected block of text and paste it a line below + Copy selected block of text and paste it a line below + + + + Copy selected block of text and paste it a line above + Copy selected block of text and paste it a line above + + + + Toggle comment + Toggle comment + + + + Increase font size + sql editor + Increase font size + + + + Decrease font size + sql editor + Decrease font size + + + + All SQLite databases + All SQLite databases + + + + All files + All files + + + + Select database file + Select database file + + + + Select + Select + + + + File type + File type + + + + SQL editor window + SQL editor window + + + + Execute query + Execute query + + + + Execute single query under cursor + Execute single query under cursor + + + + Execute all queries in editor + Execute all queries in editor + + + + Execute "%1" query + Execute "%1" query + + + + Switch current working database to previous on the list + Switch current working database to previous on the list + + + + Switch current working database to next on the list + Switch current working database to next on the list + + + + Go to next editor tab + Go to next editor tab + + + + Go to previous editor tab + Go to previous editor tab + + + + Move keyboard input focus to the results view below + Move keyboard input focus to the results view below + + + + Move keyboard input focus to the SQL editor above + Move keyboard input focus to the SQL editor above + + + + Delete selected SQL history entries + Delete selected SQL history entries + + + + Table window + Table window + + + + Commit the table structure + Commit the table structure + + + + Rollback pending changes in the table structure + Rollback pending changes in the table structure + + + + Refresh table structure + Refresh table structure + + + + Add new column + Add new column + + + + Edit selected column + Edit selected column + + + + Delete selected column + Delete selected column + + + + Export table data + Export table data + + + + Import data to the table + Import data to the table + + + + Add new table constraint + Add new table constraint + + + + Edit selected table constraint + Edit selected table constraint + + + + Delete selected table constraint + Delete selected table constraint + + + + Refresh table index list + Refresh table index list + + + + Add new index + Add new index + + + + Edit selected index + Edit selected index + + + + Delete selected index + Delete selected index + + + + Refresh table trigger list + Refresh table trigger list + + + + + Add new trigger + Add new trigger + + + + + Edit selected trigger + Edit selected trigger + + + + + Delete selected trigger + Delete selected trigger + + + + + Go to next tab + Go to next tab + + + + + Go to previous tab + Go to previous tab + + + + A view window + A view window + + + + Commit the view's query + Commit the view's query + + + + Rollback pending changes in the view's query + Rollback pending changes in the view's query + + + + Refresh view trigger list + Refresh view trigger list + + + + Execute the view's query + Execute the view's query + + + + A code snippets editor window + A code snippets editor window + + + + + + + Commit the pending changes + Commit the pending changes + + + + + + + Rollback the pending changes + Rollback the pending changes + + + + A collation editor window + A collation editor window + + + + A function editor window + A function editor window + + + + A SQLite extension editor window + A SQLite extension editor window + + + + QuitConfirmDialog + + + Uncommitted changes + Uncommitted changes + + + + Are you sure you want to quit the application? + +Following items are pending: + Are you sure you want to quit the application? + +Following items are pending: + + + + SearchTextDialog + + + Find or replace + Find or replace + + + + Find: + Find: + + + + Case sensitive + Case sensitive + + + + Search backwards + Search backwards + + + + Regular expression matching + Regular expression matching + + + + Replace && +find next + Replace && +find next + + + + Replace with: + Replace with: + + + + Replace all + Replace all + + + + Find + Find + + + + SortDialog + + + Sort by columns + Sort by columns + + + + + Column + Column + + + + + Order + Order + + + + Sort by: %1 + Sort by: %1 + + + + Move column up + Move column up + + + + Move column down + Move column down + + + + SqlEditor + + + Wrap words + sql editor + Wrap words + + + + Cut + sql editor + Cut + + + + Copy + sql editor + Copy + + + + Paste + sql editor + Paste + + + + Delete + sql editor + Delete + + + + Select all + sql editor + Select all + + + + Undo + sql editor + Undo + + + + Redo + sql editor + Redo + + + + Complete + sql editor + Complete + + + + Format SQL + sql editor + Format SQL + + + + Save SQL to file + sql editor + Save SQL to file + + + + Select file to save SQL + sql editor + Select file to save SQL + + + + Load SQL from file + sql editor + Load SQL from file + + + + Delete line + sql editor + Delete line + + + + Move block down + sql editor + Move block down + + + + Move block up + sql editor + Move block up + + + + Copy block down + sql editor + Copy block down + + + + Copy up down + sql editor + Copy up down + + + + Find + sql editor + Find + + + + Find next + sql editor + Find next + + + + Find previous + sql editor + Find previous + + + + Replace + sql editor + Replace + + + + Toggle comment + sql editor + Toggle comment + + + + Increase font size + sql editor + Increase font size + + + + Decrease font size + sql editor + Decrease font size + + + + Could not open file '%1' for writing: %2 + Could not open file '%1' for writing: %2 + + + + Saved SQL contents to file: %1 + Saved SQL contents to file: %1 + + + + Syntax completion can be used only when a valid database is set for the SQL editor. + Syntax completion can be used only when a valid database is set for the SQL editor. + + + + Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. + Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. + + + + Save to file + Save to file + + + + SQL scripts (*.sql);;All files (*) + SQL scripts (*.sql);;All files (*) + + + + Open file + Open file + + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Reached the end of document. Hit the find again to restart the search. + Reached the end of document. Hit the find again to restart the search. + + + + SqlQueryItem + + + Committing error: + data view tooltip + Committing error: + + + + Column: + data view tooltip + Column: + + + + Data type: + data view + Data type: + + + + Table: + data view tooltip + Table: + + + + Constraints: + data view tooltip + Constraints: + + + + SqlQueryItemDelegate + + + + + + Cannot edit this cell. Details: %1 + Cannot edit this cell. Details: %1 + + + + The row is marked for deletion. + The row is marked for deletion. + + + + + Structure of this table has changed since last data was loaded. Reload the data to proceed. + Structure of this table has changed since last data was loaded. Reload the data to proceed. + + + + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). + + + + Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. + Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. + + + + SqlQueryModel + + + + Only one query can be executed simultaneously. + Only one query can be executed simultaneously. + + + + Cannot execute query on undefined or invalid database. + Cannot execute query on undefined or invalid database. + + + + Cannot execute empty query. + Cannot execute empty query. + + + + Uncommitted data + Uncommitted data + + + + There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. + There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. + + + + Cannot commit the data for a cell that refers to the already closed database. + Cannot commit the data for a cell that refers to the already closed database. + + + + Could not begin transaction on the database. Details: %1 + Could not begin transaction on the database. Details: %1 + + + + An error occurred while committing the transaction: %1 + An error occurred while committing the transaction: %1 + + + + An error occurred while rolling back the transaction: %1 + An error occurred while rolling back the transaction: %1 + + + + Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. + Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. + + + + An error occurred while committing the data: %1 + An error occurred while committing the data: %1 + + + + Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. + Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. + + + + + Error while executing SQL query on database '%1': %2 + Error while executing SQL query on database '%1': %2 + + + + Error while loading query results: %1 + Error while loading query results: %1 + + + + Insert multiple rows + Insert multiple rows + + + + Number of rows to insert: + Number of rows to insert: + + + + Delete rows + Delete rows + + + + You're about to delete newly inserted rows that are not committed yet. Row numbers: %1 +Such deletion will be permanent. Are you sure you want to delete them? + You're about to delete newly inserted rows that are not committed yet. Row numbers: %1 +Such deletion will be permanent. Are you sure you want to delete them? + + + + SqlQueryView + + + Go to referenced row in... + Go to referenced row in... + + + + Copy + Copy + + + + Copy with headers + Copy with headers + + + + Copy as... + Copy as... + + + + Paste + Paste + + + + Paste as... + Paste as... + + + + Set NULL values + Set NULL values + + + + Erase values + Erase values + + + + Commit + Commit + + + + Rollback + Rollback + + + + Commit selected cells + Commit selected cells + + + + Rollback selected cells + Rollback selected cells + + + + Edit current cell inline + Edit current cell inline + + + + Define columns to sort by + Define columns to sort by + + + + Remove custom sorting + Remove custom sorting + + + + Insert row + Insert row + + + + Insert multiple rows + Insert multiple rows + + + + Delete selected row + Delete selected row + + + + Adjust height of rows + Adjust height of rows + + + + Increase font size + data view + Increase font size + + + + Decrease font size + data view + Decrease font size + + + + Invert selection + data view + Invert selection + + + + Edit value in editor + Edit value in editor + + + + Show value in a viewer + Show value in a viewer + + + + Generate query for selected cells + Generate query for selected cells + + + + No items selected to paste clipboard contents to. + No items selected to paste clipboard contents to. + + + + Cannot paste data. Details: %1 + Cannot paste data. Details: %1 + + + + Structure of at least one table used has changed since last data was loaded. Reload the data to proceed. + Structure of at least one table used has changed since last data was loaded. Reload the data to proceed. + + + + Cannot paste to a cell. Details: %1 + Cannot paste to a cell. Details: %1 + + + + The row is marked for deletion. + The row is marked for deletion. + + + + Cannot paste to column %1. Details: %2 + Cannot paste to column %1. Details: %2 + + + + Go to referenced row in table '%1' + Go to referenced row in table '%1' + + + + table '%1' + table '%1' + + + + Referenced row (%1) + Referenced row (%1) + + + + Trim pasted text? + Trim pasted text? + + + + The pasted text contains leading or trailing white space. Trim it automatically? + The pasted text contains leading or trailing white space. Trim it automatically? + + + + Paste "NULL" as null value? + Paste "NULL" as null value? + + + + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + + + + Edit value + Edit value + + + + SqlTableModel + + + Error while committing new row: %1 + Error while committing new row: %1 + + + + Error while deleting row from table %1: %2 + Error while deleting row from table %1: %2 + + + + SqliteExtensionEditor + + + Filter extensions + Filter extensions + + + + Leave empty to use default function + Leave empty to use default function + + + + Extension file + Extension file + + + + Initialization function + Initialization function + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Extension manager window has uncommitted modifications. + Extension manager window has uncommitted modifications. + + + + Extension manager + Extension manager + + + + Commit all extension changes + Commit all extension changes + + + + Rollback all extension changes + Rollback all extension changes + + + + Add new extension + Add new extension + + + + Remove selected extension + Remove selected extension + + + + Editing extensions manual + Editing extensions manual + + + + File with given path does not exist or is not readable. + File with given path does not exist or is not readable. + + + + Unable to load extension: %1 + Unable to load extension: %1 + + + + Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. + Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. + + + + Dynamic link libraries (*.dll);;All files (*) + Dynamic link libraries (*.dll);;All files (*) + + + + Shared objects (*.so);;All files (*) + Shared objects (*.so);;All files (*) + + + + Dynamic libraries (*.dylib);;All files (*) + Dynamic libraries (*.dylib);;All files (*) + + + + All files (*) + All files (*) + + + + Open file + Open file + + + + StatusField + + + Status + Status + + + + Copy + Copy + + + + Clear + Clear + + + + TableConstraintsModel + + + Type + table constraints + Type + + + + Details + table constraints + Details + + + + Name + table constraints + Name + + + + TableForeignKeyPanel + + + Foreign table: + Foreign table: + + + + Columns + Columns + + + + Local column + Local column + + + + Foreign column + Foreign column + + + + Reactions + Reactions + + + + Deferred foreign key + Deferred foreign key + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + Pick the foreign column. + Pick the foreign column. + + + + Pick the foreign table. + Pick the foreign table. + + + + Select at least one foreign column. + Select at least one foreign column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + Foreign column + table constraints + Foreign column + + + + TablePrimaryKeyAndUniquePanel + + + Columns + Columns + + + + Column + Column + + + + Collation + Collation + + + + Sort + Sort + + + + Valid only for a single column with INTEGER data type + Valid only for a single column with INTEGER data type + + + + Autoincrement + Autoincrement + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + On conflict + On conflict + + + + Collate + table constraints + Collate + + + + Sort order + table constraints + Sort order + + + + Select at least one column. + Select at least one column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + TableStructureModel + + + Name + table structure columns + Name + + + + Data type + table structure columns + Data type + + + + Primary +Key + table structure columns + Primary +Key + + + + Foreign +Key + table structure columns + Foreign +Key + + + + Unique + table structure columns + Unique + + + + Check + table structure columns + Check + + + + Not +NULL + table structure columns + Not +NULL + + + + Collate + table structure columns + Collate + + + + Generated + table structure columns + Generated + + + + Default value + table structure columns + Default value + + + + TableWindow + + + Structure + Structure + + + + Table name: + Table name: + + + + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + + + + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + + + + + Data + Data + + + + Constraints + Constraints + + + + Indexes + Indexes + + + + Triggers + Triggers + + + + DDL + DDL + + + + Export table + table window + Export table + + + + Import data to table + table window + Import data to table + + + + Populate table + table window + Populate table + + + + Refresh structure + table window + Refresh structure + + + + Commit structure changes + table window + Commit structure changes + + + + Rollback structure changes + table window + Rollback structure changes + + + + Add column + table window + Add column + + + + Edit column + table window + Edit column + + + + + Delete column + table window + Delete column + + + + Move column up + table window + Move column up + + + + Move column down + table window + Move column down + + + + Create similar table + table window + Create similar table + + + + Reset autoincrement value + table window + Reset autoincrement value + + + + Add table constraint + table window + Add table constraint + + + + Edit table constraint + table window + Edit table constraint + + + + Delete table constraint + table window + Delete table constraint + + + + Move table constraint up + table window + Move table constraint up + + + + Move table constraint down + table window + Move table constraint down + + + + Add table primary key + table window + Add table primary key + + + + Add table foreign key + table window + Add table foreign key + + + + Add table unique constraint + table window + Add table unique constraint + + + + Add table check constraint + table window + Add table check constraint + + + + Refresh index list + table window + Refresh index list + + + + + Create index + table window + Create index + + + + Edit index + table window + Edit index + + + + Delete index + table window + Delete index + + + + Refresh trigger list + table window + Refresh trigger list + + + + + Create trigger + table window + Create trigger + + + + Edit trigger + table window + Edit trigger + + + + Delete trigger + table window + Delete trigger + + + + Are you sure you want to delete column '%1'? + table window + Are you sure you want to delete column '%1'? + + + + Following problems will take place while modifying the table. +Would you like to proceed? + table window + Following problems will take place while modifying the table. +Would you like to proceed? + + + + Table modification + table window + Table modification + + + + Could not load data for table %1. Error details: %2 + Could not load data for table %1. Error details: %2 + + + + Could not process the %1 table correctly. Unable to open a table window. + Could not process the %1 table correctly. Unable to open a table window. + + + + Database + Database + + + + Could not restore window %1, because no database or table was stored in session for this window. + Could not restore window %1, because no database or table was stored in session for this window. + + + + Could not restore window '%1', because no database or table was stored in session for this window. + Could not restore window '%1', because no database or table was stored in session for this window. + + + + Could not restore window '%1', because database %2 could not be resolved. + Could not restore window '%1', because database %2 could not be resolved. + + + + Could not restore window '%1', because the table %2 doesn't exist in the database %3. + Could not restore window '%1', because the table %2 doesn't exist in the database %3. + + + + + New table %1 + New table %1 + + + + Committed changes for table '%1' successfully. + Committed changes for table '%1' successfully. + + + + Committed changes for table '%1' (named before '%2') successfully. + Committed changes for table '%1' (named before '%2') successfully. + + + + Could not commit table structure. Error message: %1 + table window + Could not commit table structure. Error message: %1 + + + + Reset autoincrement + Reset autoincrement + + + + Are you sure you want to reset autoincrement value for table '%1'? + Are you sure you want to reset autoincrement value for table '%1'? + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + An error occurred while trying to reset autoincrement value for table '%1': %2 + + + + Autoincrement value for table '%1' has been reset successfully. + Autoincrement value for table '%1' has been reset successfully. + + + + Empty name + Empty name + + + + A blank name for the table is allowed in SQLite, but it is not recommended. +Are you sure you want to create a table with blank name? + A blank name for the table is allowed in SQLite, but it is not recommended. +Are you sure you want to create a table with blank name? + + + + Cannot create a table without at least one column. + Cannot create a table without at least one column. + + + + Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. + Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. + + + + Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. + Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. + + + + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 + + + + Are you sure you want to delete table constraint '%1'? + table window + Are you sure you want to delete table constraint '%1'? + + + + Delete constraint + table window + Delete constraint + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + Uncommitted changes + Uncommitted changes + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + + + + Go back to structure tab + Go back to structure tab + + + + Commit modifications and browse data. + Commit modifications and browse data. + + + + Name + table window indexes + Name + + + + Unique + table window indexes + Unique + + + + Columns + table window indexes + Columns + + + + Partial index condition + table window indexes + Partial index condition + + + + Name + table window triggers + Name + + + + Event + table window triggers + Event + + + + Condition + table window triggers + Condition + + + + Details + table window triggers + Details + + + + Table window "%1" has uncommitted structure modifications and data. + Table window "%1" has uncommitted structure modifications and data. + + + + Table window "%1" has uncommitted data. + Table window "%1" has uncommitted data. + + + + Table window "%1" has uncommitted structure modifications. + Table window "%1" has uncommitted structure modifications. + + + + TriggerColumnsDialog + + + Trigger columns + Trigger columns + + + + Triggering columns: + Triggering columns: + + + + Select all + Select all + + + + Deselect all + Deselect all + + + + TriggerDialog + + + + Trigger + Trigger + + + + On table: + On table: + + + + Action: + Action: + + + + + <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> + <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> + + + + Pre-condition: + Pre-condition: + + + + The scope is still not fully supported by the SQLite database. + The scope is still not fully supported by the SQLite database. + + + + Trigger name: + Trigger name: + + + + When: + When: + + + + List of columns for UPDATE OF action. + List of columns for UPDATE OF action. + + + + Scope: + Scope: + + + + Code: + Code: + + + + Trigger statements to be executed. + Trigger statements to be executed. + + + + DDL + DDL + + + + On view: + On view: + + + + Could not process trigger %1 correctly. Unable to open a trigger dialog. + Could not process trigger %1 correctly. Unable to open a trigger dialog. + + + + Enter a valid condition. + Enter a valid condition. + + + + Enter a valid trigger code. + Enter a valid trigger code. + + + + Error + trigger dialog + Error + + + + An error occurred while executing SQL statements: +%1 + An error occurred while executing SQL statements: +%1 + + + + VersionConvertSummaryDialog + + + Database version convert + Database version convert + + + + Following changes to the SQL statements will be made: + Following changes to the SQL statements will be made: + + + + Before + Before + + + + After + After + + + + ViewWindow + + + Query + Query + + + + View name: + View name: + + + + Output column names + Output column names + + + + + Data + Data + + + + Triggers + Triggers + + + + DDL + DDL + + + + + Could not restore window '%1', because no database or view was stored in session for this window. + Could not restore window '%1', because no database or view was stored in session for this window. + + + + Could not restore window '%1', because database %2 could not be resolved. + Could not restore window '%1', because database %2 could not be resolved. + + + + Could not restore window '%1', because database %2 could not be open. + Could not restore window '%1', because database %2 could not be open. + + + + Could not restore window '%1', because the view %2 doesn't exist in the database %3. + Could not restore window '%1', because the view %2 doesn't exist in the database %3. + + + + + New view %1 + New view %1 + + + + Database + Database + + + + Refresh the view + view window + Refresh the view + + + + Commit the view changes + view window + Commit the view changes + + + + Rollback the view changes + view window + Rollback the view changes + + + + Explicit column names + Explicit column names + + + + Generate output column names automatically basing on result columns of the view. + Generate output column names automatically basing on result columns of the view. + + + + Add column + view window + Add column + + + + Edit column + view window + Edit column + + + + Delete column + view window + Delete column + + + + Move column up + view window + Move column up + + + + Move column down + view window + Move column down + + + + Refresh trigger list + view window + Refresh trigger list + + + + Create new trigger + view window + Create new trigger + + + + Edit selected trigger + view window + Edit selected trigger + + + + Delete selected trigger + view window + Delete selected trigger + + + + View window "%1" has uncommitted structure modifications and data. + View window "%1" has uncommitted structure modifications and data. + + + + View window "%1" has uncommitted data. + View window "%1" has uncommitted data. + + + + View window "%1" has uncommitted structure modifications. + View window "%1" has uncommitted structure modifications. + + + + Could not load data for view %1. Error details: %2 + Could not load data for view %1. Error details: %2 + + + + Uncommitted changes + Uncommitted changes + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + + + + Go back to structure tab + Go back to structure tab + + + + Commit modifications and browse data. + Commit modifications and browse data. + + + + View '%1' was committed successfully. + View '%1' was committed successfully. + + + + Committed changes for view '%1' successfully. + Committed changes for view '%1' successfully. + + + + Committed changes for view '%1' (named before '%2') successfully. + Committed changes for view '%1' (named before '%2') successfully. + + + + Could not commit view changes. Error message: %1 + view window + Could not commit view changes. Error message: %1 + + + + Override columns + Override columns + + + + Currently defined columns will be overriden. Do you want to continue? + Currently defined columns will be overriden. Do you want to continue? + + + + Could not determinate columns returned from the view. The query is problably incomplete or contains errors. + Could not determinate columns returned from the view. The query is problably incomplete or contains errors. + + + + Name + view window triggers + Name + + + + Instead of + view window triggers + Instead of + + + + Condition + view window triggers + Condition + + + + Details + table window triggers + Details + + + + Could not process the %1 view correctly. Unable to open a view window. + Could not process the %1 view correctly. Unable to open a view window. + + + + Empty name + Empty name + + + + A blank name for the view is allowed in SQLite, but it is not recommended. +Are you sure you want to create a view with blank name? + A blank name for the view is allowed in SQLite, but it is not recommended. +Are you sure you want to create a view with blank name? + + + + The SELECT statement could not be parsed. Please correct the query and retry. +Details: %1 + The SELECT statement could not be parsed. Please correct the query and retry. +Details: %1 + + + + The view could not be modified due to internal SQLiteStudio error. Please report this! + The view could not be modified due to internal SQLiteStudio error. Please report this! + + + + The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. + The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. + + + + Following problems will take place while modifying the view. +Would you like to proceed? + view window + Following problems will take place while modifying the view. +Would you like to proceed? + + + + View modification + view window + View modification + + + + WidgetCover + + + Interrupt + Interrupt + + + diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_cs_CZ.ts b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_cs_CZ.ts new file mode 100644 index 0000000..17bed2c --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_cs_CZ.ts @@ -0,0 +1,7111 @@ + + + + + AboutDialog + + + About SQLiteStudio and licenses + About SQLiteStudio and licenses + + + + About + About + + + + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + + + + Licenses + Licenses + + + + Environment + Environment + + + + Icon directories + Icon directories + + + + Form directories + Form directories + + + + SQLite extension directories + SQLite extension directories + + + + Plugin directories + Plugin directories + + + + Configuration directory + Configuration directory + + + + Application directory + Application directory + + + + Qt version: + Qt version: + + + + SQLite 3 version: + SQLite 3 version: + + + + Portable distribution. + Portable distribution. + + + + MacOS X application bundle distribution. + MacOS X application bundle distribution. + + + + Operating system managed distribution. + Operating system managed distribution. + + + + <h3>Table of contents:</h3><ol>%2</ol> + <h3>Table of contents:</h3><ol>%2</ol> + + + + BindParamsDialog + + + Query parameters + Query parameters + + + + Please provide values for query parameters + Please provide values for query parameters + + + + CodeSnippetEditor + + + Filter snippets + Filter snippets + + + + + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + + + + + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + + + + Snippet name + Snippet name + + + + Code assistant shortcut + Code assistant shortcut + + + + Snippet code + Snippet code + + + + Code Snippets editor window has uncommitted modifications. + Code Snippets editor window has uncommitted modifications. + + + + Code Snippets editor + Code Snippets editor + + + + Commit all snippet changes + Commit all snippet changes + + + + Rollback all snippet changes + Rollback all snippet changes + + + + Create new snippet + Create new snippet + + + + Delete selected snippet + Delete selected snippet + + + + Move the snippet up + Move the snippet up + + + + Move the snippet down + Move the snippet down + + + + Code snippets manual + Code snippets manual + + + + Enter a non-empty, unique name of the snippet. + Enter a non-empty, unique name of the snippet. + + + + Enter a non-empty snippet content. + Enter a non-empty snippet content. + + + + This hotkey is not unique in context of a code assistant. + This hotkey is not unique in context of a code assistant. + + + + CollationsEditor + + + Filter collations + Filter collations + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Implementation code: + Implementation code: + + + + Collation name: + Collation name: + + + + Implementation language: + Implementation language: + + + + Collations editor + Collations editor + + + + Commit all collation changes + Commit all collation changes + + + + Rollback all collation changes + Rollback all collation changes + + + + Create new collation + Create new collation + + + + Delete selected collation + Delete selected collation + + + + Editing collations manual + Editing collations manual + + + + Enter a non-empty, unique name of the collation. + Enter a non-empty, unique name of the collation. + + + + Pick the implementation language. + Pick the implementation language. + + + + Enter a non-empty implementation code. + Enter a non-empty implementation code. + + + + Collations editor window has uncommitted modifications. + Collations editor window has uncommitted modifications. + + + + ColorButton + + + Pick a color + Pick a color + + + + ColumnCollatePanel + + + Collation name: + Collation name: + + + + Named constraint: + Named constraint: + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + Enter a collation name. + Enter a collation name. + + + + ColumnDefaultPanel + + + Default value: + Default value: + + + + Named constraint: + Named constraint: + + + + Enter a default value expression. + Enter a default value expression. + + + + Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. + Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. + + + + Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. + Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ColumnDialog + + + Column + Column + + + + Name and type + Name and type + + + + Scale + Scale + + + + Precision + Precision + + + + Data type: + Data type: + + + + Column name: + Column name: + + + + Size: + Size: + + + + Constraints + Constraints + + + + Generated value + Generated value + + + + Unique + Unique + + + + + + + + + + + Configure + Configure + + + + Foreign Key + Foreign Key + + + + Collate + Collate + + + + Not NULL + Not NULL + + + + Check condition + Check condition + + + + Primary Key + Primary Key + + + + Default + Default + + + + Advanced mode + Advanced mode + + + + Add constraint + column dialog + Add constraint + + + + Edit constraint + column dialog + Edit constraint + + + + + Delete constraint + column dialog + Delete constraint + + + + Move constraint up + column dialog + Move constraint up + + + + Move constraint down + column dialog + Move constraint down + + + + Add a primary key + column dialog + Add a primary key + + + + Add a foreign key + column dialog + Add a foreign key + + + + Add an unique constraint + column dialog + Add an unique constraint + + + + Add a check constraint + column dialog + Add a check constraint + + + + Add a not null constraint + column dialog + Add a not null constraint + + + + Add a collate constraint + column dialog + Add a collate constraint + + + + Add a generated value constraint + column dialog + Add a generated value constraint + + + + Add a default constraint + column dialog + Add a default constraint + + + + Are you sure you want to delete constraint '%1'? + column dialog + Are you sure you want to delete constraint '%1'? + + + + Correct the constraint's configuration. + Correct the constraint's configuration. + + + + Scale is not allowed for INTEGER PRIMARY KEY columns. + Scale is not allowed for INTEGER PRIMARY KEY columns. + + + + Precision cannot be defined without the scale. + Precision cannot be defined without the scale. + + + + Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. + Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. + + + + INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. + INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. + + + + Precision is not allowed for INTEGER PRIMARY KEY columns. + Precision is not allowed for INTEGER PRIMARY KEY columns. + + + + Could not match valid STRICT table datatype from declared type: %1. + Could not match valid STRICT table datatype from declared type: %1. + + + + ColumnDialogConstraintsModel + + + Type + column dialog constraints + Type + + + + Name + column dialog constraints + Name + + + + Details + column dialog constraints + Details + + + + ColumnForeignKeyPanel + + + Foreign table: + Foreign table: + + + + Foreign column: + Foreign column: + + + + Reactions + Reactions + + + + Deferred foreign key + Deferred foreign key + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + Pick the foreign table. + Pick the foreign table. + + + + Pick the foreign column. + Pick the foreign column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ColumnGeneratedPanel + + + Generating code: + Generating code: + + + + Explicit type: + Explicit type: + + + + Use "GENERATED ALWAYS" keywords + Use "GENERATED ALWAYS" keywords + + + + Named constraint: + Named constraint: + + + + Enter the column value generating expression. + Enter the column value generating expression. + + + + Invalid value generating expression: %1. + Invalid value generating expression: %1. + + + + Invalid value generating expression. + Invalid value generating expression. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ColumnPrimaryKeyPanel + + + Autoincrement + Autoincrement + + + + Sort order: + Sort order: + + + + Named constraint: + Named constraint: + + + + On conflict: + On conflict: + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + Descending order is not allowed with AUTOINCREMENT. + Descending order is not allowed with AUTOINCREMENT. + + + + ColumnUniqueAndNotNullPanel + + + Named constraint: + Named constraint: + + + + On conflict: + On conflict: + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + CompleterWindow + + + Column: %1 + completer statusbar + Column: %1 + + + + Table: %1 + completer statusbar + Table: %1 + + + + Index: %1 + completer statusbar + Index: %1 + + + + Trigger: %1 + completer statusbar + Trigger: %1 + + + + View: %1 + completer statusbar + View: %1 + + + + Database: %1 + completer statusbar + Database: %1 + + + + Keyword: %1 + completer statusbar + Keyword: %1 + + + + Function: %1 + completer statusbar + Function: %1 + + + + Operator: %1 + completer statusbar + Operator: %1 + + + + String + completer statusbar + String + + + + Number + completer statusbar + Number + + + + Binary data + completer statusbar + Binary data + + + + Collation: %1 + completer statusbar + Collation: %1 + + + + Pragma function: %1 + completer statusbar + Pragma function: %1 + + + + Insert a code snippet + Insert a code snippet + + + + ConfigDialog + + + + Configuration + Configuration + + + + Search + Search + + + + General + General + + + + Keyboard shortcuts + Keyboard shortcuts + + + + Look & feel + Look & feel + + + + Style + Style + + + + Fonts + Fonts + + + + Code colors + Code colors + + + + + Database list + Database list + + + + Code assistant + Code assistant + + + + Data browsing + Data browsing + + + + Data editors + Data editors + + + + Plugins + Plugins + + + + Code formatters + Code formatters + + + + If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. + If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. + + + + Sort table columns alphabetically + Sort table columns alphabetically + + + + Expand tables node when connected to a database + Expand tables node when connected to a database + + + + <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> + <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> + + + + Display additional labels on the list + Display additional labels on the list + + + + For regular tables labels will show number of columns, indexes and triggers for each of tables. + For regular tables labels will show number of columns, indexes and triggers for each of tables. + + + + Display labels for regular tables + Display labels for regular tables + + + + Virtual tables will be marked with a 'virtual' label. + Virtual tables will be marked with a 'virtual' label. + + + + Display labels for virtual tables + Display labels for virtual tables + + + + Expand views node when connected to a database + Expand views node when connected to a database + + + + If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) + If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) + + + + Sort objects (tables, indexes, triggers and views) alphabetically + Sort objects (tables, indexes, triggers and views) alphabetically + + + + Display system tables and indexes on the list + Display system tables and indexes on the list + + + + Database dialog window + Database dialog window + + + + <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> + <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> + + + + Do not mark database to be "permanent" by default + Do not mark database to be "permanent" by default + + + + <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> + <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> + + + + Try to bypass dialog completly when dropping database file onto the list + Try to bypass dialog completly when dropping database file onto the list + + + + Data browsing and editing + Data browsing and editing + + + + + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + + + + Number of memorized table populating configurations + Number of memorized table populating configurations + + + + Data column width + Data column width + + + + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + + + + Enlarge column when entering value longer than current width + Enlarge column when entering value longer than current width + + + + <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> + <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> + + + + Number of data rows per page: + Number of data rows per page: + + + + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> + + + + Show column and row details tooltip in data view + Show column and row details tooltip in data view + + + + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + + + + Keep NULL value when entering empty value + Keep NULL value when entering empty value + + + + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> + + + + Use DEFAULT value (if defined), when committing NULL value + Use DEFAULT value (if defined), when committing NULL value + + + + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + + + + Limit number of rows for in case of dozens of columns + Limit number of rows for in case of dozens of columns + + + + Inserting new row in data grid + Inserting new row in data grid + + + + Before currently selected row + Before currently selected row + + + + After currently selected row + After currently selected row + + + + At the end of data view + At the end of data view + + + + Table windows + Table windows + + + + <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> + <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> + + + + Open Table Windows with the data tab for start + Open Table Windows with the data tab for start + + + + <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> + <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> + + + + Place data tab as first tab in a Table Window + Place data tab as first tab in a Table Window + + + + View windows + View windows + + + + <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> + <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> + + + + Open View Windows with the data tab for start + Open View Windows with the data tab for start + + + + <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> + <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> + + + + Place data tab as first tab in a View Window + Place data tab as first tab in a View Window + + + + Data types + Data types + + + + Available editors: + Available editors: + + + + Editors selected for this data type: + Editors selected for this data type: + + + + Schema editing + Schema editing + + + + Number of DDL changes kept in history. + Number of DDL changes kept in history. + + + + DDL history size: + DDL history size: + + + + Don't show DDL preview dialog when committing schema changes + Don't show DDL preview dialog when committing schema changes + + + + SQL queries + SQL queries + + + + + Number of queries kept in the history. + Number of queries kept in the history. + + + + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> + + + + History size: + History size: + + + + + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> + + + + Execute only the query under the cursor + Execute only the query under the cursor + + + + Number of memorized query parameters + Number of memorized query parameters + + + + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + + + + Use scientific notation for real numbers in the grid view + Use scientific notation for real numbers in the grid view + + + + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + + + + Limit automatic data column width to (in pixels): + Limit automatic data column width to (in pixels): + + + + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + + + + Keep at least the width to show complete column name + Keep at least the width to show complete column name + + + + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + + + + Wrap lines in SQL editor + Wrap lines in SQL editor + + + + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + + + + Highlight current query + Highlight current query + + + + Updates + Updates + + + + Automatically check for updates at startup + Automatically check for updates at startup + + + + Session + Session + + + + Restore last session (active MDI windows) after startup + Restore last session (active MDI windows) after startup + + + + Allow multiple instances of the application at the same time + Allow multiple instances of the application at the same time + + + + Status Field + Status Field + + + + <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> + <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> + + + + Always open Status panel when new message is printed + Always open Status panel when new message is printed + + + + Code syntax colors + Code syntax colors + + + + Keyword foreground + Keyword foreground + + + + Regular foreground + Regular foreground + + + + String foreground + String foreground + + + + Comment foreground + Comment foreground + + + + Valid objects foreground + Valid objects foreground + + + + Current query background + Current query background + + + + Bind parameter foreground + Bind parameter foreground + + + + Current line background + Current line background + + + + Matched parenthesis background + Matched parenthesis background + + + + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + + + + Number foreground + Number foreground + + + + BLOB value foreground + BLOB value foreground + + + + Matched parenthesis foreground + Matched parenthesis foreground + + + + Reset to defaults + Reset to defaults + + + + Filter shortcuts by name or key combination + Filter shortcuts by name or key combination + + + + Action + Action + + + + Key combination + Key combination + + + + + Language + Language + + + + Changing language requires application restart to take effect. + Changing language requires application restart to take effect. + + + + Compact layout + Compact layout + + + + <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> + <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> + + + + Use compact layout + Use compact layout + + + + Main window dock areas + Main window dock areas + + + + Left and right areas occupy corners + Left and right areas occupy corners + + + + Top and bottom areas occupy corners + Top and bottom areas occupy corners + + + + Hide built-in plugins + Hide built-in plugins + + + + Current style: + Current style: + + + + Preview + Preview + + + + Enabled + Enabled + + + + Disabled + Disabled + + + + Active formatter plugin + Active formatter plugin + + + + SQL editor font + SQL editor font + + + + Database list font + Database list font + + + + Database list additional label font + Database list additional label font + + + + Data view font + Data view font + + + + Status field font + Status field font + + + + Code assistant settings + Code assistant settings + + + + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + + + + Automatically trigger the assistant after a dot is typed after an object name + Automatically trigger the assistant after a dot is typed after an object name + + + + Description: + plugin details + Description: + + + + Category: + plugin details + Category: + + + + Version: + plugin details + Version: + + + + Author: + plugin details + Author: + + + + Internal name: + plugin details + Internal name: + + + + Dependencies: + plugin details + Dependencies: + + + + Conflicts: + plugin details + Conflicts: + + + + Plugin details + Plugin details + + + + Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. + Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. + + + + %1 (built-in) + plugins manager in configuration dialog + %1 (built-in) + + + + Details + Details + + + + No plugins in this category. + No plugins in this category. + + + + Add new data type + Add new data type + + + + Rename selected data type + Rename selected data type + + + + Delete selected data type + Delete selected data type + + + + Help for configuring data type editors + Help for configuring data type editors + + + + Clear hotkey for this action + Clear hotkey for this action + + + + Restore original hotkey for this action + Restore original hotkey for this action + + + + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + + + + ConstraintCheckPanel + + + The condition + The condition + + + + Named constraint: + Named constraint: + + + + On conflict + On conflict + + + + Enter a valid condition. + Enter a valid condition. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ConstraintDialog + + + New constraint + constraint dialog + New constraint + + + + Create + constraint dialog + Create + + + + Edit constraint + dialog window + Edit constraint + + + + Apply + constraint dialog + Apply + + + + Primary key + table constraints + Primary key + + + + Foreign key + table constraints + Foreign key + + + + Unique + table constraints + Unique + + + + Not NULL + table constraints + Not NULL + + + + Check + table constraints + Check + + + + Generated + table constraints + Generated + + + + Collate + table constraints + Collate + + + + Default + table constraints + Default + + + + ConstraintTabModel + + + Table + table constraints + Table + + + + Column (%1) + table constraints + Column (%1) + + + + Scope + table constraints + Scope + + + + Type + table constraints + Type + + + + Details + table constraints + Details + + + + Name + table constraints + Name + + + + CssDebugDialog + + + SQLiteStudio CSS console + SQLiteStudio CSS console + + + + DataView + + + Filter data + data view + Filter data + + + + Grid view + Grid view + + + + Form view + Form view + + + + Refresh table data + data view + Refresh table data + + + + First page + data view + First page + + + + Previous page + data view + Previous page + + + + Next page + data view + Next page + + + + Last page + data view + Last page + + + + Commit changes for selected cells + data view + Commit changes for selected cells + + + + Rollback changes for selected cells + data view + Rollback changes for selected cells + + + + Show grid view of results + data view + Show grid view of results + + + + Show form view of results + data view + Show form view of results + + + + Filter by text (if contains) + data view + Filter by text (if contains) + + + + Filter strictly by text (if equals) + data view + Filter strictly by text (if equals) + + + + Tabs on top + data view + Tabs on top + + + + Tabs at bottom + data view + Tabs at bottom + + + + Place new rows above selected row + data view + Place new rows above selected row + + + + Place new rows below selected row + data view + Place new rows below selected row + + + + Place new rows at the end of the data view + data view + Place new rows at the end of the data view + + + + Total number of rows is being counted. +Browsing other pages will be possible after the row counting is done. + Total number of rows is being counted. +Browsing other pages will be possible after the row counting is done. + + + + Row: %1 + Row: %1 + + + + Filter + Filter + + + + Hit Enter key or press "Apply filter" button on toolbar to apply new value. + Hit Enter key or press "Apply filter" button on toolbar to apply new value. + + + + Filter by the Regular Expression + data view + Filter by the Regular Expression + + + + Filter by SQL expression + data view + Filter by SQL expression + + + + Show filter inputs per column + data view + Show filter inputs per column + + + + Apply filter + data view + Apply filter + + + + DbDialog + + + Database + Database + + + + Database type + Database type + + + + Database driver + Database driver + + + + + File + File + + + + Name (on the list) + Name (on the list) + + + + Options + Options + + + + <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> + aasfd + <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> + + + + Permanent (keep it in configuration) + Permanent (keep it in configuration) + + + + Test connection + Test connection + + + + Select new or existing file on local computer + Select new or existing file on local computer + + + + Browse + Browse + + + + Database type not selected. + Database type not selected. + + + + Database path not specified. + Database path not specified. + + + + Enter an unique database name. + Enter an unique database name. + + + + This name is already in use. Please enter unique name. + This name is already in use. Please enter unique name. + + + + <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> + <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> + + + + Enter a database file path. + Enter a database file path. + + + + This database is already on the list under name: %1 + This database is already on the list under name: %1 + + + + Select a database type. + Select a database type. + + + + DbObjectDialogs + + + Delete table + Delete table + + + + Are you sure you want to delete table %1? + Are you sure you want to delete table %1? + + + + Delete index + Delete index + + + + Are you sure you want to delete index %1? + Are you sure you want to delete index %1? + + + + Delete trigger + Delete trigger + + + + Are you sure you want to delete trigger %1? + Are you sure you want to delete trigger %1? + + + + Delete view + Delete view + + + + Are you sure you want to delete view %1? + Are you sure you want to delete view %1? + + + + + Error while dropping %1: %2 + Error while dropping %1: %2 + + + + Delete objects + Delete objects + + + + Are you sure you want to delete following objects: +%1 + Are you sure you want to delete following objects: +%1 + + + + Cannot start transaction. Details: %1 + Cannot start transaction. Details: %1 + + + + Cannot commit transaction. Details: %1 + Cannot commit transaction. Details: %1 + + + + DbTree + + + Databases + Databases + + + + Filter by name + Filter by name + + + + Copy + Copy + + + + Paste + Paste + + + + Select all + Select all + + + + Create a group + Create a group + + + + Delete the group + Delete the group + + + + Rename the group + Rename the group + + + + &Add a database + &Add a database + + + + &Edit the database + &Edit the database + + + + &Remove the database + &Remove the database + + + + &Connect to the database + &Connect to the database + + + + &Disconnect from the database + &Disconnect from the database + + + + Import + Import + + + + &Export the database + &Export the database + + + + Vac&uum + Vac&uum + + + + &Integrity check + &Integrity check + + + + Create a &table + Create a &table + + + + Edit the t&able + Edit the t&able + + + + Delete the ta&ble + Delete the ta&ble + + + + Export the table + Export the table + + + + Import into the table + Import into the table + + + + Populate table + Populate table + + + + Create similar table + Create similar table + + + + Reset autoincrement sequence + Reset autoincrement sequence + + + + Create an &index + Create an &index + + + + Edit the i&ndex + Edit the i&ndex + + + + Delete the in&dex + Delete the in&dex + + + + Create a trig&ger + Create a trig&ger + + + + Edit the trigg&er + Edit the trigg&er + + + + Delete the trigge&r + Delete the trigge&r + + + + Create a &view + Create a &view + + + + Edit the v&iew + Edit the v&iew + + + + Delete the vi&ew + Delete the vi&ew + + + + Add a column + Add a column + + + + Edit the column + Edit the column + + + + Delete the column + Delete the column + + + + Delete selected items + Delete selected items + + + + Clear filter + Clear filter + + + + &Refresh all database schemas + &Refresh all database schemas + + + + Re&fresh selected database schema + Re&fresh selected database schema + + + + + Erase table data + Erase table data + + + + Open file's directory + Open file's directory + + + + Execute SQL from file + Execute SQL from file + + + + Increase font size + database list + Increase font size + + + + Decrease font size + database list + Decrease font size + + + + + Database + Database + + + + Grouping + Grouping + + + + Generate query for table + Generate query for table + + + + + Create group + Create group + + + + Group name + Group name + + + + Entry with name %1 already exists in group %2. + Entry with name %1 already exists in group %2. + + + + Delete group + Delete group + + + + Are you sure you want to delete group %1? +All objects from this group will be moved to parent group. + Are you sure you want to delete group %1? +All objects from this group will be moved to parent group. + + + + Are you sure you want to remove database '%1' from the list? + Are you sure you want to remove database '%1' from the list? + + + + Are you sure you want to remove following databases from the list: +%1 + Are you sure you want to remove following databases from the list: +%1 + + + + Remove database + Remove database + + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Vacuum (%1) + Vacuum (%1) + + + + Integrity check (%1) + Integrity check (%1) + + + + Reset autoincrement + Reset autoincrement + + + + Are you sure you want to reset autoincrement value for table '%1'? + Are you sure you want to reset autoincrement value for table '%1'? + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + An error occurred while trying to reset autoincrement value for table '%1': %2 + + + + Autoincrement value for table '%1' has been reset successfully. + Autoincrement value for table '%1' has been reset successfully. + + + + Are you sure you want to delete all data from table(s): %1? + Are you sure you want to delete all data from table(s): %1? + + + + An error occurred while trying to delete data from table '%1': %2 + An error occurred while trying to delete data from table '%1': %2 + + + + All data has been deleted for table '%1'. + All data has been deleted for table '%1'. + + + + Following objects will be deleted: %1. + Following objects will be deleted: %1. + + + + Following databases will be removed from list: %1. + Following databases will be removed from list: %1. + + + + Remainig objects from deleted group will be moved in place where the group used to be. + Remainig objects from deleted group will be moved in place where the group used to be. + + + + %1<br><br>Are you sure you want to continue? + %1<br><br>Are you sure you want to continue? + + + + Delete objects + Delete objects + + + + DbTreeItemDelegate + + + error + dbtree labels + error + + + + (system table) + database tree label + (system table) + + + + (virtual) + virtual table label + (virtual) + + + + (system index) + database tree label + (system index) + + + + DbTreeModel + + + Database: %1 + dbtree tooltip + Database: %1 + + + + URI: + dbtree tooltip + URI: + + + + Version: + dbtree tooltip + Version: + + + + File size: + dbtree tooltip + File size: + + + + Encoding: + dbtree tooltip + Encoding: + + + + Error: + dbtree tooltip + Error: + + + + Table : %1 + dbtree tooltip + Table : %1 + + + + Columns (%1): + dbtree tooltip + Columns (%1): + + + + Indexes (%1): + dbtree tooltip + Indexes (%1): + + + + Triggers (%1): + dbtree tooltip + Triggers (%1): + + + + Copy + Copy + + + + Move + Move + + + + Include data + Include data + + + + Include indexes + Include indexes + + + + Include triggers + Include triggers + + + + Abort + Abort + + + + Could not add dropped database file '%1' automatically. Manual setup is necessary. + Could not add dropped database file '%1' automatically. Manual setup is necessary. + + + + Referenced tables + Referenced tables + + + + Do you want to include following referenced tables as well: +%1 + Do you want to include following referenced tables as well: +%1 + + + + Name conflict + Name conflict + + + + Following object already exists in the target database. +Please enter new, unique name, or press '%1' to abort the operation: + Following object already exists in the target database. +Please enter new, unique name, or press '%1' to abort the operation: + + + + SQL statements conversion + SQL statements conversion + + + + Following error occurred while converting SQL statements to the target SQLite version: + Following error occurred while converting SQL statements to the target SQLite version: + + + + Would you like to ignore those errors and proceed? + Would you like to ignore those errors and proceed? + + + + DdlHistoryWindow + + + Filter by database: + Filter by database: + + + + Clear entire history + Clear entire history + + + + -- Queries executed on database %1 (%2) +-- Date and time of execution: %3 +%4 + -- Queries executed on database %1 (%2) +-- Date and time of execution: %3 +%4 + + + + Clear history + Clear history + + + + Are you sure you want to erase entire DDL history? + Are you sure you want to erase entire DDL history? + + + + DDL history + DDL history + + + + DdlPreviewDialog + + + Queries to be executed + Queries to be executed + + + + Don't show again + Don't show again + + + + DebugConsole + + + SQLiteStudio Debug Console + SQLiteStudio Debug Console + + + + EditorWindow + + + SQL editor + SQL editor + + + + Query + Query + + + + History + History + + + + Results in the separate tab + Results in the separate tab + + + + Results below the query + Results below the query + + + + + SQL editor %1 + SQL editor %1 + + + + + Results + Results + + + + Execute query + Execute query + + + + Explain query + Explain query + + + + Clear execution history + sql editor + Clear execution history + + + + Export results + sql editor + Export results + + + + Create view from query + sql editor + Create view from query + + + + Previous database + Previous database + + + + Next database + Next database + + + + Show next tab + sql editor + Show next tab + + + + Show previous tab + sql editor + Show previous tab + + + + Focus results below + sql editor + Focus results below + + + + Focus SQL editor above + sql editor + Focus SQL editor above + + + + Delete selected SQL history entries + sql editor + Delete selected SQL history entries + + + + Execute single query under cursor + Execute single query under cursor + + + + Execute all queries in editor + Execute all queries in editor + + + + Active database (%1/%2) + Active database (%1/%2) + + + + Query finished in %1 second(s). Rows affected: %2 + Query finished in %1 second(s). Rows affected: %2 + + + + Query finished in %1 second(s). + Query finished in %1 second(s). + + + + Clear execution history + Clear execution history + + + + Are you sure you want to erase the entire SQL execution history? This cannot be undone. + Are you sure you want to erase the entire SQL execution history? This cannot be undone. + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + No database selected in the SQL editor. Cannot create a view for unknown database. + No database selected in the SQL editor. Cannot create a view for unknown database. + + + + Editor window "%1" has uncommitted data. + Editor window "%1" has uncommitted data. + + + + ErrorsConfirmDialog + + + Errors + Errors + + + + Following errors occured: + Following errors occured: + + + + Would you like to proceed? + Would you like to proceed? + + + + ExecFromFileDialog + + + Execute SQL from file + Execute SQL from file + + + + Input file + Input file + + + + Path to file + Path to file + + + + Browse for file + Browse for file + + + + Options + Options + + + + File encoding + File encoding + + + + Skip failing SQL statements + Skip failing SQL statements + + + + SQL scripts (*.sql);;All files (*) + SQL scripts (*.sql);;All files (*) + + + + Execute SQL file + Execute SQL file + + + + Please provide file to be executed. + Please provide file to be executed. + + + + Provided file does not exist or cannot be read. + Provided file does not exist or cannot be read. + + + + ExportDialog + + + Export + Export + + + + What do you want to export? + What do you want to export? + + + + A database + A database + + + + A single table + A single table + + + + Query results + Query results + + + + Table to export + Table to export + + + + Database + Database + + + + Table + Table + + + + Options + Options + + + + When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. + When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. + + + + Export table data + Export table data + + + + Export table indexes + Export table indexes + + + + Export table triggers + Export table triggers + + + + Note, that exporting table indexes and triggers may be unsupported by some output formats. + Note, that exporting table indexes and triggers may be unsupported by some output formats. + + + + Select database objects to export + Select database objects to export + + + + Export data from tables + Export data from tables + + + + Select all + Select all + + + + Deselect all + Deselect all + + + + + Database: + Database: + + + + Query to export results for + Query to export results for + + + + Query to be executed for results: + Query to be executed for results: + + + + Export format and options + Export format and options + + + + Export format + Export format + + + + Output + Output + + + + Exported file path + Exported file path + + + + Clipboard + Clipboard + + + + File + File + + + + Exported text encoding: + Exported text encoding: + + + + Export format options + Export format options + + + + Cancel + Cancel + + + + + + Select database to export. + Select database to export. + + + + Select table to export. + Select table to export. + + + + Enter valid query to export. + Enter valid query to export. + + + + Select at least one object to export. + Select at least one object to export. + + + + You must provide a file name to export to. + You must provide a file name to export to. + + + + Path you provided is an existing directory. You cannot overwrite it. + Path you provided is an existing directory. You cannot overwrite it. + + + + The directory '%1' does not exist. + The directory '%1' does not exist. + + + + The file '%1' exists and will be overwritten. + The file '%1' exists and will be overwritten. + + + + All files (*) + All files (*) + + + + Pick file to export to + Pick file to export to + + + + Internal error during export. This is a bug. Please report it. + Internal error during export. This is a bug. Please report it. + + + + FileExecErrorsDialog + + + Execution errors + Execution errors + + + + Following errors were encountered during execution of SQL statements from the file: + Following errors were encountered during execution of SQL statements from the file: + + + + SQL + SQL + + + + Error + Error + + + + Statements that were executed successfully were commited. + Statements that were executed successfully were commited. + + + + Statements that were executed successfully were rolled back. + Statements that were executed successfully were rolled back. + + + + FkComboBox + + + Cannot edit this cell. Details: %1 + Cannot edit this cell. Details: %1 + + + + FontEdit + + + Choose font + font configuration + Choose font + + + + Form + + + Active SQL formatter plugin + Active SQL formatter plugin + + + + FormView + + + Commit row + form view + Commit row + + + + Rollback row + form view + Rollback row + + + + First row + form view + First row + + + + Previous row + form view + Previous row + + + + Next row + form view + Next row + + + + Last row + form view + Last row + + + + Insert new row + form view + Insert new row + + + + Delete current row + form view + Delete current row + + + + FunctionsEditor + + + Filter functions + Filter functions + + + + Input arguments + Input arguments + + + + Undefined + Undefined + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Type: + Type: + + + + Function name: + Function name: + + + + Implementation language: + Implementation language: + + + + Deterministic + Deterministic + + + + Initialization code: + Initialization code: + + + + + Function implementation code: + Function implementation code: + + + + Final step implementation code: + Final step implementation code: + + + + SQL functions editor + SQL functions editor + + + + Commit all function changes + Commit all function changes + + + + Rollback all function changes + Rollback all function changes + + + + Create new function + Create new function + + + + Delete selected function + Delete selected function + + + + Custom SQL functions manual + Custom SQL functions manual + + + + Add function argument + Add function argument + + + + Rename function argument + Rename function argument + + + + Delete function argument + Delete function argument + + + + Move function argument up + Move function argument up + + + + Move function argument down + Move function argument down + + + + Scalar + Scalar + + + + Aggregate + Aggregate + + + + Enter a non-empty, unique name of the function. + Enter a non-empty, unique name of the function. + + + + Pick the implementation language. + Pick the implementation language. + + + + Per step code: + Per step code: + + + + Enter a non-empty implementation code. + Enter a non-empty implementation code. + + + + argument + new function argument name in function editor window + argument + + + + Functions editor window has uncommitted modifications. + Functions editor window has uncommitted modifications. + + + + ImportDialog + + + Import data + Import data + + + + Table to import to + Table to import to + + + + Table + Table + + + + Database + Database + + + + Data source to import from + Data source to import from + + + + Data source type + Data source type + + + + Options + Options + + + + Text encoding: + Text encoding: + + + + Input file: + Input file: + + + + <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> + <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> + + + + Ignore errors + Ignore errors + + + + Data source options + Data source options + + + + Cancel + Cancel + + + + If you type table name that doesn't exist, it will be created. + If you type table name that doesn't exist, it will be created. + + + + Enter the table name + Enter the table name + + + + Select import plugin. + Select import plugin. + + + + You must provide a file to import from. + You must provide a file to import from. + + + + The file '%1' does not exist. + The file '%1' does not exist. + + + + Path you provided is a directory. A regular file is required. + Path you provided is a directory. A regular file is required. + + + + Pick file to import from + Pick file to import from + + + + IndexDialog + + + + Index + Index + + + + Column + Column + + + + Sort + Sort + + + + Collation + Collation + + + + On table: + On table: + + + + Delete selected indexed expression + Delete selected indexed expression + + + + Moves selected index column up in the order, making it more significant in the index. + Moves selected index column up in the order, making it more significant in the index. + + + + Moves selected index column down in the order, making it less significant in the index. + Moves selected index column down in the order, making it less significant in the index. + + + + Partial index condition + Partial index condition + + + + Unique index + Unique index + + + + Index name: + Index name: + + + + Edit selected indexed expression + Edit selected indexed expression + + + + Add indexed expression + Add indexed expression + + + + DDL + DDL + + + + Tried to open index dialog for closed or inexisting database. + Tried to open index dialog for closed or inexisting database. + + + + Could not process index %1 correctly. Unable to open an index dialog. + Could not process index %1 correctly. Unable to open an index dialog. + + + + Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. + Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. + + + + Pick the table for the index. + Pick the table for the index. + + + + Select at least one column. + Select at least one column. + + + + Enter a valid condition. + Enter a valid condition. + + + + default + index dialog + default + + + + Sort order + table constraints + Sort order + + + + + Error + index dialog + Error + + + + Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? + Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? + + + + An error occurred while executing SQL statements: +%1 + An error occurred while executing SQL statements: +%1 + + + + IndexExprColumnDialog + + + Indexed expression + Indexed expression + + + + Expression to index + Expression to index + + + + This expression is already indexed by the index. + This expression is already indexed by the index. + + + + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. + + + + Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. + Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. + + + + It's forbidden to use 'SELECT' statements in indexed expressions. + It's forbidden to use 'SELECT' statements in indexed expressions. + + + + Enter an indexed expression. + Enter an indexed expression. + + + + Invalid expression. + Invalid expression. + + + + LanguageDialog + + + Language + Language + + + + Please choose language: + Please choose language: + + + + MainWindow + + + Database toolbar + Database toolbar + + + + Structure toolbar + Structure toolbar + + + + Tools + Tools + + + + Window list + Window list + + + + View toolbar + View toolbar + + + + Configuration widgets + Configuration widgets + + + + Syntax highlighting engines + Syntax highlighting engines + + + + Data editors + Data editors + + + + Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. + Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. + + + + Running in debug mode. Debug messages are printed to the standard output. + Running in debug mode. Debug messages are printed to the standard output. + + + + You need to restart application to make the language change take effect. + You need to restart application to make the language change take effect. + + + + Open SQL &editor + Open SQL &editor + + + + Open DDL &history + Open DDL &history + + + + Open SQL &functions editor + Open SQL &functions editor + + + + Open code &snippets editor + Open code &snippets editor + + + + Open &collations editor + Open &collations editor + + + + Open ex&tension manager + Open ex&tension manager + + + + &Import + &Import + + + + E&xport + E&xport + + + + Open confi&guration dialog + Open confi&guration dialog + + + + &Tile windows + &Tile windows + + + + Tile windows &horizontally + Tile windows &horizontally + + + + Tile windows &vertically + Tile windows &vertically + + + + &Cascade windows + &Cascade windows + + + + Next window + Next window + + + + Previous window + Previous window + + + + Hide status field + Hide status field + + + + Close &all windows + Close &all windows + + + + Re&store recently closed window + Re&store recently closed window + + + + Close current &window + Close current &window + + + + Close &other windows + Close &other windows + + + + Close windows on the &left + Close windows on the &left + + + + Close windows on the &right + Close windows on the &right + + + + Re&name selected window + Re&name selected window + + + + Open Debug Console + Open Debug Console + + + + Open CSS Console + Open CSS Console + + + + Report a &bug + Report a &bug + + + + D&onate + D&onate + + + + Propose a new &feature + Propose a new &feature + + + + &About + &About + + + + &Licenses + &Licenses + + + + Open home &page + Open home &page + + + + User &Manual + User &Manual + + + + SQLite &documentation + SQLite &documentation + + + + Bugs and feature &requests + Bugs and feature &requests + + + + Quit + Quit + + + + Check for &updates + Check for &updates + + + + &Database + menubar + &Database + + + + &Structure + menubar + &Structure + + + + &View + menubar + &View + + + + Window list + menubar view menu + Window list + + + + &Tools + menubar + &Tools + + + + &Help + &Help + + + + Could not set style: %1 + main window + Could not set style: %1 + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + Rename window + Rename window + + + + Enter new name for the window: + Enter new name for the window: + + + + New updates are available. <a href="%1">Click here for details</a>. + New updates are available. <a href="%1">Click here for details</a>. + + + + You're running the most recent version. No updates are available. + You're running the most recent version. No updates are available. + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + Database passed in command line parameters (%1) was already on the list under name: %2 + + + + Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 + Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + MdiWindow + + + Uncommitted changes + Uncommitted changes + + + + Close anyway + Close anyway + + + + Don't close + Don't close + + + + MultiEditor + + + Null value + multieditor + Null value + + + + Configure editors for this data type + Configure editors for this data type + + + + Open another tab + Open another tab + + + + Foreign Key + Foreign Key + + + + Data editor plugin '%1' not loaded, while it is defined for editing '%2' data type. + Data editor plugin '%1' not loaded, while it is defined for editing '%1' data type. {1'?} {2'?} {1' or 2'?} + + + + Deleted + multieditor + Deleted + + + + Read only + multieditor + Read only + + + + MultiEditorBoolPlugin + + + Boolean + Boolean + + + + MultiEditorDatePlugin + + + Date + Date + + + + MultiEditorDateTimePlugin + + + Date & time + Date & time + + + + MultiEditorHexPlugin + + + Hex + Hex + + + + MultiEditorNumericPlugin + + + Number + numeric multi editor tab name + Number + + + + MultiEditorText + + + Tab changes focus + Tab changes focus + + + + Cut + Cut + + + + Copy + Copy + + + + Paste + Paste + + + + Delete + Delete + + + + Undo + Undo + + + + Redo + Redo + + + + MultiEditorTextPlugin + + + Text + Text + + + + MultiEditorTimePlugin + + + Time + Time + + + + NewConstraintDialog + + + New constraint + New constraint + + + + + Primary Key + new constraint dialog + Primary Key + + + + + Foreign Key + new constraint dialog + Foreign Key + + + + + Unique + new constraint dialog + Unique + + + + + Check + new constraint dialog + Check + + + + Not NULL + new constraint dialog + Not NULL + + + + Collate + new constraint dialog + Collate + + + + Generated + new constraint dialog + Generated + + + + Default + new constraint dialog + Default + + + + NewVersionDialog + + + SQLiteStudio updates + SQLiteStudio updates + + + + New version is available! + New version is available! + + + + Download new version! + Download new version! + + + + New version package will be downloaded. It will be up to you to install it whenever you're ready. + New version package will be downloaded. It will be up to you to install it whenever you're ready. + + + + Open SQLiteStudio home page. + Open SQLiteStudio home page. + + + + Read release notes && download package yourself. + Read release notes && download package yourself. + + + + Just close this window. + Just close this window. + + + + Check for updates on startup + Check for updates on startup + + + + Not now. + Not now. + + + + PopulateConfigDialog + + + Populating configuration + Populating configuration + + + + Configuring <b>%1</b> for column <b>%2</b> + Configuring <b>%1</b> for column <b>%2</b> + + + + PopulateDialog + + + Populate table + Populate table + + + + Database + Database + + + + Table + Table + + + + Columns + Columns + + + + Number of rows to populate: + Number of rows to populate: + + + + Populate + populate dialog button + Populate + + + + Abort + Abort + + + + Configure + Configure + + + + Populating configuration for this column is invalid or incomplete. + Populating configuration for this column is invalid or incomplete. + + + + Select database with table to populate + Select database with table to populate + + + + Select table to populate + Select table to populate + + + + You have to select at least one column. + You have to select at least one column. + + + + QObject + + + Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). + Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). + + + + The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. + The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. + + + + Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. + Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. + + + + Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. + Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. + + + + Cannot edit results of query other than %1. + Cannot edit results of query other than %1. + + + + Cannot edit columns that are result of aggregated %1 statements. + Cannot edit columns that are result of aggregated %1 statements. + + + + Cannot edit columns that are result of %1 statement. + Cannot edit columns that are result of %1 statement. + + + + Cannot edit columns that are result of common table expression statement (%1). + Cannot edit columns that are result of common table expression statement (%1). + + + + Cannot edit table generated columns. + Cannot edit table generated columns. + + + + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). + + + + + + + on conflict: %1 + data view tooltip + on conflict: %1 + + + + references table %1, column %2 + data view tooltip + references table %1, column %2 + + + + condition: %1 + data view tooltip + condition: %1 + + + + collation name: %1 + data view tooltip + collation name: %1 + + + + Data grid view + Data grid view + + + + Edit current cell inline + Edit current cell inline + + + + Copy cell(s) contents to clipboard + Copy cell(s) contents to clipboard + + + + Copy cell(s) contents together with header to clipboard + Copy cell(s) contents together with header to clipboard + + + + Paste cell(s) contents from clipboard + Paste cell(s) contents from clipboard + + + + Set empty value to selected cell(s) + Set empty value to selected cell(s) + + + + Set NULL value to selected cell(s) + Set NULL value to selected cell(s) + + + + Commit changes to cell(s) contents + Commit changes to cell(s) contents + + + + Rollback changes to cell(s) contents + Rollback changes to cell(s) contents + + + + Delete selected data row + Delete selected data row + + + + Insert new data row + Insert new data row + + + + Open contents of selected cell in a separate editor + Open contents of selected cell in a separate editor + + + + Toggle the height adjustment of rows + Toggle the height adjustment of rows + + + + Increase font size + data view + Increase font size + + + + Decrease font size + data view + Decrease font size + + + + Total pages available: %1 + Total pages available: %1 + + + + Total rows loaded: %1 + Total rows loaded: %1 + + + + Data view (both grid and form) + Data view (both grid and form) + + + + Refresh data + Refresh data + + + + Switch to grid view of the data + Switch to grid view of the data + + + + Switch to form view of the data + Switch to form view of the data + + + + Database list + Database list + + + + Delete selected item + Delete selected item + + + + Clear filter contents + Clear filter contents + + + + Refresh schema + Refresh schema + + + + Refresh all schemas + Refresh all schemas + + + + Add database + Add database + + + + Select all items + Select all items + + + + Copy selected item(s) + Copy selected item(s) + + + + + + Paste from clipboard + Paste from clipboard + + + + Increase font size + database list + Increase font size + + + + Decrease font size + database list + Decrease font size + + + + Tables + Tables + + + + Indexes + Indexes + + + + Triggers + Triggers + + + + Views + Views + + + + Columns + Columns + + + + Data form view + Data form view + + + + Commit changes for current row + Commit changes for current row + + + + Rollback changes for current row + Rollback changes for current row + + + + Go to first row on current page + Go to first row on current page + + + + Go to next row + Go to next row + + + + Go to previous row + Go to previous row + + + + Go to last row on current page + Go to last row on current page + + + + Insert new row + Insert new row + + + + Delete current row + Delete current row + + + + Main window + Main window + + + + Open SQL editor + Open SQL editor + + + + Open DDL history window + Open DDL history window + + + + Open snippets editor window + Open snippets editor window + + + + Open function editor window + Open function editor window + + + + Open collation editor window + Open collation editor window + + + + Open extension manager window + Open extension manager window + + + + Previous window + Previous window + + + + Next window + Next window + + + + Hide status area + Hide status area + + + + Open user manual + Open user manual + + + + Open configuration dialog + Open configuration dialog + + + + Open Debug Console + Open Debug Console + + + + Open CSS Console + Open CSS Console + + + + Open the About dialog + Open the About dialog + + + + Quit the application + Quit the application + + + + Cell text value editor + Cell text value editor + + + + + Cut selected text + Cut selected text + + + + + Copy selected text + Copy selected text + + + + + Delete selected text + Delete selected text + + + + + Undo + Undo + + + + + Redo + Redo + + + + SQL editor input field + SQL editor input field + + + + Select whole editor contents + Select whole editor contents + + + + Save contents into a file + Save contents into a file + + + + Load contents from a file + Load contents from a file + + + + Find in text + Find in text + + + + Find next + Find next + + + + Find previous + Find previous + + + + Replace in text + Replace in text + + + + Delete current line + Delete current line + + + + Request code assistant + Request code assistant + + + + Format contents + Format contents + + + + Move selected block of text one line down + Move selected block of text one line down + + + + Move selected block of text one line up + Move selected block of text one line up + + + + Copy selected block of text and paste it a line below + Copy selected block of text and paste it a line below + + + + Copy selected block of text and paste it a line above + Copy selected block of text and paste it a line above + + + + Toggle comment + Toggle comment + + + + Increase font size + sql editor + Increase font size + + + + Decrease font size + sql editor + Decrease font size + + + + All SQLite databases + All SQLite databases + + + + All files + All files + + + + Select database file + Select database file + + + + Select + Select + + + + File type + File type + + + + SQL editor window + SQL editor window + + + + Execute query + Execute query + + + + Execute single query under cursor + Execute single query under cursor + + + + Execute all queries in editor + Execute all queries in editor + + + + Execute "%1" query + Execute "%1" query + + + + Switch current working database to previous on the list + Switch current working database to previous on the list + + + + Switch current working database to next on the list + Switch current working database to next on the list + + + + Go to next editor tab + Go to next editor tab + + + + Go to previous editor tab + Go to previous editor tab + + + + Move keyboard input focus to the results view below + Move keyboard input focus to the results view below + + + + Move keyboard input focus to the SQL editor above + Move keyboard input focus to the SQL editor above + + + + Delete selected SQL history entries + Delete selected SQL history entries + + + + Table window + Table window + + + + Commit the table structure + Commit the table structure + + + + Rollback pending changes in the table structure + Rollback pending changes in the table structure + + + + Refresh table structure + Refresh table structure + + + + Add new column + Add new column + + + + Edit selected column + Edit selected column + + + + Delete selected column + Delete selected column + + + + Export table data + Export table data + + + + Import data to the table + Import data to the table + + + + Add new table constraint + Add new table constraint + + + + Edit selected table constraint + Edit selected table constraint + + + + Delete selected table constraint + Delete selected table constraint + + + + Refresh table index list + Refresh table index list + + + + Add new index + Add new index + + + + Edit selected index + Edit selected index + + + + Delete selected index + Delete selected index + + + + Refresh table trigger list + Refresh table trigger list + + + + + Add new trigger + Add new trigger + + + + + Edit selected trigger + Edit selected trigger + + + + + Delete selected trigger + Delete selected trigger + + + + + Go to next tab + Go to next tab + + + + + Go to previous tab + Go to previous tab + + + + A view window + A view window + + + + Commit the view's query + Commit the view's query + + + + Rollback pending changes in the view's query + Rollback pending changes in the view's query + + + + Refresh view trigger list + Refresh view trigger list + + + + Execute the view's query + Execute the view's query + + + + A code snippets editor window + A code snippets editor window + + + + + + + Commit the pending changes + Commit the pending changes + + + + + + + Rollback the pending changes + Rollback the pending changes + + + + A collation editor window + A collation editor window + + + + A function editor window + A function editor window + + + + A SQLite extension editor window + A SQLite extension editor window + + + + QuitConfirmDialog + + + Uncommitted changes + Uncommitted changes + + + + Are you sure you want to quit the application? + +Following items are pending: + Are you sure you want to quit the application? + +Following items are pending: + + + + SearchTextDialog + + + Find or replace + Find or replace + + + + Find: + Find: + + + + Case sensitive + Case sensitive + + + + Search backwards + Search backwards + + + + Regular expression matching + Regular expression matching + + + + Replace && +find next + Replace && +find next + + + + Replace with: + Replace with: + + + + Replace all + Replace all + + + + Find + Find + + + + SortDialog + + + Sort by columns + Sort by columns + + + + + Column + Column + + + + + Order + Order + + + + Sort by: %1 + Sort by: %1 + + + + Move column up + Move column up + + + + Move column down + Move column down + + + + SqlEditor + + + Wrap words + sql editor + Wrap words + + + + Cut + sql editor + Cut + + + + Copy + sql editor + Copy + + + + Paste + sql editor + Paste + + + + Delete + sql editor + Delete + + + + Select all + sql editor + Select all + + + + Undo + sql editor + Undo + + + + Redo + sql editor + Redo + + + + Complete + sql editor + Complete + + + + Format SQL + sql editor + Format SQL + + + + Save SQL to file + sql editor + Save SQL to file + + + + Select file to save SQL + sql editor + Select file to save SQL + + + + Load SQL from file + sql editor + Load SQL from file + + + + Delete line + sql editor + Delete line + + + + Move block down + sql editor + Move block down + + + + Move block up + sql editor + Move block up + + + + Copy block down + sql editor + Copy block down + + + + Copy up down + sql editor + Copy up down + + + + Find + sql editor + Find + + + + Find next + sql editor + Find next + + + + Find previous + sql editor + Find previous + + + + Replace + sql editor + Replace + + + + Toggle comment + sql editor + Toggle comment + + + + Increase font size + sql editor + Increase font size + + + + Decrease font size + sql editor + Decrease font size + + + + Could not open file '%1' for writing: %2 + Could not open file '%1' for writing: %2 + + + + Saved SQL contents to file: %1 + Saved SQL contents to file: %1 + + + + Syntax completion can be used only when a valid database is set for the SQL editor. + Syntax completion can be used only when a valid database is set for the SQL editor. + + + + Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. + Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. + + + + Save to file + Save to file + + + + SQL scripts (*.sql);;All files (*) + SQL scripts (*.sql);;All files (*) + + + + Open file + Open file + + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Reached the end of document. Hit the find again to restart the search. + Reached the end of document. Hit the find again to restart the search. + + + + SqlQueryItem + + + Committing error: + data view tooltip + Committing error: + + + + Column: + data view tooltip + Column: + + + + Data type: + data view + Data type: + + + + Table: + data view tooltip + Table: + + + + Constraints: + data view tooltip + Constraints: + + + + SqlQueryItemDelegate + + + + + + Cannot edit this cell. Details: %1 + Cannot edit this cell. Details: %1 + + + + The row is marked for deletion. + The row is marked for deletion. + + + + + Structure of this table has changed since last data was loaded. Reload the data to proceed. + Structure of this table has changed since last data was loaded. Reload the data to proceed. + + + + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). + + + + Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. + Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. + + + + SqlQueryModel + + + + Only one query can be executed simultaneously. + Only one query can be executed simultaneously. + + + + Cannot execute query on undefined or invalid database. + Cannot execute query on undefined or invalid database. + + + + Cannot execute empty query. + Cannot execute empty query. + + + + Uncommitted data + Uncommitted data + + + + There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. + There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. + + + + Cannot commit the data for a cell that refers to the already closed database. + Cannot commit the data for a cell that refers to the already closed database. + + + + Could not begin transaction on the database. Details: %1 + Could not begin transaction on the database. Details: %1 + + + + An error occurred while committing the transaction: %1 + An error occurred while committing the transaction: %1 + + + + An error occurred while rolling back the transaction: %1 + An error occurred while rolling back the transaction: %1 + + + + Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. + Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. + + + + An error occurred while committing the data: %1 + An error occurred while committing the data: %1 + + + + Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. + Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. + + + + + Error while executing SQL query on database '%1': %2 + Error while executing SQL query on database '%1': %2 + + + + Error while loading query results: %1 + Error while loading query results: %1 + + + + Insert multiple rows + Insert multiple rows + + + + Number of rows to insert: + Number of rows to insert: + + + + Delete rows + Delete rows + + + + You're about to delete newly inserted rows that are not committed yet. Row numbers: %1 +Such deletion will be permanent. Are you sure you want to delete them? + You're about to delete newly inserted rows that are not committed yet. Row numbers: %1 +Such deletion will be permanent. Are you sure you want to delete them? + + + + SqlQueryView + + + Go to referenced row in... + Go to referenced row in... + + + + Copy + Copy + + + + Copy with headers + Copy with headers + + + + Copy as... + Copy as... + + + + Paste + Paste + + + + Paste as... + Paste as... + + + + Set NULL values + Set NULL values + + + + Erase values + Erase values + + + + Commit + Commit + + + + Rollback + Rollback + + + + Commit selected cells + Commit selected cells + + + + Rollback selected cells + Rollback selected cells + + + + Edit current cell inline + Edit current cell inline + + + + Define columns to sort by + Define columns to sort by + + + + Remove custom sorting + Remove custom sorting + + + + Insert row + Insert row + + + + Insert multiple rows + Insert multiple rows + + + + Delete selected row + Delete selected row + + + + Adjust height of rows + Adjust height of rows + + + + Increase font size + data view + Increase font size + + + + Decrease font size + data view + Decrease font size + + + + Invert selection + data view + Invert selection + + + + Edit value in editor + Edit value in editor + + + + Show value in a viewer + Show value in a viewer + + + + Generate query for selected cells + Generate query for selected cells + + + + No items selected to paste clipboard contents to. + No items selected to paste clipboard contents to. + + + + Cannot paste data. Details: %1 + Cannot paste data. Details: %1 + + + + Structure of at least one table used has changed since last data was loaded. Reload the data to proceed. + Structure of at least one table used has changed since last data was loaded. Reload the data to proceed. + + + + Cannot paste to a cell. Details: %1 + Cannot paste to a cell. Details: %1 + + + + The row is marked for deletion. + The row is marked for deletion. + + + + Cannot paste to column %1. Details: %2 + Cannot paste to column %1. Details: %2 + + + + Go to referenced row in table '%1' + Go to referenced row in table '%1' + + + + table '%1' + table '%1' + + + + Referenced row (%1) + Referenced row (%1) + + + + Trim pasted text? + Trim pasted text? + + + + The pasted text contains leading or trailing white space. Trim it automatically? + The pasted text contains leading or trailing white space. Trim it automatically? + + + + Paste "NULL" as null value? + Paste "NULL" as null value? + + + + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + + + + Edit value + Edit value + + + + SqlTableModel + + + Error while committing new row: %1 + Error while committing new row: %1 + + + + Error while deleting row from table %1: %2 + Error while deleting row from table %1: %2 + + + + SqliteExtensionEditor + + + Filter extensions + Filter extensions + + + + Leave empty to use default function + Leave empty to use default function + + + + Extension file + Extension file + + + + Initialization function + Initialization function + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Extension manager window has uncommitted modifications. + Extension manager window has uncommitted modifications. + + + + Extension manager + Extension manager + + + + Commit all extension changes + Commit all extension changes + + + + Rollback all extension changes + Rollback all extension changes + + + + Add new extension + Add new extension + + + + Remove selected extension + Remove selected extension + + + + Editing extensions manual + Editing extensions manual + + + + File with given path does not exist or is not readable. + File with given path does not exist or is not readable. + + + + Unable to load extension: %1 + Unable to load extension: %1 + + + + Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. + Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. + + + + Dynamic link libraries (*.dll);;All files (*) + Dynamic link libraries (*.dll);;All files (*) + + + + Shared objects (*.so);;All files (*) + Shared objects (*.so);;All files (*) + + + + Dynamic libraries (*.dylib);;All files (*) + Dynamic libraries (*.dylib);;All files (*) + + + + All files (*) + All files (*) + + + + Open file + Open file + + + + StatusField + + + Status + Status + + + + Copy + Copy + + + + Clear + Clear + + + + TableConstraintsModel + + + Type + table constraints + Type + + + + Details + table constraints + Details + + + + Name + table constraints + Name + + + + TableForeignKeyPanel + + + Foreign table: + Foreign table: + + + + Columns + Columns + + + + Local column + Local column + + + + Foreign column + Foreign column + + + + Reactions + Reactions + + + + Deferred foreign key + Deferred foreign key + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + Pick the foreign column. + Pick the foreign column. + + + + Pick the foreign table. + Pick the foreign table. + + + + Select at least one foreign column. + Select at least one foreign column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + Foreign column + table constraints + Foreign column + + + + TablePrimaryKeyAndUniquePanel + + + Columns + Columns + + + + Column + Column + + + + Collation + Collation + + + + Sort + Sort + + + + Valid only for a single column with INTEGER data type + Valid only for a single column with INTEGER data type + + + + Autoincrement + Autoincrement + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + On conflict + On conflict + + + + Collate + table constraints + Collate + + + + Sort order + table constraints + Sort order + + + + Select at least one column. + Select at least one column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + TableStructureModel + + + Name + table structure columns + Name + + + + Data type + table structure columns + Data type + + + + Primary +Key + table structure columns + Primary +Key + + + + Foreign +Key + table structure columns + Foreign +Key + + + + Unique + table structure columns + Unique + + + + Check + table structure columns + Check + + + + Not +NULL + table structure columns + Not +NULL + + + + Collate + table structure columns + Collate + + + + Generated + table structure columns + Generated + + + + Default value + table structure columns + Default value + + + + TableWindow + + + Structure + Structure + + + + Table name: + Table name: + + + + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + + + + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + + + + + Data + Data + + + + Constraints + Constraints + + + + Indexes + Indexes + + + + Triggers + Triggers + + + + DDL + DDL + + + + Export table + table window + Export table + + + + Import data to table + table window + Import data to table + + + + Populate table + table window + Populate table + + + + Refresh structure + table window + Refresh structure + + + + Commit structure changes + table window + Commit structure changes + + + + Rollback structure changes + table window + Rollback structure changes + + + + Add column + table window + Add column + + + + Edit column + table window + Edit column + + + + + Delete column + table window + Delete column + + + + Move column up + table window + Move column up + + + + Move column down + table window + Move column down + + + + Create similar table + table window + Create similar table + + + + Reset autoincrement value + table window + Reset autoincrement value + + + + Add table constraint + table window + Add table constraint + + + + Edit table constraint + table window + Edit table constraint + + + + Delete table constraint + table window + Delete table constraint + + + + Move table constraint up + table window + Move table constraint up + + + + Move table constraint down + table window + Move table constraint down + + + + Add table primary key + table window + Add table primary key + + + + Add table foreign key + table window + Add table foreign key + + + + Add table unique constraint + table window + Add table unique constraint + + + + Add table check constraint + table window + Add table check constraint + + + + Refresh index list + table window + Refresh index list + + + + + Create index + table window + Create index + + + + Edit index + table window + Edit index + + + + Delete index + table window + Delete index + + + + Refresh trigger list + table window + Refresh trigger list + + + + + Create trigger + table window + Create trigger + + + + Edit trigger + table window + Edit trigger + + + + Delete trigger + table window + Delete trigger + + + + Are you sure you want to delete column '%1'? + table window + Are you sure you want to delete column '%1'? + + + + Following problems will take place while modifying the table. +Would you like to proceed? + table window + Following problems will take place while modifying the table. +Would you like to proceed? + + + + Table modification + table window + Table modification + + + + Could not load data for table %1. Error details: %2 + Could not load data for table %1. Error details: %2 + + + + Could not process the %1 table correctly. Unable to open a table window. + Could not process the %1 table correctly. Unable to open a table window. + + + + Database + Database + + + + Could not restore window %1, because no database or table was stored in session for this window. + Could not restore window %1, because no database or table was stored in session for this window. + + + + Could not restore window '%1', because no database or table was stored in session for this window. + Could not restore window '%1', because no database or table was stored in session for this window. + + + + Could not restore window '%1', because database %2 could not be resolved. + Could not restore window '%1', because database %2 could not be resolved. + + + + Could not restore window '%1', because the table %2 doesn't exist in the database %3. + Could not restore window '%1', because the table %2 doesn't exist in the database %3. + + + + + New table %1 + New table %1 + + + + Committed changes for table '%1' successfully. + Committed changes for table '%1' successfully. + + + + Committed changes for table '%1' (named before '%2') successfully. + Committed changes for table '%1' (named before '%2') successfully. + + + + Could not commit table structure. Error message: %1 + table window + Could not commit table structure. Error message: %1 + + + + Reset autoincrement + Reset autoincrement + + + + Are you sure you want to reset autoincrement value for table '%1'? + Are you sure you want to reset autoincrement value for table '%1'? + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + An error occurred while trying to reset autoincrement value for table '%1': %2 + + + + Autoincrement value for table '%1' has been reset successfully. + Autoincrement value for table '%1' has been reset successfully. + + + + Empty name + Empty name + + + + A blank name for the table is allowed in SQLite, but it is not recommended. +Are you sure you want to create a table with blank name? + A blank name for the table is allowed in SQLite, but it is not recommended. +Are you sure you want to create a table with blank name? + + + + Cannot create a table without at least one column. + Cannot create a table without at least one column. + + + + Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. + Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. + + + + Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. + Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. + + + + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 + + + + Are you sure you want to delete table constraint '%1'? + table window + Are you sure you want to delete table constraint '%1'? + + + + Delete constraint + table window + Delete constraint + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + Uncommitted changes + Uncommitted changes + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + + + + Go back to structure tab + Go back to structure tab + + + + Commit modifications and browse data. + Commit modifications and browse data. + + + + Name + table window indexes + Name + + + + Unique + table window indexes + Unique + + + + Columns + table window indexes + Columns + + + + Partial index condition + table window indexes + Partial index condition + + + + Name + table window triggers + Name + + + + Event + table window triggers + Event + + + + Condition + table window triggers + Condition + + + + Details + table window triggers + Details + + + + Table window "%1" has uncommitted structure modifications and data. + Table window "%1" has uncommitted structure modifications and data. + + + + Table window "%1" has uncommitted data. + Table window "%1" has uncommitted data. + + + + Table window "%1" has uncommitted structure modifications. + Table window "%1" has uncommitted structure modifications. + + + + TriggerColumnsDialog + + + Trigger columns + Trigger columns + + + + Triggering columns: + Triggering columns: + + + + Select all + Select all + + + + Deselect all + Deselect all + + + + TriggerDialog + + + + Trigger + Trigger + + + + On table: + On table: + + + + Action: + Action: + + + + + <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> + <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> + + + + Pre-condition: + Pre-condition: + + + + The scope is still not fully supported by the SQLite database. + The scope is still not fully supported by the SQLite database. + + + + Trigger name: + Trigger name: + + + + When: + When: + + + + List of columns for UPDATE OF action. + List of columns for UPDATE OF action. + + + + Scope: + Scope: + + + + Code: + Code: + + + + Trigger statements to be executed. + Trigger statements to be executed. + + + + DDL + DDL + + + + On view: + On view: + + + + Could not process trigger %1 correctly. Unable to open a trigger dialog. + Could not process trigger %1 correctly. Unable to open a trigger dialog. + + + + Enter a valid condition. + Enter a valid condition. + + + + Enter a valid trigger code. + Enter a valid trigger code. + + + + Error + trigger dialog + Error + + + + An error occurred while executing SQL statements: +%1 + An error occurred while executing SQL statements: +%1 + + + + VersionConvertSummaryDialog + + + Database version convert + Database version convert + + + + Following changes to the SQL statements will be made: + Following changes to the SQL statements will be made: + + + + Before + Before + + + + After + After + + + + ViewWindow + + + Query + Query + + + + View name: + View name: + + + + Output column names + Output column names + + + + + Data + Data + + + + Triggers + Triggers + + + + DDL + DDL + + + + + Could not restore window '%1', because no database or view was stored in session for this window. + Could not restore window '%1', because no database or view was stored in session for this window. + + + + Could not restore window '%1', because database %2 could not be resolved. + Could not restore window '%1', because database %2 could not be resolved. + + + + Could not restore window '%1', because database %2 could not be open. + Could not restore window '%1', because database %2 could not be open. + + + + Could not restore window '%1', because the view %2 doesn't exist in the database %3. + Could not restore window '%1', because the view %2 doesn't exist in the database %3. + + + + + New view %1 + New view %1 + + + + Database + Database + + + + Refresh the view + view window + Refresh the view + + + + Commit the view changes + view window + Commit the view changes + + + + Rollback the view changes + view window + Rollback the view changes + + + + Explicit column names + Explicit column names + + + + Generate output column names automatically basing on result columns of the view. + Generate output column names automatically basing on result columns of the view. + + + + Add column + view window + Add column + + + + Edit column + view window + Edit column + + + + Delete column + view window + Delete column + + + + Move column up + view window + Move column up + + + + Move column down + view window + Move column down + + + + Refresh trigger list + view window + Refresh trigger list + + + + Create new trigger + view window + Create new trigger + + + + Edit selected trigger + view window + Edit selected trigger + + + + Delete selected trigger + view window + Delete selected trigger + + + + View window "%1" has uncommitted structure modifications and data. + View window "%1" has uncommitted structure modifications and data. + + + + View window "%1" has uncommitted data. + View window "%1" has uncommitted data. + + + + View window "%1" has uncommitted structure modifications. + View window "%1" has uncommitted structure modifications. + + + + Could not load data for view %1. Error details: %2 + Could not load data for view %1. Error details: %2 + + + + Uncommitted changes + Uncommitted changes + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + + + + Go back to structure tab + Go back to structure tab + + + + Commit modifications and browse data. + Commit modifications and browse data. + + + + View '%1' was committed successfully. + View '%1' was committed successfully. + + + + Committed changes for view '%1' successfully. + Committed changes for view '%1' successfully. + + + + Committed changes for view '%1' (named before '%2') successfully. + Committed changes for view '%1' (named before '%2') successfully. + + + + Could not commit view changes. Error message: %1 + view window + Could not commit view changes. Error message: %1 + + + + Override columns + Override columns + + + + Currently defined columns will be overriden. Do you want to continue? + Currently defined columns will be overriden. Do you want to continue? + + + + Could not determinate columns returned from the view. The query is problably incomplete or contains errors. + Could not determinate columns returned from the view. The query is problably incomplete or contains errors. + + + + Name + view window triggers + Name + + + + Instead of + view window triggers + Instead of + + + + Condition + view window triggers + Condition + + + + Details + table window triggers + Details + + + + Could not process the %1 view correctly. Unable to open a view window. + Could not process the %1 view correctly. Unable to open a view window. + + + + Empty name + Empty name + + + + A blank name for the view is allowed in SQLite, but it is not recommended. +Are you sure you want to create a view with blank name? + A blank name for the view is allowed in SQLite, but it is not recommended. +Are you sure you want to create a view with blank name? + + + + The SELECT statement could not be parsed. Please correct the query and retry. +Details: %1 + The SELECT statement could not be parsed. Please correct the query and retry. +Details: %1 + + + + The view could not be modified due to internal SQLiteStudio error. Please report this! + The view could not be modified due to internal SQLiteStudio error. Please report this! + + + + The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. + The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. + + + + Following problems will take place while modifying the view. +Would you like to proceed? + view window + Following problems will take place while modifying the view. +Would you like to proceed? + + + + View modification + view window + View modification + + + + WidgetCover + + + Interrupt + Interrupt + + + diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_da_DK.ts b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_da_DK.ts new file mode 100644 index 0000000..26fca17 --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_da_DK.ts @@ -0,0 +1,7111 @@ + + + + + AboutDialog + + + About SQLiteStudio and licenses + About SQLiteStudio and licenses + + + + About + About + + + + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + + + + Licenses + Licenses + + + + Environment + Environment + + + + Icon directories + Icon directories + + + + Form directories + Form directories + + + + SQLite extension directories + SQLite extension directories + + + + Plugin directories + Plugin directories + + + + Configuration directory + Configuration directory + + + + Application directory + Application directory + + + + Qt version: + Qt version: + + + + SQLite 3 version: + SQLite 3 version: + + + + Portable distribution. + Portable distribution. + + + + MacOS X application bundle distribution. + MacOS X application bundle distribution. + + + + Operating system managed distribution. + Operating system managed distribution. + + + + <h3>Table of contents:</h3><ol>%2</ol> + <h3>Table of contents:</h3><ol>%2</ol> + + + + BindParamsDialog + + + Query parameters + Query parameters + + + + Please provide values for query parameters + Please provide values for query parameters + + + + CodeSnippetEditor + + + Filter snippets + Filter snippets + + + + + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + + + + + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + + + + Snippet name + Snippet name + + + + Code assistant shortcut + Code assistant shortcut + + + + Snippet code + Snippet code + + + + Code Snippets editor window has uncommitted modifications. + Code Snippets editor window has uncommitted modifications. + + + + Code Snippets editor + Code Snippets editor + + + + Commit all snippet changes + Commit all snippet changes + + + + Rollback all snippet changes + Rollback all snippet changes + + + + Create new snippet + Create new snippet + + + + Delete selected snippet + Delete selected snippet + + + + Move the snippet up + Move the snippet up + + + + Move the snippet down + Move the snippet down + + + + Code snippets manual + Code snippets manual + + + + Enter a non-empty, unique name of the snippet. + Enter a non-empty, unique name of the snippet. + + + + Enter a non-empty snippet content. + Enter a non-empty snippet content. + + + + This hotkey is not unique in context of a code assistant. + This hotkey is not unique in context of a code assistant. + + + + CollationsEditor + + + Filter collations + Filter collations + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Implementation code: + Implementation code: + + + + Collation name: + Collation name: + + + + Implementation language: + Implementation language: + + + + Collations editor + Collations editor + + + + Commit all collation changes + Commit all collation changes + + + + Rollback all collation changes + Rollback all collation changes + + + + Create new collation + Create new collation + + + + Delete selected collation + Delete selected collation + + + + Editing collations manual + Editing collations manual + + + + Enter a non-empty, unique name of the collation. + Enter a non-empty, unique name of the collation. + + + + Pick the implementation language. + Pick the implementation language. + + + + Enter a non-empty implementation code. + Enter a non-empty implementation code. + + + + Collations editor window has uncommitted modifications. + Collations editor window has uncommitted modifications. + + + + ColorButton + + + Pick a color + Pick a color + + + + ColumnCollatePanel + + + Collation name: + Collation name: + + + + Named constraint: + Named constraint: + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + Enter a collation name. + Enter a collation name. + + + + ColumnDefaultPanel + + + Default value: + Default value: + + + + Named constraint: + Named constraint: + + + + Enter a default value expression. + Enter a default value expression. + + + + Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. + Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. + + + + Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. + Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ColumnDialog + + + Column + Column + + + + Name and type + Name and type + + + + Scale + Scale + + + + Precision + Precision + + + + Data type: + Data type: + + + + Column name: + Column name: + + + + Size: + Size: + + + + Constraints + Constraints + + + + Generated value + Generated value + + + + Unique + Unique + + + + + + + + + + + Configure + Configure + + + + Foreign Key + Foreign Key + + + + Collate + Collate + + + + Not NULL + Not NULL + + + + Check condition + Check condition + + + + Primary Key + Primary Key + + + + Default + Default + + + + Advanced mode + Advanced mode + + + + Add constraint + column dialog + Add constraint + + + + Edit constraint + column dialog + Edit constraint + + + + + Delete constraint + column dialog + Delete constraint + + + + Move constraint up + column dialog + Move constraint up + + + + Move constraint down + column dialog + Move constraint down + + + + Add a primary key + column dialog + Add a primary key + + + + Add a foreign key + column dialog + Add a foreign key + + + + Add an unique constraint + column dialog + Add an unique constraint + + + + Add a check constraint + column dialog + Add a check constraint + + + + Add a not null constraint + column dialog + Add a not null constraint + + + + Add a collate constraint + column dialog + Add a collate constraint + + + + Add a generated value constraint + column dialog + Add a generated value constraint + + + + Add a default constraint + column dialog + Add a default constraint + + + + Are you sure you want to delete constraint '%1'? + column dialog + Are you sure you want to delete constraint '%1'? + + + + Correct the constraint's configuration. + Correct the constraint's configuration. + + + + Scale is not allowed for INTEGER PRIMARY KEY columns. + Scale is not allowed for INTEGER PRIMARY KEY columns. + + + + Precision cannot be defined without the scale. + Precision cannot be defined without the scale. + + + + Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. + Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. + + + + INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. + INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. + + + + Precision is not allowed for INTEGER PRIMARY KEY columns. + Precision is not allowed for INTEGER PRIMARY KEY columns. + + + + Could not match valid STRICT table datatype from declared type: %1. + Could not match valid STRICT table datatype from declared type: %1. + + + + ColumnDialogConstraintsModel + + + Type + column dialog constraints + Type + + + + Name + column dialog constraints + Name + + + + Details + column dialog constraints + Details + + + + ColumnForeignKeyPanel + + + Foreign table: + Foreign table: + + + + Foreign column: + Foreign column: + + + + Reactions + Reactions + + + + Deferred foreign key + Deferred foreign key + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + Pick the foreign table. + Pick the foreign table. + + + + Pick the foreign column. + Pick the foreign column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ColumnGeneratedPanel + + + Generating code: + Generating code: + + + + Explicit type: + Explicit type: + + + + Use "GENERATED ALWAYS" keywords + Use "GENERATED ALWAYS" keywords + + + + Named constraint: + Named constraint: + + + + Enter the column value generating expression. + Enter the column value generating expression. + + + + Invalid value generating expression: %1. + Invalid value generating expression: %1. + + + + Invalid value generating expression. + Invalid value generating expression. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ColumnPrimaryKeyPanel + + + Autoincrement + Autoincrement + + + + Sort order: + Sort order: + + + + Named constraint: + Named constraint: + + + + On conflict: + On conflict: + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + Descending order is not allowed with AUTOINCREMENT. + Descending order is not allowed with AUTOINCREMENT. + + + + ColumnUniqueAndNotNullPanel + + + Named constraint: + Named constraint: + + + + On conflict: + On conflict: + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + CompleterWindow + + + Column: %1 + completer statusbar + Column: %1 + + + + Table: %1 + completer statusbar + Table: %1 + + + + Index: %1 + completer statusbar + Index: %1 + + + + Trigger: %1 + completer statusbar + Trigger: %1 + + + + View: %1 + completer statusbar + View: %1 + + + + Database: %1 + completer statusbar + Database: %1 + + + + Keyword: %1 + completer statusbar + Keyword: %1 + + + + Function: %1 + completer statusbar + Function: %1 + + + + Operator: %1 + completer statusbar + Operator: %1 + + + + String + completer statusbar + String + + + + Number + completer statusbar + Number + + + + Binary data + completer statusbar + Binary data + + + + Collation: %1 + completer statusbar + Collation: %1 + + + + Pragma function: %1 + completer statusbar + Pragma function: %1 + + + + Insert a code snippet + Insert a code snippet + + + + ConfigDialog + + + + Configuration + Configuration + + + + Search + Search + + + + General + General + + + + Keyboard shortcuts + Keyboard shortcuts + + + + Look & feel + Look & feel + + + + Style + Style + + + + Fonts + Fonts + + + + Code colors + Code colors + + + + + Database list + Database list + + + + Code assistant + Code assistant + + + + Data browsing + Data browsing + + + + Data editors + Data editors + + + + Plugins + Plugins + + + + Code formatters + Code formatters + + + + If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. + If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. + + + + Sort table columns alphabetically + Sort table columns alphabetically + + + + Expand tables node when connected to a database + Expand tables node when connected to a database + + + + <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> + <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> + + + + Display additional labels on the list + Display additional labels on the list + + + + For regular tables labels will show number of columns, indexes and triggers for each of tables. + For regular tables labels will show number of columns, indexes and triggers for each of tables. + + + + Display labels for regular tables + Display labels for regular tables + + + + Virtual tables will be marked with a 'virtual' label. + Virtual tables will be marked with a 'virtual' label. + + + + Display labels for virtual tables + Display labels for virtual tables + + + + Expand views node when connected to a database + Expand views node when connected to a database + + + + If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) + If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) + + + + Sort objects (tables, indexes, triggers and views) alphabetically + Sort objects (tables, indexes, triggers and views) alphabetically + + + + Display system tables and indexes on the list + Display system tables and indexes on the list + + + + Database dialog window + Database dialog window + + + + <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> + <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> + + + + Do not mark database to be "permanent" by default + Do not mark database to be "permanent" by default + + + + <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> + <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> + + + + Try to bypass dialog completly when dropping database file onto the list + Try to bypass dialog completly when dropping database file onto the list + + + + Data browsing and editing + Data browsing and editing + + + + + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + + + + Number of memorized table populating configurations + Number of memorized table populating configurations + + + + Data column width + Data column width + + + + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + + + + Enlarge column when entering value longer than current width + Enlarge column when entering value longer than current width + + + + <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> + <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> + + + + Number of data rows per page: + Number of data rows per page: + + + + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> + + + + Show column and row details tooltip in data view + Show column and row details tooltip in data view + + + + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + + + + Keep NULL value when entering empty value + Keep NULL value when entering empty value + + + + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> + + + + Use DEFAULT value (if defined), when committing NULL value + Use DEFAULT value (if defined), when committing NULL value + + + + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + + + + Limit number of rows for in case of dozens of columns + Limit number of rows for in case of dozens of columns + + + + Inserting new row in data grid + Inserting new row in data grid + + + + Before currently selected row + Before currently selected row + + + + After currently selected row + After currently selected row + + + + At the end of data view + At the end of data view + + + + Table windows + Table windows + + + + <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> + <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> + + + + Open Table Windows with the data tab for start + Open Table Windows with the data tab for start + + + + <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> + <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> + + + + Place data tab as first tab in a Table Window + Place data tab as first tab in a Table Window + + + + View windows + View windows + + + + <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> + <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> + + + + Open View Windows with the data tab for start + Open View Windows with the data tab for start + + + + <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> + <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> + + + + Place data tab as first tab in a View Window + Place data tab as first tab in a View Window + + + + Data types + Data types + + + + Available editors: + Available editors: + + + + Editors selected for this data type: + Editors selected for this data type: + + + + Schema editing + Schema editing + + + + Number of DDL changes kept in history. + Number of DDL changes kept in history. + + + + DDL history size: + DDL history size: + + + + Don't show DDL preview dialog when committing schema changes + Don't show DDL preview dialog when committing schema changes + + + + SQL queries + SQL queries + + + + + Number of queries kept in the history. + Number of queries kept in the history. + + + + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> + + + + History size: + History size: + + + + + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> + + + + Execute only the query under the cursor + Execute only the query under the cursor + + + + Number of memorized query parameters + Number of memorized query parameters + + + + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + + + + Use scientific notation for real numbers in the grid view + Use scientific notation for real numbers in the grid view + + + + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + + + + Limit automatic data column width to (in pixels): + Limit automatic data column width to (in pixels): + + + + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + + + + Keep at least the width to show complete column name + Keep at least the width to show complete column name + + + + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + + + + Wrap lines in SQL editor + Wrap lines in SQL editor + + + + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + + + + Highlight current query + Highlight current query + + + + Updates + Updates + + + + Automatically check for updates at startup + Automatically check for updates at startup + + + + Session + Session + + + + Restore last session (active MDI windows) after startup + Restore last session (active MDI windows) after startup + + + + Allow multiple instances of the application at the same time + Allow multiple instances of the application at the same time + + + + Status Field + Status Field + + + + <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> + <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> + + + + Always open Status panel when new message is printed + Always open Status panel when new message is printed + + + + Code syntax colors + Code syntax colors + + + + Keyword foreground + Keyword foreground + + + + Regular foreground + Regular foreground + + + + String foreground + String foreground + + + + Comment foreground + Comment foreground + + + + Valid objects foreground + Valid objects foreground + + + + Current query background + Current query background + + + + Bind parameter foreground + Bind parameter foreground + + + + Current line background + Current line background + + + + Matched parenthesis background + Matched parenthesis background + + + + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + + + + Number foreground + Number foreground + + + + BLOB value foreground + BLOB value foreground + + + + Matched parenthesis foreground + Matched parenthesis foreground + + + + Reset to defaults + Reset to defaults + + + + Filter shortcuts by name or key combination + Filter shortcuts by name or key combination + + + + Action + Action + + + + Key combination + Key combination + + + + + Language + Language + + + + Changing language requires application restart to take effect. + Changing language requires application restart to take effect. + + + + Compact layout + Compact layout + + + + <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> + <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> + + + + Use compact layout + Use compact layout + + + + Main window dock areas + Main window dock areas + + + + Left and right areas occupy corners + Left and right areas occupy corners + + + + Top and bottom areas occupy corners + Top and bottom areas occupy corners + + + + Hide built-in plugins + Hide built-in plugins + + + + Current style: + Current style: + + + + Preview + Preview + + + + Enabled + Enabled + + + + Disabled + Disabled + + + + Active formatter plugin + Active formatter plugin + + + + SQL editor font + SQL editor font + + + + Database list font + Database list font + + + + Database list additional label font + Database list additional label font + + + + Data view font + Data view font + + + + Status field font + Status field font + + + + Code assistant settings + Code assistant settings + + + + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + + + + Automatically trigger the assistant after a dot is typed after an object name + Automatically trigger the assistant after a dot is typed after an object name + + + + Description: + plugin details + Description: + + + + Category: + plugin details + Category: + + + + Version: + plugin details + Version: + + + + Author: + plugin details + Author: + + + + Internal name: + plugin details + Internal name: + + + + Dependencies: + plugin details + Dependencies: + + + + Conflicts: + plugin details + Conflicts: + + + + Plugin details + Plugin details + + + + Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. + Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. + + + + %1 (built-in) + plugins manager in configuration dialog + %1 (built-in) + + + + Details + Details + + + + No plugins in this category. + No plugins in this category. + + + + Add new data type + Add new data type + + + + Rename selected data type + Rename selected data type + + + + Delete selected data type + Delete selected data type + + + + Help for configuring data type editors + Help for configuring data type editors + + + + Clear hotkey for this action + Clear hotkey for this action + + + + Restore original hotkey for this action + Restore original hotkey for this action + + + + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + + + + ConstraintCheckPanel + + + The condition + The condition + + + + Named constraint: + Named constraint: + + + + On conflict + On conflict + + + + Enter a valid condition. + Enter a valid condition. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ConstraintDialog + + + New constraint + constraint dialog + New constraint + + + + Create + constraint dialog + Create + + + + Edit constraint + dialog window + Edit constraint + + + + Apply + constraint dialog + Apply + + + + Primary key + table constraints + Primary key + + + + Foreign key + table constraints + Foreign key + + + + Unique + table constraints + Unique + + + + Not NULL + table constraints + Not NULL + + + + Check + table constraints + Check + + + + Generated + table constraints + Generated + + + + Collate + table constraints + Collate + + + + Default + table constraints + Default + + + + ConstraintTabModel + + + Table + table constraints + Table + + + + Column (%1) + table constraints + Column (%1) + + + + Scope + table constraints + Scope + + + + Type + table constraints + Type + + + + Details + table constraints + Details + + + + Name + table constraints + Name + + + + CssDebugDialog + + + SQLiteStudio CSS console + SQLiteStudio CSS console + + + + DataView + + + Filter data + data view + Filter data + + + + Grid view + Grid view + + + + Form view + Form view + + + + Refresh table data + data view + Refresh table data + + + + First page + data view + First page + + + + Previous page + data view + Previous page + + + + Next page + data view + Next page + + + + Last page + data view + Last page + + + + Commit changes for selected cells + data view + Commit changes for selected cells + + + + Rollback changes for selected cells + data view + Rollback changes for selected cells + + + + Show grid view of results + data view + Show grid view of results + + + + Show form view of results + data view + Show form view of results + + + + Filter by text (if contains) + data view + Filter by text (if contains) + + + + Filter strictly by text (if equals) + data view + Filter strictly by text (if equals) + + + + Tabs on top + data view + Tabs on top + + + + Tabs at bottom + data view + Tabs at bottom + + + + Place new rows above selected row + data view + Place new rows above selected row + + + + Place new rows below selected row + data view + Place new rows below selected row + + + + Place new rows at the end of the data view + data view + Place new rows at the end of the data view + + + + Total number of rows is being counted. +Browsing other pages will be possible after the row counting is done. + Total number of rows is being counted. +Browsing other pages will be possible after the row counting is done. + + + + Row: %1 + Row: %1 + + + + Filter + Filter + + + + Hit Enter key or press "Apply filter" button on toolbar to apply new value. + Hit Enter key or press "Apply filter" button on toolbar to apply new value. + + + + Filter by the Regular Expression + data view + Filter by the Regular Expression + + + + Filter by SQL expression + data view + Filter by SQL expression + + + + Show filter inputs per column + data view + Show filter inputs per column + + + + Apply filter + data view + Apply filter + + + + DbDialog + + + Database + Database + + + + Database type + Database type + + + + Database driver + Database driver + + + + + File + File + + + + Name (on the list) + Name (on the list) + + + + Options + Options + + + + <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> + aasfd + <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> + + + + Permanent (keep it in configuration) + Permanent (keep it in configuration) + + + + Test connection + Test connection + + + + Select new or existing file on local computer + Select new or existing file on local computer + + + + Browse + Browse + + + + Database type not selected. + Database type not selected. + + + + Database path not specified. + Database path not specified. + + + + Enter an unique database name. + Enter an unique database name. + + + + This name is already in use. Please enter unique name. + This name is already in use. Please enter unique name. + + + + <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> + <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> + + + + Enter a database file path. + Enter a database file path. + + + + This database is already on the list under name: %1 + This database is already on the list under name: %1 + + + + Select a database type. + Select a database type. + + + + DbObjectDialogs + + + Delete table + Delete table + + + + Are you sure you want to delete table %1? + Are you sure you want to delete table %1? + + + + Delete index + Delete index + + + + Are you sure you want to delete index %1? + Are you sure you want to delete index %1? + + + + Delete trigger + Delete trigger + + + + Are you sure you want to delete trigger %1? + Are you sure you want to delete trigger %1? + + + + Delete view + Delete view + + + + Are you sure you want to delete view %1? + Are you sure you want to delete view %1? + + + + + Error while dropping %1: %2 + Error while dropping %1: %2 + + + + Delete objects + Delete objects + + + + Are you sure you want to delete following objects: +%1 + Are you sure you want to delete following objects: +%1 + + + + Cannot start transaction. Details: %1 + Cannot start transaction. Details: %1 + + + + Cannot commit transaction. Details: %1 + Cannot commit transaction. Details: %1 + + + + DbTree + + + Databases + Databases + + + + Filter by name + Filter by name + + + + Copy + Copy + + + + Paste + Paste + + + + Select all + Select all + + + + Create a group + Create a group + + + + Delete the group + Delete the group + + + + Rename the group + Rename the group + + + + &Add a database + &Add a database + + + + &Edit the database + &Edit the database + + + + &Remove the database + &Remove the database + + + + &Connect to the database + &Connect to the database + + + + &Disconnect from the database + &Disconnect from the database + + + + Import + Import + + + + &Export the database + &Export the database + + + + Vac&uum + Vac&uum + + + + &Integrity check + &Integrity check + + + + Create a &table + Create a &table + + + + Edit the t&able + Edit the t&able + + + + Delete the ta&ble + Delete the ta&ble + + + + Export the table + Export the table + + + + Import into the table + Import into the table + + + + Populate table + Populate table + + + + Create similar table + Create similar table + + + + Reset autoincrement sequence + Reset autoincrement sequence + + + + Create an &index + Create an &index + + + + Edit the i&ndex + Edit the i&ndex + + + + Delete the in&dex + Delete the in&dex + + + + Create a trig&ger + Create a trig&ger + + + + Edit the trigg&er + Edit the trigg&er + + + + Delete the trigge&r + Delete the trigge&r + + + + Create a &view + Create a &view + + + + Edit the v&iew + Edit the v&iew + + + + Delete the vi&ew + Delete the vi&ew + + + + Add a column + Add a column + + + + Edit the column + Edit the column + + + + Delete the column + Delete the column + + + + Delete selected items + Delete selected items + + + + Clear filter + Clear filter + + + + &Refresh all database schemas + &Refresh all database schemas + + + + Re&fresh selected database schema + Re&fresh selected database schema + + + + + Erase table data + Erase table data + + + + Open file's directory + Open file's directory + + + + Execute SQL from file + Execute SQL from file + + + + Increase font size + database list + Increase font size + + + + Decrease font size + database list + Decrease font size + + + + + Database + Database + + + + Grouping + Grouping + + + + Generate query for table + Generate query for table + + + + + Create group + Create group + + + + Group name + Group name + + + + Entry with name %1 already exists in group %2. + Entry with name %1 already exists in group %2. + + + + Delete group + Delete group + + + + Are you sure you want to delete group %1? +All objects from this group will be moved to parent group. + Are you sure you want to delete group %1? +All objects from this group will be moved to parent group. + + + + Are you sure you want to remove database '%1' from the list? + Are you sure you want to remove database '%1' from the list? + + + + Are you sure you want to remove following databases from the list: +%1 + Are you sure you want to remove following databases from the list: +%1 + + + + Remove database + Remove database + + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Vacuum (%1) + Vacuum (%1) + + + + Integrity check (%1) + Integrity check (%1) + + + + Reset autoincrement + Reset autoincrement + + + + Are you sure you want to reset autoincrement value for table '%1'? + Are you sure you want to reset autoincrement value for table '%1'? + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + An error occurred while trying to reset autoincrement value for table '%1': %2 + + + + Autoincrement value for table '%1' has been reset successfully. + Autoincrement value for table '%1' has been reset successfully. + + + + Are you sure you want to delete all data from table(s): %1? + Are you sure you want to delete all data from table(s): %1? + + + + An error occurred while trying to delete data from table '%1': %2 + An error occurred while trying to delete data from table '%1': %2 + + + + All data has been deleted for table '%1'. + All data has been deleted for table '%1'. + + + + Following objects will be deleted: %1. + Following objects will be deleted: %1. + + + + Following databases will be removed from list: %1. + Following databases will be removed from list: %1. + + + + Remainig objects from deleted group will be moved in place where the group used to be. + Remainig objects from deleted group will be moved in place where the group used to be. + + + + %1<br><br>Are you sure you want to continue? + %1<br><br>Are you sure you want to continue? + + + + Delete objects + Delete objects + + + + DbTreeItemDelegate + + + error + dbtree labels + error + + + + (system table) + database tree label + (system table) + + + + (virtual) + virtual table label + (virtual) + + + + (system index) + database tree label + (system index) + + + + DbTreeModel + + + Database: %1 + dbtree tooltip + Database: %1 + + + + URI: + dbtree tooltip + URI: + + + + Version: + dbtree tooltip + Version: + + + + File size: + dbtree tooltip + File size: + + + + Encoding: + dbtree tooltip + Encoding: + + + + Error: + dbtree tooltip + Error: + + + + Table : %1 + dbtree tooltip + Table : %1 + + + + Columns (%1): + dbtree tooltip + Columns (%1): + + + + Indexes (%1): + dbtree tooltip + Indexes (%1): + + + + Triggers (%1): + dbtree tooltip + Triggers (%1): + + + + Copy + Copy + + + + Move + Move + + + + Include data + Include data + + + + Include indexes + Include indexes + + + + Include triggers + Include triggers + + + + Abort + Abort + + + + Could not add dropped database file '%1' automatically. Manual setup is necessary. + Could not add dropped database file '%1' automatically. Manual setup is necessary. + + + + Referenced tables + Referenced tables + + + + Do you want to include following referenced tables as well: +%1 + Do you want to include following referenced tables as well: +%1 + + + + Name conflict + Name conflict + + + + Following object already exists in the target database. +Please enter new, unique name, or press '%1' to abort the operation: + Following object already exists in the target database. +Please enter new, unique name, or press '%1' to abort the operation: + + + + SQL statements conversion + SQL statements conversion + + + + Following error occurred while converting SQL statements to the target SQLite version: + Following error occurred while converting SQL statements to the target SQLite version: + + + + Would you like to ignore those errors and proceed? + Would you like to ignore those errors and proceed? + + + + DdlHistoryWindow + + + Filter by database: + Filter by database: + + + + Clear entire history + Clear entire history + + + + -- Queries executed on database %1 (%2) +-- Date and time of execution: %3 +%4 + -- Queries executed on database %1 (%2) +-- Date and time of execution: %3 +%4 + + + + Clear history + Clear history + + + + Are you sure you want to erase entire DDL history? + Are you sure you want to erase entire DDL history? + + + + DDL history + DDL history + + + + DdlPreviewDialog + + + Queries to be executed + Queries to be executed + + + + Don't show again + Don't show again + + + + DebugConsole + + + SQLiteStudio Debug Console + SQLiteStudio Debug Console + + + + EditorWindow + + + SQL editor + SQL editor + + + + Query + Query + + + + History + History + + + + Results in the separate tab + Results in the separate tab + + + + Results below the query + Results below the query + + + + + SQL editor %1 + SQL editor %1 + + + + + Results + Results + + + + Execute query + Execute query + + + + Explain query + Explain query + + + + Clear execution history + sql editor + Clear execution history + + + + Export results + sql editor + Export results + + + + Create view from query + sql editor + Create view from query + + + + Previous database + Previous database + + + + Next database + Next database + + + + Show next tab + sql editor + Show next tab + + + + Show previous tab + sql editor + Show previous tab + + + + Focus results below + sql editor + Focus results below + + + + Focus SQL editor above + sql editor + Focus SQL editor above + + + + Delete selected SQL history entries + sql editor + Delete selected SQL history entries + + + + Execute single query under cursor + Execute single query under cursor + + + + Execute all queries in editor + Execute all queries in editor + + + + Active database (%1/%2) + Active database (%1/%2) + + + + Query finished in %1 second(s). Rows affected: %2 + Query finished in %1 second(s). Rows affected: %2 + + + + Query finished in %1 second(s). + Query finished in %1 second(s). + + + + Clear execution history + Clear execution history + + + + Are you sure you want to erase the entire SQL execution history? This cannot be undone. + Are you sure you want to erase the entire SQL execution history? This cannot be undone. + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + No database selected in the SQL editor. Cannot create a view for unknown database. + No database selected in the SQL editor. Cannot create a view for unknown database. + + + + Editor window "%1" has uncommitted data. + Editor window "%1" has uncommitted data. + + + + ErrorsConfirmDialog + + + Errors + Errors + + + + Following errors occured: + Following errors occured: + + + + Would you like to proceed? + Would you like to proceed? + + + + ExecFromFileDialog + + + Execute SQL from file + Execute SQL from file + + + + Input file + Input file + + + + Path to file + Path to file + + + + Browse for file + Browse for file + + + + Options + Options + + + + File encoding + File encoding + + + + Skip failing SQL statements + Skip failing SQL statements + + + + SQL scripts (*.sql);;All files (*) + SQL scripts (*.sql);;All files (*) + + + + Execute SQL file + Execute SQL file + + + + Please provide file to be executed. + Please provide file to be executed. + + + + Provided file does not exist or cannot be read. + Provided file does not exist or cannot be read. + + + + ExportDialog + + + Export + Export + + + + What do you want to export? + What do you want to export? + + + + A database + A database + + + + A single table + A single table + + + + Query results + Query results + + + + Table to export + Table to export + + + + Database + Database + + + + Table + Table + + + + Options + Options + + + + When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. + When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. + + + + Export table data + Export table data + + + + Export table indexes + Export table indexes + + + + Export table triggers + Export table triggers + + + + Note, that exporting table indexes and triggers may be unsupported by some output formats. + Note, that exporting table indexes and triggers may be unsupported by some output formats. + + + + Select database objects to export + Select database objects to export + + + + Export data from tables + Export data from tables + + + + Select all + Select all + + + + Deselect all + Deselect all + + + + + Database: + Database: + + + + Query to export results for + Query to export results for + + + + Query to be executed for results: + Query to be executed for results: + + + + Export format and options + Export format and options + + + + Export format + Export format + + + + Output + Output + + + + Exported file path + Exported file path + + + + Clipboard + Clipboard + + + + File + File + + + + Exported text encoding: + Exported text encoding: + + + + Export format options + Export format options + + + + Cancel + Cancel + + + + + + Select database to export. + Select database to export. + + + + Select table to export. + Select table to export. + + + + Enter valid query to export. + Enter valid query to export. + + + + Select at least one object to export. + Select at least one object to export. + + + + You must provide a file name to export to. + You must provide a file name to export to. + + + + Path you provided is an existing directory. You cannot overwrite it. + Path you provided is an existing directory. You cannot overwrite it. + + + + The directory '%1' does not exist. + The directory '%1' does not exist. + + + + The file '%1' exists and will be overwritten. + The file '%1' exists and will be overwritten. + + + + All files (*) + All files (*) + + + + Pick file to export to + Pick file to export to + + + + Internal error during export. This is a bug. Please report it. + Internal error during export. This is a bug. Please report it. + + + + FileExecErrorsDialog + + + Execution errors + Execution errors + + + + Following errors were encountered during execution of SQL statements from the file: + Following errors were encountered during execution of SQL statements from the file: + + + + SQL + SQL + + + + Error + Error + + + + Statements that were executed successfully were commited. + Statements that were executed successfully were commited. + + + + Statements that were executed successfully were rolled back. + Statements that were executed successfully were rolled back. + + + + FkComboBox + + + Cannot edit this cell. Details: %1 + Cannot edit this cell. Details: %1 + + + + FontEdit + + + Choose font + font configuration + Choose font + + + + Form + + + Active SQL formatter plugin + Active SQL formatter plugin + + + + FormView + + + Commit row + form view + Commit row + + + + Rollback row + form view + Rollback row + + + + First row + form view + First row + + + + Previous row + form view + Previous row + + + + Next row + form view + Next row + + + + Last row + form view + Last row + + + + Insert new row + form view + Insert new row + + + + Delete current row + form view + Delete current row + + + + FunctionsEditor + + + Filter functions + Filter functions + + + + Input arguments + Input arguments + + + + Undefined + Undefined + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Type: + Type: + + + + Function name: + Function name: + + + + Implementation language: + Implementation language: + + + + Deterministic + Deterministic + + + + Initialization code: + Initialization code: + + + + + Function implementation code: + Function implementation code: + + + + Final step implementation code: + Final step implementation code: + + + + SQL functions editor + SQL functions editor + + + + Commit all function changes + Commit all function changes + + + + Rollback all function changes + Rollback all function changes + + + + Create new function + Create new function + + + + Delete selected function + Delete selected function + + + + Custom SQL functions manual + Custom SQL functions manual + + + + Add function argument + Add function argument + + + + Rename function argument + Rename function argument + + + + Delete function argument + Delete function argument + + + + Move function argument up + Move function argument up + + + + Move function argument down + Move function argument down + + + + Scalar + Scalar + + + + Aggregate + Aggregate + + + + Enter a non-empty, unique name of the function. + Enter a non-empty, unique name of the function. + + + + Pick the implementation language. + Pick the implementation language. + + + + Per step code: + Per step code: + + + + Enter a non-empty implementation code. + Enter a non-empty implementation code. + + + + argument + new function argument name in function editor window + argument + + + + Functions editor window has uncommitted modifications. + Functions editor window has uncommitted modifications. + + + + ImportDialog + + + Import data + Import data + + + + Table to import to + Table to import to + + + + Table + Table + + + + Database + Database + + + + Data source to import from + Data source to import from + + + + Data source type + Data source type + + + + Options + Options + + + + Text encoding: + Text encoding: + + + + Input file: + Input file: + + + + <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> + <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> + + + + Ignore errors + Ignore errors + + + + Data source options + Data source options + + + + Cancel + Cancel + + + + If you type table name that doesn't exist, it will be created. + If you type table name that doesn't exist, it will be created. + + + + Enter the table name + Enter the table name + + + + Select import plugin. + Select import plugin. + + + + You must provide a file to import from. + You must provide a file to import from. + + + + The file '%1' does not exist. + The file '%1' does not exist. + + + + Path you provided is a directory. A regular file is required. + Path you provided is a directory. A regular file is required. + + + + Pick file to import from + Pick file to import from + + + + IndexDialog + + + + Index + Index + + + + Column + Column + + + + Sort + Sort + + + + Collation + Collation + + + + On table: + On table: + + + + Delete selected indexed expression + Delete selected indexed expression + + + + Moves selected index column up in the order, making it more significant in the index. + Moves selected index column up in the order, making it more significant in the index. + + + + Moves selected index column down in the order, making it less significant in the index. + Moves selected index column down in the order, making it less significant in the index. + + + + Partial index condition + Partial index condition + + + + Unique index + Unique index + + + + Index name: + Index name: + + + + Edit selected indexed expression + Edit selected indexed expression + + + + Add indexed expression + Add indexed expression + + + + DDL + DDL + + + + Tried to open index dialog for closed or inexisting database. + Tried to open index dialog for closed or inexisting database. + + + + Could not process index %1 correctly. Unable to open an index dialog. + Could not process index %1 correctly. Unable to open an index dialog. + + + + Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. + Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. + + + + Pick the table for the index. + Pick the table for the index. + + + + Select at least one column. + Select at least one column. + + + + Enter a valid condition. + Enter a valid condition. + + + + default + index dialog + default + + + + Sort order + table constraints + Sort order + + + + + Error + index dialog + Error + + + + Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? + Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? + + + + An error occurred while executing SQL statements: +%1 + An error occurred while executing SQL statements: +%1 + + + + IndexExprColumnDialog + + + Indexed expression + Indexed expression + + + + Expression to index + Expression to index + + + + This expression is already indexed by the index. + This expression is already indexed by the index. + + + + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. + + + + Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. + Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. + + + + It's forbidden to use 'SELECT' statements in indexed expressions. + It's forbidden to use 'SELECT' statements in indexed expressions. + + + + Enter an indexed expression. + Enter an indexed expression. + + + + Invalid expression. + Invalid expression. + + + + LanguageDialog + + + Language + Language + + + + Please choose language: + Please choose language: + + + + MainWindow + + + Database toolbar + Database toolbar + + + + Structure toolbar + Structure toolbar + + + + Tools + Tools + + + + Window list + Window list + + + + View toolbar + View toolbar + + + + Configuration widgets + Configuration widgets + + + + Syntax highlighting engines + Syntax highlighting engines + + + + Data editors + Data editors + + + + Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. + Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. + + + + Running in debug mode. Debug messages are printed to the standard output. + Running in debug mode. Debug messages are printed to the standard output. + + + + You need to restart application to make the language change take effect. + You need to restart application to make the language change take effect. + + + + Open SQL &editor + Open SQL &editor + + + + Open DDL &history + Open DDL &history + + + + Open SQL &functions editor + Open SQL &functions editor + + + + Open code &snippets editor + Open code &snippets editor + + + + Open &collations editor + Open &collations editor + + + + Open ex&tension manager + Open ex&tension manager + + + + &Import + &Import + + + + E&xport + E&xport + + + + Open confi&guration dialog + Open confi&guration dialog + + + + &Tile windows + &Tile windows + + + + Tile windows &horizontally + Tile windows &horizontally + + + + Tile windows &vertically + Tile windows &vertically + + + + &Cascade windows + &Cascade windows + + + + Next window + Next window + + + + Previous window + Previous window + + + + Hide status field + Hide status field + + + + Close &all windows + Close &all windows + + + + Re&store recently closed window + Re&store recently closed window + + + + Close current &window + Close current &window + + + + Close &other windows + Close &other windows + + + + Close windows on the &left + Close windows on the &left + + + + Close windows on the &right + Close windows on the &right + + + + Re&name selected window + Re&name selected window + + + + Open Debug Console + Open Debug Console + + + + Open CSS Console + Open CSS Console + + + + Report a &bug + Report a &bug + + + + D&onate + D&onate + + + + Propose a new &feature + Propose a new &feature + + + + &About + &About + + + + &Licenses + &Licenses + + + + Open home &page + Open home &page + + + + User &Manual + User &Manual + + + + SQLite &documentation + SQLite &documentation + + + + Bugs and feature &requests + Bugs and feature &requests + + + + Quit + Quit + + + + Check for &updates + Check for &updates + + + + &Database + menubar + &Database + + + + &Structure + menubar + &Structure + + + + &View + menubar + &View + + + + Window list + menubar view menu + Window list + + + + &Tools + menubar + &Tools + + + + &Help + &Help + + + + Could not set style: %1 + main window + Could not set style: %1 + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + Rename window + Rename window + + + + Enter new name for the window: + Enter new name for the window: + + + + New updates are available. <a href="%1">Click here for details</a>. + New updates are available. <a href="%1">Click here for details</a>. + + + + You're running the most recent version. No updates are available. + You're running the most recent version. No updates are available. + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + Database passed in command line parameters (%1) was already on the list under name: %2 + + + + Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 + Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + MdiWindow + + + Uncommitted changes + Uncommitted changes + + + + Close anyway + Close anyway + + + + Don't close + Don't close + + + + MultiEditor + + + Null value + multieditor + Null value + + + + Configure editors for this data type + Configure editors for this data type + + + + Open another tab + Open another tab + + + + Foreign Key + Foreign Key + + + + Data editor plugin '%1' not loaded, while it is defined for editing '%2' data type. + Data editor plugin '%1' not loaded, while it is defined for editing '%1' data type. {1'?} {2'?} {1' or 2'?} + + + + Deleted + multieditor + Deleted + + + + Read only + multieditor + Read only + + + + MultiEditorBoolPlugin + + + Boolean + Boolean + + + + MultiEditorDatePlugin + + + Date + Date + + + + MultiEditorDateTimePlugin + + + Date & time + Date & time + + + + MultiEditorHexPlugin + + + Hex + Hex + + + + MultiEditorNumericPlugin + + + Number + numeric multi editor tab name + Number + + + + MultiEditorText + + + Tab changes focus + Tab changes focus + + + + Cut + Cut + + + + Copy + Copy + + + + Paste + Paste + + + + Delete + Delete + + + + Undo + Undo + + + + Redo + Redo + + + + MultiEditorTextPlugin + + + Text + Text + + + + MultiEditorTimePlugin + + + Time + Time + + + + NewConstraintDialog + + + New constraint + New constraint + + + + + Primary Key + new constraint dialog + Primary Key + + + + + Foreign Key + new constraint dialog + Foreign Key + + + + + Unique + new constraint dialog + Unique + + + + + Check + new constraint dialog + Check + + + + Not NULL + new constraint dialog + Not NULL + + + + Collate + new constraint dialog + Collate + + + + Generated + new constraint dialog + Generated + + + + Default + new constraint dialog + Default + + + + NewVersionDialog + + + SQLiteStudio updates + SQLiteStudio updates + + + + New version is available! + New version is available! + + + + Download new version! + Download new version! + + + + New version package will be downloaded. It will be up to you to install it whenever you're ready. + New version package will be downloaded. It will be up to you to install it whenever you're ready. + + + + Open SQLiteStudio home page. + Open SQLiteStudio home page. + + + + Read release notes && download package yourself. + Read release notes && download package yourself. + + + + Just close this window. + Just close this window. + + + + Check for updates on startup + Check for updates on startup + + + + Not now. + Not now. + + + + PopulateConfigDialog + + + Populating configuration + Populating configuration + + + + Configuring <b>%1</b> for column <b>%2</b> + Configuring <b>%1</b> for column <b>%2</b> + + + + PopulateDialog + + + Populate table + Populate table + + + + Database + Database + + + + Table + Table + + + + Columns + Columns + + + + Number of rows to populate: + Number of rows to populate: + + + + Populate + populate dialog button + Populate + + + + Abort + Abort + + + + Configure + Configure + + + + Populating configuration for this column is invalid or incomplete. + Populating configuration for this column is invalid or incomplete. + + + + Select database with table to populate + Select database with table to populate + + + + Select table to populate + Select table to populate + + + + You have to select at least one column. + You have to select at least one column. + + + + QObject + + + Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). + Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). + + + + The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. + The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. + + + + Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. + Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. + + + + Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. + Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. + + + + Cannot edit results of query other than %1. + Cannot edit results of query other than %1. + + + + Cannot edit columns that are result of aggregated %1 statements. + Cannot edit columns that are result of aggregated %1 statements. + + + + Cannot edit columns that are result of %1 statement. + Cannot edit columns that are result of %1 statement. + + + + Cannot edit columns that are result of common table expression statement (%1). + Cannot edit columns that are result of common table expression statement (%1). + + + + Cannot edit table generated columns. + Cannot edit table generated columns. + + + + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). + + + + + + + on conflict: %1 + data view tooltip + on conflict: %1 + + + + references table %1, column %2 + data view tooltip + references table %1, column %2 + + + + condition: %1 + data view tooltip + condition: %1 + + + + collation name: %1 + data view tooltip + collation name: %1 + + + + Data grid view + Data grid view + + + + Edit current cell inline + Edit current cell inline + + + + Copy cell(s) contents to clipboard + Copy cell(s) contents to clipboard + + + + Copy cell(s) contents together with header to clipboard + Copy cell(s) contents together with header to clipboard + + + + Paste cell(s) contents from clipboard + Paste cell(s) contents from clipboard + + + + Set empty value to selected cell(s) + Set empty value to selected cell(s) + + + + Set NULL value to selected cell(s) + Set NULL value to selected cell(s) + + + + Commit changes to cell(s) contents + Commit changes to cell(s) contents + + + + Rollback changes to cell(s) contents + Rollback changes to cell(s) contents + + + + Delete selected data row + Delete selected data row + + + + Insert new data row + Insert new data row + + + + Open contents of selected cell in a separate editor + Open contents of selected cell in a separate editor + + + + Toggle the height adjustment of rows + Toggle the height adjustment of rows + + + + Increase font size + data view + Increase font size + + + + Decrease font size + data view + Decrease font size + + + + Total pages available: %1 + Total pages available: %1 + + + + Total rows loaded: %1 + Total rows loaded: %1 + + + + Data view (both grid and form) + Data view (both grid and form) + + + + Refresh data + Refresh data + + + + Switch to grid view of the data + Switch to grid view of the data + + + + Switch to form view of the data + Switch to form view of the data + + + + Database list + Database list + + + + Delete selected item + Delete selected item + + + + Clear filter contents + Clear filter contents + + + + Refresh schema + Refresh schema + + + + Refresh all schemas + Refresh all schemas + + + + Add database + Add database + + + + Select all items + Select all items + + + + Copy selected item(s) + Copy selected item(s) + + + + + + Paste from clipboard + Paste from clipboard + + + + Increase font size + database list + Increase font size + + + + Decrease font size + database list + Decrease font size + + + + Tables + Tables + + + + Indexes + Indexes + + + + Triggers + Triggers + + + + Views + Views + + + + Columns + Columns + + + + Data form view + Data form view + + + + Commit changes for current row + Commit changes for current row + + + + Rollback changes for current row + Rollback changes for current row + + + + Go to first row on current page + Go to first row on current page + + + + Go to next row + Go to next row + + + + Go to previous row + Go to previous row + + + + Go to last row on current page + Go to last row on current page + + + + Insert new row + Insert new row + + + + Delete current row + Delete current row + + + + Main window + Main window + + + + Open SQL editor + Open SQL editor + + + + Open DDL history window + Open DDL history window + + + + Open snippets editor window + Open snippets editor window + + + + Open function editor window + Open function editor window + + + + Open collation editor window + Open collation editor window + + + + Open extension manager window + Open extension manager window + + + + Previous window + Previous window + + + + Next window + Next window + + + + Hide status area + Hide status area + + + + Open user manual + Open user manual + + + + Open configuration dialog + Open configuration dialog + + + + Open Debug Console + Open Debug Console + + + + Open CSS Console + Open CSS Console + + + + Open the About dialog + Open the About dialog + + + + Quit the application + Quit the application + + + + Cell text value editor + Cell text value editor + + + + + Cut selected text + Cut selected text + + + + + Copy selected text + Copy selected text + + + + + Delete selected text + Delete selected text + + + + + Undo + Undo + + + + + Redo + Redo + + + + SQL editor input field + SQL editor input field + + + + Select whole editor contents + Select whole editor contents + + + + Save contents into a file + Save contents into a file + + + + Load contents from a file + Load contents from a file + + + + Find in text + Find in text + + + + Find next + Find next + + + + Find previous + Find previous + + + + Replace in text + Replace in text + + + + Delete current line + Delete current line + + + + Request code assistant + Request code assistant + + + + Format contents + Format contents + + + + Move selected block of text one line down + Move selected block of text one line down + + + + Move selected block of text one line up + Move selected block of text one line up + + + + Copy selected block of text and paste it a line below + Copy selected block of text and paste it a line below + + + + Copy selected block of text and paste it a line above + Copy selected block of text and paste it a line above + + + + Toggle comment + Toggle comment + + + + Increase font size + sql editor + Increase font size + + + + Decrease font size + sql editor + Decrease font size + + + + All SQLite databases + All SQLite databases + + + + All files + All files + + + + Select database file + Select database file + + + + Select + Select + + + + File type + File type + + + + SQL editor window + SQL editor window + + + + Execute query + Execute query + + + + Execute single query under cursor + Execute single query under cursor + + + + Execute all queries in editor + Execute all queries in editor + + + + Execute "%1" query + Execute "%1" query + + + + Switch current working database to previous on the list + Switch current working database to previous on the list + + + + Switch current working database to next on the list + Switch current working database to next on the list + + + + Go to next editor tab + Go to next editor tab + + + + Go to previous editor tab + Go to previous editor tab + + + + Move keyboard input focus to the results view below + Move keyboard input focus to the results view below + + + + Move keyboard input focus to the SQL editor above + Move keyboard input focus to the SQL editor above + + + + Delete selected SQL history entries + Delete selected SQL history entries + + + + Table window + Table window + + + + Commit the table structure + Commit the table structure + + + + Rollback pending changes in the table structure + Rollback pending changes in the table structure + + + + Refresh table structure + Refresh table structure + + + + Add new column + Add new column + + + + Edit selected column + Edit selected column + + + + Delete selected column + Delete selected column + + + + Export table data + Export table data + + + + Import data to the table + Import data to the table + + + + Add new table constraint + Add new table constraint + + + + Edit selected table constraint + Edit selected table constraint + + + + Delete selected table constraint + Delete selected table constraint + + + + Refresh table index list + Refresh table index list + + + + Add new index + Add new index + + + + Edit selected index + Edit selected index + + + + Delete selected index + Delete selected index + + + + Refresh table trigger list + Refresh table trigger list + + + + + Add new trigger + Add new trigger + + + + + Edit selected trigger + Edit selected trigger + + + + + Delete selected trigger + Delete selected trigger + + + + + Go to next tab + Go to next tab + + + + + Go to previous tab + Go to previous tab + + + + A view window + A view window + + + + Commit the view's query + Commit the view's query + + + + Rollback pending changes in the view's query + Rollback pending changes in the view's query + + + + Refresh view trigger list + Refresh view trigger list + + + + Execute the view's query + Execute the view's query + + + + A code snippets editor window + A code snippets editor window + + + + + + + Commit the pending changes + Commit the pending changes + + + + + + + Rollback the pending changes + Rollback the pending changes + + + + A collation editor window + A collation editor window + + + + A function editor window + A function editor window + + + + A SQLite extension editor window + A SQLite extension editor window + + + + QuitConfirmDialog + + + Uncommitted changes + Uncommitted changes + + + + Are you sure you want to quit the application? + +Following items are pending: + Are you sure you want to quit the application? + +Following items are pending: + + + + SearchTextDialog + + + Find or replace + Find or replace + + + + Find: + Find: + + + + Case sensitive + Case sensitive + + + + Search backwards + Search backwards + + + + Regular expression matching + Regular expression matching + + + + Replace && +find next + Replace && +find next + + + + Replace with: + Replace with: + + + + Replace all + Replace all + + + + Find + Find + + + + SortDialog + + + Sort by columns + Sort by columns + + + + + Column + Column + + + + + Order + Order + + + + Sort by: %1 + Sort by: %1 + + + + Move column up + Move column up + + + + Move column down + Move column down + + + + SqlEditor + + + Wrap words + sql editor + Wrap words + + + + Cut + sql editor + Cut + + + + Copy + sql editor + Copy + + + + Paste + sql editor + Paste + + + + Delete + sql editor + Delete + + + + Select all + sql editor + Select all + + + + Undo + sql editor + Undo + + + + Redo + sql editor + Redo + + + + Complete + sql editor + Complete + + + + Format SQL + sql editor + Format SQL + + + + Save SQL to file + sql editor + Save SQL to file + + + + Select file to save SQL + sql editor + Select file to save SQL + + + + Load SQL from file + sql editor + Load SQL from file + + + + Delete line + sql editor + Delete line + + + + Move block down + sql editor + Move block down + + + + Move block up + sql editor + Move block up + + + + Copy block down + sql editor + Copy block down + + + + Copy up down + sql editor + Copy up down + + + + Find + sql editor + Find + + + + Find next + sql editor + Find next + + + + Find previous + sql editor + Find previous + + + + Replace + sql editor + Replace + + + + Toggle comment + sql editor + Toggle comment + + + + Increase font size + sql editor + Increase font size + + + + Decrease font size + sql editor + Decrease font size + + + + Could not open file '%1' for writing: %2 + Could not open file '%1' for writing: %2 + + + + Saved SQL contents to file: %1 + Saved SQL contents to file: %1 + + + + Syntax completion can be used only when a valid database is set for the SQL editor. + Syntax completion can be used only when a valid database is set for the SQL editor. + + + + Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. + Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. + + + + Save to file + Save to file + + + + SQL scripts (*.sql);;All files (*) + SQL scripts (*.sql);;All files (*) + + + + Open file + Open file + + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Reached the end of document. Hit the find again to restart the search. + Reached the end of document. Hit the find again to restart the search. + + + + SqlQueryItem + + + Committing error: + data view tooltip + Committing error: + + + + Column: + data view tooltip + Column: + + + + Data type: + data view + Data type: + + + + Table: + data view tooltip + Table: + + + + Constraints: + data view tooltip + Constraints: + + + + SqlQueryItemDelegate + + + + + + Cannot edit this cell. Details: %1 + Cannot edit this cell. Details: %1 + + + + The row is marked for deletion. + The row is marked for deletion. + + + + + Structure of this table has changed since last data was loaded. Reload the data to proceed. + Structure of this table has changed since last data was loaded. Reload the data to proceed. + + + + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). + + + + Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. + Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. + + + + SqlQueryModel + + + + Only one query can be executed simultaneously. + Only one query can be executed simultaneously. + + + + Cannot execute query on undefined or invalid database. + Cannot execute query on undefined or invalid database. + + + + Cannot execute empty query. + Cannot execute empty query. + + + + Uncommitted data + Uncommitted data + + + + There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. + There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. + + + + Cannot commit the data for a cell that refers to the already closed database. + Cannot commit the data for a cell that refers to the already closed database. + + + + Could not begin transaction on the database. Details: %1 + Could not begin transaction on the database. Details: %1 + + + + An error occurred while committing the transaction: %1 + An error occurred while committing the transaction: %1 + + + + An error occurred while rolling back the transaction: %1 + An error occurred while rolling back the transaction: %1 + + + + Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. + Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. + + + + An error occurred while committing the data: %1 + An error occurred while committing the data: %1 + + + + Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. + Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. + + + + + Error while executing SQL query on database '%1': %2 + Error while executing SQL query on database '%1': %2 + + + + Error while loading query results: %1 + Error while loading query results: %1 + + + + Insert multiple rows + Insert multiple rows + + + + Number of rows to insert: + Number of rows to insert: + + + + Delete rows + Delete rows + + + + You're about to delete newly inserted rows that are not committed yet. Row numbers: %1 +Such deletion will be permanent. Are you sure you want to delete them? + You're about to delete newly inserted rows that are not committed yet. Row numbers: %1 +Such deletion will be permanent. Are you sure you want to delete them? + + + + SqlQueryView + + + Go to referenced row in... + Go to referenced row in... + + + + Copy + Copy + + + + Copy with headers + Copy with headers + + + + Copy as... + Copy as... + + + + Paste + Paste + + + + Paste as... + Paste as... + + + + Set NULL values + Set NULL values + + + + Erase values + Erase values + + + + Commit + Commit + + + + Rollback + Rollback + + + + Commit selected cells + Commit selected cells + + + + Rollback selected cells + Rollback selected cells + + + + Edit current cell inline + Edit current cell inline + + + + Define columns to sort by + Define columns to sort by + + + + Remove custom sorting + Remove custom sorting + + + + Insert row + Insert row + + + + Insert multiple rows + Insert multiple rows + + + + Delete selected row + Delete selected row + + + + Adjust height of rows + Adjust height of rows + + + + Increase font size + data view + Increase font size + + + + Decrease font size + data view + Decrease font size + + + + Invert selection + data view + Invert selection + + + + Edit value in editor + Edit value in editor + + + + Show value in a viewer + Show value in a viewer + + + + Generate query for selected cells + Generate query for selected cells + + + + No items selected to paste clipboard contents to. + No items selected to paste clipboard contents to. + + + + Cannot paste data. Details: %1 + Cannot paste data. Details: %1 + + + + Structure of at least one table used has changed since last data was loaded. Reload the data to proceed. + Structure of at least one table used has changed since last data was loaded. Reload the data to proceed. + + + + Cannot paste to a cell. Details: %1 + Cannot paste to a cell. Details: %1 + + + + The row is marked for deletion. + The row is marked for deletion. + + + + Cannot paste to column %1. Details: %2 + Cannot paste to column %1. Details: %2 + + + + Go to referenced row in table '%1' + Go to referenced row in table '%1' + + + + table '%1' + table '%1' + + + + Referenced row (%1) + Referenced row (%1) + + + + Trim pasted text? + Trim pasted text? + + + + The pasted text contains leading or trailing white space. Trim it automatically? + The pasted text contains leading or trailing white space. Trim it automatically? + + + + Paste "NULL" as null value? + Paste "NULL" as null value? + + + + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + + + + Edit value + Edit value + + + + SqlTableModel + + + Error while committing new row: %1 + Error while committing new row: %1 + + + + Error while deleting row from table %1: %2 + Error while deleting row from table %1: %2 + + + + SqliteExtensionEditor + + + Filter extensions + Filter extensions + + + + Leave empty to use default function + Leave empty to use default function + + + + Extension file + Extension file + + + + Initialization function + Initialization function + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Extension manager window has uncommitted modifications. + Extension manager window has uncommitted modifications. + + + + Extension manager + Extension manager + + + + Commit all extension changes + Commit all extension changes + + + + Rollback all extension changes + Rollback all extension changes + + + + Add new extension + Add new extension + + + + Remove selected extension + Remove selected extension + + + + Editing extensions manual + Editing extensions manual + + + + File with given path does not exist or is not readable. + File with given path does not exist or is not readable. + + + + Unable to load extension: %1 + Unable to load extension: %1 + + + + Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. + Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. + + + + Dynamic link libraries (*.dll);;All files (*) + Dynamic link libraries (*.dll);;All files (*) + + + + Shared objects (*.so);;All files (*) + Shared objects (*.so);;All files (*) + + + + Dynamic libraries (*.dylib);;All files (*) + Dynamic libraries (*.dylib);;All files (*) + + + + All files (*) + All files (*) + + + + Open file + Open file + + + + StatusField + + + Status + Status + + + + Copy + Copy + + + + Clear + Clear + + + + TableConstraintsModel + + + Type + table constraints + Type + + + + Details + table constraints + Details + + + + Name + table constraints + Name + + + + TableForeignKeyPanel + + + Foreign table: + Foreign table: + + + + Columns + Columns + + + + Local column + Local column + + + + Foreign column + Foreign column + + + + Reactions + Reactions + + + + Deferred foreign key + Deferred foreign key + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + Pick the foreign column. + Pick the foreign column. + + + + Pick the foreign table. + Pick the foreign table. + + + + Select at least one foreign column. + Select at least one foreign column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + Foreign column + table constraints + Foreign column + + + + TablePrimaryKeyAndUniquePanel + + + Columns + Columns + + + + Column + Column + + + + Collation + Collation + + + + Sort + Sort + + + + Valid only for a single column with INTEGER data type + Valid only for a single column with INTEGER data type + + + + Autoincrement + Autoincrement + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + On conflict + On conflict + + + + Collate + table constraints + Collate + + + + Sort order + table constraints + Sort order + + + + Select at least one column. + Select at least one column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + TableStructureModel + + + Name + table structure columns + Name + + + + Data type + table structure columns + Data type + + + + Primary +Key + table structure columns + Primary +Key + + + + Foreign +Key + table structure columns + Foreign +Key + + + + Unique + table structure columns + Unique + + + + Check + table structure columns + Check + + + + Not +NULL + table structure columns + Not +NULL + + + + Collate + table structure columns + Collate + + + + Generated + table structure columns + Generated + + + + Default value + table structure columns + Default value + + + + TableWindow + + + Structure + Structure + + + + Table name: + Table name: + + + + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + + + + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + + + + + Data + Data + + + + Constraints + Constraints + + + + Indexes + Indexes + + + + Triggers + Triggers + + + + DDL + DDL + + + + Export table + table window + Export table + + + + Import data to table + table window + Import data to table + + + + Populate table + table window + Populate table + + + + Refresh structure + table window + Refresh structure + + + + Commit structure changes + table window + Commit structure changes + + + + Rollback structure changes + table window + Rollback structure changes + + + + Add column + table window + Add column + + + + Edit column + table window + Edit column + + + + + Delete column + table window + Delete column + + + + Move column up + table window + Move column up + + + + Move column down + table window + Move column down + + + + Create similar table + table window + Create similar table + + + + Reset autoincrement value + table window + Reset autoincrement value + + + + Add table constraint + table window + Add table constraint + + + + Edit table constraint + table window + Edit table constraint + + + + Delete table constraint + table window + Delete table constraint + + + + Move table constraint up + table window + Move table constraint up + + + + Move table constraint down + table window + Move table constraint down + + + + Add table primary key + table window + Add table primary key + + + + Add table foreign key + table window + Add table foreign key + + + + Add table unique constraint + table window + Add table unique constraint + + + + Add table check constraint + table window + Add table check constraint + + + + Refresh index list + table window + Refresh index list + + + + + Create index + table window + Create index + + + + Edit index + table window + Edit index + + + + Delete index + table window + Delete index + + + + Refresh trigger list + table window + Refresh trigger list + + + + + Create trigger + table window + Create trigger + + + + Edit trigger + table window + Edit trigger + + + + Delete trigger + table window + Delete trigger + + + + Are you sure you want to delete column '%1'? + table window + Are you sure you want to delete column '%1'? + + + + Following problems will take place while modifying the table. +Would you like to proceed? + table window + Following problems will take place while modifying the table. +Would you like to proceed? + + + + Table modification + table window + Table modification + + + + Could not load data for table %1. Error details: %2 + Could not load data for table %1. Error details: %2 + + + + Could not process the %1 table correctly. Unable to open a table window. + Could not process the %1 table correctly. Unable to open a table window. + + + + Database + Database + + + + Could not restore window %1, because no database or table was stored in session for this window. + Could not restore window %1, because no database or table was stored in session for this window. + + + + Could not restore window '%1', because no database or table was stored in session for this window. + Could not restore window '%1', because no database or table was stored in session for this window. + + + + Could not restore window '%1', because database %2 could not be resolved. + Could not restore window '%1', because database %2 could not be resolved. + + + + Could not restore window '%1', because the table %2 doesn't exist in the database %3. + Could not restore window '%1', because the table %2 doesn't exist in the database %3. + + + + + New table %1 + New table %1 + + + + Committed changes for table '%1' successfully. + Committed changes for table '%1' successfully. + + + + Committed changes for table '%1' (named before '%2') successfully. + Committed changes for table '%1' (named before '%2') successfully. + + + + Could not commit table structure. Error message: %1 + table window + Could not commit table structure. Error message: %1 + + + + Reset autoincrement + Reset autoincrement + + + + Are you sure you want to reset autoincrement value for table '%1'? + Are you sure you want to reset autoincrement value for table '%1'? + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + An error occurred while trying to reset autoincrement value for table '%1': %2 + + + + Autoincrement value for table '%1' has been reset successfully. + Autoincrement value for table '%1' has been reset successfully. + + + + Empty name + Empty name + + + + A blank name for the table is allowed in SQLite, but it is not recommended. +Are you sure you want to create a table with blank name? + A blank name for the table is allowed in SQLite, but it is not recommended. +Are you sure you want to create a table with blank name? + + + + Cannot create a table without at least one column. + Cannot create a table without at least one column. + + + + Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. + Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. + + + + Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. + Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. + + + + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 + + + + Are you sure you want to delete table constraint '%1'? + table window + Are you sure you want to delete table constraint '%1'? + + + + Delete constraint + table window + Delete constraint + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + Uncommitted changes + Uncommitted changes + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + + + + Go back to structure tab + Go back to structure tab + + + + Commit modifications and browse data. + Commit modifications and browse data. + + + + Name + table window indexes + Name + + + + Unique + table window indexes + Unique + + + + Columns + table window indexes + Columns + + + + Partial index condition + table window indexes + Partial index condition + + + + Name + table window triggers + Name + + + + Event + table window triggers + Event + + + + Condition + table window triggers + Condition + + + + Details + table window triggers + Details + + + + Table window "%1" has uncommitted structure modifications and data. + Table window "%1" has uncommitted structure modifications and data. + + + + Table window "%1" has uncommitted data. + Table window "%1" has uncommitted data. + + + + Table window "%1" has uncommitted structure modifications. + Table window "%1" has uncommitted structure modifications. + + + + TriggerColumnsDialog + + + Trigger columns + Trigger columns + + + + Triggering columns: + Triggering columns: + + + + Select all + Select all + + + + Deselect all + Deselect all + + + + TriggerDialog + + + + Trigger + Trigger + + + + On table: + On table: + + + + Action: + Action: + + + + + <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> + <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> + + + + Pre-condition: + Pre-condition: + + + + The scope is still not fully supported by the SQLite database. + The scope is still not fully supported by the SQLite database. + + + + Trigger name: + Trigger name: + + + + When: + When: + + + + List of columns for UPDATE OF action. + List of columns for UPDATE OF action. + + + + Scope: + Scope: + + + + Code: + Code: + + + + Trigger statements to be executed. + Trigger statements to be executed. + + + + DDL + DDL + + + + On view: + On view: + + + + Could not process trigger %1 correctly. Unable to open a trigger dialog. + Could not process trigger %1 correctly. Unable to open a trigger dialog. + + + + Enter a valid condition. + Enter a valid condition. + + + + Enter a valid trigger code. + Enter a valid trigger code. + + + + Error + trigger dialog + Error + + + + An error occurred while executing SQL statements: +%1 + An error occurred while executing SQL statements: +%1 + + + + VersionConvertSummaryDialog + + + Database version convert + Database version convert + + + + Following changes to the SQL statements will be made: + Following changes to the SQL statements will be made: + + + + Before + Before + + + + After + After + + + + ViewWindow + + + Query + Query + + + + View name: + View name: + + + + Output column names + Output column names + + + + + Data + Data + + + + Triggers + Triggers + + + + DDL + DDL + + + + + Could not restore window '%1', because no database or view was stored in session for this window. + Could not restore window '%1', because no database or view was stored in session for this window. + + + + Could not restore window '%1', because database %2 could not be resolved. + Could not restore window '%1', because database %2 could not be resolved. + + + + Could not restore window '%1', because database %2 could not be open. + Could not restore window '%1', because database %2 could not be open. + + + + Could not restore window '%1', because the view %2 doesn't exist in the database %3. + Could not restore window '%1', because the view %2 doesn't exist in the database %3. + + + + + New view %1 + New view %1 + + + + Database + Database + + + + Refresh the view + view window + Refresh the view + + + + Commit the view changes + view window + Commit the view changes + + + + Rollback the view changes + view window + Rollback the view changes + + + + Explicit column names + Explicit column names + + + + Generate output column names automatically basing on result columns of the view. + Generate output column names automatically basing on result columns of the view. + + + + Add column + view window + Add column + + + + Edit column + view window + Edit column + + + + Delete column + view window + Delete column + + + + Move column up + view window + Move column up + + + + Move column down + view window + Move column down + + + + Refresh trigger list + view window + Refresh trigger list + + + + Create new trigger + view window + Create new trigger + + + + Edit selected trigger + view window + Edit selected trigger + + + + Delete selected trigger + view window + Delete selected trigger + + + + View window "%1" has uncommitted structure modifications and data. + View window "%1" has uncommitted structure modifications and data. + + + + View window "%1" has uncommitted data. + View window "%1" has uncommitted data. + + + + View window "%1" has uncommitted structure modifications. + View window "%1" has uncommitted structure modifications. + + + + Could not load data for view %1. Error details: %2 + Could not load data for view %1. Error details: %2 + + + + Uncommitted changes + Uncommitted changes + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + + + + Go back to structure tab + Go back to structure tab + + + + Commit modifications and browse data. + Commit modifications and browse data. + + + + View '%1' was committed successfully. + View '%1' was committed successfully. + + + + Committed changes for view '%1' successfully. + Committed changes for view '%1' successfully. + + + + Committed changes for view '%1' (named before '%2') successfully. + Committed changes for view '%1' (named before '%2') successfully. + + + + Could not commit view changes. Error message: %1 + view window + Could not commit view changes. Error message: %1 + + + + Override columns + Override columns + + + + Currently defined columns will be overriden. Do you want to continue? + Currently defined columns will be overriden. Do you want to continue? + + + + Could not determinate columns returned from the view. The query is problably incomplete or contains errors. + Could not determinate columns returned from the view. The query is problably incomplete or contains errors. + + + + Name + view window triggers + Name + + + + Instead of + view window triggers + Instead of + + + + Condition + view window triggers + Condition + + + + Details + table window triggers + Details + + + + Could not process the %1 view correctly. Unable to open a view window. + Could not process the %1 view correctly. Unable to open a view window. + + + + Empty name + Empty name + + + + A blank name for the view is allowed in SQLite, but it is not recommended. +Are you sure you want to create a view with blank name? + A blank name for the view is allowed in SQLite, but it is not recommended. +Are you sure you want to create a view with blank name? + + + + The SELECT statement could not be parsed. Please correct the query and retry. +Details: %1 + The SELECT statement could not be parsed. Please correct the query and retry. +Details: %1 + + + + The view could not be modified due to internal SQLiteStudio error. Please report this! + The view could not be modified due to internal SQLiteStudio error. Please report this! + + + + The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. + The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. + + + + Following problems will take place while modifying the view. +Would you like to proceed? + view window + Following problems will take place while modifying the view. +Would you like to proceed? + + + + View modification + view window + View modification + + + + WidgetCover + + + Interrupt + Interrupt + + + diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_de.qm b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_de.qm deleted file mode 100644 index 3f118d1..0000000 Binary files a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_de.qm and /dev/null differ diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_de.ts b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_de.ts deleted file mode 100644 index 0047f6c..0000000 --- a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_de.ts +++ /dev/null @@ -1,7261 +0,0 @@ - - - - - AboutDialog - - - About SQLiteStudio and licenses - Über SQLiteStudio und deren Lizenzen - - - - About - Über SQLiteStudio - - - <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="http://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">http://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="http://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">http://salsoft.com.pl</span></a>)<br/></p></body></html> - <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Freier, open-source, multiplattformfähiger SQLite Datenbankmanager.<br/><a href="http://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">http://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Autor und aktiver Verantwortlicher:<br/>SalSoft (<a href="http://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">http://salsoft.com.pl</span></a>)<br/></p></body></html> - - - - Licenses - Lizenzen - - - - Environment - Programmumgebung - - - - Icon directories - Icon Verzeichnisse - - - - Form directories - Formular Verzeichnisse - - - - Plugin directories - Plugin Verzeichnisse - - - - Application directory - Programmverzeichnis - - - - SQLite 3 version: - SQLite 3 Version: - - - - Configuration directory - Konfigurationsverzeichnis - - - - <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> - - - - - Qt version: - Qt Version: - - - - Portable distribution. - Sollte hier vermutlich "Portable Version" heißen? - Portable Version. - - - - MacOS X application boundle distribution. - Das müsste mal genauer übersetzt werden. - MacOS X Programmbundle-Version. - - - - Operating system managed distribution. - Betriebssystemverwaltete Version. - - - - Copy - Kopie - - - - <h3>Table of contents:</h3><ol>%2</ol> - <h3>Inhaltsverzeichnis:</h3><ol>%2</ol> - - - - BindParamsDialog - - - Query parameters - - - - - Please provide values for query parameters - - - - - BugDialog - - Bugs and ideas - Fehler und Anregungen - - - Reporter - Gemeldet von - - - E-mail address - Ihre E-mail Adresse oder Ihr 'bugtracker' Login - - - Log in - Anmelden - - - Short description - Kurzbeschreibung - - - Detailed description - Ausführliche Fehlerbeschreibung - - - Show more details - Mehr Details - - - SQLiteStudio version - SQLiteStudio Version - - - Operating system - Betriebssystem - - - Loaded plugins - Geladene Plugins - - - Send - Absenden - - - You can see all your reported bugs and ideas by selecting menu '%1' and then '%2'. - Sie können Ihre gemeldeten Fehler und Anregungen sehen, wenn Sie im Menü '%1' den Eintrag '%2' auswählen. - - - A bug report sent successfully. - Ihr Fehlerbericht wurde erfolgreich versendet. - - - An error occurred while sending a bug report: %1 -%2 - Beim Absenden des Fehlerberichts ist ein Fehler aufgetreten: %1 %2 - - - You can retry sending. The contents will be restored when you open a report dialog after an error like this. - Sie können versuchen den Bericht erneut abzusenden. Ihr eingegebener Text wird nach einem Fehler wie diesem wieder hergestellt. - - - An idea proposal sent successfully. - Ihre Anregung wurde erfolgreich versendet. - - - An error occurred while sending an idea proposal: %1 -%2 - Beim Absenden der Anregung ist ein Fehler aufgetreten: %1 %2 - - - A bug report - Fehlerbericht erfassen - - - Describe problem in few words - Beschreiben Sie das Problem mit wenigen Worten - - - Describe problem and how to reproduce it - Beschreiben Sie das Problem hier genauer und die Schritte, um es zu reproduzieren - - - A new feature idea - Anregung zu einer neuen Funktion erfassen - - - A title for your idea - Ein kurzer Titel für ihre Anregung - - - Describe your idea in more details - Beschreiben Sie hier Ihre Anregung ausführlich - - - Reporting as an unregistered user, using e-mail address. - Versenden als nicht registrierter Benutzer mittels E-mail Adresse. - - - Reporting as a registered user. - Versenden als registrierter Benutzer. - - - Log out - Abmelden - - - Providing true email address will make it possible to contact you regarding your report. To learn more, press 'help' button on the right side. - Die Angabe Ihrer echten E-mail Adresse ermöglicht es uns Sie bzgl. Ihres Berichts zu kontaktieren. Erfahren Sie mehr dazu und klicken Sie den 'Hilfe' Knopf auf der rechtehn Seite. - - - Enter vaild e-mail address, or log in. - Geben Sie Ihre gültige E-mail Adresse oder Ihre Anmeldedaten an. - - - Short description requires at least 10 characters, but not more than 100. Longer description can be entered in the field below. - Eine Kurzbeschreibung benötigt mindestens 10 Zeichen, maximal jedoch 100 Zeichen. Eine ausführlichere Beschreibung kann in dem Feld unten erfasst werden. - - - Long description requires at least 30 characters. - Eine ausführliche Beschreibung benötigt mindestens 30 Zeichen. - - - - BugReportHistoryWindow - - Title - Titel - - - Reported at - Gemeldet am - - - URL - URL - - - Reports history - Berichtsverlauf - - - Clear reports history - Lösche Berichtsverlauf - - - Delete selected entry - Gewählten Eintrag löschen - - - Invalid response from server. - Ungültige Antwort vom Server. - - - - BugReportLoginDialog - - Log in - Anmelden - - - Credentials - Hier fehlt mir der Kontext!!! - Überprüfung - - - Login: - Login: - - - Password: - Passwort: - - - Validation - Überprüfung - - - Validate - Überprüfe - - - Validation result message - Ergebnis der Überprüfung - - - Abort - Abbrechen - - - A login must be at least 2 characters long. - Ein Login Kürzel muss mindestens 2 Zeichen lang sein. - - - A password must be at least 5 characters long. - Ein Passwort muss mindestens 5 Zeichen lang sein. - - - Valid - Gültig - - - - CollationsEditor - - - Filter collations - Kollationen filtern - - - - Collation name: - Kollationsname: - - - - Implementation language: - Sprache: - - - - Databases - Datenbanken - - - - Register in all databases - In allen Datenbanken registrieren - - - - Register in following databases: - In den folgenden Datenbanken registrieren: - - - - Implementation code: - Anweisungen: - - - - Collations editor - Editor für Kollationen - - - - Commit all collation changes - Speichern aller Änderungen an Kollationen - - - - Rollback all collation changes - Zurücknehmen aller Änderungen an Kollationen - - - - Create new collation - Neue Kollation erstellen - - - - Delete selected collation - Markierte Kollationen löschen - - - - Editing collations manual - Kollationen manuell editieren - - - - Enter a non-empty, unique name of the collation. - Geben Sie einen eindeutigen Namen für die Kollation ein. - - - - Pick the implementation language. - Wählen Sie die Sprache aus. - - - - Enter a non-empty implementation code. - Geben Sie eine eindeutige Vergleichsoperatorendefinition ein. - - - - Collations editor window has uncommitted modifications. - - - - Collations editor window has uncommited modifications. - Der Editorfür Kollationen enthält nicht gespeicherte Änderungen. - - - - ColorButton - - - Pick a color - Wählen Sie eine Farbe aus - - - - ColumnCollatePanel - - - Collation name: - Name der Kollation: - - - - Named constraint: - Name der Bedingung: - - - - Enter a name of the constraint. - Geben Sie einen Namen für die Bedingung ein. - - - - Enter a collation name. - Geben Sie einen Namen für die Kollation ein. - - - - ColumnDefaultPanel - - - Default value: - Standardwert: - - - - Named constraint: - Benannte Bedingung: - - - - Enter a default value expression. - Geben Sie einen Standardwert an. - - - - Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. - - - - - Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. - - - - Invalid default value expression: %1 - Ungültiger Standardwert für Ausdruck: %1 - - - - Enter a name of the constraint. - Geben Sie einen Namen für die Bedingung ein. - - - - ColumnDialog - - - Column - Spalte - - - - Name and type - Name und Typ - - - - Scale - Skalierung - - - - Precision - Präzision - - - - Data type: - Datentyp: - - - - Column name: - Spaltenname: - - - - Size: - Größe: - - - - Constraints - Bedingungen - - - - Unique - Eindeutigkeit - - - - - - - - - - Configure - Konfigurieren - - - - Foreign Key - Fremdschlüssel - - - - Collate - Kollationieren - - - - Not NULL - Nicht NULL - - - - Check condition - Zustandsprüfung - - - - Primary Key - Primärer Schlüssel - - - - Default - Standard - - - - Advanced mode - Erweiterter Modus - - - - Add constraint - column dialog - Bedingung hinzufügen - - - - Edit constraint - column dialog - Bedingung editieren - - - - - Delete constraint - column dialog - Bedingung löschen - - - - Move constraint up - column dialog - Bedingung nach oben verschieben - - - - Move constraint down - column dialog - Bedingung nach unten verschieben - - - - Add a primary key - column dialog - Primärschlüssel zufügen - - - - Add a foreign key - column dialog - Fremdschlüssel zufügen - - - - Add an unique constraint - column dialog - Eindeutige Bedingung hinzufügen - - - - Add a check constraint - column dialog - Prüfungsbedingung hinzufügen - - - - Add a not null constraint - column dialog - Nicht-NULL Bedingung hinzufügen - - - - Add a collate constraint - column dialog - Kollationsbedingung hinzufügen - - - - Add a default constraint - column dialog - Standardbedingung hinzufügen - - - - Are you sure you want to delete constraint '%1'? - column dialog - Sind Sie sicher, dass Sie die folgende Bedingung löschen wollen: '%1'? - - - - Correct the constraint's configuration. - Korrigiert die Konfiguration der Bedingung. - - - - This constraint is not officially supported by SQLite 2, -but it's okay to use it. - Diese Bedingung wird von SQLite 2 offiziell nicht unterstützt, aber sie kann dennoch benutzt werden. - - - - Scale is not allowed for INTEGER PRIMARY KEY columns. - Für INTEGER PRIMARY KEY ist eine Skalierung nicht erlaubt. - - - - Precision cannot be defined without the scale. - Die Präzision kann ohne Skalierung nicht definiert werden. - - - - Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. - - - - - INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. - - - - - Precision is not allowed for INTEGER PRIMARY KEY columns. - Für INTEGER PRIMARY KEY ist eine Präzision nicht erlaubt. - - - - ColumnDialogConstraintsModel - - - Type - column dialog constraints - Typ - - - - Name - column dialog constraints - Name - - - - Details - column dialog constraints - Details - - - - ColumnForeignKeyPanel - - - Foreign table: - Fremde Tabelle: - - - - Foreign column: - Fremde Spalte: - - - - Reactions - Reaktionen - - - - Deferred foreign key - Verzögerter Fremdschlüssel - - - - Named constraint - Benannte Bedingung - - - - Constraint name - Name der Bedingung - - - - Pick the foreign table. - Wählen Sie die Fremdtabelle aus. - - - - Pick the foreign column. - Wählen Sie die Fremdspalte aus. - - - - Enter a name of the constraint. - Geben Sie einen Namen für die Bedingung ein. - - - - ColumnPrimaryKeyPanel - - - Autoincrement - Automatisch hochzählend - - - - Sort order: - Sortierfolge: - - - - Named constraint: - Benannte Bedingung: - - - - On conflict: - Bei Konflikt: - - - - Enter a name of the constraint. - Geben Sie einen Namen für die Bedingung ein. - - - Autoincrement (only for %1 type columns) - column primary key - Automatische Zählung (nur für %1 Spaltentypen) - - - - ColumnUniqueAndNotNullPanel - - - Named constraint: - Benannte Bedingung: - - - - On conflict: - Bei Konflikt: - - - - Enter a name of the constraint. - Geben Sie einen Namen für die Bedingung ein. - - - - CompleterWindow - - - Column: %1 - completer statusbar - Spalte: %1 - - - - Table: %1 - completer statusbar - Tabelle: %1 - - - - Index: %1 - completer statusbar - Index: %1 - - - - Trigger: %1 - completer statusbar - Trigger: %1 - - - - View: %1 - completer statusbar - View: %1 - - - - Database: %1 - completer statusbar - Datenbank: %1 - - - - Keyword: %1 - completer statusbar - Schlüsselwort: %1 - - - - Function: %1 - completer statusbar - Funktion: %1 - - - - Operator: %1 - completer statusbar - Operator: %1 - - - - String - completer statusbar - Zeichenkette - - - - Number - completer statusbar - Nummer - - - - Binary data - completer statusbar - Binäre Daten - - - - Collation: %1 - completer statusbar - Kollation: %1 - - - - Pragma function: %1 - completer statusbar - Pragma Funktion: %1 - - - - ConfigDialog - - - - Configuration - Konfiguration - - - - Search - Suchen - - - - General - Allgemein - - - - Keyboard shortcuts - Tastaturkürzel - - - - Look & feel - Kurz und knackig - Layout - - - - Style - Stil - - - - Fonts - Schriftarten - - - - Colors - Farben - - - - Plugins - Plugins - - - - Code formatters - Codeformatierer - - - - Data browsing - Datenbearbeitung - - - - Data editors - Dateneditoren - - - - Database dialog window - Dialogfenster der Datenbank - - - - <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> - - - - - Do not mark database to be "permanent" by default - - - - - <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> - - - - - Try to bypass dialog completly when dropping database file onto the list - - - - - Data browsing and editing - Datenbearbeitung - - - - Number of data rows per page: - Anzahl an Datenzeilen pro Seite: - - - - - <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> - <p>Wenn Daten in das Ergebnisfenster eingelesen werden, dann wird die Breite der Spalten dabei automatisch angepasst. Dieser Wert begrenzt maximale Breite für die automatische Breitenanpassung. Der Anwender kann die Spaltenbreite jedoch manuell über dieses Limit verbreitern.</p> - - - - Limit initial data column width to (in pixels): - Begrenze die initiale Spaltenbreite im Ergebnisfenster auf (Pixel): - - - - Keep NULL value when entering empty value - - - - - <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> - - - - - - <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> - - - - - Number of memorized table populating configurations - - - - - Show column and row details tooltip in data view - - - - - <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> - - - - - <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> - - - - - Use DEFAULT value (if defined), when committing NULL value - - - - - Inserting new row in data grid - Neue Zeile im Gitternetz des Datenfensters hinzufügen - - - - Before currently selected row - Vor der derzeitig ausgewählten Zeile - - - - After currently selected row - Nach der derzeitig ausgewählten Zeile - - - - At the end of data view - Am Ende der Datenfensters - - - - <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> - <p>Wenn aktiviert, wird der Reiter "Daten" anstelle des Reiters "Struktur" angezeigt beim öffnen eines Tabellenfensters angezeigt.</p> - - - - <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> - <p>Wenn aktiviert, wird der Reiter "Daten" als erster Reiter angezeigt für jedes Tabellenfenster, anstelle an zweiter Stelle.</p> - - - - Place data tab as first tab in a Table Window - Den Reiter Daten als ersten Reiter im Tabellenfenster anzeigen - - - - <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> - - - - - <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> - - - - - Place data tab as first tab in a View Window - Den Reiter Daten als ersten Reiter im View-Fenster anzeigen - - - - Data types - Datentypen - - - - Available editors: - Verfügbare Editoren: - - - - Editors selected for this data type: - Für diesen Datentyp ausgewählte Editoren: - - - - Schema editing - Schema - - - - Number of DDL changes kept in history. - Maximale Anzahl an DDL Änderungen im Verlauf. - - - - DDL history size: - DDL Verlaufsgröße: - - - Don't show DDL preview dialog when commiting schema changes - Zeige keine DDL Vorschau, wenn Schemaänderungen committed werden - - - - SQL queries - SQL Abfragen - - - - - Number of queries kept in the history. - Maximale Anzahl an SQL Abfragen im Verlauf. - - - - History size: - Verlaufsgröße: - - - - <p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute.</p> - <p>Wenn diese Option aktiviert ist und sich mehrere SQL Abfragen im Editorfenster befinden, dann wird nur die SQL Abfrage ausgeführt, in der sich der Cursor befindet. Ist diese Option nicht gesetzt, dann werden alle SQL Abfragen ausgeführt. Sie können die auszuführenden SQL Abfragen selbst bestimmen, indem Sie diese vor der Ausführung mit der Maus oder Tastatur markieren.</p> - - - - Execute only the query under the cursor - Führt nur die Abfrage unter dem Cursor aus - - - - Updates - Updates - - - - Automatically check for updates at startup - Prüfe vor dem Start automatisch auf Updates - - - - Session - Sitzung - - - - Restore last session (active MDI windows) after startup - Stelle letzte Sitzung nach dem Start wieder her (aktive MDI Fenster) - - - - Status Field - Statusfeld - - - - <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> - - - - - Always open Status panel when new message is printed - Den Panel Status immer öffnen, wenn eine neue Meldung ausgegeben wird - - - - Filter shortcuts by name or key combination - Filtere Tastaturkürzel nach Name oder Tastenkombination - - - - Action - Aktion - - - - Key combination - Tastenkombination - - - - - Language - Sprache - - - - Changing language requires application restart to take effect. - Die Änderung der Sprache erfordert einen Neustart des Programms. - - - - Compact layout - Kompaktes Layout - - - - <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> - <p>Das kompakte Layout reduziert alle Lücken und Abstände der Oberfläche auf ein Minimum, um mehr Platz für die Darstellung der Daten zu schaffen. Die Oberfläche sieht dann zwar nicht mehr sehr ästhetisch aus, aber man hat mehr Daten im Überblick.</p> - - - - Use compact layout - Benutze kompaktes Layout - - - General.CompactLayout - Standard.KompaktesLayout - - - - - Database list - Liste der Datenbanken - - - - If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. - Wenn die Option deaktiviert ist, werden die Spalten in der Reihenfolge sortiert in der sie im CREATE TABLE Statement angegeben wurden. - - - - Sort table columns alphabetically - Tabellenspalten alphabetisch sortieren - - - - Expand tables node when connected to a database - Tabellenknoten aufklappen, wenn eine Datenbank verbunden ist - - - - <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> - <p>Zusätzliche Bezeichnungen sind jene, die neben den Namen der Datenbankliste angezeigt werden (sie sind normalerweise blau gefärbt, es sei denn dies wurde umkonfiguriert). Ist diese Option aktiviert, dann werden diese Bezeichnungen angezeigt für Datenbanken, ungültige Datenbanken und zusammengefasste Knoten (Spalten-, Index- und Triggergruppen). Für mehr Details siehe die folgenden optionen.<p> - - - - Display additional labels on the list - Zeige zusätzliche Bezeichnungen in der Liste an - - - - For regular tables labels will show number of columns, indexes and triggers for each of tables. - Für normale Tabellen enthält die Bezeichnung die Anzahl der Spalten, Indizes und Trigger einer jeden Tabelle. - - - - Display labels for regular tables - Zeigt Bezeichnungen für normale Tabellen an - - - - Virtual tables will be marked with a 'virtual' label. - Virtuelle Tabellen werden mit einem 'virtuell' Kürzel versehen. - - - - Display labels for virtual tables - Zeige Bezeichnungen für virtuelle Tabellen - - - - Expand views node when connected to a database - Knoten aufklappen, wenn eine Datenbank verbunden ist - - - - If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) - Wenn die Option deaktiviert ist, werden die Objekte in der Reihenfolge sortiert in der sie in der sqlite_master Tabelle angezeigt werden (entspricht der Reihenfolge in der sie angelegt worden sind) - - - - Sort objects (tables, indexes, triggers and views) alphabetically - Objekte alphabetisch sortieren - - - - Display system tables and indexes on the list - Zeige Systemtabellen und Indizes in der Liste an - - - - Table windows - Tabellenfenster - - - When enabled, Table Windows will show up with the data tab, instead of the structure tab. - Wenn die Option aktiviert ist, dann wird im Tabellenfenster der Reiter "Daten" angezeigt statt "Strukturen". - - - - Open Table Windows with the data tab for start - Öffnet das Tabellenfenster mit dem Reiter "Daten" im Vordergrund - - - - View windows - Viewfenster - - - When enabled, View Windows will show up with the data tab, instead of the structure tab. - Wenn die Option aktiviert ist, dann wird im Viewfenster der Reiter "Daten" angezeigt statt "Strukturen". - - - - Open View Windows with the data tab for start - Öffnet das Viewfenster mit dem Reiter "Daten" im Vordergrund - - - - Don't show DDL preview dialog when committing schema changes - - - - - - <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> - - - - - Number of memorized query parameters - - - - - Main window dock areas - Dockingbereiche des Hauptfensters - - - - Left and right areas occupy corners - Linke und rechte Bereiche belegen die Ecken - - - - Top and bottom areas occupy corners - Obere und untere Bereiche belegen die Ecken - - - - Hide built-in plugins - Verberge eingebaute Plugins - - - - Current style: - Aktueller Stil: - - - - Preview - Vorschau - - - - Enabled - Aktiviert - - - - Disabled - Deaktiviert - - - - Active formatter plugin - Aktives Formatierungsplugin - - - - SQL editor font - Schriftart des SQL Editors - - - - Database list font - Schriftart der Datenbankliste - - - - Database list additional label font - Zusätzliche Bezeichnungen in der Datenbankliste - - - - Data view font - Schriftart der Ergebnisansicht - - - - Status field font - Schriftart des Statusfelds - - - - SQL editor colors - Farben des SQL Editors - - - - Current line background - Hintergrundfarbe der aktuellen Zeile - - - - <p>SQL strings are enclosed with single quote characters.</p> - <p>SQL Zeichenketten sind mit einfachen Anführungszeichen umschlossen.</p> - - - - String foreground - Vordergrundfarbe von Zeichenketten - - - - <p>Bind parameters are placeholders for values yet to be provided by the user. They have one of the forms:</p><ul><li>:param_name</li><li>$param_name</li><li>@param_name</li><li>?</li></ul> - <p>Bind Parameter sind Platzhalter für Werte, die der Anwender eingibt. Sie haben dabei eine der folgenden Formen:</p><ul><li>:param_name</li><li>$param_name</li><li>@param_name</li><li>?</li></ul> - - - - Bind parameter foreground - Vordergrundfarbe von Bind Parametern - - - - Highlighted parenthesis background - Hintergrundfarbe von hervorgehobener Klammern - - - - <p>BLOB values are binary values represented as hexadecimal numbers, like:</p><ul><li>X'12B4'</li><li>x'46A2F4'</li></ul> - <p>BLOB Werte sind hexadezimale Werte wie z.B.:</p><ul><li>X'12B4'</li><li>x'46A2F4'</li></ul> - - - - BLOB value foreground - Vordergrundfarbe von BLOB Werten - - - - Regular foreground - Reguläre Vordergrundfarbe - - - - Line numbers area background - Hintergrundfarbe der Zeilennummernleiste - - - - Keyword foreground - Vordergrundfarbe von Schlüsselwörtern - - - - Number foreground - Vordergrundfarbe von Ziffern - - - - Comment foreground - Vordergrundfarbe von Kommentaren - - - - <p>Valid objects are name of tables, indexes, triggers, or views that exist in the SQLite database.</p> - <p>Gültige Objekte sind Namen von Tabellen, Indizes, Triggern oder Views die in der SQLite Datenbank existieren.</p> - - - - Valid objects foreground - Vordergrundfarbe von gültigen Objekten - - - - Data view colors - Farben der Ergebnisansicht - - - - <p>Any data changes will be outlined with this color, until they're committed to the database.</p> - - - - - Uncommitted data outline color - - - - - <p>In case of error while committing data changes, the problematic cell will be outlined with this color.</p> - - - - <p>Any data changes will be outlined with this color, until they're commited to the database.</p> - <p>Jede Datenänderung wird mit dieser Farbe kenntlich gemacht, bis die geänderten Daten in die Datenbank zurückgeschrieben worden sind.</p> - - - Uncommited data outline color - Rahmenfarbe von nicht gespeicherten Daten - - - <p>In case of error while commiting data changes, the problematic cell will be outlined with this color.</p> - <p>Tritt beim Speichern einer Änderung ein Problem auf, dann wird die problematische Zelle mit dieser Farbe markiert.</p> - - - - Commit error outline color - Rahmenfarbe für fehlerhafte Daten - - - - NULL value foreground - Vordergrundfarbe für NULL Werte - - - - Deleted row background - Hintergrundfarbe von gelöschten Zeilen - - - - Database list colors - Farben der Datenbankliste - - - - <p>Additional labels are those which tell you SQLite version, number of objects deeper in the tree, etc.</p> - <p>Zusätzliche Bezeichnungen sind solche, die z.B. die SQLite Version oder die Anzahl an Einträgen in einer Baumliste usw. anzeigen.</p> - - - - Additional labels foreground - Vordergrundfarbe für zusätzliche Bezeichnungen - - - - Status field colors - Farben des Statusfelds - - - - Information message foreground - Vordergrundfarbe für Infomeldungen - - - - Warning message foreground - Vordergrundfarbe für Warnmeldungen - - - - Error message foreground - Vordergrundfarbe für Fehlermeldungen - - - - Description: - plugin details - Bezeichnung: - - - - Category: - plugin details - Kategorie: - - - - Version: - plugin details - Version: - - - - Author: - plugin details - Autor: - - - - Internal name: - plugin details - Interner Name: - - - - Dependencies: - plugin details - Abhängigkeiten: - - - - Conflicts: - plugin details - Konflikte: - - - - Plugin details - Plugin Details - - - - Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. - Plugins werden direkt beim Aktivieren/Deaktivieren geladen bzw. entfernt, die modifizierte Pluginliste wird jedoch erst beim Bestätigen und Schließen des Konfigurationsfensters gespeichert. - - - - %1 (built-in) - plugins manager in configuration dialog - %1 (eingebaut) - - - - Details - Details - - - - No plugins in this category. - Keine Plugins in dieser Kategorie. - - - - Add new data type - Neuen Datentypen zufügen - - - - Rename selected data type - Markierten Datentypen umbenennen - - - - Delete selected data type - Markierten Datentypen löschen - - - - Help for configuring data type editors - Hilfe zur Konfiguration des Datentypen Editors - - - - ConstraintCheckPanel - - - The condition - Der Zustand: - - - - Named constraint: - Benannte Bedingung: - - - - On conflict - Bei Konflikt - - - - Enter a valid condition. - Geben Sie einen gültigen Zustand ein. - - - - Enter a name of the constraint. - Geben Sie einen Namen für die Bedingung ein. - - - - ConstraintDialog - - - New constraint - constraint dialog - Neue Bedingung - - - - Create - constraint dialog - Erstellen - - - - Edit constraint - dialog window - Bedingung editieren - - - - Apply - constraint dialog - Übernehmen - - - - Primary key - table constraints - Primärer Schlüssel - - - - Foreign key - table constraints - Fremdschlüssel - - - - Unique - table constraints - Eindeutigkeit - - - - Not NULL - table constraints - Nicht NULL - - - - Check - table constraints - Prüfung - - - - Collate - table constraints - Kollation - - - - Default - table constraints - Standard - - - - ConstraintTabModel - - - Table - table constraints - Tabelle - - - - Column (%1) - table constraints - Spalte (%1) - - - - Scope - table constraints - Bereich - - - - Type - table constraints - Typ - - - - Details - table constraints - Details - - - - Name - table constraints - Name - - - - CssDebugDialog - - - SQLiteStudio CSS console - SQLiteStudio CSS Konsole - - - - DataView - - - Filter data - data view - Daten filtern - - - - Grid view - Gitteransicht - - - - Form view - Formularansicht - - - - Refresh table data - data view - Aktualisiere Tabellendaten - - - - First page - data view - Erste Seite - - - - Previous page - data view - Vorherige Seite - - - - Next page - data view - Nächste Seite - - - - Last page - data view - Letzte Seite - - - - Filter - - - - - Hit Enter key or press "Apply filter" button on toolbar to apply new value. - - - - - Show filter inputs per column - data view - - - - - Apply filter - data view - Filter anwenden - - - - Commit changes for selected cells - data view - Änderungen für die selektierten Zellen speichern - - - - Rollback changes for selected cells - data view - Änderungen für die selektierten Zellen zurücknehmen - - - - Show grid view of results - sql editor - Zeige Ergebnismenge in der Gitteransicht - - - - Show form view of results - sql editor - Zeige Ergebnismenge in der Formularansicht - - - - Filter by text - data view - Nach Text filtern - - - - Filter by the Regular Expression - data view - Nach regulärem Ausdruck filtern - - - - Filter by SQL expression - data view - Nach einem SQL Ausdruck filtern - - - - Tabs on top - data view - Reiterleiste oben - - - - Tabs at bottom - data view - Reiterleiste unten - - - - Place new rows above selected row - data view - Neue Zeilen über der ausgewählten Zeile einfügen - - - - Place new rows below selected row - data view - Neue Zeilen nach der ausgewählten Zeile einfügen - - - - Place new rows at the end of the data view - data view - Neue Zeilen am Ende des Datenfensters einfügen - - - - Total number of rows is being counted. -Browsing other pages will be possible after the row counting is done. - Gesamtanzahl der Zeilen wird ermittelt. -Das Aufrufen anderer Seiten ist erst nach Abschluss der Zählung möglich. - - - - Row: %1 - Zeile: %1 - - - - DbConverterDialog - - - Convert database - Konvertiere Datenbank - - - - Source database - Quelldatenbank - - - - Source database version: - Version der Quelldatenbank: - - - - Target database - Zieldatenbank - - - - Target version: - Version der Zieldatenbank: - - - - This is the file that will be created as a result of the conversion. - Dies ist die Datei, die durch die Konvertierung erzeut werden wird. - - - - Target file: - Zieldatei: - - - - Name of the new database: - Name der neuen Datenbank: - - - - This is the name that the converted database will be added to SQLiteStudio with. - Mit diesem Namen wird die konvertierte Datenbank SQLiteStudio zugefügt werden. - - - - Select source database - Quelldatenbank auswählen - - - - Enter valid and writable file path. - Geben Sie einen gültigen und beschreibbaren Dateipfad ein. - - - - Entered file exists and will be overwritten. - Die angegebene Datei existiert bereits und wird überschrieben werden. - - - - Enter a not empty, unique name (as in the list of databases on the left). - Geben Sie einen eindeutigen Namen an (so wie links in der Datenbankliste). - - - - No valid target dialect available. Conversion not possible. - Es ist kein gültiger Zieldialekt verfügbar. Die Konvertierung kann nicht durchgeführt werden. - - - - Select valid target dialect. - Wählen Sie einen gültigen Zieldialekt aus. - - - - Database %1 has been successfully converted and now is available under new name: %2 - Datenbank %1 wurde erfolgreich konvertiert und ist verfügbar unter dem neuen Namen: %2 - - - - SQL statements conversion - SQL Statements Konvertierung - - - - Following error occurred while converting SQL statements to the target SQLite version: - Folgender Fehler ist aufgetreten, während der Konvertierung von SQL Statements in die Ziel-SQLite Version: - - - - Would you like to ignore those errors and proceed? - Möchten Sie diese Fehler ignorieren und fortfahren? - - - - DbDialog - - - Database - Datenbank - - - - Database type - Datenbanktyp - - - - Database driver - Datenbanktreiber - - - Generate automatically - Automatisch generieren - - - - Options - Optionen - - - - Permanent (keep it in configuration) - Permanent (in der Konfiguration behalten) - - - - Test connection - Verbindung testen - - - - Create new database file - Neue Datenbank erzeugen - - - - - File - Datei - - - - Name (on the list) - Name (in der Liste) - - - Generate name basing on file path - Leitet den Namen vom Dateipfad ab - - - - <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> - aasfd - <p>Wenn diese Option aktiviert ist, wird die Datenbank in der Konfiguration gespeichert und bei jedem Start von SQLiteStudio wieder hergestellt.</p> - - - - Browse for existing database file on local computer - Lokalen Computer nach Datenbankdateien durchsuchen - - - - Browse - Durchsuchen - - - - Enter an unique database name. - Geben Sie einen eindeutigen Datenbanknamen ein. - - - - This name is already in use. Please enter unique name. - Der Name wird bereits benutzt, bitte geben Sie einen freien, eindeutigen Namen ein. - - - - <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> - - - - - Enter a database file path. - Geben Sie einen Dateipfad für die Datenbank ein. - - - - This database is already on the list under name: %1 - Die Datenbank ist bereits unter folgendem Namen in der Liste enthalten: %1 - - - - Select a database type. - Wählen Sie einen Datebanktypen aus. - - - Auto-generated - Automatisch generiert - - - Type the name - Geben Sie den Namen ein - - - - DbObjectDialogs - - - Delete table - Tabelle löschen - - - - Are you sure you want to delete table %1? - Sind Sie sicher, dass Sie die Tabelle %1 löschen möchten? - - - - Delete index - Index löschen - - - - Are you sure you want to delete index %1? - Sind Sie sicher, dass Sie den Index %1 löschen möchten? - - - - Delete trigger - Trigger löschen - - - - Are you sure you want to delete trigger %1? - Sind Sie sicher, dass Sie den Trigger %1 löschen möchten? - - - - Delete view - View löschen - - - - Are you sure you want to delete view %1? - Sind Sie sicher, dass Sie den View %1 löschen möchten? - - - - - Error while dropping %1: %2 - Fehler beim Löschen: %1 %2 - - - - Delete objects - Objekte löschen - - - - Are you sure you want to delete following objects: -%1 - Sind Sie sicher, dass Sie die folgenden Objekte löschen möchten: -%1 - - - - Cannot start transaction. Details: %1 - Kann Transaktion nicht starten. Details: %1 - - - - Cannot commit transaction. Details: %1 - Kann Transaktion nicht ausführen. Details: %1 - - - - DbTree - - - Databases - Datenbanken - - - - Filter by name - Nach Name filtern - - - - Copy - Kopieren - - - - Paste - Einfügen - - - - Select all - Alles auswählen - - - - Create a group - Gruppe erstellen - - - - Delete the group - Diese Gruppe löschen - - - - Rename the group - Gruppe umbenennen - - - Add a database - Datenbank hinzufügen - - - Edit the database - Datenbank editieren - - - Remove the database - Datenbank entfernen - - - Connect to the database - Mit der Datenbank verbinden - - - Disconnect from the database - Verbindung zur Datenbank trennen - - - - Import - Import - - - Export the database - Datenbank exportieren - - - Convert database type - Datenbanktyp konvertieren - - - Vacuum - ??? - Vakuum - - - Integrity check - Integritätsprüfung - - - Create a table - Tabelle erstellen - - - Edit the table - Tabelle editieren - - - Delete the table - Tabelle löschen - - - - Export the table - Tabelle exportieren - - - - Import into the table - In die Tabelle importieren - - - - Populate table - Tabelle füllen - - - - Create similar table - Erzeuge identische Tabelle - - - - Reset autoincrement sequence - Automatischen Zähler zurücksetzen - - - Create an index - Index erstellen - - - Edit the index - Index editieren - - - Delete the index - Index löschen - - - Create a trigger - Trigger erstellen - - - Edit the trigger - Trigger editieren - - - Delete the trigger - Trigger löschen - - - Create a view - View erstellen - - - Edit the view - View editieren - - - Delete the view - View löschen - - - - Add a column - Spalte zufügen - - - - Edit the column - Spalte editieren - - - - Delete the column - Spalte löschen - - - - Delete selected items - Gewählte Einträge löschen - - - - Clear filter - Filter zurücksetzen - - - Refresh all database schemas - Alle Datenbankschemen aktualisieren - - - Refresh selected database schema - Alle markierten Datenbankschemen aktualisieren - - - - Execution from file cancelled. Any queries executed so far have been rolled back. - - - - - &Add a database - - - - - &Edit the database - - - - - &Remove the database - - - - - &Connect to the database - - - - - &Disconnect from the database - - - - - &Export the database - - - - - Con&vert database type - - - - - Vac&uum - - - - - &Integrity check - - - - - Create a &table - - - - - Edit the t&able - - - - - Delete the ta&ble - - - - - Create an &index - - - - - Edit the i&ndex - - - - - Delete the in&dex - - - - - Create a trig&ger - - - - - Edit the trigg&er - - - - - Delete the trigge&r - - - - - Create a &view - - - - - Edit the v&iew - - - - - Delete the vi&ew - - - - - &Refresh all database schemas - - - - - Re&fresh selected database schema - - - - - - Erase table data - Tabellendaten löschen - - - - Open file's directory - - - - - Execute SQL from file - - - - - - Database - Datenbank - - - - Grouping - Gruppieren - - - - Generate query for table - Abfrage für Tabelle generieren - - - - - Create group - Gruppe erstellen - - - - Group name - Gruppenname - - - - Entry with name %1 already exists in group %2. - Der Eintrag mit Namen %1 existiert bereits in der Gruppe %2. - - - - Delete group - Gruppe löschen - - - - Are you sure you want to delete group %1? -All objects from this group will be moved to parent group. - Sind Sie sicher, dass Sie die Gruppe %1 löschen möchten? -Alle Objekte in dieser Gruppe werden in die übergeordnete Gruppe verschoben. - - - - Are you sure you want to remove database '%1' from the list? - Sind Sie sicher, dass Sie die Datenbank '%1' aus der Liste entfernen möchten? - - - - Are you sure you want to remove following databases from the list: -%1 - Sind Sie sicher, dass Sie folgende Datenbanken aus der Liste entfernen möchten: -%1 - - - - Remove database - Datenbank entfernen - - - - Vacuum (%1) - Vacuum (%1) - - - - Autoincrement value for table '%1' has been reset successfully. - - - - - Are you sure you want to delete all data from table(s): %1? - - - - - Could not execute SQL, because application has failed to start transaction: %1 - - - - - Could not open file '%1' for reading: %2 - Die Datei '%1' kann nicht für Lesezugriffe geöffnet werden: %2 - - - - Could not execute SQL, because application has failed to commit the transaction: %1 - - - - - Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. - - - - - Finished executing %1 queries in %2 seconds. - - - - - Could not execute SQL due to error. - - - - Delete database - Datenbank löschen - - - Are you sure you want to delete database '%1'? - http://bugs.sqlitestudio.pl/?id=3066 changed according to this - Sind Sie sicher, dass Sie die Datenbank '%1' entfernen möchten? - - - - - Cannot import, because no import plugin is loaded. - Der Import kann nicht durchgeführt werden, da kein Import Plugin geladen ist. - - - - - Cannot export, because no export plugin is loaded. - Export fehlgeschlagen, da kein Export Plugins geladen sind. - - - Error while executing VACUUM on the database %1: %2 - Fehler beim Ausführen des VACUUM-Befehls auf die Datenbank %1: %2 - - - VACUUM execution finished successfully. - VACUUM erfolgreich abgeschlossen. - - - - Integrity check (%1) - Integritätsprüfung (%1) - - - - Reset autoincrement - Autoincrement zurücksetzen - - - - Are you sure you want to reset autoincrement value for table '%1'? - Sind Sie sicher, dass Sie den Autoincrement Wert für die Tabelle '%1' zurücksetzen möchten? - - - - An error occurred while trying to reset autoincrement value for table '%1': %2 - Ein Fehler ist aufgetreten beim Zurücksetzen des Autoincrementwertes für die Tabelle '%1': %2 - - - Autoincrement value for table '%1' has been reset successfly. - Autoincrementwert für die Tabelle '%1' wurde erfolgreich zurückgesetzt. - - - Are you sure you want to delete all data from table '%1'? - Sind Sie sicher, dass Sie alle Daten der Tabelle '%1' löschen möchten? - - - - An error occurred while trying to delete data from table '%1': %2 - Beim Löschen der Daten aus Tabelle '%1' ist folgender Fehler aufgetreten: %2 - - - - All data has been deleted for table '%1'. - Es wurden alle Daten aus Tabelle '%1' gelöscht. - - - - Following objects will be deleted: %1. - Folgende Objekte werden gelöscht: %1. - - - - Following databases will be removed from list: %1. - Folgende Datenbanken werden aus der Liste entfernt: %1. - - - - Remainig objects from deleted group will be moved in place where the group used to be. - Die aus der gelöschten Gruppe verbleibenden Objekte werden an die Position der gelöschten Gruppe verschoben. - - - - %1<br><br>Are you sure you want to continue? - %1<br><br>Sind Sie sicher, dass Sie fortfahren möchten? - - - - Delete objects - Objekte löschen - - - - DbTreeItemDelegate - - - error - dbtree labels - Fehler - - - - (system table) - database tree label - (Systemtabelle) - - - - (virtual) - virtual table label - (Virtual) - - - - (system index) - database tree label - (Systemindex) - - - - DbTreeModel - - - Database: %1 - dbtree tooltip - Datenbank: %1 - - - - Version: - dbtree tooltip - Version: - - - - File size: - dbtree tooltip - Dateigröße: - - - - Encoding: - dbtree tooltip - Kodierung: - - - - Error: - dbtree tooltip - Fehlerbeschreibung: - - - - Table : %1 - dbtree tooltip - Tabelle: %1 - - - - Columns (%1): - dbtree tooltip - Spalten (%1): - - - - Indexes (%1): - dbtree tooltip - Indizes (%1): - - - - Triggers (%1): - dbtree tooltip - Trigger (%1): - - - - Copy - Kopieren - - - - Move - Verschieben - - - - Include data - Inklusive Daten - - - - Include indexes - Inklusive Indizes - - - - Include triggers - Inklusive Trigger - - - - Abort - Abbrechen - - - - Could not add dropped database file '%1' automatically. Manual setup is necessary. - - - - - Referenced tables - Referenzierte Tabellen - - - - Do you want to include following referenced tables as well: -%1 - Möchten Sie die folgenden referenzierten Tabellen mit einbeziehen? %1 - - - - Name conflict - Namenskonflikt - - - - Following object already exists in the target database. -Please enter new, unique name, or press '%1' to abort the operation: - Folgende Objekte existieren bereits in der Datenbank. -Bitte geben Sie einen neuen, eindeutigen Namen an oder drücken Sie %1, um den Vorgang abzubrechen: - - - - SQL statements conversion - SQL Statement Konvertierung - - - - Following error occurred while converting SQL statements to the target SQLite version: - Folgender Fehler trat auf bei der Konvertierung von SQL Statements in die SQLite Zielversion: - - - - Would you like to ignore those errors and proceed? - Möchten Sie diese Fehler ignorieren und fortfahren? - - - - DdlHistoryWindow - - - Filter by database: - Nach Datenbank filtern: - - - - -- Queries executed on database %1 (%2) --- Date and time of execution: %3 -%4 - -- Abfragen werden ausgeführt auf Datenbank %1 (%2) --- Datum und Ausführungszeitpunkt: %3 -%4 - - - - DDL history - DDL Verlauf - - - - DdlPreviewDialog - - - Queries to be executed - Auszuführende Abfragen - - - - Don't show again - Nicht wieder anzeigen - - - - DebugConsole - - - SQLiteStudio Debug Console - SQLiteStudio Debug Konsole - - - - EditorWindow - - - Query - Abfrage - - - - History - Verlauf - - - - Results in the separate tab - Ergebnisse in separatem Reiter - - - - Results below the query - Ergebnisse unter der Abfrage - - - - - SQL editor %1 - SQL Editor %1 - - - - Results - Ergebnisse - - - - Execute query - Abfrage ausführen - - - - Explain query - Abfrage ausführen (explain) - - - - Clear execution history - sql editor - Ausführungsverlauf löschen - - - - Export results - sql editor - Ergebnisse exportieren - - - - Create view from query - sql editor - View aus der Abfrage erstellen - - - - Previous database - Vorherige Datenbank - - - - Next database - Nächste Datenbank - - - - Show next tab - sql editor - Nächsten Reiter zeigen - - - - Show previous tab - sql editor - Vorherigen Reiter zeigen - - - - Focus results below - sql editor - Fokus auf die Ergebnisse unten - - - - Focus SQL editor above - sql editor - Fokus auf den SQL Editor oben - - - - Delete selected SQL history entries - sql editor - - - - - Active database (%1/%2) - Aktive Datenbank (%1/%2) - - - - Query finished in %1 second(s). Rows affected: %2 - Abfrage in %1 Sekunde(n) abgeschlossen. %2 Zeile(n) betroffen - - - - Query finished in %1 second(s). - Abfrage in %1 Sekunde(n) abgeschlossen. - - - - Clear execution history - Lösche Ausführungsverlauf - - - - Are you sure you want to erase the entire SQL execution history? This cannot be undone. - Sind Sie sicher, dass Sie den gesamten SQL Ausführungsverlauf löschen möchten? Dieser Vorgang kann nicht rückgängig gemacht werden. - - - - Cannot export, because no export plugin is loaded. - Es kann nicht exportiert werden, da kein Export Plugin geladen ist. - - - - No database selected in the SQL editor. Cannot create a view for unknown database. - Es ist keine Datenbank im SQL Editor selektiert. Für eine unbekannte Datenbank kann kein View erzeugt werden. - - - - Editor window "%1" has uncommitted data. - - - - Editor window "%1" has uncommited data. - Das Editorfenster "%1" hat ungespeicherte Daten. - - - - ErrorsConfirmDialog - - - Errors - Fehler - - - - Following errors occured: - Folgende Fehler sind aufgetreten: - - - - Would you like to proceed? - Möchten Sie fortsetzen? - - - - ExecFromFileDialog - - - Execute SQL from file - - - - - Input file - - - - - Path to file - - - - - Browse for file - - - - - Options - Optionen - - - - File encoding - - - - - Skip failing SQL statements - - - - - SQL scripts (*.sql);;All files (*) - SQL Skripte (*.sql);;Alle Dateien (*) - - - - Execute SQL file - - - - - Please provide file to be executed. - - - - - Provided file does not exist or cannot be read. - - - - - ExportDialog - - - Export - Exportieren - - - - What do you want to export? - Was möchten Sie exportieren? - - - - A database - Eine Datenbank - - - - A single table - Eine einzelne Tabelle - - - - Query results - Abfrageergebnisse - - - - Table to export - Zu exportierende Tabelle - - - - Database - Datenbank - - - - Table - Tabelle - - - - Options - Optionen - - - - When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. - Wenn die Option deaktiviert ist, dann wird nur das Tabellen DDL (CREATE TABLE Statement) exportiert. - - - - Export table data - Tabellendaten exportieren - - - - Export table indexes - Tabellenindizes exportieren - - - - Export table triggers - Tabellentrigger exportieren - - - - Note, that exporting table indexes and triggers may be unsupported by some output formats. - Hinweis: Das Exportieren von Tabellen, Indizes und Triggern könnte von einigen Ausgabeformaten nicht unterstützt werden. - - - - Select database objects to export - Wählen Sie die zu exportierenden Datebankobjekte aus - - - - Export data from tables - Daten aus Tabellen exportieren - - - - Select all - Alles auswählen - - - - Deselect all - Auswahl aufheben - - - - - Database: - Datenbank: - - - - Query to export results for - Abfrage deren Ergebnisse exportiert werden sollen - - - - Query to be executed for results: - ??? - Auszuführende Abfrage... : - - - - Export format and options - Exportformat und Optionen - - - - Export format - Exportformat - - - - Output - Ausgabe - - - - Exported file path - ??? - Exportverzeichnis - - - - Clipboard - Zwischenablage - - - - File - Datei - - - - Exported text encoding: - Exportierte Textkodierung: - - - - Export format options - Optionen des Exportformats - - - - Cancel - Abbrechen - - - - - - Select database to export. - Wählen Sie die zu exportierenden Datebank aus. - - - - Select table to export. - Wählen Sie die zu exportierenden Tabellen aus. - - - - Enter valid query to export. - ??? - Geben Sie eine gültige Abfrage für den Export an. - - - - Select at least one object to export. - Wählen Sie ein zu exportierendes Datebankobjekt aus. - - - - You must provide a file name to export to. - Sie müssen einen Namen für die Exportdatei angeben. - - - - Path you provided is an existing directory. You cannot overwrite it. - Das von Ihnen angegebene Verzeichnis existiert bereits. Es kann nicht überschrieben werden. - - - - The directory '%1' does not exist. - Das Verzeichnis '%1' existiert nicht. - - - - The file '%1' exists and will be overwritten. - Die Datei '%1' existiert bereits und wird überschrieben werden. - - - - All files (*) - Alle Dateien (*) - - - - Pick file to export to - Wählen Sie eine Datei aus in die exportiert werden soll - - - - Internal error during export. This is a bug. Please report it. - Es trat ein interner Fehler während des Exportvorgangs auf. Dies ist ein Fehler, bitte melden Sie ihn dem Programmautor. - - - - FileExecErrorsDialog - - - Execution errors - - - - - Following errors were encountered during execution of SQL statements from the file: - - - - - SQL - - - - - Error - Fehler - - - - Statements that were executed successfully were commited. - - - - - Statements that were executed successfully were rolled back. - - - - - FontEdit - - - Choose font - font configuration - Schriftart auswählen - - - - Form - - - Active SQL formatter plugin - Aktives SQL Formatierungsplugin - - - - FormView - - - Commit row - form view - Zeile speichern (Commit) - - - - Rollback row - form view - Zeile rückgängig (Rollback) - - - - First row - form view - Erste Zeile - - - - Previous row - form view - Vorherige Zeile - - - - Next row - form view - Nächste Zeile - - - - Last row - form view - Letzte Zeile - - - - Insert new row - form view - Neue Zeile einfügen - - - - Delete current row - form view - Aktuelle Zeile löschen - - - - FunctionsEditor - - - Filter funtions - Filterfunktionen - - - - Function name: - Funktionsname: - - - - Implementation language: - Implementationssprache: - - - - Type: - Typ: - - - - Input arguments - Eingabeargumente - - - - Undefined - Undefiniert - - - - Databases - Datenbanken - - - - Register in all databases - In allen Datenbanken registrieren - - - - Register in following databases: - In den folgenden Datenbanken registrieren: - - - - Initialization code: - Initialisierungsanweisungen: - - - - - Function implementation code: - Funktionsanweisungen: - - - - Final step implementation code: - Abschlussanweisungen: - - - - SQL function editor - SQL Funktionseditor - - - - Commit all function changes - Speichern aller Funktionsänderungen - - - - Rollback all function changes - Zurücknehmen aller Funktionsänderungen - - - - Create new function - Neue Funktion erstellen - - - - Delete selected function - Ausgewählte Funktion löschen - - - - Custom SQL functions manual - Anleitung zu 'Benutzerdefinierte SQL Funktionen' - - - - Add function argument - Funktionsargument zufügen - - - - Rename function argument - Funktionsargument umbenennen - - - - Delete function argument - Funktionsargument löschen - - - - Move function argument up - Funktionsargument hochschieben - - - - Move function argument down - Funktionsargument runterschieben - - - - Scalar - Skalar - - - - Aggregate - Aggregat - - - - Enter a non-empty, unique name of the function. - Geben Sie einen eindeutigen Namen für die Funktion ein. - - - - Pick the implementation language. - Wählen Sie die Sprache aus. - - - - Per step code: - evtl. Einzelschrittanweisung??? (Artur: hört sich gut an) - Einzelschrittanweisung: - - - - Enter a non-empty implementation code. - Geben Sie die Anweisungen ein. - - - - argument - new function argument name in function editor window - Argument - - - - Functions editor window has uncommitted modifications. - - - - Functions editor window has uncommited modifications. - Der Editorfür Funktionen enthält nicht gespeicherte Änderungen. - - - - ImportDialog - - - Import data - Daten importieren - - - - Table to import to - Tabelle in die importiert werden soll - - - - Table - Tabelle - - - - Database - Datenbank - - - - Data source to import from - Datenquelle von der aus importiert werden soll - - - - Data source type - Datenquellentyp - - - - Options - Optionen - - - - Input file: - Eingabedatei: - - - - Text encoding: - Textkodierung: - - - - <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> - <p>Wenn diese Option aktiviert ist, wird jede Verletzung von Bedingungen oder ein ungültiges Datenformat (falsche Anzahl an Spalten) oder jedes andere Problem, das während des Imports auftritt, ignoriert und der Import wird fortgesetzt.</p> - - - - Ignore errors - Fehler ignorieren - - - - Data source options - Datenquellenoptionen - - - - Cancel - Abbrechen - - - - If you type table name that doesn't exist, it will be created. - Wenn Sie einen Tabellenname eingeben, der noch nicht existiert, dann wird diese neue Tabelle erzeugt werden. - - - - Enter the table name - Datenbankname eingeben - - - - Select import plugin. - Importplugin auswählen - - - - You must provide a file to import from. - Sie müssen den Namen der Importdatei angeben. - - - - The file '%1' does not exist. - Die Datei '%1' existiert nicht. - - - - Path you provided is a directory. A regular file is required. - Der von Ihnen angegebene Pfad ist ein Verzeichnis. Es wird jedoch eine Datei benötigt. - - - - Pick file to import from - Wählen Sie eine Datei aus von der importiert werden soll. - - - - IndexDialog - - - - Index - Index - - - - On table: - Auf Tabelle: - - - - Index name: - Indexname: - - - - Partial index condition - Partieller Indexzustand - - - - Unique index - Einzigartiger Index - - - - Column - Spalte - - - - Collation - Kollation - - - - Sort - Sortierung - - - - Delete selected indexed expression - - - - - Moves selected index column up in the order, making it more significant in the index. - - - - - Moves selected index column down in the order, making it less significant in the index. - - - - - Edit selected indexed expression - - - - - Add indexed expression - - - - - DDL - DDL - - - - Tried to open index dialog for closed or inexisting database. - Es wurde versucht den Index-Dialog für eine geschlossene oder nicht existente Datenbank zu öffnen. - - - - Could not process index %1 correctly. Unable to open an index dialog. - Der Index %1 kann nicht vollständig bearbeitet werden, da der Index-Dialog nicht geöffnet werden kann. - - - - Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. - - - - - Pick the table for the index. - Tabelle für den Index auswählen. - - - - Select at least one column. - Mindestens eine Spalte auswählen. - - - - Enter a valid condition. - Geben Sie einen gültigen Zustand ein. - - - - default - index dialog - Standard - - - - Sort order - table constraints - Sortierung - - - - - Error - index dialog - Fehler - - - - Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? - Der eindeutige Index kann nicht erzeigt werden, da Werte in den selektierten Spalten nicht eundeutig sind. Möchten Sie die zugehörige SELECT Abfrage ausführen, um die uneindeutigen Werte zu sehen? - - - - An error occurred while executing SQL statements: -%1 - Fehler beim Ausführen des folgenden SQL Statments: -%1 - - - - IndexExprColumnDialog - - - Indexed expression - - - - - Expression to index - - - - - This expression is already indexed by the index. - - - - - Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. - - - - - Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. - - - - - It's forbidden to use 'SELECT' statements in indexed expressions. - - - - - Enter an indexed expression. - - - - - Invalid expression. - - - - - LanguageDialog - - - Language - Sprache - - - - Please choose language: - Bitte Sprache auswählen: - - - - MainWindow - - - Database toolbar - Datenbankleiste - - - - Structure toolbar - Bearbeitungsleiste - - - - Tools - Werkzeuge - - - - Window list - Fensterliste - - - - View toolbar - Ansichtenleiste - - - - Configuration widgets - Konfigurationshelfer - - - - Syntax highlighting engines - Syntaxhervorhebungen - - - - Data editors - Dateneditoren - - - - Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. - Ablauf im Debugmodus. Zum Öffnen der Debugkonsole drücken Sie %1 oder wählen Menü 'Hilfe' den Eintrag 'Debugkonsole öffnen' aus. - - - - Running in debug mode. Debug messages are printed to the standard output. - Ablauf im Debugmodus. Debugmeldungen werden in der Standardausgabe angezeigt.. - - - - You need to restart application to make the language change take effect. - Das Programm muss neu gestartet werden, damit die Änderung der Sprache wirksam wird. - - - Open SQL editor - SQL Editor öffnen - - - Open DDL history - DDL Verlauf öffnen - - - Open collations editor - Editor für Kollationen öffnen - - - Import - Importieren - - - Export - Exportieren - - - Open configuration dialog - Einstellungen - - - Tile windows - Alle Fenster aufteilen - - - Tile windows horizontally - Alle Fenster horizontal aufteilen - - - Tile windows vertically - Alle Fenster vertikal aufteilen - - - Cascade windows - Alle Fenster kaskadiert aufteilen - - - - Next window - Nächstes Fenster - - - - Previous window - Vorheriges Fenster - - - - Hide status field - Statusfeld verbergen - - - Close selected window - Ausgewähltes Fenster schließen - - - Close all windows but selected - Alle anderen Fenster schließen - - - Close all windows - Alle Fenster schließen - - - Restore recently closed window - Zuletzt geöffnetes Fenster wiederherstellen - - - Rename selected window - Ausgewähltes Fenster umbenennen - - - - Open Debug Console - Debug Konsole öffnen - - - - Open CSS Console - CSS Konsole öffnen - - - Report a bug - Fehler melden - - - Propose a new feature - Eine neue Programmfunktion vorschlagen - - - About - Über SQLiteStudio - - - Licenses - Lizenzen - - - Open home page - Homepage aufrufen - - - Open forum page - Forum aufrufen - - - User Manual - Bedienungsanleitung - - - SQLite documentation - SQLite Dokumentation - - - Report history - Verlauf gemeldeter Fehler - - - Check for updates - Auf Updates prüfen - - - Database - menubar - Datenbank - - - Structure - menubar - Struktur - - - View - menubar - Ansicht - - - - Window list - menubar view menu - Fensterliste - - - Tools - menubar - Werkzeuge - - - Help - Hilfe - - - - Open SQL &editor - - - - - Open DDL &history - - - - - Open SQL &functions editor - - - - - Open &collations editor - - - - - Open ex&tension manager - - - - - &Import - - - - - E&xport - - - - - Open confi&guration dialog - - - - - &Tile windows - - - - - Tile windows &horizontally - - - - - Tile windows &vertically - - - - - &Cascade windows - - - - - Close selected &window - - - - - Close all windows &but selected - - - - - Close &all windows - - - - - Re&store recently closed window - - - - - &Rename selected window - - - - - Report a &bug - - - - - Propose a new &feature - - - - - &About - - - - - &Licenses - - - - - Open home &page - - - - - Open fo&rum page - - - - - User &Manual - - - - - SQLite &documentation - - - - - Bugs and feature &requests - - - - - Check for &updates - - - - - &Database - menubar - - - - - &Structure - menubar - - - - - &View - menubar - - - - - &Tools - menubar - - - - - &Help - - - - - Could not set style: %1 - main window - Der folgende Stil kann nicht gesetzt werden: %1 - - - - Cannot export, because no export plugin is loaded. - Es kann nicht exportiert werden, da kein Export Plugin geladen ist. - - - - Cannot import, because no import plugin is loaded. - Es kann nicht importiert werden, da kein Import Plugin geladen ist. - - - - Rename window - Fenster umbenennen - - - - Enter new name for the window: - Neuen Namen für das Fenster eingeben: - - - - New updates are available. <a href="%1">Click here for details</a>. - Neues Update verfügbar. <a href="%1">Weitere Details</a>. - - - - You're running the most recent version. No updates are available. - Sie haben bereits die aktuellste Version. Keine Update verfügbar. - - - - Database passed in command line parameters (%1) was already on the list under name: %2 - Die Datenbank, die mittels Programmparameter übergeben wurde (%1), war bereits in der Liste unter dem Namen %2 vorhanden. - - - - Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 - Die Datenbank, die mittels Programmparameter übergeben wurde (%1), wurde in der Liste termporär unter dem Namen %2 zugefügt. - - - - Could not add database %1 to list. - Die Datenbank %1 konnte nicht hinzugefügt werden. - - - - MdiWindow - - Uncommited changes - Nicht gespeicherte Änderungen - - - - Uncommitted changes - - - - - Close anyway - Trotzdem schließen - - - - Don't close - Nicht schließen - - - - MultiEditor - - - Null value - multieditor - NULL Wert - - - - Configure editors for this data type - Konfigurationseditoren für diesen Datentyp - - - - Open another tab - - - - - Data editor plugin '%1' not loaded, while it is defined for editing '%1' data type. - Das Dateneditor Plugin '%1' ist nicht geladen, obwohl es für den '%1' Datentypen als Editor definiert ist. - - - - Deleted - multieditor - Gelöscht - - - - Read only - multieditor - Nur lesend - - - - MultiEditorBool - - Boolean - Boolean - - - - MultiEditorBoolPlugin - - - Boolean - Boolean - - - - MultiEditorDate - - Date - Datum - - - - MultiEditorDatePlugin - - - Date - Datum - - - - MultiEditorDateTime - - Date & time - Datum & Zeit - - - - MultiEditorDateTimePlugin - - - Date & time - Datum & Zeit - - - - MultiEditorHex - - Hex - Hexadezimal - - - - MultiEditorHexPlugin - - - Hex - Hexadezimal - - - - MultiEditorNumeric - - Number - numeric multi editor tab name - Nummer - - - - MultiEditorNumericPlugin - - - Number - numeric multi editor tab name - Nummer - - - - MultiEditorText - - Text - Text - - - - Tab changes focus - Hier fehlt mir der Kontext... Nacharbeiten nötig. - Reiter Änderungen Fokus - - - - Cut - Ausschneiden - - - - Copy - Kopieren - - - - Paste - Einfügen - - - - Delete - Löschen - - - - Undo - Rückgängig - - - - Redo - Wiederholen - - - - MultiEditorTextPlugin - - - Text - Text - - - - MultiEditorTime - - Time - Zeit - - - - MultiEditorTimePlugin - - - Time - Zeit - - - - NewConstraintDialog - - - New constraint - Neue Bedingung - - - - - Primary Key - new constraint dialog - Primärschlüssel - - - - - Foreign Key - new constraint dialog - Fremdschlüssel - - - - - Unique - new constraint dialog - Einzigartig - - - - - Check - new constraint dialog - Prüfung - - - - Not NULL - new constraint dialog - Nicht NULL - - - - Collate - new constraint dialog - Kollation - - - - Default - new constraint dialog - Standard - - - - NewVersionDialog - - - SQLiteStudio updates - SQLiteStudio Updates - - - - New updates are available! - Neues Update verfügbar! - - - - Component - Komponente - - - - This application will be closed and the update installer will start to download and install all the updates. - - - - Current version - Derzeitige Version - - - - Update version - Neue Version - - - - Check for updates on startup - Beim Programmstart auf Updates prüfen - - - - Update to new version! - Auf neue Version aktualisieren! - - - The update will be automatically downloaded and installed. This will also restart application at the end. - Das Update wird automatisch heruntergeladen und installiert. Die Anwendung wird daraufhin neugestartet. - - - - Not now. - Nicht jetzt. - - - - Don't install the update and close this window. - Update nicht installieren und Fenster schließen. - - - - PopulateConfigDialog - - - Populating configuration - Konfiguration auffüllen - - - - Configuring <b>%1</b> for column <b>%2</b> - Konfiguriere <b>%1</b> für Spalte <b>%2</b> - - - - PopulateDialog - - - Populate table - Tabelle füllen - - - - Database - Datenbank - - - - Table - Tabelle - - - - Columns - Spalten - - - - Number of rows to populate: - Anzahl an Datenzeilen zum Auffüllen: - - - - Populate - populate dialog button - Füllen - - - - Abort - Abbrechen - - - - Configure - Konfigurieren - - - - Populating configuration for this column is invalid or incomplete. - Die Konfigurationsauffüllung für diese Spalte ist ungültig oder unvollständig. - - - - Select database with table to populate - Wählen Sie die Datebank und Tabelle zum Auffüllen aus - - - - Select table to populate - Wählen Sie die Tabelle zum Auffüllen aus - - - - You have to select at least one column. - Sie müssen mindestens eine Spalte auswählen. - - - - QObject - - - Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). - Spalten, die das Ergebnis von verbundenen %1 Abfragen sind (solche, die %2, %3 oder %4 Schlüsselwörter enthalten), können nicht editiert werden. - - - - The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. - Der Ausführungsmechanismus hat Probleme die ROWID korrekt zu extrahieren. Dies könnte ein Programmfehler sein, den Sie evtl. melden möchten. - - - - Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. - Die betreffende Spalte ist das Ergebnis eines SQL-Ausdrucks statt einer einfachen Spaltenselektion. Solche Spalten können nicht editiert werden. - - - - Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. - Die betreffende Spalte gehört zu einer eingeschränkten SQLite Tabelle. Solche Tabellen können nicht direkt editiert werden. - - - - Cannot edit results of query other than %1. - Es können keine Ergebnisse von einer von %1 abweichenden Abfrage editiert werden. - - - - Cannot edit columns that are result of aggregated %1 statements. - Es können keine Spalten editiert werden, die das Ergebnis einer aggregierten %1 Abfrage sind. - - - - Cannot edit columns that are result of %1 statement. - Es können keine Spalten editiert werden, die das Ergebnis von %1 Abfragen sind. - - - - Cannot edit columns that are result of common table expression statement (%1). - Es können keine Spalten editiert werden, die das Ergebnis von allgemeinen Tabellenausdrücken sind (%1). - - - - - - - on conflict: %1 - data view tooltip - Bei Konfikt: %1 - - - - references table %1, column %2 - data view tooltip - Referenztabelle %1, Zeile %2 - - - - condition: %1 - data view tooltip - Zustand: %1 - - - - collation name: %1 - data view tooltip - Name der Kollation: %1 - - - - Data grid view - Ergebnisansicht - - - - Copy cell(s) contents to clipboard - Kopiert Zelleninhalt(e) in die Zwischenablage - - - - Copy cell(s) contents together with header to clipboard - - - - - Paste cell(s) contents from clipboard - Fügt Zelleninhalt(e) von der Zwischenablage ein - - - - Set empty value to selected cell(s) - Fügt einen leeren Wert in die selektierte(n) Zelle(n) ein - - - - Set NULL value to selected cell(s) - Fügt den NULL Wert in die selektierte(n) Zelle(n) ein - - - - Commit changes to cell(s) contents - Änderungen der Zellenninhalte speichern - - - - Rollback changes to cell(s) contents - Änderungen der Zelleninhalte zurücknehmen - - - - Delete selected data row - Markierte Datenzeile löschen - - - - Insert new data row - Neue Datenzeile einfügen - - - - Open contents of selected cell in a separate editor - Inhalt der markierten Zelle im separaten Editor öffnen - - - - Total pages available: %1 - Verfügbare Gesamtseiten: %1 - - - - Total rows loaded: %1 - Insgesamt geladene Zeilen: %1 - - - - Data view (both grid and form) - Ergebnisansicht (tabellarisch und Formular) - - - - Refresh data - Daten aktualisieren - - - - Switch to grid view of the data - Zur tabellarischen Ergebnisansicht wechseln - - - - Switch to form view of the data - Zur Formularansicht wechseln - - - - Database list - Liste der Datenbanken - - - - Delete selected item - Gewählten Eintrag löschen - - - - Clear filter contents - Filter zurücksetzen - - - - Refresh schema - Schema aktualisieren - - - - Refresh all schemas - Alle Schemas aktualisieren - - - - Add database - Datenbank hinzufügen - - - - Select all items - Alles auswählen - - - - Copy selected item(s) - Gewählte Einträge kopieren - - - - - - Paste from clipboard - Von der Zwischenablage einfügen - - - - Tables - Tabellen - - - - Indexes - Indizes - - - - Triggers - Trigger - - - - Views - Views - - - - Columns - Spalten - - - - Data form view - Formularansicht der Ergebnisse - - - - Commit changes for current row - Änderungen der aktuellen Zeile speichern - - - - Rollback changes for current row - Änderungen der aktuellen Zeile zurücknehmen - - - - Go to first row on current page - Springe zur ersten Zeile dieser Seite - - - - Go to next row - Springe zur nächsten Zeile - - - - Go to previous row - Springe zur vorherigen Zeile - - - - Go to last row on current page - Springe zur letzten Zeile dieser Seite - - - - Insert new row - Neue Zeile einfügen - - - - Delete current row - Derzeitige Zeile löschen - - - - Main window - Hauptfenster - - - - Open SQL editor - SQL Editor öffnen - - - - Previous window - Vorheriges Fenster - - - - Next window - Nächstes Fenster - - - - Hide status area - Statusfeld verbergen - - - - Open configuration dialog - Konfigurationsdialog öffnen - - - - Open Debug Console - Debug Konsole öffnen - - - - Open CSS Console - CSS Konsole öffnen - - - - Cell text value editor - Editor für Textwerte in Zellen - - - - - Cut selected text - Gewählten Text ausschneiden - - - - - Copy selected text - Gewählten Text kopieren - - - - - Delete selected text - Gewählten Text löschen - - - - - Undo - Rückgängig - - - - - Redo - Wiederholen - - - - SQL editor input field - SQL Editor Eingabefeld - - - - Select whole editor contents - Gesamten Editorinhalt auswählen - - - - Save contents into a file - Inhalte in eine Datei speichern - - - - Load contents from a file - Inhalte aus einer Datei laden - - - - Find in text - Suche im Text - - - - Find next - Nächster Fund - - - - Find previous - Vorheriger Fund - - - - Replace in text - Ersetze im Text - - - - Delete current line - Aktuelle Zeile löschen - - - - Request code assistant - Code-Assistenten anfordern - - - - Format contents - Format-Inhalte - - - - Move selected block of text one line down - Selektierten Textblock eine Zeile nach unten verschieben - - - - Move selected block of text one line up - Selektierten Textblock eine Zeile nach oben verschieben - - - - Copy selected block of text and paste it a line below - Selektierten Textblock kopieren und unterhalb einfügen - - - - Copy selected block of text and paste it a line above - Selektierten Textblock kopieren und oberhalb einfügen - - - - Toggle comment - Kommentar umschalten - - - - All SQLite databases - Alle SQLite Datenbanken - - - - All files - Alle Dateien - - - - - Database file - Datenbankdatei - - - Reports history window - Diese Übersetzung muss noch einmal geprüft werden, wenn ich den Kontext dazu kenne. - Report-Verlaufsfenster - - - Delete selected entry - Gewählten Eintrag löschen - - - - SQL editor window - SQL Editor-Fenster - - - - Execute query - Abfrage ausführen - - - - Execute "%1" query - Abfrage "%1" ausführen - - - - Switch current working database to previous on the list - Wechsel von der aktuellen Datenbank zur vorherigen in der Liste - - - - Switch current working database to next on the list - Wechsel von der aktuellen Datenbank zur nächsten in der Liste - - - - Go to next editor tab - Gehe zum nächsten Editor-Reiter - - - - Go to previous editor tab - Gehe zum vorherigen Editor-Reiter - - - - Move keyboard input focus to the results view below - Tastatureingabe-Fokus in das untere Ergebnisfenster setzen - - - - Move keyboard input focus to the SQL editor above - Tastatureingabe-Fokus in das obere SQL Editorfenster setzen - - - - Delete selected SQL history entries - - - - - Table window - Tabellenfenster - - - - Refresh table structure - Aktualisiere Tabellenstruktur - - - - Add new column - Neue Spalte zufügen - - - - Edit selected column - Gewählte Spalte bearbeiten - - - - Delete selected column - Gewählte Spalte löschen - - - - Export table data - Tabellendaten exportieren - - - - Import data to the table - Daten in die Tabelle importieren - - - - Add new table constraint - Neue Tabellenbedingung zufügen - - - - Edit selected table constraint - Markierte Tabellenbedingung bearbeiten - - - - Delete selected table constraint - Markierte Tabellenbedingung löschen - - - - Refresh table index list - Aktualisiere Tabellenindexliste - - - - Add new index - Neuen Index zufügen - - - - Edit selected index - Gewählten Index bearbeiten - - - - Delete selected index - Gewählten Index löschen - - - - Refresh table trigger list - Aktualisiere Tabellentriggerliste - - - - - Add new trigger - Neuen Trigger zufügen - - - - - Edit selected trigger - Gewählten Trigger bearbeiten - - - - - Delete selected trigger - Gewählten Trigger löschen - - - - - Go to next tab - Springe zum nächsten Reiter - - - - - Go to previous tab - Springe zum vorherigen Reiter - - - - A view window - Neues Fenster zufügen - - - - Refresh view trigger list - Ggf. View mit Ansicht übersetzen, muss im Kontext geklärt werden - Aktualisiere View Triggerliste - - - - QuitConfirmDialog - - Uncommited changes - Nicht gespeicherte Änderungen - - - - Uncommitted changes - - - - - Are you sure you want to quit the application? - -Following items are pending: - Sind Sie sicher, dass Sie das Programm beenden wollen? - -Folgende Punkte sind unerledigt: - - - - SearchTextDialog - - - Find or replace - Ggf. Suchen statt Finden? - Finden oder Ersetzen - - - - Find: - Finden: - - - - Case sensitive - Groß- und Kleinschreibung beachten - - - - Search backwards - Suche rückwärts - - - - Regular expression matching - Prüfung nach regulärem Ausdruck - - - - Replace && -find next - Ersetzen && weitersuchen - - - - Replace with: - Ersetzen mit: - - - - Replace all - Alles ersetzen - - - - Find - Finden - - - - SortDialog - - - Sort by columns - Nach Spalten sortiert - - - - - Column - Spalte - - - - - Order - Sortierung - - - - Sort by: %1 - Sortiert nach: %1 - - - - Move column up - Spalte nach oben verschieben - - - - Move column down - Spalte nach unten verschieben - - - - SqlEditor - - - Cut - sql editor - Ausschneiden - - - - Copy - sql editor - Kopieren - - - - Paste - sql editor - Einfügen - - - - Delete - sql editor - Löschen - - - - Select all - sql editor - Alles auswählen - - - - Undo - sql editor - Rückgängig - - - - Redo - sql editor - Wiederholen - - - - Complete - sql editor - Komplett - - - - Format SQL - sql editor - SQL formatieren - - - - Save SQL to file - sql editor - SQL in Datei speichern - - - - Select file to save SQL - sql editor - SQL aus Datei laden - - - - Load SQL from file - sql editor - Zeile löschen - - - - Delete line - sql editor - Zeile löschen - - - - Move block down - sql editor - Block nach unten verschieben - - - - Move block up - sql editor - Block nach oben verschieben - - - - Copy block down - sql editor - Block nach unten kopieren - - - - Copy up down - sql editor - "up down" ??? Muss geklärt werden! - Kopiere auf ab - - - - Find - sql editor - Finden - - - - Find next - sql editor - Nächster Fund - - - - Find previous - sql editor - Vorheriger Fund - - - - Replace - sql editor - Ersetzen - - - - Toggle comment - sql editor - Kommentar umschalten - - - - Saved SQL contents to file: %1 - SQL Inhalte in Datei speichern: %1 - - - - Syntax completion can be used only when a valid database is set for the SQL editor. - Die Funktion Autovervollständigung kann nur genutzt werden, wenn eine gültige Datenbank für den SQL Editor gewählt wurde. - - - - Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. - Der Text im SQL Editor ist sehr groß, daher wurde die Syntaxkontrolle und die farbliche Hervorhebung von Objekten vorübergehend deaktiviert. - - - - Save to file - In Datei speichern - - - - Could not open file '%1' for writing: %2 - Die Datei '%1' kann nicht für Schreibzugriffe geöffnet werden: %2 - - - - SQL scripts (*.sql);;All files (*) - SQL Skripte (*.sql);;Alle Dateien (*) - - - - Open file - Datei öffnen - - - - Could not open file '%1' for reading: %2 - Die Datei '%1' kann nicht für Lesezugriffe geöffnet werden: %2 - - - - Reached the end of document. Hit the find again to restart the search. - Das Dokumentenende wurde erreicht. Drücken Sie 'Nächster Fund', um die Suche am Dokumentenanfang fortzusetzen. - - - - SqlQueryItem - - - Column: - data view tooltip - Spalte: - - - - Data type: - data view - Datentyp: - - - - Table: - data view tooltip - Tabelle: - - - - Constraints: - data view tooltip - Bedingungen: - - - This cell is not editable, because: %1 - Diese Zelle kann nicht editiert werden, weil: %1 - - - - Cannot load the data for a cell that refers to the already closed database. - Es können keine Daten für eine Zelle dargestellt werden, die eine bereits geschlossene Datenbank referenziert. - - - - SqlQueryItemDelegate - - Cannot edit this cell. Details: %2 - Die Zelle kann nicht editiert. Details: %2 - - - - The row is marked for deletion. - Diese Zeile ist zum Löschen markiert. - - - - - - - - Cannot edit this cell. Details: %1 - Die Zelle kann nicht editiert. Details: %1 - - - - - Structure of this table has changed since last data was loaded. Reload the data to proceed. - - - - - Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). - - - - - Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. - - - - - SqlQueryModel - - - - Only one query can be executed simultaneously. - Es kann nur eine Abfrage gleichzeitig ausgeführt werden. - - - Uncommited data - Nicht gespeicherte Daten - - - There are uncommited data changes. Do you want to proceed anyway? All uncommited changes will be lost. - Es gibt ungespeicherte Änderungen. Möchten Sie wirklich fortfahren? Alle Änderungen werden dann verloren gehen. - - - - Cannot commit the data for a cell that refers to the already closed database. - Es können keine Daten für eine Zelle gespeichert werden, die eine bereits geschlossene Datenbank referenziert. - - - - Could not begin transaction on the database. Details: %1 - Es kann keine Transaktion auf der Datenbank gestartet werden. Details: %1 - - - An error occurred while commiting the transaction: %1 - Fehler beim Committen der Transaktion: %1 - - - - An error occurred while rolling back the transaction: %1 - Fehler beim Rollback der Transaktion: %1 - - - - Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. - Es wurde versucht eine nicht editierbare Zelle zu committen (derzeit modifiziert und auf das Commit wartend)! Dies ist ein Fehler den Sie melden sollten. - - - An error occurred while commiting the data: %1 - Fehler beim Committen der Daten: %1 - - - - Uncommitted data - - - - - There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. - - - - - An error occurred while committing the transaction: %1 - - - - - An error occurred while committing the data: %1 - - - - - Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. - - - - - - Error while executing SQL query on database '%1': %2 - Fehler beim Ausführen der SQL-Abfrage auf der Datenbank '%1': %2 - - - - Error while loading query results: %1 - Fehler beim Laden der Abfrageergebnisse: %1 - - - - Insert multiple rows - Mehrere Zeilen einfügen - - - - Number of rows to insert: - Anzahl an Zeilen zum Einfügen: - - - - SqlQueryView - - - Go to referenced row in... - - - - - Copy - Kopieren - - - - Copy as... - Kopieren als... - - - - Paste - Einfügen - - - - Paste as... - Einfügen als... - - - - Set NULL values - NULL Wert setzen - - - - Erase values - Werte löschen - - - - Edit value in editor - Wert im Editor bearbeiten - - - - Commit - Commit - - - - Copy with headers - - - - - Rollback - Rollback - - - - Commit selected cells - Gewählte Zellen speichern - - - - Rollback selected cells - Gewählte Zellen wiederherstellen - - - - Define columns to sort by - Sortierspalten definieren - - - - Remove custom sorting - Benutzerdefinierte Sortierung entfernen - - - - Insert row - Zeile einfügen - - - - Insert multiple rows - Mehrere Zeilen einfügen - - - - Delete selected row - Gewählte Zeile löschen - - - - Show value in a viewer - - - - - Generate query for selected cells - - - - - No items selected to paste clipboard contents to. - Es sind keine Elemente selektiert in die der Inhalt der Zwischenablage eingefügt werden könnte. - - - - Go to referenced row in table '%1' - - - - - table '%1' - - - - - Referenced row (%1) - - - - - Trim pasted text? - - - - - The pasted text contains leading or trailing white space. Trim it automatically? - - - - - Edit value - Werte editieren - - - - SqlTableModel - - Error while commiting new row: %1 - Fehler beim Committen der neuen Zeile: %1 - - - - Error while committing new row: %1 - - - - - Error while deleting row from table %1: %2 - Fehler beim Löschen der Zeile aus Tabelle %1: %2 - - - - SqliteExtensionEditor - - - Filter extensions - - - - - Leave empty to use default function - - - - - Extension file - - - - - Initialization function - - - - - Databases - Datenbanken - - - - Register in all databases - In allen Datenbanken registrieren - - - - Register in following databases: - In den folgenden Datenbanken registrieren: - - - - Extension manager window has uncommitted modifications. - - - - - Extension manager - - - - - Commit all extension changes - - - - - Rollback all extension changes - - - - - Add new extension - - - - - Remove selected extension - - - - - Editing extensions manual - - - - - File with given path does not exist or is not readable. - - - - - Unable to load extension: %1 - - - - - Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. - - - - - Dynamic link libraries (*.dll);;All files (*) - - - - - Shared objects (*.so);;All files (*) - - - - - Dynamic libraries (*.dylib);;All files (*) - - - - - All files (*) - Alle Dateien (*) - - - - Open file - Datei öffnen - - - - StatusField - - - Status - Status - - - - Copy - Kopieren - - - - Clear - Leeren - - - - TableConstraintsModel - - - Type - table constraints - Typ - - - - Details - table constraints - Details - - - - Name - table constraints - Name - - - - TableForeignKeyPanel - - - Foreign table: - Fremde Tabelle: - - - - SQLite 2 does not support foreign keys officially, -but it's okay to use them anyway. - - - - - Columns - Spalten - - - - Local column - - - - - Foreign column - - - - - Reactions - Reaktionen - - - - Deferred foreign key - Verzögerter Fremdschlüssel - - - - Named constraint - Benannte Bedingung - - - - Constraint name - Name der Bedingung - - - - Pick the foreign column. - Wählen Sie die Fremdspalte aus. - - - - Pick the foreign table. - Wählen Sie die Fremdtabelle aus. - - - - Select at least one foreign column. - - - - - Enter a name of the constraint. - Geben Sie einen Namen für die Bedingung ein. - - - - Foreign column - table constraints - - - - - TablePrimaryKeyAndUniquePanel - - - Columns - Spalten - - - - Column - Spalte - - - - Collation - Kollation - - - - Sort - Sortierung - - - - Valid only for a single column with INTEGER data type - - - - - Autoincrement - Automatisch hochzählend - - - - Named constraint - Benannte Bedingung - - - - Constraint name - Name der Bedingung - - - - On conflict - Bei Konflikt - - - - Collate - table constraints - - - - - Sort order - table constraints - Sortierung - - - - Select at least one column. - Mindestens eine Spalte auswählen. - - - - Enter a name of the constraint. - Geben Sie einen Namen für die Bedingung ein. - - - - TableStructureModel - - - Name - table structure columns - Name - - - - Data type - table structure columns - Datentyp - - - - Primary -Key - table structure columns - - - - - Foreign -Key - table structure columns - - - - - Unique - table structure columns - - - - - Check - table structure columns - Prüfung - - - - Not -NULL - table structure columns - - - - - Collate - table structure columns - - - - - Default value - table structure columns - Standardwert - - - - TableWindow - - - Structure - Struktur - - - - Table name: - - - - - - Data - - - - - Constraints - Bedingungen - - - - Indexes - Indizes - - - - Triggers - Trigger - - - - DDL - DDL - - - - Export table - table window - - - - - Import data to table - table window - - - - - Populate table - table window - Tabelle füllen - - - - Refresh structure - table window - - - - - Commit structure changes - table window - - - - - Rollback structure changes - table window - - - - - Add column - table window - - - - - Edit column - table window - - - - - - Delete column - table window - - - - - Move column up - table window - Spalte nach oben verschieben - - - - Move column down - table window - Spalte nach unten verschieben - - - - Create similar table - table window - Erzeuge identische Tabelle - - - - Reset autoincrement value - table window - - - - - Add table constraint - table window - - - - - Edit table constraint - table window - - - - - Delete table constraint - table window - - - - - Move table constraint up - table window - - - - - Move table constraint down - table window - - - - - Add table primary key - table window - - - - - Add table foreign key - table window - - - - - Add table unique constraint - table window - - - - - Add table check constraint - table window - - - - - Refresh index list - table window - - - - - Create index - table window - - - - - Edit index - table window - - - - - Delete index - table window - Index löschen - - - - Refresh trigger list - table window - Trigger Liste aktualisieren - - - - Create trigger - table window - - - - - Edit trigger - table window - - - - - Delete trigger - table window - Trigger löschen - - - - Are you sure you want to delete column '%1'? - table window - - - - - Following problems will take place while modifying the table. -Would you like to proceed? - table window - - - - - Table modification - table window - - - - - Could not load data for table %1. Error details: %2 - - - - - Could not process the %1 table correctly. Unable to open a table window. - - - - - Could not restore window %1, because no database or table was stored in session for this window. - - - - - Could not restore window '%1', because no database or table was stored in session for this window. - - - - - Could not restore window '%1', because database %2 could not be resolved. - - - - - Could not restore window '%1'', because the table %2 doesn't exist in the database %3. - - - - - - New table %1 - - - - - Committed changes for table '%1' successfully. - - - - - Committed changes for table '%1' (named before '%2') successfully. - - - - - Autoincrement value for table '%1' has been reset successfully. - - - - - Uncommitted changes - - - - - There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. -Do you want to commit the structure, or do you want to go back to the structure tab? - - - - - Table window "%1" has uncommitted structure modifications and data. - - - - - Table window "%1" has uncommitted data. - - - - - Table window "%1" has uncommitted structure modifications. - - - - - Could not commit table structure. Error message: %1 - table window - - - - - Reset autoincrement - Autoincrement zurücksetzen - - - - Are you sure you want to reset autoincrement value for table '%1'? - Sind Sie sicher, dass Sie den Autoincrement Wert für die Tabelle '%1' zurücksetzen möchten? - - - - An error occurred while trying to reset autoincrement value for table '%1': %2 - Ein Fehler ist aufgetreten beim Zurücksetzen des Autoincrementwertes für die Tabelle '%1': %2 - - - Autoincrement value for table '%1' has been reset successfly. - Autoincrementwert für die Tabelle '%1' wurde erfolgreich zurückgesetzt. - - - - Empty name - - - - - A blank name for the table is allowed in SQLite, but it is not recommended. -Are you sure you want to create a table with blank name? - - - - - Cannot create a table without at least one column. - - - - - Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. - - - - - Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. - - - - - Are you sure you want to delete table constraint '%1'? - table window - - - - - Delete constraint - table window - Bedingung löschen - - - - Cannot export, because no export plugin is loaded. - - - - - Cannot import, because no import plugin is loaded. - - - - Uncommited changes - Nicht gespeicherte Änderungen - - - - Go back to structure tab - - - - - Commit modifications and browse data. - - - - - Name - table window indexes - Name - - - - Unique - table window indexes - - - - - Columns - table window indexes - Spalten - - - - Partial index condition - table window indexes - Partieller Indexzustand - - - - Name - table window triggers - Name - - - - Event - table window triggers - - - - - Condition - table window triggers - - - - - Details - table window triggers - Details - - - - TriggerColumnsDialog - - - Trigger columns - - - - - Triggering columns: - - - - - Select all - Alles auswählen - - - - Deselect all - Auswahl aufheben - - - - TriggerDialog - - - - Trigger - - - - - On table: - Auf Tabelle: - - - - Action: - - - - - - <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> - - - - - Pre-condition: - - - - - The scope is still not fully supported by the SQLite database. - - - - - Trigger name: - - - - - When: - - - - - List of columns for UPDATE OF action. - - - - - Scope: - - - - - Code: - - - - - Trigger statements to be executed. - - - - - DDL - DDL - - - - On view: - - - - - Could not process trigger %1 correctly. Unable to open a trigger dialog. - - - - - Enter a valid condition. - Geben Sie einen gültigen Zustand ein. - - - - Enter a valid trigger code. - - - - - Error - trigger dialog - Fehler - - - - An error occurred while executing SQL statements: -%1 - Fehler beim Ausführen des folgenden SQL Statments: -%1 - - - - VersionConvertSummaryDialog - - - Database version convert - - - - - Following changes to the SQL statements will be made: - - - - - Before - - - - - After - - - - - ViewWindow - - - Query - Abfrage - - - - View name: - - - - - Output column names - - - - - - Data - - - - - Triggers - Trigger - - - - DDL - DDL - - - - - Could not restore window '%1', because no database or view was stored in session for this window. - - - - - Could not restore window '%1', because database %2 could not be resolved. - - - - - Could not restore window '%1', because database %2 could not be open. - - - - - Could not restore window '%1', because the view %2 doesn't exist in the database %3. - - - - - - New view %1 - - - - - Refresh the view - view window - - - - - Commit the view changes - view window - - - - - Rollback the view changes - view window - - - - - Explicit column names - - - - - Generate output column names automatically basing on result columns of the view. - - - - - Add column - view window - - - - - Edit column - view window - - - - - Delete column - view window - - - - - Move column up - view window - Spalte nach oben verschieben - - - - Move column down - view window - Spalte nach unten verschieben - - - - Refresh trigger list - view window - Trigger Liste aktualisieren - - - - Create new trigger - view window - Trigger erstellen - - - - Edit selected trigger - view window - Trigger editieren - - - - Delete selected trigger - view window - Trigger löschen - - - - View window "%1" has uncommitted structure modifications and data. - - - - - View window "%1" has uncommitted data. - - - - - View window "%1" has uncommitted structure modifications. - - - - - Uncommitted changes - - - - - There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. -Do you want to commit the structure, or do you want to go back to the structure tab? - - - - - Committed changes for view '%1' successfully. - - - - - Committed changes for view '%1' (named before '%2') successfully. - - - - - Could not load data for view %1. Error details: %2 - - - - Uncommited changes - Nicht gespeicherte Änderungen - - - - Go back to structure tab - - - - - Commit modifications and browse data. - - - - - Could not commit view changes. Error message: %1 - view window - - - - - Override columns - - - - - Currently defined columns will be overriden. Do you want to continue? - - - - - Could not determinate columns returned from the view. The query is problably incomplete or contains errors. - - - - - Name - view window triggers - Name - - - - Instead of - view window triggers - - - - - Condition - view window triggers - - - - - Details - table window triggers - Details - - - - Could not process the %1 view correctly. Unable to open a view window. - - - - - Empty name - - - - - A blank name for the view is allowed in SQLite, but it is not recommended. -Are you sure you want to create a view with blank name? - - - - - The SELECT statement could not be parsed. Please correct the query and retry. -Details: %1 - - - - - The view could not be modified due to internal SQLiteStudio error. Please report this! - - - - - The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. - - - - - Following problems will take place while modifying the view. -Would you like to proceed? - view window - - - - - View modification - view window - - - - - WidgetCover - - - Interrupt - - - - diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_de_DE.ts b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_de_DE.ts new file mode 100644 index 0000000..de05638 --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_de_DE.ts @@ -0,0 +1,7107 @@ + + + + + AboutDialog + + + About SQLiteStudio and licenses + Über SQLiteStudio und deren Lizenzen + + + + About + Über SQLiteStudio + + + + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + + + + Licenses + Lizenzen + + + + Environment + Programmumgebung + + + + Icon directories + Icon Verzeichnisse + + + + Form directories + Formular Verzeichnisse + + + + SQLite extension directories + SQLite extension directories + + + + Plugin directories + Plugin Verzeichnisse + + + + Configuration directory + Konfigurationsverzeichnis + + + + Application directory + Programmverzeichnis + + + + Qt version: + Qt Version: + + + + SQLite 3 version: + SQLite 3 Version: + + + + Portable distribution. + Portable Version. + + + + MacOS X application bundle distribution. + MacOS X application bundle distribution. + + + + Operating system managed distribution. + Betriebssystemverwaltete Version. + + + + <h3>Table of contents:</h3><ol>%2</ol> + <h3>Inhaltsverzeichnis:</h3><ol>%2</ol> + + + + BindParamsDialog + + + Query parameters + Abfrageparameter + + + + Please provide values for query parameters + Please provide values for query parameters + + + + CodeSnippetEditor + + + Filter snippets + Filter snippets + + + + + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + + + + + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + + + + Snippet name + Snippet name + + + + Code assistant shortcut + Code assistant shortcut + + + + Snippet code + Snippet code + + + + Code Snippets editor window has uncommitted modifications. + Code Snippets editor window has uncommitted modifications. + + + + Code Snippets editor + Code Snippets editor + + + + Commit all snippet changes + Commit all snippet changes + + + + Rollback all snippet changes + Rollback all snippet changes + + + + Create new snippet + Create new snippet + + + + Delete selected snippet + Delete selected snippet + + + + Move the snippet up + Move the snippet up + + + + Move the snippet down + Move the snippet down + + + + Code snippets manual + Code snippets manual + + + + Enter a non-empty, unique name of the snippet. + Enter a non-empty, unique name of the snippet. + + + + Enter a non-empty snippet content. + Enter a non-empty snippet content. + + + + This hotkey is not unique in context of a code assistant. + This hotkey is not unique in context of a code assistant. + + + + CollationsEditor + + + Filter collations + Kollationen filtern + + + + Databases + Datenbanken + + + + Register in all databases + In allen Datenbanken registrieren + + + + Register in following databases: + In den folgenden Datenbanken registrieren: + + + + Implementation code: + Anweisungen: + + + + Collation name: + Kollationsname: + + + + Implementation language: + Sprache: + + + + Collations editor + Editor für Kollationen + + + + Commit all collation changes + Speichern aller Änderungen an Kollationen + + + + Rollback all collation changes + Zurücknehmen aller Änderungen an Kollationen + + + + Create new collation + Neue Kollation erstellen + + + + Delete selected collation + Markierte Kollationen löschen + + + + Editing collations manual + Kollationen manuell editieren + + + + Enter a non-empty, unique name of the collation. + Geben Sie einen eindeutigen Namen für die Kollation ein. + + + + Pick the implementation language. + Wählen Sie die Sprache aus. + + + + Enter a non-empty implementation code. + Geben Sie eine eindeutige Vergleichsoperatorendefinition ein. + + + + Collations editor window has uncommitted modifications. + Collations editor window has uncommitted modifications. + + + + ColorButton + + + Pick a color + Wählen Sie eine Farbe aus + + + + ColumnCollatePanel + + + Collation name: + Name der Kollation: + + + + Named constraint: + Name der Bedingung: + + + + Enter a name of the constraint. + Geben Sie einen Namen für die Bedingung ein. + + + + Enter a collation name. + Geben Sie einen Namen für die Kollation ein. + + + + ColumnDefaultPanel + + + Default value: + Standardwert: + + + + Named constraint: + Benannte Bedingung: + + + + Enter a default value expression. + Geben Sie einen Standardwert an. + + + + Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. + Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. + + + + Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. + Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. + + + + Enter a name of the constraint. + Geben Sie einen Namen für die Bedingung ein. + + + + ColumnDialog + + + Column + Spalte + + + + Name and type + Name und Typ + + + + Scale + Skalierung + + + + Precision + Präzision + + + + Data type: + Datentyp: + + + + Column name: + Spaltenname: + + + + Size: + Größe: + + + + Constraints + Bedingungen + + + + Generated value + Generierter Wert + + + + Unique + Eindeutigkeit + + + + + + + + + + + Configure + Konfigurieren + + + + Foreign Key + Fremdschlüssel + + + + Collate + Kollationieren + + + + Not NULL + Nicht NULL + + + + Check condition + Zustandsprüfung + + + + Primary Key + Primärschlüssel + + + + Default + Standard + + + + Advanced mode + Erweiterter Modus + + + + Add constraint + column dialog + Bedingung hinzufügen + + + + Edit constraint + column dialog + Bedingung editieren + + + + + Delete constraint + column dialog + Bedingung löschen + + + + Move constraint up + column dialog + Bedingung nach oben verschieben + + + + Move constraint down + column dialog + Bedingung nach unten verschieben + + + + Add a primary key + column dialog + Primärschlüssel zufügen + + + + Add a foreign key + column dialog + Fremdschlüssel zufügen + + + + Add an unique constraint + column dialog + Eindeutige Bedingung hinzufügen + + + + Add a check constraint + column dialog + Prüfungsbedingung hinzufügen + + + + Add a not null constraint + column dialog + Nicht-NULL Bedingung hinzufügen + + + + Add a collate constraint + column dialog + Kollationsbedingung hinzufügen + + + + Add a generated value constraint + column dialog + Add a generated value constraint + + + + Add a default constraint + column dialog + Standardbedingung hinzufügen + + + + Are you sure you want to delete constraint '%1'? + column dialog + Sind Sie sicher, dass Sie die folgende Bedingung löschen wollen: '%1'? + + + + Correct the constraint's configuration. + Korrigiert die Konfiguration der Bedingung. + + + + Scale is not allowed for INTEGER PRIMARY KEY columns. + Für INTEGER PRIMARY KEY ist eine Skalierung nicht erlaubt. + + + + Precision cannot be defined without the scale. + Die Präzision kann ohne Skalierung nicht definiert werden. + + + + Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. + Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. + + + + INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. + INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. + + + + Precision is not allowed for INTEGER PRIMARY KEY columns. + Für INTEGER PRIMARY KEY ist eine Präzision nicht erlaubt. + + + + Could not match valid STRICT table datatype from declared type: %1. + Could not match valid STRICT table datatype from declared type: %1. + + + + ColumnDialogConstraintsModel + + + Type + column dialog constraints + Typ + + + + Name + column dialog constraints + Name + + + + Details + column dialog constraints + Details + + + + ColumnForeignKeyPanel + + + Foreign table: + Fremde Tabelle: + + + + Foreign column: + Fremde Spalte: + + + + Reactions + Reaktionen + + + + Deferred foreign key + Verzögerter Fremdschlüssel + + + + Named constraint + Benannte Bedingung + + + + Constraint name + Name der Bedingung + + + + Pick the foreign table. + Wählen Sie die Fremdtabelle aus. + + + + Pick the foreign column. + Wählen Sie die Fremdspalte aus. + + + + Enter a name of the constraint. + Geben Sie einen Namen für die Bedingung ein. + + + + ColumnGeneratedPanel + + + Generating code: + Generating code: + + + + Explicit type: + Explicit type: + + + + Use "GENERATED ALWAYS" keywords + Use "GENERATED ALWAYS" keywords + + + + Named constraint: + Named constraint: + + + + Enter the column value generating expression. + Enter the column value generating expression. + + + + Invalid value generating expression: %1. + Invalid value generating expression: %1. + + + + Invalid value generating expression. + Invalid value generating expression. + + + + Enter a name of the constraint. + Geben Sie einen Namen für die Bedingung ein. + + + + ColumnPrimaryKeyPanel + + + Autoincrement + Automatisch hochzählend + + + + Sort order: + Sortierfolge: + + + + Named constraint: + Benannte Bedingung: + + + + On conflict: + Bei Konflikt: + + + + Enter a name of the constraint. + Geben Sie einen Namen für die Bedingung ein. + + + + Descending order is not allowed with AUTOINCREMENT. + Descending order is not allowed with AUTOINCREMENT. + + + + ColumnUniqueAndNotNullPanel + + + Named constraint: + Benannte Bedingung: + + + + On conflict: + Bei Konflikt: + + + + Enter a name of the constraint. + Geben Sie einen Namen für die Bedingung ein. + + + + CompleterWindow + + + Column: %1 + completer statusbar + Spalte: %1 + + + + Table: %1 + completer statusbar + Tabelle: %1 + + + + Index: %1 + completer statusbar + Index: %1 + + + + Trigger: %1 + completer statusbar + Trigger: %1 + + + + View: %1 + completer statusbar + View: %1 + + + + Database: %1 + completer statusbar + Datenbank: %1 + + + + Keyword: %1 + completer statusbar + Schlüsselwort: %1 + + + + Function: %1 + completer statusbar + Funktion: %1 + + + + Operator: %1 + completer statusbar + Operator: %1 + + + + String + completer statusbar + Zeichenkette + + + + Number + completer statusbar + Nummer + + + + Binary data + completer statusbar + Binäre Daten + + + + Collation: %1 + completer statusbar + Kollation: %1 + + + + Pragma function: %1 + completer statusbar + Pragma Funktion: %1 + + + + Insert a code snippet + Insert a code snippet + + + + ConfigDialog + + + + Configuration + Konfiguration + + + + Search + Suchen + + + + General + Allgemein + + + + Keyboard shortcuts + Tastaturkürzel + + + + Look & feel + Layout + + + + Style + Stil + + + + Fonts + Schriftarten + + + + Code colors + Code colors + + + + + Database list + Liste der Datenbanken + + + + Code assistant + Code assistant + + + + Data browsing + Datenbearbeitung + + + + Data editors + Dateneditoren + + + + Plugins + Erweiterungen + + + + Code formatters + Codeformatierer + + + + If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. + Wenn die Option deaktiviert ist, werden die Spalten in der Reihenfolge sortiert in der sie im CREATE TABLE Statement angegeben wurden. + + + + Sort table columns alphabetically + Tabellenspalten alphabetisch sortieren + + + + Expand tables node when connected to a database + Tabellenknoten aufklappen, wenn eine Datenbank verbunden ist + + + + <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> + <p>Zusätzliche Bezeichnungen sind jene, die neben den Namen der Datenbankliste angezeigt werden (sie sind normalerweise blau gefärbt, es sei denn dies wurde umkonfiguriert). Ist diese Option aktiviert, dann werden diese Bezeichnungen angezeigt für Datenbanken, ungültige Datenbanken und zusammengefasste Knoten (Spalten-, Index- und Triggergruppen). Für mehr Details siehe die folgenden optionen.<p> + + + + Display additional labels on the list + Zeige zusätzliche Bezeichnungen in der Liste an + + + + For regular tables labels will show number of columns, indexes and triggers for each of tables. + Für normale Tabellen enthält die Bezeichnung die Anzahl der Spalten, Indizes und Trigger einer jeden Tabelle. + + + + Display labels for regular tables + Zeigt Bezeichnungen für normale Tabellen an + + + + Virtual tables will be marked with a 'virtual' label. + Virtuelle Tabellen werden mit einem 'virtuell' Kürzel versehen. + + + + Display labels for virtual tables + Zeige Bezeichnungen für virtuelle Tabellen + + + + Expand views node when connected to a database + Knoten aufklappen, wenn eine Datenbank verbunden ist + + + + If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) + Wenn die Option deaktiviert ist, werden die Objekte in der Reihenfolge sortiert in der sie in der sqlite_master Tabelle angezeigt werden (entspricht der Reihenfolge in der sie angelegt worden sind) + + + + Sort objects (tables, indexes, triggers and views) alphabetically + Objekte alphabetisch sortieren + + + + Display system tables and indexes on the list + Zeige Systemtabellen und Indizes in der Liste an + + + + Database dialog window + Dialogfenster der Datenbank + + + + <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> + <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> + + + + Do not mark database to be "permanent" by default + Do not mark database to be "permanent" by default + + + + <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> + <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> + + + + Try to bypass dialog completly when dropping database file onto the list + Try to bypass dialog completly when dropping database file onto the list + + + + Data browsing and editing + Datenbearbeitung + + + + + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + + + + Number of memorized table populating configurations + Number of memorized table populating configurations + + + + Data column width + Data column width + + + + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + + + + Enlarge column when entering value longer than current width + Enlarge column when entering value longer than current width + + + + <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> + <p>Wenn Daten in das Ergebnisfenster eingelesen werden, dann wird die Breite der Spalten dabei automatisch angepasst. Dieser Wert begrenzt maximale Breite für die automatische Breitenanpassung. Der Anwender kann die Spaltenbreite jedoch manuell über dieses Limit verbreitern.</p> + + + + Number of data rows per page: + Anzahl an Datenzeilen pro Seite: + + + + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> + + + + Show column and row details tooltip in data view + Show column and row details tooltip in data view + + + + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + + + + Keep NULL value when entering empty value + Keep NULL value when entering empty value + + + + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> + + + + Use DEFAULT value (if defined), when committing NULL value + Use DEFAULT value (if defined), when committing NULL value + + + + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + + + + Limit number of rows for in case of dozens of columns + Limit number of rows for in case of dozens of columns + + + + Inserting new row in data grid + Neue Zeile im Gitternetz des Datenfensters hinzufügen + + + + Before currently selected row + Vor der derzeitig ausgewählten Zeile + + + + After currently selected row + Nach der derzeitig ausgewählten Zeile + + + + At the end of data view + Am Ende der Datenfensters + + + + Table windows + Tabellenfenster + + + + <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> + <p>Wenn aktiviert, wird der Reiter "Daten" anstelle des Reiters "Struktur" angezeigt beim öffnen eines Tabellenfensters angezeigt.</p> + + + + Open Table Windows with the data tab for start + Öffnet das Tabellenfenster mit dem Reiter "Daten" im Vordergrund + + + + <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> + <p>Wenn aktiviert, wird der Reiter "Daten" als erster Reiter angezeigt für jedes Tabellenfenster, anstelle an zweiter Stelle.</p> + + + + Place data tab as first tab in a Table Window + Den Reiter Daten als ersten Reiter im Tabellenfenster anzeigen + + + + View windows + Viewfenster + + + + <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> + <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> + + + + Open View Windows with the data tab for start + Öffnet das Viewfenster mit dem Reiter "Daten" im Vordergrund + + + + <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> + <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> + + + + Place data tab as first tab in a View Window + Den Reiter Daten als ersten Reiter im View-Fenster anzeigen + + + + Data types + Datentypen + + + + Available editors: + Verfügbare Editoren: + + + + Editors selected for this data type: + Für diesen Datentyp ausgewählte Editoren: + + + + Schema editing + Schema + + + + Number of DDL changes kept in history. + Maximale Anzahl an DDL Änderungen im Verlauf. + + + + DDL history size: + DDL Verlaufsgröße: + + + + Don't show DDL preview dialog when committing schema changes + Don't show DDL preview dialog when committing schema changes + + + + SQL queries + SQL Abfragen + + + + + Number of queries kept in the history. + Maximale Anzahl an SQL Abfragen im Verlauf. + + + + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> + + + + History size: + Verlaufsgröße: + + + + + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> + + + + Execute only the query under the cursor + Führt nur die Abfrage unter dem Cursor aus + + + + Number of memorized query parameters + Number of memorized query parameters + + + + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + + + + Use scientific notation for real numbers in the grid view + Use scientific notation for real numbers in the grid view + + + + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + + + + Limit automatic data column width to (in pixels): + Limit automatic data column width to (in pixels): + + + + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + + + + Keep at least the width to show complete column name + Keep at least the width to show complete column name + + + + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + + + + Wrap lines in SQL editor + Wrap lines in SQL editor + + + + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + + + + Highlight current query + Highlight current query + + + + Updates + Updates + + + + Automatically check for updates at startup + Prüfe vor dem Start automatisch auf Updates + + + + Session + Sitzung + + + + Restore last session (active MDI windows) after startup + Stelle letzte Sitzung nach dem Start wieder her (aktive MDI Fenster) + + + + Allow multiple instances of the application at the same time + Allow multiple instances of the application at the same time + + + + Status Field + Statusfeld + + + + <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> + <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> + + + + Always open Status panel when new message is printed + Den Panel Status immer öffnen, wenn eine neue Meldung ausgegeben wird + + + + Code syntax colors + Code syntax colors + + + + Keyword foreground + Keyword foreground + + + + Regular foreground + Regular foreground + + + + String foreground + String foreground + + + + Comment foreground + Comment foreground + + + + Valid objects foreground + Valid objects foreground + + + + Current query background + Current query background + + + + Bind parameter foreground + Bind parameter foreground + + + + Current line background + Current line background + + + + Matched parenthesis background + Matched parenthesis background + + + + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + + + + Number foreground + Number foreground + + + + BLOB value foreground + BLOB value foreground + + + + Matched parenthesis foreground + Matched parenthesis foreground + + + + Reset to defaults + Reset to defaults + + + + Filter shortcuts by name or key combination + Filtere Tastaturkürzel nach Name oder Tastenkombination + + + + Action + Aktion + + + + Key combination + Tastenkombination + + + + + Language + Sprache + + + + Changing language requires application restart to take effect. + Die Änderung der Sprache erfordert einen Neustart des Programms. + + + + Compact layout + Kompaktes Layout + + + + <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> + <p>Das kompakte Layout reduziert alle Lücken und Abstände der Oberfläche auf ein Minimum, um mehr Platz für die Darstellung der Daten zu schaffen. Die Oberfläche sieht dann zwar nicht mehr sehr ästhetisch aus, aber man hat mehr Daten im Überblick.</p> + + + + Use compact layout + Benutze kompaktes Layout + + + + Main window dock areas + Dockingbereiche des Hauptfensters + + + + Left and right areas occupy corners + Linke und rechte Bereiche belegen die Ecken + + + + Top and bottom areas occupy corners + Obere und untere Bereiche belegen die Ecken + + + + Hide built-in plugins + Verberge eingebaute Plugins + + + + Current style: + Aktueller Stil: + + + + Preview + Vorschau + + + + Enabled + Aktiviert + + + + Disabled + Deaktiviert + + + + Active formatter plugin + Aktives Formatierungsplugin + + + + SQL editor font + Schriftart des SQL Editors + + + + Database list font + Schriftart der Datenbankliste + + + + Database list additional label font + Zusätzliche Bezeichnungen in der Datenbankliste + + + + Data view font + Schriftart der Ergebnisansicht + + + + Status field font + Schriftart des Statusfelds + + + + Code assistant settings + Code assistant settings + + + + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + + + + Automatically trigger the assistant after a dot is typed after an object name + Automatically trigger the assistant after a dot is typed after an object name + + + + Description: + plugin details + Bezeichnung: + + + + Category: + plugin details + Kategorie: + + + + Version: + plugin details + Version: + + + + Author: + plugin details + Autor: + + + + Internal name: + plugin details + Interner Name: + + + + Dependencies: + plugin details + Abhängigkeiten: + + + + Conflicts: + plugin details + Konflikte: + + + + Plugin details + Plugin Details + + + + Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. + Plugins werden direkt beim Aktivieren/Deaktivieren geladen bzw. entfernt, die modifizierte Pluginliste wird jedoch erst beim Bestätigen und Schließen des Konfigurationsfensters gespeichert. + + + + %1 (built-in) + plugins manager in configuration dialog + %1 (eingebaut) + + + + Details + Details + + + + No plugins in this category. + Keine Plugins in dieser Kategorie. + + + + Add new data type + Neuen Datentypen zufügen + + + + Rename selected data type + Markierten Datentypen umbenennen + + + + Delete selected data type + Markierten Datentypen löschen + + + + Help for configuring data type editors + Hilfe zur Konfiguration des Datentypen Editors + + + + Clear hotkey for this action + Clear hotkey for this action + + + + Restore original hotkey for this action + Restore original hotkey for this action + + + + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + + + + ConstraintCheckPanel + + + The condition + Der Zustand: + + + + Named constraint: + Benannte Bedingung: + + + + On conflict + Bei Konflikt + + + + Enter a valid condition. + Geben Sie einen gültigen Zustand ein. + + + + Enter a name of the constraint. + Geben Sie einen Namen für die Bedingung ein. + + + + ConstraintDialog + + + New constraint + constraint dialog + Neue Bedingung + + + + Create + constraint dialog + Erstellen + + + + Edit constraint + dialog window + Bedingung editieren + + + + Apply + constraint dialog + Übernehmen + + + + Primary key + table constraints + Primärer Schlüssel + + + + Foreign key + table constraints + Fremdschlüssel + + + + Unique + table constraints + Eindeutigkeit + + + + Not NULL + table constraints + Nicht NULL + + + + Check + table constraints + Prüfung + + + + Generated + table constraints + Generated + + + + Collate + table constraints + Kollation + + + + Default + table constraints + Standard + + + + ConstraintTabModel + + + Table + table constraints + Tabelle + + + + Column (%1) + table constraints + Spalte (%1) + + + + Scope + table constraints + Bereich + + + + Type + table constraints + Typ + + + + Details + table constraints + Details + + + + Name + table constraints + Name + + + + CssDebugDialog + + + SQLiteStudio CSS console + SQLiteStudio CSS Konsole + + + + DataView + + + Filter data + data view + Daten filtern + + + + Grid view + Gitteransicht + + + + Form view + Formularansicht + + + + Refresh table data + data view + Aktualisiere Tabellendaten + + + + First page + data view + Erste Seite + + + + Previous page + data view + Vorherige Seite + + + + Next page + data view + Nächste Seite + + + + Last page + data view + Letzte Seite + + + + Commit changes for selected cells + data view + Änderungen für die selektierten Zellen speichern + + + + Rollback changes for selected cells + data view + Änderungen für die selektierten Zellen zurücknehmen + + + + Show grid view of results + data view + Zeige Ergebnismenge in der Gitteransicht + + + + Show form view of results + data view + Zeige Ergebnismenge in der Formularansicht + + + + Filter by text (if contains) + data view + Filter by text (if contains) + + + + Filter strictly by text (if equals) + data view + Filter strictly by text (if equals) + + + + Tabs on top + data view + Reiterleiste oben + + + + Tabs at bottom + data view + Reiterleiste unten + + + + Place new rows above selected row + data view + Neue Zeilen über der ausgewählten Zeile einfügen + + + + Place new rows below selected row + data view + Neue Zeilen nach der ausgewählten Zeile einfügen + + + + Place new rows at the end of the data view + data view + Neue Zeilen am Ende des Datenfensters einfügen + + + + Total number of rows is being counted. +Browsing other pages will be possible after the row counting is done. + Gesamtanzahl der Zeilen wird ermittelt. +Das Aufrufen anderer Seiten ist erst nach Abschluss der Zählung möglich. + + + + Row: %1 + Zeile: %1 + + + + Filter + Filter + + + + Hit Enter key or press "Apply filter" button on toolbar to apply new value. + Hit Enter key or press "Apply filter" button on toolbar to apply new value. + + + + Filter by the Regular Expression + data view + Nach regulärem Ausdruck filtern + + + + Filter by SQL expression + data view + Nach einem SQL Ausdruck filtern + + + + Show filter inputs per column + data view + Show filter inputs per column + + + + Apply filter + data view + Filter anwenden + + + + DbDialog + + + Database + Datenbank + + + + Database type + Datenbanktyp + + + + Database driver + Datenbanktreiber + + + + + File + Datei + + + + Name (on the list) + Name (in der Liste) + + + + Options + Optionen + + + + <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> + aasfd + <p>Wenn diese Option aktiviert ist, wird die Datenbank in der Konfiguration gespeichert und bei jedem Start von SQLiteStudio wieder hergestellt.</p> + + + + Permanent (keep it in configuration) + Permanent (in der Konfiguration behalten) + + + + Test connection + Verbindung testen + + + + Select new or existing file on local computer + Select new or existing file on local computer + + + + Browse + Durchsuchen + + + + Database type not selected. + Database type not selected. + + + + Database path not specified. + Database path not specified. + + + + Enter an unique database name. + Geben Sie einen eindeutigen Datenbanknamen ein. + + + + This name is already in use. Please enter unique name. + Der Name wird bereits benutzt, bitte geben Sie einen freien, eindeutigen Namen ein. + + + + <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> + <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> + + + + Enter a database file path. + Geben Sie einen Dateipfad für die Datenbank ein. + + + + This database is already on the list under name: %1 + Die Datenbank ist bereits unter folgendem Namen in der Liste enthalten: %1 + + + + Select a database type. + Wählen Sie einen Datebanktypen aus. + + + + DbObjectDialogs + + + Delete table + Tabelle löschen + + + + Are you sure you want to delete table %1? + Sind Sie sicher, dass Sie die Tabelle %1 löschen möchten? + + + + Delete index + Index löschen + + + + Are you sure you want to delete index %1? + Sind Sie sicher, dass Sie den Index %1 löschen möchten? + + + + Delete trigger + Trigger löschen + + + + Are you sure you want to delete trigger %1? + Sind Sie sicher, dass Sie den Trigger %1 löschen möchten? + + + + Delete view + View löschen + + + + Are you sure you want to delete view %1? + Sind Sie sicher, dass Sie den View %1 löschen möchten? + + + + + Error while dropping %1: %2 + Fehler beim Löschen: %1 %2 + + + + Delete objects + Objekte löschen + + + + Are you sure you want to delete following objects: +%1 + Sind Sie sicher, dass Sie die folgenden Objekte löschen möchten: +%1 + + + + Cannot start transaction. Details: %1 + Kann Transaktion nicht starten. Details: %1 + + + + Cannot commit transaction. Details: %1 + Kann Transaktion nicht ausführen. Details: %1 + + + + DbTree + + + Databases + Datenbanken + + + + Filter by name + Nach Name filtern + + + + Copy + Kopieren + + + + Paste + Einfügen + + + + Select all + Alles auswählen + + + + Create a group + Gruppe erstellen + + + + Delete the group + Diese Gruppe löschen + + + + Rename the group + Gruppe umbenennen + + + + &Add a database + &Datenbank hinzufügen + + + + &Edit the database + Datenbank bearbeiten + + + + &Remove the database + &Datenbank entfernen + + + + &Connect to the database + Verbindung mit der Datenbank + + + + &Disconnect from the database + Verbindung zur &Datenbank trennen + + + + Import + Import + + + + &Export the database + Datenbank &exportieren + + + + Vac&uum + Aufrä&umen + + + + &Integrity check + &Integritätsprüfung + + + + Create a &table + Erstellt eine Tabelle + + + + Edit the t&able + &Table bearbeiten + + + + Delete the ta&ble + Tabelle löschen + + + + Export the table + Tabelle exportieren + + + + Import into the table + In die Tabelle importieren + + + + Populate table + Tabelle füllen + + + + Create similar table + Erzeuge identische Tabelle + + + + Reset autoincrement sequence + Automatischen Zähler zurücksetzen + + + + Create an &index + Neuen Index anlegen + + + + Edit the i&ndex + Bearbeite den I&ndex + + + + Delete the in&dex + Index löschen + + + + Create a trig&ger + Trigger erstellen + + + + Edit the trigg&er + Trigg&er bearbeiten + + + + Delete the trigge&r + Trigger löschen + + + + Create a &view + Ansicht erstellen + + + + Edit the v&iew + V&iew bearbeiten + + + + Delete the vi&ew + Vi&ew löschen + + + + Add a column + Spalte zufügen + + + + Edit the column + Spalte editieren + + + + Delete the column + Spalte löschen + + + + Delete selected items + Gewählte Einträge löschen + + + + Clear filter + Filter zurücksetzen + + + + &Refresh all database schemas + &Alle Datenbankschemen aktualisieren + + + + Re&fresh selected database schema + Alle Datenbankschemen aktualisieren + + + + + Erase table data + Tabellendaten löschen + + + + Open file's directory + Verzeichnis der Datei öffnen + + + + Execute SQL from file + Execute SQL from file + + + + Increase font size + database list + Increase font size + + + + Decrease font size + database list + Decrease font size + + + + + Database + Datenbank + + + + Grouping + Gruppieren + + + + Generate query for table + Abfrage für Tabelle generieren + + + + + Create group + Gruppe erstellen + + + + Group name + Gruppenname + + + + Entry with name %1 already exists in group %2. + Der Eintrag mit Namen %1 existiert bereits in der Gruppe %2. + + + + Delete group + Gruppe löschen + + + + Are you sure you want to delete group %1? +All objects from this group will be moved to parent group. + Sind Sie sicher, dass Sie die Gruppe %1 löschen möchten? +Alle Objekte in dieser Gruppe werden in die übergeordnete Gruppe verschoben. + + + + Are you sure you want to remove database '%1' from the list? + Sind Sie sicher, dass Sie die Datenbank '%1' aus der Liste entfernen möchten? + + + + Are you sure you want to remove following databases from the list: +%1 + Sind Sie sicher, dass Sie folgende Datenbanken aus der Liste entfernen möchten: +%1 + + + + Remove database + Datenbank entfernen + + + + + Cannot import, because no import plugin is loaded. + Der Import kann nicht durchgeführt werden, da kein Import Plugin geladen ist. + + + + + Cannot export, because no export plugin is loaded. + Export fehlgeschlagen, da kein Export Plugins geladen sind. + + + + Vacuum (%1) + Aufräumen (%1) + + + + Integrity check (%1) + Integritätsprüfung (%1) + + + + Reset autoincrement + Autoincrement zurücksetzen + + + + Are you sure you want to reset autoincrement value for table '%1'? + Sind Sie sicher, dass Sie den Autoincrement Wert für die Tabelle '%1' zurücksetzen möchten? + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + Ein Fehler ist aufgetreten beim Zurücksetzen des Autoincrementwertes für die Tabelle '%1': %2 + + + + Autoincrement value for table '%1' has been reset successfully. + Autoincrement value for table '%1' has been reset successfully. + + + + Are you sure you want to delete all data from table(s): %1? + Are you sure you want to delete all data from table(s): %1? + + + + An error occurred while trying to delete data from table '%1': %2 + Beim Löschen der Daten aus Tabelle '%1' ist folgender Fehler aufgetreten: %2 + + + + All data has been deleted for table '%1'. + Es wurden alle Daten aus Tabelle '%1' gelöscht. + + + + Following objects will be deleted: %1. + Folgende Objekte werden gelöscht: %1. + + + + Following databases will be removed from list: %1. + Folgende Datenbanken werden aus der Liste entfernt: %1. + + + + Remainig objects from deleted group will be moved in place where the group used to be. + Die aus der gelöschten Gruppe verbleibenden Objekte werden an die Position der gelöschten Gruppe verschoben. + + + + %1<br><br>Are you sure you want to continue? + %1<br><br>Sind Sie sicher, dass Sie fortfahren möchten? + + + + Delete objects + Objekte löschen + + + + DbTreeItemDelegate + + + error + dbtree labels + Fehler + + + + (system table) + database tree label + (Systemtabelle) + + + + (virtual) + virtual table label + (Virtual) + + + + (system index) + database tree label + (Systemindex) + + + + DbTreeModel + + + Database: %1 + dbtree tooltip + Datenbank: %1 + + + + URI: + dbtree tooltip + URI: + + + + Version: + dbtree tooltip + Version: + + + + File size: + dbtree tooltip + Dateigröße: + + + + Encoding: + dbtree tooltip + Kodierung: + + + + Error: + dbtree tooltip + Fehlerbeschreibung: + + + + Table : %1 + dbtree tooltip + Tabelle: %1 + + + + Columns (%1): + dbtree tooltip + Spalten (%1): + + + + Indexes (%1): + dbtree tooltip + Indizes (%1): + + + + Triggers (%1): + dbtree tooltip + Trigger (%1): + + + + Copy + Kopieren + + + + Move + Verschieben + + + + Include data + Inklusive Daten + + + + Include indexes + Inklusive Indizes + + + + Include triggers + Inklusive Trigger + + + + Abort + Abbrechen + + + + Could not add dropped database file '%1' automatically. Manual setup is necessary. + Could not add dropped database file '%1' automatically. Manual setup is necessary. + + + + Referenced tables + Referenzierte Tabellen + + + + Do you want to include following referenced tables as well: +%1 + Möchten Sie die folgenden referenzierten Tabellen mit einbeziehen? %1 + + + + Name conflict + Namenskonflikt + + + + Following object already exists in the target database. +Please enter new, unique name, or press '%1' to abort the operation: + Folgende Objekte existieren bereits in der Datenbank. +Bitte geben Sie einen neuen, eindeutigen Namen an oder drücken Sie %1, um den Vorgang abzubrechen: + + + + SQL statements conversion + SQL Statement Konvertierung + + + + Following error occurred while converting SQL statements to the target SQLite version: + Folgender Fehler trat auf bei der Konvertierung von SQL Statements in die SQLite Zielversion: + + + + Would you like to ignore those errors and proceed? + Möchten Sie diese Fehler ignorieren und fortfahren? + + + + DdlHistoryWindow + + + Filter by database: + Nach Datenbank filtern: + + + + Clear entire history + Clear entire history + + + + -- Queries executed on database %1 (%2) +-- Date and time of execution: %3 +%4 + -- Abfragen werden ausgeführt auf Datenbank %1 (%2) +-- Datum und Ausführungszeitpunkt: %3 +%4 + + + + Clear history + Clear history + + + + Are you sure you want to erase entire DDL history? + Are you sure you want to erase entire DDL history? + + + + DDL history + DDL Verlauf + + + + DdlPreviewDialog + + + Queries to be executed + Auszuführende Abfragen + + + + Don't show again + Nicht wieder anzeigen + + + + DebugConsole + + + SQLiteStudio Debug Console + SQLiteStudio Debug Konsole + + + + EditorWindow + + + SQL editor + SQL editor + + + + Query + Abfrage + + + + History + Verlauf + + + + Results in the separate tab + Ergebnisse in separatem Reiter + + + + Results below the query + Ergebnisse unter der Abfrage + + + + + SQL editor %1 + SQL Editor %1 + + + + + Results + Ergebnisse + + + + Execute query + Abfrage ausführen + + + + Explain query + Abfrage ausführen (explain) + + + + Clear execution history + sql editor + Ausführungsverlauf löschen + + + + Export results + sql editor + Ergebnisse exportieren + + + + Create view from query + sql editor + View aus der Abfrage erstellen + + + + Previous database + Vorherige Datenbank + + + + Next database + Nächste Datenbank + + + + Show next tab + sql editor + Nächsten Reiter zeigen + + + + Show previous tab + sql editor + Vorherigen Reiter zeigen + + + + Focus results below + sql editor + Fokus auf die Ergebnisse unten + + + + Focus SQL editor above + sql editor + Fokus auf den SQL Editor oben + + + + Delete selected SQL history entries + sql editor + Delete selected SQL history entries + + + + Execute single query under cursor + Execute single query under cursor + + + + Execute all queries in editor + Execute all queries in editor + + + + Active database (%1/%2) + Aktive Datenbank (%1/%2) + + + + Query finished in %1 second(s). Rows affected: %2 + Abfrage in %1 Sekunde(n) abgeschlossen. %2 Zeile(n) betroffen + + + + Query finished in %1 second(s). + Abfrage in %1 Sekunde(n) abgeschlossen. + + + + Clear execution history + Lösche Ausführungsverlauf + + + + Are you sure you want to erase the entire SQL execution history? This cannot be undone. + Sind Sie sicher, dass Sie den gesamten SQL Ausführungsverlauf löschen möchten? Dieser Vorgang kann nicht rückgängig gemacht werden. + + + + Cannot export, because no export plugin is loaded. + Es kann nicht exportiert werden, da kein Export Plugin geladen ist. + + + + No database selected in the SQL editor. Cannot create a view for unknown database. + Es ist keine Datenbank im SQL Editor selektiert. Für eine unbekannte Datenbank kann kein View erzeugt werden. + + + + Editor window "%1" has uncommitted data. + Editor window "%1" has uncommitted data. + + + + ErrorsConfirmDialog + + + Errors + Fehler + + + + Following errors occured: + Folgende Fehler sind aufgetreten: + + + + Would you like to proceed? + Möchten Sie fortsetzen? + + + + ExecFromFileDialog + + + Execute SQL from file + Execute SQL from file + + + + Input file + Eingabedatei + + + + Path to file + Dateipfad + + + + Browse for file + Datei auswählen + + + + Options + Optionen + + + + File encoding + Dateikodierung + + + + Skip failing SQL statements + Skip failing SQL statements + + + + SQL scripts (*.sql);;All files (*) + SQL Skripte (*.sql);;Alle Dateien (*) + + + + Execute SQL file + Execute SQL file + + + + Please provide file to be executed. + Please provide file to be executed. + + + + Provided file does not exist or cannot be read. + Provided file does not exist or cannot be read. + + + + ExportDialog + + + Export + Exportieren + + + + What do you want to export? + Was möchten Sie exportieren? + + + + A database + Eine Datenbank + + + + A single table + Eine einzelne Tabelle + + + + Query results + Abfrageergebnisse + + + + Table to export + Zu exportierende Tabelle + + + + Database + Datenbank + + + + Table + Tabelle + + + + Options + Optionen + + + + When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. + Wenn die Option deaktiviert ist, dann wird nur das Tabellen DDL (CREATE TABLE Statement) exportiert. + + + + Export table data + Tabellendaten exportieren + + + + Export table indexes + Tabellenindizes exportieren + + + + Export table triggers + Tabellentrigger exportieren + + + + Note, that exporting table indexes and triggers may be unsupported by some output formats. + Hinweis: Das Exportieren von Tabellen, Indizes und Triggern könnte von einigen Ausgabeformaten nicht unterstützt werden. + + + + Select database objects to export + Wählen Sie die zu exportierenden Datebankobjekte aus + + + + Export data from tables + Daten aus Tabellen exportieren + + + + Select all + Alles auswählen + + + + Deselect all + Auswahl aufheben + + + + + Database: + Datenbank: + + + + Query to export results for + Abfrage deren Ergebnisse exportiert werden sollen + + + + Query to be executed for results: + Auszuführende Abfrage... : + + + + Export format and options + Exportformat und Optionen + + + + Export format + Exportformat + + + + Output + Ausgabe + + + + Exported file path + Exportverzeichnis + + + + Clipboard + Zwischenablage + + + + File + Datei + + + + Exported text encoding: + Exportierte Textkodierung: + + + + Export format options + Optionen des Exportformats + + + + Cancel + Abbrechen + + + + + + Select database to export. + Wählen Sie die zu exportierenden Datebank aus. + + + + Select table to export. + Wählen Sie die zu exportierenden Tabellen aus. + + + + Enter valid query to export. + Geben Sie eine gültige Abfrage für den Export an. + + + + Select at least one object to export. + Wählen Sie ein zu exportierendes Datebankobjekt aus. + + + + You must provide a file name to export to. + Sie müssen einen Namen für die Exportdatei angeben. + + + + Path you provided is an existing directory. You cannot overwrite it. + Das von Ihnen angegebene Verzeichnis existiert bereits. Es kann nicht überschrieben werden. + + + + The directory '%1' does not exist. + Das Verzeichnis '%1' existiert nicht. + + + + The file '%1' exists and will be overwritten. + Die Datei '%1' existiert bereits und wird überschrieben werden. + + + + All files (*) + Alle Dateien (*) + + + + Pick file to export to + Wählen Sie eine Datei aus in die exportiert werden soll + + + + Internal error during export. This is a bug. Please report it. + Es trat ein interner Fehler während des Exportvorgangs auf. Dies ist ein Fehler, bitte melden Sie ihn dem Programmautor. + + + + FileExecErrorsDialog + + + Execution errors + Execution errors + + + + Following errors were encountered during execution of SQL statements from the file: + Following errors were encountered during execution of SQL statements from the file: + + + + SQL + SQL + + + + Error + Fehler + + + + Statements that were executed successfully were commited. + Statements that were executed successfully were commited. + + + + Statements that were executed successfully were rolled back. + Statements that were executed successfully were rolled back. + + + + FkComboBox + + + Cannot edit this cell. Details: %1 + Die Zelle kann nicht editiert. Details: %1 + + + + FontEdit + + + Choose font + font configuration + Schriftart auswählen + + + + Form + + + Active SQL formatter plugin + Aktives SQL Formatierungsplugin + + + + FormView + + + Commit row + form view + Zeile speichern (Commit) + + + + Rollback row + form view + Zeile rückgängig (Rollback) + + + + First row + form view + Erste Zeile + + + + Previous row + form view + Vorherige Zeile + + + + Next row + form view + Nächste Zeile + + + + Last row + form view + Letzte Zeile + + + + Insert new row + form view + Neue Zeile einfügen + + + + Delete current row + form view + Aktuelle Zeile löschen + + + + FunctionsEditor + + + Filter functions + Filter functions + + + + Input arguments + Eingabeargumente + + + + Undefined + Undefiniert + + + + Databases + Datenbanken + + + + Register in all databases + In allen Datenbanken registrieren + + + + Register in following databases: + In den folgenden Datenbanken registrieren: + + + + Type: + Typ: + + + + Function name: + Funktionsname: + + + + Implementation language: + Implementationssprache: + + + + Deterministic + Deterministic + + + + Initialization code: + Initialisierungsanweisungen: + + + + + Function implementation code: + Funktionsanweisungen: + + + + Final step implementation code: + Abschlussanweisungen: + + + + SQL functions editor + SQL functions editor + + + + Commit all function changes + Speichern aller Funktionsänderungen + + + + Rollback all function changes + Zurücknehmen aller Funktionsänderungen + + + + Create new function + Neue Funktion erstellen + + + + Delete selected function + Ausgewählte Funktion löschen + + + + Custom SQL functions manual + Anleitung zu 'Benutzerdefinierte SQL Funktionen' + + + + Add function argument + Funktionsargument zufügen + + + + Rename function argument + Funktionsargument umbenennen + + + + Delete function argument + Funktionsargument löschen + + + + Move function argument up + Funktionsargument hochschieben + + + + Move function argument down + Funktionsargument runterschieben + + + + Scalar + Skalar + + + + Aggregate + Aggregat + + + + Enter a non-empty, unique name of the function. + Geben Sie einen eindeutigen Namen für die Funktion ein. + + + + Pick the implementation language. + Wählen Sie die Sprache aus. + + + + Per step code: + Einzelschrittanweisung: + + + + Enter a non-empty implementation code. + Geben Sie die Anweisungen ein. + + + + argument + new function argument name in function editor window + Argument + + + + Functions editor window has uncommitted modifications. + Functions editor window has uncommitted modifications. + + + + ImportDialog + + + Import data + Daten importieren + + + + Table to import to + Tabelle in die importiert werden soll + + + + Table + Tabelle + + + + Database + Datenbank + + + + Data source to import from + Datenquelle von der aus importiert werden soll + + + + Data source type + Datenquellentyp + + + + Options + Optionen + + + + Text encoding: + Textkodierung: + + + + Input file: + Eingabedatei: + + + + <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> + <p>Wenn diese Option aktiviert ist, wird jede Verletzung von Bedingungen oder ein ungültiges Datenformat (falsche Anzahl an Spalten) oder jedes andere Problem, das während des Imports auftritt, ignoriert und der Import wird fortgesetzt.</p> + + + + Ignore errors + Fehler ignorieren + + + + Data source options + Datenquellenoptionen + + + + Cancel + Abbrechen + + + + If you type table name that doesn't exist, it will be created. + Wenn Sie einen Tabellenname eingeben, der noch nicht existiert, dann wird diese neue Tabelle erzeugt werden. + + + + Enter the table name + Datenbankname eingeben + + + + Select import plugin. + Importplugin auswählen + + + + You must provide a file to import from. + Sie müssen den Namen der Importdatei angeben. + + + + The file '%1' does not exist. + Die Datei '%1' existiert nicht. + + + + Path you provided is a directory. A regular file is required. + Der von Ihnen angegebene Pfad ist ein Verzeichnis. Es wird jedoch eine Datei benötigt. + + + + Pick file to import from + Wählen Sie eine Datei aus von der importiert werden soll. + + + + IndexDialog + + + + Index + Index + + + + Column + Spalte + + + + Sort + Sortierung + + + + Collation + Kollation + + + + On table: + Auf Tabelle: + + + + Delete selected indexed expression + Delete selected indexed expression + + + + Moves selected index column up in the order, making it more significant in the index. + Moves selected index column up in the order, making it more significant in the index. + + + + Moves selected index column down in the order, making it less significant in the index. + Moves selected index column down in the order, making it less significant in the index. + + + + Partial index condition + Partieller Indexzustand + + + + Unique index + Einzigartiger Index + + + + Index name: + Indexname: + + + + Edit selected indexed expression + Edit selected indexed expression + + + + Add indexed expression + Add indexed expression + + + + DDL + DDL + + + + Tried to open index dialog for closed or inexisting database. + Es wurde versucht den Index-Dialog für eine geschlossene oder nicht existente Datenbank zu öffnen. + + + + Could not process index %1 correctly. Unable to open an index dialog. + Der Index %1 kann nicht vollständig bearbeitet werden, da der Index-Dialog nicht geöffnet werden kann. + + + + Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. + Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. + + + + Pick the table for the index. + Tabelle für den Index auswählen. + + + + Select at least one column. + Mindestens eine Spalte auswählen. + + + + Enter a valid condition. + Geben Sie einen gültigen Zustand ein. + + + + default + index dialog + Standard + + + + Sort order + table constraints + Sortierung + + + + + Error + index dialog + Fehler + + + + Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? + Der eindeutige Index kann nicht erzeigt werden, da Werte in den selektierten Spalten nicht eundeutig sind. Möchten Sie die zugehörige SELECT Abfrage ausführen, um die uneindeutigen Werte zu sehen? + + + + An error occurred while executing SQL statements: +%1 + Fehler beim Ausführen des folgenden SQL Statments: +%1 + + + + IndexExprColumnDialog + + + Indexed expression + Indexed expression + + + + Expression to index + Expression to index + + + + This expression is already indexed by the index. + This expression is already indexed by the index. + + + + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. + + + + Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. + Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. + + + + It's forbidden to use 'SELECT' statements in indexed expressions. + It's forbidden to use 'SELECT' statements in indexed expressions. + + + + Enter an indexed expression. + Enter an indexed expression. + + + + Invalid expression. + Invalid expression. + + + + LanguageDialog + + + Language + Sprache + + + + Please choose language: + Bitte Sprache auswählen: + + + + MainWindow + + + Database toolbar + Datenbankleiste + + + + Structure toolbar + Bearbeitungsleiste + + + + Tools + Werkzeuge + + + + Window list + Fensterliste + + + + View toolbar + Ansichtenleiste + + + + Configuration widgets + Konfigurationshelfer + + + + Syntax highlighting engines + Syntaxhervorhebungen + + + + Data editors + Dateneditoren + + + + Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. + Ablauf im Debugmodus. Zum Öffnen der Debugkonsole drücken Sie %1 oder wählen Menü 'Hilfe' den Eintrag 'Debugkonsole öffnen' aus. + + + + Running in debug mode. Debug messages are printed to the standard output. + Ablauf im Debugmodus. Debugmeldungen werden in der Standardausgabe angezeigt.. + + + + You need to restart application to make the language change take effect. + Das Programm muss neu gestartet werden, damit die Änderung der Sprache wirksam wird. + + + + Open SQL &editor + SQL &Editor öffnen + + + + Open DDL &history + DDL &Verlauf öffnen + + + + Open SQL &functions editor + SQL &Funktionseditor öffnen + + + + Open code &snippets editor + Open code &snippets editor + + + + Open &collations editor + Open &collations editor + + + + Open ex&tension manager + Erwei&terungsmanager öffnen + + + + &Import + &Importieren + + + + E&xport + E&xportieren + + + + Open confi&guration dialog + Open confi&guration dialog + + + + &Tile windows + &Tile windows + + + + Tile windows &horizontally + Tile windows &horizontally + + + + Tile windows &vertically + Tile windows &vertically + + + + &Cascade windows + &Cascade windows + + + + Next window + Nächstes Fenster + + + + Previous window + Vorheriges Fenster + + + + Hide status field + Statusfeld verbergen + + + + Close &all windows + &Alle Fenster schließen + + + + Re&store recently closed window + Re&store recently closed window + + + + Close current &window + Close current &window + + + + Close &other windows + Close &other windows + + + + Close windows on the &left + Close windows on the &left + + + + Close windows on the &right + Close windows on the &right + + + + Re&name selected window + Re&name selected window + + + + Open Debug Console + Debug Konsole öffnen + + + + Open CSS Console + CSS Konsole öffnen + + + + Report a &bug + Report a &bug + + + + D&onate + Spen&den + + + + Propose a new &feature + Propose a new &feature + + + + &About + &About + + + + &Licenses + &Licenses + + + + Open home &page + Open home &page + + + + User &Manual + User &Manual + + + + SQLite &documentation + SQLite &documentation + + + + Bugs and feature &requests + Bugs and feature &requests + + + + Quit + Quit + + + + Check for &updates + Nach Akt&ualisierungen suchen + + + + &Database + menubar + &Datenbank + + + + &Structure + menubar + &Struktur + + + + &View + menubar + &Ansicht + + + + Window list + menubar view menu + Fensterliste + + + + &Tools + menubar + &Werkzeuge + + + + &Help + &Hilfe + + + + Could not set style: %1 + main window + Der folgende Stil kann nicht gesetzt werden: %1 + + + + Cannot export, because no export plugin is loaded. + Es kann nicht exportiert werden, da kein Export Plugin geladen ist. + + + + Cannot import, because no import plugin is loaded. + Es kann nicht importiert werden, da kein Import Plugin geladen ist. + + + + Rename window + Fenster umbenennen + + + + Enter new name for the window: + Neuen Namen für das Fenster eingeben: + + + + New updates are available. <a href="%1">Click here for details</a>. + Neues Update verfügbar. <a href="%1">Weitere Details</a>. + + + + You're running the most recent version. No updates are available. + Sie haben bereits die aktuellste Version. Keine Update verfügbar. + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + Die Datenbank, die mittels Programmparameter übergeben wurde (%1), war bereits in der Liste unter dem Namen %2 vorhanden. + + + + Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 + Die Datenbank, die mittels Programmparameter übergeben wurde (%1), wurde in der Liste termporär unter dem Namen %2 zugefügt. + + + + Could not add database %1 to list. + Die Datenbank %1 konnte nicht hinzugefügt werden. + + + + MdiWindow + + + Uncommitted changes + Nicht übertragene Änderungen + + + + Close anyway + Trotzdem schließen + + + + Don't close + Nicht schließen + + + + MultiEditor + + + Null value + multieditor + NULL Wert + + + + Configure editors for this data type + Konfigurationseditoren für diesen Datentyp + + + + Open another tab + Weiteren Tab öffnen + + + + Foreign Key + Fremdschlüssel + + + + Data editor plugin '%1' not loaded, while it is defined for editing '%2' data type. + Das Dateneditor Plugin '%1' ist nicht geladen, obwohl es für den '%1' Datentypen als Editor definiert ist. {1'?} {2'?} {1' or 2'?} + + + + Deleted + multieditor + Gelöscht + + + + Read only + multieditor + Nur lesend + + + + MultiEditorBoolPlugin + + + Boolean + Boolean + + + + MultiEditorDatePlugin + + + Date + Datum + + + + MultiEditorDateTimePlugin + + + Date & time + Datum & Zeit + + + + MultiEditorHexPlugin + + + Hex + Hexadezimal + + + + MultiEditorNumericPlugin + + + Number + numeric multi editor tab name + Nummer + + + + MultiEditorText + + + Tab changes focus + Reiter Änderungen Fokus + + + + Cut + Ausschneiden + + + + Copy + Kopieren + + + + Paste + Einfügen + + + + Delete + Löschen + + + + Undo + Rückgängig + + + + Redo + Wiederholen + + + + MultiEditorTextPlugin + + + Text + Text + + + + MultiEditorTimePlugin + + + Time + Zeit + + + + NewConstraintDialog + + + New constraint + Neue Bedingung + + + + + Primary Key + new constraint dialog + Primärschlüssel + + + + + Foreign Key + new constraint dialog + Fremdschlüssel + + + + + Unique + new constraint dialog + Einzigartig + + + + + Check + new constraint dialog + Prüfung + + + + Not NULL + new constraint dialog + Nicht NULL + + + + Collate + new constraint dialog + Kollation + + + + Generated + new constraint dialog + Generiert + + + + Default + new constraint dialog + Standard + + + + NewVersionDialog + + + SQLiteStudio updates + SQLiteStudio Updates + + + + New version is available! + Eine neue Version ist verfügbar! + + + + Download new version! + Neue Version herunterladen! + + + + New version package will be downloaded. It will be up to you to install it whenever you're ready. + Das neue Versionspaket wird heruntergeladen. Es liegt an Ihnen, es zu installieren, wenn Sie bereit sind. + + + + Open SQLiteStudio home page. + SQLiteStudio Startseite öffnen. + + + + Read release notes && download package yourself. + Versionshinweise lesen && das Paket selbst herunterladen. + + + + Just close this window. + Nur dieses Fenster schließen. + + + + Check for updates on startup + Beim Programmstart auf Updates prüfen + + + + Not now. + Nicht jetzt. + + + + PopulateConfigDialog + + + Populating configuration + Konfiguration auffüllen + + + + Configuring <b>%1</b> for column <b>%2</b> + Konfiguriere <b>%1</b> für Spalte <b>%2</b> + + + + PopulateDialog + + + Populate table + Tabelle füllen + + + + Database + Datenbank + + + + Table + Tabelle + + + + Columns + Spalten + + + + Number of rows to populate: + Anzahl an Datenzeilen zum Auffüllen: + + + + Populate + populate dialog button + Füllen + + + + Abort + Abbrechen + + + + Configure + Konfigurieren + + + + Populating configuration for this column is invalid or incomplete. + Die Konfigurationsauffüllung für diese Spalte ist ungültig oder unvollständig. + + + + Select database with table to populate + Wählen Sie die Datebank und Tabelle zum Auffüllen aus + + + + Select table to populate + Wählen Sie die Tabelle zum Auffüllen aus + + + + You have to select at least one column. + Sie müssen mindestens eine Spalte auswählen. + + + + QObject + + + Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). + Spalten, die das Ergebnis von verbundenen %1 Abfragen sind (solche, die %2, %3 oder %4 Schlüsselwörter enthalten), können nicht editiert werden. + + + + The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. + Der Ausführungsmechanismus hat Probleme die ROWID korrekt zu extrahieren. Dies könnte ein Programmfehler sein, den Sie evtl. melden möchten. + + + + Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. + Die betreffende Spalte ist das Ergebnis eines SQL-Ausdrucks statt einer einfachen Spaltenselektion. Solche Spalten können nicht editiert werden. + + + + Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. + Die betreffende Spalte gehört zu einer eingeschränkten SQLite Tabelle. Solche Tabellen können nicht direkt editiert werden. + + + + Cannot edit results of query other than %1. + Es können keine Ergebnisse von einer von %1 abweichenden Abfrage editiert werden. + + + + Cannot edit columns that are result of aggregated %1 statements. + Es können keine Spalten editiert werden, die das Ergebnis einer aggregierten %1 Abfrage sind. + + + + Cannot edit columns that are result of %1 statement. + Es können keine Spalten editiert werden, die das Ergebnis von %1 Abfragen sind. + + + + Cannot edit columns that are result of common table expression statement (%1). + Es können keine Spalten editiert werden, die das Ergebnis von allgemeinen Tabellenausdrücken sind (%1). + + + + Cannot edit table generated columns. + Cannot edit table generated columns. + + + + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). + + + + + + + on conflict: %1 + data view tooltip + Bei Konfikt: %1 + + + + references table %1, column %2 + data view tooltip + Referenztabelle %1, Zeile %2 + + + + condition: %1 + data view tooltip + Zustand: %1 + + + + collation name: %1 + data view tooltip + Name der Kollation: %1 + + + + Data grid view + Ergebnisansicht + + + + Edit current cell inline + Edit current cell inline + + + + Copy cell(s) contents to clipboard + Kopiert Zelleninhalt(e) in die Zwischenablage + + + + Copy cell(s) contents together with header to clipboard + Copy cell(s) contents together with header to clipboard + + + + Paste cell(s) contents from clipboard + Fügt Zelleninhalt(e) von der Zwischenablage ein + + + + Set empty value to selected cell(s) + Fügt einen leeren Wert in die selektierte(n) Zelle(n) ein + + + + Set NULL value to selected cell(s) + Fügt den NULL Wert in die selektierte(n) Zelle(n) ein + + + + Commit changes to cell(s) contents + Änderungen der Zellenninhalte speichern + + + + Rollback changes to cell(s) contents + Änderungen der Zelleninhalte zurücknehmen + + + + Delete selected data row + Markierte Datenzeile löschen + + + + Insert new data row + Neue Datenzeile einfügen + + + + Open contents of selected cell in a separate editor + Inhalt der markierten Zelle im separaten Editor öffnen + + + + Toggle the height adjustment of rows + Toggle the height adjustment of rows + + + + Increase font size + data view + Increase font size + + + + Decrease font size + data view + Decrease font size + + + + Total pages available: %1 + Verfügbare Gesamtseiten: %1 + + + + Total rows loaded: %1 + Insgesamt geladene Zeilen: %1 + + + + Data view (both grid and form) + Ergebnisansicht (tabellarisch und Formular) + + + + Refresh data + Daten aktualisieren + + + + Switch to grid view of the data + Zur tabellarischen Ergebnisansicht wechseln + + + + Switch to form view of the data + Zur Formularansicht wechseln + + + + Database list + Liste der Datenbanken + + + + Delete selected item + Gewählten Eintrag löschen + + + + Clear filter contents + Filter zurücksetzen + + + + Refresh schema + Schema aktualisieren + + + + Refresh all schemas + Alle Schemas aktualisieren + + + + Add database + Datenbank hinzufügen + + + + Select all items + Alles auswählen + + + + Copy selected item(s) + Gewählte Einträge kopieren + + + + + + Paste from clipboard + Von der Zwischenablage einfügen + + + + Increase font size + database list + Increase font size + + + + Decrease font size + database list + Decrease font size + + + + Tables + Tabellen + + + + Indexes + Indizes + + + + Triggers + Trigger + + + + Views + Views + + + + Columns + Spalten + + + + Data form view + Formularansicht der Ergebnisse + + + + Commit changes for current row + Änderungen der aktuellen Zeile speichern + + + + Rollback changes for current row + Änderungen der aktuellen Zeile zurücknehmen + + + + Go to first row on current page + Springe zur ersten Zeile dieser Seite + + + + Go to next row + Springe zur nächsten Zeile + + + + Go to previous row + Springe zur vorherigen Zeile + + + + Go to last row on current page + Springe zur letzten Zeile dieser Seite + + + + Insert new row + Neue Zeile einfügen + + + + Delete current row + Derzeitige Zeile löschen + + + + Main window + Hauptfenster + + + + Open SQL editor + SQL Editor öffnen + + + + Open DDL history window + Open DDL history window + + + + Open snippets editor window + Open snippets editor window + + + + Open function editor window + Open function editor window + + + + Open collation editor window + Open collation editor window + + + + Open extension manager window + Open extension manager window + + + + Previous window + Vorheriges Fenster + + + + Next window + Nächstes Fenster + + + + Hide status area + Statusfeld verbergen + + + + Open user manual + Open user manual + + + + Open configuration dialog + Konfigurationsdialog öffnen + + + + Open Debug Console + Debug Konsole öffnen + + + + Open CSS Console + CSS Konsole öffnen + + + + Open the About dialog + Open the About dialog + + + + Quit the application + Quit the application + + + + Cell text value editor + Editor für Textwerte in Zellen + + + + + Cut selected text + Gewählten Text ausschneiden + + + + + Copy selected text + Gewählten Text kopieren + + + + + Delete selected text + Gewählten Text löschen + + + + + Undo + Rückgängig + + + + + Redo + Wiederholen + + + + SQL editor input field + SQL Editor Eingabefeld + + + + Select whole editor contents + Gesamten Editorinhalt auswählen + + + + Save contents into a file + Inhalte in eine Datei speichern + + + + Load contents from a file + Inhalte aus einer Datei laden + + + + Find in text + Suche im Text + + + + Find next + Nächster Fund + + + + Find previous + Vorheriger Fund + + + + Replace in text + Ersetze im Text + + + + Delete current line + Aktuelle Zeile löschen + + + + Request code assistant + Code-Assistenten anfordern + + + + Format contents + Format-Inhalte + + + + Move selected block of text one line down + Selektierten Textblock eine Zeile nach unten verschieben + + + + Move selected block of text one line up + Selektierten Textblock eine Zeile nach oben verschieben + + + + Copy selected block of text and paste it a line below + Selektierten Textblock kopieren und unterhalb einfügen + + + + Copy selected block of text and paste it a line above + Selektierten Textblock kopieren und oberhalb einfügen + + + + Toggle comment + Kommentar umschalten + + + + Increase font size + sql editor + Increase font size + + + + Decrease font size + sql editor + Decrease font size + + + + All SQLite databases + Alle SQLite Datenbanken + + + + All files + Alle Dateien + + + + Select database file + Select database file + + + + Select + Select + + + + File type + File type + + + + SQL editor window + SQL Editor-Fenster + + + + Execute query + Abfrage ausführen + + + + Execute single query under cursor + Execute single query under cursor + + + + Execute all queries in editor + Execute all queries in editor + + + + Execute "%1" query + Abfrage "%1" ausführen + + + + Switch current working database to previous on the list + Wechsel von der aktuellen Datenbank zur vorherigen in der Liste + + + + Switch current working database to next on the list + Wechsel von der aktuellen Datenbank zur nächsten in der Liste + + + + Go to next editor tab + Gehe zum nächsten Editor-Reiter + + + + Go to previous editor tab + Gehe zum vorherigen Editor-Reiter + + + + Move keyboard input focus to the results view below + Tastatureingabe-Fokus in das untere Ergebnisfenster setzen + + + + Move keyboard input focus to the SQL editor above + Tastatureingabe-Fokus in das obere SQL Editorfenster setzen + + + + Delete selected SQL history entries + Delete selected SQL history entries + + + + Table window + Tabellenfenster + + + + Commit the table structure + Commit the table structure + + + + Rollback pending changes in the table structure + Rollback pending changes in the table structure + + + + Refresh table structure + Aktualisiere Tabellenstruktur + + + + Add new column + Neue Spalte zufügen + + + + Edit selected column + Gewählte Spalte bearbeiten + + + + Delete selected column + Gewählte Spalte löschen + + + + Export table data + Tabellendaten exportieren + + + + Import data to the table + Daten in die Tabelle importieren + + + + Add new table constraint + Neue Tabellenbedingung zufügen + + + + Edit selected table constraint + Markierte Tabellenbedingung bearbeiten + + + + Delete selected table constraint + Markierte Tabellenbedingung löschen + + + + Refresh table index list + Aktualisiere Tabellenindexliste + + + + Add new index + Neuen Index zufügen + + + + Edit selected index + Gewählten Index bearbeiten + + + + Delete selected index + Gewählten Index löschen + + + + Refresh table trigger list + Aktualisiere Tabellentriggerliste + + + + + Add new trigger + Neuen Trigger zufügen + + + + + Edit selected trigger + Gewählten Trigger bearbeiten + + + + + Delete selected trigger + Gewählten Trigger löschen + + + + + Go to next tab + Springe zum nächsten Reiter + + + + + Go to previous tab + Springe zum vorherigen Reiter + + + + A view window + Neues Fenster zufügen + + + + Commit the view's query + Commit the view's query + + + + Rollback pending changes in the view's query + Rollback pending changes in the view's query + + + + Refresh view trigger list + Aktualisiere View Triggerliste + + + + Execute the view's query + Execute the view's query + + + + A code snippets editor window + A code snippets editor window + + + + + + + Commit the pending changes + Commit the pending changes + + + + + + + Rollback the pending changes + Rollback the pending changes + + + + A collation editor window + A collation editor window + + + + A function editor window + A function editor window + + + + A SQLite extension editor window + A SQLite extension editor window + + + + QuitConfirmDialog + + + Uncommitted changes + Uncommitted changes + + + + Are you sure you want to quit the application? + +Following items are pending: + Sind Sie sicher, dass Sie das Programm beenden wollen? + +Folgende Punkte sind unerledigt: + + + + SearchTextDialog + + + Find or replace + Finden oder Ersetzen + + + + Find: + Finden: + + + + Case sensitive + Groß- und Kleinschreibung beachten + + + + Search backwards + Suche rückwärts + + + + Regular expression matching + Prüfung nach regulärem Ausdruck + + + + Replace && +find next + Ersetzen && weitersuchen + + + + Replace with: + Ersetzen mit: + + + + Replace all + Alles ersetzen + + + + Find + Finden + + + + SortDialog + + + Sort by columns + Nach Spalten sortiert + + + + + Column + Spalte + + + + + Order + Sortierung + + + + Sort by: %1 + Sortiert nach: %1 + + + + Move column up + Spalte nach oben verschieben + + + + Move column down + Spalte nach unten verschieben + + + + SqlEditor + + + Wrap words + sql editor + Wrap words + + + + Cut + sql editor + Ausschneiden + + + + Copy + sql editor + Kopieren + + + + Paste + sql editor + Einfügen + + + + Delete + sql editor + Löschen + + + + Select all + sql editor + Alles auswählen + + + + Undo + sql editor + Rückgängig + + + + Redo + sql editor + Wiederholen + + + + Complete + sql editor + Komplett + + + + Format SQL + sql editor + SQL formatieren + + + + Save SQL to file + sql editor + SQL in Datei speichern + + + + Select file to save SQL + sql editor + SQL aus Datei laden + + + + Load SQL from file + sql editor + Zeile löschen + + + + Delete line + sql editor + Zeile löschen + + + + Move block down + sql editor + Block nach unten verschieben + + + + Move block up + sql editor + Block nach oben verschieben + + + + Copy block down + sql editor + Block nach unten kopieren + + + + Copy up down + sql editor + Kopiere auf ab + + + + Find + sql editor + Finden + + + + Find next + sql editor + Nächster Fund + + + + Find previous + sql editor + Vorheriger Fund + + + + Replace + sql editor + Ersetzen + + + + Toggle comment + sql editor + Kommentar umschalten + + + + Increase font size + sql editor + Increase font size + + + + Decrease font size + sql editor + Decrease font size + + + + Could not open file '%1' for writing: %2 + Die Datei '%1' kann nicht für Schreibzugriffe geöffnet werden: %2 + + + + Saved SQL contents to file: %1 + SQL Inhalte in Datei speichern: %1 + + + + Syntax completion can be used only when a valid database is set for the SQL editor. + Die Funktion Autovervollständigung kann nur genutzt werden, wenn eine gültige Datenbank für den SQL Editor gewählt wurde. + + + + Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. + Der Text im SQL Editor ist sehr groß, daher wurde die Syntaxkontrolle und die farbliche Hervorhebung von Objekten vorübergehend deaktiviert. + + + + Save to file + In Datei speichern + + + + SQL scripts (*.sql);;All files (*) + SQL Skripte (*.sql);;Alle Dateien (*) + + + + Open file + Datei öffnen + + + + Could not open file '%1' for reading: %2 + Die Datei '%1' kann nicht für Lesezugriffe geöffnet werden: %2 + + + + Reached the end of document. Hit the find again to restart the search. + Das Dokumentenende wurde erreicht. Drücken Sie 'Nächster Fund', um die Suche am Dokumentenanfang fortzusetzen. + + + + SqlQueryItem + + + Committing error: + data view tooltip + Committing error: + + + + Column: + data view tooltip + Spalte: + + + + Data type: + data view + Datentyp: + + + + Table: + data view tooltip + Tabelle: + + + + Constraints: + data view tooltip + Bedingungen: + + + + SqlQueryItemDelegate + + + + + + Cannot edit this cell. Details: %1 + Die Zelle kann nicht editiert. Details: %1 + + + + The row is marked for deletion. + Diese Zeile ist zum Löschen markiert. + + + + + Structure of this table has changed since last data was loaded. Reload the data to proceed. + Structure of this table has changed since last data was loaded. Reload the data to proceed. + + + + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). + + + + Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. + Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. + + + + SqlQueryModel + + + + Only one query can be executed simultaneously. + Es kann nur eine Abfrage gleichzeitig ausgeführt werden. + + + + Cannot execute query on undefined or invalid database. + Cannot execute query on undefined or invalid database. + + + + Cannot execute empty query. + Cannot execute empty query. + + + + Uncommitted data + Uncommitted data + + + + There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. + There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. + + + + Cannot commit the data for a cell that refers to the already closed database. + Es können keine Daten für eine Zelle gespeichert werden, die eine bereits geschlossene Datenbank referenziert. + + + + Could not begin transaction on the database. Details: %1 + Es kann keine Transaktion auf der Datenbank gestartet werden. Details: %1 + + + + An error occurred while committing the transaction: %1 + An error occurred while committing the transaction: %1 + + + + An error occurred while rolling back the transaction: %1 + Fehler beim Rollback der Transaktion: %1 + + + + Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. + Es wurde versucht eine nicht editierbare Zelle zu committen (derzeit modifiziert und auf das Commit wartend)! Dies ist ein Fehler den Sie melden sollten. + + + + An error occurred while committing the data: %1 + An error occurred while committing the data: %1 + + + + Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. + Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. + + + + + Error while executing SQL query on database '%1': %2 + Fehler beim Ausführen der SQL-Abfrage auf der Datenbank '%1': %2 + + + + Error while loading query results: %1 + Fehler beim Laden der Abfrageergebnisse: %1 + + + + Insert multiple rows + Mehrere Zeilen einfügen + + + + Number of rows to insert: + Anzahl an Zeilen zum Einfügen: + + + + Delete rows + Zeilen löschen + + + + You're about to delete newly inserted rows that are not committed yet. Row numbers: %1 +Such deletion will be permanent. Are you sure you want to delete them? + You're about to delete newly inserted rows that are not committed yet. Row numbers: %1 +Such deletion will be permanent. Are you sure you want to delete them? + + + + SqlQueryView + + + Go to referenced row in... + Go to referenced row in... + + + + Copy + Kopieren + + + + Copy with headers + Copy with headers + + + + Copy as... + Kopieren als... + + + + Paste + Einfügen + + + + Paste as... + Einfügen als... + + + + Set NULL values + NULL Wert setzen + + + + Erase values + Werte löschen + + + + Commit + Commit + + + + Rollback + Rollback + + + + Commit selected cells + Gewählte Zellen speichern + + + + Rollback selected cells + Gewählte Zellen wiederherstellen + + + + Edit current cell inline + Edit current cell inline + + + + Define columns to sort by + Sortierspalten definieren + + + + Remove custom sorting + Benutzerdefinierte Sortierung entfernen + + + + Insert row + Zeile einfügen + + + + Insert multiple rows + Mehrere Zeilen einfügen + + + + Delete selected row + Gewählte Zeile löschen + + + + Adjust height of rows + Adjust height of rows + + + + Increase font size + data view + Increase font size + + + + Decrease font size + data view + Decrease font size + + + + Invert selection + data view + Invert selection + + + + Edit value in editor + Wert im Editor bearbeiten + + + + Show value in a viewer + Show value in a viewer + + + + Generate query for selected cells + Generate query for selected cells + + + + No items selected to paste clipboard contents to. + Es sind keine Elemente selektiert in die der Inhalt der Zwischenablage eingefügt werden könnte. + + + + Cannot paste data. Details: %1 + Cannot paste data. Details: %1 + + + + Structure of at least one table used has changed since last data was loaded. Reload the data to proceed. + Structure of at least one table used has changed since last data was loaded. Reload the data to proceed. + + + + Cannot paste to a cell. Details: %1 + Cannot paste to a cell. Details: %1 + + + + The row is marked for deletion. + Diese Zeile ist zum Löschen markiert. + + + + Cannot paste to column %1. Details: %2 + Cannot paste to column %1. Details: %2 + + + + Go to referenced row in table '%1' + Go to referenced row in table '%1' + + + + table '%1' + table '%1' + + + + Referenced row (%1) + Referenced row (%1) + + + + Trim pasted text? + Trim pasted text? + + + + The pasted text contains leading or trailing white space. Trim it automatically? + The pasted text contains leading or trailing white space. Trim it automatically? + + + + Paste "NULL" as null value? + Paste "NULL" as null value? + + + + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + + + + Edit value + Werte editieren + + + + SqlTableModel + + + Error while committing new row: %1 + Error while committing new row: %1 + + + + Error while deleting row from table %1: %2 + Fehler beim Löschen der Zeile aus Tabelle %1: %2 + + + + SqliteExtensionEditor + + + Filter extensions + Filter extensions + + + + Leave empty to use default function + Leave empty to use default function + + + + Extension file + Extension file + + + + Initialization function + Initialization function + + + + Databases + Datenbanken + + + + Register in all databases + In allen Datenbanken registrieren + + + + Register in following databases: + In den folgenden Datenbanken registrieren: + + + + Extension manager window has uncommitted modifications. + Extension manager window has uncommitted modifications. + + + + Extension manager + Extension manager + + + + Commit all extension changes + Commit all extension changes + + + + Rollback all extension changes + Rollback all extension changes + + + + Add new extension + Add new extension + + + + Remove selected extension + Remove selected extension + + + + Editing extensions manual + Editing extensions manual + + + + File with given path does not exist or is not readable. + File with given path does not exist or is not readable. + + + + Unable to load extension: %1 + Unable to load extension: %1 + + + + Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. + Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. + + + + Dynamic link libraries (*.dll);;All files (*) + Dynamic link libraries (*.dll);;All files (*) + + + + Shared objects (*.so);;All files (*) + Shared objects (*.so);;All files (*) + + + + Dynamic libraries (*.dylib);;All files (*) + Dynamic libraries (*.dylib);;All files (*) + + + + All files (*) + Alle Dateien (*) + + + + Open file + Datei öffnen + + + + StatusField + + + Status + Status + + + + Copy + Kopieren + + + + Clear + Leeren + + + + TableConstraintsModel + + + Type + table constraints + Typ + + + + Details + table constraints + Details + + + + Name + table constraints + Name + + + + TableForeignKeyPanel + + + Foreign table: + Fremde Tabelle: + + + + Columns + Spalten + + + + Local column + Lokale Spalte + + + + Foreign column + Fremdspalte + + + + Reactions + Reaktionen + + + + Deferred foreign key + Verzögerter Fremdschlüssel + + + + Named constraint + Benannte Bedingung + + + + Constraint name + Name der Bedingung + + + + Pick the foreign column. + Wählen Sie die Fremdspalte aus. + + + + Pick the foreign table. + Wählen Sie die Fremdtabelle aus. + + + + Select at least one foreign column. + Select at least one foreign column. + + + + Enter a name of the constraint. + Geben Sie einen Namen für die Bedingung ein. + + + + Foreign column + table constraints + Fremdspalte + + + + TablePrimaryKeyAndUniquePanel + + + Columns + Spalten + + + + Column + Spalte + + + + Collation + Kollation + + + + Sort + Sortierung + + + + Valid only for a single column with INTEGER data type + Valid only for a single column with INTEGER data type + + + + Autoincrement + Automatisch hochzählend + + + + Named constraint + Benannte Bedingung + + + + Constraint name + Name der Bedingung + + + + On conflict + Bei Konflikt + + + + Collate + table constraints + Collate + + + + Sort order + table constraints + Sortierung + + + + Select at least one column. + Mindestens eine Spalte auswählen. + + + + Enter a name of the constraint. + Geben Sie einen Namen für die Bedingung ein. + + + + TableStructureModel + + + Name + table structure columns + Name + + + + Data type + table structure columns + Datentyp + + + + Primary +Key + table structure columns + Primärschlüssel + + + + Foreign +Key + table structure columns + Fremdschlüssel + + + + Unique + table structure columns + Unique + + + + Check + table structure columns + Prüfung + + + + Not +NULL + table structure columns + Nicht +NULL + + + + Collate + table structure columns + Collate + + + + Generated + table structure columns + Generiert + + + + Default value + table structure columns + Standardwert + + + + TableWindow + + + Structure + Struktur + + + + Table name: + Tabellenname: + + + + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + + + + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + + + + + Data + Daten + + + + Constraints + Bedingungen + + + + Indexes + Indizes + + + + Triggers + Trigger + + + + DDL + DDL + + + + Export table + table window + Tabelle exportieren + + + + Import data to table + table window + Daten in Tabelle importieren + + + + Populate table + table window + Tabelle füllen + + + + Refresh structure + table window + Struktur aktualisieren + + + + Commit structure changes + table window + Commit structure changes + + + + Rollback structure changes + table window + Rollback structure changes + + + + Add column + table window + Spalte hinzufügen + + + + Edit column + table window + Spalte bearbeiten + + + + + Delete column + table window + Spalte löschen + + + + Move column up + table window + Spalte nach oben verschieben + + + + Move column down + table window + Spalte nach unten verschieben + + + + Create similar table + table window + Erzeuge identische Tabelle + + + + Reset autoincrement value + table window + Autoincrement-Wert zurücksetzen + + + + Add table constraint + table window + Add table constraint + + + + Edit table constraint + table window + Edit table constraint + + + + Delete table constraint + table window + Delete table constraint + + + + Move table constraint up + table window + Move table constraint up + + + + Move table constraint down + table window + Move table constraint down + + + + Add table primary key + table window + Primärschlüssel hinzufügen + + + + Add table foreign key + table window + Fremdschlüssel hinzufügen + + + + Add table unique constraint + table window + Add table unique constraint + + + + Add table check constraint + table window + Add table check constraint + + + + Refresh index list + table window + Refresh index list + + + + + Create index + table window + Index erstellen + + + + Edit index + table window + Index bearbeiten + + + + Delete index + table window + Index löschen + + + + Refresh trigger list + table window + Trigger Liste aktualisieren + + + + + Create trigger + table window + Trigger erstellen + + + + Edit trigger + table window + Trigger bearbeiten + + + + Delete trigger + table window + Trigger löschen + + + + Are you sure you want to delete column '%1'? + table window + Are you sure you want to delete column '%1'? + + + + Following problems will take place while modifying the table. +Would you like to proceed? + table window + Following problems will take place while modifying the table. +Would you like to proceed? + + + + Table modification + table window + Table modification + + + + Could not load data for table %1. Error details: %2 + Could not load data for table %1. Error details: %2 + + + + Could not process the %1 table correctly. Unable to open a table window. + Could not process the %1 table correctly. Unable to open a table window. + + + + Database + Datenbank + + + + Could not restore window %1, because no database or table was stored in session for this window. + Could not restore window %1, because no database or table was stored in session for this window. + + + + Could not restore window '%1', because no database or table was stored in session for this window. + Could not restore window '%1', because no database or table was stored in session for this window. + + + + Could not restore window '%1', because database %2 could not be resolved. + Could not restore window '%1', because database %2 could not be resolved. + + + + Could not restore window '%1', because the table %2 doesn't exist in the database %3. + Could not restore window '%1', because the table %2 doesn't exist in the database %3. + + + + + New table %1 + New table %1 + + + + Committed changes for table '%1' successfully. + Committed changes for table '%1' successfully. + + + + Committed changes for table '%1' (named before '%2') successfully. + Committed changes for table '%1' (named before '%2') successfully. + + + + Could not commit table structure. Error message: %1 + table window + Could not commit table structure. Error message: %1 + + + + Reset autoincrement + Autoincrement zurücksetzen + + + + Are you sure you want to reset autoincrement value for table '%1'? + Sind Sie sicher, dass Sie den Autoincrement Wert für die Tabelle '%1' zurücksetzen möchten? + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + Ein Fehler ist aufgetreten beim Zurücksetzen des Autoincrementwertes für die Tabelle '%1': %2 + + + + Autoincrement value for table '%1' has been reset successfully. + Autoincrement value for table '%1' has been reset successfully. + + + + Empty name + Empty name + + + + A blank name for the table is allowed in SQLite, but it is not recommended. +Are you sure you want to create a table with blank name? + A blank name for the table is allowed in SQLite, but it is not recommended. +Are you sure you want to create a table with blank name? + + + + Cannot create a table without at least one column. + Cannot create a table without at least one column. + + + + Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. + Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. + + + + Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. + Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. + + + + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 + + + + Are you sure you want to delete table constraint '%1'? + table window + Are you sure you want to delete table constraint '%1'? + + + + Delete constraint + table window + Bedingung löschen + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + Uncommitted changes + Uncommitted changes + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + + + + Go back to structure tab + Go back to structure tab + + + + Commit modifications and browse data. + Commit modifications and browse data. + + + + Name + table window indexes + Name + + + + Unique + table window indexes + Unique + + + + Columns + table window indexes + Spalten + + + + Partial index condition + table window indexes + Partieller Indexzustand + + + + Name + table window triggers + Name + + + + Event + table window triggers + Event + + + + Condition + table window triggers + Condition + + + + Details + table window triggers + Details + + + + Table window "%1" has uncommitted structure modifications and data. + Table window "%1" has uncommitted structure modifications and data. + + + + Table window "%1" has uncommitted data. + Table window "%1" has uncommitted data. + + + + Table window "%1" has uncommitted structure modifications. + Table window "%1" has uncommitted structure modifications. + + + + TriggerColumnsDialog + + + Trigger columns + Trigger columns + + + + Triggering columns: + Triggering columns: + + + + Select all + Alles auswählen + + + + Deselect all + Auswahl aufheben + + + + TriggerDialog + + + + Trigger + Trigger + + + + On table: + Auf Tabelle: + + + + Action: + Action: + + + + + <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> + <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> + + + + Pre-condition: + Pre-condition: + + + + The scope is still not fully supported by the SQLite database. + The scope is still not fully supported by the SQLite database. + + + + Trigger name: + Trigger name: + + + + When: + When: + + + + List of columns for UPDATE OF action. + List of columns for UPDATE OF action. + + + + Scope: + Scope: + + + + Code: + Code: + + + + Trigger statements to be executed. + Trigger statements to be executed. + + + + DDL + DDL + + + + On view: + On view: + + + + Could not process trigger %1 correctly. Unable to open a trigger dialog. + Could not process trigger %1 correctly. Unable to open a trigger dialog. + + + + Enter a valid condition. + Geben Sie einen gültigen Zustand ein. + + + + Enter a valid trigger code. + Enter a valid trigger code. + + + + Error + trigger dialog + Fehler + + + + An error occurred while executing SQL statements: +%1 + Fehler beim Ausführen des folgenden SQL Statments: +%1 + + + + VersionConvertSummaryDialog + + + Database version convert + Database version convert + + + + Following changes to the SQL statements will be made: + Following changes to the SQL statements will be made: + + + + Before + Before + + + + After + After + + + + ViewWindow + + + Query + Abfrage + + + + View name: + View name: + + + + Output column names + Output column names + + + + + Data + Daten + + + + Triggers + Trigger + + + + DDL + DDL + + + + + Could not restore window '%1', because no database or view was stored in session for this window. + Could not restore window '%1', because no database or view was stored in session for this window. + + + + Could not restore window '%1', because database %2 could not be resolved. + Could not restore window '%1', because database %2 could not be resolved. + + + + Could not restore window '%1', because database %2 could not be open. + Could not restore window '%1', because database %2 could not be open. + + + + Could not restore window '%1', because the view %2 doesn't exist in the database %3. + Could not restore window '%1', because the view %2 doesn't exist in the database %3. + + + + + New view %1 + New view %1 + + + + Database + Datenbank + + + + Refresh the view + view window + Ansicht aktualisieren + + + + Commit the view changes + view window + Commit the view changes + + + + Rollback the view changes + view window + Rollback the view changes + + + + Explicit column names + Explicit column names + + + + Generate output column names automatically basing on result columns of the view. + Generate output column names automatically basing on result columns of the view. + + + + Add column + view window + Spalte hinzufügen + + + + Edit column + view window + Spalte bearbeiten + + + + Delete column + view window + Spalte löschen + + + + Move column up + view window + Spalte nach oben verschieben + + + + Move column down + view window + Spalte nach unten verschieben + + + + Refresh trigger list + view window + Trigger Liste aktualisieren + + + + Create new trigger + view window + Trigger erstellen + + + + Edit selected trigger + view window + Trigger editieren + + + + Delete selected trigger + view window + Trigger löschen + + + + View window "%1" has uncommitted structure modifications and data. + View window "%1" has uncommitted structure modifications and data. + + + + View window "%1" has uncommitted data. + View window "%1" has uncommitted data. + + + + View window "%1" has uncommitted structure modifications. + View window "%1" has uncommitted structure modifications. + + + + Could not load data for view %1. Error details: %2 + Could not load data for view %1. Error details: %2 + + + + Uncommitted changes + Nicht übertragene Änderungen + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + + + + Go back to structure tab + Go back to structure tab + + + + Commit modifications and browse data. + Commit modifications and browse data. + + + + View '%1' was committed successfully. + View '%1' was committed successfully. + + + + Committed changes for view '%1' successfully. + Committed changes for view '%1' successfully. + + + + Committed changes for view '%1' (named before '%2') successfully. + Committed changes for view '%1' (named before '%2') successfully. + + + + Could not commit view changes. Error message: %1 + view window + Could not commit view changes. Error message: %1 + + + + Override columns + Override columns + + + + Currently defined columns will be overriden. Do you want to continue? + Currently defined columns will be overriden. Do you want to continue? + + + + Could not determinate columns returned from the view. The query is problably incomplete or contains errors. + Could not determinate columns returned from the view. The query is problably incomplete or contains errors. + + + + Name + view window triggers + Name + + + + Instead of + view window triggers + Instead of + + + + Condition + view window triggers + Condition + + + + Details + table window triggers + Details + + + + Could not process the %1 view correctly. Unable to open a view window. + Could not process the %1 view correctly. Unable to open a view window. + + + + Empty name + Empty name + + + + A blank name for the view is allowed in SQLite, but it is not recommended. +Are you sure you want to create a view with blank name? + A blank name for the view is allowed in SQLite, but it is not recommended. +Are you sure you want to create a view with blank name? + + + + The SELECT statement could not be parsed. Please correct the query and retry. +Details: %1 + The SELECT statement could not be parsed. Please correct the query and retry. +Details: %1 + + + + The view could not be modified due to internal SQLiteStudio error. Please report this! + The view could not be modified due to internal SQLiteStudio error. Please report this! + + + + The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. + The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. + + + + Following problems will take place while modifying the view. +Would you like to proceed? + view window + Following problems will take place while modifying the view. +Would you like to proceed? + + + + View modification + view window + View modification + + + + WidgetCover + + + Interrupt + Interrupt + + + diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_el_GR.ts b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_el_GR.ts new file mode 100644 index 0000000..9b21de9 --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_el_GR.ts @@ -0,0 +1,7111 @@ + + + + + AboutDialog + + + About SQLiteStudio and licenses + About SQLiteStudio and licenses + + + + About + About + + + + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + + + + Licenses + Licenses + + + + Environment + Environment + + + + Icon directories + Icon directories + + + + Form directories + Form directories + + + + SQLite extension directories + SQLite extension directories + + + + Plugin directories + Plugin directories + + + + Configuration directory + Configuration directory + + + + Application directory + Application directory + + + + Qt version: + Qt version: + + + + SQLite 3 version: + SQLite 3 version: + + + + Portable distribution. + Portable distribution. + + + + MacOS X application bundle distribution. + MacOS X application bundle distribution. + + + + Operating system managed distribution. + Operating system managed distribution. + + + + <h3>Table of contents:</h3><ol>%2</ol> + <h3>Table of contents:</h3><ol>%2</ol> + + + + BindParamsDialog + + + Query parameters + Query parameters + + + + Please provide values for query parameters + Please provide values for query parameters + + + + CodeSnippetEditor + + + Filter snippets + Filter snippets + + + + + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + + + + + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + + + + Snippet name + Snippet name + + + + Code assistant shortcut + Code assistant shortcut + + + + Snippet code + Snippet code + + + + Code Snippets editor window has uncommitted modifications. + Code Snippets editor window has uncommitted modifications. + + + + Code Snippets editor + Code Snippets editor + + + + Commit all snippet changes + Commit all snippet changes + + + + Rollback all snippet changes + Rollback all snippet changes + + + + Create new snippet + Create new snippet + + + + Delete selected snippet + Delete selected snippet + + + + Move the snippet up + Move the snippet up + + + + Move the snippet down + Move the snippet down + + + + Code snippets manual + Code snippets manual + + + + Enter a non-empty, unique name of the snippet. + Enter a non-empty, unique name of the snippet. + + + + Enter a non-empty snippet content. + Enter a non-empty snippet content. + + + + This hotkey is not unique in context of a code assistant. + This hotkey is not unique in context of a code assistant. + + + + CollationsEditor + + + Filter collations + Filter collations + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Implementation code: + Implementation code: + + + + Collation name: + Collation name: + + + + Implementation language: + Implementation language: + + + + Collations editor + Collations editor + + + + Commit all collation changes + Commit all collation changes + + + + Rollback all collation changes + Rollback all collation changes + + + + Create new collation + Create new collation + + + + Delete selected collation + Delete selected collation + + + + Editing collations manual + Editing collations manual + + + + Enter a non-empty, unique name of the collation. + Enter a non-empty, unique name of the collation. + + + + Pick the implementation language. + Pick the implementation language. + + + + Enter a non-empty implementation code. + Enter a non-empty implementation code. + + + + Collations editor window has uncommitted modifications. + Collations editor window has uncommitted modifications. + + + + ColorButton + + + Pick a color + Pick a color + + + + ColumnCollatePanel + + + Collation name: + Collation name: + + + + Named constraint: + Named constraint: + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + Enter a collation name. + Enter a collation name. + + + + ColumnDefaultPanel + + + Default value: + Default value: + + + + Named constraint: + Named constraint: + + + + Enter a default value expression. + Enter a default value expression. + + + + Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. + Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. + + + + Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. + Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ColumnDialog + + + Column + Column + + + + Name and type + Name and type + + + + Scale + Scale + + + + Precision + Precision + + + + Data type: + Data type: + + + + Column name: + Column name: + + + + Size: + Size: + + + + Constraints + Constraints + + + + Generated value + Generated value + + + + Unique + Unique + + + + + + + + + + + Configure + Configure + + + + Foreign Key + Foreign Key + + + + Collate + Collate + + + + Not NULL + Not NULL + + + + Check condition + Check condition + + + + Primary Key + Primary Key + + + + Default + Default + + + + Advanced mode + Advanced mode + + + + Add constraint + column dialog + Add constraint + + + + Edit constraint + column dialog + Edit constraint + + + + + Delete constraint + column dialog + Delete constraint + + + + Move constraint up + column dialog + Move constraint up + + + + Move constraint down + column dialog + Move constraint down + + + + Add a primary key + column dialog + Add a primary key + + + + Add a foreign key + column dialog + Add a foreign key + + + + Add an unique constraint + column dialog + Add an unique constraint + + + + Add a check constraint + column dialog + Add a check constraint + + + + Add a not null constraint + column dialog + Add a not null constraint + + + + Add a collate constraint + column dialog + Add a collate constraint + + + + Add a generated value constraint + column dialog + Add a generated value constraint + + + + Add a default constraint + column dialog + Add a default constraint + + + + Are you sure you want to delete constraint '%1'? + column dialog + Are you sure you want to delete constraint '%1'? + + + + Correct the constraint's configuration. + Correct the constraint's configuration. + + + + Scale is not allowed for INTEGER PRIMARY KEY columns. + Scale is not allowed for INTEGER PRIMARY KEY columns. + + + + Precision cannot be defined without the scale. + Precision cannot be defined without the scale. + + + + Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. + Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. + + + + INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. + INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. + + + + Precision is not allowed for INTEGER PRIMARY KEY columns. + Precision is not allowed for INTEGER PRIMARY KEY columns. + + + + Could not match valid STRICT table datatype from declared type: %1. + Could not match valid STRICT table datatype from declared type: %1. + + + + ColumnDialogConstraintsModel + + + Type + column dialog constraints + Type + + + + Name + column dialog constraints + Name + + + + Details + column dialog constraints + Details + + + + ColumnForeignKeyPanel + + + Foreign table: + Foreign table: + + + + Foreign column: + Foreign column: + + + + Reactions + Reactions + + + + Deferred foreign key + Deferred foreign key + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + Pick the foreign table. + Pick the foreign table. + + + + Pick the foreign column. + Pick the foreign column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ColumnGeneratedPanel + + + Generating code: + Generating code: + + + + Explicit type: + Explicit type: + + + + Use "GENERATED ALWAYS" keywords + Use "GENERATED ALWAYS" keywords + + + + Named constraint: + Named constraint: + + + + Enter the column value generating expression. + Enter the column value generating expression. + + + + Invalid value generating expression: %1. + Invalid value generating expression: %1. + + + + Invalid value generating expression. + Invalid value generating expression. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ColumnPrimaryKeyPanel + + + Autoincrement + Autoincrement + + + + Sort order: + Sort order: + + + + Named constraint: + Named constraint: + + + + On conflict: + On conflict: + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + Descending order is not allowed with AUTOINCREMENT. + Descending order is not allowed with AUTOINCREMENT. + + + + ColumnUniqueAndNotNullPanel + + + Named constraint: + Named constraint: + + + + On conflict: + On conflict: + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + CompleterWindow + + + Column: %1 + completer statusbar + Column: %1 + + + + Table: %1 + completer statusbar + Table: %1 + + + + Index: %1 + completer statusbar + Index: %1 + + + + Trigger: %1 + completer statusbar + Trigger: %1 + + + + View: %1 + completer statusbar + View: %1 + + + + Database: %1 + completer statusbar + Database: %1 + + + + Keyword: %1 + completer statusbar + Keyword: %1 + + + + Function: %1 + completer statusbar + Function: %1 + + + + Operator: %1 + completer statusbar + Operator: %1 + + + + String + completer statusbar + String + + + + Number + completer statusbar + Number + + + + Binary data + completer statusbar + Binary data + + + + Collation: %1 + completer statusbar + Collation: %1 + + + + Pragma function: %1 + completer statusbar + Pragma function: %1 + + + + Insert a code snippet + Insert a code snippet + + + + ConfigDialog + + + + Configuration + Configuration + + + + Search + Search + + + + General + General + + + + Keyboard shortcuts + Keyboard shortcuts + + + + Look & feel + Look & feel + + + + Style + Style + + + + Fonts + Fonts + + + + Code colors + Code colors + + + + + Database list + Database list + + + + Code assistant + Code assistant + + + + Data browsing + Data browsing + + + + Data editors + Data editors + + + + Plugins + Plugins + + + + Code formatters + Code formatters + + + + If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. + If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. + + + + Sort table columns alphabetically + Sort table columns alphabetically + + + + Expand tables node when connected to a database + Expand tables node when connected to a database + + + + <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> + <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> + + + + Display additional labels on the list + Display additional labels on the list + + + + For regular tables labels will show number of columns, indexes and triggers for each of tables. + For regular tables labels will show number of columns, indexes and triggers for each of tables. + + + + Display labels for regular tables + Display labels for regular tables + + + + Virtual tables will be marked with a 'virtual' label. + Virtual tables will be marked with a 'virtual' label. + + + + Display labels for virtual tables + Display labels for virtual tables + + + + Expand views node when connected to a database + Expand views node when connected to a database + + + + If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) + If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) + + + + Sort objects (tables, indexes, triggers and views) alphabetically + Sort objects (tables, indexes, triggers and views) alphabetically + + + + Display system tables and indexes on the list + Display system tables and indexes on the list + + + + Database dialog window + Database dialog window + + + + <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> + <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> + + + + Do not mark database to be "permanent" by default + Do not mark database to be "permanent" by default + + + + <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> + <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> + + + + Try to bypass dialog completly when dropping database file onto the list + Try to bypass dialog completly when dropping database file onto the list + + + + Data browsing and editing + Data browsing and editing + + + + + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + + + + Number of memorized table populating configurations + Number of memorized table populating configurations + + + + Data column width + Data column width + + + + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + + + + Enlarge column when entering value longer than current width + Enlarge column when entering value longer than current width + + + + <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> + <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> + + + + Number of data rows per page: + Number of data rows per page: + + + + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> + + + + Show column and row details tooltip in data view + Show column and row details tooltip in data view + + + + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + + + + Keep NULL value when entering empty value + Keep NULL value when entering empty value + + + + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> + + + + Use DEFAULT value (if defined), when committing NULL value + Use DEFAULT value (if defined), when committing NULL value + + + + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + + + + Limit number of rows for in case of dozens of columns + Limit number of rows for in case of dozens of columns + + + + Inserting new row in data grid + Inserting new row in data grid + + + + Before currently selected row + Before currently selected row + + + + After currently selected row + After currently selected row + + + + At the end of data view + At the end of data view + + + + Table windows + Table windows + + + + <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> + <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> + + + + Open Table Windows with the data tab for start + Open Table Windows with the data tab for start + + + + <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> + <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> + + + + Place data tab as first tab in a Table Window + Place data tab as first tab in a Table Window + + + + View windows + View windows + + + + <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> + <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> + + + + Open View Windows with the data tab for start + Open View Windows with the data tab for start + + + + <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> + <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> + + + + Place data tab as first tab in a View Window + Place data tab as first tab in a View Window + + + + Data types + Data types + + + + Available editors: + Available editors: + + + + Editors selected for this data type: + Editors selected for this data type: + + + + Schema editing + Schema editing + + + + Number of DDL changes kept in history. + Number of DDL changes kept in history. + + + + DDL history size: + DDL history size: + + + + Don't show DDL preview dialog when committing schema changes + Don't show DDL preview dialog when committing schema changes + + + + SQL queries + SQL queries + + + + + Number of queries kept in the history. + Number of queries kept in the history. + + + + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> + + + + History size: + History size: + + + + + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> + + + + Execute only the query under the cursor + Execute only the query under the cursor + + + + Number of memorized query parameters + Number of memorized query parameters + + + + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + + + + Use scientific notation for real numbers in the grid view + Use scientific notation for real numbers in the grid view + + + + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + + + + Limit automatic data column width to (in pixels): + Limit automatic data column width to (in pixels): + + + + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + + + + Keep at least the width to show complete column name + Keep at least the width to show complete column name + + + + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + + + + Wrap lines in SQL editor + Wrap lines in SQL editor + + + + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + + + + Highlight current query + Highlight current query + + + + Updates + Updates + + + + Automatically check for updates at startup + Automatically check for updates at startup + + + + Session + Session + + + + Restore last session (active MDI windows) after startup + Restore last session (active MDI windows) after startup + + + + Allow multiple instances of the application at the same time + Allow multiple instances of the application at the same time + + + + Status Field + Status Field + + + + <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> + <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> + + + + Always open Status panel when new message is printed + Always open Status panel when new message is printed + + + + Code syntax colors + Code syntax colors + + + + Keyword foreground + Keyword foreground + + + + Regular foreground + Regular foreground + + + + String foreground + String foreground + + + + Comment foreground + Comment foreground + + + + Valid objects foreground + Valid objects foreground + + + + Current query background + Current query background + + + + Bind parameter foreground + Bind parameter foreground + + + + Current line background + Current line background + + + + Matched parenthesis background + Matched parenthesis background + + + + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + + + + Number foreground + Number foreground + + + + BLOB value foreground + BLOB value foreground + + + + Matched parenthesis foreground + Matched parenthesis foreground + + + + Reset to defaults + Reset to defaults + + + + Filter shortcuts by name or key combination + Filter shortcuts by name or key combination + + + + Action + Action + + + + Key combination + Key combination + + + + + Language + Language + + + + Changing language requires application restart to take effect. + Changing language requires application restart to take effect. + + + + Compact layout + Compact layout + + + + <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> + <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> + + + + Use compact layout + Use compact layout + + + + Main window dock areas + Main window dock areas + + + + Left and right areas occupy corners + Left and right areas occupy corners + + + + Top and bottom areas occupy corners + Top and bottom areas occupy corners + + + + Hide built-in plugins + Hide built-in plugins + + + + Current style: + Current style: + + + + Preview + Preview + + + + Enabled + Enabled + + + + Disabled + Disabled + + + + Active formatter plugin + Active formatter plugin + + + + SQL editor font + SQL editor font + + + + Database list font + Database list font + + + + Database list additional label font + Database list additional label font + + + + Data view font + Data view font + + + + Status field font + Status field font + + + + Code assistant settings + Code assistant settings + + + + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + + + + Automatically trigger the assistant after a dot is typed after an object name + Automatically trigger the assistant after a dot is typed after an object name + + + + Description: + plugin details + Description: + + + + Category: + plugin details + Category: + + + + Version: + plugin details + Version: + + + + Author: + plugin details + Author: + + + + Internal name: + plugin details + Internal name: + + + + Dependencies: + plugin details + Dependencies: + + + + Conflicts: + plugin details + Conflicts: + + + + Plugin details + Plugin details + + + + Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. + Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. + + + + %1 (built-in) + plugins manager in configuration dialog + %1 (built-in) + + + + Details + Details + + + + No plugins in this category. + No plugins in this category. + + + + Add new data type + Add new data type + + + + Rename selected data type + Rename selected data type + + + + Delete selected data type + Delete selected data type + + + + Help for configuring data type editors + Help for configuring data type editors + + + + Clear hotkey for this action + Clear hotkey for this action + + + + Restore original hotkey for this action + Restore original hotkey for this action + + + + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + + + + ConstraintCheckPanel + + + The condition + The condition + + + + Named constraint: + Named constraint: + + + + On conflict + On conflict + + + + Enter a valid condition. + Enter a valid condition. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ConstraintDialog + + + New constraint + constraint dialog + New constraint + + + + Create + constraint dialog + Create + + + + Edit constraint + dialog window + Edit constraint + + + + Apply + constraint dialog + Apply + + + + Primary key + table constraints + Primary key + + + + Foreign key + table constraints + Foreign key + + + + Unique + table constraints + Unique + + + + Not NULL + table constraints + Not NULL + + + + Check + table constraints + Check + + + + Generated + table constraints + Generated + + + + Collate + table constraints + Collate + + + + Default + table constraints + Default + + + + ConstraintTabModel + + + Table + table constraints + Table + + + + Column (%1) + table constraints + Column (%1) + + + + Scope + table constraints + Scope + + + + Type + table constraints + Type + + + + Details + table constraints + Details + + + + Name + table constraints + Name + + + + CssDebugDialog + + + SQLiteStudio CSS console + SQLiteStudio CSS console + + + + DataView + + + Filter data + data view + Filter data + + + + Grid view + Grid view + + + + Form view + Form view + + + + Refresh table data + data view + Refresh table data + + + + First page + data view + First page + + + + Previous page + data view + Previous page + + + + Next page + data view + Next page + + + + Last page + data view + Last page + + + + Commit changes for selected cells + data view + Commit changes for selected cells + + + + Rollback changes for selected cells + data view + Rollback changes for selected cells + + + + Show grid view of results + data view + Show grid view of results + + + + Show form view of results + data view + Show form view of results + + + + Filter by text (if contains) + data view + Filter by text (if contains) + + + + Filter strictly by text (if equals) + data view + Filter strictly by text (if equals) + + + + Tabs on top + data view + Tabs on top + + + + Tabs at bottom + data view + Tabs at bottom + + + + Place new rows above selected row + data view + Place new rows above selected row + + + + Place new rows below selected row + data view + Place new rows below selected row + + + + Place new rows at the end of the data view + data view + Place new rows at the end of the data view + + + + Total number of rows is being counted. +Browsing other pages will be possible after the row counting is done. + Total number of rows is being counted. +Browsing other pages will be possible after the row counting is done. + + + + Row: %1 + Row: %1 + + + + Filter + Filter + + + + Hit Enter key or press "Apply filter" button on toolbar to apply new value. + Hit Enter key or press "Apply filter" button on toolbar to apply new value. + + + + Filter by the Regular Expression + data view + Filter by the Regular Expression + + + + Filter by SQL expression + data view + Filter by SQL expression + + + + Show filter inputs per column + data view + Show filter inputs per column + + + + Apply filter + data view + Apply filter + + + + DbDialog + + + Database + Database + + + + Database type + Database type + + + + Database driver + Database driver + + + + + File + File + + + + Name (on the list) + Name (on the list) + + + + Options + Options + + + + <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> + aasfd + <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> + + + + Permanent (keep it in configuration) + Permanent (keep it in configuration) + + + + Test connection + Test connection + + + + Select new or existing file on local computer + Select new or existing file on local computer + + + + Browse + Browse + + + + Database type not selected. + Database type not selected. + + + + Database path not specified. + Database path not specified. + + + + Enter an unique database name. + Enter an unique database name. + + + + This name is already in use. Please enter unique name. + This name is already in use. Please enter unique name. + + + + <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> + <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> + + + + Enter a database file path. + Enter a database file path. + + + + This database is already on the list under name: %1 + This database is already on the list under name: %1 + + + + Select a database type. + Select a database type. + + + + DbObjectDialogs + + + Delete table + Delete table + + + + Are you sure you want to delete table %1? + Are you sure you want to delete table %1? + + + + Delete index + Delete index + + + + Are you sure you want to delete index %1? + Are you sure you want to delete index %1? + + + + Delete trigger + Delete trigger + + + + Are you sure you want to delete trigger %1? + Are you sure you want to delete trigger %1? + + + + Delete view + Delete view + + + + Are you sure you want to delete view %1? + Are you sure you want to delete view %1? + + + + + Error while dropping %1: %2 + Error while dropping %1: %2 + + + + Delete objects + Delete objects + + + + Are you sure you want to delete following objects: +%1 + Are you sure you want to delete following objects: +%1 + + + + Cannot start transaction. Details: %1 + Cannot start transaction. Details: %1 + + + + Cannot commit transaction. Details: %1 + Cannot commit transaction. Details: %1 + + + + DbTree + + + Databases + Databases + + + + Filter by name + Filter by name + + + + Copy + Copy + + + + Paste + Paste + + + + Select all + Select all + + + + Create a group + Create a group + + + + Delete the group + Delete the group + + + + Rename the group + Rename the group + + + + &Add a database + &Add a database + + + + &Edit the database + &Edit the database + + + + &Remove the database + &Remove the database + + + + &Connect to the database + &Connect to the database + + + + &Disconnect from the database + &Disconnect from the database + + + + Import + Import + + + + &Export the database + &Export the database + + + + Vac&uum + Vac&uum + + + + &Integrity check + &Integrity check + + + + Create a &table + Create a &table + + + + Edit the t&able + Edit the t&able + + + + Delete the ta&ble + Delete the ta&ble + + + + Export the table + Export the table + + + + Import into the table + Import into the table + + + + Populate table + Populate table + + + + Create similar table + Create similar table + + + + Reset autoincrement sequence + Reset autoincrement sequence + + + + Create an &index + Create an &index + + + + Edit the i&ndex + Edit the i&ndex + + + + Delete the in&dex + Delete the in&dex + + + + Create a trig&ger + Create a trig&ger + + + + Edit the trigg&er + Edit the trigg&er + + + + Delete the trigge&r + Delete the trigge&r + + + + Create a &view + Create a &view + + + + Edit the v&iew + Edit the v&iew + + + + Delete the vi&ew + Delete the vi&ew + + + + Add a column + Add a column + + + + Edit the column + Edit the column + + + + Delete the column + Delete the column + + + + Delete selected items + Delete selected items + + + + Clear filter + Clear filter + + + + &Refresh all database schemas + &Refresh all database schemas + + + + Re&fresh selected database schema + Re&fresh selected database schema + + + + + Erase table data + Erase table data + + + + Open file's directory + Open file's directory + + + + Execute SQL from file + Execute SQL from file + + + + Increase font size + database list + Increase font size + + + + Decrease font size + database list + Decrease font size + + + + + Database + Database + + + + Grouping + Grouping + + + + Generate query for table + Generate query for table + + + + + Create group + Create group + + + + Group name + Group name + + + + Entry with name %1 already exists in group %2. + Entry with name %1 already exists in group %2. + + + + Delete group + Delete group + + + + Are you sure you want to delete group %1? +All objects from this group will be moved to parent group. + Are you sure you want to delete group %1? +All objects from this group will be moved to parent group. + + + + Are you sure you want to remove database '%1' from the list? + Are you sure you want to remove database '%1' from the list? + + + + Are you sure you want to remove following databases from the list: +%1 + Are you sure you want to remove following databases from the list: +%1 + + + + Remove database + Remove database + + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Vacuum (%1) + Vacuum (%1) + + + + Integrity check (%1) + Integrity check (%1) + + + + Reset autoincrement + Reset autoincrement + + + + Are you sure you want to reset autoincrement value for table '%1'? + Are you sure you want to reset autoincrement value for table '%1'? + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + An error occurred while trying to reset autoincrement value for table '%1': %2 + + + + Autoincrement value for table '%1' has been reset successfully. + Autoincrement value for table '%1' has been reset successfully. + + + + Are you sure you want to delete all data from table(s): %1? + Are you sure you want to delete all data from table(s): %1? + + + + An error occurred while trying to delete data from table '%1': %2 + An error occurred while trying to delete data from table '%1': %2 + + + + All data has been deleted for table '%1'. + All data has been deleted for table '%1'. + + + + Following objects will be deleted: %1. + Following objects will be deleted: %1. + + + + Following databases will be removed from list: %1. + Following databases will be removed from list: %1. + + + + Remainig objects from deleted group will be moved in place where the group used to be. + Remainig objects from deleted group will be moved in place where the group used to be. + + + + %1<br><br>Are you sure you want to continue? + %1<br><br>Are you sure you want to continue? + + + + Delete objects + Delete objects + + + + DbTreeItemDelegate + + + error + dbtree labels + error + + + + (system table) + database tree label + (system table) + + + + (virtual) + virtual table label + (virtual) + + + + (system index) + database tree label + (system index) + + + + DbTreeModel + + + Database: %1 + dbtree tooltip + Database: %1 + + + + URI: + dbtree tooltip + URI: + + + + Version: + dbtree tooltip + Version: + + + + File size: + dbtree tooltip + File size: + + + + Encoding: + dbtree tooltip + Encoding: + + + + Error: + dbtree tooltip + Error: + + + + Table : %1 + dbtree tooltip + Table : %1 + + + + Columns (%1): + dbtree tooltip + Columns (%1): + + + + Indexes (%1): + dbtree tooltip + Indexes (%1): + + + + Triggers (%1): + dbtree tooltip + Triggers (%1): + + + + Copy + Copy + + + + Move + Move + + + + Include data + Include data + + + + Include indexes + Include indexes + + + + Include triggers + Include triggers + + + + Abort + Abort + + + + Could not add dropped database file '%1' automatically. Manual setup is necessary. + Could not add dropped database file '%1' automatically. Manual setup is necessary. + + + + Referenced tables + Referenced tables + + + + Do you want to include following referenced tables as well: +%1 + Do you want to include following referenced tables as well: +%1 + + + + Name conflict + Name conflict + + + + Following object already exists in the target database. +Please enter new, unique name, or press '%1' to abort the operation: + Following object already exists in the target database. +Please enter new, unique name, or press '%1' to abort the operation: + + + + SQL statements conversion + SQL statements conversion + + + + Following error occurred while converting SQL statements to the target SQLite version: + Following error occurred while converting SQL statements to the target SQLite version: + + + + Would you like to ignore those errors and proceed? + Would you like to ignore those errors and proceed? + + + + DdlHistoryWindow + + + Filter by database: + Filter by database: + + + + Clear entire history + Clear entire history + + + + -- Queries executed on database %1 (%2) +-- Date and time of execution: %3 +%4 + -- Queries executed on database %1 (%2) +-- Date and time of execution: %3 +%4 + + + + Clear history + Clear history + + + + Are you sure you want to erase entire DDL history? + Are you sure you want to erase entire DDL history? + + + + DDL history + DDL history + + + + DdlPreviewDialog + + + Queries to be executed + Queries to be executed + + + + Don't show again + Don't show again + + + + DebugConsole + + + SQLiteStudio Debug Console + SQLiteStudio Debug Console + + + + EditorWindow + + + SQL editor + SQL editor + + + + Query + Query + + + + History + History + + + + Results in the separate tab + Results in the separate tab + + + + Results below the query + Results below the query + + + + + SQL editor %1 + SQL editor %1 + + + + + Results + Results + + + + Execute query + Execute query + + + + Explain query + Explain query + + + + Clear execution history + sql editor + Clear execution history + + + + Export results + sql editor + Export results + + + + Create view from query + sql editor + Create view from query + + + + Previous database + Previous database + + + + Next database + Next database + + + + Show next tab + sql editor + Show next tab + + + + Show previous tab + sql editor + Show previous tab + + + + Focus results below + sql editor + Focus results below + + + + Focus SQL editor above + sql editor + Focus SQL editor above + + + + Delete selected SQL history entries + sql editor + Delete selected SQL history entries + + + + Execute single query under cursor + Execute single query under cursor + + + + Execute all queries in editor + Execute all queries in editor + + + + Active database (%1/%2) + Active database (%1/%2) + + + + Query finished in %1 second(s). Rows affected: %2 + Query finished in %1 second(s). Rows affected: %2 + + + + Query finished in %1 second(s). + Query finished in %1 second(s). + + + + Clear execution history + Clear execution history + + + + Are you sure you want to erase the entire SQL execution history? This cannot be undone. + Are you sure you want to erase the entire SQL execution history? This cannot be undone. + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + No database selected in the SQL editor. Cannot create a view for unknown database. + No database selected in the SQL editor. Cannot create a view for unknown database. + + + + Editor window "%1" has uncommitted data. + Editor window "%1" has uncommitted data. + + + + ErrorsConfirmDialog + + + Errors + Errors + + + + Following errors occured: + Following errors occured: + + + + Would you like to proceed? + Would you like to proceed? + + + + ExecFromFileDialog + + + Execute SQL from file + Execute SQL from file + + + + Input file + Input file + + + + Path to file + Path to file + + + + Browse for file + Browse for file + + + + Options + Options + + + + File encoding + File encoding + + + + Skip failing SQL statements + Skip failing SQL statements + + + + SQL scripts (*.sql);;All files (*) + SQL scripts (*.sql);;All files (*) + + + + Execute SQL file + Execute SQL file + + + + Please provide file to be executed. + Please provide file to be executed. + + + + Provided file does not exist or cannot be read. + Provided file does not exist or cannot be read. + + + + ExportDialog + + + Export + Export + + + + What do you want to export? + What do you want to export? + + + + A database + A database + + + + A single table + A single table + + + + Query results + Query results + + + + Table to export + Table to export + + + + Database + Database + + + + Table + Table + + + + Options + Options + + + + When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. + When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. + + + + Export table data + Export table data + + + + Export table indexes + Export table indexes + + + + Export table triggers + Export table triggers + + + + Note, that exporting table indexes and triggers may be unsupported by some output formats. + Note, that exporting table indexes and triggers may be unsupported by some output formats. + + + + Select database objects to export + Select database objects to export + + + + Export data from tables + Export data from tables + + + + Select all + Select all + + + + Deselect all + Deselect all + + + + + Database: + Database: + + + + Query to export results for + Query to export results for + + + + Query to be executed for results: + Query to be executed for results: + + + + Export format and options + Export format and options + + + + Export format + Export format + + + + Output + Output + + + + Exported file path + Exported file path + + + + Clipboard + Clipboard + + + + File + File + + + + Exported text encoding: + Exported text encoding: + + + + Export format options + Export format options + + + + Cancel + Cancel + + + + + + Select database to export. + Select database to export. + + + + Select table to export. + Select table to export. + + + + Enter valid query to export. + Enter valid query to export. + + + + Select at least one object to export. + Select at least one object to export. + + + + You must provide a file name to export to. + You must provide a file name to export to. + + + + Path you provided is an existing directory. You cannot overwrite it. + Path you provided is an existing directory. You cannot overwrite it. + + + + The directory '%1' does not exist. + The directory '%1' does not exist. + + + + The file '%1' exists and will be overwritten. + The file '%1' exists and will be overwritten. + + + + All files (*) + All files (*) + + + + Pick file to export to + Pick file to export to + + + + Internal error during export. This is a bug. Please report it. + Internal error during export. This is a bug. Please report it. + + + + FileExecErrorsDialog + + + Execution errors + Execution errors + + + + Following errors were encountered during execution of SQL statements from the file: + Following errors were encountered during execution of SQL statements from the file: + + + + SQL + SQL + + + + Error + Error + + + + Statements that were executed successfully were commited. + Statements that were executed successfully were commited. + + + + Statements that were executed successfully were rolled back. + Statements that were executed successfully were rolled back. + + + + FkComboBox + + + Cannot edit this cell. Details: %1 + Cannot edit this cell. Details: %1 + + + + FontEdit + + + Choose font + font configuration + Choose font + + + + Form + + + Active SQL formatter plugin + Active SQL formatter plugin + + + + FormView + + + Commit row + form view + Commit row + + + + Rollback row + form view + Rollback row + + + + First row + form view + First row + + + + Previous row + form view + Previous row + + + + Next row + form view + Next row + + + + Last row + form view + Last row + + + + Insert new row + form view + Insert new row + + + + Delete current row + form view + Delete current row + + + + FunctionsEditor + + + Filter functions + Filter functions + + + + Input arguments + Input arguments + + + + Undefined + Undefined + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Type: + Type: + + + + Function name: + Function name: + + + + Implementation language: + Implementation language: + + + + Deterministic + Deterministic + + + + Initialization code: + Initialization code: + + + + + Function implementation code: + Function implementation code: + + + + Final step implementation code: + Final step implementation code: + + + + SQL functions editor + SQL functions editor + + + + Commit all function changes + Commit all function changes + + + + Rollback all function changes + Rollback all function changes + + + + Create new function + Create new function + + + + Delete selected function + Delete selected function + + + + Custom SQL functions manual + Custom SQL functions manual + + + + Add function argument + Add function argument + + + + Rename function argument + Rename function argument + + + + Delete function argument + Delete function argument + + + + Move function argument up + Move function argument up + + + + Move function argument down + Move function argument down + + + + Scalar + Scalar + + + + Aggregate + Aggregate + + + + Enter a non-empty, unique name of the function. + Enter a non-empty, unique name of the function. + + + + Pick the implementation language. + Pick the implementation language. + + + + Per step code: + Per step code: + + + + Enter a non-empty implementation code. + Enter a non-empty implementation code. + + + + argument + new function argument name in function editor window + argument + + + + Functions editor window has uncommitted modifications. + Functions editor window has uncommitted modifications. + + + + ImportDialog + + + Import data + Import data + + + + Table to import to + Table to import to + + + + Table + Table + + + + Database + Database + + + + Data source to import from + Data source to import from + + + + Data source type + Data source type + + + + Options + Options + + + + Text encoding: + Text encoding: + + + + Input file: + Input file: + + + + <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> + <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> + + + + Ignore errors + Ignore errors + + + + Data source options + Data source options + + + + Cancel + Cancel + + + + If you type table name that doesn't exist, it will be created. + If you type table name that doesn't exist, it will be created. + + + + Enter the table name + Enter the table name + + + + Select import plugin. + Select import plugin. + + + + You must provide a file to import from. + You must provide a file to import from. + + + + The file '%1' does not exist. + The file '%1' does not exist. + + + + Path you provided is a directory. A regular file is required. + Path you provided is a directory. A regular file is required. + + + + Pick file to import from + Pick file to import from + + + + IndexDialog + + + + Index + Index + + + + Column + Column + + + + Sort + Sort + + + + Collation + Collation + + + + On table: + On table: + + + + Delete selected indexed expression + Delete selected indexed expression + + + + Moves selected index column up in the order, making it more significant in the index. + Moves selected index column up in the order, making it more significant in the index. + + + + Moves selected index column down in the order, making it less significant in the index. + Moves selected index column down in the order, making it less significant in the index. + + + + Partial index condition + Partial index condition + + + + Unique index + Unique index + + + + Index name: + Index name: + + + + Edit selected indexed expression + Edit selected indexed expression + + + + Add indexed expression + Add indexed expression + + + + DDL + DDL + + + + Tried to open index dialog for closed or inexisting database. + Tried to open index dialog for closed or inexisting database. + + + + Could not process index %1 correctly. Unable to open an index dialog. + Could not process index %1 correctly. Unable to open an index dialog. + + + + Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. + Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. + + + + Pick the table for the index. + Pick the table for the index. + + + + Select at least one column. + Select at least one column. + + + + Enter a valid condition. + Enter a valid condition. + + + + default + index dialog + default + + + + Sort order + table constraints + Sort order + + + + + Error + index dialog + Error + + + + Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? + Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? + + + + An error occurred while executing SQL statements: +%1 + An error occurred while executing SQL statements: +%1 + + + + IndexExprColumnDialog + + + Indexed expression + Indexed expression + + + + Expression to index + Expression to index + + + + This expression is already indexed by the index. + This expression is already indexed by the index. + + + + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. + + + + Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. + Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. + + + + It's forbidden to use 'SELECT' statements in indexed expressions. + It's forbidden to use 'SELECT' statements in indexed expressions. + + + + Enter an indexed expression. + Enter an indexed expression. + + + + Invalid expression. + Invalid expression. + + + + LanguageDialog + + + Language + Language + + + + Please choose language: + Please choose language: + + + + MainWindow + + + Database toolbar + Database toolbar + + + + Structure toolbar + Structure toolbar + + + + Tools + Tools + + + + Window list + Window list + + + + View toolbar + View toolbar + + + + Configuration widgets + Configuration widgets + + + + Syntax highlighting engines + Syntax highlighting engines + + + + Data editors + Data editors + + + + Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. + Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. + + + + Running in debug mode. Debug messages are printed to the standard output. + Running in debug mode. Debug messages are printed to the standard output. + + + + You need to restart application to make the language change take effect. + You need to restart application to make the language change take effect. + + + + Open SQL &editor + Open SQL &editor + + + + Open DDL &history + Open DDL &history + + + + Open SQL &functions editor + Open SQL &functions editor + + + + Open code &snippets editor + Open code &snippets editor + + + + Open &collations editor + Open &collations editor + + + + Open ex&tension manager + Open ex&tension manager + + + + &Import + &Import + + + + E&xport + E&xport + + + + Open confi&guration dialog + Open confi&guration dialog + + + + &Tile windows + &Tile windows + + + + Tile windows &horizontally + Tile windows &horizontally + + + + Tile windows &vertically + Tile windows &vertically + + + + &Cascade windows + &Cascade windows + + + + Next window + Next window + + + + Previous window + Previous window + + + + Hide status field + Hide status field + + + + Close &all windows + Close &all windows + + + + Re&store recently closed window + Re&store recently closed window + + + + Close current &window + Close current &window + + + + Close &other windows + Close &other windows + + + + Close windows on the &left + Close windows on the &left + + + + Close windows on the &right + Close windows on the &right + + + + Re&name selected window + Re&name selected window + + + + Open Debug Console + Open Debug Console + + + + Open CSS Console + Open CSS Console + + + + Report a &bug + Report a &bug + + + + D&onate + D&onate + + + + Propose a new &feature + Propose a new &feature + + + + &About + &About + + + + &Licenses + &Licenses + + + + Open home &page + Open home &page + + + + User &Manual + User &Manual + + + + SQLite &documentation + SQLite &documentation + + + + Bugs and feature &requests + Bugs and feature &requests + + + + Quit + Quit + + + + Check for &updates + Check for &updates + + + + &Database + menubar + &Database + + + + &Structure + menubar + &Structure + + + + &View + menubar + &View + + + + Window list + menubar view menu + Window list + + + + &Tools + menubar + &Tools + + + + &Help + &Help + + + + Could not set style: %1 + main window + Could not set style: %1 + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + Rename window + Rename window + + + + Enter new name for the window: + Enter new name for the window: + + + + New updates are available. <a href="%1">Click here for details</a>. + New updates are available. <a href="%1">Click here for details</a>. + + + + You're running the most recent version. No updates are available. + You're running the most recent version. No updates are available. + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + Database passed in command line parameters (%1) was already on the list under name: %2 + + + + Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 + Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + MdiWindow + + + Uncommitted changes + Uncommitted changes + + + + Close anyway + Close anyway + + + + Don't close + Don't close + + + + MultiEditor + + + Null value + multieditor + Null value + + + + Configure editors for this data type + Configure editors for this data type + + + + Open another tab + Open another tab + + + + Foreign Key + Foreign Key + + + + Data editor plugin '%1' not loaded, while it is defined for editing '%2' data type. + Data editor plugin '%1' not loaded, while it is defined for editing '%1' data type. {1'?} {2'?} {1' or 2'?} + + + + Deleted + multieditor + Deleted + + + + Read only + multieditor + Read only + + + + MultiEditorBoolPlugin + + + Boolean + Boolean + + + + MultiEditorDatePlugin + + + Date + Date + + + + MultiEditorDateTimePlugin + + + Date & time + Date & time + + + + MultiEditorHexPlugin + + + Hex + Hex + + + + MultiEditorNumericPlugin + + + Number + numeric multi editor tab name + Number + + + + MultiEditorText + + + Tab changes focus + Tab changes focus + + + + Cut + Cut + + + + Copy + Copy + + + + Paste + Paste + + + + Delete + Delete + + + + Undo + Undo + + + + Redo + Redo + + + + MultiEditorTextPlugin + + + Text + Text + + + + MultiEditorTimePlugin + + + Time + Time + + + + NewConstraintDialog + + + New constraint + New constraint + + + + + Primary Key + new constraint dialog + Primary Key + + + + + Foreign Key + new constraint dialog + Foreign Key + + + + + Unique + new constraint dialog + Unique + + + + + Check + new constraint dialog + Check + + + + Not NULL + new constraint dialog + Not NULL + + + + Collate + new constraint dialog + Collate + + + + Generated + new constraint dialog + Generated + + + + Default + new constraint dialog + Default + + + + NewVersionDialog + + + SQLiteStudio updates + SQLiteStudio updates + + + + New version is available! + New version is available! + + + + Download new version! + Download new version! + + + + New version package will be downloaded. It will be up to you to install it whenever you're ready. + New version package will be downloaded. It will be up to you to install it whenever you're ready. + + + + Open SQLiteStudio home page. + Open SQLiteStudio home page. + + + + Read release notes && download package yourself. + Read release notes && download package yourself. + + + + Just close this window. + Just close this window. + + + + Check for updates on startup + Check for updates on startup + + + + Not now. + Not now. + + + + PopulateConfigDialog + + + Populating configuration + Populating configuration + + + + Configuring <b>%1</b> for column <b>%2</b> + Configuring <b>%1</b> for column <b>%2</b> + + + + PopulateDialog + + + Populate table + Populate table + + + + Database + Database + + + + Table + Table + + + + Columns + Columns + + + + Number of rows to populate: + Number of rows to populate: + + + + Populate + populate dialog button + Populate + + + + Abort + Abort + + + + Configure + Configure + + + + Populating configuration for this column is invalid or incomplete. + Populating configuration for this column is invalid or incomplete. + + + + Select database with table to populate + Select database with table to populate + + + + Select table to populate + Select table to populate + + + + You have to select at least one column. + You have to select at least one column. + + + + QObject + + + Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). + Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). + + + + The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. + The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. + + + + Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. + Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. + + + + Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. + Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. + + + + Cannot edit results of query other than %1. + Cannot edit results of query other than %1. + + + + Cannot edit columns that are result of aggregated %1 statements. + Cannot edit columns that are result of aggregated %1 statements. + + + + Cannot edit columns that are result of %1 statement. + Cannot edit columns that are result of %1 statement. + + + + Cannot edit columns that are result of common table expression statement (%1). + Cannot edit columns that are result of common table expression statement (%1). + + + + Cannot edit table generated columns. + Cannot edit table generated columns. + + + + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). + + + + + + + on conflict: %1 + data view tooltip + on conflict: %1 + + + + references table %1, column %2 + data view tooltip + references table %1, column %2 + + + + condition: %1 + data view tooltip + condition: %1 + + + + collation name: %1 + data view tooltip + collation name: %1 + + + + Data grid view + Data grid view + + + + Edit current cell inline + Edit current cell inline + + + + Copy cell(s) contents to clipboard + Copy cell(s) contents to clipboard + + + + Copy cell(s) contents together with header to clipboard + Copy cell(s) contents together with header to clipboard + + + + Paste cell(s) contents from clipboard + Paste cell(s) contents from clipboard + + + + Set empty value to selected cell(s) + Set empty value to selected cell(s) + + + + Set NULL value to selected cell(s) + Set NULL value to selected cell(s) + + + + Commit changes to cell(s) contents + Commit changes to cell(s) contents + + + + Rollback changes to cell(s) contents + Rollback changes to cell(s) contents + + + + Delete selected data row + Delete selected data row + + + + Insert new data row + Insert new data row + + + + Open contents of selected cell in a separate editor + Open contents of selected cell in a separate editor + + + + Toggle the height adjustment of rows + Toggle the height adjustment of rows + + + + Increase font size + data view + Increase font size + + + + Decrease font size + data view + Decrease font size + + + + Total pages available: %1 + Total pages available: %1 + + + + Total rows loaded: %1 + Total rows loaded: %1 + + + + Data view (both grid and form) + Data view (both grid and form) + + + + Refresh data + Refresh data + + + + Switch to grid view of the data + Switch to grid view of the data + + + + Switch to form view of the data + Switch to form view of the data + + + + Database list + Database list + + + + Delete selected item + Delete selected item + + + + Clear filter contents + Clear filter contents + + + + Refresh schema + Refresh schema + + + + Refresh all schemas + Refresh all schemas + + + + Add database + Add database + + + + Select all items + Select all items + + + + Copy selected item(s) + Copy selected item(s) + + + + + + Paste from clipboard + Paste from clipboard + + + + Increase font size + database list + Increase font size + + + + Decrease font size + database list + Decrease font size + + + + Tables + Tables + + + + Indexes + Indexes + + + + Triggers + Triggers + + + + Views + Views + + + + Columns + Columns + + + + Data form view + Data form view + + + + Commit changes for current row + Commit changes for current row + + + + Rollback changes for current row + Rollback changes for current row + + + + Go to first row on current page + Go to first row on current page + + + + Go to next row + Go to next row + + + + Go to previous row + Go to previous row + + + + Go to last row on current page + Go to last row on current page + + + + Insert new row + Insert new row + + + + Delete current row + Delete current row + + + + Main window + Main window + + + + Open SQL editor + Open SQL editor + + + + Open DDL history window + Open DDL history window + + + + Open snippets editor window + Open snippets editor window + + + + Open function editor window + Open function editor window + + + + Open collation editor window + Open collation editor window + + + + Open extension manager window + Open extension manager window + + + + Previous window + Previous window + + + + Next window + Next window + + + + Hide status area + Hide status area + + + + Open user manual + Open user manual + + + + Open configuration dialog + Open configuration dialog + + + + Open Debug Console + Open Debug Console + + + + Open CSS Console + Open CSS Console + + + + Open the About dialog + Open the About dialog + + + + Quit the application + Quit the application + + + + Cell text value editor + Cell text value editor + + + + + Cut selected text + Cut selected text + + + + + Copy selected text + Copy selected text + + + + + Delete selected text + Delete selected text + + + + + Undo + Undo + + + + + Redo + Redo + + + + SQL editor input field + SQL editor input field + + + + Select whole editor contents + Select whole editor contents + + + + Save contents into a file + Save contents into a file + + + + Load contents from a file + Load contents from a file + + + + Find in text + Find in text + + + + Find next + Find next + + + + Find previous + Find previous + + + + Replace in text + Replace in text + + + + Delete current line + Delete current line + + + + Request code assistant + Request code assistant + + + + Format contents + Format contents + + + + Move selected block of text one line down + Move selected block of text one line down + + + + Move selected block of text one line up + Move selected block of text one line up + + + + Copy selected block of text and paste it a line below + Copy selected block of text and paste it a line below + + + + Copy selected block of text and paste it a line above + Copy selected block of text and paste it a line above + + + + Toggle comment + Toggle comment + + + + Increase font size + sql editor + Increase font size + + + + Decrease font size + sql editor + Decrease font size + + + + All SQLite databases + All SQLite databases + + + + All files + All files + + + + Select database file + Select database file + + + + Select + Select + + + + File type + File type + + + + SQL editor window + SQL editor window + + + + Execute query + Execute query + + + + Execute single query under cursor + Execute single query under cursor + + + + Execute all queries in editor + Execute all queries in editor + + + + Execute "%1" query + Execute "%1" query + + + + Switch current working database to previous on the list + Switch current working database to previous on the list + + + + Switch current working database to next on the list + Switch current working database to next on the list + + + + Go to next editor tab + Go to next editor tab + + + + Go to previous editor tab + Go to previous editor tab + + + + Move keyboard input focus to the results view below + Move keyboard input focus to the results view below + + + + Move keyboard input focus to the SQL editor above + Move keyboard input focus to the SQL editor above + + + + Delete selected SQL history entries + Delete selected SQL history entries + + + + Table window + Table window + + + + Commit the table structure + Commit the table structure + + + + Rollback pending changes in the table structure + Rollback pending changes in the table structure + + + + Refresh table structure + Refresh table structure + + + + Add new column + Add new column + + + + Edit selected column + Edit selected column + + + + Delete selected column + Delete selected column + + + + Export table data + Export table data + + + + Import data to the table + Import data to the table + + + + Add new table constraint + Add new table constraint + + + + Edit selected table constraint + Edit selected table constraint + + + + Delete selected table constraint + Delete selected table constraint + + + + Refresh table index list + Refresh table index list + + + + Add new index + Add new index + + + + Edit selected index + Edit selected index + + + + Delete selected index + Delete selected index + + + + Refresh table trigger list + Refresh table trigger list + + + + + Add new trigger + Add new trigger + + + + + Edit selected trigger + Edit selected trigger + + + + + Delete selected trigger + Delete selected trigger + + + + + Go to next tab + Go to next tab + + + + + Go to previous tab + Go to previous tab + + + + A view window + A view window + + + + Commit the view's query + Commit the view's query + + + + Rollback pending changes in the view's query + Rollback pending changes in the view's query + + + + Refresh view trigger list + Refresh view trigger list + + + + Execute the view's query + Execute the view's query + + + + A code snippets editor window + A code snippets editor window + + + + + + + Commit the pending changes + Commit the pending changes + + + + + + + Rollback the pending changes + Rollback the pending changes + + + + A collation editor window + A collation editor window + + + + A function editor window + A function editor window + + + + A SQLite extension editor window + A SQLite extension editor window + + + + QuitConfirmDialog + + + Uncommitted changes + Uncommitted changes + + + + Are you sure you want to quit the application? + +Following items are pending: + Are you sure you want to quit the application? + +Following items are pending: + + + + SearchTextDialog + + + Find or replace + Find or replace + + + + Find: + Find: + + + + Case sensitive + Case sensitive + + + + Search backwards + Search backwards + + + + Regular expression matching + Regular expression matching + + + + Replace && +find next + Replace && +find next + + + + Replace with: + Replace with: + + + + Replace all + Replace all + + + + Find + Find + + + + SortDialog + + + Sort by columns + Sort by columns + + + + + Column + Column + + + + + Order + Order + + + + Sort by: %1 + Sort by: %1 + + + + Move column up + Move column up + + + + Move column down + Move column down + + + + SqlEditor + + + Wrap words + sql editor + Wrap words + + + + Cut + sql editor + Cut + + + + Copy + sql editor + Copy + + + + Paste + sql editor + Paste + + + + Delete + sql editor + Delete + + + + Select all + sql editor + Select all + + + + Undo + sql editor + Undo + + + + Redo + sql editor + Redo + + + + Complete + sql editor + Complete + + + + Format SQL + sql editor + Format SQL + + + + Save SQL to file + sql editor + Save SQL to file + + + + Select file to save SQL + sql editor + Select file to save SQL + + + + Load SQL from file + sql editor + Load SQL from file + + + + Delete line + sql editor + Delete line + + + + Move block down + sql editor + Move block down + + + + Move block up + sql editor + Move block up + + + + Copy block down + sql editor + Copy block down + + + + Copy up down + sql editor + Copy up down + + + + Find + sql editor + Find + + + + Find next + sql editor + Find next + + + + Find previous + sql editor + Find previous + + + + Replace + sql editor + Replace + + + + Toggle comment + sql editor + Toggle comment + + + + Increase font size + sql editor + Increase font size + + + + Decrease font size + sql editor + Decrease font size + + + + Could not open file '%1' for writing: %2 + Could not open file '%1' for writing: %2 + + + + Saved SQL contents to file: %1 + Saved SQL contents to file: %1 + + + + Syntax completion can be used only when a valid database is set for the SQL editor. + Syntax completion can be used only when a valid database is set for the SQL editor. + + + + Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. + Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. + + + + Save to file + Save to file + + + + SQL scripts (*.sql);;All files (*) + SQL scripts (*.sql);;All files (*) + + + + Open file + Open file + + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Reached the end of document. Hit the find again to restart the search. + Reached the end of document. Hit the find again to restart the search. + + + + SqlQueryItem + + + Committing error: + data view tooltip + Committing error: + + + + Column: + data view tooltip + Column: + + + + Data type: + data view + Data type: + + + + Table: + data view tooltip + Table: + + + + Constraints: + data view tooltip + Constraints: + + + + SqlQueryItemDelegate + + + + + + Cannot edit this cell. Details: %1 + Cannot edit this cell. Details: %1 + + + + The row is marked for deletion. + The row is marked for deletion. + + + + + Structure of this table has changed since last data was loaded. Reload the data to proceed. + Structure of this table has changed since last data was loaded. Reload the data to proceed. + + + + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). + + + + Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. + Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. + + + + SqlQueryModel + + + + Only one query can be executed simultaneously. + Only one query can be executed simultaneously. + + + + Cannot execute query on undefined or invalid database. + Cannot execute query on undefined or invalid database. + + + + Cannot execute empty query. + Cannot execute empty query. + + + + Uncommitted data + Uncommitted data + + + + There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. + There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. + + + + Cannot commit the data for a cell that refers to the already closed database. + Cannot commit the data for a cell that refers to the already closed database. + + + + Could not begin transaction on the database. Details: %1 + Could not begin transaction on the database. Details: %1 + + + + An error occurred while committing the transaction: %1 + An error occurred while committing the transaction: %1 + + + + An error occurred while rolling back the transaction: %1 + An error occurred while rolling back the transaction: %1 + + + + Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. + Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. + + + + An error occurred while committing the data: %1 + An error occurred while committing the data: %1 + + + + Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. + Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. + + + + + Error while executing SQL query on database '%1': %2 + Error while executing SQL query on database '%1': %2 + + + + Error while loading query results: %1 + Error while loading query results: %1 + + + + Insert multiple rows + Insert multiple rows + + + + Number of rows to insert: + Number of rows to insert: + + + + Delete rows + Delete rows + + + + You're about to delete newly inserted rows that are not committed yet. Row numbers: %1 +Such deletion will be permanent. Are you sure you want to delete them? + You're about to delete newly inserted rows that are not committed yet. Row numbers: %1 +Such deletion will be permanent. Are you sure you want to delete them? + + + + SqlQueryView + + + Go to referenced row in... + Go to referenced row in... + + + + Copy + Copy + + + + Copy with headers + Copy with headers + + + + Copy as... + Copy as... + + + + Paste + Paste + + + + Paste as... + Paste as... + + + + Set NULL values + Set NULL values + + + + Erase values + Erase values + + + + Commit + Commit + + + + Rollback + Rollback + + + + Commit selected cells + Commit selected cells + + + + Rollback selected cells + Rollback selected cells + + + + Edit current cell inline + Edit current cell inline + + + + Define columns to sort by + Define columns to sort by + + + + Remove custom sorting + Remove custom sorting + + + + Insert row + Insert row + + + + Insert multiple rows + Insert multiple rows + + + + Delete selected row + Delete selected row + + + + Adjust height of rows + Adjust height of rows + + + + Increase font size + data view + Increase font size + + + + Decrease font size + data view + Decrease font size + + + + Invert selection + data view + Invert selection + + + + Edit value in editor + Edit value in editor + + + + Show value in a viewer + Show value in a viewer + + + + Generate query for selected cells + Generate query for selected cells + + + + No items selected to paste clipboard contents to. + No items selected to paste clipboard contents to. + + + + Cannot paste data. Details: %1 + Cannot paste data. Details: %1 + + + + Structure of at least one table used has changed since last data was loaded. Reload the data to proceed. + Structure of at least one table used has changed since last data was loaded. Reload the data to proceed. + + + + Cannot paste to a cell. Details: %1 + Cannot paste to a cell. Details: %1 + + + + The row is marked for deletion. + The row is marked for deletion. + + + + Cannot paste to column %1. Details: %2 + Cannot paste to column %1. Details: %2 + + + + Go to referenced row in table '%1' + Go to referenced row in table '%1' + + + + table '%1' + table '%1' + + + + Referenced row (%1) + Referenced row (%1) + + + + Trim pasted text? + Trim pasted text? + + + + The pasted text contains leading or trailing white space. Trim it automatically? + The pasted text contains leading or trailing white space. Trim it automatically? + + + + Paste "NULL" as null value? + Paste "NULL" as null value? + + + + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + + + + Edit value + Edit value + + + + SqlTableModel + + + Error while committing new row: %1 + Error while committing new row: %1 + + + + Error while deleting row from table %1: %2 + Error while deleting row from table %1: %2 + + + + SqliteExtensionEditor + + + Filter extensions + Filter extensions + + + + Leave empty to use default function + Leave empty to use default function + + + + Extension file + Extension file + + + + Initialization function + Initialization function + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Extension manager window has uncommitted modifications. + Extension manager window has uncommitted modifications. + + + + Extension manager + Extension manager + + + + Commit all extension changes + Commit all extension changes + + + + Rollback all extension changes + Rollback all extension changes + + + + Add new extension + Add new extension + + + + Remove selected extension + Remove selected extension + + + + Editing extensions manual + Editing extensions manual + + + + File with given path does not exist or is not readable. + File with given path does not exist or is not readable. + + + + Unable to load extension: %1 + Unable to load extension: %1 + + + + Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. + Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. + + + + Dynamic link libraries (*.dll);;All files (*) + Dynamic link libraries (*.dll);;All files (*) + + + + Shared objects (*.so);;All files (*) + Shared objects (*.so);;All files (*) + + + + Dynamic libraries (*.dylib);;All files (*) + Dynamic libraries (*.dylib);;All files (*) + + + + All files (*) + All files (*) + + + + Open file + Open file + + + + StatusField + + + Status + Status + + + + Copy + Copy + + + + Clear + Clear + + + + TableConstraintsModel + + + Type + table constraints + Type + + + + Details + table constraints + Details + + + + Name + table constraints + Name + + + + TableForeignKeyPanel + + + Foreign table: + Foreign table: + + + + Columns + Columns + + + + Local column + Local column + + + + Foreign column + Foreign column + + + + Reactions + Reactions + + + + Deferred foreign key + Deferred foreign key + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + Pick the foreign column. + Pick the foreign column. + + + + Pick the foreign table. + Pick the foreign table. + + + + Select at least one foreign column. + Select at least one foreign column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + Foreign column + table constraints + Foreign column + + + + TablePrimaryKeyAndUniquePanel + + + Columns + Columns + + + + Column + Column + + + + Collation + Collation + + + + Sort + Sort + + + + Valid only for a single column with INTEGER data type + Valid only for a single column with INTEGER data type + + + + Autoincrement + Autoincrement + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + On conflict + On conflict + + + + Collate + table constraints + Collate + + + + Sort order + table constraints + Sort order + + + + Select at least one column. + Select at least one column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + TableStructureModel + + + Name + table structure columns + Name + + + + Data type + table structure columns + Data type + + + + Primary +Key + table structure columns + Primary +Key + + + + Foreign +Key + table structure columns + Foreign +Key + + + + Unique + table structure columns + Unique + + + + Check + table structure columns + Check + + + + Not +NULL + table structure columns + Not +NULL + + + + Collate + table structure columns + Collate + + + + Generated + table structure columns + Generated + + + + Default value + table structure columns + Default value + + + + TableWindow + + + Structure + Structure + + + + Table name: + Table name: + + + + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + + + + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + + + + + Data + Data + + + + Constraints + Constraints + + + + Indexes + Indexes + + + + Triggers + Triggers + + + + DDL + DDL + + + + Export table + table window + Export table + + + + Import data to table + table window + Import data to table + + + + Populate table + table window + Populate table + + + + Refresh structure + table window + Refresh structure + + + + Commit structure changes + table window + Commit structure changes + + + + Rollback structure changes + table window + Rollback structure changes + + + + Add column + table window + Add column + + + + Edit column + table window + Edit column + + + + + Delete column + table window + Delete column + + + + Move column up + table window + Move column up + + + + Move column down + table window + Move column down + + + + Create similar table + table window + Create similar table + + + + Reset autoincrement value + table window + Reset autoincrement value + + + + Add table constraint + table window + Add table constraint + + + + Edit table constraint + table window + Edit table constraint + + + + Delete table constraint + table window + Delete table constraint + + + + Move table constraint up + table window + Move table constraint up + + + + Move table constraint down + table window + Move table constraint down + + + + Add table primary key + table window + Add table primary key + + + + Add table foreign key + table window + Add table foreign key + + + + Add table unique constraint + table window + Add table unique constraint + + + + Add table check constraint + table window + Add table check constraint + + + + Refresh index list + table window + Refresh index list + + + + + Create index + table window + Create index + + + + Edit index + table window + Edit index + + + + Delete index + table window + Delete index + + + + Refresh trigger list + table window + Refresh trigger list + + + + + Create trigger + table window + Create trigger + + + + Edit trigger + table window + Edit trigger + + + + Delete trigger + table window + Delete trigger + + + + Are you sure you want to delete column '%1'? + table window + Are you sure you want to delete column '%1'? + + + + Following problems will take place while modifying the table. +Would you like to proceed? + table window + Following problems will take place while modifying the table. +Would you like to proceed? + + + + Table modification + table window + Table modification + + + + Could not load data for table %1. Error details: %2 + Could not load data for table %1. Error details: %2 + + + + Could not process the %1 table correctly. Unable to open a table window. + Could not process the %1 table correctly. Unable to open a table window. + + + + Database + Database + + + + Could not restore window %1, because no database or table was stored in session for this window. + Could not restore window %1, because no database or table was stored in session for this window. + + + + Could not restore window '%1', because no database or table was stored in session for this window. + Could not restore window '%1', because no database or table was stored in session for this window. + + + + Could not restore window '%1', because database %2 could not be resolved. + Could not restore window '%1', because database %2 could not be resolved. + + + + Could not restore window '%1', because the table %2 doesn't exist in the database %3. + Could not restore window '%1', because the table %2 doesn't exist in the database %3. + + + + + New table %1 + New table %1 + + + + Committed changes for table '%1' successfully. + Committed changes for table '%1' successfully. + + + + Committed changes for table '%1' (named before '%2') successfully. + Committed changes for table '%1' (named before '%2') successfully. + + + + Could not commit table structure. Error message: %1 + table window + Could not commit table structure. Error message: %1 + + + + Reset autoincrement + Reset autoincrement + + + + Are you sure you want to reset autoincrement value for table '%1'? + Are you sure you want to reset autoincrement value for table '%1'? + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + An error occurred while trying to reset autoincrement value for table '%1': %2 + + + + Autoincrement value for table '%1' has been reset successfully. + Autoincrement value for table '%1' has been reset successfully. + + + + Empty name + Empty name + + + + A blank name for the table is allowed in SQLite, but it is not recommended. +Are you sure you want to create a table with blank name? + A blank name for the table is allowed in SQLite, but it is not recommended. +Are you sure you want to create a table with blank name? + + + + Cannot create a table without at least one column. + Cannot create a table without at least one column. + + + + Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. + Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. + + + + Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. + Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. + + + + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 + + + + Are you sure you want to delete table constraint '%1'? + table window + Are you sure you want to delete table constraint '%1'? + + + + Delete constraint + table window + Delete constraint + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + Uncommitted changes + Uncommitted changes + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + + + + Go back to structure tab + Go back to structure tab + + + + Commit modifications and browse data. + Commit modifications and browse data. + + + + Name + table window indexes + Name + + + + Unique + table window indexes + Unique + + + + Columns + table window indexes + Columns + + + + Partial index condition + table window indexes + Partial index condition + + + + Name + table window triggers + Name + + + + Event + table window triggers + Event + + + + Condition + table window triggers + Condition + + + + Details + table window triggers + Details + + + + Table window "%1" has uncommitted structure modifications and data. + Table window "%1" has uncommitted structure modifications and data. + + + + Table window "%1" has uncommitted data. + Table window "%1" has uncommitted data. + + + + Table window "%1" has uncommitted structure modifications. + Table window "%1" has uncommitted structure modifications. + + + + TriggerColumnsDialog + + + Trigger columns + Trigger columns + + + + Triggering columns: + Triggering columns: + + + + Select all + Select all + + + + Deselect all + Deselect all + + + + TriggerDialog + + + + Trigger + Trigger + + + + On table: + On table: + + + + Action: + Action: + + + + + <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> + <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> + + + + Pre-condition: + Pre-condition: + + + + The scope is still not fully supported by the SQLite database. + The scope is still not fully supported by the SQLite database. + + + + Trigger name: + Trigger name: + + + + When: + When: + + + + List of columns for UPDATE OF action. + List of columns for UPDATE OF action. + + + + Scope: + Scope: + + + + Code: + Code: + + + + Trigger statements to be executed. + Trigger statements to be executed. + + + + DDL + DDL + + + + On view: + On view: + + + + Could not process trigger %1 correctly. Unable to open a trigger dialog. + Could not process trigger %1 correctly. Unable to open a trigger dialog. + + + + Enter a valid condition. + Enter a valid condition. + + + + Enter a valid trigger code. + Enter a valid trigger code. + + + + Error + trigger dialog + Error + + + + An error occurred while executing SQL statements: +%1 + An error occurred while executing SQL statements: +%1 + + + + VersionConvertSummaryDialog + + + Database version convert + Database version convert + + + + Following changes to the SQL statements will be made: + Following changes to the SQL statements will be made: + + + + Before + Before + + + + After + After + + + + ViewWindow + + + Query + Query + + + + View name: + View name: + + + + Output column names + Output column names + + + + + Data + Data + + + + Triggers + Triggers + + + + DDL + DDL + + + + + Could not restore window '%1', because no database or view was stored in session for this window. + Could not restore window '%1', because no database or view was stored in session for this window. + + + + Could not restore window '%1', because database %2 could not be resolved. + Could not restore window '%1', because database %2 could not be resolved. + + + + Could not restore window '%1', because database %2 could not be open. + Could not restore window '%1', because database %2 could not be open. + + + + Could not restore window '%1', because the view %2 doesn't exist in the database %3. + Could not restore window '%1', because the view %2 doesn't exist in the database %3. + + + + + New view %1 + New view %1 + + + + Database + Database + + + + Refresh the view + view window + Refresh the view + + + + Commit the view changes + view window + Commit the view changes + + + + Rollback the view changes + view window + Rollback the view changes + + + + Explicit column names + Explicit column names + + + + Generate output column names automatically basing on result columns of the view. + Generate output column names automatically basing on result columns of the view. + + + + Add column + view window + Add column + + + + Edit column + view window + Edit column + + + + Delete column + view window + Delete column + + + + Move column up + view window + Move column up + + + + Move column down + view window + Move column down + + + + Refresh trigger list + view window + Refresh trigger list + + + + Create new trigger + view window + Create new trigger + + + + Edit selected trigger + view window + Edit selected trigger + + + + Delete selected trigger + view window + Delete selected trigger + + + + View window "%1" has uncommitted structure modifications and data. + View window "%1" has uncommitted structure modifications and data. + + + + View window "%1" has uncommitted data. + View window "%1" has uncommitted data. + + + + View window "%1" has uncommitted structure modifications. + View window "%1" has uncommitted structure modifications. + + + + Could not load data for view %1. Error details: %2 + Could not load data for view %1. Error details: %2 + + + + Uncommitted changes + Uncommitted changes + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + + + + Go back to structure tab + Go back to structure tab + + + + Commit modifications and browse data. + Commit modifications and browse data. + + + + View '%1' was committed successfully. + View '%1' was committed successfully. + + + + Committed changes for view '%1' successfully. + Committed changes for view '%1' successfully. + + + + Committed changes for view '%1' (named before '%2') successfully. + Committed changes for view '%1' (named before '%2') successfully. + + + + Could not commit view changes. Error message: %1 + view window + Could not commit view changes. Error message: %1 + + + + Override columns + Override columns + + + + Currently defined columns will be overriden. Do you want to continue? + Currently defined columns will be overriden. Do you want to continue? + + + + Could not determinate columns returned from the view. The query is problably incomplete or contains errors. + Could not determinate columns returned from the view. The query is problably incomplete or contains errors. + + + + Name + view window triggers + Name + + + + Instead of + view window triggers + Instead of + + + + Condition + view window triggers + Condition + + + + Details + table window triggers + Details + + + + Could not process the %1 view correctly. Unable to open a view window. + Could not process the %1 view correctly. Unable to open a view window. + + + + Empty name + Empty name + + + + A blank name for the view is allowed in SQLite, but it is not recommended. +Are you sure you want to create a view with blank name? + A blank name for the view is allowed in SQLite, but it is not recommended. +Are you sure you want to create a view with blank name? + + + + The SELECT statement could not be parsed. Please correct the query and retry. +Details: %1 + The SELECT statement could not be parsed. Please correct the query and retry. +Details: %1 + + + + The view could not be modified due to internal SQLiteStudio error. Please report this! + The view could not be modified due to internal SQLiteStudio error. Please report this! + + + + The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. + The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. + + + + Following problems will take place while modifying the view. +Would you like to proceed? + view window + Following problems will take place while modifying the view. +Would you like to proceed? + + + + View modification + view window + View modification + + + + WidgetCover + + + Interrupt + Interrupt + + + diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_en_US.ts b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_en_US.ts new file mode 100644 index 0000000..389b2b6 --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_en_US.ts @@ -0,0 +1,7111 @@ + + + + + AboutDialog + + + About SQLiteStudio and licenses + About SQLiteStudio and licenses + + + + About + About + + + + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + + + + Licenses + Licenses + + + + Environment + Environment + + + + Icon directories + Icon directories + + + + Form directories + Form directories + + + + SQLite extension directories + SQLite extension directories + + + + Plugin directories + Plugin directories + + + + Configuration directory + Configuration directory + + + + Application directory + Application directory + + + + Qt version: + Qt version: + + + + SQLite 3 version: + SQLite 3 version: + + + + Portable distribution. + Portable distribution. + + + + MacOS X application bundle distribution. + MacOS X application bundle distribution. + + + + Operating system managed distribution. + Operating system managed distribution. + + + + <h3>Table of contents:</h3><ol>%2</ol> + <h3>Table of contents:</h3><ol>%2</ol> + + + + BindParamsDialog + + + Query parameters + Query parameters + + + + Please provide values for query parameters + Please provide values for query parameters + + + + CodeSnippetEditor + + + Filter snippets + Filter snippets + + + + + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + + + + + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + + + + Snippet name + Snippet name + + + + Code assistant shortcut + Code assistant shortcut + + + + Snippet code + Snippet code + + + + Code Snippets editor window has uncommitted modifications. + Code Snippets editor window has uncommitted modifications. + + + + Code Snippets editor + Code Snippets editor + + + + Commit all snippet changes + Commit all snippet changes + + + + Rollback all snippet changes + Rollback all snippet changes + + + + Create new snippet + Create new snippet + + + + Delete selected snippet + Delete selected snippet + + + + Move the snippet up + Move the snippet up + + + + Move the snippet down + Move the snippet down + + + + Code snippets manual + Code snippets manual + + + + Enter a non-empty, unique name of the snippet. + Enter a non-empty, unique name of the snippet. + + + + Enter a non-empty snippet content. + Enter a non-empty snippet content. + + + + This hotkey is not unique in context of a code assistant. + This hotkey is not unique in context of a code assistant. + + + + CollationsEditor + + + Filter collations + Filter collations + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Implementation code: + Implementation code: + + + + Collation name: + Collation name: + + + + Implementation language: + Implementation language: + + + + Collations editor + Collations editor + + + + Commit all collation changes + Commit all collation changes + + + + Rollback all collation changes + Rollback all collation changes + + + + Create new collation + Create new collation + + + + Delete selected collation + Delete selected collation + + + + Editing collations manual + Editing collations manual + + + + Enter a non-empty, unique name of the collation. + Enter a non-empty, unique name of the collation. + + + + Pick the implementation language. + Pick the implementation language. + + + + Enter a non-empty implementation code. + Enter a non-empty implementation code. + + + + Collations editor window has uncommitted modifications. + Collations editor window has uncommitted modifications. + + + + ColorButton + + + Pick a color + Pick a color + + + + ColumnCollatePanel + + + Collation name: + Collation name: + + + + Named constraint: + Named constraint: + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + Enter a collation name. + Enter a collation name. + + + + ColumnDefaultPanel + + + Default value: + Default value: + + + + Named constraint: + Named constraint: + + + + Enter a default value expression. + Enter a default value expression. + + + + Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. + Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. + + + + Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. + Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ColumnDialog + + + Column + Column + + + + Name and type + Name and type + + + + Scale + Scale + + + + Precision + Precision + + + + Data type: + Data type: + + + + Column name: + Column name: + + + + Size: + Size: + + + + Constraints + Constraints + + + + Generated value + Generated value + + + + Unique + Unique + + + + + + + + + + + Configure + Configure + + + + Foreign Key + Foreign Key + + + + Collate + Collate + + + + Not NULL + Not NULL + + + + Check condition + Check condition + + + + Primary Key + Primary Key + + + + Default + Default + + + + Advanced mode + Advanced mode + + + + Add constraint + column dialog + Add constraint + + + + Edit constraint + column dialog + Edit constraint + + + + + Delete constraint + column dialog + Delete constraint + + + + Move constraint up + column dialog + Move constraint up + + + + Move constraint down + column dialog + Move constraint down + + + + Add a primary key + column dialog + Add a primary key + + + + Add a foreign key + column dialog + Add a foreign key + + + + Add an unique constraint + column dialog + Add an unique constraint + + + + Add a check constraint + column dialog + Add a check constraint + + + + Add a not null constraint + column dialog + Add a not null constraint + + + + Add a collate constraint + column dialog + Add a collate constraint + + + + Add a generated value constraint + column dialog + Add a generated value constraint + + + + Add a default constraint + column dialog + Add a default constraint + + + + Are you sure you want to delete constraint '%1'? + column dialog + Are you sure you want to delete constraint '%1'? + + + + Correct the constraint's configuration. + Correct the constraint's configuration. + + + + Scale is not allowed for INTEGER PRIMARY KEY columns. + Scale is not allowed for INTEGER PRIMARY KEY columns. + + + + Precision cannot be defined without the scale. + Precision cannot be defined without the scale. + + + + Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. + Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. + + + + INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. + INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. + + + + Precision is not allowed for INTEGER PRIMARY KEY columns. + Precision is not allowed for INTEGER PRIMARY KEY columns. + + + + Could not match valid STRICT table datatype from declared type: %1. + Could not match valid STRICT table datatype from declared type: %1. + + + + ColumnDialogConstraintsModel + + + Type + column dialog constraints + Type + + + + Name + column dialog constraints + Name + + + + Details + column dialog constraints + Details + + + + ColumnForeignKeyPanel + + + Foreign table: + Foreign table: + + + + Foreign column: + Foreign column: + + + + Reactions + Reactions + + + + Deferred foreign key + Deferred foreign key + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + Pick the foreign table. + Pick the foreign table. + + + + Pick the foreign column. + Pick the foreign column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ColumnGeneratedPanel + + + Generating code: + Generating code: + + + + Explicit type: + Explicit type: + + + + Use "GENERATED ALWAYS" keywords + Use "GENERATED ALWAYS" keywords + + + + Named constraint: + Named constraint: + + + + Enter the column value generating expression. + Enter the column value generating expression. + + + + Invalid value generating expression: %1. + Invalid value generating expression: %1. + + + + Invalid value generating expression. + Invalid value generating expression. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ColumnPrimaryKeyPanel + + + Autoincrement + Autoincrement + + + + Sort order: + Sort order: + + + + Named constraint: + Named constraint: + + + + On conflict: + On conflict: + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + Descending order is not allowed with AUTOINCREMENT. + Descending order is not allowed with AUTOINCREMENT. + + + + ColumnUniqueAndNotNullPanel + + + Named constraint: + Named constraint: + + + + On conflict: + On conflict: + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + CompleterWindow + + + Column: %1 + completer statusbar + Column: %1 + + + + Table: %1 + completer statusbar + Table: %1 + + + + Index: %1 + completer statusbar + Index: %1 + + + + Trigger: %1 + completer statusbar + Trigger: %1 + + + + View: %1 + completer statusbar + View: %1 + + + + Database: %1 + completer statusbar + Database: %1 + + + + Keyword: %1 + completer statusbar + Keyword: %1 + + + + Function: %1 + completer statusbar + Function: %1 + + + + Operator: %1 + completer statusbar + Operator: %1 + + + + String + completer statusbar + String + + + + Number + completer statusbar + Number + + + + Binary data + completer statusbar + Binary data + + + + Collation: %1 + completer statusbar + Collation: %1 + + + + Pragma function: %1 + completer statusbar + Pragma function: %1 + + + + Insert a code snippet + Insert a code snippet + + + + ConfigDialog + + + + Configuration + Configuration + + + + Search + Search + + + + General + General + + + + Keyboard shortcuts + Keyboard shortcuts + + + + Look & feel + Look & feel + + + + Style + Style + + + + Fonts + Fonts + + + + Code colors + Code colors + + + + + Database list + Database list + + + + Code assistant + Code assistant + + + + Data browsing + Data browsing + + + + Data editors + Data editors + + + + Plugins + Plugins + + + + Code formatters + Code formatters + + + + If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. + If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. + + + + Sort table columns alphabetically + Sort table columns alphabetically + + + + Expand tables node when connected to a database + Expand tables node when connected to a database + + + + <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> + <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> + + + + Display additional labels on the list + Display additional labels on the list + + + + For regular tables labels will show number of columns, indexes and triggers for each of tables. + For regular tables labels will show number of columns, indexes and triggers for each of tables. + + + + Display labels for regular tables + Display labels for regular tables + + + + Virtual tables will be marked with a 'virtual' label. + Virtual tables will be marked with a 'virtual' label. + + + + Display labels for virtual tables + Display labels for virtual tables + + + + Expand views node when connected to a database + Expand views node when connected to a database + + + + If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) + If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) + + + + Sort objects (tables, indexes, triggers and views) alphabetically + Sort objects (tables, indexes, triggers and views) alphabetically + + + + Display system tables and indexes on the list + Display system tables and indexes on the list + + + + Database dialog window + Database dialog window + + + + <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> + <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> + + + + Do not mark database to be "permanent" by default + Do not mark database to be "permanent" by default + + + + <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> + <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> + + + + Try to bypass dialog completly when dropping database file onto the list + Try to bypass dialog completly when dropping database file onto the list + + + + Data browsing and editing + Data browsing and editing + + + + + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + + + + Number of memorized table populating configurations + Number of memorized table populating configurations + + + + Data column width + Data column width + + + + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + + + + Enlarge column when entering value longer than current width + Enlarge column when entering value longer than current width + + + + <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> + <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> + + + + Number of data rows per page: + Number of data rows per page: + + + + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> + + + + Show column and row details tooltip in data view + Show column and row details tooltip in data view + + + + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + + + + Keep NULL value when entering empty value + Keep NULL value when entering empty value + + + + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> + + + + Use DEFAULT value (if defined), when committing NULL value + Use DEFAULT value (if defined), when committing NULL value + + + + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + + + + Limit number of rows for in case of dozens of columns + Limit number of rows for in case of dozens of columns + + + + Inserting new row in data grid + Inserting new row in data grid + + + + Before currently selected row + Before currently selected row + + + + After currently selected row + After currently selected row + + + + At the end of data view + At the end of data view + + + + Table windows + Table windows + + + + <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> + <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> + + + + Open Table Windows with the data tab for start + Open Table Windows with the data tab for start + + + + <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> + <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> + + + + Place data tab as first tab in a Table Window + Place data tab as first tab in a Table Window + + + + View windows + View windows + + + + <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> + <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> + + + + Open View Windows with the data tab for start + Open View Windows with the data tab for start + + + + <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> + <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> + + + + Place data tab as first tab in a View Window + Place data tab as first tab in a View Window + + + + Data types + Data types + + + + Available editors: + Available editors: + + + + Editors selected for this data type: + Editors selected for this data type: + + + + Schema editing + Schema editing + + + + Number of DDL changes kept in history. + Number of DDL changes kept in history. + + + + DDL history size: + DDL history size: + + + + Don't show DDL preview dialog when committing schema changes + Don't show DDL preview dialog when committing schema changes + + + + SQL queries + SQL queries + + + + + Number of queries kept in the history. + Number of queries kept in the history. + + + + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> + + + + History size: + History size: + + + + + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> + + + + Execute only the query under the cursor + Execute only the query under the cursor + + + + Number of memorized query parameters + Number of memorized query parameters + + + + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + + + + Use scientific notation for real numbers in the grid view + Use scientific notation for real numbers in the grid view + + + + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + + + + Limit automatic data column width to (in pixels): + Limit automatic data column width to (in pixels): + + + + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + + + + Keep at least the width to show complete column name + Keep at least the width to show complete column name + + + + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + + + + Wrap lines in SQL editor + Wrap lines in SQL editor + + + + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + + + + Highlight current query + Highlight current query + + + + Updates + Updates + + + + Automatically check for updates at startup + Automatically check for updates at startup + + + + Session + Session + + + + Restore last session (active MDI windows) after startup + Restore last session (active MDI windows) after startup + + + + Allow multiple instances of the application at the same time + Allow multiple instances of the application at the same time + + + + Status Field + Status Field + + + + <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> + <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> + + + + Always open Status panel when new message is printed + Always open Status panel when new message is printed + + + + Code syntax colors + Code syntax colors + + + + Keyword foreground + Keyword foreground + + + + Regular foreground + Regular foreground + + + + String foreground + String foreground + + + + Comment foreground + Comment foreground + + + + Valid objects foreground + Valid objects foreground + + + + Current query background + Current query background + + + + Bind parameter foreground + Bind parameter foreground + + + + Current line background + Current line background + + + + Matched parenthesis background + Matched parenthesis background + + + + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + + + + Number foreground + Number foreground + + + + BLOB value foreground + BLOB value foreground + + + + Matched parenthesis foreground + Matched parenthesis foreground + + + + Reset to defaults + Reset to defaults + + + + Filter shortcuts by name or key combination + Filter shortcuts by name or key combination + + + + Action + Action + + + + Key combination + Key combination + + + + + Language + Language + + + + Changing language requires application restart to take effect. + Changing language requires application restart to take effect. + + + + Compact layout + Compact layout + + + + <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> + <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> + + + + Use compact layout + Use compact layout + + + + Main window dock areas + Main window dock areas + + + + Left and right areas occupy corners + Left and right areas occupy corners + + + + Top and bottom areas occupy corners + Top and bottom areas occupy corners + + + + Hide built-in plugins + Hide built-in plugins + + + + Current style: + Current style: + + + + Preview + Preview + + + + Enabled + Enabled + + + + Disabled + Disabled + + + + Active formatter plugin + Active formatter plugin + + + + SQL editor font + SQL editor font + + + + Database list font + Database list font + + + + Database list additional label font + Database list additional label font + + + + Data view font + Data view font + + + + Status field font + Status field font + + + + Code assistant settings + Code assistant settings + + + + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + + + + Automatically trigger the assistant after a dot is typed after an object name + Automatically trigger the assistant after a dot is typed after an object name + + + + Description: + plugin details + Description: + + + + Category: + plugin details + Category: + + + + Version: + plugin details + Version: + + + + Author: + plugin details + Author: + + + + Internal name: + plugin details + Internal name: + + + + Dependencies: + plugin details + Dependencies: + + + + Conflicts: + plugin details + Conflicts: + + + + Plugin details + Plugin details + + + + Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. + Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. + + + + %1 (built-in) + plugins manager in configuration dialog + %1 (built-in) + + + + Details + Details + + + + No plugins in this category. + No plugins in this category. + + + + Add new data type + Add new data type + + + + Rename selected data type + Rename selected data type + + + + Delete selected data type + Delete selected data type + + + + Help for configuring data type editors + Help for configuring data type editors + + + + Clear hotkey for this action + Clear hotkey for this action + + + + Restore original hotkey for this action + Restore original hotkey for this action + + + + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + + + + ConstraintCheckPanel + + + The condition + The condition + + + + Named constraint: + Named constraint: + + + + On conflict + On conflict + + + + Enter a valid condition. + Enter a valid condition. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ConstraintDialog + + + New constraint + constraint dialog + New constraint + + + + Create + constraint dialog + Create + + + + Edit constraint + dialog window + Edit constraint + + + + Apply + constraint dialog + Apply + + + + Primary key + table constraints + Primary key + + + + Foreign key + table constraints + Foreign key + + + + Unique + table constraints + Unique + + + + Not NULL + table constraints + Not NULL + + + + Check + table constraints + Check + + + + Generated + table constraints + Generated + + + + Collate + table constraints + Collate + + + + Default + table constraints + Default + + + + ConstraintTabModel + + + Table + table constraints + Table + + + + Column (%1) + table constraints + Column (%1) + + + + Scope + table constraints + Scope + + + + Type + table constraints + Type + + + + Details + table constraints + Details + + + + Name + table constraints + Name + + + + CssDebugDialog + + + SQLiteStudio CSS console + SQLiteStudio CSS console + + + + DataView + + + Filter data + data view + Filter data + + + + Grid view + Grid view + + + + Form view + Form view + + + + Refresh table data + data view + Refresh table data + + + + First page + data view + First page + + + + Previous page + data view + Previous page + + + + Next page + data view + Next page + + + + Last page + data view + Last page + + + + Commit changes for selected cells + data view + Commit changes for selected cells + + + + Rollback changes for selected cells + data view + Rollback changes for selected cells + + + + Show grid view of results + data view + Show grid view of results + + + + Show form view of results + data view + Show form view of results + + + + Filter by text (if contains) + data view + Filter by text (if contains) + + + + Filter strictly by text (if equals) + data view + Filter strictly by text (if equals) + + + + Tabs on top + data view + Tabs on top + + + + Tabs at bottom + data view + Tabs at bottom + + + + Place new rows above selected row + data view + Place new rows above selected row + + + + Place new rows below selected row + data view + Place new rows below selected row + + + + Place new rows at the end of the data view + data view + Place new rows at the end of the data view + + + + Total number of rows is being counted. +Browsing other pages will be possible after the row counting is done. + Total number of rows is being counted. +Browsing other pages will be possible after the row counting is done. + + + + Row: %1 + Row: %1 + + + + Filter + Filter + + + + Hit Enter key or press "Apply filter" button on toolbar to apply new value. + Hit Enter key or press "Apply filter" button on toolbar to apply new value. + + + + Filter by the Regular Expression + data view + Filter by the Regular Expression + + + + Filter by SQL expression + data view + Filter by SQL expression + + + + Show filter inputs per column + data view + Show filter inputs per column + + + + Apply filter + data view + Apply filter + + + + DbDialog + + + Database + Database + + + + Database type + Database type + + + + Database driver + Database driver + + + + + File + File + + + + Name (on the list) + Name (on the list) + + + + Options + Options + + + + <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> + aasfd + <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> + + + + Permanent (keep it in configuration) + Permanent (keep it in configuration) + + + + Test connection + Test connection + + + + Select new or existing file on local computer + Select new or existing file on local computer + + + + Browse + Browse + + + + Database type not selected. + Database type not selected. + + + + Database path not specified. + Database path not specified. + + + + Enter an unique database name. + Enter an unique database name. + + + + This name is already in use. Please enter unique name. + This name is already in use. Please enter unique name. + + + + <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> + <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> + + + + Enter a database file path. + Enter a database file path. + + + + This database is already on the list under name: %1 + This database is already on the list under name: %1 + + + + Select a database type. + Select a database type. + + + + DbObjectDialogs + + + Delete table + Delete table + + + + Are you sure you want to delete table %1? + Are you sure you want to delete table %1? + + + + Delete index + Delete index + + + + Are you sure you want to delete index %1? + Are you sure you want to delete index %1? + + + + Delete trigger + Delete trigger + + + + Are you sure you want to delete trigger %1? + Are you sure you want to delete trigger %1? + + + + Delete view + Delete view + + + + Are you sure you want to delete view %1? + Are you sure you want to delete view %1? + + + + + Error while dropping %1: %2 + Error while dropping %1: %2 + + + + Delete objects + Delete objects + + + + Are you sure you want to delete following objects: +%1 + Are you sure you want to delete following objects: +%1 + + + + Cannot start transaction. Details: %1 + Cannot start transaction. Details: %1 + + + + Cannot commit transaction. Details: %1 + Cannot commit transaction. Details: %1 + + + + DbTree + + + Databases + Databases + + + + Filter by name + Filter by name + + + + Copy + Copy + + + + Paste + Paste + + + + Select all + Select all + + + + Create a group + Create a group + + + + Delete the group + Delete the group + + + + Rename the group + Rename the group + + + + &Add a database + &Add a database + + + + &Edit the database + &Edit the database + + + + &Remove the database + &Remove the database + + + + &Connect to the database + &Connect to the database + + + + &Disconnect from the database + &Disconnect from the database + + + + Import + Import + + + + &Export the database + &Export the database + + + + Vac&uum + Vac&uum + + + + &Integrity check + &Integrity check + + + + Create a &table + Create a &table + + + + Edit the t&able + Edit the t&able + + + + Delete the ta&ble + Delete the ta&ble + + + + Export the table + Export the table + + + + Import into the table + Import into the table + + + + Populate table + Populate table + + + + Create similar table + Create similar table + + + + Reset autoincrement sequence + Reset autoincrement sequence + + + + Create an &index + Create an &index + + + + Edit the i&ndex + Edit the i&ndex + + + + Delete the in&dex + Delete the in&dex + + + + Create a trig&ger + Create a trig&ger + + + + Edit the trigg&er + Edit the trigg&er + + + + Delete the trigge&r + Delete the trigge&r + + + + Create a &view + Create a &view + + + + Edit the v&iew + Edit the v&iew + + + + Delete the vi&ew + Delete the vi&ew + + + + Add a column + Add a column + + + + Edit the column + Edit the column + + + + Delete the column + Delete the column + + + + Delete selected items + Delete selected items + + + + Clear filter + Clear filter + + + + &Refresh all database schemas + &Refresh all database schemas + + + + Re&fresh selected database schema + Re&fresh selected database schema + + + + + Erase table data + Erase table data + + + + Open file's directory + Open file's directory + + + + Execute SQL from file + Execute SQL from file + + + + Increase font size + database list + Increase font size + + + + Decrease font size + database list + Decrease font size + + + + + Database + Database + + + + Grouping + Grouping + + + + Generate query for table + Generate query for table + + + + + Create group + Create group + + + + Group name + Group name + + + + Entry with name %1 already exists in group %2. + Entry with name %1 already exists in group %2. + + + + Delete group + Delete group + + + + Are you sure you want to delete group %1? +All objects from this group will be moved to parent group. + Are you sure you want to delete group %1? +All objects from this group will be moved to parent group. + + + + Are you sure you want to remove database '%1' from the list? + Are you sure you want to remove database '%1' from the list? + + + + Are you sure you want to remove following databases from the list: +%1 + Are you sure you want to remove following databases from the list: +%1 + + + + Remove database + Remove database + + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Vacuum (%1) + Vacuum (%1) + + + + Integrity check (%1) + Integrity check (%1) + + + + Reset autoincrement + Reset autoincrement + + + + Are you sure you want to reset autoincrement value for table '%1'? + Are you sure you want to reset autoincrement value for table '%1'? + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + An error occurred while trying to reset autoincrement value for table '%1': %2 + + + + Autoincrement value for table '%1' has been reset successfully. + Autoincrement value for table '%1' has been reset successfully. + + + + Are you sure you want to delete all data from table(s): %1? + Are you sure you want to delete all data from table(s): %1? + + + + An error occurred while trying to delete data from table '%1': %2 + An error occurred while trying to delete data from table '%1': %2 + + + + All data has been deleted for table '%1'. + All data has been deleted for table '%1'. + + + + Following objects will be deleted: %1. + Following objects will be deleted: %1. + + + + Following databases will be removed from list: %1. + Following databases will be removed from list: %1. + + + + Remainig objects from deleted group will be moved in place where the group used to be. + Remainig objects from deleted group will be moved in place where the group used to be. + + + + %1<br><br>Are you sure you want to continue? + %1<br><br>Are you sure you want to continue? + + + + Delete objects + Delete objects + + + + DbTreeItemDelegate + + + error + dbtree labels + error + + + + (system table) + database tree label + (system table) + + + + (virtual) + virtual table label + (virtual) + + + + (system index) + database tree label + (system index) + + + + DbTreeModel + + + Database: %1 + dbtree tooltip + Database: %1 + + + + URI: + dbtree tooltip + URI: + + + + Version: + dbtree tooltip + Version: + + + + File size: + dbtree tooltip + File size: + + + + Encoding: + dbtree tooltip + Encoding: + + + + Error: + dbtree tooltip + Error: + + + + Table : %1 + dbtree tooltip + Table : %1 + + + + Columns (%1): + dbtree tooltip + Columns (%1): + + + + Indexes (%1): + dbtree tooltip + Indexes (%1): + + + + Triggers (%1): + dbtree tooltip + Triggers (%1): + + + + Copy + Copy + + + + Move + Move + + + + Include data + Include data + + + + Include indexes + Include indexes + + + + Include triggers + Include triggers + + + + Abort + Abort + + + + Could not add dropped database file '%1' automatically. Manual setup is necessary. + Could not add dropped database file '%1' automatically. Manual setup is necessary. + + + + Referenced tables + Referenced tables + + + + Do you want to include following referenced tables as well: +%1 + Do you want to include following referenced tables as well: +%1 + + + + Name conflict + Name conflict + + + + Following object already exists in the target database. +Please enter new, unique name, or press '%1' to abort the operation: + Following object already exists in the target database. +Please enter new, unique name, or press '%1' to abort the operation: + + + + SQL statements conversion + SQL statements conversion + + + + Following error occurred while converting SQL statements to the target SQLite version: + Following error occurred while converting SQL statements to the target SQLite version: + + + + Would you like to ignore those errors and proceed? + Would you like to ignore those errors and proceed? + + + + DdlHistoryWindow + + + Filter by database: + Filter by database: + + + + Clear entire history + Clear entire history + + + + -- Queries executed on database %1 (%2) +-- Date and time of execution: %3 +%4 + -- Queries executed on database %1 (%2) +-- Date and time of execution: %3 +%4 + + + + Clear history + Clear history + + + + Are you sure you want to erase entire DDL history? + Are you sure you want to erase entire DDL history? + + + + DDL history + DDL history + + + + DdlPreviewDialog + + + Queries to be executed + Queries to be executed + + + + Don't show again + Don't show again + + + + DebugConsole + + + SQLiteStudio Debug Console + SQLiteStudio Debug Console + + + + EditorWindow + + + SQL editor + SQL editor + + + + Query + Query + + + + History + History + + + + Results in the separate tab + Results in the separate tab + + + + Results below the query + Results below the query + + + + + SQL editor %1 + SQL editor %1 + + + + + Results + Results + + + + Execute query + Execute query + + + + Explain query + Explain query + + + + Clear execution history + sql editor + Clear execution history + + + + Export results + sql editor + Export results + + + + Create view from query + sql editor + Create view from query + + + + Previous database + Previous database + + + + Next database + Next database + + + + Show next tab + sql editor + Show next tab + + + + Show previous tab + sql editor + Show previous tab + + + + Focus results below + sql editor + Focus results below + + + + Focus SQL editor above + sql editor + Focus SQL editor above + + + + Delete selected SQL history entries + sql editor + Delete selected SQL history entries + + + + Execute single query under cursor + Execute single query under cursor + + + + Execute all queries in editor + Execute all queries in editor + + + + Active database (%1/%2) + Active database (%1/%2) + + + + Query finished in %1 second(s). Rows affected: %2 + Query finished in %1 second(s). Rows affected: %2 + + + + Query finished in %1 second(s). + Query finished in %1 second(s). + + + + Clear execution history + Clear execution history + + + + Are you sure you want to erase the entire SQL execution history? This cannot be undone. + Are you sure you want to erase the entire SQL execution history? This cannot be undone. + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + No database selected in the SQL editor. Cannot create a view for unknown database. + No database selected in the SQL editor. Cannot create a view for unknown database. + + + + Editor window "%1" has uncommitted data. + Editor window "%1" has uncommitted data. + + + + ErrorsConfirmDialog + + + Errors + Errors + + + + Following errors occured: + Following errors occured: + + + + Would you like to proceed? + Would you like to proceed? + + + + ExecFromFileDialog + + + Execute SQL from file + Execute SQL from file + + + + Input file + Input file + + + + Path to file + Path to file + + + + Browse for file + Browse for file + + + + Options + Options + + + + File encoding + File encoding + + + + Skip failing SQL statements + Skip failing SQL statements + + + + SQL scripts (*.sql);;All files (*) + SQL scripts (*.sql);;All files (*) + + + + Execute SQL file + Execute SQL file + + + + Please provide file to be executed. + Please provide file to be executed. + + + + Provided file does not exist or cannot be read. + Provided file does not exist or cannot be read. + + + + ExportDialog + + + Export + Export + + + + What do you want to export? + What do you want to export? + + + + A database + A database + + + + A single table + A single table + + + + Query results + Query results + + + + Table to export + Table to export + + + + Database + Database + + + + Table + Table + + + + Options + Options + + + + When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. + When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. + + + + Export table data + Export table data + + + + Export table indexes + Export table indexes + + + + Export table triggers + Export table triggers + + + + Note, that exporting table indexes and triggers may be unsupported by some output formats. + Note, that exporting table indexes and triggers may be unsupported by some output formats. + + + + Select database objects to export + Select database objects to export + + + + Export data from tables + Export data from tables + + + + Select all + Select all + + + + Deselect all + Deselect all + + + + + Database: + Database: + + + + Query to export results for + Query to export results for + + + + Query to be executed for results: + Query to be executed for results: + + + + Export format and options + Export format and options + + + + Export format + Export format + + + + Output + Output + + + + Exported file path + Exported file path + + + + Clipboard + Clipboard + + + + File + File + + + + Exported text encoding: + Exported text encoding: + + + + Export format options + Export format options + + + + Cancel + Cancel + + + + + + Select database to export. + Select database to export. + + + + Select table to export. + Select table to export. + + + + Enter valid query to export. + Enter valid query to export. + + + + Select at least one object to export. + Select at least one object to export. + + + + You must provide a file name to export to. + You must provide a file name to export to. + + + + Path you provided is an existing directory. You cannot overwrite it. + Path you provided is an existing directory. You cannot overwrite it. + + + + The directory '%1' does not exist. + The directory '%1' does not exist. + + + + The file '%1' exists and will be overwritten. + The file '%1' exists and will be overwritten. + + + + All files (*) + All files (*) + + + + Pick file to export to + Pick file to export to + + + + Internal error during export. This is a bug. Please report it. + Internal error during export. This is a bug. Please report it. + + + + FileExecErrorsDialog + + + Execution errors + Execution errors + + + + Following errors were encountered during execution of SQL statements from the file: + Following errors were encountered during execution of SQL statements from the file: + + + + SQL + SQL + + + + Error + Error + + + + Statements that were executed successfully were commited. + Statements that were executed successfully were commited. + + + + Statements that were executed successfully were rolled back. + Statements that were executed successfully were rolled back. + + + + FkComboBox + + + Cannot edit this cell. Details: %1 + Cannot edit this cell. Details: %1 + + + + FontEdit + + + Choose font + font configuration + Choose font + + + + Form + + + Active SQL formatter plugin + Active SQL formatter plugin + + + + FormView + + + Commit row + form view + Commit row + + + + Rollback row + form view + Rollback row + + + + First row + form view + First row + + + + Previous row + form view + Previous row + + + + Next row + form view + Next row + + + + Last row + form view + Last row + + + + Insert new row + form view + Insert new row + + + + Delete current row + form view + Delete current row + + + + FunctionsEditor + + + Filter functions + Filter functions + + + + Input arguments + Input arguments + + + + Undefined + Undefined + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Type: + Type: + + + + Function name: + Function name: + + + + Implementation language: + Implementation language: + + + + Deterministic + Deterministic + + + + Initialization code: + Initialization code: + + + + + Function implementation code: + Function implementation code: + + + + Final step implementation code: + Final step implementation code: + + + + SQL functions editor + SQL functions editor + + + + Commit all function changes + Commit all function changes + + + + Rollback all function changes + Rollback all function changes + + + + Create new function + Create new function + + + + Delete selected function + Delete selected function + + + + Custom SQL functions manual + Custom SQL functions manual + + + + Add function argument + Add function argument + + + + Rename function argument + Rename function argument + + + + Delete function argument + Delete function argument + + + + Move function argument up + Move function argument up + + + + Move function argument down + Move function argument down + + + + Scalar + Scalar + + + + Aggregate + Aggregate + + + + Enter a non-empty, unique name of the function. + Enter a non-empty, unique name of the function. + + + + Pick the implementation language. + Pick the implementation language. + + + + Per step code: + Per step code: + + + + Enter a non-empty implementation code. + Enter a non-empty implementation code. + + + + argument + new function argument name in function editor window + argument + + + + Functions editor window has uncommitted modifications. + Functions editor window has uncommitted modifications. + + + + ImportDialog + + + Import data + Import data + + + + Table to import to + Table to import to + + + + Table + Table + + + + Database + Database + + + + Data source to import from + Data source to import from + + + + Data source type + Data source type + + + + Options + Options + + + + Text encoding: + Text encoding: + + + + Input file: + Input file: + + + + <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> + <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> + + + + Ignore errors + Ignore errors + + + + Data source options + Data source options + + + + Cancel + Cancel + + + + If you type table name that doesn't exist, it will be created. + If you type table name that doesn't exist, it will be created. + + + + Enter the table name + Enter the table name + + + + Select import plugin. + Select import plugin. + + + + You must provide a file to import from. + You must provide a file to import from. + + + + The file '%1' does not exist. + The file '%1' does not exist. + + + + Path you provided is a directory. A regular file is required. + Path you provided is a directory. A regular file is required. + + + + Pick file to import from + Pick file to import from + + + + IndexDialog + + + + Index + Index + + + + Column + Column + + + + Sort + Sort + + + + Collation + Collation + + + + On table: + On table: + + + + Delete selected indexed expression + Delete selected indexed expression + + + + Moves selected index column up in the order, making it more significant in the index. + Moves selected index column up in the order, making it more significant in the index. + + + + Moves selected index column down in the order, making it less significant in the index. + Moves selected index column down in the order, making it less significant in the index. + + + + Partial index condition + Partial index condition + + + + Unique index + Unique index + + + + Index name: + Index name: + + + + Edit selected indexed expression + Edit selected indexed expression + + + + Add indexed expression + Add indexed expression + + + + DDL + DDL + + + + Tried to open index dialog for closed or inexisting database. + Tried to open index dialog for closed or inexisting database. + + + + Could not process index %1 correctly. Unable to open an index dialog. + Could not process index %1 correctly. Unable to open an index dialog. + + + + Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. + Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. + + + + Pick the table for the index. + Pick the table for the index. + + + + Select at least one column. + Select at least one column. + + + + Enter a valid condition. + Enter a valid condition. + + + + default + index dialog + default + + + + Sort order + table constraints + Sort order + + + + + Error + index dialog + Error + + + + Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? + Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? + + + + An error occurred while executing SQL statements: +%1 + An error occurred while executing SQL statements: +%1 + + + + IndexExprColumnDialog + + + Indexed expression + Indexed expression + + + + Expression to index + Expression to index + + + + This expression is already indexed by the index. + This expression is already indexed by the index. + + + + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. + + + + Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. + Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. + + + + It's forbidden to use 'SELECT' statements in indexed expressions. + It's forbidden to use 'SELECT' statements in indexed expressions. + + + + Enter an indexed expression. + Enter an indexed expression. + + + + Invalid expression. + Invalid expression. + + + + LanguageDialog + + + Language + Language + + + + Please choose language: + Please choose language: + + + + MainWindow + + + Database toolbar + Database toolbar + + + + Structure toolbar + Structure toolbar + + + + Tools + Tools + + + + Window list + Window list + + + + View toolbar + View toolbar + + + + Configuration widgets + Configuration widgets + + + + Syntax highlighting engines + Syntax highlighting engines + + + + Data editors + Data editors + + + + Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. + Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. + + + + Running in debug mode. Debug messages are printed to the standard output. + Running in debug mode. Debug messages are printed to the standard output. + + + + You need to restart application to make the language change take effect. + You need to restart application to make the language change take effect. + + + + Open SQL &editor + Open SQL &editor + + + + Open DDL &history + Open DDL &history + + + + Open SQL &functions editor + Open SQL &functions editor + + + + Open code &snippets editor + Open code &snippets editor + + + + Open &collations editor + Open &collations editor + + + + Open ex&tension manager + Open ex&tension manager + + + + &Import + &Import + + + + E&xport + E&xport + + + + Open confi&guration dialog + Open confi&guration dialog + + + + &Tile windows + &Tile windows + + + + Tile windows &horizontally + Tile windows &horizontally + + + + Tile windows &vertically + Tile windows &vertically + + + + &Cascade windows + &Cascade windows + + + + Next window + Next window + + + + Previous window + Previous window + + + + Hide status field + Hide status field + + + + Close &all windows + Close &all windows + + + + Re&store recently closed window + Re&store recently closed window + + + + Close current &window + Close current &window + + + + Close &other windows + Close &other windows + + + + Close windows on the &left + Close windows on the &left + + + + Close windows on the &right + Close windows on the &right + + + + Re&name selected window + Re&name selected window + + + + Open Debug Console + Open Debug Console + + + + Open CSS Console + Open CSS Console + + + + Report a &bug + Report a &bug + + + + D&onate + D&onate + + + + Propose a new &feature + Propose a new &feature + + + + &About + &About + + + + &Licenses + &Licenses + + + + Open home &page + Open home &page + + + + User &Manual + User &Manual + + + + SQLite &documentation + SQLite &documentation + + + + Bugs and feature &requests + Bugs and feature &requests + + + + Quit + Quit + + + + Check for &updates + Check for &updates + + + + &Database + menubar + &Database + + + + &Structure + menubar + &Structure + + + + &View + menubar + &View + + + + Window list + menubar view menu + Window list + + + + &Tools + menubar + &Tools + + + + &Help + &Help + + + + Could not set style: %1 + main window + Could not set style: %1 + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + Rename window + Rename window + + + + Enter new name for the window: + Enter new name for the window: + + + + New updates are available. <a href="%1">Click here for details</a>. + New updates are available. <a href="%1">Click here for details</a>. + + + + You're running the most recent version. No updates are available. + You're running the most recent version. No updates are available. + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + Database passed in command line parameters (%1) was already on the list under name: %2 + + + + Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 + Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + MdiWindow + + + Uncommitted changes + Uncommitted changes + + + + Close anyway + Close anyway + + + + Don't close + Don't close + + + + MultiEditor + + + Null value + multieditor + Null value + + + + Configure editors for this data type + Configure editors for this data type + + + + Open another tab + Open another tab + + + + Foreign Key + Foreign Key + + + + Data editor plugin '%1' not loaded, while it is defined for editing '%2' data type. + Data editor plugin '%1' not loaded, while it is defined for editing '%1' data type. {1'?} {2'?} {1' or 2'?} + + + + Deleted + multieditor + Deleted + + + + Read only + multieditor + Read only + + + + MultiEditorBoolPlugin + + + Boolean + Boolean + + + + MultiEditorDatePlugin + + + Date + Date + + + + MultiEditorDateTimePlugin + + + Date & time + Date & time + + + + MultiEditorHexPlugin + + + Hex + Hex + + + + MultiEditorNumericPlugin + + + Number + numeric multi editor tab name + Number + + + + MultiEditorText + + + Tab changes focus + Tab changes focus + + + + Cut + Cut + + + + Copy + Copy + + + + Paste + Paste + + + + Delete + Delete + + + + Undo + Undo + + + + Redo + Redo + + + + MultiEditorTextPlugin + + + Text + Text + + + + MultiEditorTimePlugin + + + Time + Time + + + + NewConstraintDialog + + + New constraint + New constraint + + + + + Primary Key + new constraint dialog + Primary Key + + + + + Foreign Key + new constraint dialog + Foreign Key + + + + + Unique + new constraint dialog + Unique + + + + + Check + new constraint dialog + Check + + + + Not NULL + new constraint dialog + Not NULL + + + + Collate + new constraint dialog + Collate + + + + Generated + new constraint dialog + Generated + + + + Default + new constraint dialog + Default + + + + NewVersionDialog + + + SQLiteStudio updates + SQLiteStudio updates + + + + New version is available! + New version is available! + + + + Download new version! + Download new version! + + + + New version package will be downloaded. It will be up to you to install it whenever you're ready. + New version package will be downloaded. It will be up to you to install it whenever you're ready. + + + + Open SQLiteStudio home page. + Open SQLiteStudio home page. + + + + Read release notes && download package yourself. + Read release notes && download package yourself. + + + + Just close this window. + Just close this window. + + + + Check for updates on startup + Check for updates on startup + + + + Not now. + Not now. + + + + PopulateConfigDialog + + + Populating configuration + Populating configuration + + + + Configuring <b>%1</b> for column <b>%2</b> + Configuring <b>%1</b> for column <b>%2</b> + + + + PopulateDialog + + + Populate table + Populate table + + + + Database + Database + + + + Table + Table + + + + Columns + Columns + + + + Number of rows to populate: + Number of rows to populate: + + + + Populate + populate dialog button + Populate + + + + Abort + Abort + + + + Configure + Configure + + + + Populating configuration for this column is invalid or incomplete. + Populating configuration for this column is invalid or incomplete. + + + + Select database with table to populate + Select database with table to populate + + + + Select table to populate + Select table to populate + + + + You have to select at least one column. + You have to select at least one column. + + + + QObject + + + Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). + Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). + + + + The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. + The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. + + + + Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. + Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. + + + + Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. + Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. + + + + Cannot edit results of query other than %1. + Cannot edit results of query other than %1. + + + + Cannot edit columns that are result of aggregated %1 statements. + Cannot edit columns that are result of aggregated %1 statements. + + + + Cannot edit columns that are result of %1 statement. + Cannot edit columns that are result of %1 statement. + + + + Cannot edit columns that are result of common table expression statement (%1). + Cannot edit columns that are result of common table expression statement (%1). + + + + Cannot edit table generated columns. + Cannot edit table generated columns. + + + + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). + + + + + + + on conflict: %1 + data view tooltip + on conflict: %1 + + + + references table %1, column %2 + data view tooltip + references table %1, column %2 + + + + condition: %1 + data view tooltip + condition: %1 + + + + collation name: %1 + data view tooltip + collation name: %1 + + + + Data grid view + Data grid view + + + + Edit current cell inline + Edit current cell inline + + + + Copy cell(s) contents to clipboard + Copy cell(s) contents to clipboard + + + + Copy cell(s) contents together with header to clipboard + Copy cell(s) contents together with header to clipboard + + + + Paste cell(s) contents from clipboard + Paste cell(s) contents from clipboard + + + + Set empty value to selected cell(s) + Set empty value to selected cell(s) + + + + Set NULL value to selected cell(s) + Set NULL value to selected cell(s) + + + + Commit changes to cell(s) contents + Commit changes to cell(s) contents + + + + Rollback changes to cell(s) contents + Rollback changes to cell(s) contents + + + + Delete selected data row + Delete selected data row + + + + Insert new data row + Insert new data row + + + + Open contents of selected cell in a separate editor + Open contents of selected cell in a separate editor + + + + Toggle the height adjustment of rows + Toggle the height adjustment of rows + + + + Increase font size + data view + Increase font size + + + + Decrease font size + data view + Decrease font size + + + + Total pages available: %1 + Total pages available: %1 + + + + Total rows loaded: %1 + Total rows loaded: %1 + + + + Data view (both grid and form) + Data view (both grid and form) + + + + Refresh data + Refresh data + + + + Switch to grid view of the data + Switch to grid view of the data + + + + Switch to form view of the data + Switch to form view of the data + + + + Database list + Database list + + + + Delete selected item + Delete selected item + + + + Clear filter contents + Clear filter contents + + + + Refresh schema + Refresh schema + + + + Refresh all schemas + Refresh all schemas + + + + Add database + Add database + + + + Select all items + Select all items + + + + Copy selected item(s) + Copy selected item(s) + + + + + + Paste from clipboard + Paste from clipboard + + + + Increase font size + database list + Increase font size + + + + Decrease font size + database list + Decrease font size + + + + Tables + Tables + + + + Indexes + Indexes + + + + Triggers + Triggers + + + + Views + Views + + + + Columns + Columns + + + + Data form view + Data form view + + + + Commit changes for current row + Commit changes for current row + + + + Rollback changes for current row + Rollback changes for current row + + + + Go to first row on current page + Go to first row on current page + + + + Go to next row + Go to next row + + + + Go to previous row + Go to previous row + + + + Go to last row on current page + Go to last row on current page + + + + Insert new row + Insert new row + + + + Delete current row + Delete current row + + + + Main window + Main window + + + + Open SQL editor + Open SQL editor + + + + Open DDL history window + Open DDL history window + + + + Open snippets editor window + Open snippets editor window + + + + Open function editor window + Open function editor window + + + + Open collation editor window + Open collation editor window + + + + Open extension manager window + Open extension manager window + + + + Previous window + Previous window + + + + Next window + Next window + + + + Hide status area + Hide status area + + + + Open user manual + Open user manual + + + + Open configuration dialog + Open configuration dialog + + + + Open Debug Console + Open Debug Console + + + + Open CSS Console + Open CSS Console + + + + Open the About dialog + Open the About dialog + + + + Quit the application + Quit the application + + + + Cell text value editor + Cell text value editor + + + + + Cut selected text + Cut selected text + + + + + Copy selected text + Copy selected text + + + + + Delete selected text + Delete selected text + + + + + Undo + Undo + + + + + Redo + Redo + + + + SQL editor input field + SQL editor input field + + + + Select whole editor contents + Select whole editor contents + + + + Save contents into a file + Save contents into a file + + + + Load contents from a file + Load contents from a file + + + + Find in text + Find in text + + + + Find next + Find next + + + + Find previous + Find previous + + + + Replace in text + Replace in text + + + + Delete current line + Delete current line + + + + Request code assistant + Request code assistant + + + + Format contents + Format contents + + + + Move selected block of text one line down + Move selected block of text one line down + + + + Move selected block of text one line up + Move selected block of text one line up + + + + Copy selected block of text and paste it a line below + Copy selected block of text and paste it a line below + + + + Copy selected block of text and paste it a line above + Copy selected block of text and paste it a line above + + + + Toggle comment + Toggle comment + + + + Increase font size + sql editor + Increase font size + + + + Decrease font size + sql editor + Decrease font size + + + + All SQLite databases + All SQLite databases + + + + All files + All files + + + + Select database file + Select database file + + + + Select + Select + + + + File type + File type + + + + SQL editor window + SQL editor window + + + + Execute query + Execute query + + + + Execute single query under cursor + Execute single query under cursor + + + + Execute all queries in editor + Execute all queries in editor + + + + Execute "%1" query + Execute "%1" query + + + + Switch current working database to previous on the list + Switch current working database to previous on the list + + + + Switch current working database to next on the list + Switch current working database to next on the list + + + + Go to next editor tab + Go to next editor tab + + + + Go to previous editor tab + Go to previous editor tab + + + + Move keyboard input focus to the results view below + Move keyboard input focus to the results view below + + + + Move keyboard input focus to the SQL editor above + Move keyboard input focus to the SQL editor above + + + + Delete selected SQL history entries + Delete selected SQL history entries + + + + Table window + Table window + + + + Commit the table structure + Commit the table structure + + + + Rollback pending changes in the table structure + Rollback pending changes in the table structure + + + + Refresh table structure + Refresh table structure + + + + Add new column + Add new column + + + + Edit selected column + Edit selected column + + + + Delete selected column + Delete selected column + + + + Export table data + Export table data + + + + Import data to the table + Import data to the table + + + + Add new table constraint + Add new table constraint + + + + Edit selected table constraint + Edit selected table constraint + + + + Delete selected table constraint + Delete selected table constraint + + + + Refresh table index list + Refresh table index list + + + + Add new index + Add new index + + + + Edit selected index + Edit selected index + + + + Delete selected index + Delete selected index + + + + Refresh table trigger list + Refresh table trigger list + + + + + Add new trigger + Add new trigger + + + + + Edit selected trigger + Edit selected trigger + + + + + Delete selected trigger + Delete selected trigger + + + + + Go to next tab + Go to next tab + + + + + Go to previous tab + Go to previous tab + + + + A view window + A view window + + + + Commit the view's query + Commit the view's query + + + + Rollback pending changes in the view's query + Rollback pending changes in the view's query + + + + Refresh view trigger list + Refresh view trigger list + + + + Execute the view's query + Execute the view's query + + + + A code snippets editor window + A code snippets editor window + + + + + + + Commit the pending changes + Commit the pending changes + + + + + + + Rollback the pending changes + Rollback the pending changes + + + + A collation editor window + A collation editor window + + + + A function editor window + A function editor window + + + + A SQLite extension editor window + A SQLite extension editor window + + + + QuitConfirmDialog + + + Uncommitted changes + Uncommitted changes + + + + Are you sure you want to quit the application? + +Following items are pending: + Are you sure you want to quit the application? + +Following items are pending: + + + + SearchTextDialog + + + Find or replace + Find or replace + + + + Find: + Find: + + + + Case sensitive + Case sensitive + + + + Search backwards + Search backwards + + + + Regular expression matching + Regular expression matching + + + + Replace && +find next + Replace && +find next + + + + Replace with: + Replace with: + + + + Replace all + Replace all + + + + Find + Find + + + + SortDialog + + + Sort by columns + Sort by columns + + + + + Column + Column + + + + + Order + Order + + + + Sort by: %1 + Sort by: %1 + + + + Move column up + Move column up + + + + Move column down + Move column down + + + + SqlEditor + + + Wrap words + sql editor + Wrap words + + + + Cut + sql editor + Cut + + + + Copy + sql editor + Copy + + + + Paste + sql editor + Paste + + + + Delete + sql editor + Delete + + + + Select all + sql editor + Select all + + + + Undo + sql editor + Undo + + + + Redo + sql editor + Redo + + + + Complete + sql editor + Complete + + + + Format SQL + sql editor + Format SQL + + + + Save SQL to file + sql editor + Save SQL to file + + + + Select file to save SQL + sql editor + Select file to save SQL + + + + Load SQL from file + sql editor + Load SQL from file + + + + Delete line + sql editor + Delete line + + + + Move block down + sql editor + Move block down + + + + Move block up + sql editor + Move block up + + + + Copy block down + sql editor + Copy block down + + + + Copy up down + sql editor + Copy up down + + + + Find + sql editor + Find + + + + Find next + sql editor + Find next + + + + Find previous + sql editor + Find previous + + + + Replace + sql editor + Replace + + + + Toggle comment + sql editor + Toggle comment + + + + Increase font size + sql editor + Increase font size + + + + Decrease font size + sql editor + Decrease font size + + + + Could not open file '%1' for writing: %2 + Could not open file '%1' for writing: %2 + + + + Saved SQL contents to file: %1 + Saved SQL contents to file: %1 + + + + Syntax completion can be used only when a valid database is set for the SQL editor. + Syntax completion can be used only when a valid database is set for the SQL editor. + + + + Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. + Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. + + + + Save to file + Save to file + + + + SQL scripts (*.sql);;All files (*) + SQL scripts (*.sql);;All files (*) + + + + Open file + Open file + + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Reached the end of document. Hit the find again to restart the search. + Reached the end of document. Hit the find again to restart the search. + + + + SqlQueryItem + + + Committing error: + data view tooltip + Committing error: + + + + Column: + data view tooltip + Column: + + + + Data type: + data view + Data type: + + + + Table: + data view tooltip + Table: + + + + Constraints: + data view tooltip + Constraints: + + + + SqlQueryItemDelegate + + + + + + Cannot edit this cell. Details: %1 + Cannot edit this cell. Details: %1 + + + + The row is marked for deletion. + The row is marked for deletion. + + + + + Structure of this table has changed since last data was loaded. Reload the data to proceed. + Structure of this table has changed since last data was loaded. Reload the data to proceed. + + + + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). + + + + Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. + Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. + + + + SqlQueryModel + + + + Only one query can be executed simultaneously. + Only one query can be executed simultaneously. + + + + Cannot execute query on undefined or invalid database. + Cannot execute query on undefined or invalid database. + + + + Cannot execute empty query. + Cannot execute empty query. + + + + Uncommitted data + Uncommitted data + + + + There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. + There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. + + + + Cannot commit the data for a cell that refers to the already closed database. + Cannot commit the data for a cell that refers to the already closed database. + + + + Could not begin transaction on the database. Details: %1 + Could not begin transaction on the database. Details: %1 + + + + An error occurred while committing the transaction: %1 + An error occurred while committing the transaction: %1 + + + + An error occurred while rolling back the transaction: %1 + An error occurred while rolling back the transaction: %1 + + + + Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. + Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. + + + + An error occurred while committing the data: %1 + An error occurred while committing the data: %1 + + + + Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. + Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. + + + + + Error while executing SQL query on database '%1': %2 + Error while executing SQL query on database '%1': %2 + + + + Error while loading query results: %1 + Error while loading query results: %1 + + + + Insert multiple rows + Insert multiple rows + + + + Number of rows to insert: + Number of rows to insert: + + + + Delete rows + Delete rows + + + + You're about to delete newly inserted rows that are not committed yet. Row numbers: %1 +Such deletion will be permanent. Are you sure you want to delete them? + You're about to delete newly inserted rows that are not committed yet. Row numbers: %1 +Such deletion will be permanent. Are you sure you want to delete them? + + + + SqlQueryView + + + Go to referenced row in... + Go to referenced row in... + + + + Copy + Copy + + + + Copy with headers + Copy with headers + + + + Copy as... + Copy as... + + + + Paste + Paste + + + + Paste as... + Paste as... + + + + Set NULL values + Set NULL values + + + + Erase values + Erase values + + + + Commit + Commit + + + + Rollback + Rollback + + + + Commit selected cells + Commit selected cells + + + + Rollback selected cells + Rollback selected cells + + + + Edit current cell inline + Edit current cell inline + + + + Define columns to sort by + Define columns to sort by + + + + Remove custom sorting + Remove custom sorting + + + + Insert row + Insert row + + + + Insert multiple rows + Insert multiple rows + + + + Delete selected row + Delete selected row + + + + Adjust height of rows + Adjust height of rows + + + + Increase font size + data view + Increase font size + + + + Decrease font size + data view + Decrease font size + + + + Invert selection + data view + Invert selection + + + + Edit value in editor + Edit value in editor + + + + Show value in a viewer + Show value in a viewer + + + + Generate query for selected cells + Generate query for selected cells + + + + No items selected to paste clipboard contents to. + No items selected to paste clipboard contents to. + + + + Cannot paste data. Details: %1 + Cannot paste data. Details: %1 + + + + Structure of at least one table used has changed since last data was loaded. Reload the data to proceed. + Structure of at least one table used has changed since last data was loaded. Reload the data to proceed. + + + + Cannot paste to a cell. Details: %1 + Cannot paste to a cell. Details: %1 + + + + The row is marked for deletion. + The row is marked for deletion. + + + + Cannot paste to column %1. Details: %2 + Cannot paste to column %1. Details: %2 + + + + Go to referenced row in table '%1' + Go to referenced row in table '%1' + + + + table '%1' + table '%1' + + + + Referenced row (%1) + Referenced row (%1) + + + + Trim pasted text? + Trim pasted text? + + + + The pasted text contains leading or trailing white space. Trim it automatically? + The pasted text contains leading or trailing white space. Trim it automatically? + + + + Paste "NULL" as null value? + Paste "NULL" as null value? + + + + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + + + + Edit value + Edit value + + + + SqlTableModel + + + Error while committing new row: %1 + Error while committing new row: %1 + + + + Error while deleting row from table %1: %2 + Error while deleting row from table %1: %2 + + + + SqliteExtensionEditor + + + Filter extensions + Filter extensions + + + + Leave empty to use default function + Leave empty to use default function + + + + Extension file + Extension file + + + + Initialization function + Initialization function + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Extension manager window has uncommitted modifications. + Extension manager window has uncommitted modifications. + + + + Extension manager + Extension manager + + + + Commit all extension changes + Commit all extension changes + + + + Rollback all extension changes + Rollback all extension changes + + + + Add new extension + Add new extension + + + + Remove selected extension + Remove selected extension + + + + Editing extensions manual + Editing extensions manual + + + + File with given path does not exist or is not readable. + File with given path does not exist or is not readable. + + + + Unable to load extension: %1 + Unable to load extension: %1 + + + + Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. + Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. + + + + Dynamic link libraries (*.dll);;All files (*) + Dynamic link libraries (*.dll);;All files (*) + + + + Shared objects (*.so);;All files (*) + Shared objects (*.so);;All files (*) + + + + Dynamic libraries (*.dylib);;All files (*) + Dynamic libraries (*.dylib);;All files (*) + + + + All files (*) + All files (*) + + + + Open file + Open file + + + + StatusField + + + Status + Status + + + + Copy + Copy + + + + Clear + Clear + + + + TableConstraintsModel + + + Type + table constraints + Type + + + + Details + table constraints + Details + + + + Name + table constraints + Name + + + + TableForeignKeyPanel + + + Foreign table: + Foreign table: + + + + Columns + Columns + + + + Local column + Local column + + + + Foreign column + Foreign column + + + + Reactions + Reactions + + + + Deferred foreign key + Deferred foreign key + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + Pick the foreign column. + Pick the foreign column. + + + + Pick the foreign table. + Pick the foreign table. + + + + Select at least one foreign column. + Select at least one foreign column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + Foreign column + table constraints + Foreign column + + + + TablePrimaryKeyAndUniquePanel + + + Columns + Columns + + + + Column + Column + + + + Collation + Collation + + + + Sort + Sort + + + + Valid only for a single column with INTEGER data type + Valid only for a single column with INTEGER data type + + + + Autoincrement + Autoincrement + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + On conflict + On conflict + + + + Collate + table constraints + Collate + + + + Sort order + table constraints + Sort order + + + + Select at least one column. + Select at least one column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + TableStructureModel + + + Name + table structure columns + Name + + + + Data type + table structure columns + Data type + + + + Primary +Key + table structure columns + Primary +Key + + + + Foreign +Key + table structure columns + Foreign +Key + + + + Unique + table structure columns + Unique + + + + Check + table structure columns + Check + + + + Not +NULL + table structure columns + Not +NULL + + + + Collate + table structure columns + Collate + + + + Generated + table structure columns + Generated + + + + Default value + table structure columns + Default value + + + + TableWindow + + + Structure + Structure + + + + Table name: + Table name: + + + + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + + + + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + + + + + Data + Data + + + + Constraints + Constraints + + + + Indexes + Indexes + + + + Triggers + Triggers + + + + DDL + DDL + + + + Export table + table window + Export table + + + + Import data to table + table window + Import data to table + + + + Populate table + table window + Populate table + + + + Refresh structure + table window + Refresh structure + + + + Commit structure changes + table window + Commit structure changes + + + + Rollback structure changes + table window + Rollback structure changes + + + + Add column + table window + Add column + + + + Edit column + table window + Edit column + + + + + Delete column + table window + Delete column + + + + Move column up + table window + Move column up + + + + Move column down + table window + Move column down + + + + Create similar table + table window + Create similar table + + + + Reset autoincrement value + table window + Reset autoincrement value + + + + Add table constraint + table window + Add table constraint + + + + Edit table constraint + table window + Edit table constraint + + + + Delete table constraint + table window + Delete table constraint + + + + Move table constraint up + table window + Move table constraint up + + + + Move table constraint down + table window + Move table constraint down + + + + Add table primary key + table window + Add table primary key + + + + Add table foreign key + table window + Add table foreign key + + + + Add table unique constraint + table window + Add table unique constraint + + + + Add table check constraint + table window + Add table check constraint + + + + Refresh index list + table window + Refresh index list + + + + + Create index + table window + Create index + + + + Edit index + table window + Edit index + + + + Delete index + table window + Delete index + + + + Refresh trigger list + table window + Refresh trigger list + + + + + Create trigger + table window + Create trigger + + + + Edit trigger + table window + Edit trigger + + + + Delete trigger + table window + Delete trigger + + + + Are you sure you want to delete column '%1'? + table window + Are you sure you want to delete column '%1'? + + + + Following problems will take place while modifying the table. +Would you like to proceed? + table window + Following problems will take place while modifying the table. +Would you like to proceed? + + + + Table modification + table window + Table modification + + + + Could not load data for table %1. Error details: %2 + Could not load data for table %1. Error details: %2 + + + + Could not process the %1 table correctly. Unable to open a table window. + Could not process the %1 table correctly. Unable to open a table window. + + + + Database + Database + + + + Could not restore window %1, because no database or table was stored in session for this window. + Could not restore window %1, because no database or table was stored in session for this window. + + + + Could not restore window '%1', because no database or table was stored in session for this window. + Could not restore window '%1', because no database or table was stored in session for this window. + + + + Could not restore window '%1', because database %2 could not be resolved. + Could not restore window '%1', because database %2 could not be resolved. + + + + Could not restore window '%1', because the table %2 doesn't exist in the database %3. + Could not restore window '%1', because the table %2 doesn't exist in the database %3. + + + + + New table %1 + New table %1 + + + + Committed changes for table '%1' successfully. + Committed changes for table '%1' successfully. + + + + Committed changes for table '%1' (named before '%2') successfully. + Committed changes for table '%1' (named before '%2') successfully. + + + + Could not commit table structure. Error message: %1 + table window + Could not commit table structure. Error message: %1 + + + + Reset autoincrement + Reset autoincrement + + + + Are you sure you want to reset autoincrement value for table '%1'? + Are you sure you want to reset autoincrement value for table '%1'? + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + An error occurred while trying to reset autoincrement value for table '%1': %2 + + + + Autoincrement value for table '%1' has been reset successfully. + Autoincrement value for table '%1' has been reset successfully. + + + + Empty name + Empty name + + + + A blank name for the table is allowed in SQLite, but it is not recommended. +Are you sure you want to create a table with blank name? + A blank name for the table is allowed in SQLite, but it is not recommended. +Are you sure you want to create a table with blank name? + + + + Cannot create a table without at least one column. + Cannot create a table without at least one column. + + + + Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. + Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. + + + + Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. + Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. + + + + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 + + + + Are you sure you want to delete table constraint '%1'? + table window + Are you sure you want to delete table constraint '%1'? + + + + Delete constraint + table window + Delete constraint + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + Uncommitted changes + Uncommitted changes + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + + + + Go back to structure tab + Go back to structure tab + + + + Commit modifications and browse data. + Commit modifications and browse data. + + + + Name + table window indexes + Name + + + + Unique + table window indexes + Unique + + + + Columns + table window indexes + Columns + + + + Partial index condition + table window indexes + Partial index condition + + + + Name + table window triggers + Name + + + + Event + table window triggers + Event + + + + Condition + table window triggers + Condition + + + + Details + table window triggers + Details + + + + Table window "%1" has uncommitted structure modifications and data. + Table window "%1" has uncommitted structure modifications and data. + + + + Table window "%1" has uncommitted data. + Table window "%1" has uncommitted data. + + + + Table window "%1" has uncommitted structure modifications. + Table window "%1" has uncommitted structure modifications. + + + + TriggerColumnsDialog + + + Trigger columns + Trigger columns + + + + Triggering columns: + Triggering columns: + + + + Select all + Select all + + + + Deselect all + Deselect all + + + + TriggerDialog + + + + Trigger + Trigger + + + + On table: + On table: + + + + Action: + Action: + + + + + <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> + <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> + + + + Pre-condition: + Pre-condition: + + + + The scope is still not fully supported by the SQLite database. + The scope is still not fully supported by the SQLite database. + + + + Trigger name: + Trigger name: + + + + When: + When: + + + + List of columns for UPDATE OF action. + List of columns for UPDATE OF action. + + + + Scope: + Scope: + + + + Code: + Code: + + + + Trigger statements to be executed. + Trigger statements to be executed. + + + + DDL + DDL + + + + On view: + On view: + + + + Could not process trigger %1 correctly. Unable to open a trigger dialog. + Could not process trigger %1 correctly. Unable to open a trigger dialog. + + + + Enter a valid condition. + Enter a valid condition. + + + + Enter a valid trigger code. + Enter a valid trigger code. + + + + Error + trigger dialog + Error + + + + An error occurred while executing SQL statements: +%1 + An error occurred while executing SQL statements: +%1 + + + + VersionConvertSummaryDialog + + + Database version convert + Database version convert + + + + Following changes to the SQL statements will be made: + Following changes to the SQL statements will be made: + + + + Before + Before + + + + After + After + + + + ViewWindow + + + Query + Query + + + + View name: + View name: + + + + Output column names + Output column names + + + + + Data + Data + + + + Triggers + Triggers + + + + DDL + DDL + + + + + Could not restore window '%1', because no database or view was stored in session for this window. + Could not restore window '%1', because no database or view was stored in session for this window. + + + + Could not restore window '%1', because database %2 could not be resolved. + Could not restore window '%1', because database %2 could not be resolved. + + + + Could not restore window '%1', because database %2 could not be open. + Could not restore window '%1', because database %2 could not be open. + + + + Could not restore window '%1', because the view %2 doesn't exist in the database %3. + Could not restore window '%1', because the view %2 doesn't exist in the database %3. + + + + + New view %1 + New view %1 + + + + Database + Database + + + + Refresh the view + view window + Refresh the view + + + + Commit the view changes + view window + Commit the view changes + + + + Rollback the view changes + view window + Rollback the view changes + + + + Explicit column names + Explicit column names + + + + Generate output column names automatically basing on result columns of the view. + Generate output column names automatically basing on result columns of the view. + + + + Add column + view window + Add column + + + + Edit column + view window + Edit column + + + + Delete column + view window + Delete column + + + + Move column up + view window + Move column up + + + + Move column down + view window + Move column down + + + + Refresh trigger list + view window + Refresh trigger list + + + + Create new trigger + view window + Create new trigger + + + + Edit selected trigger + view window + Edit selected trigger + + + + Delete selected trigger + view window + Delete selected trigger + + + + View window "%1" has uncommitted structure modifications and data. + View window "%1" has uncommitted structure modifications and data. + + + + View window "%1" has uncommitted data. + View window "%1" has uncommitted data. + + + + View window "%1" has uncommitted structure modifications. + View window "%1" has uncommitted structure modifications. + + + + Could not load data for view %1. Error details: %2 + Could not load data for view %1. Error details: %2 + + + + Uncommitted changes + Uncommitted changes + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + + + + Go back to structure tab + Go back to structure tab + + + + Commit modifications and browse data. + Commit modifications and browse data. + + + + View '%1' was committed successfully. + View '%1' was committed successfully. + + + + Committed changes for view '%1' successfully. + Committed changes for view '%1' successfully. + + + + Committed changes for view '%1' (named before '%2') successfully. + Committed changes for view '%1' (named before '%2') successfully. + + + + Could not commit view changes. Error message: %1 + view window + Could not commit view changes. Error message: %1 + + + + Override columns + Override columns + + + + Currently defined columns will be overriden. Do you want to continue? + Currently defined columns will be overriden. Do you want to continue? + + + + Could not determinate columns returned from the view. The query is problably incomplete or contains errors. + Could not determinate columns returned from the view. The query is problably incomplete or contains errors. + + + + Name + view window triggers + Name + + + + Instead of + view window triggers + Instead of + + + + Condition + view window triggers + Condition + + + + Details + table window triggers + Details + + + + Could not process the %1 view correctly. Unable to open a view window. + Could not process the %1 view correctly. Unable to open a view window. + + + + Empty name + Empty name + + + + A blank name for the view is allowed in SQLite, but it is not recommended. +Are you sure you want to create a view with blank name? + A blank name for the view is allowed in SQLite, but it is not recommended. +Are you sure you want to create a view with blank name? + + + + The SELECT statement could not be parsed. Please correct the query and retry. +Details: %1 + The SELECT statement could not be parsed. Please correct the query and retry. +Details: %1 + + + + The view could not be modified due to internal SQLiteStudio error. Please report this! + The view could not be modified due to internal SQLiteStudio error. Please report this! + + + + The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. + The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. + + + + Following problems will take place while modifying the view. +Would you like to proceed? + view window + Following problems will take place while modifying the view. +Would you like to proceed? + + + + View modification + view window + View modification + + + + WidgetCover + + + Interrupt + Interrupt + + + diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_es.qm b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_es.qm deleted file mode 100644 index 9dad8df..0000000 Binary files a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_es.qm and /dev/null differ diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_es.ts b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_es.ts deleted file mode 100644 index fc3f218..0000000 --- a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_es.ts +++ /dev/null @@ -1,6612 +0,0 @@ - - - - - AboutDialog - - - About SQLiteStudio and licenses - - - - - About - - - - - Licenses - - - - - Environment - - - - - Icon directories - - - - - Form directories - - - - - Plugin directories - - - - - Application directory - - - - - SQLite 3 version: - - - - - Configuration directory - - - - - <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> - - - - - Qt version: - - - - - Portable distribution. - - - - - MacOS X application boundle distribution. - - - - - Operating system managed distribution. - - - - - Copy - - - - - <h3>Table of contents:</h3><ol>%2</ol> - - - - - BindParamsDialog - - - Query parameters - - - - - Please provide values for query parameters - - - - - CollationsEditor - - - Filter collations - - - - - Collation name: - - - - - Implementation language: - - - - - Databases - - - - - Register in all databases - - - - - Register in following databases: - - - - - Implementation code: - - - - - Collations editor - - - - - Commit all collation changes - - - - - Rollback all collation changes - - - - - Create new collation - - - - - Delete selected collation - - - - - Editing collations manual - - - - - Enter a non-empty, unique name of the collation. - - - - - Pick the implementation language. - - - - - Enter a non-empty implementation code. - - - - - Collations editor window has uncommitted modifications. - - - - - ColorButton - - - Pick a color - - - - - ColumnCollatePanel - - - Collation name: - - - - - Named constraint: - - - - - Enter a name of the constraint. - - - - - Enter a collation name. - - - - - ColumnDefaultPanel - - - Default value: - - - - - Named constraint: - - - - - Enter a default value expression. - - - - - Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. - - - - - Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. - - - - - Enter a name of the constraint. - - - - - ColumnDialog - - - Column - - - - - Name and type - - - - - Scale - - - - - Precision - - - - - Data type: - - - - - Column name: - - - - - Size: - - - - - Constraints - - - - - Unique - - - - - - - - - - - Configure - - - - - Foreign Key - - - - - Collate - - - - - Not NULL - - - - - Check condition - - - - - Primary Key - - - - - Default - - - - - Advanced mode - - - - - Add constraint - column dialog - - - - - Edit constraint - column dialog - - - - - - Delete constraint - column dialog - - - - - Move constraint up - column dialog - - - - - Move constraint down - column dialog - - - - - Add a primary key - column dialog - - - - - Add a foreign key - column dialog - - - - - Add an unique constraint - column dialog - - - - - Add a check constraint - column dialog - - - - - Add a not null constraint - column dialog - - - - - Add a collate constraint - column dialog - - - - - Add a default constraint - column dialog - - - - - Are you sure you want to delete constraint '%1'? - column dialog - - - - - Correct the constraint's configuration. - - - - - This constraint is not officially supported by SQLite 2, -but it's okay to use it. - - - - - Scale is not allowed for INTEGER PRIMARY KEY columns. - - - - - Precision cannot be defined without the scale. - - - - - Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. - - - - - INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. - - - - - Precision is not allowed for INTEGER PRIMARY KEY columns. - - - - - ColumnDialogConstraintsModel - - - Type - column dialog constraints - - - - - Name - column dialog constraints - - - - - Details - column dialog constraints - - - - - ColumnForeignKeyPanel - - - Foreign table: - - - - - Foreign column: - - - - - Reactions - - - - - Deferred foreign key - - - - - Named constraint - - - - - Constraint name - - - - - Pick the foreign table. - - - - - Pick the foreign column. - - - - - Enter a name of the constraint. - - - - - ColumnPrimaryKeyPanel - - - Autoincrement - - - - - Sort order: - - - - - Named constraint: - - - - - On conflict: - - - - - Enter a name of the constraint. - - - - - ColumnUniqueAndNotNullPanel - - - Named constraint: - - - - - On conflict: - - - - - Enter a name of the constraint. - - - - - CompleterWindow - - - Column: %1 - completer statusbar - - - - - Table: %1 - completer statusbar - - - - - Index: %1 - completer statusbar - - - - - Trigger: %1 - completer statusbar - - - - - View: %1 - completer statusbar - - - - - Database: %1 - completer statusbar - - - - - Keyword: %1 - completer statusbar - - - - - Function: %1 - completer statusbar - - - - - Operator: %1 - completer statusbar - - - - - String - completer statusbar - - - - - Number - completer statusbar - - - - - Binary data - completer statusbar - - - - - Collation: %1 - completer statusbar - - - - - Pragma function: %1 - completer statusbar - - - - - ConfigDialog - - - - Configuration - - - - - Search - - - - - General - - - - - Keyboard shortcuts - - - - - Look & feel - - - - - Style - - - - - Fonts - - - - - Colors - - - - - Plugins - - - - - Code formatters - - - - - Data browsing - - - - - Data editors - - - - - Database dialog window - - - - - <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> - - - - - Do not mark database to be "permanent" by default - - - - - <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> - - - - - Try to bypass dialog completly when dropping database file onto the list - - - - - Data browsing and editing - - - - - Number of data rows per page: - - - - - - <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> - - - - - Limit initial data column width to (in pixels): - - - - - <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> - - - - - Show column and row details tooltip in data view - - - - - <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> - - - - - Inserting new row in data grid - - - - - Before currently selected row - - - - - After currently selected row - - - - - At the end of data view - - - - - <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> - - - - - <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> - - - - - Place data tab as first tab in a Table Window - - - - - <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> - - - - - <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> - - - - - Place data tab as first tab in a View Window - - - - - Data types - - - - - Available editors: - - - - - Editors selected for this data type: - - - - - Schema editing - - - - - Number of DDL changes kept in history. - - - - - DDL history size: - - - - - SQL queries - - - - - - Number of queries kept in the history. - - - - - History size: - - - - - <p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute.</p> - - - - - Execute only the query under the cursor - - - - - Updates - - - - - Automatically check for updates at startup - - - - - Session - - - - - Restore last session (active MDI windows) after startup - - - - - Status Field - - - - - <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> - - - - - Always open Status panel when new message is printed - - - - - Filter shortcuts by name or key combination - - - - - Action - - - - - Key combination - - - - - - Language - - - - - Changing language requires application restart to take effect. - - - - - Compact layout - - - - - <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> - - - - - Use compact layout - - - - - - Database list - - - - - If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. - - - - - Sort table columns alphabetically - - - - - Expand tables node when connected to a database - - - - - <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> - - - - - Display additional labels on the list - - - - - For regular tables labels will show number of columns, indexes and triggers for each of tables. - - - - - Display labels for regular tables - - - - - Virtual tables will be marked with a 'virtual' label. - - - - - Display labels for virtual tables - - - - - Expand views node when connected to a database - - - - - If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) - - - - - Sort objects (tables, indexes, triggers and views) alphabetically - - - - - Display system tables and indexes on the list - - - - - - <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> - - - - - Number of memorized table populating configurations - - - - - Keep NULL value when entering empty value - - - - - <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> - - - - - Use DEFAULT value (if defined), when committing NULL value - - - - - Table windows - - - - - Open Table Windows with the data tab for start - - - - - View windows - - - - - Open View Windows with the data tab for start - - - - - Don't show DDL preview dialog when committing schema changes - - - - - - <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> - - - - - Number of memorized query parameters - - - - - Main window dock areas - - - - - Left and right areas occupy corners - - - - - Top and bottom areas occupy corners - - - - - Hide built-in plugins - - - - - Current style: - - - - - Preview - - - - - Enabled - - - - - Disabled - - - - - Active formatter plugin - - - - - SQL editor font - - - - - Database list font - - - - - Database list additional label font - - - - - Data view font - - - - - Status field font - - - - - SQL editor colors - - - - - Current line background - - - - - <p>SQL strings are enclosed with single quote characters.</p> - - - - - String foreground - - - - - <p>Bind parameters are placeholders for values yet to be provided by the user. They have one of the forms:</p><ul><li>:param_name</li><li>$param_name</li><li>@param_name</li><li>?</li></ul> - - - - - Bind parameter foreground - - - - - Highlighted parenthesis background - - - - - <p>BLOB values are binary values represented as hexadecimal numbers, like:</p><ul><li>X'12B4'</li><li>x'46A2F4'</li></ul> - - - - - BLOB value foreground - - - - - Regular foreground - - - - - Line numbers area background - - - - - Keyword foreground - - - - - Number foreground - - - - - Comment foreground - - - - - <p>Valid objects are name of tables, indexes, triggers, or views that exist in the SQLite database.</p> - - - - - Valid objects foreground - - - - - Data view colors - - - - - <p>Any data changes will be outlined with this color, until they're committed to the database.</p> - - - - - Uncommitted data outline color - - - - - <p>In case of error while committing data changes, the problematic cell will be outlined with this color.</p> - - - - - Commit error outline color - - - - - NULL value foreground - - - - - Deleted row background - - - - - Database list colors - - - - - <p>Additional labels are those which tell you SQLite version, number of objects deeper in the tree, etc.</p> - - - - - Additional labels foreground - - - - - Status field colors - - - - - Information message foreground - - - - - Warning message foreground - - - - - Error message foreground - - - - - Description: - plugin details - - - - - Category: - plugin details - - - - - Version: - plugin details - - - - - Author: - plugin details - - - - - Internal name: - plugin details - - - - - Dependencies: - plugin details - - - - - Conflicts: - plugin details - - - - - Plugin details - - - - - Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. - - - - - %1 (built-in) - plugins manager in configuration dialog - - - - - Details - - - - - No plugins in this category. - - - - - Add new data type - - - - - Rename selected data type - - - - - Delete selected data type - - - - - Help for configuring data type editors - - - - - ConstraintCheckPanel - - - The condition - - - - - Named constraint: - - - - - On conflict - - - - - Enter a valid condition. - - - - - Enter a name of the constraint. - - - - - ConstraintDialog - - - New constraint - constraint dialog - - - - - Create - constraint dialog - - - - - Edit constraint - dialog window - - - - - Apply - constraint dialog - - - - - Primary key - table constraints - - - - - Foreign key - table constraints - - - - - Unique - table constraints - - - - - Not NULL - table constraints - - - - - Check - table constraints - - - - - Collate - table constraints - - - - - Default - table constraints - - - - - ConstraintTabModel - - - Table - table constraints - - - - - Column (%1) - table constraints - - - - - Scope - table constraints - - - - - Type - table constraints - - - - - Details - table constraints - - - - - Name - table constraints - - - - - CssDebugDialog - - - SQLiteStudio CSS console - - - - - DataView - - - Filter data - data view - - - - - Grid view - - - - - Form view - - - - - Refresh table data - data view - - - - - First page - data view - - - - - Previous page - data view - - - - - Next page - data view - - - - - Last page - data view - - - - - Filter - - - - - Hit Enter key or press "Apply filter" button on toolbar to apply new value. - - - - - Show filter inputs per column - data view - - - - - Apply filter - data view - - - - - Commit changes for selected cells - data view - - - - - Rollback changes for selected cells - data view - - - - - Show grid view of results - sql editor - - - - - Show form view of results - sql editor - - - - - Filter by text - data view - - - - - Filter by the Regular Expression - data view - - - - - Filter by SQL expression - data view - - - - - Tabs on top - data view - - - - - Tabs at bottom - data view - - - - - Place new rows above selected row - data view - - - - - Place new rows below selected row - data view - - - - - Place new rows at the end of the data view - data view - - - - - Total number of rows is being counted. -Browsing other pages will be possible after the row counting is done. - - - - - Row: %1 - - - - - DbConverterDialog - - - Convert database - - - - - Source database - - - - - Source database version: - - - - - Target database - - - - - Target version: - - - - - This is the file that will be created as a result of the conversion. - - - - - Target file: - - - - - Name of the new database: - - - - - This is the name that the converted database will be added to SQLiteStudio with. - - - - - Select source database - - - - - Enter valid and writable file path. - - - - - Entered file exists and will be overwritten. - - - - - Enter a not empty, unique name (as in the list of databases on the left). - - - - - No valid target dialect available. Conversion not possible. - - - - - Select valid target dialect. - - - - - Database %1 has been successfully converted and now is available under new name: %2 - - - - - SQL statements conversion - - - - - Following error occurred while converting SQL statements to the target SQLite version: - - - - - Would you like to ignore those errors and proceed? - - - - - DbDialog - - - Database - - - - - Database type - - - - - Database driver - - - - - Options - - - - - Permanent (keep it in configuration) - - - - - Test connection - - - - - Create new database file - - - - - - File - - - - - Name (on the list) - - - - - <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> - aasfd - - - - - Browse for existing database file on local computer - - - - - Browse - - - - - Enter an unique database name. - - - - - This name is already in use. Please enter unique name. - - - - - <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> - - - - - Enter a database file path. - - - - - This database is already on the list under name: %1 - - - - - Select a database type. - - - - - DbObjectDialogs - - - Delete table - - - - - Are you sure you want to delete table %1? - - - - - Delete index - - - - - Are you sure you want to delete index %1? - - - - - Delete trigger - - - - - Are you sure you want to delete trigger %1? - - - - - Delete view - - - - - Are you sure you want to delete view %1? - - - - - - Error while dropping %1: %2 - - - - - Delete objects - - - - - Are you sure you want to delete following objects: -%1 - - - - - Cannot start transaction. Details: %1 - - - - - Cannot commit transaction. Details: %1 - - - - - DbTree - - - Databases - - - - - Filter by name - - - - - Copy - - - - - Paste - - - - - Select all - - - - - Create a group - - - - - Delete the group - - - - - Rename the group - - - - - Import - - - - - Export the table - - - - - Import into the table - - - - - Populate table - - - - - Create similar table - - - - - Reset autoincrement sequence - - - - - Add a column - - - - - Edit the column - - - - - Delete the column - - - - - Delete selected items - - - - - Clear filter - - - - - - Erase table data - - - - - - Database - - - - - Grouping - - - - - Generate query for table - - - - - - Create group - - - - - Group name - - - - - Entry with name %1 already exists in group %2. - - - - - Delete group - - - - - Are you sure you want to delete group %1? -All objects from this group will be moved to parent group. - - - - - Are you sure you want to remove database '%1' from the list? - - - - - Are you sure you want to remove following databases from the list: -%1 - - - - - Remove database - - - - - Vacuum (%1) - - - - - Autoincrement value for table '%1' has been reset successfully. - - - - - Are you sure you want to delete all data from table(s): %1? - - - - - - Cannot import, because no import plugin is loaded. - - - - - Execution from file cancelled. Any queries executed so far have been rolled back. - - - - - &Add a database - - - - - &Edit the database - - - - - &Remove the database - - - - - &Connect to the database - - - - - &Disconnect from the database - - - - - &Export the database - - - - - Con&vert database type - - - - - Vac&uum - - - - - &Integrity check - - - - - Create a &table - - - - - Edit the t&able - - - - - Delete the ta&ble - - - - - Create an &index - - - - - Edit the i&ndex - - - - - Delete the in&dex - - - - - Create a trig&ger - - - - - Edit the trigg&er - - - - - Delete the trigge&r - - - - - Create a &view - - - - - Edit the v&iew - - - - - Delete the vi&ew - - - - - &Refresh all database schemas - - - - - Re&fresh selected database schema - - - - - Open file's directory - - - - - Execute SQL from file - - - - - - Cannot export, because no export plugin is loaded. - - - - - Integrity check (%1) - - - - - Reset autoincrement - - - - - Are you sure you want to reset autoincrement value for table '%1'? - - - - - An error occurred while trying to reset autoincrement value for table '%1': %2 - - - - - An error occurred while trying to delete data from table '%1': %2 - - - - - All data has been deleted for table '%1'. - - - - - Following objects will be deleted: %1. - - - - - Following databases will be removed from list: %1. - - - - - Remainig objects from deleted group will be moved in place where the group used to be. - - - - - %1<br><br>Are you sure you want to continue? - - - - - Delete objects - - - - - Could not execute SQL, because application has failed to start transaction: %1 - - - - - Could not open file '%1' for reading: %2 - - - - - Could not execute SQL, because application has failed to commit the transaction: %1 - - - - - Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. - - - - - Finished executing %1 queries in %2 seconds. - - - - - Could not execute SQL due to error. - - - - - DbTreeItemDelegate - - - error - dbtree labels - - - - - (system table) - database tree label - - - - - (virtual) - virtual table label - - - - - (system index) - database tree label - - - - - DbTreeModel - - - Database: %1 - dbtree tooltip - - - - - Version: - dbtree tooltip - - - - - File size: - dbtree tooltip - - - - - Encoding: - dbtree tooltip - - - - - Error: - dbtree tooltip - - - - - Table : %1 - dbtree tooltip - - - - - Columns (%1): - dbtree tooltip - - - - - Indexes (%1): - dbtree tooltip - - - - - Triggers (%1): - dbtree tooltip - - - - - Copy - - - - - Move - - - - - Include data - - - - - Include indexes - - - - - Include triggers - - - - - Abort - - - - - Could not add dropped database file '%1' automatically. Manual setup is necessary. - - - - - Referenced tables - - - - - Do you want to include following referenced tables as well: -%1 - - - - - Name conflict - - - - - Following object already exists in the target database. -Please enter new, unique name, or press '%1' to abort the operation: - - - - - SQL statements conversion - - - - - Following error occurred while converting SQL statements to the target SQLite version: - - - - - Would you like to ignore those errors and proceed? - - - - - DdlHistoryWindow - - - Filter by database: - - - - - -- Queries executed on database %1 (%2) --- Date and time of execution: %3 -%4 - - - - - DDL history - - - - - DdlPreviewDialog - - - Queries to be executed - - - - - Don't show again - - - - - DebugConsole - - - SQLiteStudio Debug Console - - - - - EditorWindow - - - Query - - - - - History - - - - - Results in the separate tab - - - - - Results below the query - - - - - - SQL editor %1 - - - - - Results - - - - - Execute query - - - - - Explain query - - - - - Clear execution history - sql editor - - - - - Export results - sql editor - - - - - Create view from query - sql editor - - - - - Previous database - - - - - Next database - - - - - Show next tab - sql editor - - - - - Show previous tab - sql editor - - - - - Focus results below - sql editor - - - - - Focus SQL editor above - sql editor - - - - - Delete selected SQL history entries - sql editor - - - - - Active database (%1/%2) - - - - - Query finished in %1 second(s). Rows affected: %2 - - - - - Query finished in %1 second(s). - - - - - Clear execution history - - - - - Are you sure you want to erase the entire SQL execution history? This cannot be undone. - - - - - Cannot export, because no export plugin is loaded. - - - - - No database selected in the SQL editor. Cannot create a view for unknown database. - - - - - Editor window "%1" has uncommitted data. - - - - - ErrorsConfirmDialog - - - Errors - - - - - Following errors occured: - - - - - Would you like to proceed? - - - - - ExecFromFileDialog - - - Execute SQL from file - - - - - Input file - - - - - Path to file - - - - - Browse for file - - - - - Options - - - - - File encoding - - - - - Skip failing SQL statements - - - - - SQL scripts (*.sql);;All files (*) - - - - - Execute SQL file - - - - - Please provide file to be executed. - - - - - Provided file does not exist or cannot be read. - - - - - ExportDialog - - - Export - - - - - What do you want to export? - - - - - A database - - - - - A single table - - - - - Query results - - - - - Table to export - - - - - Database - - - - - Table - - - - - Options - - - - - When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. - - - - - Export table data - - - - - Export table indexes - - - - - Export table triggers - - - - - Note, that exporting table indexes and triggers may be unsupported by some output formats. - - - - - Select database objects to export - - - - - Export data from tables - - - - - Select all - - - - - Deselect all - - - - - - Database: - - - - - Query to export results for - - - - - Query to be executed for results: - - - - - Export format and options - - - - - Export format - - - - - Output - - - - - Exported file path - - - - - Clipboard - - - - - File - - - - - Exported text encoding: - - - - - Export format options - - - - - Cancel - - - - - - - Select database to export. - - - - - Select table to export. - - - - - Enter valid query to export. - - - - - Select at least one object to export. - - - - - You must provide a file name to export to. - - - - - Path you provided is an existing directory. You cannot overwrite it. - - - - - The directory '%1' does not exist. - - - - - The file '%1' exists and will be overwritten. - - - - - All files (*) - - - - - Pick file to export to - - - - - Internal error during export. This is a bug. Please report it. - - - - - FileExecErrorsDialog - - - Execution errors - - - - - Following errors were encountered during execution of SQL statements from the file: - - - - - SQL - - - - - Error - - - - - Statements that were executed successfully were commited. - - - - - Statements that were executed successfully were rolled back. - - - - - FontEdit - - - Choose font - font configuration - - - - - Form - - - Active SQL formatter plugin - - - - - FormView - - - Commit row - form view - - - - - Rollback row - form view - - - - - First row - form view - - - - - Previous row - form view - - - - - Next row - form view - - - - - Last row - form view - - - - - Insert new row - form view - - - - - Delete current row - form view - - - - - FunctionsEditor - - - Filter funtions - - - - - Function name: - - - - - Implementation language: - - - - - Type: - - - - - Input arguments - - - - - Undefined - - - - - Databases - - - - - Register in all databases - - - - - Register in following databases: - - - - - Initialization code: - - - - - - Function implementation code: - - - - - Final step implementation code: - - - - - SQL function editor - - - - - Commit all function changes - - - - - Rollback all function changes - - - - - Create new function - - - - - Delete selected function - - - - - Custom SQL functions manual - - - - - Add function argument - - - - - Rename function argument - - - - - Delete function argument - - - - - Move function argument up - - - - - Move function argument down - - - - - Scalar - - - - - Aggregate - - - - - Enter a non-empty, unique name of the function. - - - - - Pick the implementation language. - - - - - Per step code: - - - - - Enter a non-empty implementation code. - - - - - argument - new function argument name in function editor window - - - - - Functions editor window has uncommitted modifications. - - - - - ImportDialog - - - Import data - - - - - Table to import to - - - - - Table - - - - - Database - - - - - Data source to import from - - - - - Data source type - - - - - Options - - - - - Input file: - - - - - Text encoding: - - - - - <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> - - - - - Ignore errors - - - - - Data source options - - - - - Cancel - - - - - If you type table name that doesn't exist, it will be created. - - - - - Enter the table name - - - - - Select import plugin. - - - - - You must provide a file to import from. - - - - - The file '%1' does not exist. - - - - - Path you provided is a directory. A regular file is required. - - - - - Pick file to import from - - - - - IndexDialog - - - - Index - - - - - On table: - - - - - Index name: - - - - - Partial index condition - - - - - Unique index - - - - - Column - - - - - Collation - - - - - Sort - - - - - Delete selected indexed expression - - - - - Moves selected index column up in the order, making it more significant in the index. - - - - - Moves selected index column down in the order, making it less significant in the index. - - - - - Edit selected indexed expression - - - - - Add indexed expression - - - - - DDL - - - - - Tried to open index dialog for closed or inexisting database. - - - - - Could not process index %1 correctly. Unable to open an index dialog. - - - - - Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. - - - - - Pick the table for the index. - - - - - Select at least one column. - - - - - Enter a valid condition. - - - - - default - index dialog - - - - - Sort order - table constraints - - - - - - Error - index dialog - - - - - Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? - - - - - An error occurred while executing SQL statements: -%1 - - - - - IndexExprColumnDialog - - - Indexed expression - - - - - Expression to index - - - - - This expression is already indexed by the index. - - - - - Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. - - - - - Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. - - - - - It's forbidden to use 'SELECT' statements in indexed expressions. - - - - - Enter an indexed expression. - - - - - Invalid expression. - - - - - LanguageDialog - - - Language - - - - - Please choose language: - - - - - MainWindow - - - Database toolbar - - - - - Structure toolbar - - - - - Tools - - - - - Window list - - - - - View toolbar - - - - - Configuration widgets - - - - - Syntax highlighting engines - - - - - Data editors - - - - - Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. - - - - - Running in debug mode. Debug messages are printed to the standard output. - - - - - You need to restart application to make the language change take effect. - - - - - Next window - - - - - Previous window - - - - - Hide status field - - - - - Open Debug Console - - - - - Open CSS Console - - - - - Bugs and feature &requests - - - - - Window list - menubar view menu - - - - - Open SQL &editor - - - - - Open DDL &history - - - - - Open SQL &functions editor - - - - - Open &collations editor - - - - - Open ex&tension manager - - - - - &Import - - - - - E&xport - - - - - Open confi&guration dialog - - - - - &Tile windows - - - - - Tile windows &horizontally - - - - - Tile windows &vertically - - - - - &Cascade windows - - - - - Close selected &window - - - - - Close all windows &but selected - - - - - Close &all windows - - - - - Re&store recently closed window - - - - - &Rename selected window - - - - - Report a &bug - - - - - Propose a new &feature - - - - - &About - - - - - &Licenses - - - - - Open home &page - - - - - Open fo&rum page - - - - - User &Manual - - - - - SQLite &documentation - - - - - Check for &updates - - - - - &Database - menubar - - - - - &Structure - menubar - - - - - &View - menubar - - - - - &Tools - menubar - - - - - &Help - - - - - Could not set style: %1 - main window - - - - - Cannot export, because no export plugin is loaded. - - - - - Cannot import, because no import plugin is loaded. - - - - - Rename window - - - - - Enter new name for the window: - - - - - New updates are available. <a href="%1">Click here for details</a>. - - - - - You're running the most recent version. No updates are available. - - - - - Database passed in command line parameters (%1) was already on the list under name: %2 - - - - - Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 - - - - - Could not add database %1 to list. - - - - - MdiWindow - - - Uncommitted changes - - - - - Close anyway - - - - - Don't close - - - - - MultiEditor - - - Null value - multieditor - - - - - Configure editors for this data type - - - - - Open another tab - - - - - Data editor plugin '%1' not loaded, while it is defined for editing '%1' data type. - - - - - Deleted - multieditor - - - - - Read only - multieditor - - - - - MultiEditorBoolPlugin - - - Boolean - - - - - MultiEditorDatePlugin - - - Date - - - - - MultiEditorDateTimePlugin - - - Date & time - - - - - MultiEditorHexPlugin - - - Hex - - - - - MultiEditorNumericPlugin - - - Number - numeric multi editor tab name - - - - - MultiEditorText - - - Tab changes focus - - - - - Cut - - - - - Copy - - - - - Paste - - - - - Delete - - - - - Undo - - - - - Redo - - - - - MultiEditorTextPlugin - - - Text - - - - - MultiEditorTimePlugin - - - Time - - - - - NewConstraintDialog - - - New constraint - - - - - - Primary Key - new constraint dialog - - - - - - Foreign Key - new constraint dialog - - - - - - Unique - new constraint dialog - - - - - - Check - new constraint dialog - - - - - Not NULL - new constraint dialog - - - - - Collate - new constraint dialog - - - - - Default - new constraint dialog - - - - - NewVersionDialog - - - SQLiteStudio updates - - - - - New updates are available! - - - - - Component - - - - - This application will be closed and the update installer will start to download and install all the updates. - - - - - Update version - - - - - Check for updates on startup - - - - - Update to new version! - - - - - Not now. - - - - - Don't install the update and close this window. - - - - - PopulateConfigDialog - - - Populating configuration - - - - - Configuring <b>%1</b> for column <b>%2</b> - - - - - PopulateDialog - - - Populate table - - - - - Database - - - - - Table - - - - - Columns - - - - - Number of rows to populate: - - - - - Populate - populate dialog button - - - - - Abort - - - - - Configure - - - - - Populating configuration for this column is invalid or incomplete. - - - - - Select database with table to populate - - - - - Select table to populate - - - - - You have to select at least one column. - - - - - QObject - - - Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). - - - - - The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. - - - - - Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. - - - - - Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. - - - - - Cannot edit results of query other than %1. - - - - - Cannot edit columns that are result of aggregated %1 statements. - - - - - Cannot edit columns that are result of %1 statement. - - - - - Cannot edit columns that are result of common table expression statement (%1). - - - - - - - - on conflict: %1 - data view tooltip - - - - - references table %1, column %2 - data view tooltip - - - - - condition: %1 - data view tooltip - - - - - collation name: %1 - data view tooltip - - - - - Data grid view - - - - - Copy cell(s) contents to clipboard - - - - - Copy cell(s) contents together with header to clipboard - - - - - Paste cell(s) contents from clipboard - - - - - Set empty value to selected cell(s) - - - - - Set NULL value to selected cell(s) - - - - - Commit changes to cell(s) contents - - - - - Rollback changes to cell(s) contents - - - - - Delete selected data row - - - - - Insert new data row - - - - - Open contents of selected cell in a separate editor - - - - - Total pages available: %1 - - - - - Total rows loaded: %1 - - - - - Data view (both grid and form) - - - - - Refresh data - - - - - Switch to grid view of the data - - - - - Switch to form view of the data - - - - - Database list - - - - - Delete selected item - - - - - Clear filter contents - - - - - Refresh schema - - - - - Refresh all schemas - - - - - Add database - - - - - Select all items - - - - - Copy selected item(s) - - - - - - - Paste from clipboard - - - - - Tables - - - - - Indexes - - - - - Triggers - - - - - Views - - - - - Columns - - - - - Data form view - - - - - Commit changes for current row - - - - - Rollback changes for current row - - - - - Go to first row on current page - - - - - Go to next row - - - - - Go to previous row - - - - - Go to last row on current page - - - - - Insert new row - - - - - Delete current row - - - - - Main window - - - - - Open SQL editor - - - - - Previous window - - - - - Next window - - - - - Hide status area - - - - - Open configuration dialog - - - - - Open Debug Console - - - - - Open CSS Console - - - - - Cell text value editor - - - - - - Cut selected text - - - - - - Copy selected text - - - - - - Delete selected text - - - - - - Undo - - - - - - Redo - - - - - SQL editor input field - - - - - Select whole editor contents - - - - - Save contents into a file - - - - - Load contents from a file - - - - - Find in text - - - - - Find next - - - - - Find previous - - - - - Replace in text - - - - - Delete current line - - - - - Request code assistant - - - - - Format contents - - - - - Move selected block of text one line down - - - - - Move selected block of text one line up - - - - - Copy selected block of text and paste it a line below - - - - - Copy selected block of text and paste it a line above - - - - - Toggle comment - - - - - All SQLite databases - - - - - All files - - - - - - Database file - - - - - SQL editor window - - - - - Execute query - - - - - Execute "%1" query - - - - - Switch current working database to previous on the list - - - - - Switch current working database to next on the list - - - - - Go to next editor tab - - - - - Go to previous editor tab - - - - - Move keyboard input focus to the results view below - - - - - Move keyboard input focus to the SQL editor above - - - - - Delete selected SQL history entries - - - - - Table window - - - - - Refresh table structure - - - - - Add new column - - - - - Edit selected column - - - - - Delete selected column - - - - - Export table data - - - - - Import data to the table - - - - - Add new table constraint - - - - - Edit selected table constraint - - - - - Delete selected table constraint - - - - - Refresh table index list - - - - - Add new index - - - - - Edit selected index - - - - - Delete selected index - - - - - Refresh table trigger list - - - - - - Add new trigger - - - - - - Edit selected trigger - - - - - - Delete selected trigger - - - - - - Go to next tab - - - - - - Go to previous tab - - - - - A view window - - - - - Refresh view trigger list - - - - - QuitConfirmDialog - - - Uncommitted changes - - - - - Are you sure you want to quit the application? - -Following items are pending: - - - - - SearchTextDialog - - - Find or replace - - - - - Find: - - - - - Case sensitive - - - - - Search backwards - - - - - Regular expression matching - - - - - Replace && -find next - - - - - Replace with: - - - - - Replace all - - - - - Find - - - - - SortDialog - - - Sort by columns - - - - - - Column - - - - - - Order - - - - - Sort by: %1 - - - - - Move column up - - - - - Move column down - - - - - SqlEditor - - - Cut - sql editor - - - - - Copy - sql editor - - - - - Paste - sql editor - - - - - Delete - sql editor - - - - - Select all - sql editor - - - - - Undo - sql editor - - - - - Redo - sql editor - - - - - Complete - sql editor - - - - - Format SQL - sql editor - - - - - Save SQL to file - sql editor - - - - - Select file to save SQL - sql editor - - - - - Load SQL from file - sql editor - - - - - Delete line - sql editor - - - - - Move block down - sql editor - - - - - Move block up - sql editor - - - - - Copy block down - sql editor - - - - - Copy up down - sql editor - - - - - Find - sql editor - - - - - Find next - sql editor - - - - - Find previous - sql editor - - - - - Replace - sql editor - - - - - Toggle comment - sql editor - - - - - Saved SQL contents to file: %1 - - - - - Syntax completion can be used only when a valid database is set for the SQL editor. - - - - - Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. - - - - - Save to file - - - - - Could not open file '%1' for writing: %2 - - - - - SQL scripts (*.sql);;All files (*) - - - - - Open file - - - - - Could not open file '%1' for reading: %2 - - - - - Reached the end of document. Hit the find again to restart the search. - - - - - SqlQueryItem - - - Column: - data view tooltip - - - - - Data type: - data view - - - - - Table: - data view tooltip - - - - - Constraints: - data view tooltip - - - - - Cannot load the data for a cell that refers to the already closed database. - - - - - SqlQueryItemDelegate - - - The row is marked for deletion. - - - - - - - - - Cannot edit this cell. Details: %1 - - - - - - Structure of this table has changed since last data was loaded. Reload the data to proceed. - - - - - Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). - - - - - Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. - - - - - SqlQueryModel - - - - Only one query can be executed simultaneously. - - - - - Cannot commit the data for a cell that refers to the already closed database. - - - - - Could not begin transaction on the database. Details: %1 - - - - - An error occurred while rolling back the transaction: %1 - - - - - Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. - - - - - Uncommitted data - - - - - There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. - - - - - An error occurred while committing the transaction: %1 - - - - - An error occurred while committing the data: %1 - - - - - Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. - - - - - - Error while executing SQL query on database '%1': %2 - - - - - Error while loading query results: %1 - - - - - Insert multiple rows - - - - - Number of rows to insert: - - - - - SqlQueryView - - - Go to referenced row in... - - - - - Copy - - - - - Copy as... - - - - - Paste - - - - - Paste as... - - - - - Set NULL values - - - - - Erase values - - - - - Edit value in editor - - - - - Commit - - - - - Copy with headers - - - - - Rollback - - - - - Commit selected cells - - - - - Rollback selected cells - - - - - Define columns to sort by - - - - - Remove custom sorting - - - - - Insert row - - - - - Insert multiple rows - - - - - Delete selected row - - - - - Show value in a viewer - - - - - Generate query for selected cells - - - - - No items selected to paste clipboard contents to. - - - - - Go to referenced row in table '%1' - - - - - table '%1' - - - - - Referenced row (%1) - - - - - Trim pasted text? - - - - - The pasted text contains leading or trailing white space. Trim it automatically? - - - - - Edit value - - - - - SqlTableModel - - - Error while committing new row: %1 - - - - - Error while deleting row from table %1: %2 - - - - - SqliteExtensionEditor - - - Filter extensions - - - - - Leave empty to use default function - - - - - Extension file - - - - - Initialization function - - - - - Databases - - - - - Register in all databases - - - - - Register in following databases: - - - - - Extension manager window has uncommitted modifications. - - - - - Extension manager - - - - - Commit all extension changes - - - - - Rollback all extension changes - - - - - Add new extension - - - - - Remove selected extension - - - - - Editing extensions manual - - - - - File with given path does not exist or is not readable. - - - - - Unable to load extension: %1 - - - - - Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. - - - - - Dynamic link libraries (*.dll);;All files (*) - - - - - Shared objects (*.so);;All files (*) - - - - - Dynamic libraries (*.dylib);;All files (*) - - - - - All files (*) - - - - - Open file - - - - - StatusField - - - Status - - - - - Copy - - - - - Clear - - - - - TableConstraintsModel - - - Type - table constraints - - - - - Details - table constraints - - - - - Name - table constraints - - - - - TableForeignKeyPanel - - - Foreign table: - - - - - SQLite 2 does not support foreign keys officially, -but it's okay to use them anyway. - - - - - Columns - - - - - Local column - - - - - Foreign column - - - - - Reactions - - - - - Deferred foreign key - - - - - Named constraint - - - - - Constraint name - - - - - Pick the foreign column. - - - - - Pick the foreign table. - - - - - Select at least one foreign column. - - - - - Enter a name of the constraint. - - - - - Foreign column - table constraints - - - - - TablePrimaryKeyAndUniquePanel - - - Columns - - - - - Column - - - - - Collation - - - - - Sort - - - - - Valid only for a single column with INTEGER data type - - - - - Autoincrement - - - - - Named constraint - - - - - Constraint name - - - - - On conflict - - - - - Collate - table constraints - - - - - Sort order - table constraints - - - - - Select at least one column. - - - - - Enter a name of the constraint. - - - - - TableStructureModel - - - Name - table structure columns - - - - - Data type - table structure columns - - - - - Primary -Key - table structure columns - - - - - Foreign -Key - table structure columns - - - - - Unique - table structure columns - - - - - Check - table structure columns - - - - - Not -NULL - table structure columns - - - - - Collate - table structure columns - - - - - Default value - table structure columns - - - - - TableWindow - - - Structure - - - - - Table name: - - - - - - Data - - - - - Constraints - - - - - Indexes - - - - - Triggers - - - - - DDL - - - - - Export table - table window - - - - - Import data to table - table window - - - - - Populate table - table window - - - - - Refresh structure - table window - - - - - Commit structure changes - table window - - - - - Rollback structure changes - table window - - - - - Add column - table window - - - - - Edit column - table window - - - - - - Delete column - table window - - - - - Move column up - table window - - - - - Move column down - table window - - - - - Create similar table - table window - - - - - Reset autoincrement value - table window - - - - - Add table constraint - table window - - - - - Edit table constraint - table window - - - - - Delete table constraint - table window - - - - - Move table constraint up - table window - - - - - Move table constraint down - table window - - - - - Add table primary key - table window - - - - - Add table foreign key - table window - - - - - Add table unique constraint - table window - - - - - Add table check constraint - table window - - - - - Refresh index list - table window - - - - - Create index - table window - - - - - Edit index - table window - - - - - Delete index - table window - - - - - Refresh trigger list - table window - - - - - Create trigger - table window - - - - - Edit trigger - table window - - - - - Delete trigger - table window - - - - - Are you sure you want to delete column '%1'? - table window - - - - - Following problems will take place while modifying the table. -Would you like to proceed? - table window - - - - - Table modification - table window - - - - - Could not load data for table %1. Error details: %2 - - - - - Could not process the %1 table correctly. Unable to open a table window. - - - - - Could not restore window %1, because no database or table was stored in session for this window. - - - - - Could not restore window '%1', because no database or table was stored in session for this window. - - - - - Could not restore window '%1', because database %2 could not be resolved. - - - - - Could not restore window '%1'', because the table %2 doesn't exist in the database %3. - - - - - - New table %1 - - - - - Committed changes for table '%1' successfully. - - - - - Committed changes for table '%1' (named before '%2') successfully. - - - - - Autoincrement value for table '%1' has been reset successfully. - - - - - Uncommitted changes - - - - - There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. -Do you want to commit the structure, or do you want to go back to the structure tab? - - - - - Table window "%1" has uncommitted structure modifications and data. - - - - - Table window "%1" has uncommitted data. - - - - - Table window "%1" has uncommitted structure modifications. - - - - - Could not commit table structure. Error message: %1 - table window - - - - - Reset autoincrement - - - - - Are you sure you want to reset autoincrement value for table '%1'? - - - - - An error occurred while trying to reset autoincrement value for table '%1': %2 - - - - - Empty name - - - - - A blank name for the table is allowed in SQLite, but it is not recommended. -Are you sure you want to create a table with blank name? - - - - - Cannot create a table without at least one column. - - - - - Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. - - - - - Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. - - - - - Are you sure you want to delete table constraint '%1'? - table window - - - - - Delete constraint - table window - - - - - Cannot export, because no export plugin is loaded. - - - - - Cannot import, because no import plugin is loaded. - - - - - Go back to structure tab - - - - - Commit modifications and browse data. - - - - - Name - table window indexes - - - - - Unique - table window indexes - - - - - Columns - table window indexes - - - - - Partial index condition - table window indexes - - - - - Name - table window triggers - - - - - Event - table window triggers - - - - - Condition - table window triggers - - - - - Details - table window triggers - - - - - TriggerColumnsDialog - - - Trigger columns - - - - - Triggering columns: - - - - - Select all - - - - - Deselect all - - - - - TriggerDialog - - - - Trigger - - - - - On table: - - - - - Action: - - - - - - <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> - - - - - Pre-condition: - - - - - The scope is still not fully supported by the SQLite database. - - - - - Trigger name: - - - - - When: - - - - - List of columns for UPDATE OF action. - - - - - Scope: - - - - - Code: - - - - - Trigger statements to be executed. - - - - - DDL - - - - - On view: - - - - - Could not process trigger %1 correctly. Unable to open a trigger dialog. - - - - - Enter a valid condition. - - - - - Enter a valid trigger code. - - - - - Error - trigger dialog - - - - - An error occurred while executing SQL statements: -%1 - - - - - VersionConvertSummaryDialog - - - Database version convert - - - - - Following changes to the SQL statements will be made: - - - - - Before - - - - - After - - - - - ViewWindow - - - Query - - - - - View name: - - - - - Output column names - - - - - - Data - - - - - Triggers - - - - - DDL - - - - - - Could not restore window '%1', because no database or view was stored in session for this window. - - - - - Could not restore window '%1', because database %2 could not be resolved. - - - - - Could not restore window '%1', because database %2 could not be open. - - - - - Could not restore window '%1', because the view %2 doesn't exist in the database %3. - - - - - - New view %1 - - - - - Refresh the view - view window - - - - - Commit the view changes - view window - - - - - Rollback the view changes - view window - - - - - Explicit column names - - - - - Generate output column names automatically basing on result columns of the view. - - - - - Add column - view window - - - - - Edit column - view window - - - - - Delete column - view window - - - - - Move column up - view window - - - - - Move column down - view window - - - - - Refresh trigger list - view window - - - - - Create new trigger - view window - - - - - Edit selected trigger - view window - - - - - Delete selected trigger - view window - - - - - View window "%1" has uncommitted structure modifications and data. - - - - - View window "%1" has uncommitted data. - - - - - View window "%1" has uncommitted structure modifications. - - - - - Uncommitted changes - - - - - There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. -Do you want to commit the structure, or do you want to go back to the structure tab? - - - - - Committed changes for view '%1' successfully. - - - - - Committed changes for view '%1' (named before '%2') successfully. - - - - - Could not load data for view %1. Error details: %2 - - - - - Go back to structure tab - - - - - Commit modifications and browse data. - - - - - Could not commit view changes. Error message: %1 - view window - - - - - Override columns - - - - - Currently defined columns will be overriden. Do you want to continue? - - - - - Could not determinate columns returned from the view. The query is problably incomplete or contains errors. - - - - - Name - view window triggers - - - - - Instead of - view window triggers - - - - - Condition - view window triggers - - - - - Details - table window triggers - - - - - Could not process the %1 view correctly. Unable to open a view window. - - - - - Empty name - - - - - A blank name for the view is allowed in SQLite, but it is not recommended. -Are you sure you want to create a view with blank name? - - - - - The SELECT statement could not be parsed. Please correct the query and retry. -Details: %1 - - - - - The view could not be modified due to internal SQLiteStudio error. Please report this! - - - - - The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. - - - - - Following problems will take place while modifying the view. -Would you like to proceed? - view window - - - - - View modification - view window - - - - - WidgetCover - - - Interrupt - - - - diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_es_ES.ts b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_es_ES.ts new file mode 100644 index 0000000..8e80956 --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_es_ES.ts @@ -0,0 +1,7111 @@ + + + + + AboutDialog + + + About SQLiteStudio and licenses + Acerca de SQLiteStudio y las licencias + + + + About + Acerca de + + + + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Gestor de bases de datos SQLite gratuito, open-source y multi-plataforma.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Autor y mantenedor activo:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + + + + Licenses + Licencias + + + + Environment + Entorno + + + + Icon directories + Directorios de los iconos + + + + Form directories + Directorios de los formularios + + + + SQLite extension directories + SQLite extension directories + + + + Plugin directories + Directorios de los plugins + + + + Configuration directory + Directorio de configuración + + + + Application directory + Directorio de la aplicación + + + + Qt version: + Versión de Qt: + + + + SQLite 3 version: + Versión de SQLite 3: + + + + Portable distribution. + Distribución portable. + + + + MacOS X application bundle distribution. + MacOS X application bundle distribution. + + + + Operating system managed distribution. + El sistema operativo gestionó la distribución. + + + + <h3>Table of contents:</h3><ol>%2</ol> + <h3>Tabla de contenidos:</h3><ol>%2</ol> + + + + BindParamsDialog + + + Query parameters + Parámetros de la consulta + + + + Please provide values for query parameters + Por favor, proporciona los valores de los parámetros de la consulta + + + + CodeSnippetEditor + + + Filter snippets + Filter snippets + + + + + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + + + + + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + + + + Snippet name + Snippet name + + + + Code assistant shortcut + Code assistant shortcut + + + + Snippet code + Snippet code + + + + Code Snippets editor window has uncommitted modifications. + Code Snippets editor window has uncommitted modifications. + + + + Code Snippets editor + Code Snippets editor + + + + Commit all snippet changes + Commit all snippet changes + + + + Rollback all snippet changes + Rollback all snippet changes + + + + Create new snippet + Create new snippet + + + + Delete selected snippet + Delete selected snippet + + + + Move the snippet up + Move the snippet up + + + + Move the snippet down + Move the snippet down + + + + Code snippets manual + Code snippets manual + + + + Enter a non-empty, unique name of the snippet. + Enter a non-empty, unique name of the snippet. + + + + Enter a non-empty snippet content. + Enter a non-empty snippet content. + + + + This hotkey is not unique in context of a code assistant. + This hotkey is not unique in context of a code assistant. + + + + CollationsEditor + + + Filter collations + Filtrar colaciones + + + + Databases + Bases de datos + + + + Register in all databases + Registrar en todas las bases de datos + + + + Register in following databases: + Registrar en las siguientes bases de datos: + + + + Implementation code: + Código de implementación: + + + + Collation name: + Nombre de la colación: + + + + Implementation language: + Lenguaje de implementación: + + + + Collations editor + Editor de colaciones + + + + Commit all collation changes + Confirmar todos los cambios en las colaciones + + + + Rollback all collation changes + Revertir todos los cambios en las colaciones + + + + Create new collation + Crear nueva colación + + + + Delete selected collation + Borrar colación seleccionada + + + + Editing collations manual + Manual para editar colaciones + + + + Enter a non-empty, unique name of the collation. + Ingresa un nombre único y que no esté vacío para la colación. + + + + Pick the implementation language. + Elige el idioma de implementación. + + + + Enter a non-empty implementation code. + Ingresa código de implementación que no esté vacío. + + + + Collations editor window has uncommitted modifications. + La ventana del editor de colaciones tiene cambios sin confirmar. + + + + ColorButton + + + Pick a color + Elige un color + + + + ColumnCollatePanel + + + Collation name: + Nombre de la colación: + + + + Named constraint: + Nombre de la restricción: + + + + Enter a name of the constraint. + Ingresa el nombre de la restricción. + + + + Enter a collation name. + Ingresa un nombre para la colación. + + + + ColumnDefaultPanel + + + Default value: + Valor predeterminado: + + + + Named constraint: + Nombre de la restricción: + + + + Enter a default value expression. + Ingresa una expresión de valor predeterminada. + + + + Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. + Valor de expresión predeterminado inválido: %1. Si quieres usar una cadena simple como valor, recuerda encerrarla con caracteres de comillas. + + + + Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. + Valor de expresión predeterminada inválida. Si quieres usar cadenas simples como valores, recuerda encerrarlas con los caracteres de comillas. + + + + Enter a name of the constraint. + Ingresa el nombre de la restricción. + + + + ColumnDialog + + + Column + Columna + + + + Name and type + Nombre y tipo + + + + Scale + Escala + + + + Precision + Precisión + + + + Data type: + Tipo de dato: + + + + Column name: + Nombre de columna: + + + + Size: + Tamaño: + + + + Constraints + Restricciones + + + + Generated value + Valor generado + + + + Unique + Único + + + + + + + + + + + Configure + Configurar + + + + Foreign Key + Clave Foránea + + + + Collate + Cotejar + + + + Not NULL + No NULO + + + + Check condition + Verificar condición + + + + Primary Key + Clave Primaria + + + + Default + Predeterminado + + + + Advanced mode + Modo avanzado + + + + Add constraint + column dialog + Añadir restricción + + + + Edit constraint + column dialog + Editar restricción + + + + + Delete constraint + column dialog + Borrar restricción + + + + Move constraint up + column dialog + Mover esta restricción arriba + + + + Move constraint down + column dialog + Mover esta restricción abajo + + + + Add a primary key + column dialog + Añadir una clave primaria + + + + Add a foreign key + column dialog + Añadir una clave foránea + + + + Add an unique constraint + column dialog + Añadir una restricción única + + + + Add a check constraint + column dialog + Añadir una restricción de verificación + + + + Add a not null constraint + column dialog + Añadir una restricción no nula + + + + Add a collate constraint + column dialog + Añadir una restricción de verificación + + + + Add a generated value constraint + column dialog + Añadir una restricción de valor generado + + + + Add a default constraint + column dialog + Añadir una restricción predeterminada + + + + Are you sure you want to delete constraint '%1'? + column dialog + ¿Estás seguro de querer borrar la restricción '%1'? + + + + Correct the constraint's configuration. + Corregir la configuración de la restricción. + + + + Scale is not allowed for INTEGER PRIMARY KEY columns. + No se permite usar escala para las columnas ENTERAS DE CLAVE PRIMARIA. + + + + Precision cannot be defined without the scale. + No se puede definir la precisión sin la escala. + + + + Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. + No se puede usar otro tipo que no sea INTEGER si el AUTOINCREMENTO está activo en la CLAVE PRIMARIA. + + + + INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. + Se forzó el uso del tipo ENTERO debido a que la CLAVE PRIMARIA tiene activo el AUTOINCREMENTO. + + + + Precision is not allowed for INTEGER PRIMARY KEY columns. + Las columnas INTEGER PRIMARY KEY no permiten precisión. + + + + Could not match valid STRICT table datatype from declared type: %1. + Could not match valid STRICT table datatype from declared type: %1. + + + + ColumnDialogConstraintsModel + + + Type + column dialog constraints + Tipo + + + + Name + column dialog constraints + Nombre + + + + Details + column dialog constraints + Detalles + + + + ColumnForeignKeyPanel + + + Foreign table: + Tabla foránea: + + + + Foreign column: + Columna foránea: + + + + Reactions + Reacciones + + + + Deferred foreign key + Clave foránea diferida + + + + Named constraint + Nombre de la restricción + + + + Constraint name + Nombre de la restricción + + + + Pick the foreign table. + Elige la tabla externa. + + + + Pick the foreign column. + Elige la columna externa. + + + + Enter a name of the constraint. + Ingresa el nombre de la restricción. + + + + ColumnGeneratedPanel + + + Generating code: + Código generador: + + + + Explicit type: + Tipo explícito: + + + + Use "GENERATED ALWAYS" keywords + Usar palabras clave "GENERATED ALWAYS" + + + + Named constraint: + Nombre de la restricción: + + + + Enter the column value generating expression. + Ingresa la expresión para generar el valor de la columna. + + + + Invalid value generating expression: %1. + Valor de generador de expresión no válido: %1. + + + + Invalid value generating expression. + Valor de generador de expresión no válido. + + + + Enter a name of the constraint. + Ingresa el nombre de la restricción. + + + + ColumnPrimaryKeyPanel + + + Autoincrement + Autoincrementar + + + + Sort order: + Ordenar por: + + + + Named constraint: + Nombre de la restricción: + + + + On conflict: + En un conflicto: + + + + Enter a name of the constraint. + Ingresa el nombre de la restricción. + + + + Descending order is not allowed with AUTOINCREMENT. + Descending order is not allowed with AUTOINCREMENT. + + + + ColumnUniqueAndNotNullPanel + + + Named constraint: + Nombre de la restricción: + + + + On conflict: + En un conflicto: + + + + Enter a name of the constraint. + Ingresa el nombre de la restricción. + + + + CompleterWindow + + + Column: %1 + completer statusbar + Columna: %1 + + + + Table: %1 + completer statusbar + Tabla: %1 + + + + Index: %1 + completer statusbar + Índice: %1 + + + + Trigger: %1 + completer statusbar + Disparador: %1 + + + + View: %1 + completer statusbar + Vista: %1 + + + + Database: %1 + completer statusbar + Base de datos: %1 + + + + Keyword: %1 + completer statusbar + Palabra clave: %1 + + + + Function: %1 + completer statusbar + Función: %1 + + + + Operator: %1 + completer statusbar + Operador: %1 + + + + String + completer statusbar + String + + + + Number + completer statusbar + Número + + + + Binary data + completer statusbar + Datos binarios + + + + Collation: %1 + completer statusbar + Colación: %1 + + + + Pragma function: %1 + completer statusbar + Función pragma: %1 + + + + Insert a code snippet + Insert a code snippet + + + + ConfigDialog + + + + Configuration + Configuración + + + + Search + Buscar + + + + General + General + + + + Keyboard shortcuts + Atajos de teclado + + + + Look & feel + Aspecto visual + + + + Style + Estilo + + + + Fonts + Fuentes + + + + Code colors + Code colors + + + + + Database list + Lista de bases de datos + + + + Code assistant + Code assistant + + + + Data browsing + Explorar datos + + + + Data editors + Editores de datos + + + + Plugins + Plugins + + + + Code formatters + Formateadores de código + + + + If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. + Si se desactiva, las columnas se ordenarán según el orden en que se escriben en la declaración CREATE TABLE. + + + + Sort table columns alphabetically + Ordenar columnas de la tabla alfabéticamente + + + + Expand tables node when connected to a database + Expandir el nodo de tablas al conectarse a una base de datos + + + + <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> + <p>Las etiquetas extras son las que se muestran al lado de los nombres en la lista de bases de datos (son azules, a menos que se configure otro color). Activar esta opción mostrará etiquetas para las bases de datos, bases de datos inválidas y nodos agregados (grupo de columnas, grupo de índices, grupo de disparadores). Para más etiquetas ve las opciones debajo.<p> + + + + Display additional labels on the list + Mostrar etiquetas adicionales en la lista + + + + For regular tables labels will show number of columns, indexes and triggers for each of tables. + Para las tablas comunes, las etiquetas mostrarán el número de columnas, índices y disparadores para cada tabla. + + + + Display labels for regular tables + Mostrar etiquetas para tablas estándares + + + + Virtual tables will be marked with a 'virtual' label. + Las tablas virtuales se marcarán con la etiqueta 'virtual'. + + + + Display labels for virtual tables + Mostrar etiquetas para tablas virtuales + + + + Expand views node when connected to a database + Expandir la vista de nodos cuando se conecte a una base de datos + + + + If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) + Si se desactiva esta opción, los objetos se ordenarán en el orden que aparezcan en la tabla sqlite_master (ordenados según se fueron creando) + + + + Sort objects (tables, indexes, triggers and views) alphabetically + Ordenar objetos (tablas, índices, disparadores y vistas) alfabéticamente + + + + Display system tables and indexes on the list + Mostrar tablas e índices del sistema en la lista + + + + Database dialog window + Ventana de diálogo de la base de datos + + + + <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> + <p>Al agregar una nueva base de datos, esta se añade por defecto como "permanente" (almacenado en la configuración). Marcar esta opción hace que cada nueva base de datos ya NO se añada como "permanente" por defecto.</p> + + + + Do not mark database to be "permanent" by default + No marcar las bases de datos como "permanentes" por defecto + + + + <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> + <p>Cuando esta opción está activada, los archivos agregados desde el gestor de archivos a la lista de bases de datos se añadirán automáticamente a la lista, saltándose el diálogo de base de datos estándar. Si por varios motivos el proceso automático falla, entonces se presentará el diálogo estándar al usuario.</p> + + + + Try to bypass dialog completly when dropping database file onto the list + Intentar saltarse completamente el diálogo al soltar un archivo de base de datos a la lista + + + + Data browsing and editing + Exploración y edición de datos + + + + + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + <p>Número máximo de configuraciones del diálogo de Llenar Tabla almacenados en la configuración. El valor de 100 debería bastar.</p> + + + + Number of memorized table populating configurations + Número de configuraciones de llenado de tabla memorizados + + + + Data column width + Data column width + + + + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + + + + Enlarge column when entering value longer than current width + Enlarge column when entering value longer than current width + + + + <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> + <p>Cuando se cargan los datos en la vista de grilla, se ajusta el ancho de las columnas automáticamente. Este valor limita el ancho inicial para el ajuste, pero el usuario puede redimensionar manualmente la columna por encima de este límite.</p> + + + + Number of data rows per page: + Número de filas de datos por página: + + + + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> + <p>Cuando esto está activado y el usuario deja el puntero del mouse encima de una celda en cualquier vista de datos (resultados de la consulta, una tabla de datos, una vista de datos) un globo de texto aparecerá con detalles sobre la celda - incluye detalles como el tipo de datos de la columna, restricciones, ROWID y otros.</p> + + + + Show column and row details tooltip in data view + Mostrar globo de texto con detalles para filas y columnas en la vista de datos + + + + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + <p>Al editar una celda que solía contener un valor NULL, ingresando una string vacía como valor nuevo, con esta opción se determina si el nuevo valor debería quedarse como NULL (si esta opción está activada), o debería reemplazarse con un valor de string vacío (si esta opción está desactivada).</p> + + + + Keep NULL value when entering empty value + Mantener valor NULL al ingresar un valor vacío + + + + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> + <html><head/><body><p>Activar esto para forzar siempre el uso del valor DEFAULT al confirmar un valor NULL para una columna con el valor DEFAULT definido, aún así que la columna esté permitida de almacenar valores NULL.</p><p>Desactiva esta opción para usar el valor DEFAULT exclusivamente cuando un valor NULL se confirme a una columna con la restricción NOT NULL.</p></body></html> + + + + Use DEFAULT value (if defined), when committing NULL value + Usar valor DEFAULT (si se ha definido) al confirmar un valor NULL + + + + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + + + + Limit number of rows for in case of dozens of columns + Limit number of rows for in case of dozens of columns + + + + Inserting new row in data grid + Insertar una nueva fila en la cuadrícula de datos + + + + Before currently selected row + Antes de la fila actualmente seleccionada + + + + After currently selected row + Después de la fila actualmente seleccionada + + + + At the end of data view + Al final de la vista de datos + + + + Table windows + Ventanas de tabla + + + + <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> + <p>Si está activado, Ventanas de Tabla se mostrará con la pestaña datos, en vez de la pestaña estructura.</p> + + + + Open Table Windows with the data tab for start + Abrir Ventanas de Tabla con la pestaña de datos para iniciar + + + + <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> + <p>Cuando esté activado, la pestaña "Datos" se posicionará como la primera pestaña en cada Ventana Tabla, en vez de estar en el segundo lugar.</p> + + + + Place data tab as first tab in a Table Window + Ubicar la pestaña de datos como la primera pestaña en una Ventana Tabla + + + + View windows + Ver ventanas + + + + <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> + <p>Cuando está activado, Ver Ventanas se mostrará en la pestaña de Datos, en vez de la de Estructura.</p> + + + + Open View Windows with the data tab for start + Abrir Ver Ventanas con la pestaña de datos al iniciar + + + + <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> + <p>Cuando esté activado, la pestaña "Datos" se posicionará como la primera pestaña en cada Ventana Tabla, en vez de estar en el segundo lugar.</p> + + + + Place data tab as first tab in a View Window + Ubicar la pestaña de datos como la primera pestaña en una Ventana Ver + + + + Data types + Tipos de datos + + + + Available editors: + Editores disponibles: + + + + Editors selected for this data type: + Editores seleccionados para este tipo de dato: + + + + Schema editing + Edición de esquema + + + + Number of DDL changes kept in history. + Número de cambios de DDL a mantener en el historial. + + + + DDL history size: + Tamaño del historial DDL: + + + + Don't show DDL preview dialog when committing schema changes + No mostrar el diálogo de vista previa del DDL al confirmar cambios del esquema + + + + SQL queries + Consultas SQL + + + + + Number of queries kept in the history. + Número de consultas a mantener en el historial. + + + + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> + + + + History size: + Tamaño del historial: + + + + + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> + <p>Número máximo de parámetros en la consulta (:param, @param, $param, ?) almacenados en el historial. Cuando reusas un parámetro con el mismo nombre/posición, SQLiteStudio lo pre-inicializará con el valor más reciente almacenado en memoria (aún podrás cambiarlo). Un valor de 1000 debería bastar.</p> + + + + Execute only the query under the cursor + Ejecutar sólo la consulta bajo el cursor + + + + Number of memorized query parameters + Número de parámetros de consulta en memoria + + + + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + + + + Use scientific notation for real numbers in the grid view + Use scientific notation for real numbers in the grid view + + + + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + + + + Limit automatic data column width to (in pixels): + Limit automatic data column width to (in pixels): + + + + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + + + + Keep at least the width to show complete column name + Keep at least the width to show complete column name + + + + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + + + + Wrap lines in SQL editor + Wrap lines in SQL editor + + + + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + + + + Highlight current query + Highlight current query + + + + Updates + Actualizaciones + + + + Automatically check for updates at startup + Comprobar actualizaciones automáticamente al inicio + + + + Session + Sesión + + + + Restore last session (active MDI windows) after startup + Restaurar la última sesión (ventana MDI activa) luego de iniciar + + + + Allow multiple instances of the application at the same time + Allow multiple instances of the application at the same time + + + + Status Field + Campo de Estado + + + + <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> + <p>Cuando el usuario cierra manualmente el panel de Estado, esta opción se asegura que cualquier nuevo mensaje enviado al panel de Estado se muestre, mostrando de nuevo ese panel. Si se desactiva, el usuario tiene que abrir manualmente el panel de Estado desde el menú "Vista".</p> + + + + Always open Status panel when new message is printed + Abrir siempre el panel de Estado cuando un nuevo mensaje se muestre + + + + Code syntax colors + Code syntax colors + + + + Keyword foreground + Keyword foreground + + + + Regular foreground + Regular foreground + + + + String foreground + String foreground + + + + Comment foreground + Comment foreground + + + + Valid objects foreground + Valid objects foreground + + + + Current query background + Current query background + + + + Bind parameter foreground + Bind parameter foreground + + + + Current line background + Current line background + + + + Matched parenthesis background + Matched parenthesis background + + + + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + + + + Number foreground + Number foreground + + + + BLOB value foreground + BLOB value foreground + + + + Matched parenthesis foreground + Matched parenthesis foreground + + + + Reset to defaults + Reset to defaults + + + + Filter shortcuts by name or key combination + Filtrar atajos por nombre o combinación de teclas + + + + Action + Acción + + + + Key combination + Combinación de teclas + + + + + Language + Idioma + + + + Changing language requires application restart to take effect. + Cambiar el idioma requiere reiniciar la aplicación para que los cambios surtan efecto. + + + + Compact layout + Diseño compacto + + + + <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> + <p>Compactar diseño reduce todos los márgenes y espaciados de la IU al mínimo, haciendo espacio para mostrar más datos. Le quita algo de belleza a la interfaz, pero permite mostrar más datos.</p> + + + + Use compact layout + Usar diseño compacto + + + + Main window dock areas + Áreas de acoplamiento de la ventana principal + + + + Left and right areas occupy corners + Las áreas izquierda y derecha ocupan las esquinas + + + + Top and bottom areas occupy corners + Las áreas superior e inferior ocupan las esquinas + + + + Hide built-in plugins + Ocultar plugins integrados + + + + Current style: + Estilo actual: + + + + Preview + Vista previa + + + + Enabled + Activado + + + + Disabled + Desactivado + + + + Active formatter plugin + Plugin de formato activo + + + + SQL editor font + Fuente del editor SQL + + + + Database list font + Fuente de la lista de bases de datos + + + + Database list additional label font + Fuente para la etiqueta adicional de lista de bases de datos + + + + Data view font + Fuente del visor de datos + + + + Status field font + Fuente del campo de Estado + + + + Code assistant settings + Code assistant settings + + + + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + + + + Automatically trigger the assistant after a dot is typed after an object name + Automatically trigger the assistant after a dot is typed after an object name + + + + Description: + plugin details + Descripción: + + + + Category: + plugin details + Categoría: + + + + Version: + plugin details + Versión: + + + + Author: + plugin details + Autor: + + + + Internal name: + plugin details + Nombre interno: + + + + Dependencies: + plugin details + Dependencias: + + + + Conflicts: + plugin details + Conflictos: + + + + Plugin details + Detalles del plugin + + + + Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. + Los plugins son cargados/liberados inmediatamente el mismo momento que los seleccionas/deseleccionas, pero la lista modificada de plugins a cargar al iniciar el programa no se guarda hasta que Aceptes los cambios de este diálogo de configuración. + + + + %1 (built-in) + plugins manager in configuration dialog + %1 (integrado) + + + + Details + Detalles + + + + No plugins in this category. + No hay plugins en esta categoría. + + + + Add new data type + Añadir un nuevo tipo de dato + + + + Rename selected data type + Renombrar el tipo de dato seleccionado + + + + Delete selected data type + Borrar el tipo de dato seleccionado + + + + Help for configuring data type editors + Ayuda para configurar los editores de tipo de dato + + + + Clear hotkey for this action + Clear hotkey for this action + + + + Restore original hotkey for this action + Restore original hotkey for this action + + + + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + + + + ConstraintCheckPanel + + + The condition + La condición + + + + Named constraint: + Nombre de la restricción: + + + + On conflict + En un conflicto + + + + Enter a valid condition. + Ingresa una condición válida. + + + + Enter a name of the constraint. + Ingresa el nombre de la restricción. + + + + ConstraintDialog + + + New constraint + constraint dialog + Nueva restricción + + + + Create + constraint dialog + Crear + + + + Edit constraint + dialog window + Editar restricción + + + + Apply + constraint dialog + Aplicar + + + + Primary key + table constraints + Clave primaria + + + + Foreign key + table constraints + Clave foránea + + + + Unique + table constraints + Único + + + + Not NULL + table constraints + No es NULL + + + + Check + table constraints + Comprobar + + + + Generated + table constraints + Generated + + + + Collate + table constraints + Collate + + + + Default + table constraints + Predeterminado + + + + ConstraintTabModel + + + Table + table constraints + Tabla + + + + Column (%1) + table constraints + Columna (%1) + + + + Scope + table constraints + Alcance + + + + Type + table constraints + Tipo + + + + Details + table constraints + Detalles + + + + Name + table constraints + Nombre + + + + CssDebugDialog + + + SQLiteStudio CSS console + Consola CSS de SQLIteStudio + + + + DataView + + + Filter data + data view + Filtrar datos + + + + Grid view + Vista de rejilla + + + + Form view + Vista de formulario + + + + Refresh table data + data view + Actualizar los datos de la tabla + + + + First page + data view + Primera página + + + + Previous page + data view + Previous page + + + + Next page + data view + Next page + + + + Last page + data view + Last page + + + + Commit changes for selected cells + data view + Commit changes for selected cells + + + + Rollback changes for selected cells + data view + Rollback changes for selected cells + + + + Show grid view of results + data view + Show grid view of results + + + + Show form view of results + data view + Show form view of results + + + + Filter by text (if contains) + data view + Filter by text (if contains) + + + + Filter strictly by text (if equals) + data view + Filter strictly by text (if equals) + + + + Tabs on top + data view + Tabs on top + + + + Tabs at bottom + data view + Tabs at bottom + + + + Place new rows above selected row + data view + Place new rows above selected row + + + + Place new rows below selected row + data view + Place new rows below selected row + + + + Place new rows at the end of the data view + data view + Place new rows at the end of the data view + + + + Total number of rows is being counted. +Browsing other pages will be possible after the row counting is done. + Total number of rows is being counted. +Browsing other pages will be possible after the row counting is done. + + + + Row: %1 + Row: %1 + + + + Filter + Filter + + + + Hit Enter key or press "Apply filter" button on toolbar to apply new value. + Hit Enter key or press "Apply filter" button on toolbar to apply new value. + + + + Filter by the Regular Expression + data view + Filter by the Regular Expression + + + + Filter by SQL expression + data view + Filter by SQL expression + + + + Show filter inputs per column + data view + Show filter inputs per column + + + + Apply filter + data view + Apply filter + + + + DbDialog + + + Database + Database + + + + Database type + Tipo de base de datos + + + + Database driver + Database driver + + + + + File + File + + + + Name (on the list) + Name (on the list) + + + + Options + Options + + + + <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> + aasfd + <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> + + + + Permanent (keep it in configuration) + Permanent (keep it in configuration) + + + + Test connection + Test connection + + + + Select new or existing file on local computer + Select new or existing file on local computer + + + + Browse + Browse + + + + Database type not selected. + Database type not selected. + + + + Database path not specified. + Database path not specified. + + + + Enter an unique database name. + Enter an unique database name. + + + + This name is already in use. Please enter unique name. + This name is already in use. Please enter unique name. + + + + <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> + <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> + + + + Enter a database file path. + Enter a database file path. + + + + This database is already on the list under name: %1 + This database is already on the list under name: %1 + + + + Select a database type. + Select a database type. + + + + DbObjectDialogs + + + Delete table + Delete table + + + + Are you sure you want to delete table %1? + Are you sure you want to delete table %1? + + + + Delete index + Delete index + + + + Are you sure you want to delete index %1? + Are you sure you want to delete index %1? + + + + Delete trigger + Delete trigger + + + + Are you sure you want to delete trigger %1? + Are you sure you want to delete trigger %1? + + + + Delete view + Delete view + + + + Are you sure you want to delete view %1? + Are you sure you want to delete view %1? + + + + + Error while dropping %1: %2 + Error while dropping %1: %2 + + + + Delete objects + Delete objects + + + + Are you sure you want to delete following objects: +%1 + Are you sure you want to delete following objects: +%1 + + + + Cannot start transaction. Details: %1 + Cannot start transaction. Details: %1 + + + + Cannot commit transaction. Details: %1 + Cannot commit transaction. Details: %1 + + + + DbTree + + + Databases + Databases + + + + Filter by name + Filter by name + + + + Copy + Copiar + + + + Paste + Paste + + + + Select all + Select all + + + + Create a group + Create a group + + + + Delete the group + Delete the group + + + + Rename the group + Rename the group + + + + &Add a database + &Añadir una base de datos + + + + &Edit the database + &Editar la base de datos + + + + &Remove the database + &Quitar la base de datos + + + + &Connect to the database + &Conectar a la base de datos + + + + &Disconnect from the database + &Desconectar de la base de datos + + + + Import + Import + + + + &Export the database + &Exportar la base de datos + + + + Vac&uum + Ejecutar Vac&uum + + + + &Integrity check + Comprobación de &integridad + + + + Create a &table + Create a &table + + + + Edit the t&able + Edit the t&able + + + + Delete the ta&ble + Delete the ta&ble + + + + Export the table + Export the table + + + + Import into the table + Import into the table + + + + Populate table + Poblar tabla + + + + Create similar table + Crear tabla similar + + + + Reset autoincrement sequence + Reset autoincrement sequence + + + + Create an &index + Create an &index + + + + Edit the i&ndex + Edit the i&ndex + + + + Delete the in&dex + Delete the in&dex + + + + Create a trig&ger + Create a trig&ger + + + + Edit the trigg&er + Edit the trigg&er + + + + Delete the trigge&r + Delete the trigge&r + + + + Create a &view + Create a &view + + + + Edit the v&iew + Edit the v&iew + + + + Delete the vi&ew + Delete the vi&ew + + + + Add a column + Add a column + + + + Edit the column + Edit the column + + + + Delete the column + Delete the column + + + + Delete selected items + Delete selected items + + + + Clear filter + Clear filter + + + + &Refresh all database schemas + A&ctualizar todos los esquemas de bases de datos + + + + Re&fresh selected database schema + Ac&tualizar el esquema de base de datos seleccionado + + + + + Erase table data + Erase table data + + + + Open file's directory + Open file's directory + + + + Execute SQL from file + Execute SQL from file + + + + Increase font size + database list + Increase font size + + + + Decrease font size + database list + Decrease font size + + + + + Database + Database + + + + Grouping + Grouping + + + + Generate query for table + Generate query for table + + + + + Create group + Create group + + + + Group name + Group name + + + + Entry with name %1 already exists in group %2. + Entry with name %1 already exists in group %2. + + + + Delete group + Delete group + + + + Are you sure you want to delete group %1? +All objects from this group will be moved to parent group. + Are you sure you want to delete group %1? +All objects from this group will be moved to parent group. + + + + Are you sure you want to remove database '%1' from the list? + Are you sure you want to remove database '%1' from the list? + + + + Are you sure you want to remove following databases from the list: +%1 + Are you sure you want to remove following databases from the list: +%1 + + + + Remove database + Remove database + + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Vacuum (%1) + Vacuum (%1) + + + + Integrity check (%1) + Comprobación de integridad (%1) + + + + Reset autoincrement + Reset autoincrement + + + + Are you sure you want to reset autoincrement value for table '%1'? + Are you sure you want to reset autoincrement value for table '%1'? + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + An error occurred while trying to reset autoincrement value for table '%1': %2 + + + + Autoincrement value for table '%1' has been reset successfully. + Autoincrement value for table '%1' has been reset successfully. + + + + Are you sure you want to delete all data from table(s): %1? + Are you sure you want to delete all data from table(s): %1? + + + + An error occurred while trying to delete data from table '%1': %2 + An error occurred while trying to delete data from table '%1': %2 + + + + All data has been deleted for table '%1'. + All data has been deleted for table '%1'. + + + + Following objects will be deleted: %1. + Following objects will be deleted: %1. + + + + Following databases will be removed from list: %1. + Following databases will be removed from list: %1. + + + + Remainig objects from deleted group will be moved in place where the group used to be. + Remainig objects from deleted group will be moved in place where the group used to be. + + + + %1<br><br>Are you sure you want to continue? + %1<br><br>Are you sure you want to continue? + + + + Delete objects + Delete objects + + + + DbTreeItemDelegate + + + error + dbtree labels + error + + + + (system table) + database tree label + (system table) + + + + (virtual) + virtual table label + (virtual) + + + + (system index) + database tree label + (system index) + + + + DbTreeModel + + + Database: %1 + dbtree tooltip + Database: %1 + + + + URI: + dbtree tooltip + URI: + + + + Version: + dbtree tooltip + Version: + + + + File size: + dbtree tooltip + File size: + + + + Encoding: + dbtree tooltip + Encoding: + + + + Error: + dbtree tooltip + Error: + + + + Table : %1 + dbtree tooltip + Table : %1 + + + + Columns (%1): + dbtree tooltip + Columns (%1): + + + + Indexes (%1): + dbtree tooltip + Indexes (%1): + + + + Triggers (%1): + dbtree tooltip + Triggers (%1): + + + + Copy + Copiar + + + + Move + Move + + + + Include data + Include data + + + + Include indexes + Include indexes + + + + Include triggers + Include triggers + + + + Abort + Abort + + + + Could not add dropped database file '%1' automatically. Manual setup is necessary. + Could not add dropped database file '%1' automatically. Manual setup is necessary. + + + + Referenced tables + Referenced tables + + + + Do you want to include following referenced tables as well: +%1 + Do you want to include following referenced tables as well: +%1 + + + + Name conflict + Name conflict + + + + Following object already exists in the target database. +Please enter new, unique name, or press '%1' to abort the operation: + Following object already exists in the target database. +Please enter new, unique name, or press '%1' to abort the operation: + + + + SQL statements conversion + SQL statements conversion + + + + Following error occurred while converting SQL statements to the target SQLite version: + Following error occurred while converting SQL statements to the target SQLite version: + + + + Would you like to ignore those errors and proceed? + Would you like to ignore those errors and proceed? + + + + DdlHistoryWindow + + + Filter by database: + Filtrar por base de datos: + + + + Clear entire history + Clear entire history + + + + -- Queries executed on database %1 (%2) +-- Date and time of execution: %3 +%4 + -- Consultas ejecutadas en la base de datos %1 (%2) +-- Fecha y hora de la ejecución: %3 +%4 + + + + Clear history + Clear history + + + + Are you sure you want to erase entire DDL history? + Are you sure you want to erase entire DDL history? + + + + DDL history + Historial DDL + + + + DdlPreviewDialog + + + Queries to be executed + Consultas a ejecutar + + + + Don't show again + No mostrar de nuevo + + + + DebugConsole + + + SQLiteStudio Debug Console + SQLiteStudio Debug Console + + + + EditorWindow + + + SQL editor + SQL editor + + + + Query + Query + + + + History + Historial + + + + Results in the separate tab + Results in the separate tab + + + + Results below the query + Results below the query + + + + + SQL editor %1 + SQL editor %1 + + + + + Results + Results + + + + Execute query + Execute query + + + + Explain query + Explain query + + + + Clear execution history + sql editor + Limpiar historial de ejecución + + + + Export results + sql editor + Export results + + + + Create view from query + sql editor + Create view from query + + + + Previous database + Previous database + + + + Next database + Next database + + + + Show next tab + sql editor + Show next tab + + + + Show previous tab + sql editor + Show previous tab + + + + Focus results below + sql editor + Focus results below + + + + Focus SQL editor above + sql editor + Focus SQL editor above + + + + Delete selected SQL history entries + sql editor + Borrar entradas SQL seleccionadas del historial + + + + Execute single query under cursor + Execute single query under cursor + + + + Execute all queries in editor + Execute all queries in editor + + + + Active database (%1/%2) + Active database (%1/%2) + + + + Query finished in %1 second(s). Rows affected: %2 + Consulta finalizada en %1 segundo(s). Filas afectadas: %2 + + + + Query finished in %1 second(s). + Consulta finalizada en %1 segundo(s). + + + + Clear execution history + Limpiar historial de ejecución + + + + Are you sure you want to erase the entire SQL execution history? This cannot be undone. + ¿Estás seguro de que quieres borrar todo el historial de ejecución SQL? Esto no se puede deshacer. + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + No database selected in the SQL editor. Cannot create a view for unknown database. + No database selected in the SQL editor. Cannot create a view for unknown database. + + + + Editor window "%1" has uncommitted data. + Editor window "%1" has uncommitted data. + + + + ErrorsConfirmDialog + + + Errors + Errors + + + + Following errors occured: + Following errors occured: + + + + Would you like to proceed? + Would you like to proceed? + + + + ExecFromFileDialog + + + Execute SQL from file + Execute SQL from file + + + + Input file + Input file + + + + Path to file + Path to file + + + + Browse for file + Browse for file + + + + Options + Options + + + + File encoding + File encoding + + + + Skip failing SQL statements + Skip failing SQL statements + + + + SQL scripts (*.sql);;All files (*) + SQL scripts (*.sql);;All files (*) + + + + Execute SQL file + Execute SQL file + + + + Please provide file to be executed. + Please provide file to be executed. + + + + Provided file does not exist or cannot be read. + Provided file does not exist or cannot be read. + + + + ExportDialog + + + Export + Export + + + + What do you want to export? + What do you want to export? + + + + A database + A database + + + + A single table + A single table + + + + Query results + Query results + + + + Table to export + Table to export + + + + Database + Database + + + + Table + Tabla + + + + Options + Options + + + + When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. + When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. + + + + Export table data + Export table data + + + + Export table indexes + Export table indexes + + + + Export table triggers + Export table triggers + + + + Note, that exporting table indexes and triggers may be unsupported by some output formats. + Note, that exporting table indexes and triggers may be unsupported by some output formats. + + + + Select database objects to export + Select database objects to export + + + + Export data from tables + Export data from tables + + + + Select all + Select all + + + + Deselect all + Deselect all + + + + + Database: + Database: + + + + Query to export results for + Query to export results for + + + + Query to be executed for results: + Query to be executed for results: + + + + Export format and options + Export format and options + + + + Export format + Export format + + + + Output + Output + + + + Exported file path + Exported file path + + + + Clipboard + Clipboard + + + + File + File + + + + Exported text encoding: + Exported text encoding: + + + + Export format options + Export format options + + + + Cancel + Cancelar + + + + + + Select database to export. + Select database to export. + + + + Select table to export. + Select table to export. + + + + Enter valid query to export. + Enter valid query to export. + + + + Select at least one object to export. + Select at least one object to export. + + + + You must provide a file name to export to. + You must provide a file name to export to. + + + + Path you provided is an existing directory. You cannot overwrite it. + Path you provided is an existing directory. You cannot overwrite it. + + + + The directory '%1' does not exist. + The directory '%1' does not exist. + + + + The file '%1' exists and will be overwritten. + The file '%1' exists and will be overwritten. + + + + All files (*) + All files (*) + + + + Pick file to export to + Pick file to export to + + + + Internal error during export. This is a bug. Please report it. + Internal error during export. This is a bug. Please report it. + + + + FileExecErrorsDialog + + + Execution errors + Execution errors + + + + Following errors were encountered during execution of SQL statements from the file: + Following errors were encountered during execution of SQL statements from the file: + + + + SQL + SQL + + + + Error + Error + + + + Statements that were executed successfully were commited. + Statements that were executed successfully were commited. + + + + Statements that were executed successfully were rolled back. + Statements that were executed successfully were rolled back. + + + + FkComboBox + + + Cannot edit this cell. Details: %1 + Cannot edit this cell. Details: %1 + + + + FontEdit + + + Choose font + font configuration + Choose font + + + + Form + + + Active SQL formatter plugin + Active SQL formatter plugin + + + + FormView + + + Commit row + form view + Commit row + + + + Rollback row + form view + Rollback row + + + + First row + form view + First row + + + + Previous row + form view + Previous row + + + + Next row + form view + Next row + + + + Last row + form view + Last row + + + + Insert new row + form view + Insert new row + + + + Delete current row + form view + Delete current row + + + + FunctionsEditor + + + Filter functions + Filter functions + + + + Input arguments + Input arguments + + + + Undefined + Undefined + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Type: + Type: + + + + Function name: + Function name: + + + + Implementation language: + Implementation language: + + + + Deterministic + Deterministic + + + + Initialization code: + Initialization code: + + + + + Function implementation code: + Function implementation code: + + + + Final step implementation code: + Final step implementation code: + + + + SQL functions editor + SQL functions editor + + + + Commit all function changes + Commit all function changes + + + + Rollback all function changes + Rollback all function changes + + + + Create new function + Create new function + + + + Delete selected function + Delete selected function + + + + Custom SQL functions manual + Custom SQL functions manual + + + + Add function argument + Add function argument + + + + Rename function argument + Rename function argument + + + + Delete function argument + Delete function argument + + + + Move function argument up + Move function argument up + + + + Move function argument down + Move function argument down + + + + Scalar + Scalar + + + + Aggregate + Aggregate + + + + Enter a non-empty, unique name of the function. + Enter a non-empty, unique name of the function. + + + + Pick the implementation language. + Pick the implementation language. + + + + Per step code: + Per step code: + + + + Enter a non-empty implementation code. + Enter a non-empty implementation code. + + + + argument + new function argument name in function editor window + argument + + + + Functions editor window has uncommitted modifications. + Functions editor window has uncommitted modifications. + + + + ImportDialog + + + Import data + Import data + + + + Table to import to + Table to import to + + + + Table + Table + + + + Database + Database + + + + Data source to import from + Data source to import from + + + + Data source type + Data source type + + + + Options + Options + + + + Text encoding: + Text encoding: + + + + Input file: + Input file: + + + + <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> + <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> + + + + Ignore errors + Ignore errors + + + + Data source options + Data source options + + + + Cancel + Cancelar + + + + If you type table name that doesn't exist, it will be created. + If you type table name that doesn't exist, it will be created. + + + + Enter the table name + Enter the table name + + + + Select import plugin. + Select import plugin. + + + + You must provide a file to import from. + You must provide a file to import from. + + + + The file '%1' does not exist. + The file '%1' does not exist. + + + + Path you provided is a directory. A regular file is required. + Path you provided is a directory. A regular file is required. + + + + Pick file to import from + Pick file to import from + + + + IndexDialog + + + + Index + Index + + + + Column + Column + + + + Sort + Sort + + + + Collation + Collation + + + + On table: + On table: + + + + Delete selected indexed expression + Delete selected indexed expression + + + + Moves selected index column up in the order, making it more significant in the index. + Moves selected index column up in the order, making it more significant in the index. + + + + Moves selected index column down in the order, making it less significant in the index. + Moves selected index column down in the order, making it less significant in the index. + + + + Partial index condition + Partial index condition + + + + Unique index + Unique index + + + + Index name: + Index name: + + + + Edit selected indexed expression + Edit selected indexed expression + + + + Add indexed expression + Add indexed expression + + + + DDL + DDL + + + + Tried to open index dialog for closed or inexisting database. + Tried to open index dialog for closed or inexisting database. + + + + Could not process index %1 correctly. Unable to open an index dialog. + Could not process index %1 correctly. Unable to open an index dialog. + + + + Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. + Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. + + + + Pick the table for the index. + Pick the table for the index. + + + + Select at least one column. + Select at least one column. + + + + Enter a valid condition. + Ingresa una condición válida. + + + + default + index dialog + default + + + + Sort order + table constraints + Sort order + + + + + Error + index dialog + Error + + + + Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? + Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? + + + + An error occurred while executing SQL statements: +%1 + An error occurred while executing SQL statements: +%1 + + + + IndexExprColumnDialog + + + Indexed expression + Indexed expression + + + + Expression to index + Expression to index + + + + This expression is already indexed by the index. + This expression is already indexed by the index. + + + + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. + + + + Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. + Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. + + + + It's forbidden to use 'SELECT' statements in indexed expressions. + It's forbidden to use 'SELECT' statements in indexed expressions. + + + + Enter an indexed expression. + Enter an indexed expression. + + + + Invalid expression. + Invalid expression. + + + + LanguageDialog + + + Language + Language + + + + Please choose language: + Please choose language: + + + + MainWindow + + + Database toolbar + Database toolbar + + + + Structure toolbar + Structure toolbar + + + + Tools + Tools + + + + Window list + Window list + + + + View toolbar + View toolbar + + + + Configuration widgets + Configuration widgets + + + + Syntax highlighting engines + Syntax highlighting engines + + + + Data editors + Data editors + + + + Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. + Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. + + + + Running in debug mode. Debug messages are printed to the standard output. + Running in debug mode. Debug messages are printed to the standard output. + + + + You need to restart application to make the language change take effect. + You need to restart application to make the language change take effect. + + + + Open SQL &editor + Open SQL &editor + + + + Open DDL &history + Abrir &historial DDL + + + + Open SQL &functions editor + Open SQL &functions editor + + + + Open code &snippets editor + Open code &snippets editor + + + + Open &collations editor + Open &collations editor + + + + Open ex&tension manager + Open ex&tension manager + + + + &Import + &Import + + + + E&xport + E&xport + + + + Open confi&guration dialog + Open confi&guration dialog + + + + &Tile windows + &Tile windows + + + + Tile windows &horizontally + Tile windows &horizontally + + + + Tile windows &vertically + Tile windows &vertically + + + + &Cascade windows + &Cascade windows + + + + Next window + Next window + + + + Previous window + Previous window + + + + Hide status field + Hide status field + + + + Close &all windows + Close &all windows + + + + Re&store recently closed window + Re&store recently closed window + + + + Close current &window + Close current &window + + + + Close &other windows + Close &other windows + + + + Close windows on the &left + Close windows on the &left + + + + Close windows on the &right + Close windows on the &right + + + + Re&name selected window + Re&name selected window + + + + Open Debug Console + Open Debug Console + + + + Open CSS Console + Open CSS Console + + + + Report a &bug + Report a &bug + + + + D&onate + D&onate + + + + Propose a new &feature + Propose a new &feature + + + + &About + &About + + + + &Licenses + &Licenses + + + + Open home &page + Open home &page + + + + User &Manual + User &Manual + + + + SQLite &documentation + SQLite &documentation + + + + Bugs and feature &requests + Bugs and feature &requests + + + + Quit + Salir + + + + Check for &updates + Check for &updates + + + + &Database + menubar + &Base de datos + + + + &Structure + menubar + &Estructura + + + + &View + menubar + &Ver + + + + Window list + menubar view menu + Window list + + + + &Tools + menubar + &Herramientas + + + + &Help + &Ayuda + + + + Could not set style: %1 + main window + Could not set style: %1 + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + Rename window + Rename window + + + + Enter new name for the window: + Enter new name for the window: + + + + New updates are available. <a href="%1">Click here for details</a>. + New updates are available. <a href="%1">Click here for details</a>. + + + + You're running the most recent version. No updates are available. + You're running the most recent version. No updates are available. + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + Database passed in command line parameters (%1) was already on the list under name: %2 + + + + Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 + Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + MdiWindow + + + Uncommitted changes + Cambios sin confirmar + + + + Close anyway + Close anyway + + + + Don't close + Don't close + + + + MultiEditor + + + Null value + multieditor + Null value + + + + Configure editors for this data type + Configure editors for this data type + + + + Open another tab + Open another tab + + + + Foreign Key + Clave Foránea + + + + Data editor plugin '%1' not loaded, while it is defined for editing '%2' data type. + Data editor plugin '%1' not loaded, while it is defined for editing '%1' data type. {1'?} {2'?} {1' or 2'?} + + + + Deleted + multieditor + Deleted + + + + Read only + multieditor + Read only + + + + MultiEditorBoolPlugin + + + Boolean + Boolean + + + + MultiEditorDatePlugin + + + Date + Date + + + + MultiEditorDateTimePlugin + + + Date & time + Date & time + + + + MultiEditorHexPlugin + + + Hex + Hex + + + + MultiEditorNumericPlugin + + + Number + numeric multi editor tab name + Number + + + + MultiEditorText + + + Tab changes focus + Tab changes focus + + + + Cut + Cut + + + + Copy + Copiar + + + + Paste + Paste + + + + Delete + Delete + + + + Undo + Undo + + + + Redo + Redo + + + + MultiEditorTextPlugin + + + Text + Text + + + + MultiEditorTimePlugin + + + Time + Time + + + + NewConstraintDialog + + + New constraint + New constraint + + + + + Primary Key + new constraint dialog + Clave Primaria + + + + + Foreign Key + new constraint dialog + Clave Foránea + + + + + Unique + new constraint dialog + Único + + + + + Check + new constraint dialog + Check + + + + Not NULL + new constraint dialog + No es NULL + + + + Collate + new constraint dialog + Collate + + + + Generated + new constraint dialog + Generated + + + + Default + new constraint dialog + Predeterminado + + + + NewVersionDialog + + + SQLiteStudio updates + SQLiteStudio updates + + + + New version is available! + New version is available! + + + + Download new version! + Download new version! + + + + New version package will be downloaded. It will be up to you to install it whenever you're ready. + New version package will be downloaded. It will be up to you to install it whenever you're ready. + + + + Open SQLiteStudio home page. + Open SQLiteStudio home page. + + + + Read release notes && download package yourself. + Read release notes && download package yourself. + + + + Just close this window. + Just close this window. + + + + Check for updates on startup + Check for updates on startup + + + + Not now. + Not now. + + + + PopulateConfigDialog + + + Populating configuration + Populating configuration + + + + Configuring <b>%1</b> for column <b>%2</b> + Configuring <b>%1</b> for column <b>%2</b> + + + + PopulateDialog + + + Populate table + Poblar tabla + + + + Database + Database + + + + Table + Tabla + + + + Columns + Columns + + + + Number of rows to populate: + Number of rows to populate: + + + + Populate + populate dialog button + Populate + + + + Abort + Abort + + + + Configure + Configure + + + + Populating configuration for this column is invalid or incomplete. + Populating configuration for this column is invalid or incomplete. + + + + Select database with table to populate + Seleccionar base de datos con la tabla a poblar + + + + Select table to populate + Selecciona la tabla a poblar + + + + You have to select at least one column. + You have to select at least one column. + + + + QObject + + + Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). + Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). + + + + The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. + The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. + + + + Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. + Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. + + + + Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. + Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. + + + + Cannot edit results of query other than %1. + Cannot edit results of query other than %1. + + + + Cannot edit columns that are result of aggregated %1 statements. + Cannot edit columns that are result of aggregated %1 statements. + + + + Cannot edit columns that are result of %1 statement. + Cannot edit columns that are result of %1 statement. + + + + Cannot edit columns that are result of common table expression statement (%1). + Cannot edit columns that are result of common table expression statement (%1). + + + + Cannot edit table generated columns. + Cannot edit table generated columns. + + + + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). + + + + + + + on conflict: %1 + data view tooltip + on conflict: %1 + + + + references table %1, column %2 + data view tooltip + references table %1, column %2 + + + + condition: %1 + data view tooltip + condition: %1 + + + + collation name: %1 + data view tooltip + collation name: %1 + + + + Data grid view + Data grid view + + + + Edit current cell inline + Edit current cell inline + + + + Copy cell(s) contents to clipboard + Copiar contenido de la(s) celda(s) al portapapeles + + + + Copy cell(s) contents together with header to clipboard + Copiar contenido de la(s) celda(s) junto con la cabecera al portapapeles + + + + Paste cell(s) contents from clipboard + Paste cell(s) contents from clipboard + + + + Set empty value to selected cell(s) + Set empty value to selected cell(s) + + + + Set NULL value to selected cell(s) + Set NULL value to selected cell(s) + + + + Commit changes to cell(s) contents + Commit changes to cell(s) contents + + + + Rollback changes to cell(s) contents + Rollback changes to cell(s) contents + + + + Delete selected data row + Delete selected data row + + + + Insert new data row + Insert new data row + + + + Open contents of selected cell in a separate editor + Open contents of selected cell in a separate editor + + + + Toggle the height adjustment of rows + Toggle the height adjustment of rows + + + + Increase font size + data view + Increase font size + + + + Decrease font size + data view + Decrease font size + + + + Total pages available: %1 + Total pages available: %1 + + + + Total rows loaded: %1 + Total rows loaded: %1 + + + + Data view (both grid and form) + Data view (both grid and form) + + + + Refresh data + Refresh data + + + + Switch to grid view of the data + Switch to grid view of the data + + + + Switch to form view of the data + Switch to form view of the data + + + + Database list + Database list + + + + Delete selected item + Delete selected item + + + + Clear filter contents + Clear filter contents + + + + Refresh schema + Refresh schema + + + + Refresh all schemas + Refresh all schemas + + + + Add database + Add database + + + + Select all items + Select all items + + + + Copy selected item(s) + Copiar elemento(s) seleccionado(s) + + + + + + Paste from clipboard + Paste from clipboard + + + + Increase font size + database list + Increase font size + + + + Decrease font size + database list + Decrease font size + + + + Tables + Tables + + + + Indexes + Indexes + + + + Triggers + Triggers + + + + Views + Views + + + + Columns + Columns + + + + Data form view + Data form view + + + + Commit changes for current row + Commit changes for current row + + + + Rollback changes for current row + Rollback changes for current row + + + + Go to first row on current page + Go to first row on current page + + + + Go to next row + Go to next row + + + + Go to previous row + Go to previous row + + + + Go to last row on current page + Go to last row on current page + + + + Insert new row + Insert new row + + + + Delete current row + Delete current row + + + + Main window + Main window + + + + Open SQL editor + Open SQL editor + + + + Open DDL history window + Open DDL history window + + + + Open snippets editor window + Open snippets editor window + + + + Open function editor window + Open function editor window + + + + Open collation editor window + Open collation editor window + + + + Open extension manager window + Open extension manager window + + + + Previous window + Previous window + + + + Next window + Next window + + + + Hide status area + Hide status area + + + + Open user manual + Open user manual + + + + Open configuration dialog + Open configuration dialog + + + + Open Debug Console + Open Debug Console + + + + Open CSS Console + Open CSS Console + + + + Open the About dialog + Open the About dialog + + + + Quit the application + Salir de la aplicación + + + + Cell text value editor + Cell text value editor + + + + + Cut selected text + Cut selected text + + + + + Copy selected text + Copiar texto seleccionado + + + + + Delete selected text + Delete selected text + + + + + Undo + Undo + + + + + Redo + Redo + + + + SQL editor input field + SQL editor input field + + + + Select whole editor contents + Select whole editor contents + + + + Save contents into a file + Save contents into a file + + + + Load contents from a file + Load contents from a file + + + + Find in text + Find in text + + + + Find next + Find next + + + + Find previous + Find previous + + + + Replace in text + Replace in text + + + + Delete current line + Delete current line + + + + Request code assistant + Request code assistant + + + + Format contents + Format contents + + + + Move selected block of text one line down + Move selected block of text one line down + + + + Move selected block of text one line up + Move selected block of text one line up + + + + Copy selected block of text and paste it a line below + Copiar bloque de texto seleccionado y pegarlo una línea debajo + + + + Copy selected block of text and paste it a line above + Copiar bloque de texto seleccionado y pegarlo una línea arriba + + + + Toggle comment + Toggle comment + + + + Increase font size + sql editor + Increase font size + + + + Decrease font size + sql editor + Decrease font size + + + + All SQLite databases + All SQLite databases + + + + All files + All files + + + + Select database file + Select database file + + + + Select + Select + + + + File type + File type + + + + SQL editor window + SQL editor window + + + + Execute query + Execute query + + + + Execute single query under cursor + Execute single query under cursor + + + + Execute all queries in editor + Execute all queries in editor + + + + Execute "%1" query + Execute "%1" query + + + + Switch current working database to previous on the list + Switch current working database to previous on the list + + + + Switch current working database to next on the list + Switch current working database to next on the list + + + + Go to next editor tab + Go to next editor tab + + + + Go to previous editor tab + Go to previous editor tab + + + + Move keyboard input focus to the results view below + Move keyboard input focus to the results view below + + + + Move keyboard input focus to the SQL editor above + Move keyboard input focus to the SQL editor above + + + + Delete selected SQL history entries + Borrar entradas seleccionadas del historial SQL + + + + Table window + Table window + + + + Commit the table structure + Commit the table structure + + + + Rollback pending changes in the table structure + Rollback pending changes in the table structure + + + + Refresh table structure + Refresh table structure + + + + Add new column + Add new column + + + + Edit selected column + Edit selected column + + + + Delete selected column + Delete selected column + + + + Export table data + Export table data + + + + Import data to the table + Import data to the table + + + + Add new table constraint + Add new table constraint + + + + Edit selected table constraint + Edit selected table constraint + + + + Delete selected table constraint + Delete selected table constraint + + + + Refresh table index list + Refresh table index list + + + + Add new index + Add new index + + + + Edit selected index + Edit selected index + + + + Delete selected index + Delete selected index + + + + Refresh table trigger list + Refresh table trigger list + + + + + Add new trigger + Add new trigger + + + + + Edit selected trigger + Edit selected trigger + + + + + Delete selected trigger + Delete selected trigger + + + + + Go to next tab + Go to next tab + + + + + Go to previous tab + Go to previous tab + + + + A view window + A view window + + + + Commit the view's query + Commit the view's query + + + + Rollback pending changes in the view's query + Rollback pending changes in the view's query + + + + Refresh view trigger list + Refresh view trigger list + + + + Execute the view's query + Execute the view's query + + + + A code snippets editor window + A code snippets editor window + + + + + + + Commit the pending changes + Commit the pending changes + + + + + + + Rollback the pending changes + Rollback the pending changes + + + + A collation editor window + A collation editor window + + + + A function editor window + A function editor window + + + + A SQLite extension editor window + A SQLite extension editor window + + + + QuitConfirmDialog + + + Uncommitted changes + Cambios sin confirmar + + + + Are you sure you want to quit the application? + +Following items are pending: + ¿Estás seguro de querer salir de la aplicación? + +Estos elementos están pendientes: + + + + SearchTextDialog + + + Find or replace + Find or replace + + + + Find: + Find: + + + + Case sensitive + Case sensitive + + + + Search backwards + Search backwards + + + + Regular expression matching + Regular expression matching + + + + Replace && +find next + Replace && +find next + + + + Replace with: + Replace with: + + + + Replace all + Replace all + + + + Find + Find + + + + SortDialog + + + Sort by columns + Sort by columns + + + + + Column + Column + + + + + Order + Order + + + + Sort by: %1 + Sort by: %1 + + + + Move column up + Subir columna + + + + Move column down + Move column down + + + + SqlEditor + + + Wrap words + sql editor + Wrap words + + + + Cut + sql editor + Cut + + + + Copy + sql editor + Copiar + + + + Paste + sql editor + Paste + + + + Delete + sql editor + Delete + + + + Select all + sql editor + Select all + + + + Undo + sql editor + Undo + + + + Redo + sql editor + Redo + + + + Complete + sql editor + Complete + + + + Format SQL + sql editor + Format SQL + + + + Save SQL to file + sql editor + Save SQL to file + + + + Select file to save SQL + sql editor + Select file to save SQL + + + + Load SQL from file + sql editor + Load SQL from file + + + + Delete line + sql editor + Delete line + + + + Move block down + sql editor + Move block down + + + + Move block up + sql editor + Move block up + + + + Copy block down + sql editor + Copiar bloque abajo + + + + Copy up down + sql editor + Copiar arriba abajo + + + + Find + sql editor + Find + + + + Find next + sql editor + Find next + + + + Find previous + sql editor + Find previous + + + + Replace + sql editor + Replace + + + + Toggle comment + sql editor + Toggle comment + + + + Increase font size + sql editor + Increase font size + + + + Decrease font size + sql editor + Decrease font size + + + + Could not open file '%1' for writing: %2 + Could not open file '%1' for writing: %2 + + + + Saved SQL contents to file: %1 + Saved SQL contents to file: %1 + + + + Syntax completion can be used only when a valid database is set for the SQL editor. + Syntax completion can be used only when a valid database is set for the SQL editor. + + + + Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. + Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. + + + + Save to file + Save to file + + + + SQL scripts (*.sql);;All files (*) + SQL scripts (*.sql);;All files (*) + + + + Open file + Open file + + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Reached the end of document. Hit the find again to restart the search. + Reached the end of document. Hit the find again to restart the search. + + + + SqlQueryItem + + + Committing error: + data view tooltip + Committing error: + + + + Column: + data view tooltip + Column: + + + + Data type: + data view + Tipo de dato: + + + + Table: + data view tooltip + Table: + + + + Constraints: + data view tooltip + Restricciones: + + + + SqlQueryItemDelegate + + + + + + Cannot edit this cell. Details: %1 + Cannot edit this cell. Details: %1 + + + + The row is marked for deletion. + The row is marked for deletion. + + + + + Structure of this table has changed since last data was loaded. Reload the data to proceed. + Structure of this table has changed since last data was loaded. Reload the data to proceed. + + + + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). + + + + Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. + Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. + + + + SqlQueryModel + + + + Only one query can be executed simultaneously. + Only one query can be executed simultaneously. + + + + Cannot execute query on undefined or invalid database. + Cannot execute query on undefined or invalid database. + + + + Cannot execute empty query. + Cannot execute empty query. + + + + Uncommitted data + Uncommitted data + + + + There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. + Hay cambios de datos no confirmados. ¿Quieres continuar aún así? Todos los cambios sin confirmar se perderán. + + + + Cannot commit the data for a cell that refers to the already closed database. + Cannot commit the data for a cell that refers to the already closed database. + + + + Could not begin transaction on the database. Details: %1 + Could not begin transaction on the database. Details: %1 + + + + An error occurred while committing the transaction: %1 + An error occurred while committing the transaction: %1 + + + + An error occurred while rolling back the transaction: %1 + An error occurred while rolling back the transaction: %1 + + + + Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. + Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. + + + + An error occurred while committing the data: %1 + An error occurred while committing the data: %1 + + + + Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. + Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. + + + + + Error while executing SQL query on database '%1': %2 + Error while executing SQL query on database '%1': %2 + + + + Error while loading query results: %1 + Error while loading query results: %1 + + + + Insert multiple rows + Insert multiple rows + + + + Number of rows to insert: + Number of rows to insert: + + + + Delete rows + Delete rows + + + + You're about to delete newly inserted rows that are not committed yet. Row numbers: %1 +Such deletion will be permanent. Are you sure you want to delete them? + You're about to delete newly inserted rows that are not committed yet. Row numbers: %1 +Such deletion will be permanent. Are you sure you want to delete them? + + + + SqlQueryView + + + Go to referenced row in... + Go to referenced row in... + + + + Copy + Copiar + + + + Copy with headers + Copiar con las cabeceras + + + + Copy as... + Copiar como... + + + + Paste + Paste + + + + Paste as... + Paste as... + + + + Set NULL values + Set NULL values + + + + Erase values + Erase values + + + + Commit + Commit + + + + Rollback + Rollback + + + + Commit selected cells + Commit selected cells + + + + Rollback selected cells + Rollback selected cells + + + + Edit current cell inline + Edit current cell inline + + + + Define columns to sort by + Define columns to sort by + + + + Remove custom sorting + Remove custom sorting + + + + Insert row + Insert row + + + + Insert multiple rows + Insert multiple rows + + + + Delete selected row + Delete selected row + + + + Adjust height of rows + Adjust height of rows + + + + Increase font size + data view + Increase font size + + + + Decrease font size + data view + Decrease font size + + + + Invert selection + data view + Invert selection + + + + Edit value in editor + Edit value in editor + + + + Show value in a viewer + Show value in a viewer + + + + Generate query for selected cells + Generate query for selected cells + + + + No items selected to paste clipboard contents to. + No items selected to paste clipboard contents to. + + + + Cannot paste data. Details: %1 + Cannot paste data. Details: %1 + + + + Structure of at least one table used has changed since last data was loaded. Reload the data to proceed. + Structure of at least one table used has changed since last data was loaded. Reload the data to proceed. + + + + Cannot paste to a cell. Details: %1 + Cannot paste to a cell. Details: %1 + + + + The row is marked for deletion. + The row is marked for deletion. + + + + Cannot paste to column %1. Details: %2 + Cannot paste to column %1. Details: %2 + + + + Go to referenced row in table '%1' + Go to referenced row in table '%1' + + + + table '%1' + table '%1' + + + + Referenced row (%1) + Referenced row (%1) + + + + Trim pasted text? + Trim pasted text? + + + + The pasted text contains leading or trailing white space. Trim it automatically? + The pasted text contains leading or trailing white space. Trim it automatically? + + + + Paste "NULL" as null value? + Paste "NULL" as null value? + + + + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + + + + Edit value + Edit value + + + + SqlTableModel + + + Error while committing new row: %1 + Error while committing new row: %1 + + + + Error while deleting row from table %1: %2 + Error while deleting row from table %1: %2 + + + + SqliteExtensionEditor + + + Filter extensions + Filter extensions + + + + Leave empty to use default function + Leave empty to use default function + + + + Extension file + Extension file + + + + Initialization function + Initialization function + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Extension manager window has uncommitted modifications. + Extension manager window has uncommitted modifications. + + + + Extension manager + Extension manager + + + + Commit all extension changes + Commit all extension changes + + + + Rollback all extension changes + Rollback all extension changes + + + + Add new extension + Add new extension + + + + Remove selected extension + Remove selected extension + + + + Editing extensions manual + Editing extensions manual + + + + File with given path does not exist or is not readable. + File with given path does not exist or is not readable. + + + + Unable to load extension: %1 + Unable to load extension: %1 + + + + Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. + Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. + + + + Dynamic link libraries (*.dll);;All files (*) + Dynamic link libraries (*.dll);;All files (*) + + + + Shared objects (*.so);;All files (*) + Shared objects (*.so);;All files (*) + + + + Dynamic libraries (*.dylib);;All files (*) + Dynamic libraries (*.dylib);;All files (*) + + + + All files (*) + All files (*) + + + + Open file + Open file + + + + StatusField + + + Status + Status + + + + Copy + Copiar + + + + Clear + Limpiar + + + + TableConstraintsModel + + + Type + table constraints + Type + + + + Details + table constraints + Details + + + + Name + table constraints + Name + + + + TableForeignKeyPanel + + + Foreign table: + Foreign table: + + + + Columns + Columns + + + + Local column + Local column + + + + Foreign column + Foreign column + + + + Reactions + Reactions + + + + Deferred foreign key + Deferred foreign key + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + Pick the foreign column. + Elige la columna externa. + + + + Pick the foreign table. + Elige la tabla externa. + + + + Select at least one foreign column. + Select at least one foreign column. + + + + Enter a name of the constraint. + Escribe el nombre para la restricción. + + + + Foreign column + table constraints + Foreign column + + + + TablePrimaryKeyAndUniquePanel + + + Columns + Columns + + + + Column + Column + + + + Collation + Collation + + + + Sort + Sort + + + + Valid only for a single column with INTEGER data type + Valid only for a single column with INTEGER data type + + + + Autoincrement + Autoincrement + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + On conflict + On conflict + + + + Collate + table constraints + Collate + + + + Sort order + table constraints + Sort order + + + + Select at least one column. + Select at least one column. + + + + Enter a name of the constraint. + Ingresa el nombre de la restricción. + + + + TableStructureModel + + + Name + table structure columns + Name + + + + Data type + table structure columns + Data type + + + + Primary +Key + table structure columns + Clave +Primaria + + + + Foreign +Key + table structure columns + Foreign +Key + + + + Unique + table structure columns + Único + + + + Check + table structure columns + Check + + + + Not +NULL + table structure columns + No es +NULL + + + + Collate + table structure columns + Collate + + + + Generated + table structure columns + Generated + + + + Default value + table structure columns + Default value + + + + TableWindow + + + Structure + Structure + + + + Table name: + Table name: + + + + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + + + + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + + + + + Data + Data + + + + Constraints + Restricciones + + + + Indexes + Indexes + + + + Triggers + Triggers + + + + DDL + DDL + + + + Export table + table window + Exportar tabla + + + + Import data to table + table window + Importar datos a la tabla + + + + Populate table + table window + Poblar tabla + + + + Refresh structure + table window + Actualizar estructura + + + + Commit structure changes + table window + Confirmar cambios de estructura + + + + Rollback structure changes + table window + Revertir cambios de estructura + + + + Add column + table window + Añadir columna + + + + Edit column + table window + Editar columna + + + + + Delete column + table window + Eliminar columna + + + + Move column up + table window + Subir columna + + + + Move column down + table window + Move column down + + + + Create similar table + table window + Crear tabla similar + + + + Reset autoincrement value + table window + Reiniciar valor del autoincremento + + + + Add table constraint + table window + Add table constraint + + + + Edit table constraint + table window + Edit table constraint + + + + Delete table constraint + table window + Delete table constraint + + + + Move table constraint up + table window + Move table constraint up + + + + Move table constraint down + table window + Move table constraint down + + + + Add table primary key + table window + Add table primary key + + + + Add table foreign key + table window + Add table foreign key + + + + Add table unique constraint + table window + Add table unique constraint + + + + Add table check constraint + table window + Add table check constraint + + + + Refresh index list + table window + Refresh index list + + + + + Create index + table window + Crear índice + + + + Edit index + table window + Edit index + + + + Delete index + table window + Delete index + + + + Refresh trigger list + table window + Refresh trigger list + + + + + Create trigger + table window + Crear disparador + + + + Edit trigger + table window + Edit trigger + + + + Delete trigger + table window + Delete trigger + + + + Are you sure you want to delete column '%1'? + table window + ¿Estás seguro que quieres eliminar la columna '%1'? + + + + Following problems will take place while modifying the table. +Would you like to proceed? + table window + Following problems will take place while modifying the table. +Would you like to proceed? + + + + Table modification + table window + Table modification + + + + Could not load data for table %1. Error details: %2 + Could not load data for table %1. Error details: %2 + + + + Could not process the %1 table correctly. Unable to open a table window. + Could not process the %1 table correctly. Unable to open a table window. + + + + Database + Database + + + + Could not restore window %1, because no database or table was stored in session for this window. + Could not restore window %1, because no database or table was stored in session for this window. + + + + Could not restore window '%1', because no database or table was stored in session for this window. + Could not restore window '%1', because no database or table was stored in session for this window. + + + + Could not restore window '%1', because database %2 could not be resolved. + Could not restore window '%1', because database %2 could not be resolved. + + + + Could not restore window '%1', because the table %2 doesn't exist in the database %3. + Could not restore window '%1', because the table %2 doesn't exist in the database %3. + + + + + New table %1 + New table %1 + + + + Committed changes for table '%1' successfully. + Se confirmaron los cambios a la tabla '%1' con éxito. + + + + Committed changes for table '%1' (named before '%2') successfully. + Se confirmaron los cambios a la tabla '%1' (anteriormente llamada '%2') con éxito. + + + + Could not commit table structure. Error message: %1 + table window + Could not commit table structure. Error message: %1 + + + + Reset autoincrement + Reset autoincrement + + + + Are you sure you want to reset autoincrement value for table '%1'? + Are you sure you want to reset autoincrement value for table '%1'? + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + An error occurred while trying to reset autoincrement value for table '%1': %2 + + + + Autoincrement value for table '%1' has been reset successfully. + Autoincrement value for table '%1' has been reset successfully. + + + + Empty name + Empty name + + + + A blank name for the table is allowed in SQLite, but it is not recommended. +Are you sure you want to create a table with blank name? + SQLite permite usar tablas sin nombre, pero no es lo recomendado. +¿Estás seguro de que quieres crear una tabla sin nombre? + + + + Cannot create a table without at least one column. + Cannot create a table without at least one column. + + + + Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. + Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. + + + + Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. + Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. + + + + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 + + + + Are you sure you want to delete table constraint '%1'? + table window + Are you sure you want to delete table constraint '%1'? + + + + Delete constraint + table window + Delete constraint + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + Uncommitted changes + Cambios sin confirmar + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + + + + Go back to structure tab + Go back to structure tab + + + + Commit modifications and browse data. + Commit modifications and browse data. + + + + Name + table window indexes + Name + + + + Unique + table window indexes + Unique + + + + Columns + table window indexes + Columns + + + + Partial index condition + table window indexes + Partial index condition + + + + Name + table window triggers + Name + + + + Event + table window triggers + Event + + + + Condition + table window triggers + Condition + + + + Details + table window triggers + Details + + + + Table window "%1" has uncommitted structure modifications and data. + La ventana de la tabla "%1" tiene cambios sin confirmar en su estructura y datos. + + + + Table window "%1" has uncommitted data. + La ventana de la tabla "%1" tiene datos sin confirmar. + + + + Table window "%1" has uncommitted structure modifications. + La ventana de la tabla "%1" tiene cambios de estructura sin confirmar. + + + + TriggerColumnsDialog + + + Trigger columns + Trigger columns + + + + Triggering columns: + Triggering columns: + + + + Select all + Select all + + + + Deselect all + Deselect all + + + + TriggerDialog + + + + Trigger + Trigger + + + + On table: + On table: + + + + Action: + Action: + + + + + <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> + <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> + + + + Pre-condition: + Pre-condition: + + + + The scope is still not fully supported by the SQLite database. + The scope is still not fully supported by the SQLite database. + + + + Trigger name: + Trigger name: + + + + When: + When: + + + + List of columns for UPDATE OF action. + List of columns for UPDATE OF action. + + + + Scope: + Scope: + + + + Code: + Code: + + + + Trigger statements to be executed. + Trigger statements to be executed. + + + + DDL + DDL + + + + On view: + On view: + + + + Could not process trigger %1 correctly. Unable to open a trigger dialog. + Could not process trigger %1 correctly. Unable to open a trigger dialog. + + + + Enter a valid condition. + Enter a valid condition. + + + + Enter a valid trigger code. + Enter a valid trigger code. + + + + Error + trigger dialog + Error + + + + An error occurred while executing SQL statements: +%1 + An error occurred while executing SQL statements: +%1 + + + + VersionConvertSummaryDialog + + + Database version convert + Database version convert + + + + Following changes to the SQL statements will be made: + Following changes to the SQL statements will be made: + + + + Before + Before + + + + After + After + + + + ViewWindow + + + Query + Query + + + + View name: + View name: + + + + Output column names + Output column names + + + + + Data + Data + + + + Triggers + Triggers + + + + DDL + DDL + + + + + Could not restore window '%1', because no database or view was stored in session for this window. + Could not restore window '%1', because no database or view was stored in session for this window. + + + + Could not restore window '%1', because database %2 could not be resolved. + Could not restore window '%1', because database %2 could not be resolved. + + + + Could not restore window '%1', because database %2 could not be open. + Could not restore window '%1', because database %2 could not be open. + + + + Could not restore window '%1', because the view %2 doesn't exist in the database %3. + Could not restore window '%1', because the view %2 doesn't exist in the database %3. + + + + + New view %1 + New view %1 + + + + Database + Database + + + + Refresh the view + view window + Refresh the view + + + + Commit the view changes + view window + Commit the view changes + + + + Rollback the view changes + view window + Rollback the view changes + + + + Explicit column names + Explicit column names + + + + Generate output column names automatically basing on result columns of the view. + Generate output column names automatically basing on result columns of the view. + + + + Add column + view window + Añadir columna + + + + Edit column + view window + Editar columna + + + + Delete column + view window + Eliminar columna + + + + Move column up + view window + Subir columna + + + + Move column down + view window + Move column down + + + + Refresh trigger list + view window + Refresh trigger list + + + + Create new trigger + view window + Crear nuevo disparador + + + + Edit selected trigger + view window + Edit selected trigger + + + + Delete selected trigger + view window + Delete selected trigger + + + + View window "%1" has uncommitted structure modifications and data. + View window "%1" has uncommitted structure modifications and data. + + + + View window "%1" has uncommitted data. + View window "%1" has uncommitted data. + + + + View window "%1" has uncommitted structure modifications. + View window "%1" has uncommitted structure modifications. + + + + Could not load data for view %1. Error details: %2 + Could not load data for view %1. Error details: %2 + + + + Uncommitted changes + Cambios sin confirmar + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + + + + Go back to structure tab + Go back to structure tab + + + + Commit modifications and browse data. + Commit modifications and browse data. + + + + View '%1' was committed successfully. + View '%1' was committed successfully. + + + + Committed changes for view '%1' successfully. + Se confirmaron los cambios a la vista '%1' con éxito. + + + + Committed changes for view '%1' (named before '%2') successfully. + Se confirmaron los cambios a la vista '%1' (anteriormente llamada '%2') con éxito. + + + + Could not commit view changes. Error message: %1 + view window + Could not commit view changes. Error message: %1 + + + + Override columns + Override columns + + + + Currently defined columns will be overriden. Do you want to continue? + Currently defined columns will be overriden. Do you want to continue? + + + + Could not determinate columns returned from the view. The query is problably incomplete or contains errors. + Could not determinate columns returned from the view. The query is problably incomplete or contains errors. + + + + Name + view window triggers + Name + + + + Instead of + view window triggers + Instead of + + + + Condition + view window triggers + Condition + + + + Details + table window triggers + Details + + + + Could not process the %1 view correctly. Unable to open a view window. + Could not process the %1 view correctly. Unable to open a view window. + + + + Empty name + Empty name + + + + A blank name for the view is allowed in SQLite, but it is not recommended. +Are you sure you want to create a view with blank name? + A blank name for the view is allowed in SQLite, but it is not recommended. +Are you sure you want to create a view with blank name? + + + + The SELECT statement could not be parsed. Please correct the query and retry. +Details: %1 + The SELECT statement could not be parsed. Please correct the query and retry. +Details: %1 + + + + The view could not be modified due to internal SQLiteStudio error. Please report this! + The view could not be modified due to internal SQLiteStudio error. Please report this! + + + + The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. + The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. + + + + Following problems will take place while modifying the view. +Would you like to proceed? + view window + Following problems will take place while modifying the view. +Would you like to proceed? + + + + View modification + view window + View modification + + + + WidgetCover + + + Interrupt + Interrumpir + + + diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_fa_IR.ts b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_fa_IR.ts new file mode 100644 index 0000000..a797ccf --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_fa_IR.ts @@ -0,0 +1,7111 @@ + + + + + AboutDialog + + + About SQLiteStudio and licenses + About SQLiteStudio and licenses + + + + About + About + + + + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + + + + Licenses + Licenses + + + + Environment + Environment + + + + Icon directories + Icon directories + + + + Form directories + Form directories + + + + SQLite extension directories + SQLite extension directories + + + + Plugin directories + Plugin directories + + + + Configuration directory + Configuration directory + + + + Application directory + Application directory + + + + Qt version: + Qt version: + + + + SQLite 3 version: + SQLite 3 version: + + + + Portable distribution. + Portable distribution. + + + + MacOS X application bundle distribution. + MacOS X application bundle distribution. + + + + Operating system managed distribution. + Operating system managed distribution. + + + + <h3>Table of contents:</h3><ol>%2</ol> + <h3>Table of contents:</h3><ol>%2</ol> + + + + BindParamsDialog + + + Query parameters + Query parameters + + + + Please provide values for query parameters + Please provide values for query parameters + + + + CodeSnippetEditor + + + Filter snippets + Filter snippets + + + + + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + + + + + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + + + + Snippet name + Snippet name + + + + Code assistant shortcut + Code assistant shortcut + + + + Snippet code + Snippet code + + + + Code Snippets editor window has uncommitted modifications. + Code Snippets editor window has uncommitted modifications. + + + + Code Snippets editor + Code Snippets editor + + + + Commit all snippet changes + Commit all snippet changes + + + + Rollback all snippet changes + Rollback all snippet changes + + + + Create new snippet + Create new snippet + + + + Delete selected snippet + Delete selected snippet + + + + Move the snippet up + Move the snippet up + + + + Move the snippet down + Move the snippet down + + + + Code snippets manual + Code snippets manual + + + + Enter a non-empty, unique name of the snippet. + Enter a non-empty, unique name of the snippet. + + + + Enter a non-empty snippet content. + Enter a non-empty snippet content. + + + + This hotkey is not unique in context of a code assistant. + This hotkey is not unique in context of a code assistant. + + + + CollationsEditor + + + Filter collations + Filter collations + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Implementation code: + Implementation code: + + + + Collation name: + Collation name: + + + + Implementation language: + Implementation language: + + + + Collations editor + Collations editor + + + + Commit all collation changes + Commit all collation changes + + + + Rollback all collation changes + Rollback all collation changes + + + + Create new collation + Create new collation + + + + Delete selected collation + Delete selected collation + + + + Editing collations manual + Editing collations manual + + + + Enter a non-empty, unique name of the collation. + Enter a non-empty, unique name of the collation. + + + + Pick the implementation language. + Pick the implementation language. + + + + Enter a non-empty implementation code. + Enter a non-empty implementation code. + + + + Collations editor window has uncommitted modifications. + Collations editor window has uncommitted modifications. + + + + ColorButton + + + Pick a color + Pick a color + + + + ColumnCollatePanel + + + Collation name: + Collation name: + + + + Named constraint: + Named constraint: + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + Enter a collation name. + Enter a collation name. + + + + ColumnDefaultPanel + + + Default value: + Default value: + + + + Named constraint: + Named constraint: + + + + Enter a default value expression. + Enter a default value expression. + + + + Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. + Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. + + + + Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. + Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ColumnDialog + + + Column + Column + + + + Name and type + Name and type + + + + Scale + Scale + + + + Precision + Precision + + + + Data type: + Data type: + + + + Column name: + Column name: + + + + Size: + Size: + + + + Constraints + Constraints + + + + Generated value + Generated value + + + + Unique + Unique + + + + + + + + + + + Configure + Configure + + + + Foreign Key + Foreign Key + + + + Collate + Collate + + + + Not NULL + Not NULL + + + + Check condition + Check condition + + + + Primary Key + Primary Key + + + + Default + Default + + + + Advanced mode + Advanced mode + + + + Add constraint + column dialog + Add constraint + + + + Edit constraint + column dialog + Edit constraint + + + + + Delete constraint + column dialog + Delete constraint + + + + Move constraint up + column dialog + Move constraint up + + + + Move constraint down + column dialog + Move constraint down + + + + Add a primary key + column dialog + Add a primary key + + + + Add a foreign key + column dialog + Add a foreign key + + + + Add an unique constraint + column dialog + Add an unique constraint + + + + Add a check constraint + column dialog + Add a check constraint + + + + Add a not null constraint + column dialog + Add a not null constraint + + + + Add a collate constraint + column dialog + Add a collate constraint + + + + Add a generated value constraint + column dialog + Add a generated value constraint + + + + Add a default constraint + column dialog + Add a default constraint + + + + Are you sure you want to delete constraint '%1'? + column dialog + Are you sure you want to delete constraint '%1'? + + + + Correct the constraint's configuration. + Correct the constraint's configuration. + + + + Scale is not allowed for INTEGER PRIMARY KEY columns. + Scale is not allowed for INTEGER PRIMARY KEY columns. + + + + Precision cannot be defined without the scale. + Precision cannot be defined without the scale. + + + + Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. + Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. + + + + INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. + INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. + + + + Precision is not allowed for INTEGER PRIMARY KEY columns. + Precision is not allowed for INTEGER PRIMARY KEY columns. + + + + Could not match valid STRICT table datatype from declared type: %1. + Could not match valid STRICT table datatype from declared type: %1. + + + + ColumnDialogConstraintsModel + + + Type + column dialog constraints + Type + + + + Name + column dialog constraints + Name + + + + Details + column dialog constraints + Details + + + + ColumnForeignKeyPanel + + + Foreign table: + Foreign table: + + + + Foreign column: + Foreign column: + + + + Reactions + Reactions + + + + Deferred foreign key + Deferred foreign key + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + Pick the foreign table. + Pick the foreign table. + + + + Pick the foreign column. + Pick the foreign column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ColumnGeneratedPanel + + + Generating code: + Generating code: + + + + Explicit type: + Explicit type: + + + + Use "GENERATED ALWAYS" keywords + Use "GENERATED ALWAYS" keywords + + + + Named constraint: + Named constraint: + + + + Enter the column value generating expression. + Enter the column value generating expression. + + + + Invalid value generating expression: %1. + Invalid value generating expression: %1. + + + + Invalid value generating expression. + Invalid value generating expression. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ColumnPrimaryKeyPanel + + + Autoincrement + Autoincrement + + + + Sort order: + Sort order: + + + + Named constraint: + Named constraint: + + + + On conflict: + On conflict: + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + Descending order is not allowed with AUTOINCREMENT. + Descending order is not allowed with AUTOINCREMENT. + + + + ColumnUniqueAndNotNullPanel + + + Named constraint: + Named constraint: + + + + On conflict: + On conflict: + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + CompleterWindow + + + Column: %1 + completer statusbar + Column: %1 + + + + Table: %1 + completer statusbar + Table: %1 + + + + Index: %1 + completer statusbar + Index: %1 + + + + Trigger: %1 + completer statusbar + Trigger: %1 + + + + View: %1 + completer statusbar + View: %1 + + + + Database: %1 + completer statusbar + Database: %1 + + + + Keyword: %1 + completer statusbar + Keyword: %1 + + + + Function: %1 + completer statusbar + Function: %1 + + + + Operator: %1 + completer statusbar + Operator: %1 + + + + String + completer statusbar + String + + + + Number + completer statusbar + Number + + + + Binary data + completer statusbar + Binary data + + + + Collation: %1 + completer statusbar + Collation: %1 + + + + Pragma function: %1 + completer statusbar + Pragma function: %1 + + + + Insert a code snippet + Insert a code snippet + + + + ConfigDialog + + + + Configuration + Configuration + + + + Search + Search + + + + General + General + + + + Keyboard shortcuts + Keyboard shortcuts + + + + Look & feel + Look & feel + + + + Style + Style + + + + Fonts + Fonts + + + + Code colors + Code colors + + + + + Database list + Database list + + + + Code assistant + Code assistant + + + + Data browsing + Data browsing + + + + Data editors + Data editors + + + + Plugins + Plugins + + + + Code formatters + Code formatters + + + + If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. + If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. + + + + Sort table columns alphabetically + Sort table columns alphabetically + + + + Expand tables node when connected to a database + Expand tables node when connected to a database + + + + <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> + <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> + + + + Display additional labels on the list + Display additional labels on the list + + + + For regular tables labels will show number of columns, indexes and triggers for each of tables. + For regular tables labels will show number of columns, indexes and triggers for each of tables. + + + + Display labels for regular tables + Display labels for regular tables + + + + Virtual tables will be marked with a 'virtual' label. + Virtual tables will be marked with a 'virtual' label. + + + + Display labels for virtual tables + Display labels for virtual tables + + + + Expand views node when connected to a database + Expand views node when connected to a database + + + + If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) + If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) + + + + Sort objects (tables, indexes, triggers and views) alphabetically + Sort objects (tables, indexes, triggers and views) alphabetically + + + + Display system tables and indexes on the list + Display system tables and indexes on the list + + + + Database dialog window + Database dialog window + + + + <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> + <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> + + + + Do not mark database to be "permanent" by default + Do not mark database to be "permanent" by default + + + + <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> + <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> + + + + Try to bypass dialog completly when dropping database file onto the list + Try to bypass dialog completly when dropping database file onto the list + + + + Data browsing and editing + Data browsing and editing + + + + + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + + + + Number of memorized table populating configurations + Number of memorized table populating configurations + + + + Data column width + Data column width + + + + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + + + + Enlarge column when entering value longer than current width + Enlarge column when entering value longer than current width + + + + <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> + <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> + + + + Number of data rows per page: + Number of data rows per page: + + + + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> + + + + Show column and row details tooltip in data view + Show column and row details tooltip in data view + + + + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + + + + Keep NULL value when entering empty value + Keep NULL value when entering empty value + + + + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> + + + + Use DEFAULT value (if defined), when committing NULL value + Use DEFAULT value (if defined), when committing NULL value + + + + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + + + + Limit number of rows for in case of dozens of columns + Limit number of rows for in case of dozens of columns + + + + Inserting new row in data grid + Inserting new row in data grid + + + + Before currently selected row + Before currently selected row + + + + After currently selected row + After currently selected row + + + + At the end of data view + At the end of data view + + + + Table windows + Table windows + + + + <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> + <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> + + + + Open Table Windows with the data tab for start + Open Table Windows with the data tab for start + + + + <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> + <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> + + + + Place data tab as first tab in a Table Window + Place data tab as first tab in a Table Window + + + + View windows + View windows + + + + <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> + <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> + + + + Open View Windows with the data tab for start + Open View Windows with the data tab for start + + + + <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> + <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> + + + + Place data tab as first tab in a View Window + Place data tab as first tab in a View Window + + + + Data types + Data types + + + + Available editors: + Available editors: + + + + Editors selected for this data type: + Editors selected for this data type: + + + + Schema editing + Schema editing + + + + Number of DDL changes kept in history. + Number of DDL changes kept in history. + + + + DDL history size: + DDL history size: + + + + Don't show DDL preview dialog when committing schema changes + Don't show DDL preview dialog when committing schema changes + + + + SQL queries + SQL queries + + + + + Number of queries kept in the history. + Number of queries kept in the history. + + + + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> + + + + History size: + History size: + + + + + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> + + + + Execute only the query under the cursor + Execute only the query under the cursor + + + + Number of memorized query parameters + Number of memorized query parameters + + + + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + + + + Use scientific notation for real numbers in the grid view + Use scientific notation for real numbers in the grid view + + + + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + + + + Limit automatic data column width to (in pixels): + Limit automatic data column width to (in pixels): + + + + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + + + + Keep at least the width to show complete column name + Keep at least the width to show complete column name + + + + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + + + + Wrap lines in SQL editor + Wrap lines in SQL editor + + + + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + + + + Highlight current query + Highlight current query + + + + Updates + Updates + + + + Automatically check for updates at startup + Automatically check for updates at startup + + + + Session + Session + + + + Restore last session (active MDI windows) after startup + Restore last session (active MDI windows) after startup + + + + Allow multiple instances of the application at the same time + Allow multiple instances of the application at the same time + + + + Status Field + Status Field + + + + <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> + <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> + + + + Always open Status panel when new message is printed + Always open Status panel when new message is printed + + + + Code syntax colors + Code syntax colors + + + + Keyword foreground + Keyword foreground + + + + Regular foreground + Regular foreground + + + + String foreground + String foreground + + + + Comment foreground + Comment foreground + + + + Valid objects foreground + Valid objects foreground + + + + Current query background + Current query background + + + + Bind parameter foreground + Bind parameter foreground + + + + Current line background + Current line background + + + + Matched parenthesis background + Matched parenthesis background + + + + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + + + + Number foreground + Number foreground + + + + BLOB value foreground + BLOB value foreground + + + + Matched parenthesis foreground + Matched parenthesis foreground + + + + Reset to defaults + Reset to defaults + + + + Filter shortcuts by name or key combination + Filter shortcuts by name or key combination + + + + Action + Action + + + + Key combination + Key combination + + + + + Language + Language + + + + Changing language requires application restart to take effect. + Changing language requires application restart to take effect. + + + + Compact layout + Compact layout + + + + <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> + <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> + + + + Use compact layout + Use compact layout + + + + Main window dock areas + Main window dock areas + + + + Left and right areas occupy corners + Left and right areas occupy corners + + + + Top and bottom areas occupy corners + Top and bottom areas occupy corners + + + + Hide built-in plugins + Hide built-in plugins + + + + Current style: + Current style: + + + + Preview + Preview + + + + Enabled + Enabled + + + + Disabled + Disabled + + + + Active formatter plugin + Active formatter plugin + + + + SQL editor font + SQL editor font + + + + Database list font + Database list font + + + + Database list additional label font + Database list additional label font + + + + Data view font + Data view font + + + + Status field font + Status field font + + + + Code assistant settings + Code assistant settings + + + + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + + + + Automatically trigger the assistant after a dot is typed after an object name + Automatically trigger the assistant after a dot is typed after an object name + + + + Description: + plugin details + Description: + + + + Category: + plugin details + Category: + + + + Version: + plugin details + Version: + + + + Author: + plugin details + Author: + + + + Internal name: + plugin details + Internal name: + + + + Dependencies: + plugin details + Dependencies: + + + + Conflicts: + plugin details + Conflicts: + + + + Plugin details + Plugin details + + + + Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. + Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. + + + + %1 (built-in) + plugins manager in configuration dialog + %1 (built-in) + + + + Details + Details + + + + No plugins in this category. + No plugins in this category. + + + + Add new data type + Add new data type + + + + Rename selected data type + Rename selected data type + + + + Delete selected data type + Delete selected data type + + + + Help for configuring data type editors + Help for configuring data type editors + + + + Clear hotkey for this action + Clear hotkey for this action + + + + Restore original hotkey for this action + Restore original hotkey for this action + + + + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + + + + ConstraintCheckPanel + + + The condition + The condition + + + + Named constraint: + Named constraint: + + + + On conflict + On conflict + + + + Enter a valid condition. + Enter a valid condition. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ConstraintDialog + + + New constraint + constraint dialog + New constraint + + + + Create + constraint dialog + Create + + + + Edit constraint + dialog window + Edit constraint + + + + Apply + constraint dialog + Apply + + + + Primary key + table constraints + Primary key + + + + Foreign key + table constraints + Foreign key + + + + Unique + table constraints + Unique + + + + Not NULL + table constraints + Not NULL + + + + Check + table constraints + Check + + + + Generated + table constraints + Generated + + + + Collate + table constraints + Collate + + + + Default + table constraints + Default + + + + ConstraintTabModel + + + Table + table constraints + Table + + + + Column (%1) + table constraints + Column (%1) + + + + Scope + table constraints + Scope + + + + Type + table constraints + Type + + + + Details + table constraints + Details + + + + Name + table constraints + Name + + + + CssDebugDialog + + + SQLiteStudio CSS console + SQLiteStudio CSS console + + + + DataView + + + Filter data + data view + Filter data + + + + Grid view + Grid view + + + + Form view + Form view + + + + Refresh table data + data view + Refresh table data + + + + First page + data view + First page + + + + Previous page + data view + Previous page + + + + Next page + data view + Next page + + + + Last page + data view + Last page + + + + Commit changes for selected cells + data view + Commit changes for selected cells + + + + Rollback changes for selected cells + data view + Rollback changes for selected cells + + + + Show grid view of results + data view + Show grid view of results + + + + Show form view of results + data view + Show form view of results + + + + Filter by text (if contains) + data view + Filter by text (if contains) + + + + Filter strictly by text (if equals) + data view + Filter strictly by text (if equals) + + + + Tabs on top + data view + Tabs on top + + + + Tabs at bottom + data view + Tabs at bottom + + + + Place new rows above selected row + data view + Place new rows above selected row + + + + Place new rows below selected row + data view + Place new rows below selected row + + + + Place new rows at the end of the data view + data view + Place new rows at the end of the data view + + + + Total number of rows is being counted. +Browsing other pages will be possible after the row counting is done. + Total number of rows is being counted. +Browsing other pages will be possible after the row counting is done. + + + + Row: %1 + Row: %1 + + + + Filter + Filter + + + + Hit Enter key or press "Apply filter" button on toolbar to apply new value. + Hit Enter key or press "Apply filter" button on toolbar to apply new value. + + + + Filter by the Regular Expression + data view + Filter by the Regular Expression + + + + Filter by SQL expression + data view + Filter by SQL expression + + + + Show filter inputs per column + data view + Show filter inputs per column + + + + Apply filter + data view + Apply filter + + + + DbDialog + + + Database + Database + + + + Database type + Database type + + + + Database driver + Database driver + + + + + File + File + + + + Name (on the list) + Name (on the list) + + + + Options + Options + + + + <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> + aasfd + <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> + + + + Permanent (keep it in configuration) + Permanent (keep it in configuration) + + + + Test connection + Test connection + + + + Select new or existing file on local computer + Select new or existing file on local computer + + + + Browse + Browse + + + + Database type not selected. + Database type not selected. + + + + Database path not specified. + Database path not specified. + + + + Enter an unique database name. + Enter an unique database name. + + + + This name is already in use. Please enter unique name. + This name is already in use. Please enter unique name. + + + + <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> + <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> + + + + Enter a database file path. + Enter a database file path. + + + + This database is already on the list under name: %1 + This database is already on the list under name: %1 + + + + Select a database type. + Select a database type. + + + + DbObjectDialogs + + + Delete table + Delete table + + + + Are you sure you want to delete table %1? + Are you sure you want to delete table %1? + + + + Delete index + Delete index + + + + Are you sure you want to delete index %1? + Are you sure you want to delete index %1? + + + + Delete trigger + Delete trigger + + + + Are you sure you want to delete trigger %1? + Are you sure you want to delete trigger %1? + + + + Delete view + Delete view + + + + Are you sure you want to delete view %1? + Are you sure you want to delete view %1? + + + + + Error while dropping %1: %2 + Error while dropping %1: %2 + + + + Delete objects + Delete objects + + + + Are you sure you want to delete following objects: +%1 + Are you sure you want to delete following objects: +%1 + + + + Cannot start transaction. Details: %1 + Cannot start transaction. Details: %1 + + + + Cannot commit transaction. Details: %1 + Cannot commit transaction. Details: %1 + + + + DbTree + + + Databases + Databases + + + + Filter by name + Filter by name + + + + Copy + Copy + + + + Paste + Paste + + + + Select all + Select all + + + + Create a group + Create a group + + + + Delete the group + Delete the group + + + + Rename the group + Rename the group + + + + &Add a database + &Add a database + + + + &Edit the database + &Edit the database + + + + &Remove the database + &Remove the database + + + + &Connect to the database + &Connect to the database + + + + &Disconnect from the database + &Disconnect from the database + + + + Import + Import + + + + &Export the database + &Export the database + + + + Vac&uum + Vac&uum + + + + &Integrity check + &Integrity check + + + + Create a &table + Create a &table + + + + Edit the t&able + Edit the t&able + + + + Delete the ta&ble + Delete the ta&ble + + + + Export the table + Export the table + + + + Import into the table + Import into the table + + + + Populate table + Populate table + + + + Create similar table + Create similar table + + + + Reset autoincrement sequence + Reset autoincrement sequence + + + + Create an &index + Create an &index + + + + Edit the i&ndex + Edit the i&ndex + + + + Delete the in&dex + Delete the in&dex + + + + Create a trig&ger + Create a trig&ger + + + + Edit the trigg&er + Edit the trigg&er + + + + Delete the trigge&r + Delete the trigge&r + + + + Create a &view + Create a &view + + + + Edit the v&iew + Edit the v&iew + + + + Delete the vi&ew + Delete the vi&ew + + + + Add a column + Add a column + + + + Edit the column + Edit the column + + + + Delete the column + Delete the column + + + + Delete selected items + Delete selected items + + + + Clear filter + Clear filter + + + + &Refresh all database schemas + &Refresh all database schemas + + + + Re&fresh selected database schema + Re&fresh selected database schema + + + + + Erase table data + Erase table data + + + + Open file's directory + Open file's directory + + + + Execute SQL from file + Execute SQL from file + + + + Increase font size + database list + Increase font size + + + + Decrease font size + database list + Decrease font size + + + + + Database + Database + + + + Grouping + Grouping + + + + Generate query for table + Generate query for table + + + + + Create group + Create group + + + + Group name + Group name + + + + Entry with name %1 already exists in group %2. + Entry with name %1 already exists in group %2. + + + + Delete group + Delete group + + + + Are you sure you want to delete group %1? +All objects from this group will be moved to parent group. + Are you sure you want to delete group %1? +All objects from this group will be moved to parent group. + + + + Are you sure you want to remove database '%1' from the list? + Are you sure you want to remove database '%1' from the list? + + + + Are you sure you want to remove following databases from the list: +%1 + Are you sure you want to remove following databases from the list: +%1 + + + + Remove database + Remove database + + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Vacuum (%1) + Vacuum (%1) + + + + Integrity check (%1) + Integrity check (%1) + + + + Reset autoincrement + Reset autoincrement + + + + Are you sure you want to reset autoincrement value for table '%1'? + Are you sure you want to reset autoincrement value for table '%1'? + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + An error occurred while trying to reset autoincrement value for table '%1': %2 + + + + Autoincrement value for table '%1' has been reset successfully. + Autoincrement value for table '%1' has been reset successfully. + + + + Are you sure you want to delete all data from table(s): %1? + Are you sure you want to delete all data from table(s): %1? + + + + An error occurred while trying to delete data from table '%1': %2 + An error occurred while trying to delete data from table '%1': %2 + + + + All data has been deleted for table '%1'. + All data has been deleted for table '%1'. + + + + Following objects will be deleted: %1. + Following objects will be deleted: %1. + + + + Following databases will be removed from list: %1. + Following databases will be removed from list: %1. + + + + Remainig objects from deleted group will be moved in place where the group used to be. + Remainig objects from deleted group will be moved in place where the group used to be. + + + + %1<br><br>Are you sure you want to continue? + %1<br><br>Are you sure you want to continue? + + + + Delete objects + Delete objects + + + + DbTreeItemDelegate + + + error + dbtree labels + error + + + + (system table) + database tree label + (system table) + + + + (virtual) + virtual table label + (virtual) + + + + (system index) + database tree label + (system index) + + + + DbTreeModel + + + Database: %1 + dbtree tooltip + Database: %1 + + + + URI: + dbtree tooltip + URI: + + + + Version: + dbtree tooltip + Version: + + + + File size: + dbtree tooltip + File size: + + + + Encoding: + dbtree tooltip + Encoding: + + + + Error: + dbtree tooltip + Error: + + + + Table : %1 + dbtree tooltip + Table : %1 + + + + Columns (%1): + dbtree tooltip + Columns (%1): + + + + Indexes (%1): + dbtree tooltip + Indexes (%1): + + + + Triggers (%1): + dbtree tooltip + Triggers (%1): + + + + Copy + Copy + + + + Move + Move + + + + Include data + Include data + + + + Include indexes + Include indexes + + + + Include triggers + Include triggers + + + + Abort + Abort + + + + Could not add dropped database file '%1' automatically. Manual setup is necessary. + Could not add dropped database file '%1' automatically. Manual setup is necessary. + + + + Referenced tables + Referenced tables + + + + Do you want to include following referenced tables as well: +%1 + Do you want to include following referenced tables as well: +%1 + + + + Name conflict + Name conflict + + + + Following object already exists in the target database. +Please enter new, unique name, or press '%1' to abort the operation: + Following object already exists in the target database. +Please enter new, unique name, or press '%1' to abort the operation: + + + + SQL statements conversion + SQL statements conversion + + + + Following error occurred while converting SQL statements to the target SQLite version: + Following error occurred while converting SQL statements to the target SQLite version: + + + + Would you like to ignore those errors and proceed? + Would you like to ignore those errors and proceed? + + + + DdlHistoryWindow + + + Filter by database: + Filter by database: + + + + Clear entire history + Clear entire history + + + + -- Queries executed on database %1 (%2) +-- Date and time of execution: %3 +%4 + -- Queries executed on database %1 (%2) +-- Date and time of execution: %3 +%4 + + + + Clear history + Clear history + + + + Are you sure you want to erase entire DDL history? + Are you sure you want to erase entire DDL history? + + + + DDL history + DDL history + + + + DdlPreviewDialog + + + Queries to be executed + Queries to be executed + + + + Don't show again + Don't show again + + + + DebugConsole + + + SQLiteStudio Debug Console + SQLiteStudio Debug Console + + + + EditorWindow + + + SQL editor + SQL editor + + + + Query + Query + + + + History + History + + + + Results in the separate tab + Results in the separate tab + + + + Results below the query + Results below the query + + + + + SQL editor %1 + SQL editor %1 + + + + + Results + Results + + + + Execute query + Execute query + + + + Explain query + Explain query + + + + Clear execution history + sql editor + Clear execution history + + + + Export results + sql editor + Export results + + + + Create view from query + sql editor + Create view from query + + + + Previous database + Previous database + + + + Next database + Next database + + + + Show next tab + sql editor + Show next tab + + + + Show previous tab + sql editor + Show previous tab + + + + Focus results below + sql editor + Focus results below + + + + Focus SQL editor above + sql editor + Focus SQL editor above + + + + Delete selected SQL history entries + sql editor + Delete selected SQL history entries + + + + Execute single query under cursor + Execute single query under cursor + + + + Execute all queries in editor + Execute all queries in editor + + + + Active database (%1/%2) + Active database (%1/%2) + + + + Query finished in %1 second(s). Rows affected: %2 + Query finished in %1 second(s). Rows affected: %2 + + + + Query finished in %1 second(s). + Query finished in %1 second(s). + + + + Clear execution history + Clear execution history + + + + Are you sure you want to erase the entire SQL execution history? This cannot be undone. + Are you sure you want to erase the entire SQL execution history? This cannot be undone. + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + No database selected in the SQL editor. Cannot create a view for unknown database. + No database selected in the SQL editor. Cannot create a view for unknown database. + + + + Editor window "%1" has uncommitted data. + Editor window "%1" has uncommitted data. + + + + ErrorsConfirmDialog + + + Errors + Errors + + + + Following errors occured: + Following errors occured: + + + + Would you like to proceed? + Would you like to proceed? + + + + ExecFromFileDialog + + + Execute SQL from file + Execute SQL from file + + + + Input file + Input file + + + + Path to file + Path to file + + + + Browse for file + Browse for file + + + + Options + Options + + + + File encoding + File encoding + + + + Skip failing SQL statements + Skip failing SQL statements + + + + SQL scripts (*.sql);;All files (*) + SQL scripts (*.sql);;All files (*) + + + + Execute SQL file + Execute SQL file + + + + Please provide file to be executed. + Please provide file to be executed. + + + + Provided file does not exist or cannot be read. + Provided file does not exist or cannot be read. + + + + ExportDialog + + + Export + Export + + + + What do you want to export? + What do you want to export? + + + + A database + A database + + + + A single table + A single table + + + + Query results + Query results + + + + Table to export + Table to export + + + + Database + Database + + + + Table + Table + + + + Options + Options + + + + When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. + When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. + + + + Export table data + Export table data + + + + Export table indexes + Export table indexes + + + + Export table triggers + Export table triggers + + + + Note, that exporting table indexes and triggers may be unsupported by some output formats. + Note, that exporting table indexes and triggers may be unsupported by some output formats. + + + + Select database objects to export + Select database objects to export + + + + Export data from tables + Export data from tables + + + + Select all + Select all + + + + Deselect all + Deselect all + + + + + Database: + Database: + + + + Query to export results for + Query to export results for + + + + Query to be executed for results: + Query to be executed for results: + + + + Export format and options + Export format and options + + + + Export format + Export format + + + + Output + Output + + + + Exported file path + Exported file path + + + + Clipboard + Clipboard + + + + File + File + + + + Exported text encoding: + Exported text encoding: + + + + Export format options + Export format options + + + + Cancel + Cancel + + + + + + Select database to export. + Select database to export. + + + + Select table to export. + Select table to export. + + + + Enter valid query to export. + Enter valid query to export. + + + + Select at least one object to export. + Select at least one object to export. + + + + You must provide a file name to export to. + You must provide a file name to export to. + + + + Path you provided is an existing directory. You cannot overwrite it. + Path you provided is an existing directory. You cannot overwrite it. + + + + The directory '%1' does not exist. + The directory '%1' does not exist. + + + + The file '%1' exists and will be overwritten. + The file '%1' exists and will be overwritten. + + + + All files (*) + All files (*) + + + + Pick file to export to + Pick file to export to + + + + Internal error during export. This is a bug. Please report it. + Internal error during export. This is a bug. Please report it. + + + + FileExecErrorsDialog + + + Execution errors + Execution errors + + + + Following errors were encountered during execution of SQL statements from the file: + Following errors were encountered during execution of SQL statements from the file: + + + + SQL + SQL + + + + Error + Error + + + + Statements that were executed successfully were commited. + Statements that were executed successfully were commited. + + + + Statements that were executed successfully were rolled back. + Statements that were executed successfully were rolled back. + + + + FkComboBox + + + Cannot edit this cell. Details: %1 + Cannot edit this cell. Details: %1 + + + + FontEdit + + + Choose font + font configuration + Choose font + + + + Form + + + Active SQL formatter plugin + Active SQL formatter plugin + + + + FormView + + + Commit row + form view + Commit row + + + + Rollback row + form view + Rollback row + + + + First row + form view + First row + + + + Previous row + form view + Previous row + + + + Next row + form view + Next row + + + + Last row + form view + Last row + + + + Insert new row + form view + Insert new row + + + + Delete current row + form view + Delete current row + + + + FunctionsEditor + + + Filter functions + Filter functions + + + + Input arguments + Input arguments + + + + Undefined + Undefined + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Type: + Type: + + + + Function name: + Function name: + + + + Implementation language: + Implementation language: + + + + Deterministic + Deterministic + + + + Initialization code: + Initialization code: + + + + + Function implementation code: + Function implementation code: + + + + Final step implementation code: + Final step implementation code: + + + + SQL functions editor + SQL functions editor + + + + Commit all function changes + Commit all function changes + + + + Rollback all function changes + Rollback all function changes + + + + Create new function + Create new function + + + + Delete selected function + Delete selected function + + + + Custom SQL functions manual + Custom SQL functions manual + + + + Add function argument + Add function argument + + + + Rename function argument + Rename function argument + + + + Delete function argument + Delete function argument + + + + Move function argument up + Move function argument up + + + + Move function argument down + Move function argument down + + + + Scalar + Scalar + + + + Aggregate + Aggregate + + + + Enter a non-empty, unique name of the function. + Enter a non-empty, unique name of the function. + + + + Pick the implementation language. + Pick the implementation language. + + + + Per step code: + Per step code: + + + + Enter a non-empty implementation code. + Enter a non-empty implementation code. + + + + argument + new function argument name in function editor window + argument + + + + Functions editor window has uncommitted modifications. + Functions editor window has uncommitted modifications. + + + + ImportDialog + + + Import data + Import data + + + + Table to import to + Table to import to + + + + Table + Table + + + + Database + Database + + + + Data source to import from + Data source to import from + + + + Data source type + Data source type + + + + Options + Options + + + + Text encoding: + Text encoding: + + + + Input file: + Input file: + + + + <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> + <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> + + + + Ignore errors + Ignore errors + + + + Data source options + Data source options + + + + Cancel + Cancel + + + + If you type table name that doesn't exist, it will be created. + If you type table name that doesn't exist, it will be created. + + + + Enter the table name + Enter the table name + + + + Select import plugin. + Select import plugin. + + + + You must provide a file to import from. + You must provide a file to import from. + + + + The file '%1' does not exist. + The file '%1' does not exist. + + + + Path you provided is a directory. A regular file is required. + Path you provided is a directory. A regular file is required. + + + + Pick file to import from + Pick file to import from + + + + IndexDialog + + + + Index + Index + + + + Column + Column + + + + Sort + Sort + + + + Collation + Collation + + + + On table: + On table: + + + + Delete selected indexed expression + Delete selected indexed expression + + + + Moves selected index column up in the order, making it more significant in the index. + Moves selected index column up in the order, making it more significant in the index. + + + + Moves selected index column down in the order, making it less significant in the index. + Moves selected index column down in the order, making it less significant in the index. + + + + Partial index condition + Partial index condition + + + + Unique index + Unique index + + + + Index name: + Index name: + + + + Edit selected indexed expression + Edit selected indexed expression + + + + Add indexed expression + Add indexed expression + + + + DDL + DDL + + + + Tried to open index dialog for closed or inexisting database. + Tried to open index dialog for closed or inexisting database. + + + + Could not process index %1 correctly. Unable to open an index dialog. + Could not process index %1 correctly. Unable to open an index dialog. + + + + Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. + Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. + + + + Pick the table for the index. + Pick the table for the index. + + + + Select at least one column. + Select at least one column. + + + + Enter a valid condition. + Enter a valid condition. + + + + default + index dialog + default + + + + Sort order + table constraints + Sort order + + + + + Error + index dialog + Error + + + + Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? + Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? + + + + An error occurred while executing SQL statements: +%1 + An error occurred while executing SQL statements: +%1 + + + + IndexExprColumnDialog + + + Indexed expression + Indexed expression + + + + Expression to index + Expression to index + + + + This expression is already indexed by the index. + This expression is already indexed by the index. + + + + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. + + + + Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. + Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. + + + + It's forbidden to use 'SELECT' statements in indexed expressions. + It's forbidden to use 'SELECT' statements in indexed expressions. + + + + Enter an indexed expression. + Enter an indexed expression. + + + + Invalid expression. + Invalid expression. + + + + LanguageDialog + + + Language + Language + + + + Please choose language: + Please choose language: + + + + MainWindow + + + Database toolbar + Database toolbar + + + + Structure toolbar + Structure toolbar + + + + Tools + Tools + + + + Window list + Window list + + + + View toolbar + View toolbar + + + + Configuration widgets + Configuration widgets + + + + Syntax highlighting engines + Syntax highlighting engines + + + + Data editors + Data editors + + + + Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. + Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. + + + + Running in debug mode. Debug messages are printed to the standard output. + Running in debug mode. Debug messages are printed to the standard output. + + + + You need to restart application to make the language change take effect. + You need to restart application to make the language change take effect. + + + + Open SQL &editor + Open SQL &editor + + + + Open DDL &history + Open DDL &history + + + + Open SQL &functions editor + Open SQL &functions editor + + + + Open code &snippets editor + Open code &snippets editor + + + + Open &collations editor + Open &collations editor + + + + Open ex&tension manager + Open ex&tension manager + + + + &Import + &Import + + + + E&xport + E&xport + + + + Open confi&guration dialog + Open confi&guration dialog + + + + &Tile windows + &Tile windows + + + + Tile windows &horizontally + Tile windows &horizontally + + + + Tile windows &vertically + Tile windows &vertically + + + + &Cascade windows + &Cascade windows + + + + Next window + Next window + + + + Previous window + Previous window + + + + Hide status field + Hide status field + + + + Close &all windows + Close &all windows + + + + Re&store recently closed window + Re&store recently closed window + + + + Close current &window + Close current &window + + + + Close &other windows + Close &other windows + + + + Close windows on the &left + Close windows on the &left + + + + Close windows on the &right + Close windows on the &right + + + + Re&name selected window + Re&name selected window + + + + Open Debug Console + Open Debug Console + + + + Open CSS Console + Open CSS Console + + + + Report a &bug + Report a &bug + + + + D&onate + D&onate + + + + Propose a new &feature + Propose a new &feature + + + + &About + &About + + + + &Licenses + &Licenses + + + + Open home &page + Open home &page + + + + User &Manual + User &Manual + + + + SQLite &documentation + SQLite &documentation + + + + Bugs and feature &requests + Bugs and feature &requests + + + + Quit + Quit + + + + Check for &updates + Check for &updates + + + + &Database + menubar + &Database + + + + &Structure + menubar + &Structure + + + + &View + menubar + &View + + + + Window list + menubar view menu + Window list + + + + &Tools + menubar + &Tools + + + + &Help + &Help + + + + Could not set style: %1 + main window + Could not set style: %1 + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + Rename window + Rename window + + + + Enter new name for the window: + Enter new name for the window: + + + + New updates are available. <a href="%1">Click here for details</a>. + New updates are available. <a href="%1">Click here for details</a>. + + + + You're running the most recent version. No updates are available. + You're running the most recent version. No updates are available. + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + Database passed in command line parameters (%1) was already on the list under name: %2 + + + + Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 + Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + MdiWindow + + + Uncommitted changes + Uncommitted changes + + + + Close anyway + Close anyway + + + + Don't close + Don't close + + + + MultiEditor + + + Null value + multieditor + Null value + + + + Configure editors for this data type + Configure editors for this data type + + + + Open another tab + Open another tab + + + + Foreign Key + Foreign Key + + + + Data editor plugin '%1' not loaded, while it is defined for editing '%2' data type. + Data editor plugin '%1' not loaded, while it is defined for editing '%1' data type. {1'?} {2'?} {1' or 2'?} + + + + Deleted + multieditor + Deleted + + + + Read only + multieditor + Read only + + + + MultiEditorBoolPlugin + + + Boolean + Boolean + + + + MultiEditorDatePlugin + + + Date + Date + + + + MultiEditorDateTimePlugin + + + Date & time + Date & time + + + + MultiEditorHexPlugin + + + Hex + Hex + + + + MultiEditorNumericPlugin + + + Number + numeric multi editor tab name + Number + + + + MultiEditorText + + + Tab changes focus + Tab changes focus + + + + Cut + Cut + + + + Copy + Copy + + + + Paste + Paste + + + + Delete + Delete + + + + Undo + Undo + + + + Redo + Redo + + + + MultiEditorTextPlugin + + + Text + Text + + + + MultiEditorTimePlugin + + + Time + Time + + + + NewConstraintDialog + + + New constraint + New constraint + + + + + Primary Key + new constraint dialog + Primary Key + + + + + Foreign Key + new constraint dialog + Foreign Key + + + + + Unique + new constraint dialog + Unique + + + + + Check + new constraint dialog + Check + + + + Not NULL + new constraint dialog + Not NULL + + + + Collate + new constraint dialog + Collate + + + + Generated + new constraint dialog + Generated + + + + Default + new constraint dialog + Default + + + + NewVersionDialog + + + SQLiteStudio updates + SQLiteStudio updates + + + + New version is available! + New version is available! + + + + Download new version! + Download new version! + + + + New version package will be downloaded. It will be up to you to install it whenever you're ready. + New version package will be downloaded. It will be up to you to install it whenever you're ready. + + + + Open SQLiteStudio home page. + Open SQLiteStudio home page. + + + + Read release notes && download package yourself. + Read release notes && download package yourself. + + + + Just close this window. + Just close this window. + + + + Check for updates on startup + Check for updates on startup + + + + Not now. + Not now. + + + + PopulateConfigDialog + + + Populating configuration + Populating configuration + + + + Configuring <b>%1</b> for column <b>%2</b> + Configuring <b>%1</b> for column <b>%2</b> + + + + PopulateDialog + + + Populate table + Populate table + + + + Database + Database + + + + Table + Table + + + + Columns + Columns + + + + Number of rows to populate: + Number of rows to populate: + + + + Populate + populate dialog button + Populate + + + + Abort + Abort + + + + Configure + Configure + + + + Populating configuration for this column is invalid or incomplete. + Populating configuration for this column is invalid or incomplete. + + + + Select database with table to populate + Select database with table to populate + + + + Select table to populate + Select table to populate + + + + You have to select at least one column. + You have to select at least one column. + + + + QObject + + + Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). + Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). + + + + The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. + The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. + + + + Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. + Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. + + + + Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. + Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. + + + + Cannot edit results of query other than %1. + Cannot edit results of query other than %1. + + + + Cannot edit columns that are result of aggregated %1 statements. + Cannot edit columns that are result of aggregated %1 statements. + + + + Cannot edit columns that are result of %1 statement. + Cannot edit columns that are result of %1 statement. + + + + Cannot edit columns that are result of common table expression statement (%1). + Cannot edit columns that are result of common table expression statement (%1). + + + + Cannot edit table generated columns. + Cannot edit table generated columns. + + + + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). + + + + + + + on conflict: %1 + data view tooltip + on conflict: %1 + + + + references table %1, column %2 + data view tooltip + references table %1, column %2 + + + + condition: %1 + data view tooltip + condition: %1 + + + + collation name: %1 + data view tooltip + collation name: %1 + + + + Data grid view + Data grid view + + + + Edit current cell inline + Edit current cell inline + + + + Copy cell(s) contents to clipboard + Copy cell(s) contents to clipboard + + + + Copy cell(s) contents together with header to clipboard + Copy cell(s) contents together with header to clipboard + + + + Paste cell(s) contents from clipboard + Paste cell(s) contents from clipboard + + + + Set empty value to selected cell(s) + Set empty value to selected cell(s) + + + + Set NULL value to selected cell(s) + Set NULL value to selected cell(s) + + + + Commit changes to cell(s) contents + Commit changes to cell(s) contents + + + + Rollback changes to cell(s) contents + Rollback changes to cell(s) contents + + + + Delete selected data row + Delete selected data row + + + + Insert new data row + Insert new data row + + + + Open contents of selected cell in a separate editor + Open contents of selected cell in a separate editor + + + + Toggle the height adjustment of rows + Toggle the height adjustment of rows + + + + Increase font size + data view + Increase font size + + + + Decrease font size + data view + Decrease font size + + + + Total pages available: %1 + Total pages available: %1 + + + + Total rows loaded: %1 + Total rows loaded: %1 + + + + Data view (both grid and form) + Data view (both grid and form) + + + + Refresh data + Refresh data + + + + Switch to grid view of the data + Switch to grid view of the data + + + + Switch to form view of the data + Switch to form view of the data + + + + Database list + Database list + + + + Delete selected item + Delete selected item + + + + Clear filter contents + Clear filter contents + + + + Refresh schema + Refresh schema + + + + Refresh all schemas + Refresh all schemas + + + + Add database + Add database + + + + Select all items + Select all items + + + + Copy selected item(s) + Copy selected item(s) + + + + + + Paste from clipboard + Paste from clipboard + + + + Increase font size + database list + Increase font size + + + + Decrease font size + database list + Decrease font size + + + + Tables + Tables + + + + Indexes + Indexes + + + + Triggers + Triggers + + + + Views + Views + + + + Columns + Columns + + + + Data form view + Data form view + + + + Commit changes for current row + Commit changes for current row + + + + Rollback changes for current row + Rollback changes for current row + + + + Go to first row on current page + Go to first row on current page + + + + Go to next row + Go to next row + + + + Go to previous row + Go to previous row + + + + Go to last row on current page + Go to last row on current page + + + + Insert new row + Insert new row + + + + Delete current row + Delete current row + + + + Main window + Main window + + + + Open SQL editor + Open SQL editor + + + + Open DDL history window + Open DDL history window + + + + Open snippets editor window + Open snippets editor window + + + + Open function editor window + Open function editor window + + + + Open collation editor window + Open collation editor window + + + + Open extension manager window + Open extension manager window + + + + Previous window + Previous window + + + + Next window + Next window + + + + Hide status area + Hide status area + + + + Open user manual + Open user manual + + + + Open configuration dialog + Open configuration dialog + + + + Open Debug Console + Open Debug Console + + + + Open CSS Console + Open CSS Console + + + + Open the About dialog + Open the About dialog + + + + Quit the application + Quit the application + + + + Cell text value editor + Cell text value editor + + + + + Cut selected text + Cut selected text + + + + + Copy selected text + Copy selected text + + + + + Delete selected text + Delete selected text + + + + + Undo + Undo + + + + + Redo + Redo + + + + SQL editor input field + SQL editor input field + + + + Select whole editor contents + Select whole editor contents + + + + Save contents into a file + Save contents into a file + + + + Load contents from a file + Load contents from a file + + + + Find in text + Find in text + + + + Find next + Find next + + + + Find previous + Find previous + + + + Replace in text + Replace in text + + + + Delete current line + Delete current line + + + + Request code assistant + Request code assistant + + + + Format contents + Format contents + + + + Move selected block of text one line down + Move selected block of text one line down + + + + Move selected block of text one line up + Move selected block of text one line up + + + + Copy selected block of text and paste it a line below + Copy selected block of text and paste it a line below + + + + Copy selected block of text and paste it a line above + Copy selected block of text and paste it a line above + + + + Toggle comment + Toggle comment + + + + Increase font size + sql editor + Increase font size + + + + Decrease font size + sql editor + Decrease font size + + + + All SQLite databases + All SQLite databases + + + + All files + All files + + + + Select database file + Select database file + + + + Select + Select + + + + File type + File type + + + + SQL editor window + SQL editor window + + + + Execute query + Execute query + + + + Execute single query under cursor + Execute single query under cursor + + + + Execute all queries in editor + Execute all queries in editor + + + + Execute "%1" query + Execute "%1" query + + + + Switch current working database to previous on the list + Switch current working database to previous on the list + + + + Switch current working database to next on the list + Switch current working database to next on the list + + + + Go to next editor tab + Go to next editor tab + + + + Go to previous editor tab + Go to previous editor tab + + + + Move keyboard input focus to the results view below + Move keyboard input focus to the results view below + + + + Move keyboard input focus to the SQL editor above + Move keyboard input focus to the SQL editor above + + + + Delete selected SQL history entries + Delete selected SQL history entries + + + + Table window + Table window + + + + Commit the table structure + Commit the table structure + + + + Rollback pending changes in the table structure + Rollback pending changes in the table structure + + + + Refresh table structure + Refresh table structure + + + + Add new column + Add new column + + + + Edit selected column + Edit selected column + + + + Delete selected column + Delete selected column + + + + Export table data + Export table data + + + + Import data to the table + Import data to the table + + + + Add new table constraint + Add new table constraint + + + + Edit selected table constraint + Edit selected table constraint + + + + Delete selected table constraint + Delete selected table constraint + + + + Refresh table index list + Refresh table index list + + + + Add new index + Add new index + + + + Edit selected index + Edit selected index + + + + Delete selected index + Delete selected index + + + + Refresh table trigger list + Refresh table trigger list + + + + + Add new trigger + Add new trigger + + + + + Edit selected trigger + Edit selected trigger + + + + + Delete selected trigger + Delete selected trigger + + + + + Go to next tab + Go to next tab + + + + + Go to previous tab + Go to previous tab + + + + A view window + A view window + + + + Commit the view's query + Commit the view's query + + + + Rollback pending changes in the view's query + Rollback pending changes in the view's query + + + + Refresh view trigger list + Refresh view trigger list + + + + Execute the view's query + Execute the view's query + + + + A code snippets editor window + A code snippets editor window + + + + + + + Commit the pending changes + Commit the pending changes + + + + + + + Rollback the pending changes + Rollback the pending changes + + + + A collation editor window + A collation editor window + + + + A function editor window + A function editor window + + + + A SQLite extension editor window + A SQLite extension editor window + + + + QuitConfirmDialog + + + Uncommitted changes + Uncommitted changes + + + + Are you sure you want to quit the application? + +Following items are pending: + Are you sure you want to quit the application? + +Following items are pending: + + + + SearchTextDialog + + + Find or replace + Find or replace + + + + Find: + Find: + + + + Case sensitive + Case sensitive + + + + Search backwards + Search backwards + + + + Regular expression matching + Regular expression matching + + + + Replace && +find next + Replace && +find next + + + + Replace with: + Replace with: + + + + Replace all + Replace all + + + + Find + Find + + + + SortDialog + + + Sort by columns + Sort by columns + + + + + Column + Column + + + + + Order + Order + + + + Sort by: %1 + Sort by: %1 + + + + Move column up + Move column up + + + + Move column down + Move column down + + + + SqlEditor + + + Wrap words + sql editor + Wrap words + + + + Cut + sql editor + Cut + + + + Copy + sql editor + Copy + + + + Paste + sql editor + Paste + + + + Delete + sql editor + Delete + + + + Select all + sql editor + Select all + + + + Undo + sql editor + Undo + + + + Redo + sql editor + Redo + + + + Complete + sql editor + Complete + + + + Format SQL + sql editor + Format SQL + + + + Save SQL to file + sql editor + Save SQL to file + + + + Select file to save SQL + sql editor + Select file to save SQL + + + + Load SQL from file + sql editor + Load SQL from file + + + + Delete line + sql editor + Delete line + + + + Move block down + sql editor + Move block down + + + + Move block up + sql editor + Move block up + + + + Copy block down + sql editor + Copy block down + + + + Copy up down + sql editor + Copy up down + + + + Find + sql editor + Find + + + + Find next + sql editor + Find next + + + + Find previous + sql editor + Find previous + + + + Replace + sql editor + Replace + + + + Toggle comment + sql editor + Toggle comment + + + + Increase font size + sql editor + Increase font size + + + + Decrease font size + sql editor + Decrease font size + + + + Could not open file '%1' for writing: %2 + Could not open file '%1' for writing: %2 + + + + Saved SQL contents to file: %1 + Saved SQL contents to file: %1 + + + + Syntax completion can be used only when a valid database is set for the SQL editor. + Syntax completion can be used only when a valid database is set for the SQL editor. + + + + Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. + Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. + + + + Save to file + Save to file + + + + SQL scripts (*.sql);;All files (*) + SQL scripts (*.sql);;All files (*) + + + + Open file + Open file + + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Reached the end of document. Hit the find again to restart the search. + Reached the end of document. Hit the find again to restart the search. + + + + SqlQueryItem + + + Committing error: + data view tooltip + Committing error: + + + + Column: + data view tooltip + Column: + + + + Data type: + data view + Data type: + + + + Table: + data view tooltip + Table: + + + + Constraints: + data view tooltip + Constraints: + + + + SqlQueryItemDelegate + + + + + + Cannot edit this cell. Details: %1 + Cannot edit this cell. Details: %1 + + + + The row is marked for deletion. + The row is marked for deletion. + + + + + Structure of this table has changed since last data was loaded. Reload the data to proceed. + Structure of this table has changed since last data was loaded. Reload the data to proceed. + + + + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). + + + + Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. + Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. + + + + SqlQueryModel + + + + Only one query can be executed simultaneously. + Only one query can be executed simultaneously. + + + + Cannot execute query on undefined or invalid database. + Cannot execute query on undefined or invalid database. + + + + Cannot execute empty query. + Cannot execute empty query. + + + + Uncommitted data + Uncommitted data + + + + There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. + There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. + + + + Cannot commit the data for a cell that refers to the already closed database. + Cannot commit the data for a cell that refers to the already closed database. + + + + Could not begin transaction on the database. Details: %1 + Could not begin transaction on the database. Details: %1 + + + + An error occurred while committing the transaction: %1 + An error occurred while committing the transaction: %1 + + + + An error occurred while rolling back the transaction: %1 + An error occurred while rolling back the transaction: %1 + + + + Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. + Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. + + + + An error occurred while committing the data: %1 + An error occurred while committing the data: %1 + + + + Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. + Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. + + + + + Error while executing SQL query on database '%1': %2 + Error while executing SQL query on database '%1': %2 + + + + Error while loading query results: %1 + Error while loading query results: %1 + + + + Insert multiple rows + Insert multiple rows + + + + Number of rows to insert: + Number of rows to insert: + + + + Delete rows + Delete rows + + + + You're about to delete newly inserted rows that are not committed yet. Row numbers: %1 +Such deletion will be permanent. Are you sure you want to delete them? + You're about to delete newly inserted rows that are not committed yet. Row numbers: %1 +Such deletion will be permanent. Are you sure you want to delete them? + + + + SqlQueryView + + + Go to referenced row in... + Go to referenced row in... + + + + Copy + Copy + + + + Copy with headers + Copy with headers + + + + Copy as... + Copy as... + + + + Paste + Paste + + + + Paste as... + Paste as... + + + + Set NULL values + Set NULL values + + + + Erase values + Erase values + + + + Commit + Commit + + + + Rollback + Rollback + + + + Commit selected cells + Commit selected cells + + + + Rollback selected cells + Rollback selected cells + + + + Edit current cell inline + Edit current cell inline + + + + Define columns to sort by + Define columns to sort by + + + + Remove custom sorting + Remove custom sorting + + + + Insert row + Insert row + + + + Insert multiple rows + Insert multiple rows + + + + Delete selected row + Delete selected row + + + + Adjust height of rows + Adjust height of rows + + + + Increase font size + data view + Increase font size + + + + Decrease font size + data view + Decrease font size + + + + Invert selection + data view + Invert selection + + + + Edit value in editor + Edit value in editor + + + + Show value in a viewer + Show value in a viewer + + + + Generate query for selected cells + Generate query for selected cells + + + + No items selected to paste clipboard contents to. + No items selected to paste clipboard contents to. + + + + Cannot paste data. Details: %1 + Cannot paste data. Details: %1 + + + + Structure of at least one table used has changed since last data was loaded. Reload the data to proceed. + Structure of at least one table used has changed since last data was loaded. Reload the data to proceed. + + + + Cannot paste to a cell. Details: %1 + Cannot paste to a cell. Details: %1 + + + + The row is marked for deletion. + The row is marked for deletion. + + + + Cannot paste to column %1. Details: %2 + Cannot paste to column %1. Details: %2 + + + + Go to referenced row in table '%1' + Go to referenced row in table '%1' + + + + table '%1' + table '%1' + + + + Referenced row (%1) + Referenced row (%1) + + + + Trim pasted text? + Trim pasted text? + + + + The pasted text contains leading or trailing white space. Trim it automatically? + The pasted text contains leading or trailing white space. Trim it automatically? + + + + Paste "NULL" as null value? + Paste "NULL" as null value? + + + + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + + + + Edit value + Edit value + + + + SqlTableModel + + + Error while committing new row: %1 + Error while committing new row: %1 + + + + Error while deleting row from table %1: %2 + Error while deleting row from table %1: %2 + + + + SqliteExtensionEditor + + + Filter extensions + Filter extensions + + + + Leave empty to use default function + Leave empty to use default function + + + + Extension file + Extension file + + + + Initialization function + Initialization function + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Extension manager window has uncommitted modifications. + Extension manager window has uncommitted modifications. + + + + Extension manager + Extension manager + + + + Commit all extension changes + Commit all extension changes + + + + Rollback all extension changes + Rollback all extension changes + + + + Add new extension + Add new extension + + + + Remove selected extension + Remove selected extension + + + + Editing extensions manual + Editing extensions manual + + + + File with given path does not exist or is not readable. + File with given path does not exist or is not readable. + + + + Unable to load extension: %1 + Unable to load extension: %1 + + + + Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. + Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. + + + + Dynamic link libraries (*.dll);;All files (*) + Dynamic link libraries (*.dll);;All files (*) + + + + Shared objects (*.so);;All files (*) + Shared objects (*.so);;All files (*) + + + + Dynamic libraries (*.dylib);;All files (*) + Dynamic libraries (*.dylib);;All files (*) + + + + All files (*) + All files (*) + + + + Open file + Open file + + + + StatusField + + + Status + Status + + + + Copy + Copy + + + + Clear + Clear + + + + TableConstraintsModel + + + Type + table constraints + Type + + + + Details + table constraints + Details + + + + Name + table constraints + Name + + + + TableForeignKeyPanel + + + Foreign table: + Foreign table: + + + + Columns + Columns + + + + Local column + Local column + + + + Foreign column + Foreign column + + + + Reactions + Reactions + + + + Deferred foreign key + Deferred foreign key + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + Pick the foreign column. + Pick the foreign column. + + + + Pick the foreign table. + Pick the foreign table. + + + + Select at least one foreign column. + Select at least one foreign column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + Foreign column + table constraints + Foreign column + + + + TablePrimaryKeyAndUniquePanel + + + Columns + Columns + + + + Column + Column + + + + Collation + Collation + + + + Sort + Sort + + + + Valid only for a single column with INTEGER data type + Valid only for a single column with INTEGER data type + + + + Autoincrement + Autoincrement + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + On conflict + On conflict + + + + Collate + table constraints + Collate + + + + Sort order + table constraints + Sort order + + + + Select at least one column. + Select at least one column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + TableStructureModel + + + Name + table structure columns + Name + + + + Data type + table structure columns + Data type + + + + Primary +Key + table structure columns + Primary +Key + + + + Foreign +Key + table structure columns + Foreign +Key + + + + Unique + table structure columns + Unique + + + + Check + table structure columns + Check + + + + Not +NULL + table structure columns + Not +NULL + + + + Collate + table structure columns + Collate + + + + Generated + table structure columns + Generated + + + + Default value + table structure columns + Default value + + + + TableWindow + + + Structure + Structure + + + + Table name: + Table name: + + + + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + + + + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + + + + + Data + Data + + + + Constraints + Constraints + + + + Indexes + Indexes + + + + Triggers + Triggers + + + + DDL + DDL + + + + Export table + table window + Export table + + + + Import data to table + table window + Import data to table + + + + Populate table + table window + Populate table + + + + Refresh structure + table window + Refresh structure + + + + Commit structure changes + table window + Commit structure changes + + + + Rollback structure changes + table window + Rollback structure changes + + + + Add column + table window + Add column + + + + Edit column + table window + Edit column + + + + + Delete column + table window + Delete column + + + + Move column up + table window + Move column up + + + + Move column down + table window + Move column down + + + + Create similar table + table window + Create similar table + + + + Reset autoincrement value + table window + Reset autoincrement value + + + + Add table constraint + table window + Add table constraint + + + + Edit table constraint + table window + Edit table constraint + + + + Delete table constraint + table window + Delete table constraint + + + + Move table constraint up + table window + Move table constraint up + + + + Move table constraint down + table window + Move table constraint down + + + + Add table primary key + table window + Add table primary key + + + + Add table foreign key + table window + Add table foreign key + + + + Add table unique constraint + table window + Add table unique constraint + + + + Add table check constraint + table window + Add table check constraint + + + + Refresh index list + table window + Refresh index list + + + + + Create index + table window + Create index + + + + Edit index + table window + Edit index + + + + Delete index + table window + Delete index + + + + Refresh trigger list + table window + Refresh trigger list + + + + + Create trigger + table window + Create trigger + + + + Edit trigger + table window + Edit trigger + + + + Delete trigger + table window + Delete trigger + + + + Are you sure you want to delete column '%1'? + table window + Are you sure you want to delete column '%1'? + + + + Following problems will take place while modifying the table. +Would you like to proceed? + table window + Following problems will take place while modifying the table. +Would you like to proceed? + + + + Table modification + table window + Table modification + + + + Could not load data for table %1. Error details: %2 + Could not load data for table %1. Error details: %2 + + + + Could not process the %1 table correctly. Unable to open a table window. + Could not process the %1 table correctly. Unable to open a table window. + + + + Database + Database + + + + Could not restore window %1, because no database or table was stored in session for this window. + Could not restore window %1, because no database or table was stored in session for this window. + + + + Could not restore window '%1', because no database or table was stored in session for this window. + Could not restore window '%1', because no database or table was stored in session for this window. + + + + Could not restore window '%1', because database %2 could not be resolved. + Could not restore window '%1', because database %2 could not be resolved. + + + + Could not restore window '%1', because the table %2 doesn't exist in the database %3. + Could not restore window '%1', because the table %2 doesn't exist in the database %3. + + + + + New table %1 + New table %1 + + + + Committed changes for table '%1' successfully. + Committed changes for table '%1' successfully. + + + + Committed changes for table '%1' (named before '%2') successfully. + Committed changes for table '%1' (named before '%2') successfully. + + + + Could not commit table structure. Error message: %1 + table window + Could not commit table structure. Error message: %1 + + + + Reset autoincrement + Reset autoincrement + + + + Are you sure you want to reset autoincrement value for table '%1'? + Are you sure you want to reset autoincrement value for table '%1'? + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + An error occurred while trying to reset autoincrement value for table '%1': %2 + + + + Autoincrement value for table '%1' has been reset successfully. + Autoincrement value for table '%1' has been reset successfully. + + + + Empty name + Empty name + + + + A blank name for the table is allowed in SQLite, but it is not recommended. +Are you sure you want to create a table with blank name? + A blank name for the table is allowed in SQLite, but it is not recommended. +Are you sure you want to create a table with blank name? + + + + Cannot create a table without at least one column. + Cannot create a table without at least one column. + + + + Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. + Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. + + + + Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. + Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. + + + + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 + + + + Are you sure you want to delete table constraint '%1'? + table window + Are you sure you want to delete table constraint '%1'? + + + + Delete constraint + table window + Delete constraint + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + Uncommitted changes + Uncommitted changes + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + + + + Go back to structure tab + Go back to structure tab + + + + Commit modifications and browse data. + Commit modifications and browse data. + + + + Name + table window indexes + Name + + + + Unique + table window indexes + Unique + + + + Columns + table window indexes + Columns + + + + Partial index condition + table window indexes + Partial index condition + + + + Name + table window triggers + Name + + + + Event + table window triggers + Event + + + + Condition + table window triggers + Condition + + + + Details + table window triggers + Details + + + + Table window "%1" has uncommitted structure modifications and data. + Table window "%1" has uncommitted structure modifications and data. + + + + Table window "%1" has uncommitted data. + Table window "%1" has uncommitted data. + + + + Table window "%1" has uncommitted structure modifications. + Table window "%1" has uncommitted structure modifications. + + + + TriggerColumnsDialog + + + Trigger columns + Trigger columns + + + + Triggering columns: + Triggering columns: + + + + Select all + Select all + + + + Deselect all + Deselect all + + + + TriggerDialog + + + + Trigger + Trigger + + + + On table: + On table: + + + + Action: + Action: + + + + + <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> + <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> + + + + Pre-condition: + Pre-condition: + + + + The scope is still not fully supported by the SQLite database. + The scope is still not fully supported by the SQLite database. + + + + Trigger name: + Trigger name: + + + + When: + When: + + + + List of columns for UPDATE OF action. + List of columns for UPDATE OF action. + + + + Scope: + Scope: + + + + Code: + Code: + + + + Trigger statements to be executed. + Trigger statements to be executed. + + + + DDL + DDL + + + + On view: + On view: + + + + Could not process trigger %1 correctly. Unable to open a trigger dialog. + Could not process trigger %1 correctly. Unable to open a trigger dialog. + + + + Enter a valid condition. + Enter a valid condition. + + + + Enter a valid trigger code. + Enter a valid trigger code. + + + + Error + trigger dialog + Error + + + + An error occurred while executing SQL statements: +%1 + An error occurred while executing SQL statements: +%1 + + + + VersionConvertSummaryDialog + + + Database version convert + Database version convert + + + + Following changes to the SQL statements will be made: + Following changes to the SQL statements will be made: + + + + Before + Before + + + + After + After + + + + ViewWindow + + + Query + Query + + + + View name: + View name: + + + + Output column names + Output column names + + + + + Data + Data + + + + Triggers + Triggers + + + + DDL + DDL + + + + + Could not restore window '%1', because no database or view was stored in session for this window. + Could not restore window '%1', because no database or view was stored in session for this window. + + + + Could not restore window '%1', because database %2 could not be resolved. + Could not restore window '%1', because database %2 could not be resolved. + + + + Could not restore window '%1', because database %2 could not be open. + Could not restore window '%1', because database %2 could not be open. + + + + Could not restore window '%1', because the view %2 doesn't exist in the database %3. + Could not restore window '%1', because the view %2 doesn't exist in the database %3. + + + + + New view %1 + New view %1 + + + + Database + Database + + + + Refresh the view + view window + Refresh the view + + + + Commit the view changes + view window + Commit the view changes + + + + Rollback the view changes + view window + Rollback the view changes + + + + Explicit column names + Explicit column names + + + + Generate output column names automatically basing on result columns of the view. + Generate output column names automatically basing on result columns of the view. + + + + Add column + view window + Add column + + + + Edit column + view window + Edit column + + + + Delete column + view window + Delete column + + + + Move column up + view window + Move column up + + + + Move column down + view window + Move column down + + + + Refresh trigger list + view window + Refresh trigger list + + + + Create new trigger + view window + Create new trigger + + + + Edit selected trigger + view window + Edit selected trigger + + + + Delete selected trigger + view window + Delete selected trigger + + + + View window "%1" has uncommitted structure modifications and data. + View window "%1" has uncommitted structure modifications and data. + + + + View window "%1" has uncommitted data. + View window "%1" has uncommitted data. + + + + View window "%1" has uncommitted structure modifications. + View window "%1" has uncommitted structure modifications. + + + + Could not load data for view %1. Error details: %2 + Could not load data for view %1. Error details: %2 + + + + Uncommitted changes + Uncommitted changes + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + + + + Go back to structure tab + Go back to structure tab + + + + Commit modifications and browse data. + Commit modifications and browse data. + + + + View '%1' was committed successfully. + View '%1' was committed successfully. + + + + Committed changes for view '%1' successfully. + Committed changes for view '%1' successfully. + + + + Committed changes for view '%1' (named before '%2') successfully. + Committed changes for view '%1' (named before '%2') successfully. + + + + Could not commit view changes. Error message: %1 + view window + Could not commit view changes. Error message: %1 + + + + Override columns + Override columns + + + + Currently defined columns will be overriden. Do you want to continue? + Currently defined columns will be overriden. Do you want to continue? + + + + Could not determinate columns returned from the view. The query is problably incomplete or contains errors. + Could not determinate columns returned from the view. The query is problably incomplete or contains errors. + + + + Name + view window triggers + Name + + + + Instead of + view window triggers + Instead of + + + + Condition + view window triggers + Condition + + + + Details + table window triggers + Details + + + + Could not process the %1 view correctly. Unable to open a view window. + Could not process the %1 view correctly. Unable to open a view window. + + + + Empty name + Empty name + + + + A blank name for the view is allowed in SQLite, but it is not recommended. +Are you sure you want to create a view with blank name? + A blank name for the view is allowed in SQLite, but it is not recommended. +Are you sure you want to create a view with blank name? + + + + The SELECT statement could not be parsed. Please correct the query and retry. +Details: %1 + The SELECT statement could not be parsed. Please correct the query and retry. +Details: %1 + + + + The view could not be modified due to internal SQLiteStudio error. Please report this! + The view could not be modified due to internal SQLiteStudio error. Please report this! + + + + The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. + The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. + + + + Following problems will take place while modifying the view. +Would you like to proceed? + view window + Following problems will take place while modifying the view. +Would you like to proceed? + + + + View modification + view window + View modification + + + + WidgetCover + + + Interrupt + Interrupt + + + diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_fi_FI.ts b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_fi_FI.ts new file mode 100644 index 0000000..9df74b6 --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_fi_FI.ts @@ -0,0 +1,7111 @@ + + + + + AboutDialog + + + About SQLiteStudio and licenses + About SQLiteStudio and licenses + + + + About + About + + + + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + + + + Licenses + Licenses + + + + Environment + Environment + + + + Icon directories + Icon directories + + + + Form directories + Form directories + + + + SQLite extension directories + SQLite extension directories + + + + Plugin directories + Plugin directories + + + + Configuration directory + Configuration directory + + + + Application directory + Application directory + + + + Qt version: + Qt version: + + + + SQLite 3 version: + SQLite 3 version: + + + + Portable distribution. + Portable distribution. + + + + MacOS X application bundle distribution. + MacOS X application bundle distribution. + + + + Operating system managed distribution. + Operating system managed distribution. + + + + <h3>Table of contents:</h3><ol>%2</ol> + <h3>Table of contents:</h3><ol>%2</ol> + + + + BindParamsDialog + + + Query parameters + Query parameters + + + + Please provide values for query parameters + Please provide values for query parameters + + + + CodeSnippetEditor + + + Filter snippets + Filter snippets + + + + + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + + + + + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + + + + Snippet name + Snippet name + + + + Code assistant shortcut + Code assistant shortcut + + + + Snippet code + Snippet code + + + + Code Snippets editor window has uncommitted modifications. + Code Snippets editor window has uncommitted modifications. + + + + Code Snippets editor + Code Snippets editor + + + + Commit all snippet changes + Commit all snippet changes + + + + Rollback all snippet changes + Rollback all snippet changes + + + + Create new snippet + Create new snippet + + + + Delete selected snippet + Delete selected snippet + + + + Move the snippet up + Move the snippet up + + + + Move the snippet down + Move the snippet down + + + + Code snippets manual + Code snippets manual + + + + Enter a non-empty, unique name of the snippet. + Enter a non-empty, unique name of the snippet. + + + + Enter a non-empty snippet content. + Enter a non-empty snippet content. + + + + This hotkey is not unique in context of a code assistant. + This hotkey is not unique in context of a code assistant. + + + + CollationsEditor + + + Filter collations + Filter collations + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Implementation code: + Implementation code: + + + + Collation name: + Collation name: + + + + Implementation language: + Implementation language: + + + + Collations editor + Collations editor + + + + Commit all collation changes + Commit all collation changes + + + + Rollback all collation changes + Rollback all collation changes + + + + Create new collation + Create new collation + + + + Delete selected collation + Delete selected collation + + + + Editing collations manual + Editing collations manual + + + + Enter a non-empty, unique name of the collation. + Enter a non-empty, unique name of the collation. + + + + Pick the implementation language. + Pick the implementation language. + + + + Enter a non-empty implementation code. + Enter a non-empty implementation code. + + + + Collations editor window has uncommitted modifications. + Collations editor window has uncommitted modifications. + + + + ColorButton + + + Pick a color + Pick a color + + + + ColumnCollatePanel + + + Collation name: + Collation name: + + + + Named constraint: + Named constraint: + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + Enter a collation name. + Enter a collation name. + + + + ColumnDefaultPanel + + + Default value: + Default value: + + + + Named constraint: + Named constraint: + + + + Enter a default value expression. + Enter a default value expression. + + + + Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. + Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. + + + + Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. + Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ColumnDialog + + + Column + Column + + + + Name and type + Name and type + + + + Scale + Scale + + + + Precision + Precision + + + + Data type: + Data type: + + + + Column name: + Column name: + + + + Size: + Size: + + + + Constraints + Constraints + + + + Generated value + Generated value + + + + Unique + Unique + + + + + + + + + + + Configure + Configure + + + + Foreign Key + Foreign Key + + + + Collate + Collate + + + + Not NULL + Not NULL + + + + Check condition + Check condition + + + + Primary Key + Primary Key + + + + Default + Default + + + + Advanced mode + Advanced mode + + + + Add constraint + column dialog + Add constraint + + + + Edit constraint + column dialog + Edit constraint + + + + + Delete constraint + column dialog + Delete constraint + + + + Move constraint up + column dialog + Move constraint up + + + + Move constraint down + column dialog + Move constraint down + + + + Add a primary key + column dialog + Add a primary key + + + + Add a foreign key + column dialog + Add a foreign key + + + + Add an unique constraint + column dialog + Add an unique constraint + + + + Add a check constraint + column dialog + Add a check constraint + + + + Add a not null constraint + column dialog + Add a not null constraint + + + + Add a collate constraint + column dialog + Add a collate constraint + + + + Add a generated value constraint + column dialog + Add a generated value constraint + + + + Add a default constraint + column dialog + Add a default constraint + + + + Are you sure you want to delete constraint '%1'? + column dialog + Are you sure you want to delete constraint '%1'? + + + + Correct the constraint's configuration. + Correct the constraint's configuration. + + + + Scale is not allowed for INTEGER PRIMARY KEY columns. + Scale is not allowed for INTEGER PRIMARY KEY columns. + + + + Precision cannot be defined without the scale. + Precision cannot be defined without the scale. + + + + Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. + Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. + + + + INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. + INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. + + + + Precision is not allowed for INTEGER PRIMARY KEY columns. + Precision is not allowed for INTEGER PRIMARY KEY columns. + + + + Could not match valid STRICT table datatype from declared type: %1. + Could not match valid STRICT table datatype from declared type: %1. + + + + ColumnDialogConstraintsModel + + + Type + column dialog constraints + Type + + + + Name + column dialog constraints + Name + + + + Details + column dialog constraints + Details + + + + ColumnForeignKeyPanel + + + Foreign table: + Foreign table: + + + + Foreign column: + Foreign column: + + + + Reactions + Reactions + + + + Deferred foreign key + Deferred foreign key + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + Pick the foreign table. + Pick the foreign table. + + + + Pick the foreign column. + Pick the foreign column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ColumnGeneratedPanel + + + Generating code: + Generating code: + + + + Explicit type: + Explicit type: + + + + Use "GENERATED ALWAYS" keywords + Use "GENERATED ALWAYS" keywords + + + + Named constraint: + Named constraint: + + + + Enter the column value generating expression. + Enter the column value generating expression. + + + + Invalid value generating expression: %1. + Invalid value generating expression: %1. + + + + Invalid value generating expression. + Invalid value generating expression. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ColumnPrimaryKeyPanel + + + Autoincrement + Autoincrement + + + + Sort order: + Sort order: + + + + Named constraint: + Named constraint: + + + + On conflict: + On conflict: + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + Descending order is not allowed with AUTOINCREMENT. + Descending order is not allowed with AUTOINCREMENT. + + + + ColumnUniqueAndNotNullPanel + + + Named constraint: + Named constraint: + + + + On conflict: + On conflict: + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + CompleterWindow + + + Column: %1 + completer statusbar + Column: %1 + + + + Table: %1 + completer statusbar + Table: %1 + + + + Index: %1 + completer statusbar + Index: %1 + + + + Trigger: %1 + completer statusbar + Trigger: %1 + + + + View: %1 + completer statusbar + View: %1 + + + + Database: %1 + completer statusbar + Database: %1 + + + + Keyword: %1 + completer statusbar + Keyword: %1 + + + + Function: %1 + completer statusbar + Function: %1 + + + + Operator: %1 + completer statusbar + Operator: %1 + + + + String + completer statusbar + String + + + + Number + completer statusbar + Number + + + + Binary data + completer statusbar + Binary data + + + + Collation: %1 + completer statusbar + Collation: %1 + + + + Pragma function: %1 + completer statusbar + Pragma function: %1 + + + + Insert a code snippet + Insert a code snippet + + + + ConfigDialog + + + + Configuration + Configuration + + + + Search + Search + + + + General + General + + + + Keyboard shortcuts + Keyboard shortcuts + + + + Look & feel + Look & feel + + + + Style + Style + + + + Fonts + Fonts + + + + Code colors + Code colors + + + + + Database list + Database list + + + + Code assistant + Code assistant + + + + Data browsing + Data browsing + + + + Data editors + Data editors + + + + Plugins + Plugins + + + + Code formatters + Code formatters + + + + If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. + If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. + + + + Sort table columns alphabetically + Sort table columns alphabetically + + + + Expand tables node when connected to a database + Expand tables node when connected to a database + + + + <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> + <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> + + + + Display additional labels on the list + Display additional labels on the list + + + + For regular tables labels will show number of columns, indexes and triggers for each of tables. + For regular tables labels will show number of columns, indexes and triggers for each of tables. + + + + Display labels for regular tables + Display labels for regular tables + + + + Virtual tables will be marked with a 'virtual' label. + Virtual tables will be marked with a 'virtual' label. + + + + Display labels for virtual tables + Display labels for virtual tables + + + + Expand views node when connected to a database + Expand views node when connected to a database + + + + If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) + If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) + + + + Sort objects (tables, indexes, triggers and views) alphabetically + Sort objects (tables, indexes, triggers and views) alphabetically + + + + Display system tables and indexes on the list + Display system tables and indexes on the list + + + + Database dialog window + Database dialog window + + + + <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> + <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> + + + + Do not mark database to be "permanent" by default + Do not mark database to be "permanent" by default + + + + <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> + <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> + + + + Try to bypass dialog completly when dropping database file onto the list + Try to bypass dialog completly when dropping database file onto the list + + + + Data browsing and editing + Data browsing and editing + + + + + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + + + + Number of memorized table populating configurations + Number of memorized table populating configurations + + + + Data column width + Data column width + + + + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + + + + Enlarge column when entering value longer than current width + Enlarge column when entering value longer than current width + + + + <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> + <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> + + + + Number of data rows per page: + Number of data rows per page: + + + + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> + + + + Show column and row details tooltip in data view + Show column and row details tooltip in data view + + + + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + + + + Keep NULL value when entering empty value + Keep NULL value when entering empty value + + + + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> + + + + Use DEFAULT value (if defined), when committing NULL value + Use DEFAULT value (if defined), when committing NULL value + + + + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + + + + Limit number of rows for in case of dozens of columns + Limit number of rows for in case of dozens of columns + + + + Inserting new row in data grid + Inserting new row in data grid + + + + Before currently selected row + Before currently selected row + + + + After currently selected row + After currently selected row + + + + At the end of data view + At the end of data view + + + + Table windows + Table windows + + + + <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> + <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> + + + + Open Table Windows with the data tab for start + Open Table Windows with the data tab for start + + + + <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> + <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> + + + + Place data tab as first tab in a Table Window + Place data tab as first tab in a Table Window + + + + View windows + View windows + + + + <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> + <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> + + + + Open View Windows with the data tab for start + Open View Windows with the data tab for start + + + + <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> + <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> + + + + Place data tab as first tab in a View Window + Place data tab as first tab in a View Window + + + + Data types + Data types + + + + Available editors: + Available editors: + + + + Editors selected for this data type: + Editors selected for this data type: + + + + Schema editing + Schema editing + + + + Number of DDL changes kept in history. + Number of DDL changes kept in history. + + + + DDL history size: + DDL history size: + + + + Don't show DDL preview dialog when committing schema changes + Don't show DDL preview dialog when committing schema changes + + + + SQL queries + SQL queries + + + + + Number of queries kept in the history. + Number of queries kept in the history. + + + + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> + + + + History size: + History size: + + + + + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> + + + + Execute only the query under the cursor + Execute only the query under the cursor + + + + Number of memorized query parameters + Number of memorized query parameters + + + + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + + + + Use scientific notation for real numbers in the grid view + Use scientific notation for real numbers in the grid view + + + + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + + + + Limit automatic data column width to (in pixels): + Limit automatic data column width to (in pixels): + + + + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + + + + Keep at least the width to show complete column name + Keep at least the width to show complete column name + + + + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + + + + Wrap lines in SQL editor + Wrap lines in SQL editor + + + + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + + + + Highlight current query + Highlight current query + + + + Updates + Updates + + + + Automatically check for updates at startup + Automatically check for updates at startup + + + + Session + Session + + + + Restore last session (active MDI windows) after startup + Restore last session (active MDI windows) after startup + + + + Allow multiple instances of the application at the same time + Allow multiple instances of the application at the same time + + + + Status Field + Status Field + + + + <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> + <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> + + + + Always open Status panel when new message is printed + Always open Status panel when new message is printed + + + + Code syntax colors + Code syntax colors + + + + Keyword foreground + Keyword foreground + + + + Regular foreground + Regular foreground + + + + String foreground + String foreground + + + + Comment foreground + Comment foreground + + + + Valid objects foreground + Valid objects foreground + + + + Current query background + Current query background + + + + Bind parameter foreground + Bind parameter foreground + + + + Current line background + Current line background + + + + Matched parenthesis background + Matched parenthesis background + + + + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + + + + Number foreground + Number foreground + + + + BLOB value foreground + BLOB value foreground + + + + Matched parenthesis foreground + Matched parenthesis foreground + + + + Reset to defaults + Reset to defaults + + + + Filter shortcuts by name or key combination + Filter shortcuts by name or key combination + + + + Action + Action + + + + Key combination + Key combination + + + + + Language + Language + + + + Changing language requires application restart to take effect. + Changing language requires application restart to take effect. + + + + Compact layout + Compact layout + + + + <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> + <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> + + + + Use compact layout + Use compact layout + + + + Main window dock areas + Main window dock areas + + + + Left and right areas occupy corners + Left and right areas occupy corners + + + + Top and bottom areas occupy corners + Top and bottom areas occupy corners + + + + Hide built-in plugins + Hide built-in plugins + + + + Current style: + Current style: + + + + Preview + Preview + + + + Enabled + Enabled + + + + Disabled + Disabled + + + + Active formatter plugin + Active formatter plugin + + + + SQL editor font + SQL editor font + + + + Database list font + Database list font + + + + Database list additional label font + Database list additional label font + + + + Data view font + Data view font + + + + Status field font + Status field font + + + + Code assistant settings + Code assistant settings + + + + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + + + + Automatically trigger the assistant after a dot is typed after an object name + Automatically trigger the assistant after a dot is typed after an object name + + + + Description: + plugin details + Description: + + + + Category: + plugin details + Category: + + + + Version: + plugin details + Version: + + + + Author: + plugin details + Author: + + + + Internal name: + plugin details + Internal name: + + + + Dependencies: + plugin details + Dependencies: + + + + Conflicts: + plugin details + Conflicts: + + + + Plugin details + Plugin details + + + + Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. + Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. + + + + %1 (built-in) + plugins manager in configuration dialog + %1 (built-in) + + + + Details + Details + + + + No plugins in this category. + No plugins in this category. + + + + Add new data type + Add new data type + + + + Rename selected data type + Rename selected data type + + + + Delete selected data type + Delete selected data type + + + + Help for configuring data type editors + Help for configuring data type editors + + + + Clear hotkey for this action + Clear hotkey for this action + + + + Restore original hotkey for this action + Restore original hotkey for this action + + + + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + + + + ConstraintCheckPanel + + + The condition + The condition + + + + Named constraint: + Named constraint: + + + + On conflict + On conflict + + + + Enter a valid condition. + Enter a valid condition. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ConstraintDialog + + + New constraint + constraint dialog + New constraint + + + + Create + constraint dialog + Create + + + + Edit constraint + dialog window + Edit constraint + + + + Apply + constraint dialog + Apply + + + + Primary key + table constraints + Primary key + + + + Foreign key + table constraints + Foreign key + + + + Unique + table constraints + Unique + + + + Not NULL + table constraints + Not NULL + + + + Check + table constraints + Check + + + + Generated + table constraints + Generated + + + + Collate + table constraints + Collate + + + + Default + table constraints + Default + + + + ConstraintTabModel + + + Table + table constraints + Table + + + + Column (%1) + table constraints + Column (%1) + + + + Scope + table constraints + Scope + + + + Type + table constraints + Type + + + + Details + table constraints + Details + + + + Name + table constraints + Name + + + + CssDebugDialog + + + SQLiteStudio CSS console + SQLiteStudio CSS console + + + + DataView + + + Filter data + data view + Filter data + + + + Grid view + Grid view + + + + Form view + Form view + + + + Refresh table data + data view + Refresh table data + + + + First page + data view + First page + + + + Previous page + data view + Previous page + + + + Next page + data view + Next page + + + + Last page + data view + Last page + + + + Commit changes for selected cells + data view + Commit changes for selected cells + + + + Rollback changes for selected cells + data view + Rollback changes for selected cells + + + + Show grid view of results + data view + Show grid view of results + + + + Show form view of results + data view + Show form view of results + + + + Filter by text (if contains) + data view + Filter by text (if contains) + + + + Filter strictly by text (if equals) + data view + Filter strictly by text (if equals) + + + + Tabs on top + data view + Tabs on top + + + + Tabs at bottom + data view + Tabs at bottom + + + + Place new rows above selected row + data view + Place new rows above selected row + + + + Place new rows below selected row + data view + Place new rows below selected row + + + + Place new rows at the end of the data view + data view + Place new rows at the end of the data view + + + + Total number of rows is being counted. +Browsing other pages will be possible after the row counting is done. + Total number of rows is being counted. +Browsing other pages will be possible after the row counting is done. + + + + Row: %1 + Row: %1 + + + + Filter + Filter + + + + Hit Enter key or press "Apply filter" button on toolbar to apply new value. + Hit Enter key or press "Apply filter" button on toolbar to apply new value. + + + + Filter by the Regular Expression + data view + Filter by the Regular Expression + + + + Filter by SQL expression + data view + Filter by SQL expression + + + + Show filter inputs per column + data view + Show filter inputs per column + + + + Apply filter + data view + Apply filter + + + + DbDialog + + + Database + Database + + + + Database type + Database type + + + + Database driver + Database driver + + + + + File + File + + + + Name (on the list) + Name (on the list) + + + + Options + Options + + + + <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> + aasfd + <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> + + + + Permanent (keep it in configuration) + Permanent (keep it in configuration) + + + + Test connection + Test connection + + + + Select new or existing file on local computer + Select new or existing file on local computer + + + + Browse + Browse + + + + Database type not selected. + Database type not selected. + + + + Database path not specified. + Database path not specified. + + + + Enter an unique database name. + Enter an unique database name. + + + + This name is already in use. Please enter unique name. + This name is already in use. Please enter unique name. + + + + <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> + <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> + + + + Enter a database file path. + Enter a database file path. + + + + This database is already on the list under name: %1 + This database is already on the list under name: %1 + + + + Select a database type. + Select a database type. + + + + DbObjectDialogs + + + Delete table + Delete table + + + + Are you sure you want to delete table %1? + Are you sure you want to delete table %1? + + + + Delete index + Delete index + + + + Are you sure you want to delete index %1? + Are you sure you want to delete index %1? + + + + Delete trigger + Delete trigger + + + + Are you sure you want to delete trigger %1? + Are you sure you want to delete trigger %1? + + + + Delete view + Delete view + + + + Are you sure you want to delete view %1? + Are you sure you want to delete view %1? + + + + + Error while dropping %1: %2 + Error while dropping %1: %2 + + + + Delete objects + Delete objects + + + + Are you sure you want to delete following objects: +%1 + Are you sure you want to delete following objects: +%1 + + + + Cannot start transaction. Details: %1 + Cannot start transaction. Details: %1 + + + + Cannot commit transaction. Details: %1 + Cannot commit transaction. Details: %1 + + + + DbTree + + + Databases + Databases + + + + Filter by name + Filter by name + + + + Copy + Copy + + + + Paste + Paste + + + + Select all + Select all + + + + Create a group + Create a group + + + + Delete the group + Delete the group + + + + Rename the group + Rename the group + + + + &Add a database + &Add a database + + + + &Edit the database + &Edit the database + + + + &Remove the database + &Remove the database + + + + &Connect to the database + &Connect to the database + + + + &Disconnect from the database + &Disconnect from the database + + + + Import + Import + + + + &Export the database + &Export the database + + + + Vac&uum + Vac&uum + + + + &Integrity check + &Integrity check + + + + Create a &table + Create a &table + + + + Edit the t&able + Edit the t&able + + + + Delete the ta&ble + Delete the ta&ble + + + + Export the table + Export the table + + + + Import into the table + Import into the table + + + + Populate table + Populate table + + + + Create similar table + Create similar table + + + + Reset autoincrement sequence + Reset autoincrement sequence + + + + Create an &index + Create an &index + + + + Edit the i&ndex + Edit the i&ndex + + + + Delete the in&dex + Delete the in&dex + + + + Create a trig&ger + Create a trig&ger + + + + Edit the trigg&er + Edit the trigg&er + + + + Delete the trigge&r + Delete the trigge&r + + + + Create a &view + Create a &view + + + + Edit the v&iew + Edit the v&iew + + + + Delete the vi&ew + Delete the vi&ew + + + + Add a column + Add a column + + + + Edit the column + Edit the column + + + + Delete the column + Delete the column + + + + Delete selected items + Delete selected items + + + + Clear filter + Clear filter + + + + &Refresh all database schemas + &Refresh all database schemas + + + + Re&fresh selected database schema + Re&fresh selected database schema + + + + + Erase table data + Erase table data + + + + Open file's directory + Open file's directory + + + + Execute SQL from file + Execute SQL from file + + + + Increase font size + database list + Increase font size + + + + Decrease font size + database list + Decrease font size + + + + + Database + Database + + + + Grouping + Grouping + + + + Generate query for table + Generate query for table + + + + + Create group + Create group + + + + Group name + Group name + + + + Entry with name %1 already exists in group %2. + Entry with name %1 already exists in group %2. + + + + Delete group + Delete group + + + + Are you sure you want to delete group %1? +All objects from this group will be moved to parent group. + Are you sure you want to delete group %1? +All objects from this group will be moved to parent group. + + + + Are you sure you want to remove database '%1' from the list? + Are you sure you want to remove database '%1' from the list? + + + + Are you sure you want to remove following databases from the list: +%1 + Are you sure you want to remove following databases from the list: +%1 + + + + Remove database + Remove database + + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Vacuum (%1) + Vacuum (%1) + + + + Integrity check (%1) + Integrity check (%1) + + + + Reset autoincrement + Reset autoincrement + + + + Are you sure you want to reset autoincrement value for table '%1'? + Are you sure you want to reset autoincrement value for table '%1'? + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + An error occurred while trying to reset autoincrement value for table '%1': %2 + + + + Autoincrement value for table '%1' has been reset successfully. + Autoincrement value for table '%1' has been reset successfully. + + + + Are you sure you want to delete all data from table(s): %1? + Are you sure you want to delete all data from table(s): %1? + + + + An error occurred while trying to delete data from table '%1': %2 + An error occurred while trying to delete data from table '%1': %2 + + + + All data has been deleted for table '%1'. + All data has been deleted for table '%1'. + + + + Following objects will be deleted: %1. + Following objects will be deleted: %1. + + + + Following databases will be removed from list: %1. + Following databases will be removed from list: %1. + + + + Remainig objects from deleted group will be moved in place where the group used to be. + Remainig objects from deleted group will be moved in place where the group used to be. + + + + %1<br><br>Are you sure you want to continue? + %1<br><br>Are you sure you want to continue? + + + + Delete objects + Delete objects + + + + DbTreeItemDelegate + + + error + dbtree labels + error + + + + (system table) + database tree label + (system table) + + + + (virtual) + virtual table label + (virtual) + + + + (system index) + database tree label + (system index) + + + + DbTreeModel + + + Database: %1 + dbtree tooltip + Database: %1 + + + + URI: + dbtree tooltip + URI: + + + + Version: + dbtree tooltip + Version: + + + + File size: + dbtree tooltip + File size: + + + + Encoding: + dbtree tooltip + Encoding: + + + + Error: + dbtree tooltip + Error: + + + + Table : %1 + dbtree tooltip + Table : %1 + + + + Columns (%1): + dbtree tooltip + Columns (%1): + + + + Indexes (%1): + dbtree tooltip + Indexes (%1): + + + + Triggers (%1): + dbtree tooltip + Triggers (%1): + + + + Copy + Copy + + + + Move + Move + + + + Include data + Include data + + + + Include indexes + Include indexes + + + + Include triggers + Include triggers + + + + Abort + Abort + + + + Could not add dropped database file '%1' automatically. Manual setup is necessary. + Could not add dropped database file '%1' automatically. Manual setup is necessary. + + + + Referenced tables + Referenced tables + + + + Do you want to include following referenced tables as well: +%1 + Do you want to include following referenced tables as well: +%1 + + + + Name conflict + Name conflict + + + + Following object already exists in the target database. +Please enter new, unique name, or press '%1' to abort the operation: + Following object already exists in the target database. +Please enter new, unique name, or press '%1' to abort the operation: + + + + SQL statements conversion + SQL statements conversion + + + + Following error occurred while converting SQL statements to the target SQLite version: + Following error occurred while converting SQL statements to the target SQLite version: + + + + Would you like to ignore those errors and proceed? + Would you like to ignore those errors and proceed? + + + + DdlHistoryWindow + + + Filter by database: + Filter by database: + + + + Clear entire history + Clear entire history + + + + -- Queries executed on database %1 (%2) +-- Date and time of execution: %3 +%4 + -- Queries executed on database %1 (%2) +-- Date and time of execution: %3 +%4 + + + + Clear history + Clear history + + + + Are you sure you want to erase entire DDL history? + Are you sure you want to erase entire DDL history? + + + + DDL history + DDL history + + + + DdlPreviewDialog + + + Queries to be executed + Queries to be executed + + + + Don't show again + Don't show again + + + + DebugConsole + + + SQLiteStudio Debug Console + SQLiteStudio Debug Console + + + + EditorWindow + + + SQL editor + SQL editor + + + + Query + Query + + + + History + History + + + + Results in the separate tab + Results in the separate tab + + + + Results below the query + Results below the query + + + + + SQL editor %1 + SQL editor %1 + + + + + Results + Results + + + + Execute query + Execute query + + + + Explain query + Explain query + + + + Clear execution history + sql editor + Clear execution history + + + + Export results + sql editor + Export results + + + + Create view from query + sql editor + Create view from query + + + + Previous database + Previous database + + + + Next database + Next database + + + + Show next tab + sql editor + Show next tab + + + + Show previous tab + sql editor + Show previous tab + + + + Focus results below + sql editor + Focus results below + + + + Focus SQL editor above + sql editor + Focus SQL editor above + + + + Delete selected SQL history entries + sql editor + Delete selected SQL history entries + + + + Execute single query under cursor + Execute single query under cursor + + + + Execute all queries in editor + Execute all queries in editor + + + + Active database (%1/%2) + Active database (%1/%2) + + + + Query finished in %1 second(s). Rows affected: %2 + Query finished in %1 second(s). Rows affected: %2 + + + + Query finished in %1 second(s). + Query finished in %1 second(s). + + + + Clear execution history + Clear execution history + + + + Are you sure you want to erase the entire SQL execution history? This cannot be undone. + Are you sure you want to erase the entire SQL execution history? This cannot be undone. + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + No database selected in the SQL editor. Cannot create a view for unknown database. + No database selected in the SQL editor. Cannot create a view for unknown database. + + + + Editor window "%1" has uncommitted data. + Editor window "%1" has uncommitted data. + + + + ErrorsConfirmDialog + + + Errors + Errors + + + + Following errors occured: + Following errors occured: + + + + Would you like to proceed? + Would you like to proceed? + + + + ExecFromFileDialog + + + Execute SQL from file + Execute SQL from file + + + + Input file + Input file + + + + Path to file + Path to file + + + + Browse for file + Browse for file + + + + Options + Options + + + + File encoding + File encoding + + + + Skip failing SQL statements + Skip failing SQL statements + + + + SQL scripts (*.sql);;All files (*) + SQL scripts (*.sql);;All files (*) + + + + Execute SQL file + Execute SQL file + + + + Please provide file to be executed. + Please provide file to be executed. + + + + Provided file does not exist or cannot be read. + Provided file does not exist or cannot be read. + + + + ExportDialog + + + Export + Export + + + + What do you want to export? + What do you want to export? + + + + A database + A database + + + + A single table + A single table + + + + Query results + Query results + + + + Table to export + Table to export + + + + Database + Database + + + + Table + Table + + + + Options + Options + + + + When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. + When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. + + + + Export table data + Export table data + + + + Export table indexes + Export table indexes + + + + Export table triggers + Export table triggers + + + + Note, that exporting table indexes and triggers may be unsupported by some output formats. + Note, that exporting table indexes and triggers may be unsupported by some output formats. + + + + Select database objects to export + Select database objects to export + + + + Export data from tables + Export data from tables + + + + Select all + Select all + + + + Deselect all + Deselect all + + + + + Database: + Database: + + + + Query to export results for + Query to export results for + + + + Query to be executed for results: + Query to be executed for results: + + + + Export format and options + Export format and options + + + + Export format + Export format + + + + Output + Output + + + + Exported file path + Exported file path + + + + Clipboard + Clipboard + + + + File + File + + + + Exported text encoding: + Exported text encoding: + + + + Export format options + Export format options + + + + Cancel + Cancel + + + + + + Select database to export. + Select database to export. + + + + Select table to export. + Select table to export. + + + + Enter valid query to export. + Enter valid query to export. + + + + Select at least one object to export. + Select at least one object to export. + + + + You must provide a file name to export to. + You must provide a file name to export to. + + + + Path you provided is an existing directory. You cannot overwrite it. + Path you provided is an existing directory. You cannot overwrite it. + + + + The directory '%1' does not exist. + The directory '%1' does not exist. + + + + The file '%1' exists and will be overwritten. + The file '%1' exists and will be overwritten. + + + + All files (*) + All files (*) + + + + Pick file to export to + Pick file to export to + + + + Internal error during export. This is a bug. Please report it. + Internal error during export. This is a bug. Please report it. + + + + FileExecErrorsDialog + + + Execution errors + Execution errors + + + + Following errors were encountered during execution of SQL statements from the file: + Following errors were encountered during execution of SQL statements from the file: + + + + SQL + SQL + + + + Error + Error + + + + Statements that were executed successfully were commited. + Statements that were executed successfully were commited. + + + + Statements that were executed successfully were rolled back. + Statements that were executed successfully were rolled back. + + + + FkComboBox + + + Cannot edit this cell. Details: %1 + Cannot edit this cell. Details: %1 + + + + FontEdit + + + Choose font + font configuration + Choose font + + + + Form + + + Active SQL formatter plugin + Active SQL formatter plugin + + + + FormView + + + Commit row + form view + Commit row + + + + Rollback row + form view + Rollback row + + + + First row + form view + First row + + + + Previous row + form view + Previous row + + + + Next row + form view + Next row + + + + Last row + form view + Last row + + + + Insert new row + form view + Insert new row + + + + Delete current row + form view + Delete current row + + + + FunctionsEditor + + + Filter functions + Filter functions + + + + Input arguments + Input arguments + + + + Undefined + Undefined + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Type: + Type: + + + + Function name: + Function name: + + + + Implementation language: + Implementation language: + + + + Deterministic + Deterministic + + + + Initialization code: + Initialization code: + + + + + Function implementation code: + Function implementation code: + + + + Final step implementation code: + Final step implementation code: + + + + SQL functions editor + SQL functions editor + + + + Commit all function changes + Commit all function changes + + + + Rollback all function changes + Rollback all function changes + + + + Create new function + Create new function + + + + Delete selected function + Delete selected function + + + + Custom SQL functions manual + Custom SQL functions manual + + + + Add function argument + Add function argument + + + + Rename function argument + Rename function argument + + + + Delete function argument + Delete function argument + + + + Move function argument up + Move function argument up + + + + Move function argument down + Move function argument down + + + + Scalar + Scalar + + + + Aggregate + Aggregate + + + + Enter a non-empty, unique name of the function. + Enter a non-empty, unique name of the function. + + + + Pick the implementation language. + Pick the implementation language. + + + + Per step code: + Per step code: + + + + Enter a non-empty implementation code. + Enter a non-empty implementation code. + + + + argument + new function argument name in function editor window + argument + + + + Functions editor window has uncommitted modifications. + Functions editor window has uncommitted modifications. + + + + ImportDialog + + + Import data + Import data + + + + Table to import to + Table to import to + + + + Table + Table + + + + Database + Database + + + + Data source to import from + Data source to import from + + + + Data source type + Data source type + + + + Options + Options + + + + Text encoding: + Text encoding: + + + + Input file: + Input file: + + + + <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> + <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> + + + + Ignore errors + Ignore errors + + + + Data source options + Data source options + + + + Cancel + Cancel + + + + If you type table name that doesn't exist, it will be created. + If you type table name that doesn't exist, it will be created. + + + + Enter the table name + Enter the table name + + + + Select import plugin. + Select import plugin. + + + + You must provide a file to import from. + You must provide a file to import from. + + + + The file '%1' does not exist. + The file '%1' does not exist. + + + + Path you provided is a directory. A regular file is required. + Path you provided is a directory. A regular file is required. + + + + Pick file to import from + Pick file to import from + + + + IndexDialog + + + + Index + Index + + + + Column + Column + + + + Sort + Sort + + + + Collation + Collation + + + + On table: + On table: + + + + Delete selected indexed expression + Delete selected indexed expression + + + + Moves selected index column up in the order, making it more significant in the index. + Moves selected index column up in the order, making it more significant in the index. + + + + Moves selected index column down in the order, making it less significant in the index. + Moves selected index column down in the order, making it less significant in the index. + + + + Partial index condition + Partial index condition + + + + Unique index + Unique index + + + + Index name: + Index name: + + + + Edit selected indexed expression + Edit selected indexed expression + + + + Add indexed expression + Add indexed expression + + + + DDL + DDL + + + + Tried to open index dialog for closed or inexisting database. + Tried to open index dialog for closed or inexisting database. + + + + Could not process index %1 correctly. Unable to open an index dialog. + Could not process index %1 correctly. Unable to open an index dialog. + + + + Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. + Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. + + + + Pick the table for the index. + Pick the table for the index. + + + + Select at least one column. + Select at least one column. + + + + Enter a valid condition. + Enter a valid condition. + + + + default + index dialog + default + + + + Sort order + table constraints + Sort order + + + + + Error + index dialog + Error + + + + Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? + Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? + + + + An error occurred while executing SQL statements: +%1 + An error occurred while executing SQL statements: +%1 + + + + IndexExprColumnDialog + + + Indexed expression + Indexed expression + + + + Expression to index + Expression to index + + + + This expression is already indexed by the index. + This expression is already indexed by the index. + + + + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. + + + + Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. + Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. + + + + It's forbidden to use 'SELECT' statements in indexed expressions. + It's forbidden to use 'SELECT' statements in indexed expressions. + + + + Enter an indexed expression. + Enter an indexed expression. + + + + Invalid expression. + Invalid expression. + + + + LanguageDialog + + + Language + Language + + + + Please choose language: + Please choose language: + + + + MainWindow + + + Database toolbar + Database toolbar + + + + Structure toolbar + Structure toolbar + + + + Tools + Tools + + + + Window list + Window list + + + + View toolbar + View toolbar + + + + Configuration widgets + Configuration widgets + + + + Syntax highlighting engines + Syntax highlighting engines + + + + Data editors + Data editors + + + + Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. + Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. + + + + Running in debug mode. Debug messages are printed to the standard output. + Running in debug mode. Debug messages are printed to the standard output. + + + + You need to restart application to make the language change take effect. + You need to restart application to make the language change take effect. + + + + Open SQL &editor + Open SQL &editor + + + + Open DDL &history + Open DDL &history + + + + Open SQL &functions editor + Open SQL &functions editor + + + + Open code &snippets editor + Open code &snippets editor + + + + Open &collations editor + Open &collations editor + + + + Open ex&tension manager + Open ex&tension manager + + + + &Import + &Import + + + + E&xport + E&xport + + + + Open confi&guration dialog + Open confi&guration dialog + + + + &Tile windows + &Tile windows + + + + Tile windows &horizontally + Tile windows &horizontally + + + + Tile windows &vertically + Tile windows &vertically + + + + &Cascade windows + &Cascade windows + + + + Next window + Next window + + + + Previous window + Previous window + + + + Hide status field + Hide status field + + + + Close &all windows + Close &all windows + + + + Re&store recently closed window + Re&store recently closed window + + + + Close current &window + Close current &window + + + + Close &other windows + Close &other windows + + + + Close windows on the &left + Close windows on the &left + + + + Close windows on the &right + Close windows on the &right + + + + Re&name selected window + Re&name selected window + + + + Open Debug Console + Open Debug Console + + + + Open CSS Console + Open CSS Console + + + + Report a &bug + Report a &bug + + + + D&onate + D&onate + + + + Propose a new &feature + Propose a new &feature + + + + &About + &About + + + + &Licenses + &Licenses + + + + Open home &page + Open home &page + + + + User &Manual + User &Manual + + + + SQLite &documentation + SQLite &documentation + + + + Bugs and feature &requests + Bugs and feature &requests + + + + Quit + Quit + + + + Check for &updates + Check for &updates + + + + &Database + menubar + &Database + + + + &Structure + menubar + &Structure + + + + &View + menubar + &View + + + + Window list + menubar view menu + Window list + + + + &Tools + menubar + &Tools + + + + &Help + &Help + + + + Could not set style: %1 + main window + Could not set style: %1 + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + Rename window + Rename window + + + + Enter new name for the window: + Enter new name for the window: + + + + New updates are available. <a href="%1">Click here for details</a>. + New updates are available. <a href="%1">Click here for details</a>. + + + + You're running the most recent version. No updates are available. + You're running the most recent version. No updates are available. + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + Database passed in command line parameters (%1) was already on the list under name: %2 + + + + Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 + Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + MdiWindow + + + Uncommitted changes + Uncommitted changes + + + + Close anyway + Close anyway + + + + Don't close + Don't close + + + + MultiEditor + + + Null value + multieditor + Null value + + + + Configure editors for this data type + Configure editors for this data type + + + + Open another tab + Open another tab + + + + Foreign Key + Foreign Key + + + + Data editor plugin '%1' not loaded, while it is defined for editing '%2' data type. + Data editor plugin '%1' not loaded, while it is defined for editing '%1' data type. {1'?} {2'?} {1' or 2'?} + + + + Deleted + multieditor + Deleted + + + + Read only + multieditor + Read only + + + + MultiEditorBoolPlugin + + + Boolean + Boolean + + + + MultiEditorDatePlugin + + + Date + Date + + + + MultiEditorDateTimePlugin + + + Date & time + Date & time + + + + MultiEditorHexPlugin + + + Hex + Hex + + + + MultiEditorNumericPlugin + + + Number + numeric multi editor tab name + Number + + + + MultiEditorText + + + Tab changes focus + Tab changes focus + + + + Cut + Cut + + + + Copy + Copy + + + + Paste + Paste + + + + Delete + Delete + + + + Undo + Undo + + + + Redo + Redo + + + + MultiEditorTextPlugin + + + Text + Text + + + + MultiEditorTimePlugin + + + Time + Time + + + + NewConstraintDialog + + + New constraint + New constraint + + + + + Primary Key + new constraint dialog + Primary Key + + + + + Foreign Key + new constraint dialog + Foreign Key + + + + + Unique + new constraint dialog + Unique + + + + + Check + new constraint dialog + Check + + + + Not NULL + new constraint dialog + Not NULL + + + + Collate + new constraint dialog + Collate + + + + Generated + new constraint dialog + Generated + + + + Default + new constraint dialog + Default + + + + NewVersionDialog + + + SQLiteStudio updates + SQLiteStudio updates + + + + New version is available! + New version is available! + + + + Download new version! + Download new version! + + + + New version package will be downloaded. It will be up to you to install it whenever you're ready. + New version package will be downloaded. It will be up to you to install it whenever you're ready. + + + + Open SQLiteStudio home page. + Open SQLiteStudio home page. + + + + Read release notes && download package yourself. + Read release notes && download package yourself. + + + + Just close this window. + Just close this window. + + + + Check for updates on startup + Check for updates on startup + + + + Not now. + Not now. + + + + PopulateConfigDialog + + + Populating configuration + Populating configuration + + + + Configuring <b>%1</b> for column <b>%2</b> + Configuring <b>%1</b> for column <b>%2</b> + + + + PopulateDialog + + + Populate table + Populate table + + + + Database + Database + + + + Table + Table + + + + Columns + Columns + + + + Number of rows to populate: + Number of rows to populate: + + + + Populate + populate dialog button + Populate + + + + Abort + Abort + + + + Configure + Configure + + + + Populating configuration for this column is invalid or incomplete. + Populating configuration for this column is invalid or incomplete. + + + + Select database with table to populate + Select database with table to populate + + + + Select table to populate + Select table to populate + + + + You have to select at least one column. + You have to select at least one column. + + + + QObject + + + Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). + Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). + + + + The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. + The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. + + + + Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. + Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. + + + + Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. + Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. + + + + Cannot edit results of query other than %1. + Cannot edit results of query other than %1. + + + + Cannot edit columns that are result of aggregated %1 statements. + Cannot edit columns that are result of aggregated %1 statements. + + + + Cannot edit columns that are result of %1 statement. + Cannot edit columns that are result of %1 statement. + + + + Cannot edit columns that are result of common table expression statement (%1). + Cannot edit columns that are result of common table expression statement (%1). + + + + Cannot edit table generated columns. + Cannot edit table generated columns. + + + + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). + + + + + + + on conflict: %1 + data view tooltip + on conflict: %1 + + + + references table %1, column %2 + data view tooltip + references table %1, column %2 + + + + condition: %1 + data view tooltip + condition: %1 + + + + collation name: %1 + data view tooltip + collation name: %1 + + + + Data grid view + Data grid view + + + + Edit current cell inline + Edit current cell inline + + + + Copy cell(s) contents to clipboard + Copy cell(s) contents to clipboard + + + + Copy cell(s) contents together with header to clipboard + Copy cell(s) contents together with header to clipboard + + + + Paste cell(s) contents from clipboard + Paste cell(s) contents from clipboard + + + + Set empty value to selected cell(s) + Set empty value to selected cell(s) + + + + Set NULL value to selected cell(s) + Set NULL value to selected cell(s) + + + + Commit changes to cell(s) contents + Commit changes to cell(s) contents + + + + Rollback changes to cell(s) contents + Rollback changes to cell(s) contents + + + + Delete selected data row + Delete selected data row + + + + Insert new data row + Insert new data row + + + + Open contents of selected cell in a separate editor + Open contents of selected cell in a separate editor + + + + Toggle the height adjustment of rows + Toggle the height adjustment of rows + + + + Increase font size + data view + Increase font size + + + + Decrease font size + data view + Decrease font size + + + + Total pages available: %1 + Total pages available: %1 + + + + Total rows loaded: %1 + Total rows loaded: %1 + + + + Data view (both grid and form) + Data view (both grid and form) + + + + Refresh data + Refresh data + + + + Switch to grid view of the data + Switch to grid view of the data + + + + Switch to form view of the data + Switch to form view of the data + + + + Database list + Database list + + + + Delete selected item + Delete selected item + + + + Clear filter contents + Clear filter contents + + + + Refresh schema + Refresh schema + + + + Refresh all schemas + Refresh all schemas + + + + Add database + Add database + + + + Select all items + Select all items + + + + Copy selected item(s) + Copy selected item(s) + + + + + + Paste from clipboard + Paste from clipboard + + + + Increase font size + database list + Increase font size + + + + Decrease font size + database list + Decrease font size + + + + Tables + Tables + + + + Indexes + Indexes + + + + Triggers + Triggers + + + + Views + Views + + + + Columns + Columns + + + + Data form view + Data form view + + + + Commit changes for current row + Commit changes for current row + + + + Rollback changes for current row + Rollback changes for current row + + + + Go to first row on current page + Go to first row on current page + + + + Go to next row + Go to next row + + + + Go to previous row + Go to previous row + + + + Go to last row on current page + Go to last row on current page + + + + Insert new row + Insert new row + + + + Delete current row + Delete current row + + + + Main window + Main window + + + + Open SQL editor + Open SQL editor + + + + Open DDL history window + Open DDL history window + + + + Open snippets editor window + Open snippets editor window + + + + Open function editor window + Open function editor window + + + + Open collation editor window + Open collation editor window + + + + Open extension manager window + Open extension manager window + + + + Previous window + Previous window + + + + Next window + Next window + + + + Hide status area + Hide status area + + + + Open user manual + Open user manual + + + + Open configuration dialog + Open configuration dialog + + + + Open Debug Console + Open Debug Console + + + + Open CSS Console + Open CSS Console + + + + Open the About dialog + Open the About dialog + + + + Quit the application + Quit the application + + + + Cell text value editor + Cell text value editor + + + + + Cut selected text + Cut selected text + + + + + Copy selected text + Copy selected text + + + + + Delete selected text + Delete selected text + + + + + Undo + Undo + + + + + Redo + Redo + + + + SQL editor input field + SQL editor input field + + + + Select whole editor contents + Select whole editor contents + + + + Save contents into a file + Save contents into a file + + + + Load contents from a file + Load contents from a file + + + + Find in text + Find in text + + + + Find next + Find next + + + + Find previous + Find previous + + + + Replace in text + Replace in text + + + + Delete current line + Delete current line + + + + Request code assistant + Request code assistant + + + + Format contents + Format contents + + + + Move selected block of text one line down + Move selected block of text one line down + + + + Move selected block of text one line up + Move selected block of text one line up + + + + Copy selected block of text and paste it a line below + Copy selected block of text and paste it a line below + + + + Copy selected block of text and paste it a line above + Copy selected block of text and paste it a line above + + + + Toggle comment + Toggle comment + + + + Increase font size + sql editor + Increase font size + + + + Decrease font size + sql editor + Decrease font size + + + + All SQLite databases + All SQLite databases + + + + All files + All files + + + + Select database file + Select database file + + + + Select + Select + + + + File type + File type + + + + SQL editor window + SQL editor window + + + + Execute query + Execute query + + + + Execute single query under cursor + Execute single query under cursor + + + + Execute all queries in editor + Execute all queries in editor + + + + Execute "%1" query + Execute "%1" query + + + + Switch current working database to previous on the list + Switch current working database to previous on the list + + + + Switch current working database to next on the list + Switch current working database to next on the list + + + + Go to next editor tab + Go to next editor tab + + + + Go to previous editor tab + Go to previous editor tab + + + + Move keyboard input focus to the results view below + Move keyboard input focus to the results view below + + + + Move keyboard input focus to the SQL editor above + Move keyboard input focus to the SQL editor above + + + + Delete selected SQL history entries + Delete selected SQL history entries + + + + Table window + Table window + + + + Commit the table structure + Commit the table structure + + + + Rollback pending changes in the table structure + Rollback pending changes in the table structure + + + + Refresh table structure + Refresh table structure + + + + Add new column + Add new column + + + + Edit selected column + Edit selected column + + + + Delete selected column + Delete selected column + + + + Export table data + Export table data + + + + Import data to the table + Import data to the table + + + + Add new table constraint + Add new table constraint + + + + Edit selected table constraint + Edit selected table constraint + + + + Delete selected table constraint + Delete selected table constraint + + + + Refresh table index list + Refresh table index list + + + + Add new index + Add new index + + + + Edit selected index + Edit selected index + + + + Delete selected index + Delete selected index + + + + Refresh table trigger list + Refresh table trigger list + + + + + Add new trigger + Add new trigger + + + + + Edit selected trigger + Edit selected trigger + + + + + Delete selected trigger + Delete selected trigger + + + + + Go to next tab + Go to next tab + + + + + Go to previous tab + Go to previous tab + + + + A view window + A view window + + + + Commit the view's query + Commit the view's query + + + + Rollback pending changes in the view's query + Rollback pending changes in the view's query + + + + Refresh view trigger list + Refresh view trigger list + + + + Execute the view's query + Execute the view's query + + + + A code snippets editor window + A code snippets editor window + + + + + + + Commit the pending changes + Commit the pending changes + + + + + + + Rollback the pending changes + Rollback the pending changes + + + + A collation editor window + A collation editor window + + + + A function editor window + A function editor window + + + + A SQLite extension editor window + A SQLite extension editor window + + + + QuitConfirmDialog + + + Uncommitted changes + Uncommitted changes + + + + Are you sure you want to quit the application? + +Following items are pending: + Are you sure you want to quit the application? + +Following items are pending: + + + + SearchTextDialog + + + Find or replace + Find or replace + + + + Find: + Find: + + + + Case sensitive + Case sensitive + + + + Search backwards + Search backwards + + + + Regular expression matching + Regular expression matching + + + + Replace && +find next + Replace && +find next + + + + Replace with: + Replace with: + + + + Replace all + Replace all + + + + Find + Find + + + + SortDialog + + + Sort by columns + Sort by columns + + + + + Column + Column + + + + + Order + Order + + + + Sort by: %1 + Sort by: %1 + + + + Move column up + Move column up + + + + Move column down + Move column down + + + + SqlEditor + + + Wrap words + sql editor + Wrap words + + + + Cut + sql editor + Cut + + + + Copy + sql editor + Copy + + + + Paste + sql editor + Paste + + + + Delete + sql editor + Delete + + + + Select all + sql editor + Select all + + + + Undo + sql editor + Undo + + + + Redo + sql editor + Redo + + + + Complete + sql editor + Complete + + + + Format SQL + sql editor + Format SQL + + + + Save SQL to file + sql editor + Save SQL to file + + + + Select file to save SQL + sql editor + Select file to save SQL + + + + Load SQL from file + sql editor + Load SQL from file + + + + Delete line + sql editor + Delete line + + + + Move block down + sql editor + Move block down + + + + Move block up + sql editor + Move block up + + + + Copy block down + sql editor + Copy block down + + + + Copy up down + sql editor + Copy up down + + + + Find + sql editor + Find + + + + Find next + sql editor + Find next + + + + Find previous + sql editor + Find previous + + + + Replace + sql editor + Replace + + + + Toggle comment + sql editor + Toggle comment + + + + Increase font size + sql editor + Increase font size + + + + Decrease font size + sql editor + Decrease font size + + + + Could not open file '%1' for writing: %2 + Could not open file '%1' for writing: %2 + + + + Saved SQL contents to file: %1 + Saved SQL contents to file: %1 + + + + Syntax completion can be used only when a valid database is set for the SQL editor. + Syntax completion can be used only when a valid database is set for the SQL editor. + + + + Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. + Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. + + + + Save to file + Save to file + + + + SQL scripts (*.sql);;All files (*) + SQL scripts (*.sql);;All files (*) + + + + Open file + Open file + + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Reached the end of document. Hit the find again to restart the search. + Reached the end of document. Hit the find again to restart the search. + + + + SqlQueryItem + + + Committing error: + data view tooltip + Committing error: + + + + Column: + data view tooltip + Column: + + + + Data type: + data view + Data type: + + + + Table: + data view tooltip + Table: + + + + Constraints: + data view tooltip + Constraints: + + + + SqlQueryItemDelegate + + + + + + Cannot edit this cell. Details: %1 + Cannot edit this cell. Details: %1 + + + + The row is marked for deletion. + The row is marked for deletion. + + + + + Structure of this table has changed since last data was loaded. Reload the data to proceed. + Structure of this table has changed since last data was loaded. Reload the data to proceed. + + + + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). + + + + Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. + Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. + + + + SqlQueryModel + + + + Only one query can be executed simultaneously. + Only one query can be executed simultaneously. + + + + Cannot execute query on undefined or invalid database. + Cannot execute query on undefined or invalid database. + + + + Cannot execute empty query. + Cannot execute empty query. + + + + Uncommitted data + Uncommitted data + + + + There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. + There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. + + + + Cannot commit the data for a cell that refers to the already closed database. + Cannot commit the data for a cell that refers to the already closed database. + + + + Could not begin transaction on the database. Details: %1 + Could not begin transaction on the database. Details: %1 + + + + An error occurred while committing the transaction: %1 + An error occurred while committing the transaction: %1 + + + + An error occurred while rolling back the transaction: %1 + An error occurred while rolling back the transaction: %1 + + + + Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. + Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. + + + + An error occurred while committing the data: %1 + An error occurred while committing the data: %1 + + + + Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. + Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. + + + + + Error while executing SQL query on database '%1': %2 + Error while executing SQL query on database '%1': %2 + + + + Error while loading query results: %1 + Error while loading query results: %1 + + + + Insert multiple rows + Insert multiple rows + + + + Number of rows to insert: + Number of rows to insert: + + + + Delete rows + Delete rows + + + + You're about to delete newly inserted rows that are not committed yet. Row numbers: %1 +Such deletion will be permanent. Are you sure you want to delete them? + You're about to delete newly inserted rows that are not committed yet. Row numbers: %1 +Such deletion will be permanent. Are you sure you want to delete them? + + + + SqlQueryView + + + Go to referenced row in... + Go to referenced row in... + + + + Copy + Copy + + + + Copy with headers + Copy with headers + + + + Copy as... + Copy as... + + + + Paste + Paste + + + + Paste as... + Paste as... + + + + Set NULL values + Set NULL values + + + + Erase values + Erase values + + + + Commit + Commit + + + + Rollback + Rollback + + + + Commit selected cells + Commit selected cells + + + + Rollback selected cells + Rollback selected cells + + + + Edit current cell inline + Edit current cell inline + + + + Define columns to sort by + Define columns to sort by + + + + Remove custom sorting + Remove custom sorting + + + + Insert row + Insert row + + + + Insert multiple rows + Insert multiple rows + + + + Delete selected row + Delete selected row + + + + Adjust height of rows + Adjust height of rows + + + + Increase font size + data view + Increase font size + + + + Decrease font size + data view + Decrease font size + + + + Invert selection + data view + Invert selection + + + + Edit value in editor + Edit value in editor + + + + Show value in a viewer + Show value in a viewer + + + + Generate query for selected cells + Generate query for selected cells + + + + No items selected to paste clipboard contents to. + No items selected to paste clipboard contents to. + + + + Cannot paste data. Details: %1 + Cannot paste data. Details: %1 + + + + Structure of at least one table used has changed since last data was loaded. Reload the data to proceed. + Structure of at least one table used has changed since last data was loaded. Reload the data to proceed. + + + + Cannot paste to a cell. Details: %1 + Cannot paste to a cell. Details: %1 + + + + The row is marked for deletion. + The row is marked for deletion. + + + + Cannot paste to column %1. Details: %2 + Cannot paste to column %1. Details: %2 + + + + Go to referenced row in table '%1' + Go to referenced row in table '%1' + + + + table '%1' + table '%1' + + + + Referenced row (%1) + Referenced row (%1) + + + + Trim pasted text? + Trim pasted text? + + + + The pasted text contains leading or trailing white space. Trim it automatically? + The pasted text contains leading or trailing white space. Trim it automatically? + + + + Paste "NULL" as null value? + Paste "NULL" as null value? + + + + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + + + + Edit value + Edit value + + + + SqlTableModel + + + Error while committing new row: %1 + Error while committing new row: %1 + + + + Error while deleting row from table %1: %2 + Error while deleting row from table %1: %2 + + + + SqliteExtensionEditor + + + Filter extensions + Filter extensions + + + + Leave empty to use default function + Leave empty to use default function + + + + Extension file + Extension file + + + + Initialization function + Initialization function + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Extension manager window has uncommitted modifications. + Extension manager window has uncommitted modifications. + + + + Extension manager + Extension manager + + + + Commit all extension changes + Commit all extension changes + + + + Rollback all extension changes + Rollback all extension changes + + + + Add new extension + Add new extension + + + + Remove selected extension + Remove selected extension + + + + Editing extensions manual + Editing extensions manual + + + + File with given path does not exist or is not readable. + File with given path does not exist or is not readable. + + + + Unable to load extension: %1 + Unable to load extension: %1 + + + + Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. + Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. + + + + Dynamic link libraries (*.dll);;All files (*) + Dynamic link libraries (*.dll);;All files (*) + + + + Shared objects (*.so);;All files (*) + Shared objects (*.so);;All files (*) + + + + Dynamic libraries (*.dylib);;All files (*) + Dynamic libraries (*.dylib);;All files (*) + + + + All files (*) + All files (*) + + + + Open file + Open file + + + + StatusField + + + Status + Status + + + + Copy + Copy + + + + Clear + Clear + + + + TableConstraintsModel + + + Type + table constraints + Type + + + + Details + table constraints + Details + + + + Name + table constraints + Name + + + + TableForeignKeyPanel + + + Foreign table: + Foreign table: + + + + Columns + Columns + + + + Local column + Local column + + + + Foreign column + Foreign column + + + + Reactions + Reactions + + + + Deferred foreign key + Deferred foreign key + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + Pick the foreign column. + Pick the foreign column. + + + + Pick the foreign table. + Pick the foreign table. + + + + Select at least one foreign column. + Select at least one foreign column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + Foreign column + table constraints + Foreign column + + + + TablePrimaryKeyAndUniquePanel + + + Columns + Columns + + + + Column + Column + + + + Collation + Collation + + + + Sort + Sort + + + + Valid only for a single column with INTEGER data type + Valid only for a single column with INTEGER data type + + + + Autoincrement + Autoincrement + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + On conflict + On conflict + + + + Collate + table constraints + Collate + + + + Sort order + table constraints + Sort order + + + + Select at least one column. + Select at least one column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + TableStructureModel + + + Name + table structure columns + Name + + + + Data type + table structure columns + Data type + + + + Primary +Key + table structure columns + Primary +Key + + + + Foreign +Key + table structure columns + Foreign +Key + + + + Unique + table structure columns + Unique + + + + Check + table structure columns + Check + + + + Not +NULL + table structure columns + Not +NULL + + + + Collate + table structure columns + Collate + + + + Generated + table structure columns + Generated + + + + Default value + table structure columns + Default value + + + + TableWindow + + + Structure + Structure + + + + Table name: + Table name: + + + + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + + + + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + + + + + Data + Data + + + + Constraints + Constraints + + + + Indexes + Indexes + + + + Triggers + Triggers + + + + DDL + DDL + + + + Export table + table window + Export table + + + + Import data to table + table window + Import data to table + + + + Populate table + table window + Populate table + + + + Refresh structure + table window + Refresh structure + + + + Commit structure changes + table window + Commit structure changes + + + + Rollback structure changes + table window + Rollback structure changes + + + + Add column + table window + Add column + + + + Edit column + table window + Edit column + + + + + Delete column + table window + Delete column + + + + Move column up + table window + Move column up + + + + Move column down + table window + Move column down + + + + Create similar table + table window + Create similar table + + + + Reset autoincrement value + table window + Reset autoincrement value + + + + Add table constraint + table window + Add table constraint + + + + Edit table constraint + table window + Edit table constraint + + + + Delete table constraint + table window + Delete table constraint + + + + Move table constraint up + table window + Move table constraint up + + + + Move table constraint down + table window + Move table constraint down + + + + Add table primary key + table window + Add table primary key + + + + Add table foreign key + table window + Add table foreign key + + + + Add table unique constraint + table window + Add table unique constraint + + + + Add table check constraint + table window + Add table check constraint + + + + Refresh index list + table window + Refresh index list + + + + + Create index + table window + Create index + + + + Edit index + table window + Edit index + + + + Delete index + table window + Delete index + + + + Refresh trigger list + table window + Refresh trigger list + + + + + Create trigger + table window + Create trigger + + + + Edit trigger + table window + Edit trigger + + + + Delete trigger + table window + Delete trigger + + + + Are you sure you want to delete column '%1'? + table window + Are you sure you want to delete column '%1'? + + + + Following problems will take place while modifying the table. +Would you like to proceed? + table window + Following problems will take place while modifying the table. +Would you like to proceed? + + + + Table modification + table window + Table modification + + + + Could not load data for table %1. Error details: %2 + Could not load data for table %1. Error details: %2 + + + + Could not process the %1 table correctly. Unable to open a table window. + Could not process the %1 table correctly. Unable to open a table window. + + + + Database + Database + + + + Could not restore window %1, because no database or table was stored in session for this window. + Could not restore window %1, because no database or table was stored in session for this window. + + + + Could not restore window '%1', because no database or table was stored in session for this window. + Could not restore window '%1', because no database or table was stored in session for this window. + + + + Could not restore window '%1', because database %2 could not be resolved. + Could not restore window '%1', because database %2 could not be resolved. + + + + Could not restore window '%1', because the table %2 doesn't exist in the database %3. + Could not restore window '%1', because the table %2 doesn't exist in the database %3. + + + + + New table %1 + New table %1 + + + + Committed changes for table '%1' successfully. + Committed changes for table '%1' successfully. + + + + Committed changes for table '%1' (named before '%2') successfully. + Committed changes for table '%1' (named before '%2') successfully. + + + + Could not commit table structure. Error message: %1 + table window + Could not commit table structure. Error message: %1 + + + + Reset autoincrement + Reset autoincrement + + + + Are you sure you want to reset autoincrement value for table '%1'? + Are you sure you want to reset autoincrement value for table '%1'? + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + An error occurred while trying to reset autoincrement value for table '%1': %2 + + + + Autoincrement value for table '%1' has been reset successfully. + Autoincrement value for table '%1' has been reset successfully. + + + + Empty name + Empty name + + + + A blank name for the table is allowed in SQLite, but it is not recommended. +Are you sure you want to create a table with blank name? + A blank name for the table is allowed in SQLite, but it is not recommended. +Are you sure you want to create a table with blank name? + + + + Cannot create a table without at least one column. + Cannot create a table without at least one column. + + + + Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. + Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. + + + + Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. + Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. + + + + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 + + + + Are you sure you want to delete table constraint '%1'? + table window + Are you sure you want to delete table constraint '%1'? + + + + Delete constraint + table window + Delete constraint + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + Uncommitted changes + Uncommitted changes + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + + + + Go back to structure tab + Go back to structure tab + + + + Commit modifications and browse data. + Commit modifications and browse data. + + + + Name + table window indexes + Name + + + + Unique + table window indexes + Unique + + + + Columns + table window indexes + Columns + + + + Partial index condition + table window indexes + Partial index condition + + + + Name + table window triggers + Name + + + + Event + table window triggers + Event + + + + Condition + table window triggers + Condition + + + + Details + table window triggers + Details + + + + Table window "%1" has uncommitted structure modifications and data. + Table window "%1" has uncommitted structure modifications and data. + + + + Table window "%1" has uncommitted data. + Table window "%1" has uncommitted data. + + + + Table window "%1" has uncommitted structure modifications. + Table window "%1" has uncommitted structure modifications. + + + + TriggerColumnsDialog + + + Trigger columns + Trigger columns + + + + Triggering columns: + Triggering columns: + + + + Select all + Select all + + + + Deselect all + Deselect all + + + + TriggerDialog + + + + Trigger + Trigger + + + + On table: + On table: + + + + Action: + Action: + + + + + <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> + <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> + + + + Pre-condition: + Pre-condition: + + + + The scope is still not fully supported by the SQLite database. + The scope is still not fully supported by the SQLite database. + + + + Trigger name: + Trigger name: + + + + When: + When: + + + + List of columns for UPDATE OF action. + List of columns for UPDATE OF action. + + + + Scope: + Scope: + + + + Code: + Code: + + + + Trigger statements to be executed. + Trigger statements to be executed. + + + + DDL + DDL + + + + On view: + On view: + + + + Could not process trigger %1 correctly. Unable to open a trigger dialog. + Could not process trigger %1 correctly. Unable to open a trigger dialog. + + + + Enter a valid condition. + Enter a valid condition. + + + + Enter a valid trigger code. + Enter a valid trigger code. + + + + Error + trigger dialog + Error + + + + An error occurred while executing SQL statements: +%1 + An error occurred while executing SQL statements: +%1 + + + + VersionConvertSummaryDialog + + + Database version convert + Database version convert + + + + Following changes to the SQL statements will be made: + Following changes to the SQL statements will be made: + + + + Before + Before + + + + After + After + + + + ViewWindow + + + Query + Query + + + + View name: + View name: + + + + Output column names + Output column names + + + + + Data + Data + + + + Triggers + Triggers + + + + DDL + DDL + + + + + Could not restore window '%1', because no database or view was stored in session for this window. + Could not restore window '%1', because no database or view was stored in session for this window. + + + + Could not restore window '%1', because database %2 could not be resolved. + Could not restore window '%1', because database %2 could not be resolved. + + + + Could not restore window '%1', because database %2 could not be open. + Could not restore window '%1', because database %2 could not be open. + + + + Could not restore window '%1', because the view %2 doesn't exist in the database %3. + Could not restore window '%1', because the view %2 doesn't exist in the database %3. + + + + + New view %1 + New view %1 + + + + Database + Database + + + + Refresh the view + view window + Refresh the view + + + + Commit the view changes + view window + Commit the view changes + + + + Rollback the view changes + view window + Rollback the view changes + + + + Explicit column names + Explicit column names + + + + Generate output column names automatically basing on result columns of the view. + Generate output column names automatically basing on result columns of the view. + + + + Add column + view window + Add column + + + + Edit column + view window + Edit column + + + + Delete column + view window + Delete column + + + + Move column up + view window + Move column up + + + + Move column down + view window + Move column down + + + + Refresh trigger list + view window + Refresh trigger list + + + + Create new trigger + view window + Create new trigger + + + + Edit selected trigger + view window + Edit selected trigger + + + + Delete selected trigger + view window + Delete selected trigger + + + + View window "%1" has uncommitted structure modifications and data. + View window "%1" has uncommitted structure modifications and data. + + + + View window "%1" has uncommitted data. + View window "%1" has uncommitted data. + + + + View window "%1" has uncommitted structure modifications. + View window "%1" has uncommitted structure modifications. + + + + Could not load data for view %1. Error details: %2 + Could not load data for view %1. Error details: %2 + + + + Uncommitted changes + Uncommitted changes + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + + + + Go back to structure tab + Go back to structure tab + + + + Commit modifications and browse data. + Commit modifications and browse data. + + + + View '%1' was committed successfully. + View '%1' was committed successfully. + + + + Committed changes for view '%1' successfully. + Committed changes for view '%1' successfully. + + + + Committed changes for view '%1' (named before '%2') successfully. + Committed changes for view '%1' (named before '%2') successfully. + + + + Could not commit view changes. Error message: %1 + view window + Could not commit view changes. Error message: %1 + + + + Override columns + Override columns + + + + Currently defined columns will be overriden. Do you want to continue? + Currently defined columns will be overriden. Do you want to continue? + + + + Could not determinate columns returned from the view. The query is problably incomplete or contains errors. + Could not determinate columns returned from the view. The query is problably incomplete or contains errors. + + + + Name + view window triggers + Name + + + + Instead of + view window triggers + Instead of + + + + Condition + view window triggers + Condition + + + + Details + table window triggers + Details + + + + Could not process the %1 view correctly. Unable to open a view window. + Could not process the %1 view correctly. Unable to open a view window. + + + + Empty name + Empty name + + + + A blank name for the view is allowed in SQLite, but it is not recommended. +Are you sure you want to create a view with blank name? + A blank name for the view is allowed in SQLite, but it is not recommended. +Are you sure you want to create a view with blank name? + + + + The SELECT statement could not be parsed. Please correct the query and retry. +Details: %1 + The SELECT statement could not be parsed. Please correct the query and retry. +Details: %1 + + + + The view could not be modified due to internal SQLiteStudio error. Please report this! + The view could not be modified due to internal SQLiteStudio error. Please report this! + + + + The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. + The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. + + + + Following problems will take place while modifying the view. +Would you like to proceed? + view window + Following problems will take place while modifying the view. +Would you like to proceed? + + + + View modification + view window + View modification + + + + WidgetCover + + + Interrupt + Interrupt + + + diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_fr.qm b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_fr.qm deleted file mode 100644 index 0f02e29..0000000 Binary files a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_fr.qm and /dev/null differ diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_fr.ts b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_fr.ts deleted file mode 100644 index aec2cac..0000000 --- a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_fr.ts +++ /dev/null @@ -1,7133 +0,0 @@ - - - - - AboutDialog - - - About SQLiteStudio and licenses - À propos de SQLiteStudio et des licences - - - - About - À propos de… - - - <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="http://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">http://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="http://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">http://salsoft.com.pl</span></a>)<br/></p></body></html> - <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Libre, open-source, cross-platform SQLite database manager.<br/><a href="http://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">http://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Auteur et maintenance:<br/>SalSoft (<a href="http://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">http://salsoft.com.pl</span></a>)<br/></p></body></html> - - - - <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> - - - - - Licenses - Licences - - - - Environment - Environnement - - - - Icon directories - Répertoires des images - - - - Form directories - Répertoires des formulaires - - - - Plugin directories - Répertoires des plugins - - - - Application directory - Répertoire de l’application - - - - SQLite 3 version: - Version de SQLite 3 : - - - SQLite 3 version : - Version SQLite : - - - - Configuration directory - Répertoire de configuration - - - - Qt version: - Version Qt : - - - - Portable distribution. - Version portable. - - - - MacOS X application boundle distribution. - MacOS X application boundle distribution - - - - Operating system managed distribution. - Distribution gérée par le système d'exploitation. - - - - Copy - Copie - - - - <h3>Table of contents:</h3><ol>%2</ol> - <h3>Table des matières : </h3><ol>%2</ol> - - - - BindParamsDialog - - - Query parameters - - - - - Please provide values for query parameters - - - - - BugDialog - - Bugs and ideas - Bugs et idées - - - Reporter - Rapport - - - E-mail address - Adresse électronique - - - Log in - S’identifier - - - Short description - Description brève - - - Detailed description - Description détaillée - - - Show more details - Montrer plus de détails - - - SQLiteStudio version - Version de SQLiteStudio - - - Operating system - Système d’exploitation - - - Loaded plugins - Plugins chargés - - - Send - Envoyer - - - You can see all your reported bugs and ideas by selecting menu '%1' and then '%2'. - Vous pouvez voir tous bugs et idées que vous avez rapportées en sélectionnant le menu « %1 » puis « %2 ». - - - A bug report sent successfully. - Rapport de bogue envoyé avec succès - - - An error occurred while sending a bug report: %1 -%2 - Une erreur est survenue lors de l’envoi du rapport de bogue : %1 -%2 - - - You can retry sending. The contents will be restored when you open a report dialog after an error like this. - Vous pouvez essayer à nouveau. Le contenu sera restauré lorsque vous ouvrirez le dialogue du rapport après une telle erreur. - - - An idea proposal sent successfully. - L’idée proposée à été envoyée avec succès. - - - An error occurred while sending an idea proposal: %1 -%2 - Une erreeur est survenu lors de l’envoi de l’idée proposée : %1 %2 - - - A bug report - Rapport de bug - - - Describe problem in few words - Décrivez le problème en queques mots - - - Describe problem and how to reproduce it - Décrivez le problème et comment le reproduire - - - A new feature idea - Une nouvelle idée de fonctionalité - - - A title for your idea - Un titre pour votre idée - - - Describe your idea in more details - Décrivez votre idée avec plus de détails - - - Reporting as an unregistered user, using e-mail address. - Envoyer le rapport comme nouvel utilisateur, avec une adresse mail. - - - Reporting as a registered user. - Envoyer le rapport comme utilisateur enregistré. - - - Log out - Déconnexion - - - Providing true email address will make it possible to contact you regarding your report. To learn more, press 'help' button on the right side. - En fournissant un mail existant il sera possible de vous contacter au sujet du rapport. Pour en savoir plus, clic sur le bouton « help » sur le coté droit. - - - Enter vaild e-mail address, or log in. - Entrez un email valide ou connectez-vous. - - - Short description requires at least 10 characters, but not more than 100. Longer description can be entered in the field below. - Une description courte nécessite au moins 10 caractères, mais pas plus de 100. La longueur de la description ne peut être contenue dans ce champ. - - - Long description requires at least 30 characters. - Une descption longue requiert au moins 30 caractères. - - - - BugReportHistoryWindow - - Title - Titre - - - Reported at - Rapport envoyé à - - - URL - URL - - - Reports history - Historique de rapports - - - Clear reports history - Vider l’historique des rapports - - - Delete selected entry - Supprimer l’entrée sélectionnée - - - Invalid response from server. - Réponse invalide du serveur. - - - - BugReportLoginDialog - - Log in - Connexion - - - Credentials - Identités - - - Login: - Identification : - - - Password: - Mot de passe : - - - Validation - Validation - - - Validate - Valider - - - Validation result message - Message de validation - - - Abort - Abandonner - - - A login must be at least 2 characters long. - Un identifiant doit avoir au moins 2 caractères. - - - A password must be at least 5 characters long. - Un mot de passe doit avoir au moins 5 caractères. - - - Valid - Valide - - - - CollationsEditor - - - Filter collations - Filtre de collation - - - - Collation name: - Nom de collation : - - - - Implementation language: - Language d’implémentation : - - - - Databases - Base de données - - - - Register in all databases - Inscrire dans toutes les bases de données - - - - Register in following databases: - Inscrire dans les bases de données suivantes : - - - - Implementation code: - Code d’implémentation : - - - - Collations editor - Éditeur de collation - - - - Commit all collation changes - Enregistrer les motifications de collation - - - - Rollback all collation changes - Annuler toutes les modifications de collation - - - - Create new collation - Création de collation - - - - Delete selected collation - Supprimer la collation sélectionnée - - - - Editing collations manual - Manuel pour l'édition de collations - - - - Enter a non-empty, unique name of the collation. - Saisissez un nom unique, non vide, de regroupement. - - - - Pick the implementation language. - Choisir le language d’implémentation. - - - - Enter a non-empty implementation code. - Saisissez un nom, non vide, de language d’implémentation. - - - - Collations editor window has uncommitted modifications. - L’éditeur de collations a des modifications non enregistrées. - - - - ColorButton - - - Pick a color - Choisir une couleur - - - - ColumnCollatePanel - - - Collation name: - Nom de la collation : - - - - Named constraint: - Contrainte nommée : - - - - Enter a name of the constraint. - Saisir le nom de la contrainte. - - - - Enter a collation name. - Saisir le nom de la collation. - - - - ColumnDefaultPanel - - - Default value: - Valeur par défaut : - - - - Named constraint: - Contrainte nommée : - - - - Enter a default value expression. - Saisissez l’expression d’une valeur par défaut. - - - - Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. - - - - - Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. - - - - Invalid default value expression: %1 - Expression invalide pour une valeur par défaut : %1 - - - - Enter a name of the constraint. - Saisir un nom de contrainte. - - - - ColumnDialog - - - Column - Colonne - - - - Name and type - Nom et type - - - - Scale - - - - - Precision - - - - - Data type: - Type de données : - - - - Column name: - Nom de colonne : - - - - Size: - Taille : - - - - Constraints - Contraintes - - - - Unique - Unique - - - - - - - - - - Configure - Configurer - - - - Foreign Key - Clef étrangère - - - - Collate - Collation - - - - Not NULL - Non NULL - - - - Check condition - Vérifier la condition - - - - Primary Key - Clef primaire - - - - Default - Défaut - - - - Advanced mode - Mode avancé - - - - Add constraint - column dialog - Ajouter une contrainte - - - - Edit constraint - column dialog - Editer la contrainte - - - - - Delete constraint - column dialog - Supprimer la contrainte - - - - Move constraint up - column dialog - Monter la contrainte - - - - Move constraint down - column dialog - Descendre la contrainte - - - - Add a primary key - column dialog - Ajouter une clef primaire - - - - Add a foreign key - column dialog - Ajouter une clef étrangère - - - - Add an unique constraint - column dialog - Ajouter une contrainte d'unicité - - - - Add a check constraint - column dialog - Ajouter une contrainte de contrôle - - - - Add a not null constraint - column dialog - Ajouter une contrainte non NULL - - - - Add a collate constraint - column dialog - Ajouter un commentaire à la contrainte - - - - Add a default constraint - column dialog - Ajouter une contrainte par défaut - - - - Are you sure you want to delete constraint '%1'? - column dialog - Êtes-vous sûr de vouloir supprimer la contrainte « %1 » ? - - - - Correct the constraint's configuration. - Corrigez la configuration de la contrainte. - - - - This constraint is not officially supported by SQLite 2, -but it's okay to use it. - Cette contrainte n’est pas supportée officiellement par SQLite 2, -mais c’est OK pour l’utiliser. - - - - Scale is not allowed for INTEGER PRIMARY KEY columns. - - - - - Precision cannot be defined without the scale. - - - - - Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. - - - - - INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. - - - - - Precision is not allowed for INTEGER PRIMARY KEY columns. - - - - - ColumnDialogConstraintsModel - - - Type - column dialog constraints - Type - - - - Name - column dialog constraints - Nom - - - - Details - column dialog constraints - Détails - - - - ColumnForeignKeyPanel - - - Foreign table: - Table étrangère : - - - - Foreign column: - Colonne étrangère : - - - - Reactions - Réactions - - - - Deferred foreign key - Clef étrangère refusée - - - - Named constraint - Contrainte nommée - - - - Constraint name - Nom de contrainte - - - - Pick the foreign table. - Sélectionner la table étrangère. - - - - Pick the foreign column. - Sélectionner la colonne étrangère. - - - - Enter a name of the constraint. - Saisir un nom de contraite. - - - - ColumnPrimaryKeyPanel - - - Autoincrement - Auto-incrémentation - - - - Sort order: - Ordre de tri : - - - - Named constraint: - Contrainte nommée : - - - - On conflict: - En cas de conflit : - - - - Enter a name of the constraint. - Saisissez le nom d’une contrainte. - - - Autoincrement (only for %1 type columns) - column primary key - Auto-incrémentation (seulement pour %1 colonne type) - - - - ColumnUniqueAndNotNullPanel - - - Named constraint: - Contrainte nommée : - - - - On conflict: - En cas de conflit : - - - - Enter a name of the constraint. - Saisissez un nom de contrainte. - - - - CompleterWindow - - - Column: %1 - completer statusbar - Colonne : %1 - - - - Table: %1 - completer statusbar - Table : %1 - - - - Index: %1 - completer statusbar - Index : %1 - - - - Trigger: %1 - completer statusbar - Déclencheur : %1 - - - - View: %1 - completer statusbar - Vue : %1 - - - - Database: %1 - completer statusbar - Base de données : %1 - - - - Keyword: %1 - completer statusbar - Mot-clef : %1 - - - - Function: %1 - completer statusbar - Fonction : %1 - - - - Operator: %1 - completer statusbar - Opérateur : %1 - - - - String - completer statusbar - Chaîne de caractères - - - - Number - completer statusbar - Nombre - - - - Binary data - completer statusbar - Données binaires - - - - Collation: %1 - completer statusbar - Collation : %1 - - - - Pragma function: %1 - completer statusbar - Fonction Pragma : %1 - - - - ConfigDialog - - - - Configuration - Configuration - - - - Search - Recherche - - - - General - Général - - - - Keyboard shortcuts - Raccourcis clavier - - - - Look & feel - Apparence - - - - Style - Style - - - - Fonts - Polices - - - - Colors - Couleurs - - - - Plugins - Plugins - - - - Code formatters - Formateurs de code - - - - Data browsing - Navigation de données - - - - Data editors - Éditeurs de données - - - - Data browsing and editing - Navigateur et éditeur de données - - - - Number of data rows per page: - Nombre de lignes de données par page : - - - - - <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> - <p>Lorsque les données sont lues dans le tableau, la largeur est automatiquement ajustée. Cette valeur limite la largeur initiale pour l’ajustement, mais l’utilisateur peut recadrer les colonnes manuellement au-dessus de cette limite.</p> - - - - Limit initial data column width to (in pixels): - Limite initiale de la largeur de la colonne de données (en pixel) : - - - - <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> - - - - - <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> - - - - - Use DEFAULT value (if defined), when committing NULL value - - - - - Inserting new row in data grid - Insertion d'une nouvelle ligne dans la grille de données - - - - Before currently selected row - Avant la ligne courante - - - - After currently selected row - Après la ligne courante - - - - At the end of data view - À la fin de la vue de données - - - - <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> - - - - - <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> - - - - - Place data tab as first tab in a Table Window - Placer l'onglet Données en premier dans les fenêtres de tables - - - - <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> - - - - - Data types - Types de données - - - - Available editors: - Éditeurs disponibles : - - - - Editors selected for this data type: - Éditeur sélectionné pour ce type de données : - - - - Schema editing - Edition de schéma - - - - Number of DDL changes kept in history. - Nombre de DDL modifiés gardés dans l’historique. - - - - DDL history size: - Dimension de l’historique DDL : - - - - SQL queries - Requêtes SQL - - - - - Number of queries kept in the history. - Nombre de requêtes gardées dans l’historique. - - - - History size: - Dimension de l’historique : - - - - <p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute.</p> - <p>S’il y a plus d’une requête dans l’éditeur SQL, alors (si cette option est permise) seulement une seule requête sera exécutée -cellesous le curseur d’insertion. Autrement toutes les requêtes seront exécutées. Vous pouvez limiter le nombre de requêtes devant être exécutées en sélectionnant ces requêtes avant leur exécution.</p> - - - - Execute only the query under the cursor - Exécuter seulement la requête sous le curseur - - - - Updates - Mises à jour - - - - Automatically check for updates at startup - Contrôle automatique des mises à jour au lancement - - - - Session - Session - - - - Restore last session (active MDI windows) after startup - Restaurer la dernière session (Fenêtre MDI active) après lancement - - - - Filter shortcuts by name or key combination - Filtre par nom raccourci ou combinaison de touches - - - - Action - Action - - - - Key combination - Combinaison de touches - - - - - Language - Langage - - - - Changing language requires application restart to take effect. - Le changement de langage requiert le redémarrage de l’application pour prendre effet. - - - - Compact layout - Présentation compacte - - - - <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> - - - - - Use compact layout - Utiliser la présentation compacte - - - - - Database list - Liste de base de données - - - - If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. - Sur off, les colonnes seront triées dans l’ordre de saisie de l’instruction CREATE TABLE. - - - - Sort table columns alphabetically - Ordre de tri alpha de la colonne - - - - Expand tables node when connected to a database - Développer le nœud des tables lors de la connexion de la base de données - - - - <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> - <p>Les labels supplémentaires sont ceux montrés à côté des noms dans la liste de bases de données ( bleus,sauf autre configaration). Permettre cette option aboutira aux lablels pour des bases de données, des bases de données invalides et des noeuds (colonnes, index, déclancheur). Pour plus de labels voir des options ci-dessous.<p> - - - - Display additional labels on the list - Afficher des labels supplémentaires dans la liste - - - - For regular tables labels will show number of columns, indexes and triggers for each of tables. - Pour des tables courantes les labels montrerons le nombre der colonnes, index et déclencheurs pour chaque tables. - - - - Display labels for regular tables - Afficher les labels pour les tables courantes - - - - Virtual tables will be marked with a 'virtual' label. - Les tables vituelles seront marquées avec un label « virtuel ». - - - - Display labels for virtual tables - Afficher les labels pour les tables virtuelles - - - - Expand views node when connected to a database - Développer le nœud des vues lorsque la base de données est connectée - - - - If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) - Si cette option est désactivée, les objets seront triés pour qu’ ils apparaissent dans la table sqlite_master (dans l’ordre de création) - - - - Sort objects (tables, indexes, triggers and views) alphabetically - Tri d’objets (tables, index, déclancheurs et vues) en alpha - - - - Display system tables and indexes on the list - Afficher les tables système et index dans la liste - - - - Database dialog window - - - - - <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> - - - - - Do not mark database to be "permanent" by default - - - - - <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> - - - - - Try to bypass dialog completly when dropping database file onto the list - - - - - Keep NULL value when entering empty value - - - - - <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> - - - - - - <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> - - - - - Number of memorized table populating configurations - - - - - Show column and row details tooltip in data view - - - - - Table windows - Fenêtres de tables - - - - Open Table Windows with the data tab for start - Sélectionner l'onglet de données lors de l'ouverture d'une fenêtre de table - - - - View windows - Fenêtre de vue - - - - Open View Windows with the data tab for start - Sélectionner l'onglet de données lors de l'ouverture d'une fenêtre de vue - - - - <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> - - - - - Place data tab as first tab in a View Window - - - - - Don't show DDL preview dialog when committing schema changes - - - - - - <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> - - - - - Number of memorized query parameters - - - - - Status Field - - - - - <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> - - - - - Always open Status panel when new message is printed - - - - - Main window dock areas - - - - - Left and right areas occupy corners - - - - - Top and bottom areas occupy corners - - - - - Hide built-in plugins - Cacher des plugins incorporés - - - - Current style: - Style actuel : - - - - Preview - Aperçu - - - - Enabled - En service - - - - Disabled - Hors service - - - - Active formatter plugin - Plugin de formattage actif - - - - SQL editor font - Police de caractères de l’éditeur SQL - - - - Database list font - Liste des polices de caractères de base de données - - - - Database list additional label font - Police de caractères additionelle de la liste des bases de données - - - - Data view font - Police de caractères des données de vue - - - - Status field font - Police de caractères du champ d’état - - - - SQL editor colors - Couleurs de l’éditeur SQL - - - - Current line background - Arrière plan pour la ligne courante - - - - <p>SQL strings are enclosed with single quote characters.</p> - <p>Les chaines SQL sont encadrées avec de caractères simple quote.</p> - - - - String foreground - Avant plan chaine - - - - <p>Bind parameters are placeholders for values yet to be provided by the user. They have one of the forms:</p><ul><li>:param_name</li><li>$param_name</li><li>@param_name</li><li>?</li></ul> - <p>Les paramètres fournis par l’utilisateur sont passés par valeur. Ils ont l’une de ces formes : </p><ul><li>:param_name</li><li>$param_name</li><li>@param_name</li><li>?</li></ul> - - - - Bind parameter foreground - Premier plan pour les paramètres de lien - - - - Highlighted parenthesis background - Parenthèses surlignées - - - - <p>BLOB values are binary values represented as hexadecimal numbers, like:</p><ul><li>X'12B4'</li><li>x'46A2F4'</li></ul> - <p>les valeurs BLOB sont binaire représentés comme nombres hexadécimaux, comme : </p><ul><li>X'12B4'</li><li>x'46A2F4'</li></ul> - - - - BLOB value foreground - Premier plan pour les valeurs BLOB - - - - Regular foreground - Avant plan par défaut - - - - Line numbers area background - Arrière plan pour la zone des numéros de ligne - - - - Keyword foreground - Premier plan pour les mots-cléfs - - - - Number foreground - Premier plan pour les nombres - - - - Comment foreground - Premier plan pour les commentaires - - - - <p>Valid objects are name of tables, indexes, triggers, or views that exist in the SQLite database.</p> - <p>Les objets valides sont les nom de tables, index, déclencheurs, ou vues qui existent dans la base de données SQLite.</p> - - - - Valid objects foreground - Premier plan pour les objets valides - - - - Data view colors - Couleurs de vue de données - - - - <p>Any data changes will be outlined with this color, until they're committed to the database.</p> - - - - - Uncommitted data outline color - - - - - <p>In case of error while committing data changes, the problematic cell will be outlined with this color.</p> - - - - - Commit error outline color - Surlignage pour les erreurs de commit - - - - NULL value foreground - Premier plan pour la valeur NULL - - - - Deleted row background - Arrière-plan pour une ligne supprimée - - - - Database list colors - Couleurs pour la liste des bases de données - - - - <p>Additional labels are those which tell you SQLite version, number of objects deeper in the tree, etc.</p> - <p>Des labels supplémentaires indique la version SQLITE, le nombre d’objets au nievau inférieur, etc.</p> - - - - Additional labels foreground - Premier plan pour les labels additionnels - - - - Status field colors - Couleurs du champ d’état - - - - Information message foreground - Premier plan pour les messages d’information - - - - Warning message foreground - Premier plan pour les avertissements - - - - Error message foreground - Premier plan pour les erreurs - - - - Description: - plugin details - Description : - - - - Category: - plugin details - Catégorie : - - - - Version: - plugin details - Version : - - - - Author: - plugin details - Auteur : - - - - Internal name: - plugin details - Nom interne : - - - - Dependencies: - plugin details - Dépendances : - - - - Conflicts: - plugin details - Conflits : - - - - Plugin details - Détails du plugin - - - - Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. - Les plugins sont chargés/déchargés immédiatement avec vérifié/non vérifié, mais les modifications de la liste de plugins à charger au lancement ne sont pas enregistrées avant l’enregistrement de la configuration entière. - - - - %1 (built-in) - plugins manager in configuration dialog - %1 (intégré) - - - - Details - Détails - - - - No plugins in this category. - Pas de plugins dans cette catégorie. - - - - Add new data type - Ajouter un nouveau type de données - - - - Rename selected data type - Renommer le type de données sélectionné - - - - Delete selected data type - Supprimer le type de données sélectionnées - - - - Help for configuring data type editors - Aide à la configuration des éditeurs de type de données - - - - ConstraintCheckPanel - - - The condition - Condition - - - - Named constraint: - Contrainte nommée : - - - - On conflict - Sur conflit - - - - Enter a valid condition. - Saississez une condition valide. - - - - Enter a name of the constraint. - Saississez un nom de contrainte valide. - - - - ConstraintDialog - - - New constraint - constraint dialog - Nouvelle contrainte - - - - Create - constraint dialog - Créer - - - - Edit constraint - dialog window - Modifier la contrainte - - - - Apply - constraint dialog - Appliquer - - - - Primary key - table constraints - Clef primaire - - - - Foreign key - table constraints - Clef étrangère - - - - Unique - table constraints - Unique - - - - Not NULL - table constraints - Non NULL - - - - Check - table constraints - Contrôle - - - - Collate - table constraints - Regroupe - - - - Default - table constraints - Défaut - - - - ConstraintTabModel - - - Table - table constraints - Table - - - - Column (%1) - table constraints - Colonne (%1) - - - - Scope - table constraints - Portée - - - - Type - table constraints - Type - - - - Details - table constraints - Details - - - - Name - table constraints - Nom - - - - CssDebugDialog - - - SQLiteStudio CSS console - - - - - DataView - - - Filter data - data view - Filtre de données - - - - Grid view - Table - - - - Form view - Formulaire - - - - Refresh table data - data view - Actualiser les données de la table - - - - First page - data view - Première page - - - - Previous page - data view - Page précédente - - - - Next page - data view - Page suivante - - - - Last page - data view - Dernière page - - - - Filter - - - - - Hit Enter key or press "Apply filter" button on toolbar to apply new value. - - - - - Show filter inputs per column - data view - - - - - Apply filter - data view - Appliquer le filtre - - - - Commit changes for selected cells - data view - Enregistrer les modifications des cellules sélectionnées - - - - Rollback changes for selected cells - data view - Annuler les modifications des celulles sélectionnées - - - - Show grid view of results - sql editor - Affichage des résultats en tableau - - - - Show form view of results - sql editor - Affichage des résultat en formulaire - - - - Filter by text - data view - Filtrer par texte - - - - Filter by the Regular Expression - data view - Filtrer par une expression standard - - - - Filter by SQL expression - data view - Filtrer par une expression SQL - - - - Tabs on top - data view - Onglets en haut - - - - Tabs at bottom - data view - Onglet en bas - - - - Place new rows above selected row - data view - - - - - Place new rows below selected row - data view - - - - - Place new rows at the end of the data view - data view - - - - - Total number of rows is being counted. -Browsing other pages will be possible after the row counting is done. - Le total des lignes en cours de comptage. La navigation d’autres pages à la fin du comptage. - - - - Row: %1 - Lignes : %1 - - - - DbConverterDialog - - - Convert database - Base de données convertie - - - - Source database - Base de données source - - - - Source database version: - Version de la base de données source : - - - - Target database - Base de données cible - - - - Target version: - Version cible : - - - - This is the file that will be created as a result of the conversion. - Voici le fichier qui sera créé pour lles résultats de la conversion. - - - - Target file: - Fichier cible : - - - - Name of the new database: - Nom de la nouvelle base de données : - - - - This is the name that the converted database will be added to SQLiteStudio with. - Voici le nom de la base de données convertie qui sera ajoutée à SQLiteStudio. - - - - Select source database - Sélectionnez la base de données source - - - - Enter valid and writable file path. - Saississez le chemin d’un fichier valide et en écriture. - - - - Entered file exists and will be overwritten. - Le fichier remplacera l’existant. - - - - Enter a not empty, unique name (as in the list of databases on the left). - Saississez un nom unique, non vide(comme dans la liste des bases de données à gauche). - - - - No valid target dialect available. Conversion not possible. - Nom de la cible non valide. conversion impossible. - - - - Select valid target dialect. - Sélectionnez un nom cie cible valide. - - - - Database %1 has been successfully converted and now is available under new name: %2 - La base de données %1 a été convertie correctement et disponible sous le nom : %2 - - - - SQL statements conversion - Conversion des déclacrations SQL - - - - Following error occurred while converting SQL statements to the target SQLite version: - L’erreur suivante est survenue lors de la conversion des déclarations SQL dans cible version SQLite : - - - - Would you like to ignore those errors and proceed? - Souhaitez-vous ignorer ces erreurs et continuer ? - - - - DbDialog - - - Database - Base de données - - - - Database type - Type de base de données - - - - Database driver - Pilote de base de données - - - - Options - Options - - - - Permanent (keep it in configuration) - Permanent (conserver dans la configuration) - - - - Test connection - Tester la connexion - - - Browse for database file on local computer - Navigation de la base de données en local - - - - Create new database file - Créer un nouveau fichier de base de données - - - - - File - Fichier - - - - Name (on the list) - Nom (dans la liste) - - - - <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> - aasfd - <p>Autorisez-ceci si vous voulez que la base de données soit stockée dans le fichier de configuration et restauré chaque fois SQLiteStudio est lancé.</p> - - - - Browse for existing database file on local computer - - - - - Browse - Navigateur - - - - Enter an unique database name. - - - - - This name is already in use. Please enter unique name. - - - - - <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> - - - - - Enter a database file path. - - - - - This database is already on the list under name: %1 - - - - - Select a database type. - - - - - DbObjectDialogs - - - Delete table - Table supprimée - - - - Are you sure you want to delete table %1? - Confirmez la suppression de la table %1 ? - - - - Delete index - Index supprimé - - - - Are you sure you want to delete index %1? - Confirmez la suppression de l’index %1 ? - - - - Delete trigger - Déclencheur supprimé - - - - Are you sure you want to delete trigger %1? - Confirmez la suppression du déclencheur %1 ? - - - - Delete view - Vue supprimée - - - - Are you sure you want to delete view %1? - Confirmez la suppression de la vue %1 ? - - - - - Error while dropping %1: %2 - Erreur à l’abandon %1 : %2 - - - - Delete objects - Objets supprimés - - - - Are you sure you want to delete following objects: -%1 - - - - - Cannot start transaction. Details: %1 - - - - - Cannot commit transaction. Details: %1 - - - - - DbTree - - - Databases - Base de données - - - - Filter by name - Filtre par nom - - - - Copy - Copier - - - - Paste - Coller - - - - Select all - Tout sélectionner - - - - Create a group - Créer un groupe - - - - Delete the group - Supprimer le groupe - - - - Rename the group - Renommer le groupe - - - Add a database - Attacher une base de données - - - Edit the database - Modifier la base de données - - - Remove the database - Déatcher la base de données - - - Connect to the database - Connecter une base de données - - - Disconnect from the database - Déconnecter la base de données - - - - Import - Importer - - - Export the database - Exporter la base de données - - - Convert database type - Convertir le format de base de données - - - Vacuum - Vaccum - - - Integrity check - Contrôler l’intégrité - - - Create a table - Créer une table - - - Edit the table - Modifier la table - - - Delete the table - Supprimer la table - - - - Export the table - Exporter la table - - - - Import into the table - Importer dans la table - - - - Populate table - Peupler une table - - - - Create similar table - Créer une table identique - - - - Reset autoincrement sequence - Réinitialise l’auto-incrémentation - - - Create an index - Créer un index - - - Edit the index - Modifier l’index - - - Delete the index - Supprimer l’index - - - Create a trigger - Créer un déclencheur - - - Edit the trigger - Modifier le déclencheur - - - Delete the trigger - Supprimer le déclencheur - - - Create a view - Créer une vue - - - Edit the view - Modier la vue - - - Delete the view - Supprimer la vue - - - - Add a column - Ajouter une colonne - - - - Edit the column - Modifier la colonne - - - - Delete the column - Supprimer la colonne - - - - Delete selected items - Supprimer les objets sélectionnés - - - - Clear filter - Vider le filtre - - - Refresh all database schemas - Actualiser tous les schémas de base de données - - - Refresh selected database schema - Actualiser le schéma de base de données sélectionné - - - - - Erase table data - - - - - - Database - Base de données - - - - Grouping - Groupement - - - - Generate query for table - - - - - - Create group - Créer un groupe - - - - Group name - Nom du groupe - - - - Entry with name %1 already exists in group %2. - L’entrée nommée %1 existe déjà dans le groupe %2. - - - - Delete group - Supprimer le groupe - - - - Are you sure you want to delete group %1? -All objects from this group will be moved to parent group. - Êtes-vous certain de supprimer le groupe %1 ? -Tous les objets de ce groupe seront déplacés dans le groupe parent. - - - - Are you sure you want to remove database '%1' from the list? - - - - - Are you sure you want to remove following databases from the list: -%1 - - - - - Remove database - - - - - Vacuum (%1) - - - - - Autoincrement value for table '%1' has been reset successfully. - - - - - Are you sure you want to delete all data from table(s): %1? - - - - - - Cannot import, because no import plugin is loaded. - Import impossible, car aucun plugin d’import n’est chargé. - - - - Execution from file cancelled. Any queries executed so far have been rolled back. - - - - - &Add a database - - - - - &Edit the database - - - - - &Remove the database - - - - - &Connect to the database - - - - - &Disconnect from the database - - - - - &Export the database - - - - - Con&vert database type - - - - - Vac&uum - - - - - &Integrity check - - - - - Create a &table - - - - - Edit the t&able - - - - - Delete the ta&ble - - - - - Create an &index - - - - - Edit the i&ndex - - - - - Delete the in&dex - - - - - Create a trig&ger - - - - - Edit the trigg&er - - - - - Delete the trigge&r - - - - - Create a &view - - - - - Edit the v&iew - - - - - Delete the vi&ew - - - - - &Refresh all database schemas - - - - - Re&fresh selected database schema - - - - - Open file's directory - - - - - Execute SQL from file - - - - - - Cannot export, because no export plugin is loaded. - Export impossible, car aucun plugin d’import n’est chargé. - - - - Integrity check (%1) - Contrôle d’intégrité (%1) - - - - Reset autoincrement - Remise à zéro de l’auto-incrément - - - - Are you sure you want to reset autoincrement value for table '%1'? - Êtes-vous certain de vouloir réinitialiser l’auto-incrémentation de la table « %1 » ? - - - - An error occurred while trying to reset autoincrement value for table '%1': %2 - Une erreur est survenue pendant la réinitialisation de la valeur de l’auto-incrémentation de la table « %1 » : %2 - - - - An error occurred while trying to delete data from table '%1': %2 - - - - - All data has been deleted for table '%1'. - - - - - Following objects will be deleted: %1. - Les objets suivant vont être supprimés : %1. - - - - Following databases will be removed from list: %1. - Les bases de données suivantes seront enlevées de la liste : %1. - - - - Remainig objects from deleted group will be moved in place where the group used to be. - Les objets restants du groupe supprimé seront déplacés où le groupe a eu l’habitude d’être. - - - - %1<br><br>Are you sure you want to continue? - %1<br><br>Êtes-vous certain de vouloir continuer ? - - - - Delete objects - Objets supprimés - - - - Could not execute SQL, because application has failed to start transaction: %1 - - - - - Could not open file '%1' for reading: %2 - Impossible d’ouvrir en lecture le fichier « %1 » : %2 - - - - Could not execute SQL, because application has failed to commit the transaction: %1 - - - - - Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. - - - - - Finished executing %1 queries in %2 seconds. - - - - - Could not execute SQL due to error. - - - - - DbTreeItemDelegate - - - error - dbtree labels - erreur - - - - (system table) - database tree label - (Table système) - - - - (virtual) - virtual table label - (virtuel) - - - - (system index) - database tree label - (index système) - - - - DbTreeModel - - - Database: %1 - dbtree tooltip - Base de données : %1 - - - - Version: - dbtree tooltip - Version : - - - - File size: - dbtree tooltip - Taille fichier : - - - - Encoding: - dbtree tooltip - Codage : - - - - Error: - dbtree tooltip - Erreur : - - - - Table : %1 - dbtree tooltip - Table : %1 - - - - Columns (%1): - dbtree tooltip - Colonnes (%1): - - - - Indexes (%1): - dbtree tooltip - Indexs (%1) : - - - - Triggers (%1): - dbtree tooltip - Déclencheurs (%1) : - - - - Copy - Copier - - - - Move - Déplacer - - - - Include data - Données incluses - - - - Include indexes - Index inclus - - - - Include triggers - Déclencheurs inclus - - - - Abort - Abandonner - - - - Could not add dropped database file '%1' automatically. Manual setup is necessary. - - - - - Referenced tables - Tables référencées - - - - Do you want to include following referenced tables as well: -%1 - Vous voulez inclure des tables référencées suivantes aussi : -%1 - - - - Name conflict - Conflit de nom - - - - Following object already exists in the target database. -Please enter new, unique name, or press '%1' to abort the operation: - L’objet suivant existe déjà dans la base de données cible. -Entrez SVP un nouveau nom, unique, ou cliquez « %1 » pour d’interrompre l’opération : - - - - SQL statements conversion - Conversion des déclarations SQL - - - - Following error occurred while converting SQL statements to the target SQLite version: - L’erreur suivante est survenue en convertissant des déclarations de SQL de la version cible SQLite : - - - - Would you like to ignore those errors and proceed? - Voulez-vous ignorer ces erreurs et procéder ? - - - - DdlHistoryWindow - - - Filter by database: - Filtre par base de données : - - - - -- Queries executed on database %1 (%2) --- Date and time of execution: %3 -%4 - -- Requête éxécutée sur la base de données %1 (%2) --- Date et heure d’exécution : %3 -%4 - - - - DDL history - Historique DDL - - - - DdlPreviewDialog - - - Queries to be executed - Requêtes à exécuter - - - - Don't show again - Ne plus afficher - - - - DebugConsole - - - SQLiteStudio Debug Console - Console SQLiteStudio de débogage - - - - EditorWindow - - - Query - Requête - - - - History - Historique - - - - Results in the separate tab - Résultats dans un onglet séparé - - - - Results below the query - Résultats après la requête - - - - - SQL editor %1 - Éditeur SQL %1 - - - - Results - Résultats - - - - Execute query - Exécuter la requête - - - - Explain query - Explication de la requête - - - - Clear execution history - sql editor - Vider l’historique d’exécution - - - - Export results - sql editor - Exporter résultats - - - - Create view from query - sql editor - Créer une vue à partir d’une requête - - - - Previous database - Base de données précédente - - - - Next database - Base de données suivante - - - - Show next tab - sql editor - Afficher l’onglet suivant - - - - Show previous tab - sql editor - Afficher l’onget précédent - - - - Focus results below - sql editor - - - - - Focus SQL editor above - sql editor - Focus sur l’éditeur SQL ci-dessus - - - - Delete selected SQL history entries - sql editor - - - - - Active database (%1/%2) - Base de données active (%1/%2) - - - - Query finished in %1 second(s). Rows affected: %2 - Requête terminée en %1 secondes. Nombre de lignes : %2 - - - - Query finished in %1 second(s). - Requête terminée en %1 seconde(s). - - - - Clear execution history - Supprimer l’historique d’exécution - - - - Are you sure you want to erase the entire SQL execution history? This cannot be undone. - Êtes vous certain de vouloir supprimer la totalité de l’historique d’exécution SQL ? Aucun retour possible. - - - - Cannot export, because no export plugin is loaded. - Impossible d’exporter, car aucun plugin d’expertation n’est chargés. - - - - No database selected in the SQL editor. Cannot create a view for unknown database. - Aucune base de données den sélectionnée dans l’éditeur SQL. Impossible de créer une vue sur une base de données inconnue. - - - - Editor window "%1" has uncommitted data. - - - - - ErrorsConfirmDialog - - - Errors - Erreurs - - - - Following errors occured: - Les erreurs suivantes sont arrivées : - - - - Would you like to proceed? - Désirez-vous traiter ? - - - - ExecFromFileDialog - - - Execute SQL from file - - - - - Input file - - - - - Path to file - - - - - Browse for file - - - - - Options - Options - - - - File encoding - - - - - Skip failing SQL statements - - - - - SQL scripts (*.sql);;All files (*) - Scripts SQL (*.sql);;Tous les fichiers (*) - - - - Execute SQL file - - - - - Please provide file to be executed. - - - - - Provided file does not exist or cannot be read. - - - - - ExportDialog - - - Export - Exporter - - - - What do you want to export? - Que voulez-vous exporter ? - - - - A database - Une base de données - - - - A single table - Une table - - - - Query results - Résultats d’une requête - - - - Table to export - Table à exporter - - - - Database - Base de données - - - - Table - Table - - - - Options - Options - - - - When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. - Lorsque cette option n’est contrôlée, alors seulement le DDL de la table (CREATE TABLE...) est exporté. - - - - Export table data - Exporter les données de la table - - - - Export table indexes - Exporter les index de la table - - - - Export table triggers - Exporter les déclencheurs de la table - - - - Note, that exporting table indexes and triggers may be unsupported by some output formats. - NB : les index de la table d’exportation et les déclencheurs peuvent ne pas être pris en charge par certains formats d’export. - - - - Select database objects to export - Sélectionnez les objets de la base de données à exporter - - - - Export data from tables - Exporter les données des tables - - - - Select all - Tout sélectionner - - - - Deselect all - Tout désélectionner - - - - - Database: - Base de données : - - - - Query to export results for - Résultats de la requête - - - - Query to be executed for results: - Requête à exécuter : - - - - Export format and options - Exporter formatset options - - - - Export format - Format d’exportation - - - - Output - Sortie - - - - Exported file path - Chemin du fichier d’exportation - - - - Clipboard - presse-papier - - - - File - Fichier - - - - Exported text encoding: - Texte encodé exporté : - - - - Export format options - Exporter options de format - - - - Cancel - Annuler - - - - - - Select database to export. - Sélecctionnez la base de données à exporter. - - - - Select table to export. - Sélectionnez la table à exporter. - - - - Enter valid query to export. - Saississez une requête valide à exporter. - - - - Select at least one object to export. - Sélectionnez au moins un objet à exporter. - - - - You must provide a file name to export to. - Vous devez fournir le nom d’un fichier à exporter. - - - - Path you provided is an existing directory. You cannot overwrite it. - Le chemin fourni est un répertoire existant. Vous ne pouvez pas l’écraser. - - - - The directory '%1' does not exist. - Le répertoire « %1 » n’existe pas. - - - - The file '%1' exists and will be overwritten. - Le fichier « %1 » existe et sera écrasé. - - - - All files (*) - Tous les fichiers(*) - - - - Pick file to export to - Sélectionnez un fichier à exporter - - - - Internal error during export. This is a bug. Please report it. - Erreur interne pendant l’exportation. c’est un bug. SVP veuillez le reporter. - - - - FileExecErrorsDialog - - - Execution errors - - - - - Following errors were encountered during execution of SQL statements from the file: - - - - - SQL - - - - - Error - Erreur - - - - Statements that were executed successfully were commited. - - - - - Statements that were executed successfully were rolled back. - - - - - FontEdit - - - Choose font - font configuration - Choisir la police - - - - Form - - - Active SQL formatter plugin - Activer le plugin de formattage SQL - - - - FormView - - - Commit row - form view - Enregistrer ligne - - - - Rollback row - form view - Annuler ligne - - - - First row - form view - Première ligne - - - - Previous row - form view - Ligne précédente - - - - Next row - form view - Ligne suivante - - - - Last row - form view - Dernière ligne - - - - Insert new row - form view - Insérer une nouvelle ligne - - - - Delete current row - form view - Supprimer la ligne courante - - - - FunctionsEditor - - - Filter funtions - Fonctions de filtrations - - - - Function name: - Nom fonction : - - - - Implementation language: - Langage : - - - - Type: - Type : - - - - Input arguments - Entrez arguments - - - - Undefined - Non défini - - - - Databases - Bases de données - - - - Register in all databases - Enregistre toutes les bases de données - - - - Register in following databases: - Enregistre les bases de données suivantes : - - - - Initialization code: - Code d’initialisation : - - - - - Function implementation code: - Fonction de code d’implémentation : - - - - Final step implementation code: - Etape finale de code d’implémentaion : - - - - SQL function editor - Fonction éditeur SQL - - - - Commit all function changes - Enregistre toutes les fonctions modifiées - - - - Rollback all function changes - Annule toutes les fonctions modifiées - - - - Create new function - Crée une nouvelle fonction - - - - Delete selected function - Supprime une fonction sélectionnée - - - - Custom SQL functions manual - Personalisation des fonctions SQL - - - - Add function argument - Ajoute un argument à la fonction - - - - Rename function argument - Renomme l’argument de la fonction - - - - Delete function argument - Supprime l’argument de la fonction - - - - Move function argument up - Monte l’argument de la fonction - - - - Move function argument down - Descend l’argument de la fonction - - - - Scalar - Scalaire - - - - Aggregate - Agregate - - - - Enter a non-empty, unique name of the function. - Saississez un nom unique de fonction. - - - - Pick the implementation language. - Choississez un langage. - - - - Per step code: - Code par étape : - - - - Enter a non-empty implementation code. - Saississez un code d’implémentation non vide. - - - - argument - new function argument name in function editor window - argument - - - - Functions editor window has uncommitted modifications. - - - - - ImportDialog - - - Import data - Import données - - - - Table to import to - Table à importer vers - - - - Table - Table - - - - Database - Base de données - - - - Data source to import from - Source de données à importer de - - - - Data source type - Type de données source - - - - Options - Options - - - - Input file: - Fichier : - - - - Text encoding: - Texte codé : - - - - <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> - - - - - Ignore errors - - - - - Data source options - Optrions de source de données - - - - Cancel - Annuler - - - - If you type table name that doesn't exist, it will be created. - Si vous saississez un nom de table inexistant, celle-ci sera créée. - - - - Enter the table name - Saississez un nom de table - - - - Select import plugin. - Sélectionnez un plugin d’importation. - - - - You must provide a file to import from. - Vous devez fournir un fichier à importer. - - - - The file '%1' does not exist. - Le fichier « %1 » n’existe pas. - - - - Path you provided is a directory. A regular file is required. - Le chemin indiqué est un répertoire. Un fichier est requis. - - - - Pick file to import from - Sélectionnez le fichier d’importation - - - - IndexDialog - - - - Index - Index - - - - On table: - De la table : - - - - Index name: - Nom index : - - - - Partial index condition - Condition partielle d’index - - - - Unique index - Index unique - - - - Column - Colonne - - - - Collation - Regroupement - - - - Sort - Tri - - - - Delete selected indexed expression - - - - - Moves selected index column up in the order, making it more significant in the index. - - - - - Moves selected index column down in the order, making it less significant in the index. - - - - - Edit selected indexed expression - - - - - Add indexed expression - - - - - DDL - DDL - - - - Tried to open index dialog for closed or inexisting database. - Vous tentez d’ouvrir le dialogue de l’index d’une base de données fermée ou inexistante. - - - - Could not process index %1 correctly. Unable to open an index dialog. - Impossible de définir l’index %1 correctement. Ouvrir un dialogue d’index valide. - - - - Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. - - - - - Pick the table for the index. - Sélectionnez la table pour l’index. - - - - Select at least one column. - Selectionnez au moins une colonne. - - - - Enter a valid condition. - Saississez une condition valide. - - - - default - index dialog - defaut - - - - Sort order - table constraints - Ordre de tri - - - - - Error - index dialog - Erreur - - - - Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? - Impossible de créer un index, car les valeurs des colonnes sélectionnées ne sont pas uniques. Voulez-vous exécuter une requête SELECT pour voir les valeurs problématiques ? - - - - An error occurred while executing SQL statements: -%1 - Une erreur survenue à l’exécution de l’SQL : -%1 - - - - IndexExprColumnDialog - - - Indexed expression - - - - - Expression to index - - - - - This expression is already indexed by the index. - - - - - Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. - - - - - Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. - - - - - It's forbidden to use 'SELECT' statements in indexed expressions. - - - - - Enter an indexed expression. - - - - - Invalid expression. - - - - - LanguageDialog - - - Language - Langage - - - - Please choose language: - SVP choississez un langage : - - - - MainWindow - - - Database toolbar - Barre d’outils de base de données - - - - Structure toolbar - Barre d’outils de structure - - - - Tools - Barre d’outils des éditeurs - - - - Window list - Liste des fenêtres ouvertes - - - - View toolbar - Barre d’outils de fenêtrage - - - - Configuration widgets - Configuration widgets - - - - Syntax highlighting engines - Syntaxe surlignée des moteurs - - - - Data editors - Éditeurs de données - - - - Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. - Passage en mode débogue. Cliquez %1 ou utilisez l’entrée du menu « l’Aide / Ouvrir la console de débogage ». - - - - Running in debug mode. Debug messages are printed to the standard output. - Passage en mode débogue. Les messages de débogage sont imprimés dans la sortie standard. - - - - You need to restart application to make the language change take effect. - Vous devez relancer l’application pour que le langage prenne effet. - - - Open SQL editor - Ouvrir l’éditeur SQL - - - Open DDL history - Ouvrir l’historique DDL - - - Open SQL functions editor - Éditeur de fonctions SQL - - - Open collations editor - Ouvrir l’éditeur de collections - - - Import - Importer - - - Export - Exporter - - - Open configuration dialog - Préférences - - - Tile windows - Organisation des fenêtres en grille - - - Tile windows horizontally - Organisation horizontale des fenêtres - - - Tile windows vertically - Organisation verticale des fenêtres - - - Cascade windows - Organisation des fenêtres en cascade - - - - Next window - Fenêtre suivante - - - - Previous window - Fenêtre précédante - - - - Hide status field - Cacher le champ d’état - - - Close selected window - Fermer la fenêtre sélectionnée - - - Close all windows but selected - Fermer toutes les fenêtres sélectionnées - - - Close all windows - Fermer toutes les fenêtres - - - Restore recently closed window - Restaurer la dernière fenêtre fermée - - - Rename selected window - Renommer la fenêtre sélectionnée - - - - Open Debug Console - Ouvrir la console de debogage - - - - Open CSS Console - Ouvrir la console CSS - - - Report a bug - Rapporter un bogue - - - Propose a new feature - Proposer une fonctionnalité - - - About - À propos de… - - - Licenses - Licences - - - Open home page - Site web de l’application - - - Open forum page - Forum d’aide - - - User Manual - Manuel utilisateur en ligne - - - SQLite documentation - Documentation en ligne de SQLite - - - Report history - Historique - - - Check for updates - Vérifier les mises à jour - - - Database - menubar - Base de données - - - Structure - menubar - Structure - - - View - menubar - Vue - - - - Window list - menubar view menu - Liste des fenêtres - - - Tools - menubar - Outils - - - Help - Aide - - - - Open SQL &editor - - - - - Open DDL &history - - - - - Open SQL &functions editor - - - - - Open &collations editor - - - - - Open ex&tension manager - - - - - &Import - - - - - E&xport - - - - - Open confi&guration dialog - - - - - &Tile windows - - - - - Tile windows &horizontally - - - - - Tile windows &vertically - - - - - &Cascade windows - - - - - Close selected &window - - - - - Close all windows &but selected - - - - - Close &all windows - - - - - Re&store recently closed window - - - - - &Rename selected window - - - - - Report a &bug - - - - - Propose a new &feature - - - - - &About - - - - - &Licenses - - - - - Open home &page - - - - - Open fo&rum page - - - - - User &Manual - - - - - SQLite &documentation - - - - - Bugs and feature &requests - - - - - Check for &updates - - - - - &Database - menubar - - - - - &Structure - menubar - - - - - &View - menubar - - - - - &Tools - menubar - - - - - &Help - - - - - Could not set style: %1 - main window - Impossible de positionner le style : %1 - - - - Cannot export, because no export plugin is loaded. - Exportation impossible, aucun plugin d’exportation n’est chargé. - - - - Cannot import, because no import plugin is loaded. - Importation impossible, aucun plugin d’importation n’est chargé. - - - - Rename window - Renommer la fenêtre - - - - Enter new name for the window: - Saississez un nouveau nom de fenêtre : - - - - New updates are available. <a href="%1">Click here for details</a>. - Une nouvelle mise à jour est disponible. <a href="%1"> cliquez ici pour détails</a>. - - - - You're running the most recent version. No updates are available. - Vous utilisez la dernière version. Aucune mise à jour de disponible. - - - - Database passed in command line parameters (%1) was already on the list under name: %2 - - - - - Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 - La base de données passée en paramètre dans la ligne de commande (%1)a été temporaire ajoutée à la liste sous le nom : %2 - - - - Could not add database %1 to list. - Impossible d’ajouter la base de données %1 à la liste. - - - - MdiWindow - - - Uncommitted changes - - - - - Close anyway - Fermer - - - - Don't close - Ne pas fermer - - - - MultiEditor - - - Null value - multieditor - Valeur NULL - - - - Configure editors for this data type - Configurer l’éditeur pour ce type de données - - - - Open another tab - - - - - Data editor plugin '%1' not loaded, while it is defined for editing '%1' data type. - Plugin d"éditeur de données « %1 » non chargé, ausii il n’ai pas défini pour le type de données « %1 ». - - - - Deleted - multieditor - Suppression - - - - Read only - multieditor - Lecture seule - - - - MultiEditorBool - - Boolean - booleen - - - - MultiEditorBoolPlugin - - - Boolean - booleen - - - - MultiEditorDate - - Date - Date - - - - MultiEditorDatePlugin - - - Date - Date - - - - MultiEditorDateTime - - Date & time - date & heure - - - - MultiEditorDateTimePlugin - - - Date & time - date & heure - - - - MultiEditorHex - - Hex - Hex - - - - MultiEditorHexPlugin - - - Hex - Hex - - - - MultiEditorNumeric - - Number - numeric multi editor tab name - Nombre - - - - MultiEditorNumericPlugin - - - Number - numeric multi editor tab name - Nombre - - - - MultiEditorText - - Text - Texte - - - - Tab changes focus - Tab modifie le focus - - - - Cut - Couper - - - - Copy - Copier - - - - Paste - Coller - - - - Delete - Supprimer - - - - Undo - Annuler - - - - Redo - Rétablir - - - - MultiEditorTextPlugin - - - Text - Texte - - - - MultiEditorTime - - Time - Heure - - - - MultiEditorTimePlugin - - - Time - Heure - - - - NewConstraintDialog - - - New constraint - Nouvelle contrainte - - - - - Primary Key - new constraint dialog - Clef primaire - - - - - Foreign Key - new constraint dialog - Clef étrangère - - - - - Unique - new constraint dialog - Unique - - - - - Check - new constraint dialog - Contrôle - - - - Not NULL - new constraint dialog - Non NULL - - - - Collate - new constraint dialog - Regrouper - - - - Default - new constraint dialog - Défault - - - - NewVersionDialog - - - SQLiteStudio updates - Mises à jour SQLiteStudio - - - - New updates are available! - Les nouvelles mises à jours sont valides ! - - - - Component - Composant - - - - This application will be closed and the update installer will start to download and install all the updates. - - - - Current version - Version courante - - - - Update version - Version de mise à jour - - - - Check for updates on startup - Contrôle de nouvelles version au lancement - - - - Update to new version! - Mettre à jour la nouvelle version ! - - - The update will be automatically downloaded and installed. This will also restart application at the end. - La mise à jour sera automatiquement téléchargée et installée. Un redémarrage de l’application sera aussi effectué à la fin. - - - - Not now. - Paas maintenant. - - - - Don't install the update and close this window. - Ne pas installer la mise à jour maintenant et fermer cette fenêtre. - - - - PopulateConfigDialog - - - Populating configuration - Remplir la configuration - - - - Configuring <b>%1</b> for column <b>%2</b> - Configuration <b>%1</b> pour colonne <b>%2</b> - - - - PopulateDialog - - - Populate table - Peupler la table - - - - Database - Base de données - - - - Table - Table - - - - Columns - Colonnes - - - - Number of rows to populate: - Nombre de lignes à peupler : - - - - Populate - populate dialog button - Peupler - - - - Abort - Abandonner - - - - Configure - Configurer - - - - Populating configuration for this column is invalid or incomplete. - La configuration du peuplement pour cette colonne est invalide ou incomplète. - - - - Select database with table to populate - Sélectionner la base de données avec la table à peupler - - - - Select table to populate - Sélectionner la table à peupler - - - - You have to select at least one column. - Vous devez sélectionner au moins une colonne. - - - - QObject - - - Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). - impossible d’éditer les colonnes qui ont le résultat composé des déclarations %1 (inclus %2, %3 ou %4 mots-clefs). - - - - The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. - Le mécanisme d’exécution de la requête a eu des problèmes avec l’extraction du ROWID’S. Ceci pourrait être un bogue de l’application. Vous pouvez le rapporter. - - - - Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. - La colonne demandée est un résultat d’expression de SQL, au lieu d’une sélection de colonne simple. De telles colonnes ne peuvent pas être éditées. - - - - Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. - La colonne demandée appartient à une table limitée SQLite. Ces tables ne peuvent pas être éditées directement. - - - - Cannot edit results of query other than %1. - Impossible d’éditer les résultats de la requëte autrement que %1. - - - - Cannot edit columns that are result of aggregated %1 statements. - Impossible d’éditer les colonnes qui sont le résultat de déclarations agrégées %1. - - - - Cannot edit columns that are result of %1 statement. - Impossible d’éditer les colonnesqui sont le résultat de déclaration %1. - - - - Cannot edit columns that are result of common table expression statement (%1). - Impossible d’éditer les colonnes qui sont le résultat de table commune de déclaration (%1). - - - - - - - on conflict: %1 - data view tooltip - Sur conflit : %1 - - - - references table %1, column %2 - data view tooltip - Références table %1, colonne %2 - - - - condition: %1 - data view tooltip - Condition : %1 - - - - collation name: %1 - data view tooltip - Nom de collation : %1 - - - - Data grid view - Vue de tableau de données - - - - Copy cell(s) contents to clipboard - Copie le contenu de cellule(s) dans le presse-papier - - - - Copy cell(s) contents together with header to clipboard - - - - - Paste cell(s) contents from clipboard - Colle - - - - Set empty value to selected cell(s) - Efface le contenu de cellule(s) - - - - Set NULL value to selected cell(s) - Met à NULL les cellules séléctionnées - - - - Commit changes to cell(s) contents - Enregistre les modifications de cellule(s) - - - - Rollback changes to cell(s) contents - Annule les modifications de cellule(s) - - - - Delete selected data row - Supprime les données de la ligne sélectionnée - - - - Insert new data row - Insére une nouvelle ligne de données - - - - Open contents of selected cell in a separate editor - Contenu ouvert de cellule choisie dans un éditeur séparé - - - - Total pages available: %1 - Nombre de pages disponibles : %1 - - - - Total rows loaded: %1 - Nombre de lignes chargées : %1 - - - - Data view (both grid and form) - Vue des données (tableau et formulaire) - - - - Refresh data - Actualisation des données - - - - Switch to grid view of the data - Basculer sur la vue des données en table - - - - Switch to form view of the data - Basculer sur la vue des données en formulaire - - - - Database list - Liste de bases de données - - - - Delete selected item - Suppression de l’item sélectionné - - - - Clear filter contents - Effacer le contenu du filtre - - - - Refresh schema - Actualiser le schéma - - - - Refresh all schemas - Actualiser tous les schémas - - - - Add database - Ajouter une base de données - - - - Select all items - Séléctionner tous les éléments - - - - Copy selected item(s) - Copie d’item(s) sélectionné(s) - - - - - - Paste from clipboard - Collé dans le presse-papier - - - - Tables - Tables - - - - Indexes - Index - - - - Triggers - Déclencheurs - - - - Views - Vues - - - - Columns - Colonnes - - - - Data form view - Formulaire vue de données - - - - Commit changes for current row - Enregistrement de la ligne courante - - - - Rollback changes for current row - Annulation de la ligne courante - - - - Go to first row on current page - Aller à la première ligne de la page courante - - - - Go to next row - Aller à la ligne suivante - - - - Go to previous row - Aller à la ligne précédente - - - - Go to last row on current page - Aller à la dernière ligne de la page courante - - - - Insert new row - Insérer une nouvelle ligne - - - - Delete current row - Supprimer la ligne courante - - - - Main window - Fenêtre principale - - - - Open SQL editor - Ouvrir l’éditeur SQL - - - - Previous window - Fenêtre précédente - - - - Next window - Fenêtre suivante - - - - Hide status area - Cacher la barre d’état - - - - Open configuration dialog - Préférences - - - - Open Debug Console - Ouvrir la console de débogage - - - - Open CSS Console - Ouvrir la console CSS - - - - Cell text value editor - Éditeur de cellule - - - - - Cut selected text - Couper le texte sélectionné - - - - - Copy selected text - Copie du texte sélectionné - - - - - Delete selected text - Suppression du texte sélectionné - - - - - Undo - Annuler - - - - - Redo - Rétablir - - - - SQL editor input field - Éditeur SQL saisie de champ - - - - Select whole editor contents - Sélectionnez le contenu entier de l’éditeur - - - - Save contents into a file - Sauver le contenu dans un fichier - - - - Load contents from a file - Charger le contenu d’un fichier - - - - Find in text - Rechercher un texte - - - - Find next - Occurence suivante - - - - Find previous - Occurence précédente - - - - Replace in text - Remplacer dans le texte - - - - Delete current line - Supprimer la ligne courante - - - - Request code assistant - Assistant de code nécessaire - - - - Format contents - Format de contenu - - - - Move selected block of text one line down - Déplacer le bloc de texte sélectionné à la ligne inférieure - - - - Move selected block of text one line up - Déplacer le bloc de texte sélectionné à la ligne supérieure - - - - Copy selected block of text and paste it a line below - Copier le bloc de texte sélectionné à la ligne au-dessus - - - - Copy selected block of text and paste it a line above - Copier le bloc de texte sélectionné à la ligne au-dessous - - - - Toggle comment - - - - - All SQLite databases - Toutes les bases de données SQLite - - - - All files - Tous les fichiers - - - - - Database file - Fichier base de données - - - Reports history window - Fenêtre d’historique - - - Delete selected entry - Effacer l’entrée sélectionnée - - - - SQL editor window - Fenêtre de l’éditeur SQL - - - - Execute query - Exécution de la requête - - - - Execute "%1" query - Exécution de la requête %1 - - - - Switch current working database to previous on the list - Basculer de la base de données actuelle à la précédente de la liste - - - - Switch current working database to next on the list - Basculer de la base de données actuelle à la suivante de la liste - - - - Go to next editor tab - Aller à l’onglet d’éditeur suivant - - - - Go to previous editor tab - Aller à l’onglet d’éditeur précédent - - - - Move keyboard input focus to the results view below - Déplacement au-dessus du focus des résultats de vue par les touches - - - - Move keyboard input focus to the SQL editor above - Déplacement au-dessous du focus des résultats de vue par les touches - - - - Delete selected SQL history entries - - - - - Table window - Fenêtre de table - - - - Refresh table structure - Actualiser la structure de la table - - - - Add new column - Ajouter une nouvelle colonne - - - - Edit selected column - Modifier la colonne sélectionnée - - - - Delete selected column - Supprime la colonne sélectionnée - - - - Export table data - Exporte les données de table - - - - Import data to the table - Importe les données de table - - - - Add new table constraint - Ajoute une nouvelle contrainte à la table - - - - Edit selected table constraint - Modifie la contrainte de la table sélectionnée - - - - Delete selected table constraint - Supprime la contrainte de la table sélectionnée - - - - Refresh table index list - Actualise la liste des index de la table - - - - Add new index - Ajoute un nouvel index - - - - Edit selected index - Modifie l’index sélectionné - - - - Delete selected index - Supprime l’index sélectionné - - - - Refresh table trigger list - Actualise la liste des déclencheurs de la table - - - - - Add new trigger - Ajoute un nouveau déclencheur - - - - - Edit selected trigger - Modifie le déclencheur sélectionné - - - - - Delete selected trigger - Supprime le déclencheur sélectionné - - - - - Go to next tab - Aller à l’onglet suivant - - - - - Go to previous tab - Aller à l’onglet précédent - - - - A view window - Fenêtre de vue - - - - Refresh view trigger list - Actualise l’affichage de la liste des déclencheurs - - - - QuitConfirmDialog - - - Uncommitted changes - - - - - Are you sure you want to quit the application? - -Following items are pending: - Confirmez la fermeture de l’application ? - - - - SearchTextDialog - - - Find or replace - Chercher et remplacer - - - - Find: - Trouvé : - - - - Case sensitive - Sensible à la casse - - - - Search backwards - Recherches en arrière - - - - Regular expression matching - Correspondance d’expression régulière - - - - Replace && -find next - Remplace && -recherche suivant - - - - Replace with: - Remplacer par : - - - - Replace all - Remplacer tout - - - - Find - Rechercher - - - - SortDialog - - - Sort by columns - Tri par colonnes - - - - - Column - Colonne - - - - - Order - Ordre - - - - Sort by: %1 - Tri par %1 - - - - Move column up - Monter colonne - - - - Move column down - Descendre colonne - - - - SqlEditor - - - Cut - sql editor - Couper - - - - Copy - sql editor - Copier - - - - Paste - sql editor - Coller - - - - Delete - sql editor - Supprimer - - - - Select all - sql editor - Tout sélectionner - - - - Undo - sql editor - Annuler - - - - Redo - sql editor - Rétablir - - - - Complete - sql editor - Complet - - - - Format SQL - sql editor - Format SQL - - - - Save SQL to file - sql editor - Enregistrer le SQL - - - - Select file to save SQL - sql editor - - - - - Load SQL from file - sql editor - Charger le SQL - - - - Delete line - sql editor - Ligne suppimée - - - - Move block down - sql editor - Descendre le bloc - - - - Move block up - sql editor - Monter le bloc - - - - Copy block down - sql editor - Copier bloc au-dessus - - - - Copy up down - sql editor - Copier bloc au-dessous - - - - Find - sql editor - Chercher - - - - Find next - sql editor - Chercher suivant - - - - Find previous - sql editor - Chercher précédent - - - - Replace - sql editor - Remplacer - - - - Toggle comment - sql editor - - - - - Saved SQL contents to file: %1 - - - - - Syntax completion can be used only when a valid database is set for the SQL editor. - L’achèvement de syntaxe peut être utilisé seulement quand une base de données valable est utilisée dans l’éditeur SQL. - - - - Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. - Le contenu l’éditeur SQL est important, aussi la détectiond’objets en erreur est temporairement mise hors de service. - - - - Save to file - Sauvegarder - - - - Could not open file '%1' for writing: %2 - Impossible d’ouvrir en écriture le fichier « %1 » : %2 - - - - SQL scripts (*.sql);;All files (*) - Scripts SQL (*.sql);;Tous les fichiers (*) - - - - Open file - Fichier ouvert - - - - Could not open file '%1' for reading: %2 - Impossible d’ouvrir en lecture le fichier « %1 » : %2 - - - - Reached the end of document. Hit the find again to restart the search. - Fin de document atteint. Saississez de nouveau la recherche pour relancer la recherche. - - - - SqlQueryItem - - - Column: - data view tooltip - Colonne : - - - - Data type: - data view - Type de données : - - - - Table: - data view tooltip - Table : - - - - Constraints: - data view tooltip - Contrainte : - - - - Cannot load the data for a cell that refers to the already closed database. - Impossible de charger les données pour une cellule référant à une base de données fermée. - - - - SqlQueryItemDelegate - - - The row is marked for deletion. - La ligne est marquée pour effacement. - - - - - - - - Cannot edit this cell. Details: %1 - Impossible de modifier cette cellule. Détails : %1 - - - - - Structure of this table has changed since last data was loaded. Reload the data to proceed. - - - - - Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). - - - - - Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. - - - - - SqlQueryModel - - - - Only one query can be executed simultaneously. - Uniquement une seule requête peut être exécutée à la fois. - - - - Cannot commit the data for a cell that refers to the already closed database. - Impossible d’enregistrer les données pour la celle qui référe à une base de données déjà fermée. - - - - Could not begin transaction on the database. Details: %1 - Impossible de lancer la transaction sur la base de données. Détails : %1 - - - - An error occurred while rolling back the transaction: %1 - Une erreur est survenuelors de l’annulation de la transaction : %1 - - - - Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. - Tentative d’enregistrement d’une une cellule qui n’est pas modifiable ! Ceci est un bogue. Rapportez-le SVP. - - - - Uncommitted data - - - - - There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. - - - - - An error occurred while committing the transaction: %1 - - - - - An error occurred while committing the data: %1 - - - - - Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. - - - - - - Error while executing SQL query on database '%1': %2 - Erreur pendant l’exécution de la requête sur la base de données « %1 » : %2 - - - - Error while loading query results: %1 - Erreur lors du chargement des résultats de la requête : %1 - - - - Insert multiple rows - Insérer plusieurs lignes - - - - Number of rows to insert: - Nombre de lignes à inserer : - - - - SqlQueryView - - - Go to referenced row in... - - - - - Copy - Copier - - - - Copy as... - Copier comme… - - - - Paste - Coller - - - - Paste as... - Coller comme… - - - - Set NULL values - Valeurs NULL positionnées - - - - Erase values - valeurs écrasées - - - - Edit value in editor - Valeur modifiée par l’éditeur - - - - Commit - Enregistrer - - - - Copy with headers - - - - - Rollback - Annuler - - - - Commit selected cells - Enregistrer les cellules sélectionnées - - - - Rollback selected cells - Annuler les modifications des cellules sélectionnées - - - - Define columns to sort by - Définit les colonnes triées par - - - - Remove custom sorting - Enléve le tri personnalisé - - - - Insert row - Insérer une ligne - - - - Insert multiple rows - Insérer plusieurs lignes - - - - Delete selected row - Supprimer les lignes sélectionnées - - - - Show value in a viewer - - - - - Generate query for selected cells - - - - - No items selected to paste clipboard contents to. - - - - - Go to referenced row in table '%1' - - - - - table '%1' - - - - - Referenced row (%1) - - - - - Trim pasted text? - - - - - The pasted text contains leading or trailing white space. Trim it automatically? - - - - - Edit value - Modifier la valeur - - - - SqlTableModel - - - Error while committing new row: %1 - - - - - Error while deleting row from table %1: %2 - Erreur à la suppression d’une ligne de la table %1 : %2 - - - - SqliteExtensionEditor - - - Filter extensions - - - - - Leave empty to use default function - - - - - Extension file - - - - - Initialization function - - - - - Databases - - - - - Register in all databases - - - - - Register in following databases: - - - - - Extension manager window has uncommitted modifications. - - - - - Extension manager - - - - - Commit all extension changes - - - - - Rollback all extension changes - - - - - Add new extension - - - - - Remove selected extension - - - - - Editing extensions manual - - - - - File with given path does not exist or is not readable. - - - - - Unable to load extension: %1 - - - - - Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. - - - - - Dynamic link libraries (*.dll);;All files (*) - - - - - Shared objects (*.so);;All files (*) - - - - - Dynamic libraries (*.dylib);;All files (*) - - - - - All files (*) - Tous les fichiers(*) - - - - Open file - Fichier ouvert - - - - StatusField - - - Status - Barre d’état - - - - Copy - Copier - - - - Clear - Vider - - - - TableConstraintsModel - - - Type - table constraints - Type - - - - Details - table constraints - Détails - - - - Name - table constraints - Nom - - - - TableForeignKeyPanel - - - Foreign table: - Table étrangère : - - - - SQLite 2 does not support foreign keys officially, -but it's okay to use them anyway. - SQLite 2 ne supporte pas officielement les clefs étrangères, mais vous pouvez les utilisées tout de même. - - - - Columns - Colonnes - - - - Local column - Colonne locale - - - - Foreign column - Colonne étrangère - - - - Reactions - Réactions - - - - Deferred foreign key - - - - - Named constraint - Contrainte nommée - - - - Constraint name - Nom de la contrainte - - - - Pick the foreign column. - Choisir la colonne étrangère. - - - - Pick the foreign table. - Choisir la table étrangère. - - - - Select at least one foreign column. - Sélectionner au moins une colonne étrangère. - - - - Enter a name of the constraint. - Saisissez un nom de contrainte. - - - - Foreign column - table constraints - Colonne étrangère - - - - TablePrimaryKeyAndUniquePanel - - - Columns - Colonnes - - - - Column - Colonne - - - - Collation - Collation - - - - Sort - Tri - - - - Valid only for a single column with INTEGER data type - Valide seulement pour une simple colonne avecun type de données INTEGER - - - - Autoincrement - Auto-incrémentation - - - - Named constraint - Contrainte nommée - - - - Constraint name - Nom de la contrainte - - - - On conflict - Sur conflit - - - - Collate - table constraints - Collationne - - - - Sort order - table constraints - Ordre de tri - - - - Select at least one column. - Sélectionnez au moins une colonne. - - - - Enter a name of the constraint. - Saisissez le nom de la contrainte. - - - - TableStructureModel - - - Name - table structure columns - Nom - - - - Data type - table structure columns - Type de données - - - - Primary -Key - table structure columns - - - - - Foreign -Key - table structure columns - - - - - Unique - table structure columns - Unique - - - - Check - table structure columns - Contrôle - - - - Not -NULL - table structure columns - - - - - Collate - table structure columns - - - - - Default value - table structure columns - Valeur par défaut - - - - TableWindow - - - Structure - Structure - - - - Table name: - Nom de la table : - - - - - Data - Données - - - - Constraints - Contraintes - - - - Indexes - Index - - - - Triggers - Déclencheurs - - - - DDL - DDL - - - - Export table - table window - Exporter une table - - - - Import data to table - table window - Importer les données d’une table - - - - Populate table - table window - Peupler une table - - - - Refresh structure - table window - Actualiser la structure - - - - Commit structure changes - table window - Enregistrer les modifications de la structure - - - - Rollback structure changes - table window - Annuler les modifications de la structure - - - - Add column - table window - Ajouter une colonne - - - - Edit column - table window - Modifier une colonne - - - - - Delete column - table window - Supprimer une colonne - - - - Move column up - table window - Monter la colonne - - - - Move column down - table window - Descendre la colonne - - - - Create similar table - table window - Créer une table identique - - - - Reset autoincrement value - table window - Réinitialisation de l’incrémentation - - - - Add table constraint - table window - Ajouter une contrainte de table - - - - Edit table constraint - table window - Modifier la contrainte de table - - - - Delete table constraint - table window - Supprimer la contrainte de table - - - - Move table constraint up - table window - Monter la contrainte de table - - - - Move table constraint down - table window - Descendre la contrainte de table - - - - Add table primary key - table window - Ajouter une clef primaire à la table - - - - Add table foreign key - table window - Ajouter une clef étrangère à la table - - - - Add table unique constraint - table window - Ajouter une contrainte clef unique à la table - - - - Add table check constraint - table window - Ajouter une contrainte de contrôle à la table - - - - Refresh index list - table window - Actualiser la liste des index - - - - Create index - table window - Créer un index - - - - Edit index - table window - Modifier un index - - - - Delete index - table window - Supprimer un index - - - - Refresh trigger list - table window - Actualiser la liste des déclencheurs - - - - Create trigger - table window - Créer un déclencheur - - - - Edit trigger - table window - Modifier un déclencheur - - - - Delete trigger - table window - Supprimer un déclencheur - - - - Are you sure you want to delete column '%1'? - table window - Êtes-vous certain de vouloir supprimer la colonne : « %1 » ? - - - - Following problems will take place while modifying the table. -Would you like to proceed? - table window - Des problèmes suivants auront lieu en modifiant la table. -Voudriez-vous procéder ? - - - - Table modification - table window - Modification de la table - - - - Could not load data for table %1. Error details: %2 - Impossible de charger les données de table %1. Détails d’ erreur : %2 - - - - Could not process the %1 table correctly. Unable to open a table window. - Impossible de lancer correctement la table %1. Impossible d’ouvrir la fenêtre de table. - - - - Could not restore window %1, because no database or table was stored in session for this window. - - - - - Could not restore window '%1', because no database or table was stored in session for this window. - - - - - Could not restore window '%1', because database %2 could not be resolved. - - - - - Could not restore window '%1'', because the table %2 doesn't exist in the database %3. - - - - - Committed changes for table '%1' successfully. - - - - - Committed changes for table '%1' (named before '%2') successfully. - - - - - Autoincrement value for table '%1' has been reset successfully. - - - - - Uncommitted changes - - - - - There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. -Do you want to commit the structure, or do you want to go back to the structure tab? - - - - - Table window "%1" has uncommitted structure modifications and data. - - - - - Table window "%1" has uncommitted data. - - - - - Table window "%1" has uncommitted structure modifications. - - - - - - New table %1 - Nouvelle table %1 - - - - Could not commit table structure. Error message: %1 - table window - Impossible d’enregistrer la structure de table. Message d’erreur : %1 - - - - Reset autoincrement - Réinitialisation de l’incrémentation - - - - Are you sure you want to reset autoincrement value for table '%1'? - Êtes-vous certain de vouloir réinitialiser l’auto-incrémentation de la table %1 ? - - - - An error occurred while trying to reset autoincrement value for table '%1': %2 - Une erreur est survenue pendant la réinitialisation de la valeur de l’auto-incrémentation de la table « %1 » : %2 - - - - Empty name - Nom vide - - - - A blank name for the table is allowed in SQLite, but it is not recommended. -Are you sure you want to create a table with blank name? - Un nom vide pour la vue dans SQLITE est admis, mais on ne le recommande pas. -Êtes-vous sûrs que vous voulez créer une vue avec le nom vide ? - - - - Cannot create a table without at least one column. - Impossible de créer une table sans au moins une colonne. - - - - Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. - Impossible de créer la table %1, s’il n’y a pas de clef primaire de définie. Toutefois ne pas contrôler %2 ou définir une clef primaire. - - - - Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. - Impossible d’utiliser l’auto-incrémentation pour une clef primaire quand la clause %1 est utilisée. Toutefois ne pas contrôler %2, ou utiliser l’auto-incrémentation sur une clef primaire. - - - - Are you sure you want to delete table constraint '%1'? - table window - Êtes-vous sûr de vouloir supprimer la contrainte « %1 » ? - - - - Delete constraint - table window - Supprimer la contrainte - - - - Cannot export, because no export plugin is loaded. - Export impossible, car aucun plugin d’import n’est chargé. - - - - Cannot import, because no import plugin is loaded. - Import impossible, car aucun plugin d’import n’est chargé. - - - - Go back to structure tab - Retour à l’onglet de structure - - - - Commit modifications and browse data. - Enregistrer les modifications et continuer - - - - Name - table window indexes - Nom - - - - Unique - table window indexes - Unique - - - - Columns - table window indexes - Colonnes - - - - Partial index condition - table window indexes - Condition partielle d’index - - - - Name - table window triggers - Nom - - - - Event - table window triggers - Événement - - - - Condition - table window triggers - Condition - - - - Details - table window triggers - Details - - - - TriggerColumnsDialog - - - Trigger columns - Colonnes de déclencheur - - - - Triggering columns: - Colonnes avec déclencheurs : - - - - Select all - Tout sélectionner - - - - Deselect all - Tout désélectionner - - - - TriggerDialog - - - - Trigger - Déclencheur - - - - On table: - Sur table : - - - - Action: - Action : - - - - - <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> - <p> La condition SQL sera évaluée avant le code du déclencheur réel. Dans le cas où le retour de condition est faux, le déclencheur ne sera pas utilisé pour cette ligne.</p > - - - - Pre-condition: - Précondition : - - - - The scope is still not fully supported by the SQLite database. - La portée n’est toujours pas entièrement supportée par la base de données SQLITE. - - - - Trigger name: - Nom du déclencheur : - - - - When: - Quand : - - - - List of columns for UPDATE OF action. - Liste des colonnes pour l’action UPDATE OF. - - - - Scope: - Portée : - - - - Code: - Code : - - - - Trigger statements to be executed. - Déclaration du déclencheur devant être exécutée. - - - - DDL - DDL - - - - On view: - Sur vue : - - - - Could not process trigger %1 correctly. Unable to open a trigger dialog. - Impossible d’exécuter correctement le déclencheur %1. Ouverture invalide du dialogue de déclencheur. - - - - Enter a valid condition. - Saisissez une condition valide. - - - - Enter a valid trigger code. - Saisissez un code de déclencheur valide. - - - - Error - trigger dialog - Erreur - - - - An error occurred while executing SQL statements: -%1 - Une erreur survenue lors de l’exécution de l’intruction SQL : %1 - - - - VersionConvertSummaryDialog - - - Database version convert - Version de convertion de la base de données - - - - Following changes to the SQL statements will be made: - Des modifications suivantes aux déclarations SQL seront faits : - - - - Before - Avant - - - - After - Après - - - - ViewWindow - - - Query - Requête - - - - View name: - Nom de la vue : - - - - Output column names - - - - - - Data - Données - - - - Triggers - Déclencheur - - - - DDL - DDL - - - - - Could not restore window '%1', because no database or view was stored in session for this window. - - - - - Could not restore window '%1', because database %2 could not be resolved. - - - - - Could not restore window '%1', because database %2 could not be open. - - - - - Could not restore window '%1', because the view %2 doesn't exist in the database %3. - - - - - - New view %1 - Nouvelle vue %1 - - - - Refresh the view - view window - Actualisation de la vue - - - - Commit the view changes - view window - Enregistrement des changements dans la vue - - - - Rollback the view changes - view window - Annulation des changements dans la vue - - - - Explicit column names - - - - - Generate output column names automatically basing on result columns of the view. - - - - - Add column - view window - Ajouter une colonne - - - - Edit column - view window - Modifier une colonne - - - - Delete column - view window - Supprimer une colonne - - - - Move column up - view window - - - - - Move column down - view window - - - - - Refresh trigger list - view window - Actualisation de la liste des déclencheurs - - - - Create new trigger - view window - Création d’un nouveau déclencheur - - - - Edit selected trigger - view window - Modification du déclencheur sélectionné - - - - Delete selected trigger - view window - Suppression du déclencheur sélectionné - - - - View window "%1" has uncommitted structure modifications and data. - - - - - View window "%1" has uncommitted data. - - - - - View window "%1" has uncommitted structure modifications. - - - - - Uncommitted changes - - - - - There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. -Do you want to commit the structure, or do you want to go back to the structure tab? - - - - - Committed changes for view '%1' successfully. - - - - - Committed changes for view '%1' (named before '%2') successfully. - - - - - Could not load data for view %1. Error details: %2 - Impossible de charher les données de vue %1. Détails d’ erreur : %2 - - - - Go back to structure tab - Retour à l’onlet de structure - - - - Commit modifications and browse data. - Enregistrement des modifications et navigation des données. - - - - Could not commit view changes. Error message: %1 - view window - Impossible d’enregistrer les modifications de vue. Message d’erreur : %1 - - - - Override columns - - - - - Currently defined columns will be overriden. Do you want to continue? - - - - - Could not determinate columns returned from the view. The query is problably incomplete or contains errors. - - - - - Name - view window triggers - Nom - - - - Instead of - view window triggers - À la place de - - - - Condition - view window triggers - Condition - - - - Details - table window triggers - Détails - - - - Could not process the %1 view correctly. Unable to open a view window. - Impossible de lancer correctement la vue %1. Impossible d’ouvrir la fenêtre de vue. - - - - Empty name - Nom absent - - - - A blank name for the view is allowed in SQLite, but it is not recommended. -Are you sure you want to create a view with blank name? - Un nom vide pour la vue dans SQLITE est admis, mais on ne le recommande pas. -Êtes-vous sûrs que vous voulez créer une vue avec le nom vide ? - - - - The SELECT statement could not be parsed. Please correct the query and retry. -Details: %1 - La déclaration SELECT ne peut être analysé. Veuillez corriger la requête et réessayer. -Details : %1 - - - - The view could not be modified due to internal SQLiteStudio error. Please report this! - La vue ne peut être modifiée a cause d’une erreur interne de SQLiteStudio. SVP repportez l’erreur ! - - - - The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. - - - - - Following problems will take place while modifying the view. -Would you like to proceed? - view window - Des problèmes suivants auront lieu en modifiant la vue. -Veulez-vous continuer ? - - - - View modification - view window - Fenêtre vue - - - - WidgetCover - - - Interrupt - Interruption - - - diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_fr_FR.ts b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_fr_FR.ts new file mode 100644 index 0000000..e52792a --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_fr_FR.ts @@ -0,0 +1,7106 @@ + + + + + AboutDialog + + + About SQLiteStudio and licenses + À propos de SQLiteStudio et des licences + + + + About + À propos de… + + + + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + + + + Licenses + Licences + + + + Environment + Environnement + + + + Icon directories + Répertoires des images + + + + Form directories + Répertoires des formulaires + + + + SQLite extension directories + Répertoire d'extensions SQLite + + + + Plugin directories + Répertoires des plugins + + + + Configuration directory + Répertoire de configuration + + + + Application directory + Répertoire de l’application + + + + Qt version: + Version Qt : + + + + SQLite 3 version: + Version de SQLite 3 : + + + + Portable distribution. + Version portable. + + + + MacOS X application bundle distribution. + MacOS X application bundle distribution. + + + + Operating system managed distribution. + Distribution gérée par le système d'exploitation. + + + + <h3>Table of contents:</h3><ol>%2</ol> + <h3>Table des matières : </h3><ol>%2</ol> + + + + BindParamsDialog + + + Query parameters + Paramètres de requête + + + + Please provide values for query parameters + Veuillez fournir des valeurs pour les paramètres de la requête + + + + CodeSnippetEditor + + + Filter snippets + Filtrer les extraits + + + + + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + <html><head/><body><p>Raccourci facultatif, qui ne fonctionnera que dans le contexte de la fenêtre de l'assistant de code actif. Il permet à l'utilisateur d'utiliser des combinaisons de touches, qui autrement seraient en conflit avec d'autres raccourcis. Avoir la fenêtre d'assistant de code comme contexte requis rend le choix des touches plus polyvalent.</p></body></html> + + + + + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + + + + Snippet name + Nom de l'extrait + + + + Code assistant shortcut + Raccourci de l'assistant de code + + + + Snippet code + Extrait de code + + + + Code Snippets editor window has uncommitted modifications. + La fenêtre de l'éditeur d'extraits de code a des modifications invalidées. + + + + Code Snippets editor + Éditeur d'extraits de code + + + + Commit all snippet changes + Commit all snippet changes + + + + Rollback all snippet changes + Rollback all snippet changes + + + + Create new snippet + Create new snippet + + + + Delete selected snippet + Delete selected snippet + + + + Move the snippet up + Déplacer l'extrait vers le haut + + + + Move the snippet down + Déplacer l'extrait vers le bas + + + + Code snippets manual + Manuel d'extraits de code + + + + Enter a non-empty, unique name of the snippet. + Entrez un nom unique et non vide de l'extrait. + + + + Enter a non-empty snippet content. + Entrez un extrait de contenu non vide. + + + + This hotkey is not unique in context of a code assistant. + Ce raccourci n'est pas unique dans le contexte d'un assistant de code. + + + + CollationsEditor + + + Filter collations + Filtre de collation + + + + Databases + Base de données + + + + Register in all databases + Inscrire dans toutes les bases de données + + + + Register in following databases: + Inscrire dans les bases de données suivantes : + + + + Implementation code: + Code d’implémentation : + + + + Collation name: + Nom de collation : + + + + Implementation language: + Language d’implémentation : + + + + Collations editor + Éditeur de collation + + + + Commit all collation changes + Valider toutes les modifications de classement + + + + Rollback all collation changes + Annuler toutes les modifications de collation + + + + Create new collation + Création de collation + + + + Delete selected collation + Supprimer la collation sélectionnée + + + + Editing collations manual + Manuel pour l'édition de collations + + + + Enter a non-empty, unique name of the collation. + Saisissez un nom unique, non vide, de regroupement. + + + + Pick the implementation language. + Choisir le language d’implémentation. + + + + Enter a non-empty implementation code. + Saisissez un nom, non vide, de language d’implémentation. + + + + Collations editor window has uncommitted modifications. + L’éditeur de collations a des modifications non enregistrées. + + + + ColorButton + + + Pick a color + Choisir une couleur + + + + ColumnCollatePanel + + + Collation name: + Nom de la collation : + + + + Named constraint: + Contrainte nommée : + + + + Enter a name of the constraint. + Saisir le nom de la contrainte. + + + + Enter a collation name. + Saisir le nom de la collation. + + + + ColumnDefaultPanel + + + Default value: + Valeur par défaut : + + + + Named constraint: + Contrainte nommée : + + + + Enter a default value expression. + Saisissez l’expression d’une valeur par défaut. + + + + Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. + Expression de valeur par défaut invalide : %1. Si vous souhaitez utiliser une chaîne de caractère simple comme valeur, n'oubliez pas de l'entourer de guillemets. + + + + Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. + Expression de valeur par défaut invalide. Si vous voulez utiliser une chaîne de caractère simple comme valeur, n'oubliez pas de l'entourer de guillemets. + + + + Enter a name of the constraint. + Saisir un nom de contrainte. + + + + ColumnDialog + + + Column + Colonne + + + + Name and type + Nom et type + + + + Scale + Échelle + + + + Precision + Précision + + + + Data type: + Type de données : + + + + Column name: + Nom de colonne : + + + + Size: + Taille : + + + + Constraints + Contraintes + + + + Generated value + Valeur générée + + + + Unique + Unique + + + + + + + + + + + Configure + Configurer + + + + Foreign Key + Clef étrangère + + + + Collate + Collation + + + + Not NULL + Non NULL + + + + Check condition + Vérifier la condition + + + + Primary Key + Clef primaire + + + + Default + Défaut + + + + Advanced mode + Mode avancé + + + + Add constraint + column dialog + Ajouter une contrainte + + + + Edit constraint + column dialog + Editer la contrainte + + + + + Delete constraint + column dialog + Supprimer la contrainte + + + + Move constraint up + column dialog + Monter la contrainte + + + + Move constraint down + column dialog + Descendre la contrainte + + + + Add a primary key + column dialog + Ajouter une clef primaire + + + + Add a foreign key + column dialog + Ajouter une clef étrangère + + + + Add an unique constraint + column dialog + Ajouter une contrainte d'unicité + + + + Add a check constraint + column dialog + Ajouter une contrainte de contrôle + + + + Add a not null constraint + column dialog + Ajouter une contrainte non NULL + + + + Add a collate constraint + column dialog + Ajouter un commentaire à la contrainte + + + + Add a generated value constraint + column dialog + Ajouter une contrainte de valeur générée + + + + Add a default constraint + column dialog + Ajouter une contrainte par défaut + + + + Are you sure you want to delete constraint '%1'? + column dialog + Êtes-vous sûr de vouloir supprimer la contrainte « %1 » ? + + + + Correct the constraint's configuration. + Corrigez la configuration de la contrainte. + + + + Scale is not allowed for INTEGER PRIMARY KEY columns. + L'échelle n'est pas autorisée pour les colonnes CLÉ PRIMAIRE DE NOMBRE ENTIER. + + + + Precision cannot be defined without the scale. + La précision ne peut pas être définie sans l'échelle. + + + + Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. + Impossible d'utiliser un autre type que NOMBRE ENTIER si AUTOINCRÉMENTATION est activé dans la CLÉ PRIMAIRE. + + + + INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. + Le type NOMBRE ENTIER a été appliqué en raison de l'activation de AUTOINCRÉMENTATION dans la CLÉ PRIMAIRE. + + + + Precision is not allowed for INTEGER PRIMARY KEY columns. + La précision n'est pas autorisée pour les colonnes CLÉ PRIMAIRE DE NOMBRE ENTIER. + + + + Could not match valid STRICT table datatype from declared type: %1. + Impossible de faire correspondre le type de données, tableau STRICT valide du type déclaré : %1. + + + + ColumnDialogConstraintsModel + + + Type + column dialog constraints + Type + + + + Name + column dialog constraints + Nom + + + + Details + column dialog constraints + Détails + + + + ColumnForeignKeyPanel + + + Foreign table: + Table étrangère : + + + + Foreign column: + Colonne étrangère : + + + + Reactions + Réactions + + + + Deferred foreign key + Clef étrangère refusée + + + + Named constraint + Contrainte nommée + + + + Constraint name + Nom de contrainte + + + + Pick the foreign table. + Sélectionner la table étrangère. + + + + Pick the foreign column. + Sélectionner la colonne étrangère. + + + + Enter a name of the constraint. + Saisir un nom de contraite. + + + + ColumnGeneratedPanel + + + Generating code: + Génération du code : + + + + Explicit type: + Type explicite : + + + + Use "GENERATED ALWAYS" keywords + Utilisez des mots-clés "TOUOURS GÉNÉRÉ" + + + + Named constraint: + Contrainte nommée : + + + + Enter the column value generating expression. + Entrez l'expression de génération de la valeur de la colonne. + + + + Invalid value generating expression: %1. + Expression de génération de valeur non valide : %1. + + + + Invalid value generating expression. + Expression de génération de valeur invalide. + + + + Enter a name of the constraint. + Écrivez le nom de la contrainte. + + + + ColumnPrimaryKeyPanel + + + Autoincrement + Auto-incrémentation + + + + Sort order: + Ordre de tri : + + + + Named constraint: + Contrainte nommée : + + + + On conflict: + En cas de conflit : + + + + Enter a name of the constraint. + Saisissez le nom d’une contrainte. + + + + Descending order is not allowed with AUTOINCREMENT. + Ordre décroissant n'est pas autorisé avec AUTOINCRÉMENTATION. + + + + ColumnUniqueAndNotNullPanel + + + Named constraint: + Contrainte nommée : + + + + On conflict: + En cas de conflit : + + + + Enter a name of the constraint. + Saisissez un nom de contrainte. + + + + CompleterWindow + + + Column: %1 + completer statusbar + Colonne : %1 + + + + Table: %1 + completer statusbar + Table : %1 + + + + Index: %1 + completer statusbar + Index : %1 + + + + Trigger: %1 + completer statusbar + Déclencheur : %1 + + + + View: %1 + completer statusbar + Vue : %1 + + + + Database: %1 + completer statusbar + Base de données : %1 + + + + Keyword: %1 + completer statusbar + Mot-clef : %1 + + + + Function: %1 + completer statusbar + Fonction : %1 + + + + Operator: %1 + completer statusbar + Opérateur : %1 + + + + String + completer statusbar + Chaîne de caractères + + + + Number + completer statusbar + Nombre + + + + Binary data + completer statusbar + Données binaires + + + + Collation: %1 + completer statusbar + Collation : %1 + + + + Pragma function: %1 + completer statusbar + Fonction Pragma : %1 + + + + Insert a code snippet + Insérer un extrait de code + + + + ConfigDialog + + + + Configuration + Configuration + + + + Search + Recherche + + + + General + Général + + + + Keyboard shortcuts + Raccourcis clavier + + + + Look & feel + Apparence + + + + Style + Style + + + + Fonts + Polices + + + + Code colors + Couleurs du code + + + + + Database list + Liste de base de données + + + + Code assistant + Assistant de code + + + + Data browsing + Navigation de données + + + + Data editors + Éditeurs de données + + + + Plugins + Plugins + + + + Code formatters + Formateurs de code + + + + If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. + Sur off, les colonnes seront triées dans l’ordre de saisie de l’instruction CREATE TABLE. + + + + Sort table columns alphabetically + Ordre de tri alpha de la colonne + + + + Expand tables node when connected to a database + Développer le nœud des tables lors de la connexion de la base de données + + + + <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> + <p>Les labels supplémentaires sont ceux montrés à côté des noms dans la liste de bases de données ( bleus,sauf autre configaration). Permettre cette option aboutira aux lablels pour des bases de données, des bases de données invalides et des noeuds (colonnes, index, déclancheur). Pour plus de labels voir des options ci-dessous.<p> + + + + Display additional labels on the list + Afficher des labels supplémentaires dans la liste + + + + For regular tables labels will show number of columns, indexes and triggers for each of tables. + Pour des tables courantes les labels montrerons le nombre der colonnes, index et déclencheurs pour chaque tables. + + + + Display labels for regular tables + Afficher les labels pour les tables courantes + + + + Virtual tables will be marked with a 'virtual' label. + Les tables vituelles seront marquées avec un label « virtuel ». + + + + Display labels for virtual tables + Afficher les labels pour les tables virtuelles + + + + Expand views node when connected to a database + Développer le nœud des vues lorsque la base de données est connectée + + + + If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) + Si cette option est désactivée, les objets seront triés pour qu’ ils apparaissent dans la table sqlite_master (dans l’ordre de création) + + + + Sort objects (tables, indexes, triggers and views) alphabetically + Tri d’objets (tables, index, déclancheurs et vues) en alpha + + + + Display system tables and indexes on the list + Afficher les tables système et index dans la liste + + + + Database dialog window + Fenêtre de dialogue de la base de données + + + + <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> + <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> + + + + Do not mark database to be "permanent" by default + Ne pas marquer la base de données comme étant "permanente" par défaut + + + + <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> + <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> + + + + Try to bypass dialog completly when dropping database file onto the list + Essayez de contourner complètement la boîte de dialogue lors du dépôt du fichier de la base de données dans la liste + + + + Data browsing and editing + Navigateur et éditeur de données + + + + + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + <p>Nombre maximum de configurations de Tableau de Populations de boîte de dialogue stockées dans la configuration. La valeur 100 doit être suffisante.</p> + + + + Number of memorized table populating configurations + Nombre de tableaux mémorisés remplissant les configurations + + + + Data column width + Largeur de colonne de données + + + + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + + + + Enlarge column when entering value longer than current width + Agrandir la colonne en entrant une valeur plus longue que la largeur actuelle + + + + <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> + <p>Lorsque les données sont lues dans le tableau, la largeur est automatiquement ajustée. Cette valeur limite la largeur initiale pour l’ajustement, mais l’utilisateur peut recadrer les colonnes manuellement au-dessus de cette limite.</p> + + + + Number of data rows per page: + Nombre de lignes de données par page : + + + + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> + + + + Show column and row details tooltip in data view + Afficher l'infobulle des détails des colonnes et des lignes dans la vue des données + + + + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + + + + Keep NULL value when entering empty value + Conserver la valeur NULL en entrant une valeur vide + + + + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> + + + + Use DEFAULT value (if defined), when committing NULL value + Utiliser la valeur DEFAULT (si définie), lors de la validation de la valeur NULL + + + + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + + + + Limit number of rows for in case of dozens of columns + Limiter le nombre de lignes en cas de dizaines de colonnes + + + + Inserting new row in data grid + Insertion d'une nouvelle ligne dans la grille de données + + + + Before currently selected row + Avant la ligne courante + + + + After currently selected row + Après la ligne courante + + + + At the end of data view + À la fin de la vue de données + + + + Table windows + Fenêtres de tables + + + + <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> + <p>Lorsque cette option est activée, les Fenêtres des Tableaux s'afficheront avec l'onglet de données, au lieu de l'onglet structure.</p> + + + + Open Table Windows with the data tab for start + Sélectionner l'onglet de données lors de l'ouverture d'une fenêtre de table + + + + <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> + <p>Lorsque cette option est activée, l'onglet "Données" sera placé en tant que premier onglet dans chaque Fenêtre de Tableaux, au lieu d'être à la deuxième place.</p> + + + + Place data tab as first tab in a Table Window + Placer l'onglet Données en premier dans les fenêtres de tables + + + + View windows + Fenêtre de vue + + + + <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> + <p>Lorsque cette option est activée, les Fenêtres de Vue s'afficheront avec l'onglet de données, au lieu de l'onglet structure.</p> + + + + Open View Windows with the data tab for start + Sélectionner l'onglet de données lors de l'ouverture d'une fenêtre de vue + + + + <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> + <p>Lorsque cette option est activée, l'onglet "Données" sera placé en tant que premier onglet dans chaque Fenêtre de Vue, au lieu d'être à la deuxième place.</p> + + + + Place data tab as first tab in a View Window + Placer l'onglet de données comme premier onglet dans une fenêtre de vue + + + + Data types + Types de données + + + + Available editors: + Éditeurs disponibles : + + + + Editors selected for this data type: + Éditeur sélectionné pour ce type de données : + + + + Schema editing + Edition de schéma + + + + Number of DDL changes kept in history. + Nombre de DDL modifiés gardés dans l’historique. + + + + DDL history size: + Dimension de l’historique DDL : + + + + Don't show DDL preview dialog when committing schema changes + Cacher la boîte de dialogue d'aperçu des DDL lors de la validation des modifications de schéma + + + + SQL queries + Requêtes SQL + + + + + Number of queries kept in the history. + Nombre de requêtes gardées dans l’historique. + + + + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> + <html><head/><body><p>S'il y a plus d'une requête dans la fenêtre de l'éditeur SQL, alors (si cette option est activée), seulement une requête sera exécutée - celle sous le curseur d'insertion du clavier. Sinon, toutes les requêtes seront exécutées. Vous pouvez toujours limiter les requêtes à exécuter en sélectionnant ces requêtes avant d'appeler à l'exécution. Vous pouvez également utiliser des raccourcis dédiés pour l'exécution dans un mode ou dans l'autre (actuellement configuré à %1 pour l'exécution d'une requête unique et %2 pour l'exécution de toutes les requêtes).</p></body></html> + + + + History size: + Dimension de l’historique : + + + + + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> + + + + Execute only the query under the cursor + Exécuter seulement la requête sous le curseur + + + + Number of memorized query parameters + Nombre de paramètres de requête mémorisés + + + + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + + + + Use scientific notation for real numbers in the grid view + Utiliser la notation scientifique pour les nombres réels dans la vue de grille + + + + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + + + + Limit automatic data column width to (in pixels): + Limiter la largeur de la colonne de données automatique à (en pixels) : + + + + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + + + + Keep at least the width to show complete column name + Garder au moins la largeur pour afficher le nom complet de la colonne + + + + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + + + + Wrap lines in SQL editor + Envelopper les lignes dans l'éditeur SQL + + + + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + <html><head/><body><p>Surligne la requête entière qui est actuellement sous le curseur d'insertion. Ce sera la même requête qui sera exécutée lorsque vous appuierez sur &quot;Exécuter la requête&quot; raccourci ou le bouton (sauf si configuré autrement).</p></body></html> + + + + Highlight current query + Surligner la requête actuelle + + + + Updates + Mises à jour + + + + Automatically check for updates at startup + Contrôle automatique des mises à jour au lancement + + + + Session + Session + + + + Restore last session (active MDI windows) after startup + Restaurer la dernière session (Fenêtre MDI active) après lancement + + + + Allow multiple instances of the application at the same time + Autoriser plusieurs instances de l'application en même temps + + + + Status Field + Champ de statut + + + + <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> + <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> + + + + Always open Status panel when new message is printed + Toujours ouvrir le panneau de Statut quand un nouveau message est écrit + + + + Code syntax colors + Couleurs de syntaxe du code + + + + Keyword foreground + Premier plan du mot-clé + + + + Regular foreground + Premier plan par défaut + + + + String foreground + Premier plan de la chaîne de caractère + + + + Comment foreground + Premier plan du commentaire + + + + Valid objects foreground + Premier plan des objets valides + + + + Current query background + Arrière-plan de la requête actuelle + + + + Bind parameter foreground + Lier le paramètre au premier plan + + + + Current line background + Arrière-plan de la ligne actuelle + + + + Matched parenthesis background + Arrière-plan de parenthèse correspondante + + + + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + <html><head/><body><p>Vous pouvez désactiver le surlignage de la requête actuelle sur la page des paramètres généraux.</p></body></html> + + + + Number foreground + Premier plan du nombre + + + + BLOB value foreground + Valeur du BLOB au premier plan + + + + Matched parenthesis foreground + Premier plan de parenthèse correspondante + + + + Reset to defaults + Rétablir les valeurs par défaut + + + + Filter shortcuts by name or key combination + Filtre par nom raccourci ou combinaison de touches + + + + Action + Action + + + + Key combination + Combinaison de touches + + + + + Language + Langage + + + + Changing language requires application restart to take effect. + Le changement de langage requiert le redémarrage de l’application pour prendre effet. + + + + Compact layout + Présentation compacte + + + + <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> + <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> + + + + Use compact layout + Utiliser la présentation compacte + + + + Main window dock areas + Zones de dock de la fenêtre principale + + + + Left and right areas occupy corners + Les zones de gauche et de droite occupent des coins + + + + Top and bottom areas occupy corners + Les zones supérieures et inférieures occupent des coins + + + + Hide built-in plugins + Cacher des plugins incorporés + + + + Current style: + Style actuel : + + + + Preview + Aperçu + + + + Enabled + En service + + + + Disabled + Hors service + + + + Active formatter plugin + Plugin de formattage actif + + + + SQL editor font + Police de caractères de l’éditeur SQL + + + + Database list font + Liste des polices de caractères de base de données + + + + Database list additional label font + Police de caractères additionelle de la liste des bases de données + + + + Data view font + Police de caractères des données de vue + + + + Status field font + Police de caractères du champ d’état + + + + Code assistant settings + Paramètres de l'assistant de code + + + + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + <html><head/><body><p>Si cette option est activée, l'assistant de code sera déclenché dans certains cas, par exemple lorsque l'utilisateur écris <span style=" font-weight:700;">NomdeTableau.</span> pour proposer certaines colonnes du tableau. Si l'option est désactivée, l'utilisateur devra appuyer explicitement sur la touche de raccourci assistant.</p></body></html> + + + + Automatically trigger the assistant after a dot is typed after an object name + Déclenche automatiquement l'assistant après qu'un point soit écris après le nom d'un objet + + + + Description: + plugin details + Description : + + + + Category: + plugin details + Catégorie : + + + + Version: + plugin details + Version : + + + + Author: + plugin details + Auteur : + + + + Internal name: + plugin details + Nom interne : + + + + Dependencies: + plugin details + Dépendances : + + + + Conflicts: + plugin details + Conflits : + + + + Plugin details + Détails du plugin + + + + Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. + Les plugins sont chargés/déchargés immédiatement avec vérifié/non vérifié, mais les modifications de la liste de plugins à charger au lancement ne sont pas enregistrées avant l’enregistrement de la configuration entière. + + + + %1 (built-in) + plugins manager in configuration dialog + %1 (intégré) + + + + Details + Détails + + + + No plugins in this category. + Pas de plugins dans cette catégorie. + + + + Add new data type + Ajouter un nouveau type de données + + + + Rename selected data type + Renommer le type de données sélectionné + + + + Delete selected data type + Supprimer le type de données sélectionnées + + + + Help for configuring data type editors + Aide à la configuration des éditeurs de type de données + + + + Clear hotkey for this action + Clear hotkey for this action + + + + Restore original hotkey for this action + Restore original hotkey for this action + + + + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + + + + ConstraintCheckPanel + + + The condition + Condition + + + + Named constraint: + Contrainte nommée : + + + + On conflict + Sur conflit + + + + Enter a valid condition. + Saississez une condition valide. + + + + Enter a name of the constraint. + Saississez un nom de contrainte valide. + + + + ConstraintDialog + + + New constraint + constraint dialog + Nouvelle contrainte + + + + Create + constraint dialog + Créer + + + + Edit constraint + dialog window + Modifier la contrainte + + + + Apply + constraint dialog + Appliquer + + + + Primary key + table constraints + Clef primaire + + + + Foreign key + table constraints + Clef étrangère + + + + Unique + table constraints + Unique + + + + Not NULL + table constraints + Non NULL + + + + Check + table constraints + Contrôle + + + + Generated + table constraints + Généré + + + + Collate + table constraints + Regroupe + + + + Default + table constraints + Défaut + + + + ConstraintTabModel + + + Table + table constraints + Tableau + + + + Column (%1) + table constraints + Colonne (%1) + + + + Scope + table constraints + Portée + + + + Type + table constraints + Type + + + + Details + table constraints + Détails + + + + Name + table constraints + Nom + + + + CssDebugDialog + + + SQLiteStudio CSS console + Console CSS SQLiteStudio + + + + DataView + + + Filter data + data view + Filtre de données + + + + Grid view + Table + + + + Form view + Formulaire + + + + Refresh table data + data view + Actualiser les données de la table + + + + First page + data view + Première page + + + + Previous page + data view + Page précédente + + + + Next page + data view + Page suivante + + + + Last page + data view + Dernière page + + + + Commit changes for selected cells + data view + Valider les modifications pour les cellules sélectionnées + + + + Rollback changes for selected cells + data view + Annuler les modifications des celulles sélectionnées + + + + Show grid view of results + data view + Affichage des résultats en tableau + + + + Show form view of results + data view + Affichage des résultat en formulaire + + + + Filter by text (if contains) + data view + Filtrer par texte (si contenu) + + + + Filter strictly by text (if equals) + data view + Filtrer strictement par texte (si égal) + + + + Tabs on top + data view + Onglets en haut + + + + Tabs at bottom + data view + Onglet en bas + + + + Place new rows above selected row + data view + Placer les nouvelles lignes au-dessus de la ligne sélectionnée + + + + Place new rows below selected row + data view + Placer les nouvelles lignes sous la ligne sélectionnée + + + + Place new rows at the end of the data view + data view + Placer les nouvelles lignes à la fin de la vue des données + + + + Total number of rows is being counted. +Browsing other pages will be possible after the row counting is done. + Le total des lignes en cours de comptage. La navigation d’autres pages à la fin du comptage. + + + + Row: %1 + Lignes : %1 + + + + Filter + Filtre + + + + Hit Enter key or press "Apply filter" button on toolbar to apply new value. + Appuyez sur la touche Entrée ou appuyez sur "Appliquer le filtre" dans la barre d'outils pour appliquer une nouvelle valeur. + + + + Filter by the Regular Expression + data view + Filtrer par une expression standard + + + + Filter by SQL expression + data view + Filtrer par une expression SQL + + + + Show filter inputs per column + data view + Afficher les entrées de filtre par colonne + + + + Apply filter + data view + Appliquer le filtre + + + + DbDialog + + + Database + Base de données + + + + Database type + Type de base de données + + + + Database driver + Pilote de base de données + + + + + File + Fichier + + + + Name (on the list) + Nom (dans la liste) + + + + Options + Options + + + + <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> + aasfd + <p>Autorisez-ceci si vous voulez que la base de données soit stockée dans le fichier de configuration et restauré chaque fois SQLiteStudio est lancé.</p> + + + + Permanent (keep it in configuration) + Permanent (conserver dans la configuration) + + + + Test connection + Tester la connexion + + + + Select new or existing file on local computer + Sélectionnez un nouveau ou un existant fichier sur l'ordinateur local + + + + Browse + Navigateur + + + + Database type not selected. + Type de base de données non sélectionné. + + + + Database path not specified. + Chemin de la base de données non spécifié. + + + + Enter an unique database name. + Entrez un nom de base de données unique. + + + + This name is already in use. Please enter unique name. + Ce nom est déjà utilisé. Veuillez entrer un nom unique. + + + + <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> + <p>La génération automatique de noms a été désactivée, car le nom a été modifié manuellement. Pour restaurer la génération automatique, veuillez effacer le nom dans le champ correspondant.</p> + + + + Enter a database file path. + Entrez le chemin du fichier de la base de données. + + + + This database is already on the list under name: %1 + Cette base de données est déjà dans la liste sous le nom de : %1 + + + + Select a database type. + Sélectionnez un type de base de données. + + + + DbObjectDialogs + + + Delete table + Table supprimée + + + + Are you sure you want to delete table %1? + Confirmez la suppression de la table %1 ? + + + + Delete index + Index supprimé + + + + Are you sure you want to delete index %1? + Confirmez la suppression de l’index %1 ? + + + + Delete trigger + Déclencheur supprimé + + + + Are you sure you want to delete trigger %1? + Confirmez la suppression du déclencheur %1 ? + + + + Delete view + Vue supprimée + + + + Are you sure you want to delete view %1? + Confirmez la suppression de la vue %1 ? + + + + + Error while dropping %1: %2 + Erreur à l’abandon %1 : %2 + + + + Delete objects + Objets supprimés + + + + Are you sure you want to delete following objects: +%1 + Êtes-vous sûr de vouloir supprimer les objets suivants : +%1 + + + + Cannot start transaction. Details: %1 + Impossible de démarrer la transaction. Détails : %1 + + + + Cannot commit transaction. Details: %1 + Impossible de valider la transaction. Détails : %1 + + + + DbTree + + + Databases + Base de données + + + + Filter by name + Filtre par nom + + + + Copy + Copier + + + + Paste + Coller + + + + Select all + Tout sélectionner + + + + Create a group + Créer un groupe + + + + Delete the group + Supprimer le groupe + + + + Rename the group + Renommer le groupe + + + + &Add a database + &Ajouter une base de données + + + + &Edit the database + &Éditer la base de données + + + + &Remove the database + &Supprimer la base de données + + + + &Connect to the database + &Se connecter à la base de données + + + + &Disconnect from the database + &Se déconnecter de la base de données + + + + Import + Importer + + + + &Export the database + &Exporter la base de données + + + + Vac&uum + Vi&der + + + + &Integrity check + &Contrôle d'intégrité + + + + Create a &table + Créer un &tableau + + + + Edit the t&able + Éditer le t&ableau + + + + Delete the ta&ble + Supprimer le ta&bleau + + + + Export the table + Exporter la table + + + + Import into the table + Importer dans la table + + + + Populate table + Peupler une table + + + + Create similar table + Créer une table identique + + + + Reset autoincrement sequence + Réinitialise l’auto-incrémentation + + + + Create an &index + Créer un &indice + + + + Edit the i&ndex + Modifier l'i&ndice + + + + Delete the in&dex + Supprimer l'in&dex + + + + Create a trig&ger + Créer un décl&encheur + + + + Edit the trigg&er + Éditer le décl&encheur + + + + Delete the trigge&r + Supprimer le déclencheu&r + + + + Create a &view + Créer une &vue + + + + Edit the v&iew + Editer la v&ue + + + + Delete the vi&ew + Supprimer la vu&e + + + + Add a column + Ajouter une colonne + + + + Edit the column + Modifier la colonne + + + + Delete the column + Supprimer la colonne + + + + Delete selected items + Supprimer les objets sélectionnés + + + + Clear filter + Vider le filtre + + + + &Refresh all database schemas + &Rafraîchir tous les schémas de base de données + + + + Re&fresh selected database schema + Ra&fraîchir le schéma de la base de données sélectionnée + + + + + Erase table data + Effacer les données du tableau + + + + Open file's directory + Ouvrir le répertoire du fichier + + + + Execute SQL from file + Exécuter SQL depuis un fichier + + + + Increase font size + database list + Augmenter la taille de la police de caractère + + + + Decrease font size + database list + Réduire la taille de la police de caractère + + + + + Database + Base de données + + + + Grouping + Groupement + + + + Generate query for table + Générer une requête pour le tableau + + + + + Create group + Créer un groupe + + + + Group name + Nom du groupe + + + + Entry with name %1 already exists in group %2. + L’entrée nommée %1 existe déjà dans le groupe %2. + + + + Delete group + Supprimer le groupe + + + + Are you sure you want to delete group %1? +All objects from this group will be moved to parent group. + Êtes-vous certain de supprimer le groupe %1 ? +Tous les objets de ce groupe seront déplacés dans le groupe parent. + + + + Are you sure you want to remove database '%1' from the list? + Êtes-vous sûr de vouloir supprimer la base de données '%1' de la liste ? + + + + Are you sure you want to remove following databases from the list: +%1 + Êtes-vous sûr de vouloir supprimer les bases de données suivantes de la liste : +%1 + + + + Remove database + Supprimer la base de données + + + + + Cannot import, because no import plugin is loaded. + Import impossible, car aucun plugin d’import n’est chargé. + + + + + Cannot export, because no export plugin is loaded. + Export impossible, car aucun plugin d’import n’est chargé. + + + + Vacuum (%1) + Vider (%1) + + + + Integrity check (%1) + Contrôle d’intégrité (%1) + + + + Reset autoincrement + Remise à zéro de l’auto-incrément + + + + Are you sure you want to reset autoincrement value for table '%1'? + Êtes-vous certain de vouloir réinitialiser l’auto-incrémentation de la table « %1 » ? + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + Une erreur est survenue pendant la réinitialisation de la valeur de l’auto-incrémentation de la table « %1 » : %2 + + + + Autoincrement value for table '%1' has been reset successfully. + La valeur d'auto-incrémentation pour le tableau '%1' a été réinitialisée avec succès. + + + + Are you sure you want to delete all data from table(s): %1? + Êtes-vous sûr de vouloir supprimer toutes les données de(s) tableau(x) : %1? + + + + An error occurred while trying to delete data from table '%1': %2 + Une erreur est survenue lors de la suppression de données du tableau '%1': %2 + + + + All data has been deleted for table '%1'. + Toutes les données ont été supprimées pour le tableau '%1'. + + + + Following objects will be deleted: %1. + Les objets suivant vont être supprimés : %1. + + + + Following databases will be removed from list: %1. + Les bases de données suivantes seront enlevées de la liste : %1. + + + + Remainig objects from deleted group will be moved in place where the group used to be. + Les objets restants du groupe supprimé seront déplacés où le groupe a eu l’habitude d’être. + + + + %1<br><br>Are you sure you want to continue? + %1<br><br>Êtes-vous certain de vouloir continuer ? + + + + Delete objects + Objets supprimés + + + + DbTreeItemDelegate + + + error + dbtree labels + erreur + + + + (system table) + database tree label + (Table système) + + + + (virtual) + virtual table label + (virtuel) + + + + (system index) + database tree label + (index système) + + + + DbTreeModel + + + Database: %1 + dbtree tooltip + Base de données : %1 + + + + URI: + dbtree tooltip + URI : + + + + Version: + dbtree tooltip + Version : + + + + File size: + dbtree tooltip + Taille fichier : + + + + Encoding: + dbtree tooltip + Codage : + + + + Error: + dbtree tooltip + Erreur : + + + + Table : %1 + dbtree tooltip + Tableau : %1 + + + + Columns (%1): + dbtree tooltip + Colonnes (%1): + + + + Indexes (%1): + dbtree tooltip + Indexs (%1) : + + + + Triggers (%1): + dbtree tooltip + Déclencheurs (%1) : + + + + Copy + Copier + + + + Move + Déplacer + + + + Include data + Données incluses + + + + Include indexes + Index inclus + + + + Include triggers + Déclencheurs inclus + + + + Abort + Abandonner + + + + Could not add dropped database file '%1' automatically. Manual setup is necessary. + Impossible d'ajouter le fichier de base de données abandonné '%1' automatiquement. La configuration manuelle est nécessaire. + + + + Referenced tables + Tables référencées + + + + Do you want to include following referenced tables as well: +%1 + Vous voulez inclure des tables référencées suivantes aussi : +%1 + + + + Name conflict + Conflit de nom + + + + Following object already exists in the target database. +Please enter new, unique name, or press '%1' to abort the operation: + L’objet suivant existe déjà dans la base de données cible. +Entrez SVP un nouveau nom, unique, ou cliquez « %1 » pour d’interrompre l’opération : + + + + SQL statements conversion + Conversion des déclarations SQL + + + + Following error occurred while converting SQL statements to the target SQLite version: + L’erreur suivante est survenue en convertissant des déclarations de SQL de la version cible SQLite : + + + + Would you like to ignore those errors and proceed? + Voulez-vous ignorer ces erreurs et procéder ? + + + + DdlHistoryWindow + + + Filter by database: + Filtre par base de données : + + + + Clear entire history + Effacer tout l'historique + + + + -- Queries executed on database %1 (%2) +-- Date and time of execution: %3 +%4 + -- Requête éxécutée sur la base de données %1 (%2) +-- Date et heure d’exécution : %3 +%4 + + + + Clear history + Effacer l'historique + + + + Are you sure you want to erase entire DDL history? + Êtes-vous sûr de vouloir effacer l'historique complet des DDL ? + + + + DDL history + Historique DDL + + + + DdlPreviewDialog + + + Queries to be executed + Requêtes à exécuter + + + + Don't show again + Ne plus afficher + + + + DebugConsole + + + SQLiteStudio Debug Console + Console SQLiteStudio de débogage + + + + EditorWindow + + + SQL editor + Éditeur SQL + + + + Query + Requête + + + + History + Historique + + + + Results in the separate tab + Résultats dans un onglet séparé + + + + Results below the query + Résultats après la requête + + + + + SQL editor %1 + Éditeur SQL %1 + + + + + Results + Résultats + + + + Execute query + Exécuter la requête + + + + Explain query + Explication de la requête + + + + Clear execution history + sql editor + Vider l’historique d’exécution + + + + Export results + sql editor + Exporter résultats + + + + Create view from query + sql editor + Créer une vue à partir d’une requête + + + + Previous database + Base de données précédente + + + + Next database + Base de données suivante + + + + Show next tab + sql editor + Afficher l’onglet suivant + + + + Show previous tab + sql editor + Afficher l’onget précédent + + + + Focus results below + sql editor + Focus sur les résultats ci-dessous + + + + Focus SQL editor above + sql editor + Focus sur l’éditeur SQL ci-dessus + + + + Delete selected SQL history entries + sql editor + Supprimer les entrées de l'historique SQL sélectionnées + + + + Execute single query under cursor + Exécuter une requête sous le curseur + + + + Execute all queries in editor + Exécuter toutes les requêtes dans l'éditeur + + + + Active database (%1/%2) + Base de données active (%1/%2) + + + + Query finished in %1 second(s). Rows affected: %2 + Requête terminée en %1 secondes. Nombre de lignes : %2 + + + + Query finished in %1 second(s). + Requête terminée en %1 seconde(s). + + + + Clear execution history + Supprimer l’historique d’exécution + + + + Are you sure you want to erase the entire SQL execution history? This cannot be undone. + Êtes vous certain de vouloir supprimer la totalité de l’historique d’exécution SQL ? Aucun retour possible. + + + + Cannot export, because no export plugin is loaded. + Impossible d’exporter, car aucun plugin d’expertation n’est chargés. + + + + No database selected in the SQL editor. Cannot create a view for unknown database. + Aucune base de données den sélectionnée dans l’éditeur SQL. Impossible de créer une vue sur une base de données inconnue. + + + + Editor window "%1" has uncommitted data. + La fenêtre de l'éditeur "%1" a des données invalidées. + + + + ErrorsConfirmDialog + + + Errors + Erreurs + + + + Following errors occured: + Les erreurs suivantes sont arrivées : + + + + Would you like to proceed? + Désirez-vous traiter ? + + + + ExecFromFileDialog + + + Execute SQL from file + Exécuter SQL depuis un fichier + + + + Input file + Fichier de saisie + + + + Path to file + Chemin vers le fichier + + + + Browse for file + Parcourir les fichiers + + + + Options + Options + + + + File encoding + Encodage du fichier + + + + Skip failing SQL statements + Ignorer les requêtes SQL échouées + + + + SQL scripts (*.sql);;All files (*) + Scripts SQL (*.sql);;Tous les fichiers (*) + + + + Execute SQL file + Exécuter le fichier SQL + + + + Please provide file to be executed. + Veuillez fournir le fichier à exécuter. + + + + Provided file does not exist or cannot be read. + Le fichier fourni n'existe pas ou ne peut pas être lu. + + + + ExportDialog + + + Export + Exporter + + + + What do you want to export? + Que voulez-vous exporter ? + + + + A database + Une base de données + + + + A single table + Une table + + + + Query results + Résultats d’une requête + + + + Table to export + Table à exporter + + + + Database + Base de données + + + + Table + Tableau + + + + Options + Options + + + + When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. + Lorsque cette option n’est contrôlée, alors seulement le DDL de la table (CREATE TABLE...) est exporté. + + + + Export table data + Exporter les données de la table + + + + Export table indexes + Exporter les index de la table + + + + Export table triggers + Exporter les déclencheurs de la table + + + + Note, that exporting table indexes and triggers may be unsupported by some output formats. + NB : les index de la table d’exportation et les déclencheurs peuvent ne pas être pris en charge par certains formats d’export. + + + + Select database objects to export + Sélectionnez les objets de la base de données à exporter + + + + Export data from tables + Exporter les données des tables + + + + Select all + Tout sélectionner + + + + Deselect all + Tout désélectionner + + + + + Database: + Base de données : + + + + Query to export results for + Résultats de la requête + + + + Query to be executed for results: + Requête à exécuter : + + + + Export format and options + Exporter formatset options + + + + Export format + Format d’exportation + + + + Output + Sortie + + + + Exported file path + Chemin du fichier d’exportation + + + + Clipboard + presse-papier + + + + File + Fichier + + + + Exported text encoding: + Texte encodé exporté : + + + + Export format options + Exporter options de format + + + + Cancel + Annuler + + + + + + Select database to export. + Sélecctionnez la base de données à exporter. + + + + Select table to export. + Sélectionnez la table à exporter. + + + + Enter valid query to export. + Saississez une requête valide à exporter. + + + + Select at least one object to export. + Sélectionnez au moins un objet à exporter. + + + + You must provide a file name to export to. + Vous devez fournir le nom d’un fichier à exporter. + + + + Path you provided is an existing directory. You cannot overwrite it. + Le chemin fourni est un répertoire existant. Vous ne pouvez pas l’écraser. + + + + The directory '%1' does not exist. + Le répertoire « %1 » n’existe pas. + + + + The file '%1' exists and will be overwritten. + Le fichier « %1 » existe et sera écrasé. + + + + All files (*) + Tous les fichiers(*) + + + + Pick file to export to + Sélectionnez un fichier à exporter + + + + Internal error during export. This is a bug. Please report it. + Erreur interne pendant l’exportation. c’est un bug. SVP veuillez le reporter. + + + + FileExecErrorsDialog + + + Execution errors + Erreurs d'exécution + + + + Following errors were encountered during execution of SQL statements from the file: + Les erreurs suivantes ont été rencontrées lors de l'exécution d'instructions SQL depuis le fichier : + + + + SQL + SQL + + + + Error + Erreur + + + + Statements that were executed successfully were commited. + Les instructions qui ont été exécutées avec succès ont été validés. + + + + Statements that were executed successfully were rolled back. + Les instructions qui ont été exécutées avec succès ont été restaurées. + + + + FkComboBox + + + Cannot edit this cell. Details: %1 + Impossible de modifier cette cellule. Détails : %1 + + + + FontEdit + + + Choose font + font configuration + Choisir la police + + + + Form + + + Active SQL formatter plugin + Activer le plugin de formattage SQL + + + + FormView + + + Commit row + form view + Valider la ligne + + + + Rollback row + form view + Annuler ligne + + + + First row + form view + Première ligne + + + + Previous row + form view + Ligne précédente + + + + Next row + form view + Ligne suivante + + + + Last row + form view + Dernière ligne + + + + Insert new row + form view + Insérer une nouvelle ligne + + + + Delete current row + form view + Supprimer la ligne courante + + + + FunctionsEditor + + + Filter functions + Fonctions de filtrage + + + + Input arguments + Entrez arguments + + + + Undefined + Non défini + + + + Databases + Bases de données + + + + Register in all databases + Enregistre toutes les bases de données + + + + Register in following databases: + Enregistre les bases de données suivantes : + + + + Type: + Type : + + + + Function name: + Nom fonction : + + + + Implementation language: + Langage : + + + + Deterministic + Déterministe + + + + Initialization code: + Code d’initialisation : + + + + + Function implementation code: + Fonction de code d’implémentation : + + + + Final step implementation code: + Etape finale de code d’implémentaion : + + + + SQL functions editor + Éditeur de fonctions SQL + + + + Commit all function changes + Valider toutes les modifications de fonction + + + + Rollback all function changes + Annule toutes les fonctions modifiées + + + + Create new function + Crée une nouvelle fonction + + + + Delete selected function + Supprime une fonction sélectionnée + + + + Custom SQL functions manual + Personalisation des fonctions SQL + + + + Add function argument + Ajoute un argument à la fonction + + + + Rename function argument + Renomme l’argument de la fonction + + + + Delete function argument + Supprime l’argument de la fonction + + + + Move function argument up + Monte l’argument de la fonction + + + + Move function argument down + Descend l’argument de la fonction + + + + Scalar + Scalaire + + + + Aggregate + Agregate + + + + Enter a non-empty, unique name of the function. + Saississez un nom unique de fonction. + + + + Pick the implementation language. + Choississez un langage. + + + + Per step code: + Code par étape : + + + + Enter a non-empty implementation code. + Saississez un code d’implémentation non vide. + + + + argument + new function argument name in function editor window + argument + + + + Functions editor window has uncommitted modifications. + La fenêtre de l'éditeur de fonctions contient des modifications invalidées. + + + + ImportDialog + + + Import data + Import données + + + + Table to import to + Table à importer vers + + + + Table + Tableau + + + + Database + Base de données + + + + Data source to import from + Source de données à importer de + + + + Data source type + Type de données source + + + + Options + Options + + + + Text encoding: + Texte codé : + + + + Input file: + Fichier : + + + + <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> + <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> + + + + Ignore errors + Ignorer les erreurs + + + + Data source options + Optrions de source de données + + + + Cancel + Annuler + + + + If you type table name that doesn't exist, it will be created. + Si vous saississez un nom de table inexistant, celle-ci sera créée. + + + + Enter the table name + Saississez un nom de table + + + + Select import plugin. + Sélectionnez un plugin d’importation. + + + + You must provide a file to import from. + Vous devez fournir un fichier à importer. + + + + The file '%1' does not exist. + Le fichier « %1 » n’existe pas. + + + + Path you provided is a directory. A regular file is required. + Le chemin indiqué est un répertoire. Un fichier est requis. + + + + Pick file to import from + Sélectionnez le fichier d’importation + + + + IndexDialog + + + + Index + Indice + + + + Column + Colonne + + + + Sort + Tri + + + + Collation + Regroupement + + + + On table: + De la table : + + + + Delete selected indexed expression + Supprimer l'expression indexée sélectionnée + + + + Moves selected index column up in the order, making it more significant in the index. + Déplace la colonne d'index sélectionnée vers le haut dans l'ordre, la rendant plus significative dans l'index. + + + + Moves selected index column down in the order, making it less significant in the index. + Déplace la colonne d'index sélectionnée vers le bas dans l'ordre, la rendant moins significative dans l'index. + + + + Partial index condition + Condition partielle d’index + + + + Unique index + Index unique + + + + Index name: + Nom index : + + + + Edit selected indexed expression + Éditer l'expression indexée sélectionnée + + + + Add indexed expression + Ajouter une expression indexée + + + + DDL + DDL + + + + Tried to open index dialog for closed or inexisting database. + Vous tentez d’ouvrir le dialogue de l’index d’une base de données fermée ou inexistante. + + + + Could not process index %1 correctly. Unable to open an index dialog. + Impossible de définir l’index %1 correctement. Ouvrir un dialogue d’index valide. + + + + Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. + Un index unique ne peut pas avoir d'expressions indexées. Supprimez les expressions de la liste ci-dessous ou décochez cette option. + + + + Pick the table for the index. + Sélectionnez la table pour l’index. + + + + Select at least one column. + Selectionnez au moins une colonne. + + + + Enter a valid condition. + Saississez une condition valide. + + + + default + index dialog + defaut + + + + Sort order + table constraints + Ordre de tri + + + + + Error + index dialog + Erreur + + + + Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? + Impossible de créer un index, car les valeurs des colonnes sélectionnées ne sont pas uniques. Voulez-vous exécuter une requête SELECT pour voir les valeurs problématiques ? + + + + An error occurred while executing SQL statements: +%1 + Une erreur survenue à l’exécution de l’SQL : +%1 + + + + IndexExprColumnDialog + + + Indexed expression + Expression indexée + + + + Expression to index + Expression à indexer + + + + This expression is already indexed by the index. + Cette expression est déjà indexée par l'index. + + + + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. + + + + Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. + La colonne '%1' n'appartient pas au tableau couvert par cet index. Les expressions indexées ne peuvent se référer qu'aux colonnes de la table indexée. + + + + It's forbidden to use 'SELECT' statements in indexed expressions. + Il est interdit d'utiliser l'instruction 'SELECT' dans les expressions indexées. + + + + Enter an indexed expression. + Entrez une expression indexée. + + + + Invalid expression. + Expression invalide. + + + + LanguageDialog + + + Language + Langage + + + + Please choose language: + SVP choississez un langage : + + + + MainWindow + + + Database toolbar + Barre d’outils de base de données + + + + Structure toolbar + Barre d’outils de structure + + + + Tools + Barre d’outils des éditeurs + + + + Window list + Liste des fenêtres ouvertes + + + + View toolbar + Barre d’outils de fenêtrage + + + + Configuration widgets + Configurer les widgets + + + + Syntax highlighting engines + Syntaxe surlignée des moteurs + + + + Data editors + Éditeurs de données + + + + Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. + Passage en mode débogue. Cliquez %1 ou utilisez l’entrée du menu « l’Aide / Ouvrir la console de débogage ». + + + + Running in debug mode. Debug messages are printed to the standard output. + Passage en mode débogue. Les messages de débogage sont imprimés dans la sortie standard. + + + + You need to restart application to make the language change take effect. + Vous devez relancer l’application pour que le langage prenne effet. + + + + Open SQL &editor + Ouvrir l'&éditeur SQL + + + + Open DDL &history + Ouvrir l'&historique des DDL + + + + Open SQL &functions editor + Ouvrir l'éditeur de &fonctions SQL + + + + Open code &snippets editor + Ouvrir l'éditeur des &extraits de code + + + + Open &collations editor + Ouvrir l'éditeur de &regroupements + + + + Open ex&tension manager + Ouvrir le gestionnaire d'ex&tension + + + + &Import + &Importer + + + + E&xport + E&xporter + + + + Open confi&guration dialog + Ouvrir la boîte de dialogue de confi&guration + + + + &Tile windows + &Fenêtres mosaïques + + + + Tile windows &horizontally + Mosaïque &horizontale des fenêtres + + + + Tile windows &vertically + Mosaïque &verticale des fenêtres + + + + &Cascade windows + &Fenêtres en cascade + + + + Next window + Fenêtre suivante + + + + Previous window + Fenêtre précédante + + + + Hide status field + Cacher le champ d’état + + + + Close &all windows + Fermer &toutes les fenêtres + + + + Re&store recently closed window + Re&staurer la fenêtre récemment fermée + + + + Close current &window + Fermer la &fenêtre actuelle + + + + Close &other windows + Fermer les &autres fenêtres + + + + Close windows on the &left + Fermer les fenêtres à &gauche + + + + Close windows on the &right + Fermer les fenêtres à &droite + + + + Re&name selected window + Re&nommer la fenêtre sélectionnée + + + + Open Debug Console + Ouvrir la console de debogage + + + + Open CSS Console + Ouvrir la console CSS + + + + Report a &bug + Signaler un &bug + + + + D&onate + F&aites un don + + + + Propose a new &feature + Proposer une nouvelle &fonctionnalité + + + + &About + &À propos + + + + &Licenses + &Licences + + + + Open home &page + Ouvrir la &page d'accueil + + + + User &Manual + &Manuel de l'utilisateur + + + + SQLite &documentation + &Documentation SQLite + + + + Bugs and feature &requests + Bugs et &demandes de fonctionnalités + + + + Quit + Quitter + + + + Check for &updates + Rechercher des &mises à jour + + + + &Database + menubar + &Base de données + + + + &Structure + menubar + &Structure + + + + &View + menubar + &Affichage + + + + Window list + menubar view menu + Liste des fenêtres + + + + &Tools + menubar + &Outils + + + + &Help + &Aide + + + + Could not set style: %1 + main window + Impossible de positionner le style : %1 + + + + Cannot export, because no export plugin is loaded. + Exportation impossible, aucun plugin d’exportation n’est chargé. + + + + Cannot import, because no import plugin is loaded. + Importation impossible, aucun plugin d’importation n’est chargé. + + + + Rename window + Renommer la fenêtre + + + + Enter new name for the window: + Saississez un nouveau nom de fenêtre : + + + + New updates are available. <a href="%1">Click here for details</a>. + Une nouvelle mise à jour est disponible. <a href="%1"> cliquez ici pour détails</a>. + + + + You're running the most recent version. No updates are available. + Vous utilisez déjà la version la plus récente. Aucune mise à jour n'est disponible. + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + La base de données passée dans les paramètres de la ligne de commande (%1) était déjà dans la liste sous le nom : %2 + + + + Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 + La base de données passée en paramètre dans la ligne de commande (%1)a été temporaire ajoutée à la liste sous le nom : %2 + + + + Could not add database %1 to list. + Impossible d’ajouter la base de données %1 à la liste. + + + + MdiWindow + + + Uncommitted changes + Modifications invalidées + + + + Close anyway + Fermer + + + + Don't close + Ne pas fermer + + + + MultiEditor + + + Null value + multieditor + Valeur NULL + + + + Configure editors for this data type + Configurer l’éditeur pour ce type de données + + + + Open another tab + Ouvrir un autre onglet + + + + Foreign Key + Clef étrangère + + + + Data editor plugin '%1' not loaded, while it is defined for editing '%2' data type. + Donnée du plugin dans l'éditeur '%1' ne c'est pas chargé, alors qu'il est défini pour l'édition du type de données '%2'. + + + + Deleted + multieditor + Suppression + + + + Read only + multieditor + Lecture seule + + + + MultiEditorBoolPlugin + + + Boolean + booleen + + + + MultiEditorDatePlugin + + + Date + Date + + + + MultiEditorDateTimePlugin + + + Date & time + date & heure + + + + MultiEditorHexPlugin + + + Hex + Hex + + + + MultiEditorNumericPlugin + + + Number + numeric multi editor tab name + Nombre + + + + MultiEditorText + + + Tab changes focus + Tab modifie le focus + + + + Cut + Couper + + + + Copy + Copier + + + + Paste + Coller + + + + Delete + Supprimer + + + + Undo + Annuler + + + + Redo + Rétablir + + + + MultiEditorTextPlugin + + + Text + Texte + + + + MultiEditorTimePlugin + + + Time + Heure + + + + NewConstraintDialog + + + New constraint + Nouvelle contrainte + + + + + Primary Key + new constraint dialog + Clef primaire + + + + + Foreign Key + new constraint dialog + Clef étrangère + + + + + Unique + new constraint dialog + Unique + + + + + Check + new constraint dialog + Contrôle + + + + Not NULL + new constraint dialog + Non NULL + + + + Collate + new constraint dialog + Regrouper + + + + Generated + new constraint dialog + Généré + + + + Default + new constraint dialog + Défault + + + + NewVersionDialog + + + SQLiteStudio updates + Mises à jour SQLiteStudio + + + + New version is available! + Une nouvelle version est disponible ! + + + + Download new version! + Télécharger la nouvelle version ! + + + + New version package will be downloaded. It will be up to you to install it whenever you're ready. + Le nouveau paquet de version sera téléchargé. Il vous appartiendra de l'installer dès lors que vous serez prêt. + + + + Open SQLiteStudio home page. + Ouvrir la page d'accueil de SQLiteStudio. + + + + Read release notes && download package yourself. + Lisez les notes de version && téléchargez le paquet vous-même. + + + + Just close this window. + Fermez seulement cette fenêtre. + + + + Check for updates on startup + Contrôle de nouvelles version au lancement + + + + Not now. + Paas maintenant. + + + + PopulateConfigDialog + + + Populating configuration + Remplir la configuration + + + + Configuring <b>%1</b> for column <b>%2</b> + Configuration <b>%1</b> pour colonne <b>%2</b> + + + + PopulateDialog + + + Populate table + Peupler la table + + + + Database + Base de données + + + + Table + Tableau + + + + Columns + Colonnes + + + + Number of rows to populate: + Nombre de lignes à peupler : + + + + Populate + populate dialog button + Peupler + + + + Abort + Abandonner + + + + Configure + Configurer + + + + Populating configuration for this column is invalid or incomplete. + La configuration du peuplement pour cette colonne est invalide ou incomplète. + + + + Select database with table to populate + Sélectionner la base de données avec la table à peupler + + + + Select table to populate + Sélectionner la table à peupler + + + + You have to select at least one column. + Vous devez sélectionner au moins une colonne. + + + + QObject + + + Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). + impossible d’éditer les colonnes qui ont le résultat composé des déclarations %1 (inclus %2, %3 ou %4 mots-clefs). + + + + The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. + Le mécanisme d'exécution de requête a eu des problèmes avec l'extraction de ROWID. Ceci peut être un bug dans l'application. Vous pouvez le signaler. + + + + Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. + La colonne demandée est un résultat d’expression de SQL, au lieu d’une sélection de colonne simple. De telles colonnes ne peuvent pas être éditées. + + + + Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. + La colonne demandée appartient à une table limitée SQLite. Ces tables ne peuvent pas être éditées directement. + + + + Cannot edit results of query other than %1. + Impossible d’éditer les résultats de la requëte autrement que %1. + + + + Cannot edit columns that are result of aggregated %1 statements. + Impossible d’éditer les colonnes qui sont le résultat de déclarations agrégées %1. + + + + Cannot edit columns that are result of %1 statement. + Impossible d’éditer les colonnesqui sont le résultat de déclaration %1. + + + + Cannot edit columns that are result of common table expression statement (%1). + Impossible d’éditer les colonnes qui sont le résultat de table commune de déclaration (%1). + + + + Cannot edit table generated columns. + Impossible de modifier les colonnes générées par le tableau. + + + + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). + Impossible de modifier les colonnes qui sont le résultat d'une vue si la requête exécutée lit à partir d'une vue à plusieurs niveaux (c.-à-d. une vue qui interroge une autre vue). + + + + + + + on conflict: %1 + data view tooltip + Sur conflit : %1 + + + + references table %1, column %2 + data view tooltip + Références table %1, colonne %2 + + + + condition: %1 + data view tooltip + Condition : %1 + + + + collation name: %1 + data view tooltip + Nom de collation : %1 + + + + Data grid view + Vue de tableau de données + + + + Edit current cell inline + Éditer la cellule actuelle intégrer + + + + Copy cell(s) contents to clipboard + Copie le contenu de cellule(s) dans le presse-papier + + + + Copy cell(s) contents together with header to clipboard + Copier le contenu de(s) cellule(s) avec l'en-tête dans le presse-papiers + + + + Paste cell(s) contents from clipboard + Colle + + + + Set empty value to selected cell(s) + Efface le contenu de cellule(s) + + + + Set NULL value to selected cell(s) + Met à NULL les cellules séléctionnées + + + + Commit changes to cell(s) contents + Valider les modifications sur le contenu de(s) cellule(s) + + + + Rollback changes to cell(s) contents + Annule les modifications de cellule(s) + + + + Delete selected data row + Supprime les données de la ligne sélectionnée + + + + Insert new data row + Insére une nouvelle ligne de données + + + + Open contents of selected cell in a separate editor + Contenu ouvert de cellule choisie dans un éditeur séparé + + + + Toggle the height adjustment of rows + Activer/désactiver le réglage de la hauteur des lignes + + + + Increase font size + data view + Augmenter la taille de la police de caractère + + + + Decrease font size + data view + Réduire la taille de la police de caractère + + + + Total pages available: %1 + Nombre de pages disponibles : %1 + + + + Total rows loaded: %1 + Nombre de lignes chargées : %1 + + + + Data view (both grid and form) + Vue des données (tableau et formulaire) + + + + Refresh data + Actualisation des données + + + + Switch to grid view of the data + Basculer sur la vue des données en table + + + + Switch to form view of the data + Basculer sur la vue des données en formulaire + + + + Database list + Liste de bases de données + + + + Delete selected item + Suppression de l’item sélectionné + + + + Clear filter contents + Effacer le contenu du filtre + + + + Refresh schema + Actualiser le schéma + + + + Refresh all schemas + Actualiser tous les schémas + + + + Add database + Ajouter une base de données + + + + Select all items + Séléctionner tous les éléments + + + + Copy selected item(s) + Copie d’item(s) sélectionné(s) + + + + + + Paste from clipboard + Collé dans le presse-papier + + + + Increase font size + database list + Augmenter la taille de la police de caractère + + + + Decrease font size + database list + Réduire la taille de la police de caractère + + + + Tables + Tableaux + + + + Indexes + Index + + + + Triggers + Déclencheurs + + + + Views + Vues + + + + Columns + Colonnes + + + + Data form view + Formulaire vue de données + + + + Commit changes for current row + Valider les modifications pour la ligne actuelle + + + + Rollback changes for current row + Annulation de la ligne courante + + + + Go to first row on current page + Aller à la première ligne de la page courante + + + + Go to next row + Aller à la ligne suivante + + + + Go to previous row + Aller à la ligne précédente + + + + Go to last row on current page + Aller à la dernière ligne de la page courante + + + + Insert new row + Insérer une nouvelle ligne + + + + Delete current row + Supprimer la ligne courante + + + + Main window + Fenêtre principale + + + + Open SQL editor + Ouvrir l’éditeur SQL + + + + Open DDL history window + Ouvrir la fenêtre de l'historique des DDL + + + + Open snippets editor window + Ouvrir la fenêtre de l'éditeur d'extraits de texte + + + + Open function editor window + Ouvrir la fenêtre de l'éditeur de fonction + + + + Open collation editor window + Ouvrir la fenêtre de l'éditeur de regroupement + + + + Open extension manager window + Ouvrir la fenêtre du gestionnaire d'extension + + + + Previous window + Fenêtre précédente + + + + Next window + Fenêtre suivante + + + + Hide status area + Cacher la barre d’état + + + + Open user manual + Ouvrir le manuel utilisateur + + + + Open configuration dialog + Préférences + + + + Open Debug Console + Ouvrir la console de débogage + + + + Open CSS Console + Ouvrir la console CSS + + + + Open the About dialog + Ouvrir la boîte de dialogue À propos + + + + Quit the application + Quitter l'application + + + + Cell text value editor + Éditeur de cellule + + + + + Cut selected text + Couper le texte sélectionné + + + + + Copy selected text + Copie du texte sélectionné + + + + + Delete selected text + Suppression du texte sélectionné + + + + + Undo + Annuler + + + + + Redo + Rétablir + + + + SQL editor input field + Éditeur SQL saisie de champ + + + + Select whole editor contents + Sélectionnez le contenu entier de l’éditeur + + + + Save contents into a file + Sauver le contenu dans un fichier + + + + Load contents from a file + Charger le contenu d’un fichier + + + + Find in text + Rechercher un texte + + + + Find next + Occurence suivante + + + + Find previous + Occurence précédente + + + + Replace in text + Remplacer dans le texte + + + + Delete current line + Supprimer la ligne courante + + + + Request code assistant + Assistant de code nécessaire + + + + Format contents + Format de contenu + + + + Move selected block of text one line down + Déplacer le bloc de texte sélectionné à la ligne inférieure + + + + Move selected block of text one line up + Déplacer le bloc de texte sélectionné à la ligne supérieure + + + + Copy selected block of text and paste it a line below + Copier le bloc de texte sélectionné à la ligne au-dessus + + + + Copy selected block of text and paste it a line above + Copier le bloc de texte sélectionné à la ligne au-dessous + + + + Toggle comment + Basculer le commentaire + + + + Increase font size + sql editor + Augmenter la taille de la police de caractère + + + + Decrease font size + sql editor + Réduire la taille de la police de caractère + + + + All SQLite databases + Toutes les bases de données SQLite + + + + All files + Tous les fichiers + + + + Select database file + Sélectionner le fichier de la base de données + + + + Select + Sélectionner + + + + File type + Type de fichier + + + + SQL editor window + Fenêtre de l’éditeur SQL + + + + Execute query + Exécution de la requête + + + + Execute single query under cursor + Exécuter une requête sous le curseur + + + + Execute all queries in editor + Exécuter toutes les requêtes dans l'éditeur + + + + Execute "%1" query + Exécution de la requête %1 + + + + Switch current working database to previous on the list + Basculer de la base de données actuelle à la précédente de la liste + + + + Switch current working database to next on the list + Basculer de la base de données actuelle à la suivante de la liste + + + + Go to next editor tab + Aller à l’onglet d’éditeur suivant + + + + Go to previous editor tab + Aller à l’onglet d’éditeur précédent + + + + Move keyboard input focus to the results view below + Déplacement au-dessus du focus des résultats de vue par les touches + + + + Move keyboard input focus to the SQL editor above + Déplacement au-dessous du focus des résultats de vue par les touches + + + + Delete selected SQL history entries + Supprimer les entrées de l'historique SQL sélectionnées + + + + Table window + Fenêtre de table + + + + Commit the table structure + Valider la structure du tableau + + + + Rollback pending changes in the table structure + Restaurer les modifications en attente dans la structure du tableau + + + + Refresh table structure + Actualiser la structure de la table + + + + Add new column + Ajouter une nouvelle colonne + + + + Edit selected column + Modifier la colonne sélectionnée + + + + Delete selected column + Supprime la colonne sélectionnée + + + + Export table data + Exporte les données de table + + + + Import data to the table + Importe les données de table + + + + Add new table constraint + Ajoute une nouvelle contrainte à la table + + + + Edit selected table constraint + Modifie la contrainte de la table sélectionnée + + + + Delete selected table constraint + Supprime la contrainte de la table sélectionnée + + + + Refresh table index list + Actualise la liste des index de la table + + + + Add new index + Ajoute un nouvel index + + + + Edit selected index + Modifie l’index sélectionné + + + + Delete selected index + Supprime l’index sélectionné + + + + Refresh table trigger list + Actualise la liste des déclencheurs de la table + + + + + Add new trigger + Ajoute un nouveau déclencheur + + + + + Edit selected trigger + Modifie le déclencheur sélectionné + + + + + Delete selected trigger + Supprime le déclencheur sélectionné + + + + + Go to next tab + Aller à l’onglet suivant + + + + + Go to previous tab + Aller à l’onglet précédent + + + + A view window + Fenêtre de vue + + + + Commit the view's query + Valider les requêtes vues + + + + Rollback pending changes in the view's query + Restaurer les modifications en attente parmi les requêtes vues + + + + Refresh view trigger list + Actualise l’affichage de la liste des déclencheurs + + + + Execute the view's query + Exécuter les requêtes vues + + + + A code snippets editor window + Une fenêtre d'éditeur d'extraits de code + + + + + + + Commit the pending changes + Valider les modifications en attente + + + + + + + Rollback the pending changes + Restaurer les modifications en attente + + + + A collation editor window + Une fenêtre d'éditeur de regroupement + + + + A function editor window + Une fenêtre d'éditeur de fonction + + + + A SQLite extension editor window + Une fenêtre d'éditeur d'extension SQLite + + + + QuitConfirmDialog + + + Uncommitted changes + Modifications invalidées + + + + Are you sure you want to quit the application? + +Following items are pending: + Confirmez la fermeture de l’application ? + + + + SearchTextDialog + + + Find or replace + Chercher et remplacer + + + + Find: + Trouvé : + + + + Case sensitive + Sensible à la casse + + + + Search backwards + Recherches en arrière + + + + Regular expression matching + Correspondance d’expression régulière + + + + Replace && +find next + Remplace && +recherche suivant + + + + Replace with: + Remplacer par : + + + + Replace all + Remplacer tout + + + + Find + Rechercher + + + + SortDialog + + + Sort by columns + Tri par colonnes + + + + + Column + Colonne + + + + + Order + Ordre + + + + Sort by: %1 + Tri par %1 + + + + Move column up + Monter colonne + + + + Move column down + Descendre colonne + + + + SqlEditor + + + Wrap words + sql editor + Envelopper les mots + + + + Cut + sql editor + Couper + + + + Copy + sql editor + Copier + + + + Paste + sql editor + Coller + + + + Delete + sql editor + Supprimer + + + + Select all + sql editor + Tout sélectionner + + + + Undo + sql editor + Annuler + + + + Redo + sql editor + Rétablir + + + + Complete + sql editor + Complet + + + + Format SQL + sql editor + Format SQL + + + + Save SQL to file + sql editor + Enregistrer le SQL + + + + Select file to save SQL + sql editor + Sélectionnez le fichier pour enregistrer le SQL + + + + Load SQL from file + sql editor + Charger le SQL + + + + Delete line + sql editor + Ligne suppimée + + + + Move block down + sql editor + Descendre le bloc + + + + Move block up + sql editor + Monter le bloc + + + + Copy block down + sql editor + Copier bloc au-dessus + + + + Copy up down + sql editor + Copier bloc au-dessous + + + + Find + sql editor + Chercher + + + + Find next + sql editor + Chercher suivant + + + + Find previous + sql editor + Chercher précédent + + + + Replace + sql editor + Remplacer + + + + Toggle comment + sql editor + Basculer le commentaire + + + + Increase font size + sql editor + Augmenter la taille de la police de caractère + + + + Decrease font size + sql editor + Réduire la taille de la police de caractère + + + + Could not open file '%1' for writing: %2 + Impossible d’ouvrir en écriture le fichier « %1 » : %2 + + + + Saved SQL contents to file: %1 + Contenu SQL sauvegardé dans le fichier : %1 + + + + Syntax completion can be used only when a valid database is set for the SQL editor. + L’achèvement de syntaxe peut être utilisé seulement quand une base de données valable est utilisée dans l’éditeur SQL. + + + + Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. + Le contenu l’éditeur SQL est important, aussi la détectiond’objets en erreur est temporairement mise hors de service. + + + + Save to file + Sauvegarder + + + + SQL scripts (*.sql);;All files (*) + Scripts SQL (*.sql);;Tous les fichiers (*) + + + + Open file + Fichier ouvert + + + + Could not open file '%1' for reading: %2 + Impossible d’ouvrir en lecture le fichier « %1 » : %2 + + + + Reached the end of document. Hit the find again to restart the search. + Fin de document atteint. Saississez de nouveau la recherche pour relancer la recherche. + + + + SqlQueryItem + + + Committing error: + data view tooltip + Erreur de validation : + + + + Column: + data view tooltip + Colonne : + + + + Data type: + data view + Type de données : + + + + Table: + data view tooltip + Table : + + + + Constraints: + data view tooltip + Contrainte : + + + + SqlQueryItemDelegate + + + + + + Cannot edit this cell. Details: %1 + Impossible de modifier cette cellule. Détails : %1 + + + + The row is marked for deletion. + La ligne est marquée pour effacement. + + + + + Structure of this table has changed since last data was loaded. Reload the data to proceed. + La structure de ce tableau a changé depuis que les dernières données ont été chargés. Rechargez les données pour continuer. + + + + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). + + + + Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. + La clé étrangère de la colonne %2 a plus de %1 valeurs possibles. C'est trop pour être affiché dans la liste déroulante. Vous devez modifier la valeur manuellement. + + + + SqlQueryModel + + + + Only one query can be executed simultaneously. + Uniquement une seule requête peut être exécutée à la fois. + + + + Cannot execute query on undefined or invalid database. + Impossible d'exécuter la requête sur une base de données indéfinie ou invalide. + + + + Cannot execute empty query. + Impossible d'exécuter une requête vide. + + + + Uncommitted data + Données invalidées + + + + There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. + Il y a des modifications de données invalidées. Voulez-vous quand même continuer ? Toutes les modifications non validées seront perdues. + + + + Cannot commit the data for a cell that refers to the already closed database. + Impossible de valider les données pour une cellule qui fait référence à une base de données déjà fermée. + + + + Could not begin transaction on the database. Details: %1 + Impossible de lancer la transaction sur la base de données. Détails : %1 + + + + An error occurred while committing the transaction: %1 + Une erreur s'est produite lors de la validation de la transaction : %1 + + + + An error occurred while rolling back the transaction: %1 + Une erreur est survenuelors de l’annulation de la transaction : %1 + + + + Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. + Tentative de validation d'une cellule qui n'est pas modifiable (encore modifiée et en attente de validation) ! Ceci est un bug. Merci de le signaler. + + + + An error occurred while committing the data: %1 + Une erreur s'est produite lors de la validation des données : %1 + + + + Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. + Le nombre de lignes par page a été réduit à %1 en raison du nombre de colonnes (%2) dans la vue des données. + + + + + Error while executing SQL query on database '%1': %2 + Erreur pendant l’exécution de la requête sur la base de données « %1 » : %2 + + + + Error while loading query results: %1 + Erreur lors du chargement des résultats de la requête : %1 + + + + Insert multiple rows + Insérer plusieurs lignes + + + + Number of rows to insert: + Nombre de lignes à inserer : + + + + Delete rows + Supprimer les lignes + + + + You're about to delete newly inserted rows that are not committed yet. Row numbers: %1 +Such deletion will be permanent. Are you sure you want to delete them? + Vous vous apprêtez à supprimer des lignes nouvellement insérées qui ne sont pas encore validées. Numéros de ligne : %1 +Cette suppression sera permanente. Êtes-vous sûr de vouloir les supprimer ? + + + + SqlQueryView + + + Go to referenced row in... + Aller à la ligne référencée dans... + + + + Copy + Copier + + + + Copy with headers + Copier avec les en-têtes + + + + Copy as... + Copier comme… + + + + Paste + Coller + + + + Paste as... + Coller comme… + + + + Set NULL values + Valeurs NULL positionnées + + + + Erase values + valeurs écrasées + + + + Commit + Valider + + + + Rollback + Annuler + + + + Commit selected cells + Valider les cellules sélectionnées + + + + Rollback selected cells + Annuler les modifications des cellules sélectionnées + + + + Edit current cell inline + Éditer la cellule actuelle intégrer + + + + Define columns to sort by + Définit les colonnes triées par + + + + Remove custom sorting + Enléve le tri personnalisé + + + + Insert row + Insérer une ligne + + + + Insert multiple rows + Insérer plusieurs lignes + + + + Delete selected row + Supprimer les lignes sélectionnées + + + + Adjust height of rows + Ajuster la hauteur des lignes + + + + Increase font size + data view + Augmenter la taille de la police de caractère + + + + Decrease font size + data view + Réduire la taille de la police de caractère + + + + Invert selection + data view + Inverser la sélection + + + + Edit value in editor + Valeur modifiée par l’éditeur + + + + Show value in a viewer + Afficher la valeur dans une visionneuse + + + + Generate query for selected cells + Générer une requête pour les cellules sélectionnées + + + + No items selected to paste clipboard contents to. + Aucun élément sélectionné pour coller le contenu du presse-papiers. + + + + Cannot paste data. Details: %1 + Impossible de coller les données. Détails : %1 + + + + Structure of at least one table used has changed since last data was loaded. Reload the data to proceed. + La structure d'au moins un tableau utilisé a changé depuis le chargement des dernières données. Rechargez les données pour continuer. + + + + Cannot paste to a cell. Details: %1 + Impossible de coller dans une cellule. Détails : %1 + + + + The row is marked for deletion. + La ligne est marquée pour effacement. + + + + Cannot paste to column %1. Details: %2 + Impossible de coller dans la colonne %1. Détails : %2 + + + + Go to referenced row in table '%1' + Aller à la ligne référencée dans le tableau '%1' + + + + table '%1' + tableau '%1' + + + + Referenced row (%1) + Ligne référencée (%1) + + + + Trim pasted text? + Réduire le texte collé ? + + + + The pasted text contains leading or trailing white space. Trim it automatically? + Le texte collé contient de l'espace blanc en début ou en fin de page. Voulez-vous le supprimer automatiquement ? + + + + Paste "NULL" as null value? + Coller "NULL" en tant que valeur nulle ? + + + + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + Le texte collé contient des "NULL" littéraux. Voulez-vous les considérer comme des valeurs NULL ? + + + + Edit value + Modifier la valeur + + + + SqlTableModel + + + Error while committing new row: %1 + Erreur lors de la validation de la nouvelle ligne : %1 + + + + Error while deleting row from table %1: %2 + Erreur à la suppression d’une ligne de la table %1 : %2 + + + + SqliteExtensionEditor + + + Filter extensions + Filtrer les extensions + + + + Leave empty to use default function + Laisser vide pour utiliser la fonction par défaut + + + + Extension file + Fichier d'extension + + + + Initialization function + Fonction d'initialisation + + + + Databases + Bases de données + + + + Register in all databases + Enregistre dans toutes les bases de données + + + + Register in following databases: + Inscrire dans les bases de données suivantes : + + + + Extension manager window has uncommitted modifications. + La fenêtre du gestionnaire d'extension contient des modifications invalidées. + + + + Extension manager + Gestionnaire d'extensions + + + + Commit all extension changes + Valider tous les changements d'extension + + + + Rollback all extension changes + Restaurer tous les changements d'extension + + + + Add new extension + Ajouter une nouvelle extension + + + + Remove selected extension + Supprimer l'extension sélectionnée + + + + Editing extensions manual + Éditer le manuel des extensions + + + + File with given path does not exist or is not readable. + Le fichier avec le chemin spécifié n'existe pas ou n'est pas lisible. + + + + Unable to load extension: %1 + Impossible de charger l'extension : %1 + + + + Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. + Nom de la fonction d'initialisation invalide. Le nom de la fonction ne peut contenir que des caractères alphanumériques et des tirets bas. + + + + Dynamic link libraries (*.dll);;All files (*) + Librairies de liens dynamiques (*.dll);Tous les fichiers (*) + + + + Shared objects (*.so);;All files (*) + Objets partagés (*.so);Tous les fichiers (*) + + + + Dynamic libraries (*.dylib);;All files (*) + Bibliothèques dynamiques (*.dylib);;Tous les fichiers (*) + + + + All files (*) + Tous les fichiers(*) + + + + Open file + Fichier ouvert + + + + StatusField + + + Status + Barre d’état + + + + Copy + Copier + + + + Clear + Vider + + + + TableConstraintsModel + + + Type + table constraints + Type + + + + Details + table constraints + Détails + + + + Name + table constraints + Nom + + + + TableForeignKeyPanel + + + Foreign table: + Table étrangère : + + + + Columns + Colonnes + + + + Local column + Colonne locale + + + + Foreign column + Colonne étrangère + + + + Reactions + Réactions + + + + Deferred foreign key + Clé étrangère différée + + + + Named constraint + Contrainte nommée + + + + Constraint name + Nom de la contrainte + + + + Pick the foreign column. + Choisir la colonne étrangère. + + + + Pick the foreign table. + Choisir la table étrangère. + + + + Select at least one foreign column. + Sélectionner au moins une colonne étrangère. + + + + Enter a name of the constraint. + Saisissez un nom de contrainte. + + + + Foreign column + table constraints + Colonne étrangère + + + + TablePrimaryKeyAndUniquePanel + + + Columns + Colonnes + + + + Column + Colonne + + + + Collation + Classement + + + + Sort + Tri + + + + Valid only for a single column with INTEGER data type + Valide seulement pour une simple colonne avecun type de données INTEGER + + + + Autoincrement + Auto-incrémentation + + + + Named constraint + Contrainte nommée + + + + Constraint name + Nom de la contrainte + + + + On conflict + Sur conflit + + + + Collate + table constraints + Collationne + + + + Sort order + table constraints + Ordre de tri + + + + Select at least one column. + Sélectionnez au moins une colonne. + + + + Enter a name of the constraint. + Saisissez le nom de la contrainte. + + + + TableStructureModel + + + Name + table structure columns + Nom + + + + Data type + table structure columns + Type de données + + + + Primary +Key + table structure columns + Clé primaire + + + + Foreign +Key + table structure columns + Clé +étrangère + + + + Unique + table structure columns + Unique + + + + Check + table structure columns + Contrôle + + + + Not +NULL + table structure columns + Non +NULL + + + + Collate + table structure columns + Collecter + + + + Generated + table structure columns + Généré + + + + Default value + table structure columns + Valeur par défaut + + + + TableWindow + + + Structure + Structure + + + + Table name: + Nom de la table : + + + + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + <html><head/><body><p>Active/désactive la clause SANS ID DE LIGNE du tableau. Un tel tableau n'aura plus le &quot;idligne&quot; la colonne cachée. Pour un tel tableau, une colonne CLÉ PRIMAIRE explicite est obligatoire. Vous pouvez lire plus de détails à ce sujet dans la documentation officielle de SQLite.</p></body></html> + + + + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + + + + + Data + Données + + + + Constraints + Contraintes + + + + Indexes + Index + + + + Triggers + Déclencheurs + + + + DDL + DDL + + + + Export table + table window + Exporter une table + + + + Import data to table + table window + Importer les données d’une table + + + + Populate table + table window + Peupler une table + + + + Refresh structure + table window + Actualiser la structure + + + + Commit structure changes + table window + Enregistrer les modifications de la structure + + + + Rollback structure changes + table window + Annuler les modifications de la structure + + + + Add column + table window + Ajouter une colonne + + + + Edit column + table window + Modifier une colonne + + + + + Delete column + table window + Supprimer une colonne + + + + Move column up + table window + Monter la colonne + + + + Move column down + table window + Descendre la colonne + + + + Create similar table + table window + Créer une table identique + + + + Reset autoincrement value + table window + Réinitialisation de l’incrémentation + + + + Add table constraint + table window + Ajouter une contrainte de table + + + + Edit table constraint + table window + Modifier la contrainte de table + + + + Delete table constraint + table window + Supprimer la contrainte de table + + + + Move table constraint up + table window + Monter la contrainte de table + + + + Move table constraint down + table window + Descendre la contrainte de table + + + + Add table primary key + table window + Ajouter une clef primaire à la table + + + + Add table foreign key + table window + Ajouter une clef étrangère à la table + + + + Add table unique constraint + table window + Ajouter une contrainte clef unique à la table + + + + Add table check constraint + table window + Ajouter une contrainte de vérification de tableau + + + + Refresh index list + table window + Actualiser la liste des index + + + + + Create index + table window + Créer un index + + + + Edit index + table window + Modifier un index + + + + Delete index + table window + Supprimer un index + + + + Refresh trigger list + table window + Actualiser la liste des déclencheurs + + + + + Create trigger + table window + Créer un déclencheur + + + + Edit trigger + table window + Modifier un déclencheur + + + + Delete trigger + table window + Supprimer un déclencheur + + + + Are you sure you want to delete column '%1'? + table window + Êtes-vous sûr de vouloir supprimer la colonne '%1' ? + + + + Following problems will take place while modifying the table. +Would you like to proceed? + table window + Des problèmes suivants auront lieu en modifiant la table. +Voudriez-vous procéder ? + + + + Table modification + table window + Modification de la table + + + + Could not load data for table %1. Error details: %2 + Impossible de charger les données de table %1. Détails d’ erreur : %2 + + + + Could not process the %1 table correctly. Unable to open a table window. + Impossible de lancer correctement la table %1. Impossible d’ouvrir la fenêtre de table. + + + + Database + Base de données + + + + Could not restore window %1, because no database or table was stored in session for this window. + Impossible de restaurer la fenêtre %1, car aucune base de données ou tableau n'a été stockée dans la session pour cette fenêtre. + + + + Could not restore window '%1', because no database or table was stored in session for this window. + Impossible de restaurer la fenêtre '%1', car aucune base de données ou tableau n'a été stockée dans la session pour cette fenêtre. + + + + Could not restore window '%1', because database %2 could not be resolved. + Impossible de restaurer la fenêtre '%1', car la base de données %2 n'a pas pu être résolue. + + + + Could not restore window '%1', because the table %2 doesn't exist in the database %3. + Impossible de restaurer la fenêtre '%1', car le tableau %2 n'existe pas dans la base de données %3. + + + + + New table %1 + Nouvelle table %1 + + + + Committed changes for table '%1' successfully. + Modifications validées pour le tableau '%1' avec succès. + + + + Committed changes for table '%1' (named before '%2') successfully. + Modifications validées pour le tableau '%1' (précédemment nommés '%2') avec succès. + + + + Could not commit table structure. Error message: %1 + table window + Impossible d’enregistrer la structure de table. Message d’erreur : %1 + + + + Reset autoincrement + Réinitialisation de l’incrémentation + + + + Are you sure you want to reset autoincrement value for table '%1'? + Êtes-vous sûr de vouloir réinitialiser la valeur de l'auto-incrémentation pour le tableau '%1' ? + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + Une erreur est survenue pendant la réinitialisation de la valeur de l’auto-incrémentation de la table « %1 » : %2 + + + + Autoincrement value for table '%1' has been reset successfully. + La valeur d'auto-incrémentation pour le tableau '%1' a été réinitialisée avec succès. + + + + Empty name + Nom vide + + + + A blank name for the table is allowed in SQLite, but it is not recommended. +Are you sure you want to create a table with blank name? + Un nom vide pour la vue dans SQLITE est admis, mais on ne le recommande pas. +Êtes-vous sûrs que vous voulez créer une vue avec le nom vide ? + + + + Cannot create a table without at least one column. + Impossible de créer une table sans au moins une colonne. + + + + Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. + Impossible de créer la table %1, s’il n’y a pas de clef primaire de définie. Toutefois ne pas contrôler %2 ou définir une clef primaire. + + + + Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. + Impossible d’utiliser l’auto-incrémentation pour une clef primaire quand la clause %1 est utilisée. Toutefois ne pas contrôler %2, ou utiliser l’auto-incrémentation sur une clef primaire. + + + + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 + Les colonnes suivantes ont un type de données non strictes : %1. Désactive le mode strict du tableau ou fixe les types de données des colonnes. Les types de données strictes valides sont : %2 + + + + Are you sure you want to delete table constraint '%1'? + table window + Êtes-vous sûr de vouloir supprimer la contrainte « %1 » ? + + + + Delete constraint + table window + Supprimer la contrainte + + + + Cannot export, because no export plugin is loaded. + Export impossible, car aucun plugin d’import n’est chargé. + + + + Cannot import, because no import plugin is loaded. + Import impossible, car aucun plugin d’import n’est chargé. + + + + Uncommitted changes + Changements invalidés + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + + + + Go back to structure tab + Retour à l’onglet de structure + + + + Commit modifications and browse data. + Enregistrer les modifications et continuer + + + + Name + table window indexes + Nom + + + + Unique + table window indexes + Unique + + + + Columns + table window indexes + Colonnes + + + + Partial index condition + table window indexes + Condition partielle d’index + + + + Name + table window triggers + Nom + + + + Event + table window triggers + Événement + + + + Condition + table window triggers + Condition + + + + Details + table window triggers + Détails + + + + Table window "%1" has uncommitted structure modifications and data. + La fenêtre du tableau "%1" a des modifications de structure et des données invalidées. + + + + Table window "%1" has uncommitted data. + La fenêtre du tableau "%1" a des données invalidées. + + + + Table window "%1" has uncommitted structure modifications. + La fenêtre du tableau "%1" a des modifications de structure invalidées. + + + + TriggerColumnsDialog + + + Trigger columns + Colonnes de déclencheur + + + + Triggering columns: + Colonnes avec déclencheurs : + + + + Select all + Tout sélectionner + + + + Deselect all + Tout désélectionner + + + + TriggerDialog + + + + Trigger + Déclencheur + + + + On table: + Sur table : + + + + Action: + Action : + + + + + <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> + <p> La condition SQL sera évaluée avant le code du déclencheur réel. Dans le cas où le retour de condition est faux, le déclencheur ne sera pas utilisé pour cette ligne.</p > + + + + Pre-condition: + Précondition : + + + + The scope is still not fully supported by the SQLite database. + La portée n’est toujours pas entièrement supportée par la base de données SQLITE. + + + + Trigger name: + Nom du déclencheur : + + + + When: + Quand : + + + + List of columns for UPDATE OF action. + Liste des colonnes pour l’action UPDATE OF. + + + + Scope: + Portée : + + + + Code: + Code : + + + + Trigger statements to be executed. + Déclaration du déclencheur devant être exécutée. + + + + DDL + DDL + + + + On view: + Sur vue : + + + + Could not process trigger %1 correctly. Unable to open a trigger dialog. + Impossible d’exécuter correctement le déclencheur %1. Ouverture invalide du dialogue de déclencheur. + + + + Enter a valid condition. + Saisissez une condition valide. + + + + Enter a valid trigger code. + Saisissez un code de déclencheur valide. + + + + Error + trigger dialog + Erreur + + + + An error occurred while executing SQL statements: +%1 + Une erreur survenue lors de l’exécution de l’intruction SQL : %1 + + + + VersionConvertSummaryDialog + + + Database version convert + Version de convertion de la base de données + + + + Following changes to the SQL statements will be made: + Des modifications suivantes aux déclarations SQL seront faits : + + + + Before + Avant + + + + After + Après + + + + ViewWindow + + + Query + Requête + + + + View name: + Nom de la vue : + + + + Output column names + Noms des colonnes de sortie + + + + + Data + Données + + + + Triggers + Déclencheur + + + + DDL + DDL + + + + + Could not restore window '%1', because no database or view was stored in session for this window. + Impossible de restaurer la fenêtre '%1', car aucune base de données ou vue n'a été stockée dans la session pour cette fenêtre. + + + + Could not restore window '%1', because database %2 could not be resolved. + Impossible de restaurer la fenêtre '%1', car la base de données %2 n'a pas pu être résolue. + + + + Could not restore window '%1', because database %2 could not be open. + Impossible de restaurer la fenêtre '%1', car la base de données %2 n'a pas pu être ouverte. + + + + Could not restore window '%1', because the view %2 doesn't exist in the database %3. + Impossible de restaurer la fenêtre '%1', car la vue %2 n'existe pas dans la base de données %3. + + + + + New view %1 + Nouvelle vue %1 + + + + Database + Base de données + + + + Refresh the view + view window + Actualisation de la vue + + + + Commit the view changes + view window + Enregistrement des changements dans la vue + + + + Rollback the view changes + view window + Annulation des changements dans la vue + + + + Explicit column names + Noms de colonnes explicites + + + + Generate output column names automatically basing on result columns of the view. + Générer automatiquement les noms des colonnes de sortie en se basant sur les colonnes de résultat de la vue. + + + + Add column + view window + Ajouter une colonne + + + + Edit column + view window + Modifier une colonne + + + + Delete column + view window + Supprimer une colonne + + + + Move column up + view window + Monter la colonne + + + + Move column down + view window + Déplacer la colonne vers le bas + + + + Refresh trigger list + view window + Actualisation de la liste des déclencheurs + + + + Create new trigger + view window + Création d’un nouveau déclencheur + + + + Edit selected trigger + view window + Modification du déclencheur sélectionné + + + + Delete selected trigger + view window + Suppression du déclencheur sélectionné + + + + View window "%1" has uncommitted structure modifications and data. + Fenêtre de visualisation "%1" a des modifications de structure et des données invalidées. + + + + View window "%1" has uncommitted data. + Fenêtre de visualisation "%1" a des données non invalidées. + + + + View window "%1" has uncommitted structure modifications. + Fenêtre de visualisation "%1" a des modifications de structure invalidées. + + + + Could not load data for view %1. Error details: %2 + Impossible de charher les données de vue %1. Détails d’ erreur : %2 + + + + Uncommitted changes + Changements non envoyés + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + + + + Go back to structure tab + Retour à l’onlet de structure + + + + Commit modifications and browse data. + Enregistrement des modifications et navigation des données. + + + + View '%1' was committed successfully. + La vue '%1' a été validée avec succès. + + + + Committed changes for view '%1' successfully. + Modifications validées pour la vue '%1' avec succès. + + + + Committed changes for view '%1' (named before '%2') successfully. + Modifications validées pour la vue '%1' (précédemment nommés '%2') avec succès. + + + + Could not commit view changes. Error message: %1 + view window + Impossible de valider les modifications de vue. Message d'erreur : %1 + + + + Override columns + Remplacer les colonnes + + + + Currently defined columns will be overriden. Do you want to continue? + Les colonnes actuellement définies seront remplacer. Voulez-vous continuer ? + + + + Could not determinate columns returned from the view. The query is problably incomplete or contains errors. + Impossible de déterminer les colonnes renvoyées depuis la vue. La requête est sûrement incomplète ou contient des erreurs. + + + + Name + view window triggers + Nom + + + + Instead of + view window triggers + À la place de + + + + Condition + view window triggers + Condition + + + + Details + table window triggers + Détails + + + + Could not process the %1 view correctly. Unable to open a view window. + Impossible de lancer correctement la vue %1. Impossible d’ouvrir la fenêtre de vue. + + + + Empty name + Nom absent + + + + A blank name for the view is allowed in SQLite, but it is not recommended. +Are you sure you want to create a view with blank name? + Un nom vide pour la vue dans SQLITE est admis, mais on ne le recommande pas. +Êtes-vous sûrs que vous voulez créer une vue avec le nom vide ? + + + + The SELECT statement could not be parsed. Please correct the query and retry. +Details: %1 + La déclaration SELECT ne peut être analysé. Veuillez corriger la requête et réessayer. +Details : %1 + + + + The view could not be modified due to internal SQLiteStudio error. Please report this! + La vue ne peut être modifiée a cause d’une erreur interne de SQLiteStudio. SVP repportez l’erreur ! + + + + The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. + Le code vu n'a pas pu être analysé correctement pour l'exécution. Ceci est un bug de SQLiteStudio. Veuillez le signaler. + + + + Following problems will take place while modifying the view. +Would you like to proceed? + view window + Des problèmes suivants auront lieu en modifiant la vue. +Veulez-vous continuer ? + + + + View modification + view window + Fenêtre vue + + + + WidgetCover + + + Interrupt + Interruption + + + diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_he_IL.ts b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_he_IL.ts new file mode 100644 index 0000000..bc7da76 --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_he_IL.ts @@ -0,0 +1,7111 @@ + + + + + AboutDialog + + + About SQLiteStudio and licenses + אודות QLiteStudio ורישיונות + + + + About + אודות + + + + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">מנהל מסדי נתונים SQLite חינמי בקוד פתוח, חוצה מסדות.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">מחבר ומתחזק פעיל:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + + + + Licenses + רישיון + + + + Environment + סביבה + + + + Icon directories + מחיצת צלמיות + + + + Form directories + מחיצת טפסים + + + + SQLite extension directories + SQLite extension directories + + + + Plugin directories + מחיצת תוספים + + + + Configuration directory + מחיצת תצור + + + + Application directory + מחיצת היישום + + + + Qt version: + גרסת Qt: + + + + SQLite 3 version: + גירסת SQLite 3: + + + + Portable distribution. + הפצה ניידת. + + + + MacOS X application bundle distribution. + MacOS X application bundle distribution. + + + + Operating system managed distribution. + הפצה מנוהלת מערכת הפעלה. + + + + <h3>Table of contents:</h3><ol>%2</ol> + <h3>Table of contents:</h3><ol>%2</ol> + + + + BindParamsDialog + + + Query parameters + גורמי שאילתה + + + + Please provide values for query parameters + נא לספק ערכים למשתני השאילתה + + + + CodeSnippetEditor + + + Filter snippets + Filter snippets + + + + + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + + + + + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + + + + Snippet name + Snippet name + + + + Code assistant shortcut + Code assistant shortcut + + + + Snippet code + Snippet code + + + + Code Snippets editor window has uncommitted modifications. + Code Snippets editor window has uncommitted modifications. + + + + Code Snippets editor + Code Snippets editor + + + + Commit all snippet changes + Commit all snippet changes + + + + Rollback all snippet changes + Rollback all snippet changes + + + + Create new snippet + Create new snippet + + + + Delete selected snippet + Delete selected snippet + + + + Move the snippet up + Move the snippet up + + + + Move the snippet down + Move the snippet down + + + + Code snippets manual + Code snippets manual + + + + Enter a non-empty, unique name of the snippet. + Enter a non-empty, unique name of the snippet. + + + + Enter a non-empty snippet content. + Enter a non-empty snippet content. + + + + This hotkey is not unique in context of a code assistant. + This hotkey is not unique in context of a code assistant. + + + + CollationsEditor + + + Filter collations + סינון אורגנים + + + + Databases + מסד נתונים + + + + Register in all databases + רישום לכל מסדי הנתונים + + + + Register in following databases: + רישום למסדי הנתונים הבאים: + + + + Implementation code: + קוד יישום: + + + + Collation name: + שם ארגון: + + + + Implementation language: + שפת יישום: + + + + Collations editor + עורך אסופות, + + + + Commit all collation changes + קִבּוּעַ כל שינויי האסופה + + + + Rollback all collation changes + הסגת כל שינויי האסופה + + + + Create new collation + יצירת אסופה חדשה + + + + Delete selected collation + מחיקת עמודות שנבחרו + + + + Editing collations manual + Editing collations manual + + + + Enter a non-empty, unique name of the collation. + Enter a non-empty, unique name of the collation. + + + + Pick the implementation language. + בחירת שפת היישום. + + + + Enter a non-empty implementation code. + Enter a non-empty implementation code. + + + + Collations editor window has uncommitted modifications. + Collations editor window has uncommitted modifications. + + + + ColorButton + + + Pick a color + בחירת צבע + + + + ColumnCollatePanel + + + Collation name: + שם אוסף: + + + + Named constraint: + אילוץ שם: + + + + Enter a name of the constraint. + הזנת שם לאילוץ. + + + + Enter a collation name. + הזנת שם איסוף. + + + + ColumnDefaultPanel + + + Default value: + ערך ברירת המחדל: + + + + Named constraint: + אילוץ בעל שם: + + + + Enter a default value expression. + הזנת ביטוי ערך ברירת מחדל. + + + + Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. + Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. + + + + Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. + Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. + + + + Enter a name of the constraint. + הזנת שם לאילוץ. + + + + ColumnDialog + + + Column + עמודה + + + + Name and type + שם וסוג + + + + Scale + קנה מידה + + + + Precision + דיוק + + + + Data type: + סוג מידע: + + + + Column name: + שם עמודה: + + + + Size: + גודל: + + + + Constraints + אילוצים + + + + Generated value + ערכך מחולל + + + + Unique + יחידאי + + + + + + + + + + + Configure + תצור + + + + Foreign Key + מפתח זר + + + + Collate + איסוף + + + + Not NULL + לא NULL + + + + Check condition + תנאי בקרה + + + + Primary Key + מפתח ראשי + + + + Default + ברירת מחדל + + + + Advanced mode + מצב מתקדם + + + + Add constraint + column dialog + הוספת אילוץ + + + + Edit constraint + column dialog + עריכת אילוץ + + + + + Delete constraint + column dialog + מחיקת אילוץ + + + + Move constraint up + column dialog + העברת אילוץ מעלה + + + + Move constraint down + column dialog + העברת אילוץ מטה + + + + Add a primary key + column dialog + הוספת מפתח ראשי + + + + Add a foreign key + column dialog + הוספת מפתח משני + + + + Add an unique constraint + column dialog + הוספת אילוץ יחודאי + + + + Add a check constraint + column dialog + הוספת אילוץ בקרה + + + + Add a not null constraint + column dialog + הוספת אילוץ לא Null + + + + Add a collate constraint + column dialog + הוספת אילוץ איסוף + + + + Add a generated value constraint + column dialog + Add a generated value constraint + + + + Add a default constraint + column dialog + הוספת אילוץ ברירת מחדל + + + + Are you sure you want to delete constraint '%1'? + column dialog + האם למחוק אילוץ '%1'? + + + + Correct the constraint's configuration. + נא לתקן את תצור האילוץ'. + + + + Scale is not allowed for INTEGER PRIMARY KEY columns. + Scale is not allowed for INTEGER PRIMARY KEY columns. + + + + Precision cannot be defined without the scale. + Precision cannot be defined without the scale. + + + + Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. + Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. + + + + INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. + INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. + + + + Precision is not allowed for INTEGER PRIMARY KEY columns. + Precision is not allowed for INTEGER PRIMARY KEY columns. + + + + Could not match valid STRICT table datatype from declared type: %1. + Could not match valid STRICT table datatype from declared type: %1. + + + + ColumnDialogConstraintsModel + + + Type + column dialog constraints + סוג + + + + Name + column dialog constraints + שם + + + + Details + column dialog constraints + פרטים + + + + ColumnForeignKeyPanel + + + Foreign table: + טבלה זרה: + + + + Foreign column: + עמודה זרה: + + + + Reactions + תגובות + + + + Deferred foreign key + Deferred foreign key + + + + Named constraint + אילוץ בעל שם + + + + Constraint name + שם אילוץ + + + + Pick the foreign table. + בחירת הטבלה הזרה. + + + + Pick the foreign column. + בחירת העמודה הזרה. + + + + Enter a name of the constraint. + הזנת שם לאילוץ. + + + + ColumnGeneratedPanel + + + Generating code: + חילול קוד: + + + + Explicit type: + Explicit type: + + + + Use "GENERATED ALWAYS" keywords + Use "GENERATED ALWAYS" keywords + + + + Named constraint: + אילוץ בשם: + + + + Enter the column value generating expression. + Enter the column value generating expression. + + + + Invalid value generating expression: %1. + Invalid value generating expression: %1. + + + + Invalid value generating expression. + Invalid value generating expression. + + + + Enter a name of the constraint. + הזנת שם לאילוץ. + + + + ColumnPrimaryKeyPanel + + + Autoincrement + Autoincrement + + + + Sort order: + סדר מיון: + + + + Named constraint: + שם אילוץ: + + + + On conflict: + אין התנגשות: + + + + Enter a name of the constraint. + הזנת שם לאילוץ. + + + + Descending order is not allowed with AUTOINCREMENT. + Descending order is not allowed with AUTOINCREMENT. + + + + ColumnUniqueAndNotNullPanel + + + Named constraint: + אילוץ בעל שם: + + + + On conflict: + בהתנגשות: + + + + Enter a name of the constraint. + הזנת שם לאילוץ. + + + + CompleterWindow + + + Column: %1 + completer statusbar + עמודה: %1 + + + + Table: %1 + completer statusbar + טבלה: %1 + + + + Index: %1 + completer statusbar + מִפְתֵּחַ: %1 + + + + Trigger: %1 + completer statusbar + מַזְנֵק: %1 + + + + View: %1 + completer statusbar + מצג: %1 + + + + Database: %1 + completer statusbar + מסד נתונים: %1 + + + + Keyword: %1 + completer statusbar + מילת מפתח: %1 + + + + Function: %1 + completer statusbar + Function: %1 + + + + Operator: %1 + completer statusbar + Operator: %1 + + + + String + completer statusbar + מחרוזת + + + + Number + completer statusbar + מספר + + + + Binary data + completer statusbar + נתונים בינאריים + + + + Collation: %1 + completer statusbar + ארגון: %1 + + + + Pragma function: %1 + completer statusbar + Pragma function: %1 + + + + Insert a code snippet + Insert a code snippet + + + + ConfigDialog + + + + Configuration + הגדרות + + + + Search + חיפוש + + + + General + כללי + + + + Keyboard shortcuts + קיצורי מקלדת + + + + Look & feel + מראה ותחושה + + + + Style + סגנון + + + + Fonts + גופנים + + + + Code colors + Code colors + + + + + Database list + רשימת מסדי נתונים + + + + Code assistant + Code assistant + + + + Data browsing + סיור בנתונים + + + + Data editors + עורכי נתונים + + + + Plugins + מתקעים + + + + Code formatters + מתבנתי קוד + + + + If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. + If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. + + + + Sort table columns alphabetically + Sort table columns alphabetically + + + + Expand tables node when connected to a database + Expand tables node when connected to a database + + + + <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> + <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> + + + + Display additional labels on the list + Display additional labels on the list + + + + For regular tables labels will show number of columns, indexes and triggers for each of tables. + For regular tables labels will show number of columns, indexes and triggers for each of tables. + + + + Display labels for regular tables + הצגת תוויות לטבלאות רגילות + + + + Virtual tables will be marked with a 'virtual' label. + Virtual tables will be marked with a 'virtual' label. + + + + Display labels for virtual tables + הצגת תוויות של טבלאות מדומות + + + + Expand views node when connected to a database + Expand views node when connected to a database + + + + If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) + If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) + + + + Sort objects (tables, indexes, triggers and views) alphabetically + מיון עצמים (טבלאות, מפתחים, הדקים ומצגים) + + + + Display system tables and indexes on the list + Display system tables and indexes on the list + + + + Database dialog window + חלון דו-שיח מסד נתונים + + + + <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> + <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> + + + + Do not mark database to be "permanent" by default + Do not mark database to be "permanent" by default + + + + <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> + <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> + + + + Try to bypass dialog completly when dropping database file onto the list + Try to bypass dialog completly when dropping database file onto the list + + + + Data browsing and editing + סיור בנתונים ועריכה + + + + + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + + + + Number of memorized table populating configurations + Number of memorized table populating configurations + + + + Data column width + Data column width + + + + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + + + + Enlarge column when entering value longer than current width + Enlarge column when entering value longer than current width + + + + <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> + <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> + + + + Number of data rows per page: + Number of data rows per page: + + + + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> + <p>כאשר אפשרות זו מופעלת והמשתמש מחזיק מצביע עכבר מעל תא במצג נתונים כלשהו (תוצאות שאילתה, נתוני טבלה, נתוני תצוגה) יופיע כלי עצה עם פרטים אודות התא - שיכלול פרטים אודות סוג נתוני העמודה, אילוצים, ROWID ועוד</p> + + + + Show column and row details tooltip in data view + Show column and row details tooltip in data view + + + + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + + + + Keep NULL value when entering empty value + Keep NULL value when entering empty value + + + + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> + + + + Use DEFAULT value (if defined), when committing NULL value + Use DEFAULT value (if defined), when committing NULL value + + + + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + + + + Limit number of rows for in case of dozens of columns + Limit number of rows for in case of dozens of columns + + + + Inserting new row in data grid + Inserting new row in data grid + + + + Before currently selected row + Before currently selected row + + + + After currently selected row + After currently selected row + + + + At the end of data view + At the end of data view + + + + Table windows + Table windows + + + + <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> + <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> + + + + Open Table Windows with the data tab for start + Open Table Windows with the data tab for start + + + + <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> + <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> + + + + Place data tab as first tab in a Table Window + Place data tab as first tab in a Table Window + + + + View windows + View windows + + + + <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> + <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> + + + + Open View Windows with the data tab for start + Open View Windows with the data tab for start + + + + <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> + <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> + + + + Place data tab as first tab in a View Window + Place data tab as first tab in a View Window + + + + Data types + סוגי מידע + + + + Available editors: + עורכים זמינים: + + + + Editors selected for this data type: + Editors selected for this data type: + + + + Schema editing + Schema editing + + + + Number of DDL changes kept in history. + Number of DDL changes kept in history. + + + + DDL history size: + DDL history size: + + + + Don't show DDL preview dialog when committing schema changes + Don't show DDL preview dialog when committing schema changes + + + + SQL queries + שאילתות SQL + + + + + Number of queries kept in the history. + Number of queries kept in the history. + + + + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> + + + + History size: + גודל היסטוריה: + + + + + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> + + + + Execute only the query under the cursor + Execute only the query under the cursor + + + + Number of memorized query parameters + Number of memorized query parameters + + + + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + + + + Use scientific notation for real numbers in the grid view + Use scientific notation for real numbers in the grid view + + + + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + + + + Limit automatic data column width to (in pixels): + Limit automatic data column width to (in pixels): + + + + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + + + + Keep at least the width to show complete column name + Keep at least the width to show complete column name + + + + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + + + + Wrap lines in SQL editor + Wrap lines in SQL editor + + + + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + + + + Highlight current query + Highlight current query + + + + Updates + עדכונים + + + + Automatically check for updates at startup + Automatically check for updates at startup + + + + Session + מופעים + + + + Restore last session (active MDI windows) after startup + Restore last session (active MDI windows) after startup + + + + Allow multiple instances of the application at the same time + Allow multiple instances of the application at the same time + + + + Status Field + שדה מצב + + + + <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> + <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> + + + + Always open Status panel when new message is printed + Always open Status panel when new message is printed + + + + Code syntax colors + Code syntax colors + + + + Keyword foreground + Keyword foreground + + + + Regular foreground + Regular foreground + + + + String foreground + String foreground + + + + Comment foreground + Comment foreground + + + + Valid objects foreground + Valid objects foreground + + + + Current query background + Current query background + + + + Bind parameter foreground + Bind parameter foreground + + + + Current line background + Current line background + + + + Matched parenthesis background + Matched parenthesis background + + + + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + + + + Number foreground + Number foreground + + + + BLOB value foreground + BLOB value foreground + + + + Matched parenthesis foreground + Matched parenthesis foreground + + + + Reset to defaults + Reset to defaults + + + + Filter shortcuts by name or key combination + Filter shortcuts by name or key combination + + + + Action + פעולה + + + + Key combination + Key combination + + + + + Language + Language + + + + Changing language requires application restart to take effect. + Changing language requires application restart to take effect. + + + + Compact layout + Compact layout + + + + <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> + <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> + + + + Use compact layout + Use compact layout + + + + Main window dock areas + Main window dock areas + + + + Left and right areas occupy corners + Left and right areas occupy corners + + + + Top and bottom areas occupy corners + Top and bottom areas occupy corners + + + + Hide built-in plugins + Hide built-in plugins + + + + Current style: + Current style: + + + + Preview + תצוגה מקדימה + + + + Enabled + מופעל + + + + Disabled + מושבת + + + + Active formatter plugin + Active formatter plugin + + + + SQL editor font + גופן עורך SQL + + + + Database list font + Database list font + + + + Database list additional label font + Database list additional label font + + + + Data view font + Data view font + + + + Status field font + Status field font + + + + Code assistant settings + Code assistant settings + + + + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + + + + Automatically trigger the assistant after a dot is typed after an object name + Automatically trigger the assistant after a dot is typed after an object name + + + + Description: + plugin details + Description: + + + + Category: + plugin details + Category: + + + + Version: + plugin details + Version: + + + + Author: + plugin details + Author: + + + + Internal name: + plugin details + Internal name: + + + + Dependencies: + plugin details + Dependencies: + + + + Conflicts: + plugin details + Conflicts: + + + + Plugin details + Plugin details + + + + Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. + Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. + + + + %1 (built-in) + plugins manager in configuration dialog + %1 (built-in) + + + + Details + Details + + + + No plugins in this category. + No plugins in this category. + + + + Add new data type + Add new data type + + + + Rename selected data type + Rename selected data type + + + + Delete selected data type + Delete selected data type + + + + Help for configuring data type editors + Help for configuring data type editors + + + + Clear hotkey for this action + Clear hotkey for this action + + + + Restore original hotkey for this action + Restore original hotkey for this action + + + + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + + + + ConstraintCheckPanel + + + The condition + The condition + + + + Named constraint: + שם אילוץ: + + + + On conflict + On conflict + + + + Enter a valid condition. + Enter a valid condition. + + + + Enter a name of the constraint. + הזנת שם לאילוץ. + + + + ConstraintDialog + + + New constraint + constraint dialog + אילוץ חדש + + + + Create + constraint dialog + Create + + + + Edit constraint + dialog window + עריכת אילוץ + + + + Apply + constraint dialog + Apply + + + + Primary key + table constraints + Primary key + + + + Foreign key + table constraints + Foreign key + + + + Unique + table constraints + Unique + + + + Not NULL + table constraints + Not NULL + + + + Check + table constraints + Check + + + + Generated + table constraints + Generated + + + + Collate + table constraints + איסוף + + + + Default + table constraints + Default + + + + ConstraintTabModel + + + Table + table constraints + Table + + + + Column (%1) + table constraints + Column (%1) + + + + Scope + table constraints + Scope + + + + Type + table constraints + Type + + + + Details + table constraints + Details + + + + Name + table constraints + Name + + + + CssDebugDialog + + + SQLiteStudio CSS console + SQLiteStudio CSS console + + + + DataView + + + Filter data + data view + Filter data + + + + Grid view + Grid view + + + + Form view + Form view + + + + Refresh table data + data view + Refresh table data + + + + First page + data view + First page + + + + Previous page + data view + Previous page + + + + Next page + data view + Next page + + + + Last page + data view + Last page + + + + Commit changes for selected cells + data view + קיבוע שינויים לתאים שנבחרו + + + + Rollback changes for selected cells + data view + Rollback changes for selected cells + + + + Show grid view of results + data view + Show grid view of results + + + + Show form view of results + data view + Show form view of results + + + + Filter by text (if contains) + data view + Filter by text (if contains) + + + + Filter strictly by text (if equals) + data view + Filter strictly by text (if equals) + + + + Tabs on top + data view + Tabs on top + + + + Tabs at bottom + data view + Tabs at bottom + + + + Place new rows above selected row + data view + Place new rows above selected row + + + + Place new rows below selected row + data view + Place new rows below selected row + + + + Place new rows at the end of the data view + data view + Place new rows at the end of the data view + + + + Total number of rows is being counted. +Browsing other pages will be possible after the row counting is done. + Total number of rows is being counted. +Browsing other pages will be possible after the row counting is done. + + + + Row: %1 + Row: %1 + + + + Filter + Filter + + + + Hit Enter key or press "Apply filter" button on toolbar to apply new value. + Hit Enter key or press "Apply filter" button on toolbar to apply new value. + + + + Filter by the Regular Expression + data view + Filter by the Regular Expression + + + + Filter by SQL expression + data view + Filter by SQL expression + + + + Show filter inputs per column + data view + Show filter inputs per column + + + + Apply filter + data view + Apply filter + + + + DbDialog + + + Database + Database + + + + Database type + Database type + + + + Database driver + Database driver + + + + + File + File + + + + Name (on the list) + Name (on the list) + + + + Options + Options + + + + <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> + aasfd + <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> + + + + Permanent (keep it in configuration) + Permanent (keep it in configuration) + + + + Test connection + Test connection + + + + Select new or existing file on local computer + Select new or existing file on local computer + + + + Browse + Browse + + + + Database type not selected. + Database type not selected. + + + + Database path not specified. + Database path not specified. + + + + Enter an unique database name. + Enter an unique database name. + + + + This name is already in use. Please enter unique name. + This name is already in use. Please enter unique name. + + + + <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> + <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> + + + + Enter a database file path. + Enter a database file path. + + + + This database is already on the list under name: %1 + This database is already on the list under name: %1 + + + + Select a database type. + Select a database type. + + + + DbObjectDialogs + + + Delete table + Delete table + + + + Are you sure you want to delete table %1? + Are you sure you want to delete table %1? + + + + Delete index + Delete index + + + + Are you sure you want to delete index %1? + Are you sure you want to delete index %1? + + + + Delete trigger + Delete trigger + + + + Are you sure you want to delete trigger %1? + Are you sure you want to delete trigger %1? + + + + Delete view + Delete view + + + + Are you sure you want to delete view %1? + Are you sure you want to delete view %1? + + + + + Error while dropping %1: %2 + Error while dropping %1: %2 + + + + Delete objects + Delete objects + + + + Are you sure you want to delete following objects: +%1 + Are you sure you want to delete following objects: +%1 + + + + Cannot start transaction. Details: %1 + Cannot start transaction. Details: %1 + + + + Cannot commit transaction. Details: %1 + Cannot commit transaction. Details: %1 + + + + DbTree + + + Databases + Databases + + + + Filter by name + Filter by name + + + + Copy + Copy + + + + Paste + Paste + + + + Select all + Select all + + + + Create a group + Create a group + + + + Delete the group + Delete the group + + + + Rename the group + Rename the group + + + + &Add a database + &Add a database + + + + &Edit the database + &Edit the database + + + + &Remove the database + &Remove the database + + + + &Connect to the database + &Connect to the database + + + + &Disconnect from the database + &Disconnect from the database + + + + Import + Import + + + + &Export the database + &Export the database + + + + Vac&uum + Vac&uum + + + + &Integrity check + &Integrity check + + + + Create a &table + Create a &table + + + + Edit the t&able + Edit the t&able + + + + Delete the ta&ble + Delete the ta&ble + + + + Export the table + Export the table + + + + Import into the table + Import into the table + + + + Populate table + Populate table + + + + Create similar table + Create similar table + + + + Reset autoincrement sequence + Reset autoincrement sequence + + + + Create an &index + Create an &index + + + + Edit the i&ndex + Edit the i&ndex + + + + Delete the in&dex + Delete the in&dex + + + + Create a trig&ger + Create a trig&ger + + + + Edit the trigg&er + Edit the trigg&er + + + + Delete the trigge&r + Delete the trigge&r + + + + Create a &view + Create a &view + + + + Edit the v&iew + Edit the v&iew + + + + Delete the vi&ew + Delete the vi&ew + + + + Add a column + Add a column + + + + Edit the column + Edit the column + + + + Delete the column + Delete the column + + + + Delete selected items + Delete selected items + + + + Clear filter + Clear filter + + + + &Refresh all database schemas + &Refresh all database schemas + + + + Re&fresh selected database schema + Re&fresh selected database schema + + + + + Erase table data + Erase table data + + + + Open file's directory + פתיחת מחיצת קבצים + + + + Execute SQL from file + Execute SQL from file + + + + Increase font size + database list + Increase font size + + + + Decrease font size + database list + Decrease font size + + + + + Database + Database + + + + Grouping + Grouping + + + + Generate query for table + Generate query for table + + + + + Create group + Create group + + + + Group name + Group name + + + + Entry with name %1 already exists in group %2. + Entry with name %1 already exists in group %2. + + + + Delete group + Delete group + + + + Are you sure you want to delete group %1? +All objects from this group will be moved to parent group. + Are you sure you want to delete group %1? +All objects from this group will be moved to parent group. + + + + Are you sure you want to remove database '%1' from the list? + Are you sure you want to remove database '%1' from the list? + + + + Are you sure you want to remove following databases from the list: +%1 + Are you sure you want to remove following databases from the list: +%1 + + + + Remove database + Remove database + + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Vacuum (%1) + Vacuum (%1) + + + + Integrity check (%1) + Integrity check (%1) + + + + Reset autoincrement + Reset autoincrement + + + + Are you sure you want to reset autoincrement value for table '%1'? + Are you sure you want to reset autoincrement value for table '%1'? + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + An error occurred while trying to reset autoincrement value for table '%1': %2 + + + + Autoincrement value for table '%1' has been reset successfully. + Autoincrement value for table '%1' has been reset successfully. + + + + Are you sure you want to delete all data from table(s): %1? + Are you sure you want to delete all data from table(s): %1? + + + + An error occurred while trying to delete data from table '%1': %2 + An error occurred while trying to delete data from table '%1': %2 + + + + All data has been deleted for table '%1'. + All data has been deleted for table '%1'. + + + + Following objects will be deleted: %1. + Following objects will be deleted: %1. + + + + Following databases will be removed from list: %1. + Following databases will be removed from list: %1. + + + + Remainig objects from deleted group will be moved in place where the group used to be. + Remainig objects from deleted group will be moved in place where the group used to be. + + + + %1<br><br>Are you sure you want to continue? + %1<br><br>Are you sure you want to continue? + + + + Delete objects + Delete objects + + + + DbTreeItemDelegate + + + error + dbtree labels + error + + + + (system table) + database tree label + (system table) + + + + (virtual) + virtual table label + (virtual) + + + + (system index) + database tree label + (system index) + + + + DbTreeModel + + + Database: %1 + dbtree tooltip + Database: %1 + + + + URI: + dbtree tooltip + URI: + + + + Version: + dbtree tooltip + Version: + + + + File size: + dbtree tooltip + File size: + + + + Encoding: + dbtree tooltip + Encoding: + + + + Error: + dbtree tooltip + Error: + + + + Table : %1 + dbtree tooltip + Table : %1 + + + + Columns (%1): + dbtree tooltip + Columns (%1): + + + + Indexes (%1): + dbtree tooltip + Indexes (%1): + + + + Triggers (%1): + dbtree tooltip + Triggers (%1): + + + + Copy + Copy + + + + Move + Move + + + + Include data + Include data + + + + Include indexes + Include indexes + + + + Include triggers + Include triggers + + + + Abort + Abort + + + + Could not add dropped database file '%1' automatically. Manual setup is necessary. + Could not add dropped database file '%1' automatically. Manual setup is necessary. + + + + Referenced tables + Referenced tables + + + + Do you want to include following referenced tables as well: +%1 + Do you want to include following referenced tables as well: +%1 + + + + Name conflict + Name conflict + + + + Following object already exists in the target database. +Please enter new, unique name, or press '%1' to abort the operation: + Following object already exists in the target database. +Please enter new, unique name, or press '%1' to abort the operation: + + + + SQL statements conversion + SQL statements conversion + + + + Following error occurred while converting SQL statements to the target SQLite version: + Following error occurred while converting SQL statements to the target SQLite version: + + + + Would you like to ignore those errors and proceed? + Would you like to ignore those errors and proceed? + + + + DdlHistoryWindow + + + Filter by database: + Filter by database: + + + + Clear entire history + Clear entire history + + + + -- Queries executed on database %1 (%2) +-- Date and time of execution: %3 +%4 + -- Queries executed on database %1 (%2) +-- Date and time of execution: %3 +%4 + + + + Clear history + Clear history + + + + Are you sure you want to erase entire DDL history? + Are you sure you want to erase entire DDL history? + + + + DDL history + DDL history + + + + DdlPreviewDialog + + + Queries to be executed + Queries to be executed + + + + Don't show again + Don't show again + + + + DebugConsole + + + SQLiteStudio Debug Console + SQLiteStudio Debug Console + + + + EditorWindow + + + SQL editor + SQL editor + + + + Query + שאילתה + + + + History + History + + + + Results in the separate tab + Results in the separate tab + + + + Results below the query + Results below the query + + + + + SQL editor %1 + SQL editor %1 + + + + + Results + Results + + + + Execute query + Execute query + + + + Explain query + Explain query + + + + Clear execution history + sql editor + Clear execution history + + + + Export results + sql editor + Export results + + + + Create view from query + sql editor + Create view from query + + + + Previous database + Previous database + + + + Next database + Next database + + + + Show next tab + sql editor + Show next tab + + + + Show previous tab + sql editor + Show previous tab + + + + Focus results below + sql editor + Focus results below + + + + Focus SQL editor above + sql editor + Focus SQL editor above + + + + Delete selected SQL history entries + sql editor + Delete selected SQL history entries + + + + Execute single query under cursor + Execute single query under cursor + + + + Execute all queries in editor + Execute all queries in editor + + + + Active database (%1/%2) + Active database (%1/%2) + + + + Query finished in %1 second(s). Rows affected: %2 + Query finished in %1 second(s). Rows affected: %2 + + + + Query finished in %1 second(s). + Query finished in %1 second(s). + + + + Clear execution history + Clear execution history + + + + Are you sure you want to erase the entire SQL execution history? This cannot be undone. + Are you sure you want to erase the entire SQL execution history? This cannot be undone. + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + No database selected in the SQL editor. Cannot create a view for unknown database. + No database selected in the SQL editor. Cannot create a view for unknown database. + + + + Editor window "%1" has uncommitted data. + Editor window "%1" has uncommitted data. + + + + ErrorsConfirmDialog + + + Errors + Errors + + + + Following errors occured: + Following errors occured: + + + + Would you like to proceed? + Would you like to proceed? + + + + ExecFromFileDialog + + + Execute SQL from file + Execute SQL from file + + + + Input file + Input file + + + + Path to file + Path to file + + + + Browse for file + Browse for file + + + + Options + Options + + + + File encoding + File encoding + + + + Skip failing SQL statements + Skip failing SQL statements + + + + SQL scripts (*.sql);;All files (*) + SQL scripts (*.sql);;All files (*) + + + + Execute SQL file + Execute SQL file + + + + Please provide file to be executed. + Please provide file to be executed. + + + + Provided file does not exist or cannot be read. + Provided file does not exist or cannot be read. + + + + ExportDialog + + + Export + Export + + + + What do you want to export? + What do you want to export? + + + + A database + A database + + + + A single table + A single table + + + + Query results + Query results + + + + Table to export + Table to export + + + + Database + Database + + + + Table + Table + + + + Options + Options + + + + When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. + When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. + + + + Export table data + Export table data + + + + Export table indexes + Export table indexes + + + + Export table triggers + Export table triggers + + + + Note, that exporting table indexes and triggers may be unsupported by some output formats. + Note, that exporting table indexes and triggers may be unsupported by some output formats. + + + + Select database objects to export + Select database objects to export + + + + Export data from tables + Export data from tables + + + + Select all + Select all + + + + Deselect all + Deselect all + + + + + Database: + Database: + + + + Query to export results for + Query to export results for + + + + Query to be executed for results: + Query to be executed for results: + + + + Export format and options + Export format and options + + + + Export format + Export format + + + + Output + Output + + + + Exported file path + Exported file path + + + + Clipboard + Clipboard + + + + File + File + + + + Exported text encoding: + Exported text encoding: + + + + Export format options + Export format options + + + + Cancel + Cancel + + + + + + Select database to export. + Select database to export. + + + + Select table to export. + Select table to export. + + + + Enter valid query to export. + Enter valid query to export. + + + + Select at least one object to export. + Select at least one object to export. + + + + You must provide a file name to export to. + You must provide a file name to export to. + + + + Path you provided is an existing directory. You cannot overwrite it. + הנתיב שסופק מפנה למחיצה קיימת, לא ניתן לדרוס אותה. + + + + The directory '%1' does not exist. + מחיצה „%1” לא קיימת. + + + + The file '%1' exists and will be overwritten. + The file '%1' exists and will be overwritten. + + + + All files (*) + All files (*) + + + + Pick file to export to + Pick file to export to + + + + Internal error during export. This is a bug. Please report it. + Internal error during export. This is a bug. Please report it. + + + + FileExecErrorsDialog + + + Execution errors + Execution errors + + + + Following errors were encountered during execution of SQL statements from the file: + Following errors were encountered during execution of SQL statements from the file: + + + + SQL + SQL + + + + Error + Error + + + + Statements that were executed successfully were commited. + Statements that were executed successfully were commited. + + + + Statements that were executed successfully were rolled back. + Statements that were executed successfully were rolled back. + + + + FkComboBox + + + Cannot edit this cell. Details: %1 + Cannot edit this cell. Details: %1 + + + + FontEdit + + + Choose font + font configuration + Choose font + + + + Form + + + Active SQL formatter plugin + Active SQL formatter plugin + + + + FormView + + + Commit row + form view + לקבע כעת + + + + Rollback row + form view + Rollback row + + + + First row + form view + First row + + + + Previous row + form view + Previous row + + + + Next row + form view + Next row + + + + Last row + form view + Last row + + + + Insert new row + form view + Insert new row + + + + Delete current row + form view + Delete current row + + + + FunctionsEditor + + + Filter functions + Filter functions + + + + Input arguments + Input arguments + + + + Undefined + Undefined + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Type: + Type: + + + + Function name: + Function name: + + + + Implementation language: + Implementation language: + + + + Deterministic + Deterministic + + + + Initialization code: + Initialization code: + + + + + Function implementation code: + Function implementation code: + + + + Final step implementation code: + Final step implementation code: + + + + SQL functions editor + SQL functions editor + + + + Commit all function changes + Commit all function changes + + + + Rollback all function changes + Rollback all function changes + + + + Create new function + Create new function + + + + Delete selected function + Delete selected function + + + + Custom SQL functions manual + Custom SQL functions manual + + + + Add function argument + Add function argument + + + + Rename function argument + Rename function argument + + + + Delete function argument + Delete function argument + + + + Move function argument up + Move function argument up + + + + Move function argument down + Move function argument down + + + + Scalar + Scalar + + + + Aggregate + Aggregate + + + + Enter a non-empty, unique name of the function. + Enter a non-empty, unique name of the function. + + + + Pick the implementation language. + Pick the implementation language. + + + + Per step code: + Per step code: + + + + Enter a non-empty implementation code. + Enter a non-empty implementation code. + + + + argument + new function argument name in function editor window + argument + + + + Functions editor window has uncommitted modifications. + Functions editor window has uncommitted modifications. + + + + ImportDialog + + + Import data + Import data + + + + Table to import to + Table to import to + + + + Table + Table + + + + Database + Database + + + + Data source to import from + Data source to import from + + + + Data source type + Data source type + + + + Options + Options + + + + Text encoding: + Text encoding: + + + + Input file: + Input file: + + + + <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> + <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> + + + + Ignore errors + Ignore errors + + + + Data source options + Data source options + + + + Cancel + Cancel + + + + If you type table name that doesn't exist, it will be created. + If you type table name that doesn't exist, it will be created. + + + + Enter the table name + Enter the table name + + + + Select import plugin. + Select import plugin. + + + + You must provide a file to import from. + You must provide a file to import from. + + + + The file '%1' does not exist. + The file '%1' does not exist. + + + + Path you provided is a directory. A regular file is required. + הנתיב שסופק מפנה למחיצה קיימת, נדרש קובץ רגיל. + + + + Pick file to import from + Pick file to import from + + + + IndexDialog + + + + Index + Index + + + + Column + Column + + + + Sort + Sort + + + + Collation + Collation + + + + On table: + On table: + + + + Delete selected indexed expression + Delete selected indexed expression + + + + Moves selected index column up in the order, making it more significant in the index. + Moves selected index column up in the order, making it more significant in the index. + + + + Moves selected index column down in the order, making it less significant in the index. + Moves selected index column down in the order, making it less significant in the index. + + + + Partial index condition + Partial index condition + + + + Unique index + Unique index + + + + Index name: + Index name: + + + + Edit selected indexed expression + Edit selected indexed expression + + + + Add indexed expression + Add indexed expression + + + + DDL + DDL + + + + Tried to open index dialog for closed or inexisting database. + Tried to open index dialog for closed or inexisting database. + + + + Could not process index %1 correctly. Unable to open an index dialog. + Could not process index %1 correctly. Unable to open an index dialog. + + + + Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. + Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. + + + + Pick the table for the index. + Pick the table for the index. + + + + Select at least one column. + Select at least one column. + + + + Enter a valid condition. + Enter a valid condition. + + + + default + index dialog + default + + + + Sort order + table constraints + Sort order + + + + + Error + index dialog + Error + + + + Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? + Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? + + + + An error occurred while executing SQL statements: +%1 + An error occurred while executing SQL statements: +%1 + + + + IndexExprColumnDialog + + + Indexed expression + Indexed expression + + + + Expression to index + Expression to index + + + + This expression is already indexed by the index. + This expression is already indexed by the index. + + + + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. + + + + Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. + Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. + + + + It's forbidden to use 'SELECT' statements in indexed expressions. + It's forbidden to use 'SELECT' statements in indexed expressions. + + + + Enter an indexed expression. + Enter an indexed expression. + + + + Invalid expression. + Invalid expression. + + + + LanguageDialog + + + Language + Language + + + + Please choose language: + Please choose language: + + + + MainWindow + + + Database toolbar + Database toolbar + + + + Structure toolbar + Structure toolbar + + + + Tools + Tools + + + + Window list + Window list + + + + View toolbar + View toolbar + + + + Configuration widgets + Configuration widgets + + + + Syntax highlighting engines + Syntax highlighting engines + + + + Data editors + Data editors + + + + Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. + Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. + + + + Running in debug mode. Debug messages are printed to the standard output. + Running in debug mode. Debug messages are printed to the standard output. + + + + You need to restart application to make the language change take effect. + You need to restart application to make the language change take effect. + + + + Open SQL &editor + Open SQL &editor + + + + Open DDL &history + Open DDL &history + + + + Open SQL &functions editor + Open SQL &functions editor + + + + Open code &snippets editor + Open code &snippets editor + + + + Open &collations editor + Open &collations editor + + + + Open ex&tension manager + Open ex&tension manager + + + + &Import + &Import + + + + E&xport + E&xport + + + + Open confi&guration dialog + Open confi&guration dialog + + + + &Tile windows + &Tile windows + + + + Tile windows &horizontally + Tile windows &horizontally + + + + Tile windows &vertically + Tile windows &vertically + + + + &Cascade windows + &Cascade windows + + + + Next window + Next window + + + + Previous window + Previous window + + + + Hide status field + Hide status field + + + + Close &all windows + Close &all windows + + + + Re&store recently closed window + Re&store recently closed window + + + + Close current &window + Close current &window + + + + Close &other windows + Close &other windows + + + + Close windows on the &left + Close windows on the &left + + + + Close windows on the &right + Close windows on the &right + + + + Re&name selected window + Re&name selected window + + + + Open Debug Console + Open Debug Console + + + + Open CSS Console + Open CSS Console + + + + Report a &bug + Report a &bug + + + + D&onate + D&onate + + + + Propose a new &feature + Propose a new &feature + + + + &About + &About + + + + &Licenses + &Licenses + + + + Open home &page + Open home &page + + + + User &Manual + User &Manual + + + + SQLite &documentation + SQLite &documentation + + + + Bugs and feature &requests + Bugs and feature &requests + + + + Quit + Quit + + + + Check for &updates + Check for &updates + + + + &Database + menubar + &Database + + + + &Structure + menubar + &Structure + + + + &View + menubar + &View + + + + Window list + menubar view menu + Window list + + + + &Tools + menubar + &Tools + + + + &Help + &Help + + + + Could not set style: %1 + main window + Could not set style: %1 + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + Rename window + Rename window + + + + Enter new name for the window: + Enter new name for the window: + + + + New updates are available. <a href="%1">Click here for details</a>. + New updates are available. <a href="%1">Click here for details</a>. + + + + You're running the most recent version. No updates are available. + You're running the most recent version. No updates are available. + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + Database passed in command line parameters (%1) was already on the list under name: %2 + + + + Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 + Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + MdiWindow + + + Uncommitted changes + Uncommitted changes + + + + Close anyway + Close anyway + + + + Don't close + Don't close + + + + MultiEditor + + + Null value + multieditor + Null value + + + + Configure editors for this data type + Configure editors for this data type + + + + Open another tab + Open another tab + + + + Foreign Key + Foreign Key + + + + Data editor plugin '%1' not loaded, while it is defined for editing '%2' data type. + Data editor plugin '%1' not loaded, while it is defined for editing '%1' data type. {1'?} {2'?} {1' or 2'?} + + + + Deleted + multieditor + Deleted + + + + Read only + multieditor + Read only + + + + MultiEditorBoolPlugin + + + Boolean + Boolean + + + + MultiEditorDatePlugin + + + Date + Date + + + + MultiEditorDateTimePlugin + + + Date & time + Date & time + + + + MultiEditorHexPlugin + + + Hex + Hex + + + + MultiEditorNumericPlugin + + + Number + numeric multi editor tab name + Number + + + + MultiEditorText + + + Tab changes focus + Tab changes focus + + + + Cut + Cut + + + + Copy + Copy + + + + Paste + Paste + + + + Delete + Delete + + + + Undo + Undo + + + + Redo + Redo + + + + MultiEditorTextPlugin + + + Text + Text + + + + MultiEditorTimePlugin + + + Time + Time + + + + NewConstraintDialog + + + New constraint + אילוץ חדש + + + + + Primary Key + new constraint dialog + Primary Key + + + + + Foreign Key + new constraint dialog + Foreign Key + + + + + Unique + new constraint dialog + Unique + + + + + Check + new constraint dialog + Check + + + + Not NULL + new constraint dialog + Not NULL + + + + Collate + new constraint dialog + איסוף + + + + Generated + new constraint dialog + Generated + + + + Default + new constraint dialog + Default + + + + NewVersionDialog + + + SQLiteStudio updates + SQLiteStudio updates + + + + New version is available! + New version is available! + + + + Download new version! + Download new version! + + + + New version package will be downloaded. It will be up to you to install it whenever you're ready. + New version package will be downloaded. It will be up to you to install it whenever you're ready. + + + + Open SQLiteStudio home page. + Open SQLiteStudio home page. + + + + Read release notes && download package yourself. + Read release notes && download package yourself. + + + + Just close this window. + Just close this window. + + + + Check for updates on startup + Check for updates on startup + + + + Not now. + Not now. + + + + PopulateConfigDialog + + + Populating configuration + Populating configuration + + + + Configuring <b>%1</b> for column <b>%2</b> + Configuring <b>%1</b> for column <b>%2</b> + + + + PopulateDialog + + + Populate table + Populate table + + + + Database + Database + + + + Table + Table + + + + Columns + Columns + + + + Number of rows to populate: + Number of rows to populate: + + + + Populate + populate dialog button + Populate + + + + Abort + Abort + + + + Configure + Configure + + + + Populating configuration for this column is invalid or incomplete. + Populating configuration for this column is invalid or incomplete. + + + + Select database with table to populate + Select database with table to populate + + + + Select table to populate + Select table to populate + + + + You have to select at least one column. + You have to select at least one column. + + + + QObject + + + Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). + Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). + + + + The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. + The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. + + + + Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. + Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. + + + + Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. + Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. + + + + Cannot edit results of query other than %1. + Cannot edit results of query other than %1. + + + + Cannot edit columns that are result of aggregated %1 statements. + Cannot edit columns that are result of aggregated %1 statements. + + + + Cannot edit columns that are result of %1 statement. + Cannot edit columns that are result of %1 statement. + + + + Cannot edit columns that are result of common table expression statement (%1). + Cannot edit columns that are result of common table expression statement (%1). + + + + Cannot edit table generated columns. + Cannot edit table generated columns. + + + + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). + + + + + + + on conflict: %1 + data view tooltip + on conflict: %1 + + + + references table %1, column %2 + data view tooltip + references table %1, column %2 + + + + condition: %1 + data view tooltip + condition: %1 + + + + collation name: %1 + data view tooltip + collation name: %1 + + + + Data grid view + Data grid view + + + + Edit current cell inline + Edit current cell inline + + + + Copy cell(s) contents to clipboard + Copy cell(s) contents to clipboard + + + + Copy cell(s) contents together with header to clipboard + Copy cell(s) contents together with header to clipboard + + + + Paste cell(s) contents from clipboard + Paste cell(s) contents from clipboard + + + + Set empty value to selected cell(s) + Set empty value to selected cell(s) + + + + Set NULL value to selected cell(s) + Set NULL value to selected cell(s) + + + + Commit changes to cell(s) contents + Commit changes to cell(s) contents + + + + Rollback changes to cell(s) contents + Rollback changes to cell(s) contents + + + + Delete selected data row + Delete selected data row + + + + Insert new data row + Insert new data row + + + + Open contents of selected cell in a separate editor + Open contents of selected cell in a separate editor + + + + Toggle the height adjustment of rows + Toggle the height adjustment of rows + + + + Increase font size + data view + Increase font size + + + + Decrease font size + data view + Decrease font size + + + + Total pages available: %1 + Total pages available: %1 + + + + Total rows loaded: %1 + Total rows loaded: %1 + + + + Data view (both grid and form) + Data view (both grid and form) + + + + Refresh data + Refresh data + + + + Switch to grid view of the data + Switch to grid view of the data + + + + Switch to form view of the data + Switch to form view of the data + + + + Database list + Database list + + + + Delete selected item + Delete selected item + + + + Clear filter contents + Clear filter contents + + + + Refresh schema + Refresh schema + + + + Refresh all schemas + Refresh all schemas + + + + Add database + Add database + + + + Select all items + Select all items + + + + Copy selected item(s) + Copy selected item(s) + + + + + + Paste from clipboard + Paste from clipboard + + + + Increase font size + database list + Increase font size + + + + Decrease font size + database list + Decrease font size + + + + Tables + Tables + + + + Indexes + Indexes + + + + Triggers + Triggers + + + + Views + Views + + + + Columns + Columns + + + + Data form view + Data form view + + + + Commit changes for current row + Commit changes for current row + + + + Rollback changes for current row + Rollback changes for current row + + + + Go to first row on current page + Go to first row on current page + + + + Go to next row + Go to next row + + + + Go to previous row + Go to previous row + + + + Go to last row on current page + Go to last row on current page + + + + Insert new row + Insert new row + + + + Delete current row + Delete current row + + + + Main window + Main window + + + + Open SQL editor + Open SQL editor + + + + Open DDL history window + Open DDL history window + + + + Open snippets editor window + Open snippets editor window + + + + Open function editor window + Open function editor window + + + + Open collation editor window + Open collation editor window + + + + Open extension manager window + Open extension manager window + + + + Previous window + Previous window + + + + Next window + Next window + + + + Hide status area + Hide status area + + + + Open user manual + Open user manual + + + + Open configuration dialog + Open configuration dialog + + + + Open Debug Console + Open Debug Console + + + + Open CSS Console + Open CSS Console + + + + Open the About dialog + Open the About dialog + + + + Quit the application + Quit the application + + + + Cell text value editor + Cell text value editor + + + + + Cut selected text + Cut selected text + + + + + Copy selected text + Copy selected text + + + + + Delete selected text + Delete selected text + + + + + Undo + Undo + + + + + Redo + Redo + + + + SQL editor input field + SQL editor input field + + + + Select whole editor contents + Select whole editor contents + + + + Save contents into a file + Save contents into a file + + + + Load contents from a file + Load contents from a file + + + + Find in text + Find in text + + + + Find next + Find next + + + + Find previous + Find previous + + + + Replace in text + Replace in text + + + + Delete current line + Delete current line + + + + Request code assistant + Request code assistant + + + + Format contents + Format contents + + + + Move selected block of text one line down + Move selected block of text one line down + + + + Move selected block of text one line up + Move selected block of text one line up + + + + Copy selected block of text and paste it a line below + Copy selected block of text and paste it a line below + + + + Copy selected block of text and paste it a line above + Copy selected block of text and paste it a line above + + + + Toggle comment + Toggle comment + + + + Increase font size + sql editor + Increase font size + + + + Decrease font size + sql editor + Decrease font size + + + + All SQLite databases + All SQLite databases + + + + All files + All files + + + + Select database file + Select database file + + + + Select + Select + + + + File type + File type + + + + SQL editor window + SQL editor window + + + + Execute query + Execute query + + + + Execute single query under cursor + Execute single query under cursor + + + + Execute all queries in editor + Execute all queries in editor + + + + Execute "%1" query + Execute "%1" query + + + + Switch current working database to previous on the list + Switch current working database to previous on the list + + + + Switch current working database to next on the list + Switch current working database to next on the list + + + + Go to next editor tab + Go to next editor tab + + + + Go to previous editor tab + Go to previous editor tab + + + + Move keyboard input focus to the results view below + Move keyboard input focus to the results view below + + + + Move keyboard input focus to the SQL editor above + Move keyboard input focus to the SQL editor above + + + + Delete selected SQL history entries + Delete selected SQL history entries + + + + Table window + Table window + + + + Commit the table structure + Commit the table structure + + + + Rollback pending changes in the table structure + Rollback pending changes in the table structure + + + + Refresh table structure + Refresh table structure + + + + Add new column + Add new column + + + + Edit selected column + Edit selected column + + + + Delete selected column + Delete selected column + + + + Export table data + Export table data + + + + Import data to the table + Import data to the table + + + + Add new table constraint + הוספת אילוץ טבלה חדש + + + + Edit selected table constraint + עריכת אילוץ טבלה + + + + Delete selected table constraint + מחיקת אילוץ טבלה שנבחר + + + + Refresh table index list + Refresh table index list + + + + Add new index + Add new index + + + + Edit selected index + Edit selected index + + + + Delete selected index + Delete selected index + + + + Refresh table trigger list + Refresh table trigger list + + + + + Add new trigger + Add new trigger + + + + + Edit selected trigger + Edit selected trigger + + + + + Delete selected trigger + Delete selected trigger + + + + + Go to next tab + Go to next tab + + + + + Go to previous tab + Go to previous tab + + + + A view window + A view window + + + + Commit the view's query + Commit the view's query + + + + Rollback pending changes in the view's query + Rollback pending changes in the view's query + + + + Refresh view trigger list + Refresh view trigger list + + + + Execute the view's query + Execute the view's query + + + + A code snippets editor window + A code snippets editor window + + + + + + + Commit the pending changes + Commit the pending changes + + + + + + + Rollback the pending changes + Rollback the pending changes + + + + A collation editor window + A collation editor window + + + + A function editor window + A function editor window + + + + A SQLite extension editor window + A SQLite extension editor window + + + + QuitConfirmDialog + + + Uncommitted changes + Uncommitted changes + + + + Are you sure you want to quit the application? + +Following items are pending: + Are you sure you want to quit the application? + +Following items are pending: + + + + SearchTextDialog + + + Find or replace + Find or replace + + + + Find: + Find: + + + + Case sensitive + Case sensitive + + + + Search backwards + Search backwards + + + + Regular expression matching + Regular expression matching + + + + Replace && +find next + Replace && +find next + + + + Replace with: + Replace with: + + + + Replace all + Replace all + + + + Find + Find + + + + SortDialog + + + Sort by columns + Sort by columns + + + + + Column + Column + + + + + Order + Order + + + + Sort by: %1 + Sort by: %1 + + + + Move column up + Move column up + + + + Move column down + Move column down + + + + SqlEditor + + + Wrap words + sql editor + Wrap words + + + + Cut + sql editor + Cut + + + + Copy + sql editor + Copy + + + + Paste + sql editor + Paste + + + + Delete + sql editor + Delete + + + + Select all + sql editor + Select all + + + + Undo + sql editor + Undo + + + + Redo + sql editor + Redo + + + + Complete + sql editor + Complete + + + + Format SQL + sql editor + Format SQL + + + + Save SQL to file + sql editor + Save SQL to file + + + + Select file to save SQL + sql editor + Select file to save SQL + + + + Load SQL from file + sql editor + Load SQL from file + + + + Delete line + sql editor + Delete line + + + + Move block down + sql editor + Move block down + + + + Move block up + sql editor + Move block up + + + + Copy block down + sql editor + Copy block down + + + + Copy up down + sql editor + Copy up down + + + + Find + sql editor + Find + + + + Find next + sql editor + Find next + + + + Find previous + sql editor + Find previous + + + + Replace + sql editor + Replace + + + + Toggle comment + sql editor + Toggle comment + + + + Increase font size + sql editor + Increase font size + + + + Decrease font size + sql editor + Decrease font size + + + + Could not open file '%1' for writing: %2 + Could not open file '%1' for writing: %2 + + + + Saved SQL contents to file: %1 + Saved SQL contents to file: %1 + + + + Syntax completion can be used only when a valid database is set for the SQL editor. + Syntax completion can be used only when a valid database is set for the SQL editor. + + + + Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. + Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. + + + + Save to file + Save to file + + + + SQL scripts (*.sql);;All files (*) + SQL scripts (*.sql);;All files (*) + + + + Open file + Open file + + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Reached the end of document. Hit the find again to restart the search. + Reached the end of document. Hit the find again to restart the search. + + + + SqlQueryItem + + + Committing error: + data view tooltip + שגיאת קיבוע: + + + + Column: + data view tooltip + Column: + + + + Data type: + data view + Data type: + + + + Table: + data view tooltip + Table: + + + + Constraints: + data view tooltip + אילוצים: + + + + SqlQueryItemDelegate + + + + + + Cannot edit this cell. Details: %1 + Cannot edit this cell. Details: %1 + + + + The row is marked for deletion. + The row is marked for deletion. + + + + + Structure of this table has changed since last data was loaded. Reload the data to proceed. + Structure of this table has changed since last data was loaded. Reload the data to proceed. + + + + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). + + + + Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. + Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. + + + + SqlQueryModel + + + + Only one query can be executed simultaneously. + Only one query can be executed simultaneously. + + + + Cannot execute query on undefined or invalid database. + Cannot execute query on undefined or invalid database. + + + + Cannot execute empty query. + Cannot execute empty query. + + + + Uncommitted data + Uncommitted data + + + + There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. + There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. + + + + Cannot commit the data for a cell that refers to the already closed database. + Cannot commit the data for a cell that refers to the already closed database. + + + + Could not begin transaction on the database. Details: %1 + Could not begin transaction on the database. Details: %1 + + + + An error occurred while committing the transaction: %1 + An error occurred while committing the transaction: %1 + + + + An error occurred while rolling back the transaction: %1 + An error occurred while rolling back the transaction: %1 + + + + Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. + Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. + + + + An error occurred while committing the data: %1 + An error occurred while committing the data: %1 + + + + Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. + Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. + + + + + Error while executing SQL query on database '%1': %2 + Error while executing SQL query on database '%1': %2 + + + + Error while loading query results: %1 + Error while loading query results: %1 + + + + Insert multiple rows + Insert multiple rows + + + + Number of rows to insert: + Number of rows to insert: + + + + Delete rows + Delete rows + + + + You're about to delete newly inserted rows that are not committed yet. Row numbers: %1 +Such deletion will be permanent. Are you sure you want to delete them? + You're about to delete newly inserted rows that are not committed yet. Row numbers: %1 +Such deletion will be permanent. Are you sure you want to delete them? + + + + SqlQueryView + + + Go to referenced row in... + Go to referenced row in... + + + + Copy + Copy + + + + Copy with headers + Copy with headers + + + + Copy as... + Copy as... + + + + Paste + Paste + + + + Paste as... + Paste as... + + + + Set NULL values + Set NULL values + + + + Erase values + Erase values + + + + Commit + קיבוע + + + + Rollback + Rollback + + + + Commit selected cells + קיבוע התאים שנבחרו + + + + Rollback selected cells + Rollback selected cells + + + + Edit current cell inline + Edit current cell inline + + + + Define columns to sort by + Define columns to sort by + + + + Remove custom sorting + Remove custom sorting + + + + Insert row + Insert row + + + + Insert multiple rows + Insert multiple rows + + + + Delete selected row + Delete selected row + + + + Adjust height of rows + Adjust height of rows + + + + Increase font size + data view + Increase font size + + + + Decrease font size + data view + Decrease font size + + + + Invert selection + data view + Invert selection + + + + Edit value in editor + Edit value in editor + + + + Show value in a viewer + Show value in a viewer + + + + Generate query for selected cells + Generate query for selected cells + + + + No items selected to paste clipboard contents to. + No items selected to paste clipboard contents to. + + + + Cannot paste data. Details: %1 + Cannot paste data. Details: %1 + + + + Structure of at least one table used has changed since last data was loaded. Reload the data to proceed. + Structure of at least one table used has changed since last data was loaded. Reload the data to proceed. + + + + Cannot paste to a cell. Details: %1 + Cannot paste to a cell. Details: %1 + + + + The row is marked for deletion. + The row is marked for deletion. + + + + Cannot paste to column %1. Details: %2 + Cannot paste to column %1. Details: %2 + + + + Go to referenced row in table '%1' + Go to referenced row in table '%1' + + + + table '%1' + table '%1' + + + + Referenced row (%1) + Referenced row (%1) + + + + Trim pasted text? + Trim pasted text? + + + + The pasted text contains leading or trailing white space. Trim it automatically? + The pasted text contains leading or trailing white space. Trim it automatically? + + + + Paste "NULL" as null value? + Paste "NULL" as null value? + + + + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + + + + Edit value + Edit value + + + + SqlTableModel + + + Error while committing new row: %1 + Error while committing new row: %1 + + + + Error while deleting row from table %1: %2 + Error while deleting row from table %1: %2 + + + + SqliteExtensionEditor + + + Filter extensions + Filter extensions + + + + Leave empty to use default function + Leave empty to use default function + + + + Extension file + Extension file + + + + Initialization function + Initialization function + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Extension manager window has uncommitted modifications. + Extension manager window has uncommitted modifications. + + + + Extension manager + Extension manager + + + + Commit all extension changes + Commit all extension changes + + + + Rollback all extension changes + Rollback all extension changes + + + + Add new extension + Add new extension + + + + Remove selected extension + Remove selected extension + + + + Editing extensions manual + Editing extensions manual + + + + File with given path does not exist or is not readable. + File with given path does not exist or is not readable. + + + + Unable to load extension: %1 + Unable to load extension: %1 + + + + Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. + Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. + + + + Dynamic link libraries (*.dll);;All files (*) + Dynamic link libraries (*.dll);;All files (*) + + + + Shared objects (*.so);;All files (*) + Shared objects (*.so);;All files (*) + + + + Dynamic libraries (*.dylib);;All files (*) + Dynamic libraries (*.dylib);;All files (*) + + + + All files (*) + All files (*) + + + + Open file + Open file + + + + StatusField + + + Status + Status + + + + Copy + Copy + + + + Clear + Clear + + + + TableConstraintsModel + + + Type + table constraints + Type + + + + Details + table constraints + Details + + + + Name + table constraints + Name + + + + TableForeignKeyPanel + + + Foreign table: + Foreign table: + + + + Columns + Columns + + + + Local column + Local column + + + + Foreign column + Foreign column + + + + Reactions + Reactions + + + + Deferred foreign key + Deferred foreign key + + + + Named constraint + אילוץ בעל שם + + + + Constraint name + שם אילוץ + + + + Pick the foreign column. + Pick the foreign column. + + + + Pick the foreign table. + Pick the foreign table. + + + + Select at least one foreign column. + Select at least one foreign column. + + + + Enter a name of the constraint. + הזנת שם לאילוץ. + + + + Foreign column + table constraints + Foreign column + + + + TablePrimaryKeyAndUniquePanel + + + Columns + Columns + + + + Column + Column + + + + Collation + Collation + + + + Sort + Sort + + + + Valid only for a single column with INTEGER data type + Valid only for a single column with INTEGER data type + + + + Autoincrement + Autoincrement + + + + Named constraint + אילוץ בעל שם + + + + Constraint name + שם אילוץ + + + + On conflict + On conflict + + + + Collate + table constraints + איסוף + + + + Sort order + table constraints + Sort order + + + + Select at least one column. + Select at least one column. + + + + Enter a name of the constraint. + הזנת שם לאילוץ. + + + + TableStructureModel + + + Name + table structure columns + Name + + + + Data type + table structure columns + Data type + + + + Primary +Key + table structure columns + Primary +Key + + + + Foreign +Key + table structure columns + Foreign +Key + + + + Unique + table structure columns + Unique + + + + Check + table structure columns + Check + + + + Not +NULL + table structure columns + Not +NULL + + + + Collate + table structure columns + איסוף + + + + Generated + table structure columns + Generated + + + + Default value + table structure columns + Default value + + + + TableWindow + + + Structure + Structure + + + + Table name: + Table name: + + + + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + + + + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + + + + + Data + Data + + + + Constraints + אילוצים + + + + Indexes + Indexes + + + + Triggers + Triggers + + + + DDL + DDL + + + + Export table + table window + Export table + + + + Import data to table + table window + Import data to table + + + + Populate table + table window + Populate table + + + + Refresh structure + table window + Refresh structure + + + + Commit structure changes + table window + Commit structure changes + + + + Rollback structure changes + table window + Rollback structure changes + + + + Add column + table window + Add column + + + + Edit column + table window + Edit column + + + + + Delete column + table window + Delete column + + + + Move column up + table window + Move column up + + + + Move column down + table window + Move column down + + + + Create similar table + table window + Create similar table + + + + Reset autoincrement value + table window + Reset autoincrement value + + + + Add table constraint + table window + הוספת אילוץ טבלה + + + + Edit table constraint + table window + הוספת אילוץ טבלה + + + + Delete table constraint + table window + מחיקת אילוץ טבלה + + + + Move table constraint up + table window + העברת אילוץ מעלה + + + + Move table constraint down + table window + העברת אילוץ מטה + + + + Add table primary key + table window + Add table primary key + + + + Add table foreign key + table window + Add table foreign key + + + + Add table unique constraint + table window + הוספת אילוץ טבלה יחודאי + + + + Add table check constraint + table window + הוספת אילוץ בקרת טבלה + + + + Refresh index list + table window + Refresh index list + + + + + Create index + table window + Create index + + + + Edit index + table window + Edit index + + + + Delete index + table window + Delete index + + + + Refresh trigger list + table window + Refresh trigger list + + + + + Create trigger + table window + Create trigger + + + + Edit trigger + table window + Edit trigger + + + + Delete trigger + table window + Delete trigger + + + + Are you sure you want to delete column '%1'? + table window + Are you sure you want to delete column '%1'? + + + + Following problems will take place while modifying the table. +Would you like to proceed? + table window + Following problems will take place while modifying the table. +Would you like to proceed? + + + + Table modification + table window + Table modification + + + + Could not load data for table %1. Error details: %2 + Could not load data for table %1. Error details: %2 + + + + Could not process the %1 table correctly. Unable to open a table window. + Could not process the %1 table correctly. Unable to open a table window. + + + + Database + Database + + + + Could not restore window %1, because no database or table was stored in session for this window. + Could not restore window %1, because no database or table was stored in session for this window. + + + + Could not restore window '%1', because no database or table was stored in session for this window. + Could not restore window '%1', because no database or table was stored in session for this window. + + + + Could not restore window '%1', because database %2 could not be resolved. + Could not restore window '%1', because database %2 could not be resolved. + + + + Could not restore window '%1', because the table %2 doesn't exist in the database %3. + Could not restore window '%1', because the table %2 doesn't exist in the database %3. + + + + + New table %1 + New table %1 + + + + Committed changes for table '%1' successfully. + Committed changes for table '%1' successfully. + + + + Committed changes for table '%1' (named before '%2') successfully. + Committed changes for table '%1' (named before '%2') successfully. + + + + Could not commit table structure. Error message: %1 + table window + Could not commit table structure. Error message: %1 + + + + Reset autoincrement + Reset autoincrement + + + + Are you sure you want to reset autoincrement value for table '%1'? + Are you sure you want to reset autoincrement value for table '%1'? + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + An error occurred while trying to reset autoincrement value for table '%1': %2 + + + + Autoincrement value for table '%1' has been reset successfully. + Autoincrement value for table '%1' has been reset successfully. + + + + Empty name + Empty name + + + + A blank name for the table is allowed in SQLite, but it is not recommended. +Are you sure you want to create a table with blank name? + A blank name for the table is allowed in SQLite, but it is not recommended. +Are you sure you want to create a table with blank name? + + + + Cannot create a table without at least one column. + Cannot create a table without at least one column. + + + + Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. + Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. + + + + Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. + Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. + + + + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 + + + + Are you sure you want to delete table constraint '%1'? + table window + האם למחוק אילוץ '%1'? + + + + Delete constraint + table window + מחיקת אילוץ + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + Uncommitted changes + שנויים לא מקובעים + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + + + + Go back to structure tab + Go back to structure tab + + + + Commit modifications and browse data. + Commit modifications and browse data. + + + + Name + table window indexes + Name + + + + Unique + table window indexes + Unique + + + + Columns + table window indexes + Columns + + + + Partial index condition + table window indexes + Partial index condition + + + + Name + table window triggers + Name + + + + Event + table window triggers + Event + + + + Condition + table window triggers + Condition + + + + Details + table window triggers + Details + + + + Table window "%1" has uncommitted structure modifications and data. + Table window "%1" has uncommitted structure modifications and data. + + + + Table window "%1" has uncommitted data. + Table window "%1" has uncommitted data. + + + + Table window "%1" has uncommitted structure modifications. + Table window "%1" has uncommitted structure modifications. + + + + TriggerColumnsDialog + + + Trigger columns + Trigger columns + + + + Triggering columns: + Triggering columns: + + + + Select all + Select all + + + + Deselect all + Deselect all + + + + TriggerDialog + + + + Trigger + Trigger + + + + On table: + On table: + + + + Action: + Action: + + + + + <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> + <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> + + + + Pre-condition: + Pre-condition: + + + + The scope is still not fully supported by the SQLite database. + The scope is still not fully supported by the SQLite database. + + + + Trigger name: + Trigger name: + + + + When: + When: + + + + List of columns for UPDATE OF action. + List of columns for UPDATE OF action. + + + + Scope: + Scope: + + + + Code: + Code: + + + + Trigger statements to be executed. + Trigger statements to be executed. + + + + DDL + DDL + + + + On view: + On view: + + + + Could not process trigger %1 correctly. Unable to open a trigger dialog. + Could not process trigger %1 correctly. Unable to open a trigger dialog. + + + + Enter a valid condition. + Enter a valid condition. + + + + Enter a valid trigger code. + Enter a valid trigger code. + + + + Error + trigger dialog + Error + + + + An error occurred while executing SQL statements: +%1 + An error occurred while executing SQL statements: +%1 + + + + VersionConvertSummaryDialog + + + Database version convert + Database version convert + + + + Following changes to the SQL statements will be made: + Following changes to the SQL statements will be made: + + + + Before + Before + + + + After + After + + + + ViewWindow + + + Query + Query + + + + View name: + View name: + + + + Output column names + Output column names + + + + + Data + Data + + + + Triggers + Triggers + + + + DDL + DDL + + + + + Could not restore window '%1', because no database or view was stored in session for this window. + Could not restore window '%1', because no database or view was stored in session for this window. + + + + Could not restore window '%1', because database %2 could not be resolved. + Could not restore window '%1', because database %2 could not be resolved. + + + + Could not restore window '%1', because database %2 could not be open. + Could not restore window '%1', because database %2 could not be open. + + + + Could not restore window '%1', because the view %2 doesn't exist in the database %3. + Could not restore window '%1', because the view %2 doesn't exist in the database %3. + + + + + New view %1 + New view %1 + + + + Database + Database + + + + Refresh the view + view window + Refresh the view + + + + Commit the view changes + view window + Commit the view changes + + + + Rollback the view changes + view window + Rollback the view changes + + + + Explicit column names + Explicit column names + + + + Generate output column names automatically basing on result columns of the view. + Generate output column names automatically basing on result columns of the view. + + + + Add column + view window + Add column + + + + Edit column + view window + Edit column + + + + Delete column + view window + Delete column + + + + Move column up + view window + Move column up + + + + Move column down + view window + Move column down + + + + Refresh trigger list + view window + Refresh trigger list + + + + Create new trigger + view window + Create new trigger + + + + Edit selected trigger + view window + Edit selected trigger + + + + Delete selected trigger + view window + Delete selected trigger + + + + View window "%1" has uncommitted structure modifications and data. + View window "%1" has uncommitted structure modifications and data. + + + + View window "%1" has uncommitted data. + View window "%1" has uncommitted data. + + + + View window "%1" has uncommitted structure modifications. + View window "%1" has uncommitted structure modifications. + + + + Could not load data for view %1. Error details: %2 + Could not load data for view %1. Error details: %2 + + + + Uncommitted changes + Uncommitted changes + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + + + + Go back to structure tab + Go back to structure tab + + + + Commit modifications and browse data. + Commit modifications and browse data. + + + + View '%1' was committed successfully. + View '%1' was committed successfully. + + + + Committed changes for view '%1' successfully. + Committed changes for view '%1' successfully. + + + + Committed changes for view '%1' (named before '%2') successfully. + Committed changes for view '%1' (named before '%2') successfully. + + + + Could not commit view changes. Error message: %1 + view window + Could not commit view changes. Error message: %1 + + + + Override columns + Override columns + + + + Currently defined columns will be overriden. Do you want to continue? + Currently defined columns will be overriden. Do you want to continue? + + + + Could not determinate columns returned from the view. The query is problably incomplete or contains errors. + Could not determinate columns returned from the view. The query is problably incomplete or contains errors. + + + + Name + view window triggers + Name + + + + Instead of + view window triggers + Instead of + + + + Condition + view window triggers + Condition + + + + Details + table window triggers + Details + + + + Could not process the %1 view correctly. Unable to open a view window. + Could not process the %1 view correctly. Unable to open a view window. + + + + Empty name + Empty name + + + + A blank name for the view is allowed in SQLite, but it is not recommended. +Are you sure you want to create a view with blank name? + A blank name for the view is allowed in SQLite, but it is not recommended. +Are you sure you want to create a view with blank name? + + + + The SELECT statement could not be parsed. Please correct the query and retry. +Details: %1 + The SELECT statement could not be parsed. Please correct the query and retry. +Details: %1 + + + + The view could not be modified due to internal SQLiteStudio error. Please report this! + The view could not be modified due to internal SQLiteStudio error. Please report this! + + + + The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. + The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. + + + + Following problems will take place while modifying the view. +Would you like to proceed? + view window + Following problems will take place while modifying the view. +Would you like to proceed? + + + + View modification + view window + View modification + + + + WidgetCover + + + Interrupt + Interrupt + + + diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_hu_HU.ts b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_hu_HU.ts new file mode 100644 index 0000000..a63da83 --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_hu_HU.ts @@ -0,0 +1,7111 @@ + + + + + AboutDialog + + + About SQLiteStudio and licenses + About SQLiteStudio and licenses + + + + About + About + + + + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + + + + Licenses + Licenses + + + + Environment + Environment + + + + Icon directories + Icon directories + + + + Form directories + Form directories + + + + SQLite extension directories + SQLite extension directories + + + + Plugin directories + Plugin directories + + + + Configuration directory + Configuration directory + + + + Application directory + Application directory + + + + Qt version: + Qt version: + + + + SQLite 3 version: + SQLite 3 version: + + + + Portable distribution. + Portable distribution. + + + + MacOS X application bundle distribution. + MacOS X application bundle distribution. + + + + Operating system managed distribution. + Operating system managed distribution. + + + + <h3>Table of contents:</h3><ol>%2</ol> + <h3>Table of contents:</h3><ol>%2</ol> + + + + BindParamsDialog + + + Query parameters + Query parameters + + + + Please provide values for query parameters + Please provide values for query parameters + + + + CodeSnippetEditor + + + Filter snippets + Filter snippets + + + + + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + + + + + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + + + + Snippet name + Snippet name + + + + Code assistant shortcut + Code assistant shortcut + + + + Snippet code + Snippet code + + + + Code Snippets editor window has uncommitted modifications. + Code Snippets editor window has uncommitted modifications. + + + + Code Snippets editor + Code Snippets editor + + + + Commit all snippet changes + Commit all snippet changes + + + + Rollback all snippet changes + Rollback all snippet changes + + + + Create new snippet + Create new snippet + + + + Delete selected snippet + Delete selected snippet + + + + Move the snippet up + Move the snippet up + + + + Move the snippet down + Move the snippet down + + + + Code snippets manual + Code snippets manual + + + + Enter a non-empty, unique name of the snippet. + Enter a non-empty, unique name of the snippet. + + + + Enter a non-empty snippet content. + Enter a non-empty snippet content. + + + + This hotkey is not unique in context of a code assistant. + This hotkey is not unique in context of a code assistant. + + + + CollationsEditor + + + Filter collations + Filter collations + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Implementation code: + Implementation code: + + + + Collation name: + Collation name: + + + + Implementation language: + Implementation language: + + + + Collations editor + Collations editor + + + + Commit all collation changes + Commit all collation changes + + + + Rollback all collation changes + Rollback all collation changes + + + + Create new collation + Create new collation + + + + Delete selected collation + Delete selected collation + + + + Editing collations manual + Editing collations manual + + + + Enter a non-empty, unique name of the collation. + Enter a non-empty, unique name of the collation. + + + + Pick the implementation language. + Pick the implementation language. + + + + Enter a non-empty implementation code. + Enter a non-empty implementation code. + + + + Collations editor window has uncommitted modifications. + Collations editor window has uncommitted modifications. + + + + ColorButton + + + Pick a color + Pick a color + + + + ColumnCollatePanel + + + Collation name: + Collation name: + + + + Named constraint: + Named constraint: + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + Enter a collation name. + Enter a collation name. + + + + ColumnDefaultPanel + + + Default value: + Default value: + + + + Named constraint: + Named constraint: + + + + Enter a default value expression. + Enter a default value expression. + + + + Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. + Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. + + + + Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. + Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ColumnDialog + + + Column + Column + + + + Name and type + Name and type + + + + Scale + Scale + + + + Precision + Precision + + + + Data type: + Data type: + + + + Column name: + Column name: + + + + Size: + Size: + + + + Constraints + Constraints + + + + Generated value + Generated value + + + + Unique + Unique + + + + + + + + + + + Configure + Configure + + + + Foreign Key + Foreign Key + + + + Collate + Collate + + + + Not NULL + Not NULL + + + + Check condition + Check condition + + + + Primary Key + Primary Key + + + + Default + Default + + + + Advanced mode + Advanced mode + + + + Add constraint + column dialog + Add constraint + + + + Edit constraint + column dialog + Edit constraint + + + + + Delete constraint + column dialog + Delete constraint + + + + Move constraint up + column dialog + Move constraint up + + + + Move constraint down + column dialog + Move constraint down + + + + Add a primary key + column dialog + Add a primary key + + + + Add a foreign key + column dialog + Add a foreign key + + + + Add an unique constraint + column dialog + Add an unique constraint + + + + Add a check constraint + column dialog + Add a check constraint + + + + Add a not null constraint + column dialog + Add a not null constraint + + + + Add a collate constraint + column dialog + Add a collate constraint + + + + Add a generated value constraint + column dialog + Add a generated value constraint + + + + Add a default constraint + column dialog + Add a default constraint + + + + Are you sure you want to delete constraint '%1'? + column dialog + Are you sure you want to delete constraint '%1'? + + + + Correct the constraint's configuration. + Correct the constraint's configuration. + + + + Scale is not allowed for INTEGER PRIMARY KEY columns. + Scale is not allowed for INTEGER PRIMARY KEY columns. + + + + Precision cannot be defined without the scale. + Precision cannot be defined without the scale. + + + + Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. + Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. + + + + INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. + INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. + + + + Precision is not allowed for INTEGER PRIMARY KEY columns. + Precision is not allowed for INTEGER PRIMARY KEY columns. + + + + Could not match valid STRICT table datatype from declared type: %1. + Could not match valid STRICT table datatype from declared type: %1. + + + + ColumnDialogConstraintsModel + + + Type + column dialog constraints + Type + + + + Name + column dialog constraints + Name + + + + Details + column dialog constraints + Details + + + + ColumnForeignKeyPanel + + + Foreign table: + Foreign table: + + + + Foreign column: + Foreign column: + + + + Reactions + Reactions + + + + Deferred foreign key + Deferred foreign key + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + Pick the foreign table. + Pick the foreign table. + + + + Pick the foreign column. + Pick the foreign column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ColumnGeneratedPanel + + + Generating code: + Generating code: + + + + Explicit type: + Explicit type: + + + + Use "GENERATED ALWAYS" keywords + Use "GENERATED ALWAYS" keywords + + + + Named constraint: + Named constraint: + + + + Enter the column value generating expression. + Enter the column value generating expression. + + + + Invalid value generating expression: %1. + Invalid value generating expression: %1. + + + + Invalid value generating expression. + Invalid value generating expression. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ColumnPrimaryKeyPanel + + + Autoincrement + Autoincrement + + + + Sort order: + Sort order: + + + + Named constraint: + Named constraint: + + + + On conflict: + On conflict: + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + Descending order is not allowed with AUTOINCREMENT. + Descending order is not allowed with AUTOINCREMENT. + + + + ColumnUniqueAndNotNullPanel + + + Named constraint: + Named constraint: + + + + On conflict: + On conflict: + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + CompleterWindow + + + Column: %1 + completer statusbar + Column: %1 + + + + Table: %1 + completer statusbar + Table: %1 + + + + Index: %1 + completer statusbar + Index: %1 + + + + Trigger: %1 + completer statusbar + Trigger: %1 + + + + View: %1 + completer statusbar + View: %1 + + + + Database: %1 + completer statusbar + Database: %1 + + + + Keyword: %1 + completer statusbar + Keyword: %1 + + + + Function: %1 + completer statusbar + Function: %1 + + + + Operator: %1 + completer statusbar + Operator: %1 + + + + String + completer statusbar + String + + + + Number + completer statusbar + Number + + + + Binary data + completer statusbar + Binary data + + + + Collation: %1 + completer statusbar + Collation: %1 + + + + Pragma function: %1 + completer statusbar + Pragma function: %1 + + + + Insert a code snippet + Insert a code snippet + + + + ConfigDialog + + + + Configuration + Configuration + + + + Search + Search + + + + General + General + + + + Keyboard shortcuts + Keyboard shortcuts + + + + Look & feel + Look & feel + + + + Style + Style + + + + Fonts + Fonts + + + + Code colors + Code colors + + + + + Database list + Database list + + + + Code assistant + Code assistant + + + + Data browsing + Data browsing + + + + Data editors + Data editors + + + + Plugins + Plugins + + + + Code formatters + Code formatters + + + + If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. + If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. + + + + Sort table columns alphabetically + Sort table columns alphabetically + + + + Expand tables node when connected to a database + Expand tables node when connected to a database + + + + <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> + <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> + + + + Display additional labels on the list + Display additional labels on the list + + + + For regular tables labels will show number of columns, indexes and triggers for each of tables. + For regular tables labels will show number of columns, indexes and triggers for each of tables. + + + + Display labels for regular tables + Display labels for regular tables + + + + Virtual tables will be marked with a 'virtual' label. + Virtual tables will be marked with a 'virtual' label. + + + + Display labels for virtual tables + Display labels for virtual tables + + + + Expand views node when connected to a database + Expand views node when connected to a database + + + + If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) + If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) + + + + Sort objects (tables, indexes, triggers and views) alphabetically + Sort objects (tables, indexes, triggers and views) alphabetically + + + + Display system tables and indexes on the list + Display system tables and indexes on the list + + + + Database dialog window + Database dialog window + + + + <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> + <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> + + + + Do not mark database to be "permanent" by default + Do not mark database to be "permanent" by default + + + + <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> + <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> + + + + Try to bypass dialog completly when dropping database file onto the list + Try to bypass dialog completly when dropping database file onto the list + + + + Data browsing and editing + Data browsing and editing + + + + + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + + + + Number of memorized table populating configurations + Number of memorized table populating configurations + + + + Data column width + Data column width + + + + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + + + + Enlarge column when entering value longer than current width + Enlarge column when entering value longer than current width + + + + <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> + <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> + + + + Number of data rows per page: + Number of data rows per page: + + + + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> + + + + Show column and row details tooltip in data view + Show column and row details tooltip in data view + + + + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + + + + Keep NULL value when entering empty value + Keep NULL value when entering empty value + + + + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> + + + + Use DEFAULT value (if defined), when committing NULL value + Use DEFAULT value (if defined), when committing NULL value + + + + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + + + + Limit number of rows for in case of dozens of columns + Limit number of rows for in case of dozens of columns + + + + Inserting new row in data grid + Inserting new row in data grid + + + + Before currently selected row + Before currently selected row + + + + After currently selected row + After currently selected row + + + + At the end of data view + At the end of data view + + + + Table windows + Table windows + + + + <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> + <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> + + + + Open Table Windows with the data tab for start + Open Table Windows with the data tab for start + + + + <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> + <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> + + + + Place data tab as first tab in a Table Window + Place data tab as first tab in a Table Window + + + + View windows + View windows + + + + <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> + <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> + + + + Open View Windows with the data tab for start + Open View Windows with the data tab for start + + + + <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> + <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> + + + + Place data tab as first tab in a View Window + Place data tab as first tab in a View Window + + + + Data types + Data types + + + + Available editors: + Available editors: + + + + Editors selected for this data type: + Editors selected for this data type: + + + + Schema editing + Schema editing + + + + Number of DDL changes kept in history. + Number of DDL changes kept in history. + + + + DDL history size: + DDL history size: + + + + Don't show DDL preview dialog when committing schema changes + Don't show DDL preview dialog when committing schema changes + + + + SQL queries + SQL queries + + + + + Number of queries kept in the history. + Number of queries kept in the history. + + + + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> + + + + History size: + History size: + + + + + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> + + + + Execute only the query under the cursor + Execute only the query under the cursor + + + + Number of memorized query parameters + Number of memorized query parameters + + + + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + + + + Use scientific notation for real numbers in the grid view + Use scientific notation for real numbers in the grid view + + + + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + + + + Limit automatic data column width to (in pixels): + Limit automatic data column width to (in pixels): + + + + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + + + + Keep at least the width to show complete column name + Keep at least the width to show complete column name + + + + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + + + + Wrap lines in SQL editor + Wrap lines in SQL editor + + + + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + + + + Highlight current query + Highlight current query + + + + Updates + Updates + + + + Automatically check for updates at startup + Automatically check for updates at startup + + + + Session + Session + + + + Restore last session (active MDI windows) after startup + Restore last session (active MDI windows) after startup + + + + Allow multiple instances of the application at the same time + Allow multiple instances of the application at the same time + + + + Status Field + Status Field + + + + <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> + <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> + + + + Always open Status panel when new message is printed + Always open Status panel when new message is printed + + + + Code syntax colors + Code syntax colors + + + + Keyword foreground + Keyword foreground + + + + Regular foreground + Regular foreground + + + + String foreground + String foreground + + + + Comment foreground + Comment foreground + + + + Valid objects foreground + Valid objects foreground + + + + Current query background + Current query background + + + + Bind parameter foreground + Bind parameter foreground + + + + Current line background + Current line background + + + + Matched parenthesis background + Matched parenthesis background + + + + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + + + + Number foreground + Number foreground + + + + BLOB value foreground + BLOB value foreground + + + + Matched parenthesis foreground + Matched parenthesis foreground + + + + Reset to defaults + Reset to defaults + + + + Filter shortcuts by name or key combination + Filter shortcuts by name or key combination + + + + Action + Action + + + + Key combination + Key combination + + + + + Language + Language + + + + Changing language requires application restart to take effect. + Changing language requires application restart to take effect. + + + + Compact layout + Compact layout + + + + <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> + <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> + + + + Use compact layout + Use compact layout + + + + Main window dock areas + Main window dock areas + + + + Left and right areas occupy corners + Left and right areas occupy corners + + + + Top and bottom areas occupy corners + Top and bottom areas occupy corners + + + + Hide built-in plugins + Hide built-in plugins + + + + Current style: + Current style: + + + + Preview + Preview + + + + Enabled + Enabled + + + + Disabled + Disabled + + + + Active formatter plugin + Active formatter plugin + + + + SQL editor font + SQL editor font + + + + Database list font + Database list font + + + + Database list additional label font + Database list additional label font + + + + Data view font + Data view font + + + + Status field font + Status field font + + + + Code assistant settings + Code assistant settings + + + + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + + + + Automatically trigger the assistant after a dot is typed after an object name + Automatically trigger the assistant after a dot is typed after an object name + + + + Description: + plugin details + Description: + + + + Category: + plugin details + Category: + + + + Version: + plugin details + Version: + + + + Author: + plugin details + Author: + + + + Internal name: + plugin details + Internal name: + + + + Dependencies: + plugin details + Dependencies: + + + + Conflicts: + plugin details + Conflicts: + + + + Plugin details + Plugin details + + + + Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. + Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. + + + + %1 (built-in) + plugins manager in configuration dialog + %1 (built-in) + + + + Details + Details + + + + No plugins in this category. + No plugins in this category. + + + + Add new data type + Add new data type + + + + Rename selected data type + Rename selected data type + + + + Delete selected data type + Delete selected data type + + + + Help for configuring data type editors + Help for configuring data type editors + + + + Clear hotkey for this action + Clear hotkey for this action + + + + Restore original hotkey for this action + Restore original hotkey for this action + + + + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + + + + ConstraintCheckPanel + + + The condition + The condition + + + + Named constraint: + Named constraint: + + + + On conflict + On conflict + + + + Enter a valid condition. + Enter a valid condition. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ConstraintDialog + + + New constraint + constraint dialog + New constraint + + + + Create + constraint dialog + Create + + + + Edit constraint + dialog window + Edit constraint + + + + Apply + constraint dialog + Apply + + + + Primary key + table constraints + Primary key + + + + Foreign key + table constraints + Foreign key + + + + Unique + table constraints + Unique + + + + Not NULL + table constraints + Not NULL + + + + Check + table constraints + Check + + + + Generated + table constraints + Generated + + + + Collate + table constraints + Collate + + + + Default + table constraints + Default + + + + ConstraintTabModel + + + Table + table constraints + Table + + + + Column (%1) + table constraints + Column (%1) + + + + Scope + table constraints + Scope + + + + Type + table constraints + Type + + + + Details + table constraints + Details + + + + Name + table constraints + Name + + + + CssDebugDialog + + + SQLiteStudio CSS console + SQLiteStudio CSS console + + + + DataView + + + Filter data + data view + Filter data + + + + Grid view + Grid view + + + + Form view + Form view + + + + Refresh table data + data view + Refresh table data + + + + First page + data view + First page + + + + Previous page + data view + Previous page + + + + Next page + data view + Next page + + + + Last page + data view + Last page + + + + Commit changes for selected cells + data view + Commit changes for selected cells + + + + Rollback changes for selected cells + data view + Rollback changes for selected cells + + + + Show grid view of results + data view + Show grid view of results + + + + Show form view of results + data view + Show form view of results + + + + Filter by text (if contains) + data view + Filter by text (if contains) + + + + Filter strictly by text (if equals) + data view + Filter strictly by text (if equals) + + + + Tabs on top + data view + Tabs on top + + + + Tabs at bottom + data view + Tabs at bottom + + + + Place new rows above selected row + data view + Place new rows above selected row + + + + Place new rows below selected row + data view + Place new rows below selected row + + + + Place new rows at the end of the data view + data view + Place new rows at the end of the data view + + + + Total number of rows is being counted. +Browsing other pages will be possible after the row counting is done. + Total number of rows is being counted. +Browsing other pages will be possible after the row counting is done. + + + + Row: %1 + Row: %1 + + + + Filter + Filter + + + + Hit Enter key or press "Apply filter" button on toolbar to apply new value. + Hit Enter key or press "Apply filter" button on toolbar to apply new value. + + + + Filter by the Regular Expression + data view + Filter by the Regular Expression + + + + Filter by SQL expression + data view + Filter by SQL expression + + + + Show filter inputs per column + data view + Show filter inputs per column + + + + Apply filter + data view + Apply filter + + + + DbDialog + + + Database + Database + + + + Database type + Database type + + + + Database driver + Database driver + + + + + File + File + + + + Name (on the list) + Name (on the list) + + + + Options + Options + + + + <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> + aasfd + <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> + + + + Permanent (keep it in configuration) + Permanent (keep it in configuration) + + + + Test connection + Test connection + + + + Select new or existing file on local computer + Select new or existing file on local computer + + + + Browse + Browse + + + + Database type not selected. + Database type not selected. + + + + Database path not specified. + Database path not specified. + + + + Enter an unique database name. + Enter an unique database name. + + + + This name is already in use. Please enter unique name. + This name is already in use. Please enter unique name. + + + + <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> + <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> + + + + Enter a database file path. + Enter a database file path. + + + + This database is already on the list under name: %1 + This database is already on the list under name: %1 + + + + Select a database type. + Select a database type. + + + + DbObjectDialogs + + + Delete table + Delete table + + + + Are you sure you want to delete table %1? + Are you sure you want to delete table %1? + + + + Delete index + Delete index + + + + Are you sure you want to delete index %1? + Are you sure you want to delete index %1? + + + + Delete trigger + Delete trigger + + + + Are you sure you want to delete trigger %1? + Are you sure you want to delete trigger %1? + + + + Delete view + Delete view + + + + Are you sure you want to delete view %1? + Are you sure you want to delete view %1? + + + + + Error while dropping %1: %2 + Error while dropping %1: %2 + + + + Delete objects + Delete objects + + + + Are you sure you want to delete following objects: +%1 + Are you sure you want to delete following objects: +%1 + + + + Cannot start transaction. Details: %1 + Cannot start transaction. Details: %1 + + + + Cannot commit transaction. Details: %1 + Cannot commit transaction. Details: %1 + + + + DbTree + + + Databases + Databases + + + + Filter by name + Filter by name + + + + Copy + Copy + + + + Paste + Paste + + + + Select all + Select all + + + + Create a group + Create a group + + + + Delete the group + Delete the group + + + + Rename the group + Rename the group + + + + &Add a database + &Add a database + + + + &Edit the database + &Edit the database + + + + &Remove the database + &Remove the database + + + + &Connect to the database + &Connect to the database + + + + &Disconnect from the database + &Disconnect from the database + + + + Import + Import + + + + &Export the database + &Export the database + + + + Vac&uum + Vac&uum + + + + &Integrity check + &Integrity check + + + + Create a &table + Create a &table + + + + Edit the t&able + Edit the t&able + + + + Delete the ta&ble + Delete the ta&ble + + + + Export the table + Export the table + + + + Import into the table + Import into the table + + + + Populate table + Populate table + + + + Create similar table + Create similar table + + + + Reset autoincrement sequence + Reset autoincrement sequence + + + + Create an &index + Create an &index + + + + Edit the i&ndex + Edit the i&ndex + + + + Delete the in&dex + Delete the in&dex + + + + Create a trig&ger + Create a trig&ger + + + + Edit the trigg&er + Edit the trigg&er + + + + Delete the trigge&r + Delete the trigge&r + + + + Create a &view + Create a &view + + + + Edit the v&iew + Edit the v&iew + + + + Delete the vi&ew + Delete the vi&ew + + + + Add a column + Add a column + + + + Edit the column + Edit the column + + + + Delete the column + Delete the column + + + + Delete selected items + Delete selected items + + + + Clear filter + Clear filter + + + + &Refresh all database schemas + &Refresh all database schemas + + + + Re&fresh selected database schema + Re&fresh selected database schema + + + + + Erase table data + Erase table data + + + + Open file's directory + Open file's directory + + + + Execute SQL from file + Execute SQL from file + + + + Increase font size + database list + Increase font size + + + + Decrease font size + database list + Decrease font size + + + + + Database + Database + + + + Grouping + Grouping + + + + Generate query for table + Generate query for table + + + + + Create group + Create group + + + + Group name + Group name + + + + Entry with name %1 already exists in group %2. + Entry with name %1 already exists in group %2. + + + + Delete group + Delete group + + + + Are you sure you want to delete group %1? +All objects from this group will be moved to parent group. + Are you sure you want to delete group %1? +All objects from this group will be moved to parent group. + + + + Are you sure you want to remove database '%1' from the list? + Are you sure you want to remove database '%1' from the list? + + + + Are you sure you want to remove following databases from the list: +%1 + Are you sure you want to remove following databases from the list: +%1 + + + + Remove database + Remove database + + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Vacuum (%1) + Vacuum (%1) + + + + Integrity check (%1) + Integrity check (%1) + + + + Reset autoincrement + Reset autoincrement + + + + Are you sure you want to reset autoincrement value for table '%1'? + Are you sure you want to reset autoincrement value for table '%1'? + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + An error occurred while trying to reset autoincrement value for table '%1': %2 + + + + Autoincrement value for table '%1' has been reset successfully. + Autoincrement value for table '%1' has been reset successfully. + + + + Are you sure you want to delete all data from table(s): %1? + Are you sure you want to delete all data from table(s): %1? + + + + An error occurred while trying to delete data from table '%1': %2 + An error occurred while trying to delete data from table '%1': %2 + + + + All data has been deleted for table '%1'. + All data has been deleted for table '%1'. + + + + Following objects will be deleted: %1. + Following objects will be deleted: %1. + + + + Following databases will be removed from list: %1. + Following databases will be removed from list: %1. + + + + Remainig objects from deleted group will be moved in place where the group used to be. + Remainig objects from deleted group will be moved in place where the group used to be. + + + + %1<br><br>Are you sure you want to continue? + %1<br><br>Are you sure you want to continue? + + + + Delete objects + Delete objects + + + + DbTreeItemDelegate + + + error + dbtree labels + error + + + + (system table) + database tree label + (system table) + + + + (virtual) + virtual table label + (virtual) + + + + (system index) + database tree label + (system index) + + + + DbTreeModel + + + Database: %1 + dbtree tooltip + Database: %1 + + + + URI: + dbtree tooltip + URI: + + + + Version: + dbtree tooltip + Version: + + + + File size: + dbtree tooltip + File size: + + + + Encoding: + dbtree tooltip + Encoding: + + + + Error: + dbtree tooltip + Error: + + + + Table : %1 + dbtree tooltip + Table : %1 + + + + Columns (%1): + dbtree tooltip + Columns (%1): + + + + Indexes (%1): + dbtree tooltip + Indexes (%1): + + + + Triggers (%1): + dbtree tooltip + Triggers (%1): + + + + Copy + Copy + + + + Move + Move + + + + Include data + Include data + + + + Include indexes + Include indexes + + + + Include triggers + Include triggers + + + + Abort + Abort + + + + Could not add dropped database file '%1' automatically. Manual setup is necessary. + Could not add dropped database file '%1' automatically. Manual setup is necessary. + + + + Referenced tables + Referenced tables + + + + Do you want to include following referenced tables as well: +%1 + Do you want to include following referenced tables as well: +%1 + + + + Name conflict + Name conflict + + + + Following object already exists in the target database. +Please enter new, unique name, or press '%1' to abort the operation: + Following object already exists in the target database. +Please enter new, unique name, or press '%1' to abort the operation: + + + + SQL statements conversion + SQL statements conversion + + + + Following error occurred while converting SQL statements to the target SQLite version: + Following error occurred while converting SQL statements to the target SQLite version: + + + + Would you like to ignore those errors and proceed? + Would you like to ignore those errors and proceed? + + + + DdlHistoryWindow + + + Filter by database: + Filter by database: + + + + Clear entire history + Clear entire history + + + + -- Queries executed on database %1 (%2) +-- Date and time of execution: %3 +%4 + -- Queries executed on database %1 (%2) +-- Date and time of execution: %3 +%4 + + + + Clear history + Clear history + + + + Are you sure you want to erase entire DDL history? + Are you sure you want to erase entire DDL history? + + + + DDL history + DDL history + + + + DdlPreviewDialog + + + Queries to be executed + Queries to be executed + + + + Don't show again + Don't show again + + + + DebugConsole + + + SQLiteStudio Debug Console + SQLiteStudio Debug Console + + + + EditorWindow + + + SQL editor + SQL editor + + + + Query + Query + + + + History + History + + + + Results in the separate tab + Results in the separate tab + + + + Results below the query + Results below the query + + + + + SQL editor %1 + SQL editor %1 + + + + + Results + Results + + + + Execute query + Execute query + + + + Explain query + Explain query + + + + Clear execution history + sql editor + Clear execution history + + + + Export results + sql editor + Export results + + + + Create view from query + sql editor + Create view from query + + + + Previous database + Previous database + + + + Next database + Next database + + + + Show next tab + sql editor + Show next tab + + + + Show previous tab + sql editor + Show previous tab + + + + Focus results below + sql editor + Focus results below + + + + Focus SQL editor above + sql editor + Focus SQL editor above + + + + Delete selected SQL history entries + sql editor + Delete selected SQL history entries + + + + Execute single query under cursor + Execute single query under cursor + + + + Execute all queries in editor + Execute all queries in editor + + + + Active database (%1/%2) + Active database (%1/%2) + + + + Query finished in %1 second(s). Rows affected: %2 + Query finished in %1 second(s). Rows affected: %2 + + + + Query finished in %1 second(s). + Query finished in %1 second(s). + + + + Clear execution history + Clear execution history + + + + Are you sure you want to erase the entire SQL execution history? This cannot be undone. + Are you sure you want to erase the entire SQL execution history? This cannot be undone. + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + No database selected in the SQL editor. Cannot create a view for unknown database. + No database selected in the SQL editor. Cannot create a view for unknown database. + + + + Editor window "%1" has uncommitted data. + Editor window "%1" has uncommitted data. + + + + ErrorsConfirmDialog + + + Errors + Errors + + + + Following errors occured: + Following errors occured: + + + + Would you like to proceed? + Would you like to proceed? + + + + ExecFromFileDialog + + + Execute SQL from file + Execute SQL from file + + + + Input file + Input file + + + + Path to file + Path to file + + + + Browse for file + Browse for file + + + + Options + Options + + + + File encoding + File encoding + + + + Skip failing SQL statements + Skip failing SQL statements + + + + SQL scripts (*.sql);;All files (*) + SQL scripts (*.sql);;All files (*) + + + + Execute SQL file + Execute SQL file + + + + Please provide file to be executed. + Please provide file to be executed. + + + + Provided file does not exist or cannot be read. + Provided file does not exist or cannot be read. + + + + ExportDialog + + + Export + Export + + + + What do you want to export? + What do you want to export? + + + + A database + A database + + + + A single table + A single table + + + + Query results + Query results + + + + Table to export + Table to export + + + + Database + Database + + + + Table + Table + + + + Options + Options + + + + When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. + When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. + + + + Export table data + Export table data + + + + Export table indexes + Export table indexes + + + + Export table triggers + Export table triggers + + + + Note, that exporting table indexes and triggers may be unsupported by some output formats. + Note, that exporting table indexes and triggers may be unsupported by some output formats. + + + + Select database objects to export + Select database objects to export + + + + Export data from tables + Export data from tables + + + + Select all + Select all + + + + Deselect all + Deselect all + + + + + Database: + Database: + + + + Query to export results for + Query to export results for + + + + Query to be executed for results: + Query to be executed for results: + + + + Export format and options + Export format and options + + + + Export format + Export format + + + + Output + Output + + + + Exported file path + Exported file path + + + + Clipboard + Clipboard + + + + File + File + + + + Exported text encoding: + Exported text encoding: + + + + Export format options + Export format options + + + + Cancel + Cancel + + + + + + Select database to export. + Select database to export. + + + + Select table to export. + Select table to export. + + + + Enter valid query to export. + Enter valid query to export. + + + + Select at least one object to export. + Select at least one object to export. + + + + You must provide a file name to export to. + You must provide a file name to export to. + + + + Path you provided is an existing directory. You cannot overwrite it. + Path you provided is an existing directory. You cannot overwrite it. + + + + The directory '%1' does not exist. + The directory '%1' does not exist. + + + + The file '%1' exists and will be overwritten. + The file '%1' exists and will be overwritten. + + + + All files (*) + All files (*) + + + + Pick file to export to + Pick file to export to + + + + Internal error during export. This is a bug. Please report it. + Internal error during export. This is a bug. Please report it. + + + + FileExecErrorsDialog + + + Execution errors + Execution errors + + + + Following errors were encountered during execution of SQL statements from the file: + Following errors were encountered during execution of SQL statements from the file: + + + + SQL + SQL + + + + Error + Error + + + + Statements that were executed successfully were commited. + Statements that were executed successfully were commited. + + + + Statements that were executed successfully were rolled back. + Statements that were executed successfully were rolled back. + + + + FkComboBox + + + Cannot edit this cell. Details: %1 + Cannot edit this cell. Details: %1 + + + + FontEdit + + + Choose font + font configuration + Choose font + + + + Form + + + Active SQL formatter plugin + Active SQL formatter plugin + + + + FormView + + + Commit row + form view + Commit row + + + + Rollback row + form view + Rollback row + + + + First row + form view + First row + + + + Previous row + form view + Previous row + + + + Next row + form view + Next row + + + + Last row + form view + Last row + + + + Insert new row + form view + Insert new row + + + + Delete current row + form view + Delete current row + + + + FunctionsEditor + + + Filter functions + Filter functions + + + + Input arguments + Input arguments + + + + Undefined + Undefined + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Type: + Type: + + + + Function name: + Function name: + + + + Implementation language: + Implementation language: + + + + Deterministic + Deterministic + + + + Initialization code: + Initialization code: + + + + + Function implementation code: + Function implementation code: + + + + Final step implementation code: + Final step implementation code: + + + + SQL functions editor + SQL functions editor + + + + Commit all function changes + Commit all function changes + + + + Rollback all function changes + Rollback all function changes + + + + Create new function + Create new function + + + + Delete selected function + Delete selected function + + + + Custom SQL functions manual + Custom SQL functions manual + + + + Add function argument + Add function argument + + + + Rename function argument + Rename function argument + + + + Delete function argument + Delete function argument + + + + Move function argument up + Move function argument up + + + + Move function argument down + Move function argument down + + + + Scalar + Scalar + + + + Aggregate + Aggregate + + + + Enter a non-empty, unique name of the function. + Enter a non-empty, unique name of the function. + + + + Pick the implementation language. + Pick the implementation language. + + + + Per step code: + Per step code: + + + + Enter a non-empty implementation code. + Enter a non-empty implementation code. + + + + argument + new function argument name in function editor window + argument + + + + Functions editor window has uncommitted modifications. + Functions editor window has uncommitted modifications. + + + + ImportDialog + + + Import data + Import data + + + + Table to import to + Table to import to + + + + Table + Table + + + + Database + Database + + + + Data source to import from + Data source to import from + + + + Data source type + Data source type + + + + Options + Options + + + + Text encoding: + Text encoding: + + + + Input file: + Input file: + + + + <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> + <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> + + + + Ignore errors + Ignore errors + + + + Data source options + Data source options + + + + Cancel + Cancel + + + + If you type table name that doesn't exist, it will be created. + If you type table name that doesn't exist, it will be created. + + + + Enter the table name + Enter the table name + + + + Select import plugin. + Select import plugin. + + + + You must provide a file to import from. + You must provide a file to import from. + + + + The file '%1' does not exist. + The file '%1' does not exist. + + + + Path you provided is a directory. A regular file is required. + Path you provided is a directory. A regular file is required. + + + + Pick file to import from + Pick file to import from + + + + IndexDialog + + + + Index + Index + + + + Column + Column + + + + Sort + Sort + + + + Collation + Collation + + + + On table: + On table: + + + + Delete selected indexed expression + Delete selected indexed expression + + + + Moves selected index column up in the order, making it more significant in the index. + Moves selected index column up in the order, making it more significant in the index. + + + + Moves selected index column down in the order, making it less significant in the index. + Moves selected index column down in the order, making it less significant in the index. + + + + Partial index condition + Partial index condition + + + + Unique index + Unique index + + + + Index name: + Index name: + + + + Edit selected indexed expression + Edit selected indexed expression + + + + Add indexed expression + Add indexed expression + + + + DDL + DDL + + + + Tried to open index dialog for closed or inexisting database. + Tried to open index dialog for closed or inexisting database. + + + + Could not process index %1 correctly. Unable to open an index dialog. + Could not process index %1 correctly. Unable to open an index dialog. + + + + Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. + Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. + + + + Pick the table for the index. + Pick the table for the index. + + + + Select at least one column. + Select at least one column. + + + + Enter a valid condition. + Enter a valid condition. + + + + default + index dialog + default + + + + Sort order + table constraints + Sort order + + + + + Error + index dialog + Error + + + + Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? + Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? + + + + An error occurred while executing SQL statements: +%1 + An error occurred while executing SQL statements: +%1 + + + + IndexExprColumnDialog + + + Indexed expression + Indexed expression + + + + Expression to index + Expression to index + + + + This expression is already indexed by the index. + This expression is already indexed by the index. + + + + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. + + + + Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. + Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. + + + + It's forbidden to use 'SELECT' statements in indexed expressions. + It's forbidden to use 'SELECT' statements in indexed expressions. + + + + Enter an indexed expression. + Enter an indexed expression. + + + + Invalid expression. + Invalid expression. + + + + LanguageDialog + + + Language + Language + + + + Please choose language: + Please choose language: + + + + MainWindow + + + Database toolbar + Database toolbar + + + + Structure toolbar + Structure toolbar + + + + Tools + Tools + + + + Window list + Window list + + + + View toolbar + View toolbar + + + + Configuration widgets + Configuration widgets + + + + Syntax highlighting engines + Syntax highlighting engines + + + + Data editors + Data editors + + + + Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. + Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. + + + + Running in debug mode. Debug messages are printed to the standard output. + Running in debug mode. Debug messages are printed to the standard output. + + + + You need to restart application to make the language change take effect. + You need to restart application to make the language change take effect. + + + + Open SQL &editor + Open SQL &editor + + + + Open DDL &history + Open DDL &history + + + + Open SQL &functions editor + Open SQL &functions editor + + + + Open code &snippets editor + Open code &snippets editor + + + + Open &collations editor + Open &collations editor + + + + Open ex&tension manager + Open ex&tension manager + + + + &Import + &Import + + + + E&xport + E&xport + + + + Open confi&guration dialog + Open confi&guration dialog + + + + &Tile windows + &Tile windows + + + + Tile windows &horizontally + Tile windows &horizontally + + + + Tile windows &vertically + Tile windows &vertically + + + + &Cascade windows + &Cascade windows + + + + Next window + Next window + + + + Previous window + Previous window + + + + Hide status field + Hide status field + + + + Close &all windows + Close &all windows + + + + Re&store recently closed window + Re&store recently closed window + + + + Close current &window + Close current &window + + + + Close &other windows + Close &other windows + + + + Close windows on the &left + Close windows on the &left + + + + Close windows on the &right + Close windows on the &right + + + + Re&name selected window + Re&name selected window + + + + Open Debug Console + Open Debug Console + + + + Open CSS Console + Open CSS Console + + + + Report a &bug + Report a &bug + + + + D&onate + D&onate + + + + Propose a new &feature + Propose a new &feature + + + + &About + &About + + + + &Licenses + &Licenses + + + + Open home &page + Open home &page + + + + User &Manual + User &Manual + + + + SQLite &documentation + SQLite &documentation + + + + Bugs and feature &requests + Bugs and feature &requests + + + + Quit + Quit + + + + Check for &updates + Check for &updates + + + + &Database + menubar + &Database + + + + &Structure + menubar + &Structure + + + + &View + menubar + &View + + + + Window list + menubar view menu + Window list + + + + &Tools + menubar + &Tools + + + + &Help + &Help + + + + Could not set style: %1 + main window + Could not set style: %1 + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + Rename window + Rename window + + + + Enter new name for the window: + Enter new name for the window: + + + + New updates are available. <a href="%1">Click here for details</a>. + New updates are available. <a href="%1">Click here for details</a>. + + + + You're running the most recent version. No updates are available. + You're running the most recent version. No updates are available. + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + Database passed in command line parameters (%1) was already on the list under name: %2 + + + + Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 + Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + MdiWindow + + + Uncommitted changes + Uncommitted changes + + + + Close anyway + Close anyway + + + + Don't close + Don't close + + + + MultiEditor + + + Null value + multieditor + Null value + + + + Configure editors for this data type + Configure editors for this data type + + + + Open another tab + Open another tab + + + + Foreign Key + Foreign Key + + + + Data editor plugin '%1' not loaded, while it is defined for editing '%2' data type. + Data editor plugin '%1' not loaded, while it is defined for editing '%1' data type. {1'?} {2'?} {1' or 2'?} + + + + Deleted + multieditor + Deleted + + + + Read only + multieditor + Read only + + + + MultiEditorBoolPlugin + + + Boolean + Boolean + + + + MultiEditorDatePlugin + + + Date + Date + + + + MultiEditorDateTimePlugin + + + Date & time + Date & time + + + + MultiEditorHexPlugin + + + Hex + Hex + + + + MultiEditorNumericPlugin + + + Number + numeric multi editor tab name + Number + + + + MultiEditorText + + + Tab changes focus + Tab changes focus + + + + Cut + Cut + + + + Copy + Copy + + + + Paste + Paste + + + + Delete + Delete + + + + Undo + Undo + + + + Redo + Redo + + + + MultiEditorTextPlugin + + + Text + Text + + + + MultiEditorTimePlugin + + + Time + Time + + + + NewConstraintDialog + + + New constraint + New constraint + + + + + Primary Key + new constraint dialog + Primary Key + + + + + Foreign Key + new constraint dialog + Foreign Key + + + + + Unique + new constraint dialog + Unique + + + + + Check + new constraint dialog + Check + + + + Not NULL + new constraint dialog + Not NULL + + + + Collate + new constraint dialog + Collate + + + + Generated + new constraint dialog + Generated + + + + Default + new constraint dialog + Default + + + + NewVersionDialog + + + SQLiteStudio updates + SQLiteStudio updates + + + + New version is available! + New version is available! + + + + Download new version! + Download new version! + + + + New version package will be downloaded. It will be up to you to install it whenever you're ready. + New version package will be downloaded. It will be up to you to install it whenever you're ready. + + + + Open SQLiteStudio home page. + Open SQLiteStudio home page. + + + + Read release notes && download package yourself. + Read release notes && download package yourself. + + + + Just close this window. + Just close this window. + + + + Check for updates on startup + Check for updates on startup + + + + Not now. + Not now. + + + + PopulateConfigDialog + + + Populating configuration + Populating configuration + + + + Configuring <b>%1</b> for column <b>%2</b> + Configuring <b>%1</b> for column <b>%2</b> + + + + PopulateDialog + + + Populate table + Populate table + + + + Database + Database + + + + Table + Table + + + + Columns + Columns + + + + Number of rows to populate: + Number of rows to populate: + + + + Populate + populate dialog button + Populate + + + + Abort + Abort + + + + Configure + Configure + + + + Populating configuration for this column is invalid or incomplete. + Populating configuration for this column is invalid or incomplete. + + + + Select database with table to populate + Select database with table to populate + + + + Select table to populate + Select table to populate + + + + You have to select at least one column. + You have to select at least one column. + + + + QObject + + + Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). + Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). + + + + The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. + The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. + + + + Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. + Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. + + + + Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. + Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. + + + + Cannot edit results of query other than %1. + Cannot edit results of query other than %1. + + + + Cannot edit columns that are result of aggregated %1 statements. + Cannot edit columns that are result of aggregated %1 statements. + + + + Cannot edit columns that are result of %1 statement. + Cannot edit columns that are result of %1 statement. + + + + Cannot edit columns that are result of common table expression statement (%1). + Cannot edit columns that are result of common table expression statement (%1). + + + + Cannot edit table generated columns. + Cannot edit table generated columns. + + + + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). + + + + + + + on conflict: %1 + data view tooltip + on conflict: %1 + + + + references table %1, column %2 + data view tooltip + references table %1, column %2 + + + + condition: %1 + data view tooltip + condition: %1 + + + + collation name: %1 + data view tooltip + collation name: %1 + + + + Data grid view + Data grid view + + + + Edit current cell inline + Edit current cell inline + + + + Copy cell(s) contents to clipboard + Copy cell(s) contents to clipboard + + + + Copy cell(s) contents together with header to clipboard + Copy cell(s) contents together with header to clipboard + + + + Paste cell(s) contents from clipboard + Paste cell(s) contents from clipboard + + + + Set empty value to selected cell(s) + Set empty value to selected cell(s) + + + + Set NULL value to selected cell(s) + Set NULL value to selected cell(s) + + + + Commit changes to cell(s) contents + Commit changes to cell(s) contents + + + + Rollback changes to cell(s) contents + Rollback changes to cell(s) contents + + + + Delete selected data row + Delete selected data row + + + + Insert new data row + Insert new data row + + + + Open contents of selected cell in a separate editor + Open contents of selected cell in a separate editor + + + + Toggle the height adjustment of rows + Toggle the height adjustment of rows + + + + Increase font size + data view + Increase font size + + + + Decrease font size + data view + Decrease font size + + + + Total pages available: %1 + Total pages available: %1 + + + + Total rows loaded: %1 + Total rows loaded: %1 + + + + Data view (both grid and form) + Data view (both grid and form) + + + + Refresh data + Refresh data + + + + Switch to grid view of the data + Switch to grid view of the data + + + + Switch to form view of the data + Switch to form view of the data + + + + Database list + Database list + + + + Delete selected item + Delete selected item + + + + Clear filter contents + Clear filter contents + + + + Refresh schema + Refresh schema + + + + Refresh all schemas + Refresh all schemas + + + + Add database + Add database + + + + Select all items + Select all items + + + + Copy selected item(s) + Copy selected item(s) + + + + + + Paste from clipboard + Paste from clipboard + + + + Increase font size + database list + Increase font size + + + + Decrease font size + database list + Decrease font size + + + + Tables + Tables + + + + Indexes + Indexes + + + + Triggers + Triggers + + + + Views + Views + + + + Columns + Columns + + + + Data form view + Data form view + + + + Commit changes for current row + Commit changes for current row + + + + Rollback changes for current row + Rollback changes for current row + + + + Go to first row on current page + Go to first row on current page + + + + Go to next row + Go to next row + + + + Go to previous row + Go to previous row + + + + Go to last row on current page + Go to last row on current page + + + + Insert new row + Insert new row + + + + Delete current row + Delete current row + + + + Main window + Main window + + + + Open SQL editor + Open SQL editor + + + + Open DDL history window + Open DDL history window + + + + Open snippets editor window + Open snippets editor window + + + + Open function editor window + Open function editor window + + + + Open collation editor window + Open collation editor window + + + + Open extension manager window + Open extension manager window + + + + Previous window + Previous window + + + + Next window + Next window + + + + Hide status area + Hide status area + + + + Open user manual + Open user manual + + + + Open configuration dialog + Open configuration dialog + + + + Open Debug Console + Open Debug Console + + + + Open CSS Console + Open CSS Console + + + + Open the About dialog + Open the About dialog + + + + Quit the application + Quit the application + + + + Cell text value editor + Cell text value editor + + + + + Cut selected text + Cut selected text + + + + + Copy selected text + Copy selected text + + + + + Delete selected text + Delete selected text + + + + + Undo + Undo + + + + + Redo + Redo + + + + SQL editor input field + SQL editor input field + + + + Select whole editor contents + Select whole editor contents + + + + Save contents into a file + Save contents into a file + + + + Load contents from a file + Load contents from a file + + + + Find in text + Find in text + + + + Find next + Find next + + + + Find previous + Find previous + + + + Replace in text + Replace in text + + + + Delete current line + Delete current line + + + + Request code assistant + Request code assistant + + + + Format contents + Format contents + + + + Move selected block of text one line down + Move selected block of text one line down + + + + Move selected block of text one line up + Move selected block of text one line up + + + + Copy selected block of text and paste it a line below + Copy selected block of text and paste it a line below + + + + Copy selected block of text and paste it a line above + Copy selected block of text and paste it a line above + + + + Toggle comment + Toggle comment + + + + Increase font size + sql editor + Increase font size + + + + Decrease font size + sql editor + Decrease font size + + + + All SQLite databases + All SQLite databases + + + + All files + All files + + + + Select database file + Select database file + + + + Select + Select + + + + File type + File type + + + + SQL editor window + SQL editor window + + + + Execute query + Execute query + + + + Execute single query under cursor + Execute single query under cursor + + + + Execute all queries in editor + Execute all queries in editor + + + + Execute "%1" query + Execute "%1" query + + + + Switch current working database to previous on the list + Switch current working database to previous on the list + + + + Switch current working database to next on the list + Switch current working database to next on the list + + + + Go to next editor tab + Go to next editor tab + + + + Go to previous editor tab + Go to previous editor tab + + + + Move keyboard input focus to the results view below + Move keyboard input focus to the results view below + + + + Move keyboard input focus to the SQL editor above + Move keyboard input focus to the SQL editor above + + + + Delete selected SQL history entries + Delete selected SQL history entries + + + + Table window + Table window + + + + Commit the table structure + Commit the table structure + + + + Rollback pending changes in the table structure + Rollback pending changes in the table structure + + + + Refresh table structure + Refresh table structure + + + + Add new column + Add new column + + + + Edit selected column + Edit selected column + + + + Delete selected column + Delete selected column + + + + Export table data + Export table data + + + + Import data to the table + Import data to the table + + + + Add new table constraint + Add new table constraint + + + + Edit selected table constraint + Edit selected table constraint + + + + Delete selected table constraint + Delete selected table constraint + + + + Refresh table index list + Refresh table index list + + + + Add new index + Add new index + + + + Edit selected index + Edit selected index + + + + Delete selected index + Delete selected index + + + + Refresh table trigger list + Refresh table trigger list + + + + + Add new trigger + Add new trigger + + + + + Edit selected trigger + Edit selected trigger + + + + + Delete selected trigger + Delete selected trigger + + + + + Go to next tab + Go to next tab + + + + + Go to previous tab + Go to previous tab + + + + A view window + A view window + + + + Commit the view's query + Commit the view's query + + + + Rollback pending changes in the view's query + Rollback pending changes in the view's query + + + + Refresh view trigger list + Refresh view trigger list + + + + Execute the view's query + Execute the view's query + + + + A code snippets editor window + A code snippets editor window + + + + + + + Commit the pending changes + Commit the pending changes + + + + + + + Rollback the pending changes + Rollback the pending changes + + + + A collation editor window + A collation editor window + + + + A function editor window + A function editor window + + + + A SQLite extension editor window + A SQLite extension editor window + + + + QuitConfirmDialog + + + Uncommitted changes + Uncommitted changes + + + + Are you sure you want to quit the application? + +Following items are pending: + Are you sure you want to quit the application? + +Following items are pending: + + + + SearchTextDialog + + + Find or replace + Find or replace + + + + Find: + Find: + + + + Case sensitive + Case sensitive + + + + Search backwards + Search backwards + + + + Regular expression matching + Regular expression matching + + + + Replace && +find next + Replace && +find next + + + + Replace with: + Replace with: + + + + Replace all + Replace all + + + + Find + Find + + + + SortDialog + + + Sort by columns + Sort by columns + + + + + Column + Column + + + + + Order + Order + + + + Sort by: %1 + Sort by: %1 + + + + Move column up + Move column up + + + + Move column down + Move column down + + + + SqlEditor + + + Wrap words + sql editor + Wrap words + + + + Cut + sql editor + Cut + + + + Copy + sql editor + Copy + + + + Paste + sql editor + Paste + + + + Delete + sql editor + Delete + + + + Select all + sql editor + Select all + + + + Undo + sql editor + Undo + + + + Redo + sql editor + Redo + + + + Complete + sql editor + Complete + + + + Format SQL + sql editor + Format SQL + + + + Save SQL to file + sql editor + Save SQL to file + + + + Select file to save SQL + sql editor + Select file to save SQL + + + + Load SQL from file + sql editor + Load SQL from file + + + + Delete line + sql editor + Delete line + + + + Move block down + sql editor + Move block down + + + + Move block up + sql editor + Move block up + + + + Copy block down + sql editor + Copy block down + + + + Copy up down + sql editor + Copy up down + + + + Find + sql editor + Find + + + + Find next + sql editor + Find next + + + + Find previous + sql editor + Find previous + + + + Replace + sql editor + Replace + + + + Toggle comment + sql editor + Toggle comment + + + + Increase font size + sql editor + Increase font size + + + + Decrease font size + sql editor + Decrease font size + + + + Could not open file '%1' for writing: %2 + Could not open file '%1' for writing: %2 + + + + Saved SQL contents to file: %1 + Saved SQL contents to file: %1 + + + + Syntax completion can be used only when a valid database is set for the SQL editor. + Syntax completion can be used only when a valid database is set for the SQL editor. + + + + Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. + Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. + + + + Save to file + Save to file + + + + SQL scripts (*.sql);;All files (*) + SQL scripts (*.sql);;All files (*) + + + + Open file + Open file + + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Reached the end of document. Hit the find again to restart the search. + Reached the end of document. Hit the find again to restart the search. + + + + SqlQueryItem + + + Committing error: + data view tooltip + Committing error: + + + + Column: + data view tooltip + Column: + + + + Data type: + data view + Data type: + + + + Table: + data view tooltip + Table: + + + + Constraints: + data view tooltip + Constraints: + + + + SqlQueryItemDelegate + + + + + + Cannot edit this cell. Details: %1 + Cannot edit this cell. Details: %1 + + + + The row is marked for deletion. + The row is marked for deletion. + + + + + Structure of this table has changed since last data was loaded. Reload the data to proceed. + Structure of this table has changed since last data was loaded. Reload the data to proceed. + + + + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). + + + + Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. + Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. + + + + SqlQueryModel + + + + Only one query can be executed simultaneously. + Only one query can be executed simultaneously. + + + + Cannot execute query on undefined or invalid database. + Cannot execute query on undefined or invalid database. + + + + Cannot execute empty query. + Cannot execute empty query. + + + + Uncommitted data + Uncommitted data + + + + There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. + There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. + + + + Cannot commit the data for a cell that refers to the already closed database. + Cannot commit the data for a cell that refers to the already closed database. + + + + Could not begin transaction on the database. Details: %1 + Could not begin transaction on the database. Details: %1 + + + + An error occurred while committing the transaction: %1 + An error occurred while committing the transaction: %1 + + + + An error occurred while rolling back the transaction: %1 + An error occurred while rolling back the transaction: %1 + + + + Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. + Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. + + + + An error occurred while committing the data: %1 + An error occurred while committing the data: %1 + + + + Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. + Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. + + + + + Error while executing SQL query on database '%1': %2 + Error while executing SQL query on database '%1': %2 + + + + Error while loading query results: %1 + Error while loading query results: %1 + + + + Insert multiple rows + Insert multiple rows + + + + Number of rows to insert: + Number of rows to insert: + + + + Delete rows + Delete rows + + + + You're about to delete newly inserted rows that are not committed yet. Row numbers: %1 +Such deletion will be permanent. Are you sure you want to delete them? + You're about to delete newly inserted rows that are not committed yet. Row numbers: %1 +Such deletion will be permanent. Are you sure you want to delete them? + + + + SqlQueryView + + + Go to referenced row in... + Go to referenced row in... + + + + Copy + Copy + + + + Copy with headers + Copy with headers + + + + Copy as... + Copy as... + + + + Paste + Paste + + + + Paste as... + Paste as... + + + + Set NULL values + Set NULL values + + + + Erase values + Erase values + + + + Commit + Commit + + + + Rollback + Rollback + + + + Commit selected cells + Commit selected cells + + + + Rollback selected cells + Rollback selected cells + + + + Edit current cell inline + Edit current cell inline + + + + Define columns to sort by + Define columns to sort by + + + + Remove custom sorting + Remove custom sorting + + + + Insert row + Insert row + + + + Insert multiple rows + Insert multiple rows + + + + Delete selected row + Delete selected row + + + + Adjust height of rows + Adjust height of rows + + + + Increase font size + data view + Increase font size + + + + Decrease font size + data view + Decrease font size + + + + Invert selection + data view + Invert selection + + + + Edit value in editor + Edit value in editor + + + + Show value in a viewer + Show value in a viewer + + + + Generate query for selected cells + Generate query for selected cells + + + + No items selected to paste clipboard contents to. + No items selected to paste clipboard contents to. + + + + Cannot paste data. Details: %1 + Cannot paste data. Details: %1 + + + + Structure of at least one table used has changed since last data was loaded. Reload the data to proceed. + Structure of at least one table used has changed since last data was loaded. Reload the data to proceed. + + + + Cannot paste to a cell. Details: %1 + Cannot paste to a cell. Details: %1 + + + + The row is marked for deletion. + The row is marked for deletion. + + + + Cannot paste to column %1. Details: %2 + Cannot paste to column %1. Details: %2 + + + + Go to referenced row in table '%1' + Go to referenced row in table '%1' + + + + table '%1' + table '%1' + + + + Referenced row (%1) + Referenced row (%1) + + + + Trim pasted text? + Trim pasted text? + + + + The pasted text contains leading or trailing white space. Trim it automatically? + The pasted text contains leading or trailing white space. Trim it automatically? + + + + Paste "NULL" as null value? + Paste "NULL" as null value? + + + + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + + + + Edit value + Edit value + + + + SqlTableModel + + + Error while committing new row: %1 + Error while committing new row: %1 + + + + Error while deleting row from table %1: %2 + Error while deleting row from table %1: %2 + + + + SqliteExtensionEditor + + + Filter extensions + Filter extensions + + + + Leave empty to use default function + Leave empty to use default function + + + + Extension file + Extension file + + + + Initialization function + Initialization function + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Extension manager window has uncommitted modifications. + Extension manager window has uncommitted modifications. + + + + Extension manager + Extension manager + + + + Commit all extension changes + Commit all extension changes + + + + Rollback all extension changes + Rollback all extension changes + + + + Add new extension + Add new extension + + + + Remove selected extension + Remove selected extension + + + + Editing extensions manual + Editing extensions manual + + + + File with given path does not exist or is not readable. + File with given path does not exist or is not readable. + + + + Unable to load extension: %1 + Unable to load extension: %1 + + + + Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. + Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. + + + + Dynamic link libraries (*.dll);;All files (*) + Dynamic link libraries (*.dll);;All files (*) + + + + Shared objects (*.so);;All files (*) + Shared objects (*.so);;All files (*) + + + + Dynamic libraries (*.dylib);;All files (*) + Dynamic libraries (*.dylib);;All files (*) + + + + All files (*) + All files (*) + + + + Open file + Open file + + + + StatusField + + + Status + Status + + + + Copy + Copy + + + + Clear + Clear + + + + TableConstraintsModel + + + Type + table constraints + Type + + + + Details + table constraints + Details + + + + Name + table constraints + Name + + + + TableForeignKeyPanel + + + Foreign table: + Foreign table: + + + + Columns + Columns + + + + Local column + Local column + + + + Foreign column + Foreign column + + + + Reactions + Reactions + + + + Deferred foreign key + Deferred foreign key + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + Pick the foreign column. + Pick the foreign column. + + + + Pick the foreign table. + Pick the foreign table. + + + + Select at least one foreign column. + Select at least one foreign column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + Foreign column + table constraints + Foreign column + + + + TablePrimaryKeyAndUniquePanel + + + Columns + Columns + + + + Column + Column + + + + Collation + Collation + + + + Sort + Sort + + + + Valid only for a single column with INTEGER data type + Valid only for a single column with INTEGER data type + + + + Autoincrement + Autoincrement + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + On conflict + On conflict + + + + Collate + table constraints + Collate + + + + Sort order + table constraints + Sort order + + + + Select at least one column. + Select at least one column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + TableStructureModel + + + Name + table structure columns + Name + + + + Data type + table structure columns + Data type + + + + Primary +Key + table structure columns + Primary +Key + + + + Foreign +Key + table structure columns + Foreign +Key + + + + Unique + table structure columns + Unique + + + + Check + table structure columns + Check + + + + Not +NULL + table structure columns + Not +NULL + + + + Collate + table structure columns + Collate + + + + Generated + table structure columns + Generated + + + + Default value + table structure columns + Default value + + + + TableWindow + + + Structure + Structure + + + + Table name: + Table name: + + + + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + + + + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + + + + + Data + Data + + + + Constraints + Constraints + + + + Indexes + Indexes + + + + Triggers + Triggers + + + + DDL + DDL + + + + Export table + table window + Export table + + + + Import data to table + table window + Import data to table + + + + Populate table + table window + Populate table + + + + Refresh structure + table window + Refresh structure + + + + Commit structure changes + table window + Commit structure changes + + + + Rollback structure changes + table window + Rollback structure changes + + + + Add column + table window + Add column + + + + Edit column + table window + Edit column + + + + + Delete column + table window + Delete column + + + + Move column up + table window + Move column up + + + + Move column down + table window + Move column down + + + + Create similar table + table window + Create similar table + + + + Reset autoincrement value + table window + Reset autoincrement value + + + + Add table constraint + table window + Add table constraint + + + + Edit table constraint + table window + Edit table constraint + + + + Delete table constraint + table window + Delete table constraint + + + + Move table constraint up + table window + Move table constraint up + + + + Move table constraint down + table window + Move table constraint down + + + + Add table primary key + table window + Add table primary key + + + + Add table foreign key + table window + Add table foreign key + + + + Add table unique constraint + table window + Add table unique constraint + + + + Add table check constraint + table window + Add table check constraint + + + + Refresh index list + table window + Refresh index list + + + + + Create index + table window + Create index + + + + Edit index + table window + Edit index + + + + Delete index + table window + Delete index + + + + Refresh trigger list + table window + Refresh trigger list + + + + + Create trigger + table window + Create trigger + + + + Edit trigger + table window + Edit trigger + + + + Delete trigger + table window + Delete trigger + + + + Are you sure you want to delete column '%1'? + table window + Are you sure you want to delete column '%1'? + + + + Following problems will take place while modifying the table. +Would you like to proceed? + table window + Following problems will take place while modifying the table. +Would you like to proceed? + + + + Table modification + table window + Table modification + + + + Could not load data for table %1. Error details: %2 + Could not load data for table %1. Error details: %2 + + + + Could not process the %1 table correctly. Unable to open a table window. + Could not process the %1 table correctly. Unable to open a table window. + + + + Database + Database + + + + Could not restore window %1, because no database or table was stored in session for this window. + Could not restore window %1, because no database or table was stored in session for this window. + + + + Could not restore window '%1', because no database or table was stored in session for this window. + Could not restore window '%1', because no database or table was stored in session for this window. + + + + Could not restore window '%1', because database %2 could not be resolved. + Could not restore window '%1', because database %2 could not be resolved. + + + + Could not restore window '%1', because the table %2 doesn't exist in the database %3. + Could not restore window '%1', because the table %2 doesn't exist in the database %3. + + + + + New table %1 + New table %1 + + + + Committed changes for table '%1' successfully. + Committed changes for table '%1' successfully. + + + + Committed changes for table '%1' (named before '%2') successfully. + Committed changes for table '%1' (named before '%2') successfully. + + + + Could not commit table structure. Error message: %1 + table window + Could not commit table structure. Error message: %1 + + + + Reset autoincrement + Reset autoincrement + + + + Are you sure you want to reset autoincrement value for table '%1'? + Are you sure you want to reset autoincrement value for table '%1'? + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + An error occurred while trying to reset autoincrement value for table '%1': %2 + + + + Autoincrement value for table '%1' has been reset successfully. + Autoincrement value for table '%1' has been reset successfully. + + + + Empty name + Empty name + + + + A blank name for the table is allowed in SQLite, but it is not recommended. +Are you sure you want to create a table with blank name? + A blank name for the table is allowed in SQLite, but it is not recommended. +Are you sure you want to create a table with blank name? + + + + Cannot create a table without at least one column. + Cannot create a table without at least one column. + + + + Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. + Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. + + + + Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. + Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. + + + + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 + + + + Are you sure you want to delete table constraint '%1'? + table window + Are you sure you want to delete table constraint '%1'? + + + + Delete constraint + table window + Delete constraint + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + Uncommitted changes + Uncommitted changes + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + + + + Go back to structure tab + Go back to structure tab + + + + Commit modifications and browse data. + Commit modifications and browse data. + + + + Name + table window indexes + Name + + + + Unique + table window indexes + Unique + + + + Columns + table window indexes + Columns + + + + Partial index condition + table window indexes + Partial index condition + + + + Name + table window triggers + Name + + + + Event + table window triggers + Event + + + + Condition + table window triggers + Condition + + + + Details + table window triggers + Details + + + + Table window "%1" has uncommitted structure modifications and data. + Table window "%1" has uncommitted structure modifications and data. + + + + Table window "%1" has uncommitted data. + Table window "%1" has uncommitted data. + + + + Table window "%1" has uncommitted structure modifications. + Table window "%1" has uncommitted structure modifications. + + + + TriggerColumnsDialog + + + Trigger columns + Trigger columns + + + + Triggering columns: + Triggering columns: + + + + Select all + Select all + + + + Deselect all + Deselect all + + + + TriggerDialog + + + + Trigger + Trigger + + + + On table: + On table: + + + + Action: + Action: + + + + + <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> + <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> + + + + Pre-condition: + Pre-condition: + + + + The scope is still not fully supported by the SQLite database. + The scope is still not fully supported by the SQLite database. + + + + Trigger name: + Trigger name: + + + + When: + When: + + + + List of columns for UPDATE OF action. + List of columns for UPDATE OF action. + + + + Scope: + Scope: + + + + Code: + Code: + + + + Trigger statements to be executed. + Trigger statements to be executed. + + + + DDL + DDL + + + + On view: + On view: + + + + Could not process trigger %1 correctly. Unable to open a trigger dialog. + Could not process trigger %1 correctly. Unable to open a trigger dialog. + + + + Enter a valid condition. + Enter a valid condition. + + + + Enter a valid trigger code. + Enter a valid trigger code. + + + + Error + trigger dialog + Error + + + + An error occurred while executing SQL statements: +%1 + An error occurred while executing SQL statements: +%1 + + + + VersionConvertSummaryDialog + + + Database version convert + Database version convert + + + + Following changes to the SQL statements will be made: + Following changes to the SQL statements will be made: + + + + Before + Before + + + + After + After + + + + ViewWindow + + + Query + Query + + + + View name: + View name: + + + + Output column names + Output column names + + + + + Data + Data + + + + Triggers + Triggers + + + + DDL + DDL + + + + + Could not restore window '%1', because no database or view was stored in session for this window. + Could not restore window '%1', because no database or view was stored in session for this window. + + + + Could not restore window '%1', because database %2 could not be resolved. + Could not restore window '%1', because database %2 could not be resolved. + + + + Could not restore window '%1', because database %2 could not be open. + Could not restore window '%1', because database %2 could not be open. + + + + Could not restore window '%1', because the view %2 doesn't exist in the database %3. + Could not restore window '%1', because the view %2 doesn't exist in the database %3. + + + + + New view %1 + New view %1 + + + + Database + Database + + + + Refresh the view + view window + Refresh the view + + + + Commit the view changes + view window + Commit the view changes + + + + Rollback the view changes + view window + Rollback the view changes + + + + Explicit column names + Explicit column names + + + + Generate output column names automatically basing on result columns of the view. + Generate output column names automatically basing on result columns of the view. + + + + Add column + view window + Add column + + + + Edit column + view window + Edit column + + + + Delete column + view window + Delete column + + + + Move column up + view window + Move column up + + + + Move column down + view window + Move column down + + + + Refresh trigger list + view window + Refresh trigger list + + + + Create new trigger + view window + Create new trigger + + + + Edit selected trigger + view window + Edit selected trigger + + + + Delete selected trigger + view window + Delete selected trigger + + + + View window "%1" has uncommitted structure modifications and data. + View window "%1" has uncommitted structure modifications and data. + + + + View window "%1" has uncommitted data. + View window "%1" has uncommitted data. + + + + View window "%1" has uncommitted structure modifications. + View window "%1" has uncommitted structure modifications. + + + + Could not load data for view %1. Error details: %2 + Could not load data for view %1. Error details: %2 + + + + Uncommitted changes + Uncommitted changes + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + + + + Go back to structure tab + Go back to structure tab + + + + Commit modifications and browse data. + Commit modifications and browse data. + + + + View '%1' was committed successfully. + View '%1' was committed successfully. + + + + Committed changes for view '%1' successfully. + Committed changes for view '%1' successfully. + + + + Committed changes for view '%1' (named before '%2') successfully. + Committed changes for view '%1' (named before '%2') successfully. + + + + Could not commit view changes. Error message: %1 + view window + Could not commit view changes. Error message: %1 + + + + Override columns + Override columns + + + + Currently defined columns will be overriden. Do you want to continue? + Currently defined columns will be overriden. Do you want to continue? + + + + Could not determinate columns returned from the view. The query is problably incomplete or contains errors. + Could not determinate columns returned from the view. The query is problably incomplete or contains errors. + + + + Name + view window triggers + Name + + + + Instead of + view window triggers + Instead of + + + + Condition + view window triggers + Condition + + + + Details + table window triggers + Details + + + + Could not process the %1 view correctly. Unable to open a view window. + Could not process the %1 view correctly. Unable to open a view window. + + + + Empty name + Empty name + + + + A blank name for the view is allowed in SQLite, but it is not recommended. +Are you sure you want to create a view with blank name? + A blank name for the view is allowed in SQLite, but it is not recommended. +Are you sure you want to create a view with blank name? + + + + The SELECT statement could not be parsed. Please correct the query and retry. +Details: %1 + The SELECT statement could not be parsed. Please correct the query and retry. +Details: %1 + + + + The view could not be modified due to internal SQLiteStudio error. Please report this! + The view could not be modified due to internal SQLiteStudio error. Please report this! + + + + The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. + The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. + + + + Following problems will take place while modifying the view. +Would you like to proceed? + view window + Following problems will take place while modifying the view. +Would you like to proceed? + + + + View modification + view window + View modification + + + + WidgetCover + + + Interrupt + Interrupt + + + diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_it.qm b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_it.qm deleted file mode 100644 index 9dad8df..0000000 Binary files a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_it.qm and /dev/null differ diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_it.ts b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_it.ts deleted file mode 100644 index e1651a8..0000000 --- a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_it.ts +++ /dev/null @@ -1,6612 +0,0 @@ - - - - - AboutDialog - - - About SQLiteStudio and licenses - - - - - About - - - - - <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> - - - - - Licenses - - - - - Environment - - - - - Icon directories - - - - - Form directories - - - - - Plugin directories - - - - - Configuration directory - - - - - Application directory - - - - - Qt version: - - - - - SQLite 3 version: - - - - - Portable distribution. - - - - - MacOS X application boundle distribution. - - - - - Operating system managed distribution. - - - - - Copy - - - - - <h3>Table of contents:</h3><ol>%2</ol> - - - - - BindParamsDialog - - - Query parameters - - - - - Please provide values for query parameters - - - - - CollationsEditor - - - Filter collations - - - - - Databases - - - - - Register in all databases - - - - - Register in following databases: - - - - - Implementation code: - - - - - Collation name: - - - - - Implementation language: - - - - - Collations editor - - - - - Commit all collation changes - - - - - Rollback all collation changes - - - - - Create new collation - - - - - Delete selected collation - - - - - Editing collations manual - - - - - Enter a non-empty, unique name of the collation. - - - - - Pick the implementation language. - - - - - Enter a non-empty implementation code. - - - - - Collations editor window has uncommitted modifications. - - - - - ColorButton - - - Pick a color - - - - - ColumnCollatePanel - - - Collation name: - - - - - Named constraint: - - - - - Enter a name of the constraint. - - - - - Enter a collation name. - - - - - ColumnDefaultPanel - - - Default value: - - - - - Named constraint: - - - - - Enter a default value expression. - - - - - Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. - - - - - Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. - - - - - Enter a name of the constraint. - - - - - ColumnDialog - - - Column - - - - - Name and type - - - - - Scale - - - - - Precision - - - - - Data type: - - - - - Column name: - - - - - Size: - - - - - Constraints - - - - - Unique - - - - - - - - - - - Configure - - - - - Foreign Key - - - - - Collate - - - - - Not NULL - - - - - Check condition - - - - - Primary Key - - - - - Default - - - - - Advanced mode - - - - - Add constraint - column dialog - - - - - Edit constraint - column dialog - - - - - - Delete constraint - column dialog - - - - - Move constraint up - column dialog - - - - - Move constraint down - column dialog - - - - - Add a primary key - column dialog - - - - - Add a foreign key - column dialog - - - - - Add an unique constraint - column dialog - - - - - Add a check constraint - column dialog - - - - - Add a not null constraint - column dialog - - - - - Add a collate constraint - column dialog - - - - - Add a default constraint - column dialog - - - - - Are you sure you want to delete constraint '%1'? - column dialog - - - - - Correct the constraint's configuration. - - - - - This constraint is not officially supported by SQLite 2, -but it's okay to use it. - - - - - Scale is not allowed for INTEGER PRIMARY KEY columns. - - - - - Precision cannot be defined without the scale. - - - - - Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. - - - - - INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. - - - - - Precision is not allowed for INTEGER PRIMARY KEY columns. - - - - - ColumnDialogConstraintsModel - - - Type - column dialog constraints - - - - - Name - column dialog constraints - - - - - Details - column dialog constraints - - - - - ColumnForeignKeyPanel - - - Foreign table: - - - - - Foreign column: - - - - - Reactions - - - - - Deferred foreign key - - - - - Named constraint - - - - - Constraint name - - - - - Pick the foreign table. - - - - - Pick the foreign column. - - - - - Enter a name of the constraint. - - - - - ColumnPrimaryKeyPanel - - - Autoincrement - - - - - Sort order: - - - - - Named constraint: - - - - - On conflict: - - - - - Enter a name of the constraint. - - - - - ColumnUniqueAndNotNullPanel - - - Named constraint: - - - - - On conflict: - - - - - Enter a name of the constraint. - - - - - CompleterWindow - - - Column: %1 - completer statusbar - - - - - Table: %1 - completer statusbar - - - - - Index: %1 - completer statusbar - - - - - Trigger: %1 - completer statusbar - - - - - View: %1 - completer statusbar - - - - - Database: %1 - completer statusbar - - - - - Keyword: %1 - completer statusbar - - - - - Function: %1 - completer statusbar - - - - - Operator: %1 - completer statusbar - - - - - String - completer statusbar - - - - - Number - completer statusbar - - - - - Binary data - completer statusbar - - - - - Collation: %1 - completer statusbar - - - - - Pragma function: %1 - completer statusbar - - - - - ConfigDialog - - - - Configuration - - - - - Search - - - - - General - - - - - Keyboard shortcuts - - - - - Look & feel - - - - - Style - - - - - Fonts - - - - - Colors - - - - - Plugins - - - - - Code formatters - - - - - Data browsing - - - - - Data editors - - - - - Database dialog window - - - - - <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> - - - - - Do not mark database to be "permanent" by default - - - - - <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> - - - - - Try to bypass dialog completly when dropping database file onto the list - - - - - Data browsing and editing - - - - - Number of data rows per page: - - - - - - <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> - - - - - Limit initial data column width to (in pixels): - - - - - <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> - - - - - Show column and row details tooltip in data view - - - - - <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> - - - - - Inserting new row in data grid - - - - - Before currently selected row - - - - - After currently selected row - - - - - At the end of data view - - - - - <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> - - - - - <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> - - - - - Place data tab as first tab in a Table Window - - - - - <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> - - - - - <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> - - - - - Place data tab as first tab in a View Window - - - - - Data types - - - - - Available editors: - - - - - Editors selected for this data type: - - - - - Schema editing - - - - - Number of DDL changes kept in history. - - - - - DDL history size: - - - - - SQL queries - - - - - - Number of queries kept in the history. - - - - - History size: - - - - - <p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute.</p> - - - - - Execute only the query under the cursor - - - - - Updates - - - - - Automatically check for updates at startup - - - - - Session - - - - - Restore last session (active MDI windows) after startup - - - - - Status Field - - - - - <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> - - - - - Always open Status panel when new message is printed - - - - - Filter shortcuts by name or key combination - - - - - Action - - - - - Key combination - - - - - - Language - - - - - Changing language requires application restart to take effect. - - - - - Compact layout - - - - - <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> - - - - - Use compact layout - - - - - - Database list - - - - - If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. - - - - - Sort table columns alphabetically - - - - - Expand tables node when connected to a database - - - - - <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> - - - - - Display additional labels on the list - - - - - For regular tables labels will show number of columns, indexes and triggers for each of tables. - - - - - Display labels for regular tables - - - - - Virtual tables will be marked with a 'virtual' label. - - - - - Display labels for virtual tables - - - - - Expand views node when connected to a database - - - - - If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) - - - - - Sort objects (tables, indexes, triggers and views) alphabetically - - - - - Display system tables and indexes on the list - - - - - - <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> - - - - - Number of memorized table populating configurations - - - - - Keep NULL value when entering empty value - - - - - <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> - - - - - Use DEFAULT value (if defined), when committing NULL value - - - - - Table windows - - - - - Open Table Windows with the data tab for start - - - - - View windows - - - - - Open View Windows with the data tab for start - - - - - Don't show DDL preview dialog when committing schema changes - - - - - - <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> - - - - - Number of memorized query parameters - - - - - Main window dock areas - - - - - Left and right areas occupy corners - - - - - Top and bottom areas occupy corners - - - - - Hide built-in plugins - - - - - Current style: - - - - - Preview - - - - - Enabled - - - - - Disabled - - - - - Active formatter plugin - - - - - SQL editor font - - - - - Database list font - - - - - Database list additional label font - - - - - Data view font - - - - - Status field font - - - - - SQL editor colors - - - - - Current line background - - - - - <p>SQL strings are enclosed with single quote characters.</p> - - - - - String foreground - - - - - <p>Bind parameters are placeholders for values yet to be provided by the user. They have one of the forms:</p><ul><li>:param_name</li><li>$param_name</li><li>@param_name</li><li>?</li></ul> - - - - - Bind parameter foreground - - - - - Highlighted parenthesis background - - - - - <p>BLOB values are binary values represented as hexadecimal numbers, like:</p><ul><li>X'12B4'</li><li>x'46A2F4'</li></ul> - - - - - BLOB value foreground - - - - - Regular foreground - - - - - Line numbers area background - - - - - Keyword foreground - - - - - Number foreground - - - - - Comment foreground - - - - - <p>Valid objects are name of tables, indexes, triggers, or views that exist in the SQLite database.</p> - - - - - Valid objects foreground - - - - - Data view colors - - - - - <p>Any data changes will be outlined with this color, until they're committed to the database.</p> - - - - - Uncommitted data outline color - - - - - <p>In case of error while committing data changes, the problematic cell will be outlined with this color.</p> - - - - - Commit error outline color - - - - - NULL value foreground - - - - - Deleted row background - - - - - Database list colors - - - - - <p>Additional labels are those which tell you SQLite version, number of objects deeper in the tree, etc.</p> - - - - - Additional labels foreground - - - - - Status field colors - - - - - Information message foreground - - - - - Warning message foreground - - - - - Error message foreground - - - - - Description: - plugin details - - - - - Category: - plugin details - - - - - Version: - plugin details - - - - - Author: - plugin details - - - - - Internal name: - plugin details - - - - - Dependencies: - plugin details - - - - - Conflicts: - plugin details - - - - - Plugin details - - - - - Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. - - - - - %1 (built-in) - plugins manager in configuration dialog - - - - - Details - - - - - No plugins in this category. - - - - - Add new data type - - - - - Rename selected data type - - - - - Delete selected data type - - - - - Help for configuring data type editors - - - - - ConstraintCheckPanel - - - The condition - - - - - Named constraint: - - - - - On conflict - - - - - Enter a valid condition. - - - - - Enter a name of the constraint. - - - - - ConstraintDialog - - - New constraint - constraint dialog - - - - - Create - constraint dialog - - - - - Edit constraint - dialog window - - - - - Apply - constraint dialog - - - - - Primary key - table constraints - - - - - Foreign key - table constraints - - - - - Unique - table constraints - - - - - Not NULL - table constraints - - - - - Check - table constraints - - - - - Collate - table constraints - - - - - Default - table constraints - - - - - ConstraintTabModel - - - Table - table constraints - - - - - Column (%1) - table constraints - - - - - Scope - table constraints - - - - - Type - table constraints - - - - - Details - table constraints - - - - - Name - table constraints - - - - - CssDebugDialog - - - SQLiteStudio CSS console - - - - - DataView - - - Filter data - data view - - - - - Grid view - - - - - Form view - - - - - Refresh table data - data view - - - - - First page - data view - - - - - Previous page - data view - - - - - Next page - data view - - - - - Last page - data view - - - - - Filter - - - - - Hit Enter key or press "Apply filter" button on toolbar to apply new value. - - - - - Show filter inputs per column - data view - - - - - Apply filter - data view - - - - - Commit changes for selected cells - data view - - - - - Rollback changes for selected cells - data view - - - - - Show grid view of results - sql editor - - - - - Show form view of results - sql editor - - - - - Filter by text - data view - - - - - Filter by the Regular Expression - data view - - - - - Filter by SQL expression - data view - - - - - Tabs on top - data view - - - - - Tabs at bottom - data view - - - - - Place new rows above selected row - data view - - - - - Place new rows below selected row - data view - - - - - Place new rows at the end of the data view - data view - - - - - Total number of rows is being counted. -Browsing other pages will be possible after the row counting is done. - - - - - Row: %1 - - - - - DbConverterDialog - - - Convert database - - - - - Source database - - - - - Source database version: - - - - - Target database - - - - - Target version: - - - - - This is the file that will be created as a result of the conversion. - - - - - Target file: - - - - - Name of the new database: - - - - - This is the name that the converted database will be added to SQLiteStudio with. - - - - - Select source database - - - - - Enter valid and writable file path. - - - - - Entered file exists and will be overwritten. - - - - - Enter a not empty, unique name (as in the list of databases on the left). - - - - - No valid target dialect available. Conversion not possible. - - - - - Select valid target dialect. - - - - - Database %1 has been successfully converted and now is available under new name: %2 - - - - - SQL statements conversion - - - - - Following error occurred while converting SQL statements to the target SQLite version: - - - - - Would you like to ignore those errors and proceed? - - - - - DbDialog - - - Database - - - - - Database type - - - - - Database driver - - - - - - File - - - - - Create new database file - - - - - Name (on the list) - - - - - Options - - - - - <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> - aasfd - - - - - Permanent (keep it in configuration) - - - - - Test connection - - - - - Browse for existing database file on local computer - - - - - Browse - - - - - Enter an unique database name. - - - - - This name is already in use. Please enter unique name. - - - - - <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> - - - - - Enter a database file path. - - - - - This database is already on the list under name: %1 - - - - - Select a database type. - - - - - DbObjectDialogs - - - Delete table - - - - - Are you sure you want to delete table %1? - - - - - Delete index - - - - - Are you sure you want to delete index %1? - - - - - Delete trigger - - - - - Are you sure you want to delete trigger %1? - - - - - Delete view - - - - - Are you sure you want to delete view %1? - - - - - - Error while dropping %1: %2 - - - - - Delete objects - - - - - Are you sure you want to delete following objects: -%1 - - - - - Cannot start transaction. Details: %1 - - - - - Cannot commit transaction. Details: %1 - - - - - DbTree - - - Databases - - - - - Filter by name - - - - - Copy - - - - - Paste - - - - - Select all - - - - - Create a group - - - - - Delete the group - - - - - Rename the group - - - - - Import - - - - - Export the table - - - - - Import into the table - - - - - Populate table - - - - - Create similar table - - - - - Reset autoincrement sequence - - - - - Add a column - - - - - Edit the column - - - - - Delete the column - - - - - Delete selected items - - - - - Clear filter - - - - - - Erase table data - - - - - - Database - - - - - Grouping - - - - - Generate query for table - - - - - - Create group - - - - - Group name - - - - - Entry with name %1 already exists in group %2. - - - - - Delete group - - - - - Are you sure you want to delete group %1? -All objects from this group will be moved to parent group. - - - - - Are you sure you want to remove database '%1' from the list? - - - - - Are you sure you want to remove following databases from the list: -%1 - - - - - Remove database - - - - - Vacuum (%1) - - - - - Autoincrement value for table '%1' has been reset successfully. - - - - - Are you sure you want to delete all data from table(s): %1? - - - - - - Cannot import, because no import plugin is loaded. - - - - - Execution from file cancelled. Any queries executed so far have been rolled back. - - - - - &Add a database - - - - - &Edit the database - - - - - &Remove the database - - - - - &Connect to the database - - - - - &Disconnect from the database - - - - - &Export the database - - - - - Con&vert database type - - - - - Vac&uum - - - - - &Integrity check - - - - - Create a &table - - - - - Edit the t&able - - - - - Delete the ta&ble - - - - - Create an &index - - - - - Edit the i&ndex - - - - - Delete the in&dex - - - - - Create a trig&ger - - - - - Edit the trigg&er - - - - - Delete the trigge&r - - - - - Create a &view - - - - - Edit the v&iew - - - - - Delete the vi&ew - - - - - &Refresh all database schemas - - - - - Re&fresh selected database schema - - - - - Open file's directory - - - - - Execute SQL from file - - - - - - Cannot export, because no export plugin is loaded. - - - - - Integrity check (%1) - - - - - Reset autoincrement - - - - - Are you sure you want to reset autoincrement value for table '%1'? - - - - - An error occurred while trying to reset autoincrement value for table '%1': %2 - - - - - An error occurred while trying to delete data from table '%1': %2 - - - - - All data has been deleted for table '%1'. - - - - - Following objects will be deleted: %1. - - - - - Following databases will be removed from list: %1. - - - - - Remainig objects from deleted group will be moved in place where the group used to be. - - - - - %1<br><br>Are you sure you want to continue? - - - - - Delete objects - - - - - Could not execute SQL, because application has failed to start transaction: %1 - - - - - Could not open file '%1' for reading: %2 - - - - - Could not execute SQL, because application has failed to commit the transaction: %1 - - - - - Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. - - - - - Finished executing %1 queries in %2 seconds. - - - - - Could not execute SQL due to error. - - - - - DbTreeItemDelegate - - - error - dbtree labels - - - - - (system table) - database tree label - - - - - (virtual) - virtual table label - - - - - (system index) - database tree label - - - - - DbTreeModel - - - Database: %1 - dbtree tooltip - - - - - Version: - dbtree tooltip - - - - - File size: - dbtree tooltip - - - - - Encoding: - dbtree tooltip - - - - - Error: - dbtree tooltip - - - - - Table : %1 - dbtree tooltip - - - - - Columns (%1): - dbtree tooltip - - - - - Indexes (%1): - dbtree tooltip - - - - - Triggers (%1): - dbtree tooltip - - - - - Copy - - - - - Move - - - - - Include data - - - - - Include indexes - - - - - Include triggers - - - - - Abort - - - - - Could not add dropped database file '%1' automatically. Manual setup is necessary. - - - - - Referenced tables - - - - - Do you want to include following referenced tables as well: -%1 - - - - - Name conflict - - - - - Following object already exists in the target database. -Please enter new, unique name, or press '%1' to abort the operation: - - - - - SQL statements conversion - - - - - Following error occurred while converting SQL statements to the target SQLite version: - - - - - Would you like to ignore those errors and proceed? - - - - - DdlHistoryWindow - - - Filter by database: - - - - - -- Queries executed on database %1 (%2) --- Date and time of execution: %3 -%4 - - - - - DDL history - - - - - DdlPreviewDialog - - - Queries to be executed - - - - - Don't show again - - - - - DebugConsole - - - SQLiteStudio Debug Console - - - - - EditorWindow - - - Query - - - - - History - - - - - Results in the separate tab - - - - - Results below the query - - - - - - SQL editor %1 - - - - - Results - - - - - Execute query - - - - - Explain query - - - - - Clear execution history - sql editor - - - - - Export results - sql editor - - - - - Create view from query - sql editor - - - - - Previous database - - - - - Next database - - - - - Show next tab - sql editor - - - - - Show previous tab - sql editor - - - - - Focus results below - sql editor - - - - - Focus SQL editor above - sql editor - - - - - Delete selected SQL history entries - sql editor - - - - - Active database (%1/%2) - - - - - Query finished in %1 second(s). Rows affected: %2 - - - - - Query finished in %1 second(s). - - - - - Clear execution history - - - - - Are you sure you want to erase the entire SQL execution history? This cannot be undone. - - - - - Cannot export, because no export plugin is loaded. - - - - - No database selected in the SQL editor. Cannot create a view for unknown database. - - - - - Editor window "%1" has uncommitted data. - - - - - ErrorsConfirmDialog - - - Errors - - - - - Following errors occured: - - - - - Would you like to proceed? - - - - - ExecFromFileDialog - - - Execute SQL from file - - - - - Input file - - - - - Path to file - - - - - Browse for file - - - - - Options - - - - - File encoding - - - - - Skip failing SQL statements - - - - - SQL scripts (*.sql);;All files (*) - - - - - Execute SQL file - - - - - Please provide file to be executed. - - - - - Provided file does not exist or cannot be read. - - - - - ExportDialog - - - Export - - - - - What do you want to export? - - - - - A database - - - - - A single table - - - - - Query results - - - - - Table to export - - - - - Database - - - - - Table - - - - - Options - - - - - When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. - - - - - Export table data - - - - - Export table indexes - - - - - Export table triggers - - - - - Note, that exporting table indexes and triggers may be unsupported by some output formats. - - - - - Select database objects to export - - - - - Export data from tables - - - - - Select all - - - - - Deselect all - - - - - - Database: - - - - - Query to export results for - - - - - Query to be executed for results: - - - - - Export format and options - - - - - Export format - - - - - Output - - - - - Exported file path - - - - - Clipboard - - - - - File - - - - - Exported text encoding: - - - - - Export format options - - - - - Cancel - - - - - - - Select database to export. - - - - - Select table to export. - - - - - Enter valid query to export. - - - - - Select at least one object to export. - - - - - You must provide a file name to export to. - - - - - Path you provided is an existing directory. You cannot overwrite it. - - - - - The directory '%1' does not exist. - - - - - The file '%1' exists and will be overwritten. - - - - - All files (*) - - - - - Pick file to export to - - - - - Internal error during export. This is a bug. Please report it. - - - - - FileExecErrorsDialog - - - Execution errors - - - - - Following errors were encountered during execution of SQL statements from the file: - - - - - SQL - - - - - Error - - - - - Statements that were executed successfully were commited. - - - - - Statements that were executed successfully were rolled back. - - - - - FontEdit - - - Choose font - font configuration - - - - - Form - - - Active SQL formatter plugin - - - - - FormView - - - Commit row - form view - - - - - Rollback row - form view - - - - - First row - form view - - - - - Previous row - form view - - - - - Next row - form view - - - - - Last row - form view - - - - - Insert new row - form view - - - - - Delete current row - form view - - - - - FunctionsEditor - - - Filter funtions - - - - - Input arguments - - - - - Undefined - - - - - Databases - - - - - Register in all databases - - - - - Register in following databases: - - - - - Type: - - - - - Function name: - - - - - Implementation language: - - - - - Initialization code: - - - - - - Function implementation code: - - - - - Final step implementation code: - - - - - SQL function editor - - - - - Commit all function changes - - - - - Rollback all function changes - - - - - Create new function - - - - - Delete selected function - - - - - Custom SQL functions manual - - - - - Add function argument - - - - - Rename function argument - - - - - Delete function argument - - - - - Move function argument up - - - - - Move function argument down - - - - - Scalar - - - - - Aggregate - - - - - Enter a non-empty, unique name of the function. - - - - - Pick the implementation language. - - - - - Per step code: - - - - - Enter a non-empty implementation code. - - - - - argument - new function argument name in function editor window - - - - - Functions editor window has uncommitted modifications. - - - - - ImportDialog - - - Import data - - - - - Table to import to - - - - - Table - - - - - Database - - - - - Data source to import from - - - - - Data source type - - - - - Options - - - - - Text encoding: - - - - - Input file: - - - - - <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> - - - - - Ignore errors - - - - - Data source options - - - - - Cancel - - - - - If you type table name that doesn't exist, it will be created. - - - - - Enter the table name - - - - - Select import plugin. - - - - - You must provide a file to import from. - - - - - The file '%1' does not exist. - - - - - Path you provided is a directory. A regular file is required. - - - - - Pick file to import from - - - - - IndexDialog - - - - Index - - - - - On table: - - - - - Index name: - - - - - Partial index condition - - - - - Unique index - - - - - Column - - - - - Collation - - - - - Sort - - - - - Delete selected indexed expression - - - - - Moves selected index column up in the order, making it more significant in the index. - - - - - Moves selected index column down in the order, making it less significant in the index. - - - - - Edit selected indexed expression - - - - - Add indexed expression - - - - - DDL - - - - - Tried to open index dialog for closed or inexisting database. - - - - - Could not process index %1 correctly. Unable to open an index dialog. - - - - - Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. - - - - - Pick the table for the index. - - - - - Select at least one column. - - - - - Enter a valid condition. - - - - - default - index dialog - - - - - Sort order - table constraints - - - - - - Error - index dialog - - - - - Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? - - - - - An error occurred while executing SQL statements: -%1 - - - - - IndexExprColumnDialog - - - Indexed expression - - - - - Expression to index - - - - - This expression is already indexed by the index. - - - - - Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. - - - - - Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. - - - - - It's forbidden to use 'SELECT' statements in indexed expressions. - - - - - Enter an indexed expression. - - - - - Invalid expression. - - - - - LanguageDialog - - - Language - - - - - Please choose language: - - - - - MainWindow - - - Database toolbar - - - - - Structure toolbar - - - - - Tools - - - - - Window list - - - - - View toolbar - - - - - Configuration widgets - - - - - Syntax highlighting engines - - - - - Data editors - - - - - Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. - - - - - Running in debug mode. Debug messages are printed to the standard output. - - - - - You need to restart application to make the language change take effect. - - - - - Next window - - - - - Previous window - - - - - Hide status field - - - - - Open Debug Console - - - - - Open CSS Console - - - - - Bugs and feature &requests - - - - - Window list - menubar view menu - - - - - Open SQL &editor - - - - - Open DDL &history - - - - - Open SQL &functions editor - - - - - Open &collations editor - - - - - Open ex&tension manager - - - - - &Import - - - - - E&xport - - - - - Open confi&guration dialog - - - - - &Tile windows - - - - - Tile windows &horizontally - - - - - Tile windows &vertically - - - - - &Cascade windows - - - - - Close selected &window - - - - - Close all windows &but selected - - - - - Close &all windows - - - - - Re&store recently closed window - - - - - &Rename selected window - - - - - Report a &bug - - - - - Propose a new &feature - - - - - &About - - - - - &Licenses - - - - - Open home &page - - - - - Open fo&rum page - - - - - User &Manual - - - - - SQLite &documentation - - - - - Check for &updates - - - - - &Database - menubar - - - - - &Structure - menubar - - - - - &View - menubar - - - - - &Tools - menubar - - - - - &Help - - - - - Could not set style: %1 - main window - - - - - Cannot export, because no export plugin is loaded. - - - - - Cannot import, because no import plugin is loaded. - - - - - Rename window - - - - - Enter new name for the window: - - - - - New updates are available. <a href="%1">Click here for details</a>. - - - - - You're running the most recent version. No updates are available. - - - - - Database passed in command line parameters (%1) was already on the list under name: %2 - - - - - Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 - - - - - Could not add database %1 to list. - - - - - MdiWindow - - - Uncommitted changes - - - - - Close anyway - - - - - Don't close - - - - - MultiEditor - - - Null value - multieditor - - - - - Configure editors for this data type - - - - - Open another tab - - - - - Data editor plugin '%1' not loaded, while it is defined for editing '%1' data type. - - - - - Deleted - multieditor - - - - - Read only - multieditor - - - - - MultiEditorBoolPlugin - - - Boolean - - - - - MultiEditorDatePlugin - - - Date - - - - - MultiEditorDateTimePlugin - - - Date & time - - - - - MultiEditorHexPlugin - - - Hex - - - - - MultiEditorNumericPlugin - - - Number - numeric multi editor tab name - - - - - MultiEditorText - - - Tab changes focus - - - - - Cut - - - - - Copy - - - - - Paste - - - - - Delete - - - - - Undo - - - - - Redo - - - - - MultiEditorTextPlugin - - - Text - - - - - MultiEditorTimePlugin - - - Time - - - - - NewConstraintDialog - - - New constraint - - - - - - Primary Key - new constraint dialog - - - - - - Foreign Key - new constraint dialog - - - - - - Unique - new constraint dialog - - - - - - Check - new constraint dialog - - - - - Not NULL - new constraint dialog - - - - - Collate - new constraint dialog - - - - - Default - new constraint dialog - - - - - NewVersionDialog - - - SQLiteStudio updates - - - - - New updates are available! - - - - - Component - - - - - This application will be closed and the update installer will start to download and install all the updates. - - - - - Update version - - - - - Check for updates on startup - - - - - Update to new version! - - - - - Not now. - - - - - Don't install the update and close this window. - - - - - PopulateConfigDialog - - - Populating configuration - - - - - Configuring <b>%1</b> for column <b>%2</b> - - - - - PopulateDialog - - - Populate table - - - - - Database - - - - - Table - - - - - Columns - - - - - Number of rows to populate: - - - - - Populate - populate dialog button - - - - - Abort - - - - - Configure - - - - - Populating configuration for this column is invalid or incomplete. - - - - - Select database with table to populate - - - - - Select table to populate - - - - - You have to select at least one column. - - - - - QObject - - - Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). - - - - - The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. - - - - - Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. - - - - - Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. - - - - - Cannot edit results of query other than %1. - - - - - Cannot edit columns that are result of aggregated %1 statements. - - - - - Cannot edit columns that are result of %1 statement. - - - - - Cannot edit columns that are result of common table expression statement (%1). - - - - - - - - on conflict: %1 - data view tooltip - - - - - references table %1, column %2 - data view tooltip - - - - - condition: %1 - data view tooltip - - - - - collation name: %1 - data view tooltip - - - - - Data grid view - - - - - Copy cell(s) contents to clipboard - - - - - Copy cell(s) contents together with header to clipboard - - - - - Paste cell(s) contents from clipboard - - - - - Set empty value to selected cell(s) - - - - - Set NULL value to selected cell(s) - - - - - Commit changes to cell(s) contents - - - - - Rollback changes to cell(s) contents - - - - - Delete selected data row - - - - - Insert new data row - - - - - Open contents of selected cell in a separate editor - - - - - Total pages available: %1 - - - - - Total rows loaded: %1 - - - - - Data view (both grid and form) - - - - - Refresh data - - - - - Switch to grid view of the data - - - - - Switch to form view of the data - - - - - Database list - - - - - Delete selected item - - - - - Clear filter contents - - - - - Refresh schema - - - - - Refresh all schemas - - - - - Add database - - - - - Select all items - - - - - Copy selected item(s) - - - - - - - Paste from clipboard - - - - - Tables - - - - - Indexes - - - - - Triggers - - - - - Views - - - - - Columns - - - - - Data form view - - - - - Commit changes for current row - - - - - Rollback changes for current row - - - - - Go to first row on current page - - - - - Go to next row - - - - - Go to previous row - - - - - Go to last row on current page - - - - - Insert new row - - - - - Delete current row - - - - - Main window - - - - - Open SQL editor - - - - - Previous window - - - - - Next window - - - - - Hide status area - - - - - Open configuration dialog - - - - - Open Debug Console - - - - - Open CSS Console - - - - - Cell text value editor - - - - - - Cut selected text - - - - - - Copy selected text - - - - - - Delete selected text - - - - - - Undo - - - - - - Redo - - - - - SQL editor input field - - - - - Select whole editor contents - - - - - Save contents into a file - - - - - Load contents from a file - - - - - Find in text - - - - - Find next - - - - - Find previous - - - - - Replace in text - - - - - Delete current line - - - - - Request code assistant - - - - - Format contents - - - - - Move selected block of text one line down - - - - - Move selected block of text one line up - - - - - Copy selected block of text and paste it a line below - - - - - Copy selected block of text and paste it a line above - - - - - Toggle comment - - - - - All SQLite databases - - - - - All files - - - - - - Database file - - - - - SQL editor window - - - - - Execute query - - - - - Execute "%1" query - - - - - Switch current working database to previous on the list - - - - - Switch current working database to next on the list - - - - - Go to next editor tab - - - - - Go to previous editor tab - - - - - Move keyboard input focus to the results view below - - - - - Move keyboard input focus to the SQL editor above - - - - - Delete selected SQL history entries - - - - - Table window - - - - - Refresh table structure - - - - - Add new column - - - - - Edit selected column - - - - - Delete selected column - - - - - Export table data - - - - - Import data to the table - - - - - Add new table constraint - - - - - Edit selected table constraint - - - - - Delete selected table constraint - - - - - Refresh table index list - - - - - Add new index - - - - - Edit selected index - - - - - Delete selected index - - - - - Refresh table trigger list - - - - - - Add new trigger - - - - - - Edit selected trigger - - - - - - Delete selected trigger - - - - - - Go to next tab - - - - - - Go to previous tab - - - - - A view window - - - - - Refresh view trigger list - - - - - QuitConfirmDialog - - - Uncommitted changes - - - - - Are you sure you want to quit the application? - -Following items are pending: - - - - - SearchTextDialog - - - Find or replace - - - - - Find: - - - - - Case sensitive - - - - - Search backwards - - - - - Regular expression matching - - - - - Replace && -find next - - - - - Replace with: - - - - - Replace all - - - - - Find - - - - - SortDialog - - - Sort by columns - - - - - - Column - - - - - - Order - - - - - Sort by: %1 - - - - - Move column up - - - - - Move column down - - - - - SqlEditor - - - Cut - sql editor - - - - - Copy - sql editor - - - - - Paste - sql editor - - - - - Delete - sql editor - - - - - Select all - sql editor - - - - - Undo - sql editor - - - - - Redo - sql editor - - - - - Complete - sql editor - - - - - Format SQL - sql editor - - - - - Save SQL to file - sql editor - - - - - Select file to save SQL - sql editor - - - - - Load SQL from file - sql editor - - - - - Delete line - sql editor - - - - - Move block down - sql editor - - - - - Move block up - sql editor - - - - - Copy block down - sql editor - - - - - Copy up down - sql editor - - - - - Find - sql editor - - - - - Find next - sql editor - - - - - Find previous - sql editor - - - - - Replace - sql editor - - - - - Toggle comment - sql editor - - - - - Could not open file '%1' for writing: %2 - - - - - Saved SQL contents to file: %1 - - - - - Syntax completion can be used only when a valid database is set for the SQL editor. - - - - - Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. - - - - - Save to file - - - - - SQL scripts (*.sql);;All files (*) - - - - - Open file - - - - - Could not open file '%1' for reading: %2 - - - - - Reached the end of document. Hit the find again to restart the search. - - - - - SqlQueryItem - - - Column: - data view tooltip - - - - - Data type: - data view - - - - - Table: - data view tooltip - - - - - Constraints: - data view tooltip - - - - - Cannot load the data for a cell that refers to the already closed database. - - - - - SqlQueryItemDelegate - - - The row is marked for deletion. - - - - - - - - - Cannot edit this cell. Details: %1 - - - - - - Structure of this table has changed since last data was loaded. Reload the data to proceed. - - - - - Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). - - - - - Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. - - - - - SqlQueryModel - - - - Only one query can be executed simultaneously. - - - - - Cannot commit the data for a cell that refers to the already closed database. - - - - - Could not begin transaction on the database. Details: %1 - - - - - An error occurred while rolling back the transaction: %1 - - - - - Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. - - - - - Uncommitted data - - - - - There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. - - - - - An error occurred while committing the transaction: %1 - - - - - An error occurred while committing the data: %1 - - - - - Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. - - - - - - Error while executing SQL query on database '%1': %2 - - - - - Error while loading query results: %1 - - - - - Insert multiple rows - - - - - Number of rows to insert: - - - - - SqlQueryView - - - Go to referenced row in... - - - - - Copy - - - - - Copy as... - - - - - Paste - - - - - Paste as... - - - - - Set NULL values - - - - - Erase values - - - - - Edit value in editor - - - - - Commit - - - - - Copy with headers - - - - - Rollback - - - - - Commit selected cells - - - - - Rollback selected cells - - - - - Define columns to sort by - - - - - Remove custom sorting - - - - - Insert row - - - - - Insert multiple rows - - - - - Delete selected row - - - - - Show value in a viewer - - - - - Generate query for selected cells - - - - - No items selected to paste clipboard contents to. - - - - - Go to referenced row in table '%1' - - - - - table '%1' - - - - - Referenced row (%1) - - - - - Trim pasted text? - - - - - The pasted text contains leading or trailing white space. Trim it automatically? - - - - - Edit value - - - - - SqlTableModel - - - Error while committing new row: %1 - - - - - Error while deleting row from table %1: %2 - - - - - SqliteExtensionEditor - - - Filter extensions - - - - - Leave empty to use default function - - - - - Extension file - - - - - Initialization function - - - - - Databases - - - - - Register in all databases - - - - - Register in following databases: - - - - - Extension manager window has uncommitted modifications. - - - - - Extension manager - - - - - Commit all extension changes - - - - - Rollback all extension changes - - - - - Add new extension - - - - - Remove selected extension - - - - - Editing extensions manual - - - - - File with given path does not exist or is not readable. - - - - - Unable to load extension: %1 - - - - - Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. - - - - - Dynamic link libraries (*.dll);;All files (*) - - - - - Shared objects (*.so);;All files (*) - - - - - Dynamic libraries (*.dylib);;All files (*) - - - - - All files (*) - - - - - Open file - - - - - StatusField - - - Status - - - - - Copy - - - - - Clear - - - - - TableConstraintsModel - - - Type - table constraints - - - - - Details - table constraints - - - - - Name - table constraints - - - - - TableForeignKeyPanel - - - Foreign table: - - - - - SQLite 2 does not support foreign keys officially, -but it's okay to use them anyway. - - - - - Columns - - - - - Local column - - - - - Foreign column - - - - - Reactions - - - - - Deferred foreign key - - - - - Named constraint - - - - - Constraint name - - - - - Pick the foreign column. - - - - - Pick the foreign table. - - - - - Select at least one foreign column. - - - - - Enter a name of the constraint. - - - - - Foreign column - table constraints - - - - - TablePrimaryKeyAndUniquePanel - - - Columns - - - - - Column - - - - - Collation - - - - - Sort - - - - - Valid only for a single column with INTEGER data type - - - - - Autoincrement - - - - - Named constraint - - - - - Constraint name - - - - - On conflict - - - - - Collate - table constraints - - - - - Sort order - table constraints - - - - - Select at least one column. - - - - - Enter a name of the constraint. - - - - - TableStructureModel - - - Name - table structure columns - - - - - Data type - table structure columns - - - - - Primary -Key - table structure columns - - - - - Foreign -Key - table structure columns - - - - - Unique - table structure columns - - - - - Check - table structure columns - - - - - Not -NULL - table structure columns - - - - - Collate - table structure columns - - - - - Default value - table structure columns - - - - - TableWindow - - - Structure - - - - - Table name: - - - - - - Data - - - - - Constraints - - - - - Indexes - - - - - Triggers - - - - - DDL - - - - - Export table - table window - - - - - Import data to table - table window - - - - - Populate table - table window - - - - - Refresh structure - table window - - - - - Commit structure changes - table window - - - - - Rollback structure changes - table window - - - - - Add column - table window - - - - - Edit column - table window - - - - - - Delete column - table window - - - - - Move column up - table window - - - - - Move column down - table window - - - - - Create similar table - table window - - - - - Reset autoincrement value - table window - - - - - Add table constraint - table window - - - - - Edit table constraint - table window - - - - - Delete table constraint - table window - - - - - Move table constraint up - table window - - - - - Move table constraint down - table window - - - - - Add table primary key - table window - - - - - Add table foreign key - table window - - - - - Add table unique constraint - table window - - - - - Add table check constraint - table window - - - - - Refresh index list - table window - - - - - Create index - table window - - - - - Edit index - table window - - - - - Delete index - table window - - - - - Refresh trigger list - table window - - - - - Create trigger - table window - - - - - Edit trigger - table window - - - - - Delete trigger - table window - - - - - Are you sure you want to delete column '%1'? - table window - - - - - Following problems will take place while modifying the table. -Would you like to proceed? - table window - - - - - Table modification - table window - - - - - Could not load data for table %1. Error details: %2 - - - - - Could not process the %1 table correctly. Unable to open a table window. - - - - - Could not restore window %1, because no database or table was stored in session for this window. - - - - - Could not restore window '%1', because no database or table was stored in session for this window. - - - - - Could not restore window '%1', because database %2 could not be resolved. - - - - - Could not restore window '%1'', because the table %2 doesn't exist in the database %3. - - - - - - New table %1 - - - - - Committed changes for table '%1' successfully. - - - - - Committed changes for table '%1' (named before '%2') successfully. - - - - - Autoincrement value for table '%1' has been reset successfully. - - - - - Uncommitted changes - - - - - There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. -Do you want to commit the structure, or do you want to go back to the structure tab? - - - - - Table window "%1" has uncommitted structure modifications and data. - - - - - Table window "%1" has uncommitted data. - - - - - Table window "%1" has uncommitted structure modifications. - - - - - Could not commit table structure. Error message: %1 - table window - - - - - Reset autoincrement - - - - - Are you sure you want to reset autoincrement value for table '%1'? - - - - - An error occurred while trying to reset autoincrement value for table '%1': %2 - - - - - Empty name - - - - - A blank name for the table is allowed in SQLite, but it is not recommended. -Are you sure you want to create a table with blank name? - - - - - Cannot create a table without at least one column. - - - - - Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. - - - - - Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. - - - - - Are you sure you want to delete table constraint '%1'? - table window - - - - - Delete constraint - table window - - - - - Cannot export, because no export plugin is loaded. - - - - - Cannot import, because no import plugin is loaded. - - - - - Go back to structure tab - - - - - Commit modifications and browse data. - - - - - Name - table window indexes - - - - - Unique - table window indexes - - - - - Columns - table window indexes - - - - - Partial index condition - table window indexes - - - - - Name - table window triggers - - - - - Event - table window triggers - - - - - Condition - table window triggers - - - - - Details - table window triggers - - - - - TriggerColumnsDialog - - - Trigger columns - - - - - Triggering columns: - - - - - Select all - - - - - Deselect all - - - - - TriggerDialog - - - - Trigger - - - - - On table: - - - - - Action: - - - - - - <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> - - - - - Pre-condition: - - - - - The scope is still not fully supported by the SQLite database. - - - - - Trigger name: - - - - - When: - - - - - List of columns for UPDATE OF action. - - - - - Scope: - - - - - Code: - - - - - Trigger statements to be executed. - - - - - DDL - - - - - On view: - - - - - Could not process trigger %1 correctly. Unable to open a trigger dialog. - - - - - Enter a valid condition. - - - - - Enter a valid trigger code. - - - - - Error - trigger dialog - - - - - An error occurred while executing SQL statements: -%1 - - - - - VersionConvertSummaryDialog - - - Database version convert - - - - - Following changes to the SQL statements will be made: - - - - - Before - - - - - After - - - - - ViewWindow - - - Query - - - - - View name: - - - - - Output column names - - - - - - Data - - - - - Triggers - - - - - DDL - - - - - - Could not restore window '%1', because no database or view was stored in session for this window. - - - - - Could not restore window '%1', because database %2 could not be resolved. - - - - - Could not restore window '%1', because database %2 could not be open. - - - - - Could not restore window '%1', because the view %2 doesn't exist in the database %3. - - - - - - New view %1 - - - - - Refresh the view - view window - - - - - Commit the view changes - view window - - - - - Rollback the view changes - view window - - - - - Explicit column names - - - - - Generate output column names automatically basing on result columns of the view. - - - - - Add column - view window - - - - - Edit column - view window - - - - - Delete column - view window - - - - - Move column up - view window - - - - - Move column down - view window - - - - - Refresh trigger list - view window - - - - - Create new trigger - view window - - - - - Edit selected trigger - view window - - - - - Delete selected trigger - view window - - - - - View window "%1" has uncommitted structure modifications and data. - - - - - View window "%1" has uncommitted data. - - - - - View window "%1" has uncommitted structure modifications. - - - - - Uncommitted changes - - - - - There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. -Do you want to commit the structure, or do you want to go back to the structure tab? - - - - - Committed changes for view '%1' successfully. - - - - - Committed changes for view '%1' (named before '%2') successfully. - - - - - Could not load data for view %1. Error details: %2 - - - - - Go back to structure tab - - - - - Commit modifications and browse data. - - - - - Could not commit view changes. Error message: %1 - view window - - - - - Override columns - - - - - Currently defined columns will be overriden. Do you want to continue? - - - - - Could not determinate columns returned from the view. The query is problably incomplete or contains errors. - - - - - Name - view window triggers - - - - - Instead of - view window triggers - - - - - Condition - view window triggers - - - - - Details - table window triggers - - - - - Could not process the %1 view correctly. Unable to open a view window. - - - - - Empty name - - - - - A blank name for the view is allowed in SQLite, but it is not recommended. -Are you sure you want to create a view with blank name? - - - - - The SELECT statement could not be parsed. Please correct the query and retry. -Details: %1 - - - - - The view could not be modified due to internal SQLiteStudio error. Please report this! - - - - - The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. - - - - - Following problems will take place while modifying the view. -Would you like to proceed? - view window - - - - - View modification - view window - - - - - WidgetCover - - - Interrupt - - - - diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_it_IT.ts b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_it_IT.ts new file mode 100644 index 0000000..987cdaf --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_it_IT.ts @@ -0,0 +1,7108 @@ + + + + + AboutDialog + + + About SQLiteStudio and licenses + Informazioni su SQLiteStudio e licenze + + + + About + Circa + + + + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Gestore di database SQLite gratuito, open-source e cross-platform.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Autore e manutentore attivo:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + + + + Licenses + Licenze + + + + Environment + Ambiente + + + + Icon directories + Cartelle delle icone + + + + Form directories + Cartelle dei moduli + + + + SQLite extension directories + Cartella estensioni SQLite + + + + Plugin directories + Cartella dei plugin + + + + Configuration directory + Cartella di configurazione + + + + Application directory + Cartella dell'applicazione + + + + Qt version: + Versione Qt: + + + + SQLite 3 version: + Versione SQLite 3: + + + + Portable distribution. + Distribuzione portabile. + + + + MacOS X application bundle distribution. + MacOS X application bundle distribution. + + + + Operating system managed distribution. + Sistema operativo di distribuzione gestita. + + + + <h3>Table of contents:</h3><ol>%2</ol> + <h3>Tabella dei contenuti:</h3><ol>%2</ol> + + + + BindParamsDialog + + + Query parameters + Parametri query + + + + Please provide values for query parameters + Si prega di fornire valori per i parametri di query + + + + CodeSnippetEditor + + + Filter snippets + Filtro snippet + + + + + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + <html><head/><body><p>Scorciatoia opzionale, che funzionerà solo nel contesto della finestra assistente di codice attiva. Consente all'utente di utilizzare combinazioni di tasti, che altrimenti sarebbero in conflitto con altre scorciatoie. Avere la finestra assistente di codice come contesto necessario rende la scelta delle chiavi più versatile.</p></body></html> + + + + + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + <html><head/><body><p>Il nome dello snippet verrà visualizzato nell'assistente di codice. Per accedere alla lista degli snippet l'utente deve premere la scorciatoia del assistente di codice due volte.</p></body></html> + + + + Snippet name + Nome Snippet + + + + Code assistant shortcut + Scorciatoia dell'assistente del codice + + + + Snippet code + Codice Snippet + + + + Code Snippets editor window has uncommitted modifications. + La finestra dell'editor di Snippet di codice contiene modifiche non salvate. + + + + Code Snippets editor + Editor Snippet di codice + + + + Commit all snippet changes + Commit all snippet changes + + + + Rollback all snippet changes + Rollback all snippet changes + + + + Create new snippet + Create new snippet + + + + Delete selected snippet + Delete selected snippet + + + + Move the snippet up + Sposta lo snippet in alto + + + + Move the snippet down + Sposta lo snippet in basso + + + + Code snippets manual + Manuale snippet di codice + + + + Enter a non-empty, unique name of the snippet. + Inserisci un nome non vuoto ed univoco dello snippet. + + + + Enter a non-empty snippet content. + Inserisci un contenuto di snippet non vuoto. + + + + This hotkey is not unique in context of a code assistant. + Questo tasto di scelta rapida non è univoco nel contesto di un assistente di codice. + + + + CollationsEditor + + + Filter collations + Filtro collations + + + + Databases + Database + + + + Register in all databases + Registra in tutti i database + + + + Register in following databases: + Registra nei seguenti database: + + + + Implementation code: + Codice di implementazione: + + + + Collation name: + Nome collation: + + + + Implementation language: + Linguaggio di implementazione: + + + + Collations editor + Editor collations + + + + Commit all collation changes + Esegui tutte le modifiche sulla collazione + + + + Rollback all collation changes + Ripristina tutte le modiche della collation + + + + Create new collation + Crea nuova collation + + + + Delete selected collation + Cancella collation selezionata + + + + Editing collations manual + Modifica manuale delle collations + + + + Enter a non-empty, unique name of the collation. + Inserisci un nome non vuoto e univoco della collation. + + + + Pick the implementation language. + Scegli il linguaggio di implementazione. + + + + Enter a non-empty implementation code. + Inserisci un codice di implementazione non vuoto. + + + + Collations editor window has uncommitted modifications. + La finestra dell'editor collations ha modifiche non registrate. + + + + ColorButton + + + Pick a color + Scegli un colore + + + + ColumnCollatePanel + + + Collation name: + Nome della collation: + + + + Named constraint: + Vincolo nominato: + + + + Enter a name of the constraint. + Inserire un nome per il vincolo. + + + + Enter a collation name. + Inserisci un nome di collazione. + + + + ColumnDefaultPanel + + + Default value: + Valore predefinito: + + + + Named constraint: + Vincolo nominato: + + + + Enter a default value expression. + Inserisci un'espressione di valore predefinita. + + + + Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. + Espressione valore predefinito non valida: %1. Se si desidera utilizzare la stringa semplice come valore, ricordarsi di circondarla con caratteri di quotazione. + + + + Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. + Espressione del valore predefinito non valida. Se vuoi usare la stringa semplice come valore, ricorda di circondarla con caratteri di quotazione. + + + + Enter a name of the constraint. + Inserisci un nome per il vincolo. + + + + ColumnDialog + + + Column + Colonna + + + + Name and type + Nome e tipo + + + + Scale + Scala + + + + Precision + Precisione + + + + Data type: + Tipo di dati: + + + + Column name: + Nome colonna: + + + + Size: + Dimensione: + + + + Constraints + Vincoli + + + + Generated value + Valore generato + + + + Unique + Unico + + + + + + + + + + + Configure + Configura + + + + Foreign Key + Chiave Esterna + + + + Collate + Raccogli + + + + Not NULL + Non NULL + + + + Check condition + Verifica condizione + + + + Primary Key + Chiave Primaria + + + + Default + Predefinito + + + + Advanced mode + Modalità avanzata + + + + Add constraint + column dialog + Aggiungi vincolo + + + + Edit constraint + column dialog + Modifica vincolo + + + + + Delete constraint + column dialog + Elimina vincolo + + + + Move constraint up + column dialog + Sposta vincolo su + + + + Move constraint down + column dialog + Sposta vincolo giù + + + + Add a primary key + column dialog + Aggiungi una chiave primaria + + + + Add a foreign key + column dialog + Aggiungi una chiave esterna + + + + Add an unique constraint + column dialog + Aggiungi un vincolo univoco + + + + Add a check constraint + column dialog + Aggiungi un vincolo di restrizione + + + + Add a not null constraint + column dialog + Aggiungi un vincolo non nullo + + + + Add a collate constraint + column dialog + Aggiungi un vincolo di ordinamento + + + + Add a generated value constraint + column dialog + Aggiungi un vincolo di valore generato + + + + Add a default constraint + column dialog + Aggiungi un vincolo predefinito + + + + Are you sure you want to delete constraint '%1'? + column dialog + Sei sicuro di voler eliminare il vincolo '%1'? + + + + Correct the constraint's configuration. + Correggi la configurazione del vincolo. + + + + Scale is not allowed for INTEGER PRIMARY KEY columns. + La scala non è consentita per le colonne INTEGER PRIMARY KEY. + + + + Precision cannot be defined without the scale. + La precisione non può essere definita senza la scala. + + + + Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. + Impossibile usare il tipo diverso da INTEGER se AUTOINCREMENT è abilitato in PRIMARY KEY. + + + + INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. + Il tipo di INTEGER è stato imposto a causa di AUTOINCREMENT abilitato in PRIMARIO CHIAVE. + + + + Precision is not allowed for INTEGER PRIMARY KEY columns. + La precisione non è consentita per le colonne PRIMARIE INTEGER. + + + + Could not match valid STRICT table datatype from declared type: %1. + Impossibile abbinare il tipo di dati della tabella STRICT valido dal tipo dichiarato: %1. + + + + ColumnDialogConstraintsModel + + + Type + column dialog constraints + Tipo + + + + Name + column dialog constraints + Nome + + + + Details + column dialog constraints + Dettagli + + + + ColumnForeignKeyPanel + + + Foreign table: + Tabella esterna: + + + + Foreign column: + Colonna esterna: + + + + Reactions + Reazioni + + + + Deferred foreign key + Chiave esterna differita + + + + Named constraint + Vincolo nominato + + + + Constraint name + Nome del vincolo + + + + Pick the foreign table. + Scegli la tabella esterna. + + + + Pick the foreign column. + Scegli la colonna esterna. + + + + Enter a name of the constraint. + Inserisci un nome del vincolo. + + + + ColumnGeneratedPanel + + + Generating code: + Generazione codice: + + + + Explicit type: + Tipo esplicito: + + + + Use "GENERATED ALWAYS" keywords + Usa parole chiave "GENERATE ALWAYS" + + + + Named constraint: + Vincolo nominato: + + + + Enter the column value generating expression. + Inserisci il valore della colonna che genera l'espressione. + + + + Invalid value generating expression: %1. + Espressione generatrice del valore non valida: %1. + + + + Invalid value generating expression. + Espressione generatrice del valore non valida. + + + + Enter a name of the constraint. + Inserisci un nome del vincolo. + + + + ColumnPrimaryKeyPanel + + + Autoincrement + Autoincremento + + + + Sort order: + Ordina per: + + + + Named constraint: + Vincolo nominato: + + + + On conflict: + Sul conflitto: + + + + Enter a name of the constraint. + Inserisci un nome del vincolo. + + + + Descending order is not allowed with AUTOINCREMENT. + L'ordine decrescente non è consentito con AUTOINCREMENT. + + + + ColumnUniqueAndNotNullPanel + + + Named constraint: + Vincolo nominato: + + + + On conflict: + Su conflitto: + + + + Enter a name of the constraint. + Inserisci un nome del vincolo. + + + + CompleterWindow + + + Column: %1 + completer statusbar + Colonna: %1 + + + + Table: %1 + completer statusbar + Tabella: %1 + + + + Index: %1 + completer statusbar + Indice: %1 + + + + Trigger: %1 + completer statusbar + Attivatore: %1 + + + + View: %1 + completer statusbar + Vista: %1 + + + + Database: %1 + completer statusbar + Database: %1 + + + + Keyword: %1 + completer statusbar + Parola chiave: %1 + + + + Function: %1 + completer statusbar + Funzione: %1 + + + + Operator: %1 + completer statusbar + Operatore: %1 + + + + String + completer statusbar + Stringa + + + + Number + completer statusbar + Numero + + + + Binary data + completer statusbar + Dati binari + + + + Collation: %1 + completer statusbar + Collazione: %1 + + + + Pragma function: %1 + completer statusbar + Funzione Pragma: %1 + + + + Insert a code snippet + Inserisci un snippet di codice + + + + ConfigDialog + + + + Configuration + Configurazione + + + + Search + Cerca + + + + General + Generale + + + + Keyboard shortcuts + Scorciatoie da tastiera + + + + Look & feel + Aspetto + + + + Style + Stile + + + + Fonts + Caratteri + + + + Code colors + Colori del codice + + + + + Database list + Lista database + + + + Code assistant + Assistente codice + + + + Data browsing + Navigazione dati + + + + Data editors + Modificatori di dati + + + + Plugins + Plugin + + + + Code formatters + Formatori di codice + + + + If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. + Se disattivato, le colonne saranno ordinate nell'ordine in cui vengono digitate nell'istruzione CREATE TABLE. + + + + Sort table columns alphabetically + Ordina le colonne della tabella alfabeticamente + + + + Expand tables node when connected to a database + Espandi il nodo delle tabelle quando connesso a un database + + + + <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> + <p>Ulteriori etichette sono quelle visualizzate accanto ai nomi nella lista dei database (sono blu, a meno che non siano in altro modo configurate). Abilitando questa opzione si otterranno etichette per database, database non validi e nodi aggregati (gruppo di colonne, gruppo di indici, gruppo di attivazione). Per ulteriori etichette vedere le opzioni qui sotto.<p> + + + + Display additional labels on the list + Mostra etichette aggiuntive nella lista + + + + For regular tables labels will show number of columns, indexes and triggers for each of tables. + Per le tabelle regolari, le etichette mostreranno il numero di colonne, indici e trigger per ogni tabella. + + + + Display labels for regular tables + Visualizza le etichette per le tabelle regolari + + + + Virtual tables will be marked with a 'virtual' label. + Le tabelle virtuali saranno contrassegnate con un'etichetta 'virtuale'. + + + + Display labels for virtual tables + Visualizza le etichette per le tabelle virtuali + + + + Expand views node when connected to a database + Espandi il nodo delle viste quando connesso a un database + + + + If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) + Se questa opzione è disattivata, allora gli oggetti saranno ordinati nell'ordine in cui appaiono nella tabella sqlite_master (che è nell'ordine in cui sono stati creati) + + + + Sort objects (tables, indexes, triggers and views) alphabetically + Ordina gli oggetti (tabelle, indici, trigger e viste) alfabeticamente + + + + Display system tables and indexes on the list + Visualizza tabelle di sistema e indici nell'elenco + + + + Database dialog window + Finestra di dialogo database + + + + <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> + <p>Quando si aggiunge un nuovo database è contrassegnato come impostazione predefinita per essere "permanente" (memorizzato in configurazione). Selezionando questa opzione, ogni nuovo database NON sarà "permanente" per impostazione predefinita.</p> + + + + Do not mark database to be "permanent" by default + Non contrassegnare il database per essere "permanente" come impostazione predefinita + + + + <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> + <p>Quando questa opzione è abilitata, i file lasciati dal file manager sull'elenco dei database verranno automaticamente aggiunti all'elenco, bypassando la finestra di dialogo standard dei database. Se per vari motivi il processo automatico fallisce, verrà presentata all'utente la finestra standard.</p> + + + + Try to bypass dialog completly when dropping database file onto the list + Cerca di ignorare completamente la finestra di dialogo quando si rilascia il file del database nell'elenco + + + + Data browsing and editing + Navigazione e modifica dei dati + + + + + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + <p>Numero massimo di configurazioni della finestra di dialogo Popolazione tabella memorizzate in configurazione. Il valore di 100 dovrebbe essere sufficiente.</p> + + + + Number of memorized table populating configurations + Numero di configurazioni di popolamento delle tabelle memorizzate + + + + Data column width + Larghezza colonna dati + + + + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + <html><head/><body><p>Quando l'utente inserisce nuovo valore nella colonna e il valore è più grande della larghezza corrente della colonna, l'applicazione allargherà la colonna per adattarsi al nuovo valore, ma non in modo più ampio del limite definito nell'opzione precedente.</p></body></html> + + + + Enlarge column when entering value longer than current width + Ingrandisci la colonna quando si inserisce un valore più lungo della larghezza corrente + + + + <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> + <p>Quando i dati vengono letti nella griglia la larghezza delle colonne della vista griglia viene automaticamente regolata. Questo valore limita la larghezza iniziale delle colonne a causa dell'aggiustamento, ma l'utente può ancora ridimensionare manualmente la colonna oltre questo limite.</p> + + + + Number of data rows per page: + Numero di righe di dati per pagina: + + + + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> + <p>Quando questa opzione è abilitata e l'utente tiene il puntatore del mouse su una cella in qualsiasi vista dati (risultati delle interrogazioni, dati di una tabella, una vista dati) apparirà un suggerimento con dettagli circa la cella - includendo dettagli come tipo di colonna di dati, vincoli, ROWID e altri.</p> + + + + Show column and row details tooltip in data view + Mostra i dettagli colonna e riga nella vista dati + + + + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + <p>Quando si modifica una cella che ha un valore NULL e si inserisce una stringa vuota come nuovo valore, allora questa opzione determina se il nuovo valore debba rimanere NULL (con questa opzione abilitata), o dovrebbe essere sovrascritto con valore di stringa vuota (con questa opzione disabilitata).</p> + + + + Keep NULL value when entering empty value + Mantiene il valore NULL quando si inserisce un valore vuoto + + + + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> + <html><head/><body><p>Abilitare questo per imporre sempre il valore DEFAULT quando si memorizza un valore NULL per una colonna che ha definito il valore di DEFAULT, anche se la colonna può contenere valori NULL.</p><p>Disabilitare questa opzione per utilizzare il valore DEFAULT esclusivamente quando il valore NULL è memorizzato per la colonna con un vincolo NON NULL.</p></body></html> + + + + Use DEFAULT value (if defined), when committing NULL value + Usa il valore DEFAULT (se definito), quando si memorizza un valore NULL + + + + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + <html><head/><body><p>Se i risultati della query contengono dozzine (o centinaia) di colonne, è più probabile che esaurirà la memoria libera del Tuo computer caricando parecchi gigabyte di dati contemporaneamente. SQLiteStudio può cercare di limitare il numero di risultati visualizzati su una pagina in tali casi per proteggere il computer. Se sei conscio che non lavori con grandi quantità di record nel database, puoi disabilitare questo limite e vedrai sempre tante righe per pagina così come sono state definite.</p></body></html> + + + + Limit number of rows for in case of dozens of columns + Limita il numero di righe in caso di dozzine di colonne + + + + Inserting new row in data grid + Inserimento di una nuova riga nella griglia dei dati + + + + Before currently selected row + Prima della riga attualmente selezionata + + + + After currently selected row + Dopo la riga attualmente selezionata + + + + At the end of data view + Alla fine della vista dati + + + + Table windows + Finestra tabelle + + + + <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> + <p>Se abilitata, le finestre della tabella verranno visualizzate con la scheda dati, invece della scheda struttura.</p> + + + + Open Table Windows with the data tab for start + Apri Finestre Tabella all'avvio con la scheda dati + + + + <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> + <p>Quando abilitata, la scheda "Dati" sarà posizionata come prima scheda in ogni Finestra Tabella, invece di essere al secondo posto.</p> + + + + Place data tab as first tab in a Table Window + Posiziona la scheda dati come prima scheda in una Finestra Tabella + + + + View windows + Finestre Vista + + + + <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> + <p>Quando abilitata, Finestra Vista apparirà con la scheda dati, invece della scheda struttura.</p> + + + + Open View Windows with the data tab for start + Apri Finestre Vista all' avvio con la scheda dati + + + + <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> + <p>Quando abilitata, la scheda "Dati" sarà posizionata come prima scheda in ogni Finestra Vista, invece di essere al secondo posto.</p> + + + + Place data tab as first tab in a View Window + Posiziona la scheda dati come prima scheda in una Finestra Vista + + + + Data types + Tipi di dati + + + + Available editors: + Editor disponibili: + + + + Editors selected for this data type: + Editor selezionati per questo tipo di dati: + + + + Schema editing + Modifica dello schema + + + + Number of DDL changes kept in history. + Numero di modifiche DDL conservate nella cronologia. + + + + DDL history size: + Dimensione cronologia DDL: + + + + Don't show DDL preview dialog when committing schema changes + Non mostrare la finestra di anteprima DDL quando si salvano le modifiche allo schema + + + + SQL queries + Query SQL + + + + + Number of queries kept in the history. + Numero di query conservate nella cronologia. + + + + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> + <html><head/><body><p>Se c'è più di una query nella finestra dell'editor SQL, allora (se questa opzione è abilitata) verrà eseguita solo una singola query - quella sotto il cursore dell'inserimento della tastiera. Altrimenti tutte le query verranno eseguite. È sempre possibile limitare le query da eseguire selezionando quelle query prima di richiamarne l'esecuzione. È inoltre possibile utilizzare scorciatoie dedicate per l'esecuzione in una modalità o nell'altra (attualmente configurate a %1 per l'esecuzione di una singola interrogazione e %2 per l'esecuzione di tutte le query).</p></body></html> + + + + History size: + Dimensione cronologia: + + + + + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> + <p>Numero massimo di parametri di interrogazione (:param, @param, $param, ?) memorizzati nella cronologia. Quando riutilizzi il parametro con lo stesso nome/posizione, SQLiteStudio lo preinizializzerà con il valore memorizzato più recente (sarà ancora possibile comunque cambiarlo). Il valore di 1000 dovrebbe essere sufficiente.</p> + + + + Execute only the query under the cursor + Esegue solo la query sotto il cursore + + + + Number of memorized query parameters + Numero di parametri di interrogazione memorizzati + + + + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + <html><head/><body><p>Per impostazione predefinita (quando questa opzione è disabilitata) viene visualizzato un numero reale nel formato dei decimali con punto decimale. In alcuni casi, quando il numero è davvero piccolo (diverse posizioni dopo il punto decimale), la rappresentazione predefinita può apparire imprecisa. In tal caso potresti voler abilitare questa opzione per utilizzare la notazione scientifica (i.. <span style=" font-style:italic;">5,3e-21</span>).</p></body></html> + + + + Use scientific notation for real numbers in the grid view + Usa la notazione scientifica per i numeri reali nella vista griglia + + + + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + <html><head/><body><p>Quando i dati vengono letti la larghezza delle colonne della vista griglia viene automaticamente regolata. Questo valore limita la larghezza iniziale per la regolazione, ma l'utente può ancora ridimensionare manualmente la colonna oltre questo limite. Questo valore viene utilizzato anche quando si allarga la colonna su un nuovo valore più lungo inserito dall'utente (vedi l'opzione sottostante).</p></body></html> + + + + Limit automatic data column width to (in pixels): + Limita la larghezza automatica della colonna di dati (in pixel): + + + + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + <html><head/><body><p>La larghezza iniziale delle colonne di dati sarà impostata almeno per mostrare il nome completo della colonna nell'intestazione. Questo può ancora essere sovrascritto dal limite iniziale di larghezza della colonna specificato in pixel (l'impostazione sopra).</p></body></html> + + + + Keep at least the width to show complete column name + Mantieni la larghezza al fine di mostrare almeno il nome completo della colonna + + + + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + <html><head/><body><p>Se abilitato, saranno inserite righe più lunghe della larghezza dell'editor, quindi lo scorrimento orizzontale non sarà necessario.</p></body></html> + + + + Wrap lines in SQL editor + A capo automatico di righe nell'editor SQL + + + + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + <html><head/><body><p>Evidenzia l'intera query che è attualmente sotto il cursore di inserimento. Essa è la query che verrà eseguita quando si preme il tasto di scelta rapida o il pulsante &quot;Esegui query&quot; (a meno che non sia configurato differentemente).</p></body></html> + + + + Highlight current query + Evidenzia la query corrente + + + + Updates + Aggiornamenti + + + + Automatically check for updates at startup + Controlla automaticamente gli aggiornamenti all'avvio + + + + Session + Sessione + + + + Restore last session (active MDI windows) after startup + Ripristina l'ultima sessione (finestre MDI attive) dopo l'avvio + + + + Allow multiple instances of the application at the same time + Consenti più istanze dell'applicazione nello stesso tempo + + + + Status Field + Campo Stato + + + + <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> + <p>Quando l'utente chiude manualmente il pannello di Stato, questa opzione fa in modo che se un nuovo messaggio viene stampato nel pannello di stato esso venga riaperto. Se è disabilitata, allora il pannello di stato può essere aperto manualmente dall'utente solo dal menu "Visualizza"</p> + + + + Always open Status panel when new message is printed + Apri sempre il pannello di stato quando viene stampato un nuovo messaggio + + + + Code syntax colors + Colori sintassi codice + + + + Keyword foreground + Parola chiave primo piano + + + + Regular foreground + Primo piano normale + + + + String foreground + Stringa in primo piano + + + + Comment foreground + Commento in primo piano + + + + Valid objects foreground + Oggetti validi in primo piano + + + + Current query background + Sfondo query corrente + + + + Bind parameter foreground + Associazione parametro primo piano + + + + Current line background + Sfondo riga corrente + + + + Matched parenthesis background + Corrispondenza parentesi background + + + + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + <html><head/><body><p>Puoi disabilitare l'evidenziazione della query corrente nella pagina Impostazioni generali.</p></body></html> + + + + Number foreground + Numero primo piano + + + + BLOB value foreground + Valore BLOB in primo piano + + + + Matched parenthesis foreground + Corrispondenza parentesi primo piano + + + + Reset to defaults + Ripristina impostazioni predefinite + + + + Filter shortcuts by name or key combination + Filtra le scorciatoie per nome o combinazione di tasti + + + + Action + Azione + + + + Key combination + Combinazione di tasti + + + + + Language + Lingua + + + + Changing language requires application restart to take effect. + La modifica della lingua richiede il riavvio dell'applicazione per avere effetto. + + + + Compact layout + Layout compatto + + + + <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> + <p>La disposizione compatta riduce al minimo tutti i margini e la spaziatura dell'interfaccia utente, rendendo lo spazio per visualizzare più dati. Rende l'interfaccia un po' meno estetica, ma permette di visualizzare più dati contemporaneamente.</p> + + + + Use compact layout + Usa layout compatto + + + + Main window dock areas + Aree di aggancio della finestra principale + + + + Left and right areas occupy corners + Le aree sinistra e destra occupano gli angoli + + + + Top and bottom areas occupy corners + Le aree superiore e inferiore occupano gli angoli + + + + Hide built-in plugins + Nascondi plugin integrati + + + + Current style: + Stile attuale: + + + + Preview + Anteprima + + + + Enabled + Abilitato + + + + Disabled + Disabilitato + + + + Active formatter plugin + Plugin formattatore attivo + + + + SQL editor font + Carattere editor SQL + + + + Database list font + Carattere elenco database + + + + Database list additional label font + Database list carattere etichetta aggiuntivo + + + + Data view font + Carattere vista dati + + + + Status field font + Carattere campo di stato + + + + Code assistant settings + Impostazioni dell'assistente codice + + + + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + <html><head/><body><p>Se questa opzione è abilitata, l'assistente del codice verrà attivato quando l'utente preme per esempio <span style=" font-weight:700;">tableName.</span> per proporre colonne della tabella. Se l'opzione è disabilitata, l'utente dovrà premere esplicitamente il tasto di scelta rapida dell'assistente.</p></body></html> + + + + Automatically trigger the assistant after a dot is typed after an object name + Attiva automaticamente l'assistente dopo aver digitato un punto dopo il nome di un oggetto + + + + Description: + plugin details + Descrizione: + + + + Category: + plugin details + Categoria: + + + + Version: + plugin details + Versione: + + + + Author: + plugin details + Autore: + + + + Internal name: + plugin details + Nome interno: + + + + Dependencies: + plugin details + Dipendenze: + + + + Conflicts: + plugin details + Conflitti: + + + + Plugin details + Dettagli plugin + + + + Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. + I plugin vengono caricati/scaricati immediatamente quando selezionati/non selezionati, ma l'elenco modificato dei plugin da caricare all'avvio non viene salvato fino a quando non si effettua il commit dell'intera finestra di configurazione. + + + + %1 (built-in) + plugins manager in configuration dialog + %1 (integrato) + + + + Details + Dettagli + + + + No plugins in this category. + Nessun plugin in questa categoria. + + + + Add new data type + Aggiungi un nuovo tipo di file + + + + Rename selected data type + Rinomina il tipo di dati selezionato + + + + Delete selected data type + Elimina il tipo di dati selezionato + + + + Help for configuring data type editors + Aiuto per la configurazione degli editor di tipi di dati + + + + Clear hotkey for this action + Clear hotkey for this action + + + + Restore original hotkey for this action + Restore original hotkey for this action + + + + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + + + + ConstraintCheckPanel + + + The condition + La condizione + + + + Named constraint: + Vincolo nominato: + + + + On conflict + Su conflitto + + + + Enter a valid condition. + Inserisci una condizione valida. + + + + Enter a name of the constraint. + Inserisci un nome del vincolo. + + + + ConstraintDialog + + + New constraint + constraint dialog + Nuovo vincolo + + + + Create + constraint dialog + Crea + + + + Edit constraint + dialog window + Modifica vincolo + + + + Apply + constraint dialog + Applica + + + + Primary key + table constraints + Chiave primaria + + + + Foreign key + table constraints + Chiave Esterna + + + + Unique + table constraints + Unico + + + + Not NULL + table constraints + Non NULL + + + + Check + table constraints + Controlla + + + + Generated + table constraints + Generato + + + + Collate + table constraints + Raccogli + + + + Default + table constraints + Predefinito + + + + ConstraintTabModel + + + Table + table constraints + Tabella + + + + Column (%1) + table constraints + Colonna (%1) + + + + Scope + table constraints + Ambito + + + + Type + table constraints + Tipo + + + + Details + table constraints + Dettagli + + + + Name + table constraints + Nome + + + + CssDebugDialog + + + SQLiteStudio CSS console + SQLiteStudio CSS console + + + + DataView + + + Filter data + data view + Filtra dati + + + + Grid view + Visualizzazione griglia + + + + Form view + Vista modulo + + + + Refresh table data + data view + Aggiorna dati tabella + + + + First page + data view + Prima pagina + + + + Previous page + data view + Pagina precedente + + + + Next page + data view + Pagina successiva + + + + Last page + data view + Ultima pagina + + + + Commit changes for selected cells + data view + Esegue il commit delle modifiche per le celle selezionate + + + + Rollback changes for selected cells + data view + Modifiche all'indietro per le celle selezionate + + + + Show grid view of results + data view + Mostra la visualizzazione della griglia dei risultati + + + + Show form view of results + data view + Mostra la visualizzazione del modulo dei risultati + + + + Filter by text (if contains) + data view + Filtra testualmente (se contiene) + + + + Filter strictly by text (if equals) + data view + Filtra rigorosamente testualmente (se uguale) + + + + Tabs on top + data view + Schede in alto + + + + Tabs at bottom + data view + Schede in basso + + + + Place new rows above selected row + data view + Posiziona nuove righe sopra la riga selezionata + + + + Place new rows below selected row + data view + Posiziona le nuove righe sotto la riga selezionata + + + + Place new rows at the end of the data view + data view + Posiziona nuove righe alla fine della vista dati + + + + Total number of rows is being counted. +Browsing other pages will be possible after the row counting is done. + Il numero totale di righe è in fase di conteggio. +L'esplorazione di altre pagine sarà possibile dopo il conteggio delle righe. + + + + Row: %1 + Riga: %1 + + + + Filter + Filtro + + + + Hit Enter key or press "Apply filter" button on toolbar to apply new value. + Premi entrare o premi "Applica filtro" pulsante sulla barra degli strumenti per applicare un nuovo valore. + + + + Filter by the Regular Expression + data view + Filtra per espressione regolare + + + + Filter by SQL expression + data view + Filtra per espressione SQL + + + + Show filter inputs per column + data view + Mostra gli input del filtro per colonna + + + + Apply filter + data view + Applica filtro + + + + DbDialog + + + Database + Database + + + + Database type + Tipo di database + + + + Database driver + Driver del database + + + + + File + File + + + + Name (on the list) + Nome (nella lista) + + + + Options + Opzioni + + + + <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> + aasfd + <p>Abilita questa opzione se vuoi che il database sia memorizzato nel file di configurazione e ripristinato ogni volta che SQLiteStudio viene avviato.</p> + + + + Permanent (keep it in configuration) + Permanente (mantenerlo nella configurazione) + + + + Test connection + Verifica connessione + + + + Select new or existing file on local computer + Seleziona un file nuovo o esistente sul computer locale + + + + Browse + Sfoglia + + + + Database type not selected. + Tipo di database non selezionato. + + + + Database path not specified. + Percorso del database non specificato. + + + + Enter an unique database name. + Inserisci un nome di database univoco. + + + + This name is already in use. Please enter unique name. + Questo nome è già in uso. Inserisci un nome univoco. + + + + <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> + <p>La generazione automatica del nome è stata disabilitata, perché il nome è stato modificato manualmente. Per ripristinare la generazione automatica si prega di cancellare il contenuto del campo nome.</p> + + + + Enter a database file path. + Inserire un percorso di un file database. + + + + This database is already on the list under name: %1 + Questo database è già nella lista sotto il nome: %1 + + + + Select a database type. + Selezionare un tipo di database. + + + + DbObjectDialogs + + + Delete table + Elimina tabella + + + + Are you sure you want to delete table %1? + Sei sicuro di voler eliminare la tabella %1? + + + + Delete index + Elimina indice + + + + Are you sure you want to delete index %1? + Sei sicuro di voler eliminare l'indice %1? + + + + Delete trigger + Elimina trigger + + + + Are you sure you want to delete trigger %1? + Sei sicuro di voler eliminare il trigger %1? + + + + Delete view + Elimina vista + + + + Are you sure you want to delete view %1? + Sei sicuro di voler eliminare la vista %1? + + + + + Error while dropping %1: %2 + Errore nel cancellare %1: %2 + + + + Delete objects + Elimina oggetti + + + + Are you sure you want to delete following objects: +%1 + Sei sicuro di voler eliminare i seguenti oggetti: +%1 + + + + Cannot start transaction. Details: %1 + Impossibile avviare la transazione. Dettagli: %1 + + + + Cannot commit transaction. Details: %1 + Impossibile eseguire il commit della transazione. Dettagli: %1 + + + + DbTree + + + Databases + Databases + + + + Filter by name + Filtra per nome + + + + Copy + Copia + + + + Paste + Incolla + + + + Select all + Seleziona tutto + + + + Create a group + Crea un gruppo + + + + Delete the group + Cancella il gruppo + + + + Rename the group + Rinomina il gruppo + + + + &Add a database + &Aggiungi database + + + + &Edit the database + Modifica il databas&e + + + + &Remove the database + &Rimuovi il database + + + + &Connect to the database + &Connetti al database + + + + &Disconnect from the database + &Disconnetti dal database + + + + Import + Importa + + + + &Export the database + &Esporta il database + + + + Vac&uum + Vac&uum + + + + &Integrity check + Controllo &integrità + + + + Create a &table + Crea una &tabella + + + + Edit the t&able + Modifica la t&abella + + + + Delete the ta&ble + Cancella la ta&bella + + + + Export the table + Esporta la tabella + + + + Import into the table + Importa nella tabella + + + + Populate table + Popola tabella + + + + Create similar table + Crea una tabella simile + + + + Reset autoincrement sequence + Reimposta sequenza autoincrementale + + + + Create an &index + Crea un &indice + + + + Edit the i&ndex + Modifica 'i&ndice + + + + Delete the in&dex + Cancella l'in&dice + + + + Create a trig&ger + Crea un trig&ger + + + + Edit the trigg&er + Modifica il trigg&er + + + + Delete the trigge&r + Elimina il trigge&r + + + + Create a &view + Crea una &vista + + + + Edit the v&iew + Modifica la vista + + + + Delete the vi&ew + &Elimina la vista + + + + Add a column + Aggiungi una colonna + + + + Edit the column + Modifica la colonna + + + + Delete the column + Elimina la colonna + + + + Delete selected items + Elimina elementi selezionati + + + + Clear filter + Cancella filtro + + + + &Refresh all database schemas + Aggio&rna tutti gli schemi del database + + + + Re&fresh selected database schema + Aggiorna lo schema del database selezionato + + + + + Erase table data + Cancellare i dati della tabella + + + + Open file's directory + Apri cartella dei file + + + + Execute SQL from file + Esegui SQL da file + + + + Increase font size + database list + Aumenta dimensione carattere + + + + Decrease font size + database list + Riduci dimensione carattere + + + + + Database + Database + + + + Grouping + Raggruppamento + + + + Generate query for table + Genera query per tabella + + + + + Create group + Crea gruppo + + + + Group name + Nome del gruppo + + + + Entry with name %1 already exists in group %2. + La voce con il nome %1 esiste già nel gruppo %2. + + + + Delete group + Elimina gruppo + + + + Are you sure you want to delete group %1? +All objects from this group will be moved to parent group. + Sei sicuro di voler eliminare il gruppo %1? +Tutti gli oggetti da questo gruppo verranno spostati nel gruppo principale. + + + + Are you sure you want to remove database '%1' from the list? + Sei sicuro di voler rimuovere il database '%1' dall'elenco? + + + + Are you sure you want to remove following databases from the list: +%1 + Sei sicuro di voler rimuovere i seguenti database dall'elenco: +%1 + + + + Remove database + Rimuovi database + + + + + Cannot import, because no import plugin is loaded. + Impossibile importare, perché non è stato caricato alcun plugin di importazione. + + + + + Cannot export, because no export plugin is loaded. + Impossibile esportare, perché non è stato caricato alcun plugin di esportazione. + + + + Vacuum (%1) + Vacuum (%1) + + + + Integrity check (%1) + Controllo integrità (%1) + + + + Reset autoincrement + Reimposta l'autoincremento + + + + Are you sure you want to reset autoincrement value for table '%1'? + Sei sicuro di voler ripristinare il valore dell'incremento automatico per la tabella '%1'? + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + Si è verificato un errore durante il tentativo di ripristinare il valore dell'incremento automatico per la tabella '%1': %2 + + + + Autoincrement value for table '%1' has been reset successfully. + Il valore dell'incremento automatico per la tabella '%1' è stato ripristinato con successo. + + + + Are you sure you want to delete all data from table(s): %1? + Sei sicuro di voler eliminare tutti i dati dalle tabelle: %1? + + + + An error occurred while trying to delete data from table '%1': %2 + Si è verificato un errore durante il tentativo di eliminare i dati dalla tabella '%1': %2 + + + + All data has been deleted for table '%1'. + Tutti i dati sono stati eliminati per la tabella '%1'. + + + + Following objects will be deleted: %1. + I seguenti oggetti verranno eliminati: %1. + + + + Following databases will be removed from list: %1. + I seguenti database saranno rimossi dall'elenco: %1. + + + + Remainig objects from deleted group will be moved in place where the group used to be. + Gli oggetti rimanenti dal gruppo eliminato verranno spostati nella posizione in cui il gruppo era usato. + + + + %1<br><br>Are you sure you want to continue? + %1<br><br>Sei sicuro di voler continuare? + + + + Delete objects + Elimina oggetti + + + + DbTreeItemDelegate + + + error + dbtree labels + error + + + + (system table) + database tree label + (tabella di sistema) + + + + (virtual) + virtual table label + (virtuale) + + + + (system index) + database tree label + (indice di sistema) + + + + DbTreeModel + + + Database: %1 + dbtree tooltip + Database: %1 + + + + URI: + dbtree tooltip + URI: + + + + Version: + dbtree tooltip + Versione: + + + + File size: + dbtree tooltip + Dimensione file: + + + + Encoding: + dbtree tooltip + Codifica: + + + + Error: + dbtree tooltip + Errore: + + + + Table : %1 + dbtree tooltip + Tabella: %1 + + + + Columns (%1): + dbtree tooltip + Colonne (%1): + + + + Indexes (%1): + dbtree tooltip + Indici (%1): + + + + Triggers (%1): + dbtree tooltip + Trigger (%1): + + + + Copy + Copia + + + + Move + Sposta + + + + Include data + Includi dati + + + + Include indexes + Includi indici + + + + Include triggers + Includi trigger + + + + Abort + Interrompi + + + + Could not add dropped database file '%1' automatically. Manual setup is necessary. + Impossibile aggiungere automaticamente il file del database eliminato '%1'. È necessaria la configurazione manuale. + + + + Referenced tables + Tabelle referenziate + + + + Do you want to include following referenced tables as well: +%1 + Vuoi includere anche le seguenti tabelle referenziate: +%1 + + + + Name conflict + Conflitto di nomi + + + + Following object already exists in the target database. +Please enter new, unique name, or press '%1' to abort the operation: + L'oggetto seguente esiste già nel database di destinazione. +Inserisci un nuovo nome univoco o premi '%1' per interrompere l'operazione: + + + + SQL statements conversion + Conversione di istruzioni SQL + + + + Following error occurred while converting SQL statements to the target SQLite version: + Si è verificato un errore seguente durante la conversione di istruzioni SQL nella versione SQLite di destinazione: + + + + Would you like to ignore those errors and proceed? + Vuoi ignorare questi errori e procedere? + + + + DdlHistoryWindow + + + Filter by database: + Filtra per database: + + + + Clear entire history + Cancella tutta la cronologia + + + + -- Queries executed on database %1 (%2) +-- Date and time of execution: %3 +%4 + -- Query eseguite nel database %1 (%2) +-- Data e ora di esecuzione: %3 +%4 + + + + Clear history + Cancella cronologia + + + + Are you sure you want to erase entire DDL history? + Sei sicuro di voler cancellare l'intera cronologia DDL? + + + + DDL history + DDL history + + + + DdlPreviewDialog + + + Queries to be executed + Query da eseguire + + + + Don't show again + Non mostrare di nuovo + + + + DebugConsole + + + SQLiteStudio Debug Console + Console Debug SQLiteStudio + + + + EditorWindow + + + SQL editor + Editor SQL + + + + Query + Query + + + + History + Cronologia + + + + Results in the separate tab + Risultati nella scheda separata + + + + Results below the query + Risultati sotto la query + + + + + SQL editor %1 + Editor SQL %1 + + + + + Results + Risultati + + + + Execute query + Esegui query + + + + Explain query + Explain query + + + + Clear execution history + sql editor + Cancella cronologia esecuzione + + + + Export results + sql editor + Esporta risultati + + + + Create view from query + sql editor + Crea vista dalla query + + + + Previous database + Database precedente + + + + Next database + Prossimo database + + + + Show next tab + sql editor + Mostra la scheda successiva + + + + Show previous tab + sql editor + Mostra scheda precedente + + + + Focus results below + sql editor + Focus risultati sotto + + + + Focus SQL editor above + sql editor + Focus editor SQL sopra + + + + Delete selected SQL history entries + sql editor + Elimina le voci selezionate nella cronologia SQL + + + + Execute single query under cursor + Esegue la singola query sotto il cursore + + + + Execute all queries in editor + Esegue tutte le query dell'editor + + + + Active database (%1/%2) + Database attivo (%1/%2) + + + + Query finished in %1 second(s). Rows affected: %2 + Interrogazione terminata in %1 secondi. Righe interessate: %2 + + + + Query finished in %1 second(s). + Interrogazione terminata in %1 secondi. + + + + Clear execution history + Cancella cronologia esecuzione + + + + Are you sure you want to erase the entire SQL execution history? This cannot be undone. + Sei sicuro di voler cancellare l'intera cronologia di esecuzione SQL? Questo non può essere annullato. + + + + Cannot export, because no export plugin is loaded. + Impossibile esportare, perché non è stato caricato alcun plugin di esportazione. + + + + No database selected in the SQL editor. Cannot create a view for unknown database. + Nessun database selezionato nell'editor SQL. Impossibile creare una vista per un database sconosciuto. + + + + Editor window "%1" has uncommitted data. + La finestra dell'editor "%1" ha dati senza commit. + + + + ErrorsConfirmDialog + + + Errors + Errori + + + + Following errors occured: + Si sono verificati i seguenti errori: + + + + Would you like to proceed? + Ti piacerebbe procedere? + + + + ExecFromFileDialog + + + Execute SQL from file + Esegui SQL da file + + + + Input file + File in ingresso + + + + Path to file + Percorso del file + + + + Browse for file + Sfoglia per il file + + + + Options + Opzioni + + + + File encoding + Codifica file + + + + Skip failing SQL statements + Salta le istruzioni SQL fallite + + + + SQL scripts (*.sql);;All files (*) + Script SQL (*.sql);;Tutti i file (*) + + + + Execute SQL file + Esegui file SQL + + + + Please provide file to be executed. + Fornisci il file da eseguire. + + + + Provided file does not exist or cannot be read. + Il file fornito non esiste o non può essere letto. + + + + ExportDialog + + + Export + Esporta + + + + What do you want to export? + Cosa desideri esportare? + + + + A database + Un database + + + + A single table + Una singola tabella + + + + Query results + Risultati di interrogazione + + + + Table to export + Tabella da esportare + + + + Database + Database + + + + Table + Tabella + + + + Options + Opzioni + + + + When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. + Quando questa opzione è deselezionata, viene esportata solo la tabella DDL (dichiarazione CREATE TABLE). + + + + Export table data + Esporta dati tabella + + + + Export table indexes + Esporta indici tabella + + + + Export table triggers + Esporta trigger tabella + + + + Note, that exporting table indexes and triggers may be unsupported by some output formats. + Nota, che l'esportazione di indici di tabella e trigger può non essere supportata da alcuni formati di output. + + + + Select database objects to export + Seleziona gli oggetti del database da esportare + + + + Export data from tables + Esporta dati dalle tabelle + + + + Select all + Seleziona tutto + + + + Deselect all + Deseleziona tutto + + + + + Database: + Database: + + + + Query to export results for + Interrogazione per esportare i risultati per + + + + Query to be executed for results: + Interrogazione da eseguire per i risultati: + + + + Export format and options + Formato di esportazione e opzioni + + + + Export format + Formato di esportazione + + + + Output + Output + + + + Exported file path + Percorso file esportato + + + + Clipboard + Appunti + + + + File + File + + + + Exported text encoding: + Codifica del testo esportato: + + + + Export format options + Opzioni del formato di esportazione + + + + Cancel + Annulla + + + + + + Select database to export. + Selezionare il database da esportare. + + + + Select table to export. + Selezionare la tabella da esportare. + + + + Enter valid query to export. + Inserisci una query valida per esportare. + + + + Select at least one object to export. + Selezionare almeno un oggetto da esportare. + + + + You must provide a file name to export to. + È necessario fornire un nome file su cui esportare. + + + + Path you provided is an existing directory. You cannot overwrite it. + Il percorso fornito è una directory esistente. Non puoi sovrascriverlo. + + + + The directory '%1' does not exist. + La directory '%1' non esiste. + + + + The file '%1' exists and will be overwritten. + Il file '%1' esiste e verrà sovrascritto. + + + + All files (*) + Tutti i file (*) + + + + Pick file to export to + Scegliere il file in cui esportare + + + + Internal error during export. This is a bug. Please report it. + Errore interno durante l'esportazione. Questo è un bug. Si prega di segnalarlo. + + + + FileExecErrorsDialog + + + Execution errors + Errori di esecuzione + + + + Following errors were encountered during execution of SQL statements from the file: + I seguenti errori sono stati riscontrati durante l'esecuzione di istruzioni SQL dal file: + + + + SQL + SQL + + + + Error + Errore + + + + Statements that were executed successfully were commited. + I comandi che sono stati eseguiti con successo sono stati memorizzati. + + + + Statements that were executed successfully were rolled back. + I comandi che sono stati eseguiti con successo sono stati annullati. + + + + FkComboBox + + + Cannot edit this cell. Details: %1 + Impossibile modificare questa cella. Dettagli: %1 + + + + FontEdit + + + Choose font + font configuration + Scegli carattere + + + + Form + + + Active SQL formatter plugin + Plugin per formattare SQL attivo + + + + FormView + + + Commit row + form view + Committa riga + + + + Rollback row + form view + Ripristina riga + + + + First row + form view + Prima riga + + + + Previous row + form view + Riga precedente + + + + Next row + form view + Riga successiva + + + + Last row + form view + Ultima riga + + + + Insert new row + form view + Inserisci nuova riga + + + + Delete current row + form view + Elimina riga corrente + + + + FunctionsEditor + + + Filter functions + Funzioni Filtro + + + + Input arguments + Argomenti in input + + + + Undefined + Indefinito + + + + Databases + Database + + + + Register in all databases + Registra in tutti i database + + + + Register in following databases: + Registra nelle seguenti banche dati: + + + + Type: + Tipo: + + + + Function name: + Nome funzione: + + + + Implementation language: + Linguaggio di implementazione: + + + + Deterministic + Deterministico + + + + Initialization code: + Codice d'inizializzazione: + + + + + Function implementation code: + Codice implementazione funzione: + + + + Final step implementation code: + Codice di implementazione della fase finale: + + + + SQL functions editor + Editor delle funzioni SQL + + + + Commit all function changes + Commit tutte le modifiche alla funzione + + + + Rollback all function changes + Rollback tutte le modifiche della funzione + + + + Create new function + Crea nuova funzione + + + + Delete selected function + Elimina la funzione selezionata + + + + Custom SQL functions manual + Manuale personalizzato delle funzioni SQL + + + + Add function argument + Aggiungi argomento funzione + + + + Rename function argument + Rinomina argomento funzione + + + + Delete function argument + Elimina argomento funzione + + + + Move function argument up + Sposta argomento funzione in alto + + + + Move function argument down + Sposta argomento funzione in basso + + + + Scalar + Scalare + + + + Aggregate + Aggregate + + + + Enter a non-empty, unique name of the function. + Inserisci un nome non vuoto e univoco della funzione. + + + + Pick the implementation language. + Scegli il linguaggio di implementazione. + + + + Per step code: + Per passo di codice: + + + + Enter a non-empty implementation code. + Inserisci un codice di implementazione non vuoto. + + + + argument + new function argument name in function editor window + argomento + + + + Functions editor window has uncommitted modifications. + La finestra dell'editor Collations ha modifiche senza conferma. + + + + ImportDialog + + + Import data + Importa dati + + + + Table to import to + Tabella da importare a + + + + Table + Tabella + + + + Database + Database + + + + Data source to import from + Fonte dei dati da cui importare + + + + Data source type + Tipo di sorgente dati + + + + Options + Opzioni + + + + Text encoding: + Codifica del testo: + + + + Input file: + File di ingresso: + + + + <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> + <p>Se abilitato, qualsiasi violazione del vincolo, o formato di dati non valido (numero di colonne errato), o qualsiasi altro problema riscontrato durante l'importazione verrà ignorato e l'importazione verrà continuata.</p> + + + + Ignore errors + Ignora errori + + + + Data source options + Opzioni sorgente dati + + + + Cancel + Annulla + + + + If you type table name that doesn't exist, it will be created. + Se digiti il nome di una tabella che non esiste, essa verrà creata. + + + + Enter the table name + Inserisci il nome della tabella + + + + Select import plugin. + Selezionare il plugin di importazione. + + + + You must provide a file to import from. + Devi fornire un file da cui importare. + + + + The file '%1' does not exist. + Il file '%1' non esiste. + + + + Path you provided is a directory. A regular file is required. + Il percorso fornito è una directory. È richiesto un file. + + + + Pick file to import from + Scegli il file da cui importare + + + + IndexDialog + + + + Index + Indice + + + + Column + Colonna + + + + Sort + Ordinamento + + + + Collation + Collation + + + + On table: + Su tabella: + + + + Delete selected indexed expression + Elimina l'espressione indicizzata selezionata + + + + Moves selected index column up in the order, making it more significant in the index. + Sposta la colonna dell'indice selezionata nell'ordinamento, rendendola nel'indice più significativa. + + + + Moves selected index column down in the order, making it less significant in the index. + Sposta la colonna dell'indice selezionata nell'ordinamento, rendendola nel'indice meno significativa. + + + + Partial index condition + Condizione indice parziale + + + + Unique index + Indice univoco + + + + Index name: + Nome indice: + + + + Edit selected indexed expression + Modifica l'espressione indicice selezionata + + + + Add indexed expression + Aggiungi espressione indice + + + + DDL + DDL + + + + Tried to open index dialog for closed or inexisting database. + Tentativo di aprire la finestra di dialogo dell'indice per un database chiuso o inesistente. + + + + Could not process index %1 correctly. Unable to open an index dialog. + Impossibile elaborare correttamente l'indice %1. Impossibile aprire una finestra di dialogo indice. + + + + Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. + L'indice univoco non può avere espressioni indicizzate. Rimuovere le espressioni dalla lista sotto, o deselezionare questa opzione. + + + + Pick the table for the index. + Scegliere la tabella per l'indice. + + + + Select at least one column. + Seleziona almeno una colonna. + + + + Enter a valid condition. + Inserisci una condizione valida. + + + + default + index dialog + default + + + + Sort order + table constraints + Criterio di ordinamento + + + + + Error + index dialog + Errore + + + + Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? + Impossibile creare un indice univoco, perché i valori nelle colonne selezionate non sono univoci. Vuoi eseguire la query SELECT per vedere valori problematici? + + + + An error occurred while executing SQL statements: +%1 + Si è verificato un errore durante l'esecuzione dei comandi SQL: +%1 + + + + IndexExprColumnDialog + + + Indexed expression + Espressione indicizzata + + + + Expression to index + Espressione per l'indice + + + + This expression is already indexed by the index. + Questa espressione è già indicizzata dall'indice. + + + + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. + La colonna deve essere indicizzata direttamente, non per espressione. Estendi questa espressione per contenere qualcosa di più del solo nome di colonna, oppure interrompi e seleziona direttamente questa colonna nella finestra di dialogo indice. + + + + Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. + La colonna '%1' non appartiene alla tabella coperta da questo indice. Le espressioni indicizzate possono riferirsi solo alle colonne della tabella indicizzata. + + + + It's forbidden to use 'SELECT' statements in indexed expressions. + È proibito usare istruzioni 'SELECT' in espressioni indicizzate. + + + + Enter an indexed expression. + Inserisci un'espressione indice. + + + + Invalid expression. + Espressione non valida. + + + + LanguageDialog + + + Language + Lingua + + + + Please choose language: + Scegli la lingua: + + + + MainWindow + + + Database toolbar + Barra degli strumenti del database + + + + Structure toolbar + Barra degli strumenti + + + + Tools + Strumenti + + + + Window list + Lista delle finestre + + + + View toolbar + Visualizza barra strumenti + + + + Configuration widgets + Widget di configurazione + + + + Syntax highlighting engines + Motori di evidenziazione della sintassi + + + + Data editors + Editor di dati + + + + Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. + Esecuzione in modalità debug. Premi %1 o usa 'Aiuto / Apri la console di debug' per aprire la console di debug. + + + + Running in debug mode. Debug messages are printed to the standard output. + Esecuzione in modalità debug. I messaggi di debug vengono stampati sullo standard output. + + + + You need to restart application to make the language change take effect. + È necessario riavviare l'applicazione per rendere effettivo il cambiamento della lingua. + + + + Open SQL &editor + Apri &editor SQL + + + + Open DDL &history + Apri &Cronologia DDL + + + + Open SQL &functions editor + Apri editor di &funzioni SQL + + + + Open code &snippets editor + Apri l'editor di &snippet di codice + + + + Open &collations editor + Apri editor &collations + + + + Open ex&tension manager + Apri gestore es&tensioni + + + + &Import + &Importa + + + + E&xport + E&sporta + + + + Open confi&guration dialog + Apri finestra di configurazione + + + + &Tile windows + Affianca fines&tre + + + + Tile windows &horizontally + Affianca finestre &orizzontalmente + + + + Tile windows &vertically + Affianca finestre &verticalmente + + + + &Cascade windows + Finestre in &cascata + + + + Next window + Finestra successiva + + + + Previous window + Finestra precedente + + + + Hide status field + Nascondi campo stato + + + + Close &all windows + Chiudi tutte le finestre + + + + Re&store recently closed window + Ripristina la finestra chiusa di recente + + + + Close current &window + Chiudi la finestra corrente + + + + Close &other windows + Chiudi &altre finestre + + + + Close windows on the &left + Chiudi le finestre a &sinistra + + + + Close windows on the &right + Chiudi le finestre a &destra + + + + Re&name selected window + Rinomina la finestra selezionata + + + + Open Debug Console + Apri Console di Debug + + + + Open CSS Console + Apri Console CSS + + + + Report a &bug + Segnala un &bug + + + + D&onate + D&ona + + + + Propose a new &feature + Proponi una nuova &funzionalità + + + + &About + &Informazioni + + + + &Licenses + &Licenze + + + + Open home &page + Apri home &page + + + + User &Manual + Manuale Utente + + + + SQLite &documentation + Documentazione SQLite + + + + Bugs and feature &requests + &Segnalazione di bug e richieste di funzionalità + + + + Quit + Esci + + + + Check for &updates + Controlla aggiornamenti + + + + &Database + menubar + &Database + + + + &Structure + menubar + &Struttura + + + + &View + menubar + &Visualizza + + + + Window list + menubar view menu + Lista finestre + + + + &Tools + menubar + &Strumenti + + + + &Help + &Aiuto + + + + Could not set style: %1 + main window + Impossibile impostare lo stile: %1 + + + + Cannot export, because no export plugin is loaded. + Impossibile esportare, perché non è stato caricato alcun plugin di esportazione. + + + + Cannot import, because no import plugin is loaded. + Impossibile importare, perché non è stato caricato alcun plugin di importazione. + + + + Rename window + Rinomina finestra + + + + Enter new name for the window: + Inserisci un nuovo nome per la finestra: + + + + New updates are available. <a href="%1">Click here for details</a>. + Sono disponibili nuovi aggiornamenti. <a href="%1">Clicca qui per maggiori dettagli</a>. + + + + You're running the most recent version. No updates are available. + Stai usando la versione più recente. Non sono disponibili aggiornamenti. + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + Il database passato nei parametri della riga di comando (%1) era già nell'elenco con il nome: %2 + + + + Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 + Il database passato nei parametri della riga di comando (%1) è stato temporaneamente aggiunto all'elenco con nome: %2 + + + + Could not add database %1 to list. + Impossibile aggiungere il database %1 all'elenco. + + + + MdiWindow + + + Uncommitted changes + Modifiche non memorizzate + + + + Close anyway + Chiudi comunque + + + + Don't close + Non chiudere + + + + MultiEditor + + + Null value + multieditor + Valore nullo + + + + Configure editors for this data type + Configura gli editor per questo tipo di dati + + + + Open another tab + Apri un'altra scheda + + + + Foreign Key + Chiave Esterna + + + + Data editor plugin '%1' not loaded, while it is defined for editing '%2' data type. + Il plugin editor dati '%1' dell'editor di dati non viene caricato, mentre è definito per la modifica del tipo di dati '%1'. {1'?} {2'?} {1' or 2'?} + + + + Deleted + multieditor + Eliminato + + + + Read only + multieditor + Sola lettura + + + + MultiEditorBoolPlugin + + + Boolean + Booleano + + + + MultiEditorDatePlugin + + + Date + Data + + + + MultiEditorDateTimePlugin + + + Date & time + Data e ora + + + + MultiEditorHexPlugin + + + Hex + Hex + + + + MultiEditorNumericPlugin + + + Number + numeric multi editor tab name + Numero + + + + MultiEditorText + + + Tab changes focus + Cambio focus scheda + + + + Cut + Taglia + + + + Copy + Copia + + + + Paste + Incolla + + + + Delete + Elimina + + + + Undo + Annulla + + + + Redo + Ripeti + + + + MultiEditorTextPlugin + + + Text + Testo + + + + MultiEditorTimePlugin + + + Time + Tempo + + + + NewConstraintDialog + + + New constraint + Nuovo vincolo + + + + + Primary Key + new constraint dialog + Chiave Principale + + + + + Foreign Key + new constraint dialog + Chiave Esterna + + + + + Unique + new constraint dialog + Esclusivo + + + + + Check + new constraint dialog + Controllo + + + + Not NULL + new constraint dialog + Non NULL + + + + Collate + new constraint dialog + Ordinamento + + + + Generated + new constraint dialog + Generato + + + + Default + new constraint dialog + Predefinito + + + + NewVersionDialog + + + SQLiteStudio updates + Aggiornamenti di SQLiteStudio + + + + New version is available! + È disponibile una nuova versione! + + + + Download new version! + Scarica la nuova versione! + + + + New version package will be downloaded. It will be up to you to install it whenever you're ready. + Il pacchetto della nuova versione verrà scaricato. Starà a voi installarlo quando sarete pronti. + + + + Open SQLiteStudio home page. + Apri la home page SQLiteStudio. + + + + Read release notes && download package yourself. + Leggi le note di rilascio && scarica tu stesso il pacchetto. + + + + Just close this window. + Chiudi solo questa finestra. + + + + Check for updates on startup + Controlla gli aggiornamenti all'avvio + + + + Not now. + Non ora. + + + + PopulateConfigDialog + + + Populating configuration + Configurazione del popolamento + + + + Configuring <b>%1</b> for column <b>%2</b> + Configurazione di <b>%1</b> per la colonna <b>%2</b> + + + + PopulateDialog + + + Populate table + Popola tabella + + + + Database + Database + + + + Table + Tabella + + + + Columns + Colonne + + + + Number of rows to populate: + Numero di righe da popolare: + + + + Populate + populate dialog button + Popola + + + + Abort + Interrompi + + + + Configure + Configura + + + + Populating configuration for this column is invalid or incomplete. + La configurazione di popolamento per questa colonna non è valida o incompleta. + + + + Select database with table to populate + Seleziona il database con la tabella da popolare + + + + Select table to populate + Seleziona la tabella da popolare + + + + You have to select at least one column. + Devi selezionare almeno una colonna. + + + + QObject + + + Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). + Impossibile modificare le colonne che sono il risultato di %1 istruzioni composte (una che include %2, %3 o %4 parole chiave). + + + + The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. + Il meccanismo di esecuzione della query ha avuto problemi con l'estrazione corretta dei ROWID. Questo potrebbe essere un bug nell'applicazione. Potresti volerlo segnalare. + + + + Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. + La colonna richiesta è il risultato di un'espressione SQL invece di una semplice selezione di colonne. Tali colonne non possono essere modificate. + + + + Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. + La colonna richiesta appartiene alla tabella SQLite limitata. Queste tabelle non possono essere modificate direttamente. + + + + Cannot edit results of query other than %1. + Impossibile modificare i risultati di query diversi da %1. + + + + Cannot edit columns that are result of aggregated %1 statements. + Impossibile modificare le colonne che sono il risultato di %1 istruzioni aggregate. + + + + Cannot edit columns that are result of %1 statement. + Impossibile modificare le colonne che sono il risultato dell'istruzione %1. + + + + Cannot edit columns that are result of common table expression statement (%1). + Impossibile modificare le colonne che sono il risultato di un'espressione di tabella comune (%1). + + + + Cannot edit table generated columns. + Impossibile modificare le colonne generate dalla tabella. + + + + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). + Impossibile modificare le colonne che sono il risultato di una vista se la query eseguita legge da qualsiasi vista multilivello (cioè una vista che interroga un'altra vista). + + + + + + + on conflict: %1 + data view tooltip + su conflitto: %1 + + + + references table %1, column %2 + data view tooltip + riferimento tabella %1, colonna %2 + + + + condition: %1 + data view tooltip + condizione: %1 + + + + collation name: %1 + data view tooltip + nome dell'ordinamento: %1 + + + + Data grid view + Visualizzazione griglia dati + + + + Edit current cell inline + Modifica la cella attuale inline + + + + Copy cell(s) contents to clipboard + Copia il contenuto delle celle negli appunti + + + + Copy cell(s) contents together with header to clipboard + Copia i contenuti delle celle insieme all'intestazione negli appunti + + + + Paste cell(s) contents from clipboard + Incolla il contenuto delle celle dagli appunti + + + + Set empty value to selected cell(s) + Imposta valore vuoto per le celle selezionate + + + + Set NULL value to selected cell(s) + Imposta valore NULL per le celle selezionate + + + + Commit changes to cell(s) contents + Esegue il commit delle modifiche ai contenuti delle celle + + + + Rollback changes to cell(s) contents + Annulla e ripristina le modifiche ai contenuti delle celle + + + + Delete selected data row + Elimina riga di dati selezionata + + + + Insert new data row + Inserisci nuova riga di dati + + + + Open contents of selected cell in a separate editor + Apre il contenuto della cella selezionata in un editor separato + + + + Toggle the height adjustment of rows + Attiva/disattiva la regolazione dell'altezza delle righe + + + + Increase font size + data view + Aumenta dimensione carattere + + + + Decrease font size + data view + Riduci dimensione carattere + + + + Total pages available: %1 + Pagine totali disponibili: %1 + + + + Total rows loaded: %1 + Righe totali caricate: %1 + + + + Data view (both grid and form) + Visualizzazione dati (sia griglia che form) + + + + Refresh data + Aggiorna dati + + + + Switch to grid view of the data + Passa alla visualizzazione a griglia dei dati + + + + Switch to form view of the data + Passa alla visualizzazione del modulo dei dati + + + + Database list + Lista database + + + + Delete selected item + Elimina elemento selezionato + + + + Clear filter contents + Cancella contenuto filtro + + + + Refresh schema + Aggiorna schema + + + + Refresh all schemas + Aggiorna tutti gli schemi + + + + Add database + Aggiungi database + + + + Select all items + Seleziona tutti gli elementi + + + + Copy selected item(s) + Copia gli elementi selezionati + + + + + + Paste from clipboard + Incolla dagli appunti + + + + Increase font size + database list + Aumenta dimensione carattere + + + + Decrease font size + database list + Riduci dimensione carattere + + + + Tables + Tabelle + + + + Indexes + Indici + + + + Triggers + Triggers + + + + Views + Viste + + + + Columns + Colonne + + + + Data form view + Vista modulo dati + + + + Commit changes for current row + Commit delle modifiche per la riga corrente + + + + Rollback changes for current row + Annulla cambiamenti per la riga corrente + + + + Go to first row on current page + Va alla prima riga della pagina corrente + + + + Go to next row + Vai alla riga successiva + + + + Go to previous row + Va alla riga precedente + + + + Go to last row on current page + Va all'ultima riga nella pagina corrente + + + + Insert new row + Inserisci nuova riga + + + + Delete current row + Elimina riga corrente + + + + Main window + Finestra principale + + + + Open SQL editor + Apri editor SQL + + + + Open DDL history window + Apri finestra cronologia DDL + + + + Open snippets editor window + Apri finestra di modifica snippet + + + + Open function editor window + Apri finestra editor funzione + + + + Open collation editor window + Apre la finestra dell'editor di ordinamento + + + + Open extension manager window + Apri finestra gestore estensioni + + + + Previous window + Finestra precedente + + + + Next window + Finestra successiva + + + + Hide status area + Nascondi area di stato + + + + Open user manual + Apri manuale utente + + + + Open configuration dialog + Apri finestra di configurazione + + + + Open Debug Console + Apri Console di Debug + + + + Open CSS Console + Apri Console CSS + + + + Open the About dialog + Apri la finestra Informazioni + + + + Quit the application + Esce dall'applicazione + + + + Cell text value editor + Editor dei valori testuali della cella + + + + + Cut selected text + Taglia il testo selezionato + + + + + Copy selected text + Copia il testo selezionato + + + + + Delete selected text + Elimina il testo selezionato + + + + + Undo + Annulla + + + + + Redo + Ripeti + + + + SQL editor input field + Campo d'immissione dell'editor SQL + + + + Select whole editor contents + Seleziona tutto il contenuto dell'editor + + + + Save contents into a file + Salva i contenuti in un file + + + + Load contents from a file + Carica contenuti da un file + + + + Find in text + Trova nel testo + + + + Find next + Trova successivo + + + + Find previous + Trova precedente + + + + Replace in text + Sostituisci nel testo + + + + Delete current line + Elimina la riga corrente + + + + Request code assistant + Richiedi assistente codice + + + + Format contents + Formato contenuti + + + + Move selected block of text one line down + Sposta il blocco di testo selezionato una riga verso il basso + + + + Move selected block of text one line up + Sposta il blocco di testo selezionato di una riga in alto + + + + Copy selected block of text and paste it a line below + Copia il blocco di testo selezionato e incollalo una riga sotto + + + + Copy selected block of text and paste it a line above + Copia il blocco di testo selezionato e incollalo una riga sopra + + + + Toggle comment + Attiva/Disattiva commento + + + + Increase font size + sql editor + Aumenta dimensione carattere + + + + Decrease font size + sql editor + Riduci dimensione carattere + + + + All SQLite databases + Tutti i database SQLite + + + + All files + Tutti i file + + + + Select database file + Seleziona file database + + + + Select + Seleziona + + + + File type + Tipo di file + + + + SQL editor window + Finestra editor SQL + + + + Execute query + Esegui query + + + + Execute single query under cursor + Esegue una singola interrogazione sotto il cursore + + + + Execute all queries in editor + Esegue tutte le query dell'editor + + + + Execute "%1" query + Esegui "%1" query + + + + Switch current working database to previous on the list + Passa il database corrente di lavoro a quello precedente nella lista + + + + Switch current working database to next on the list + Passa il database corrente di lavoro a quello successivo nella lista + + + + Go to next editor tab + Vai alla scheda successiva dell'editor + + + + Go to previous editor tab + Vai alla scheda precedente dell'editor + + + + Move keyboard input focus to the results view below + Sposta il focus sull'input della tastiera nella vista dei risultati qui sotto + + + + Move keyboard input focus to the SQL editor above + Sposta il focus sull'input della tastiera nell'editor SQL sopra + + + + Delete selected SQL history entries + Elimina le voci selezionate nella cronologia SQL + + + + Table window + Finestra tabella + + + + Commit the table structure + Commit della struttura della tabella + + + + Rollback pending changes in the table structure + Non memorizzare le modifiche nella struttura della tabella + + + + Refresh table structure + Aggiorna struttura tabella + + + + Add new column + Aggiungi nuova colonna + + + + Edit selected column + Modifica la colonna selezionata + + + + Delete selected column + Elimina la colonna selezionata + + + + Export table data + Esporta dati tabella + + + + Import data to the table + Importa dati nella tabella + + + + Add new table constraint + Aggiungi nuovo vincolo di tabella + + + + Edit selected table constraint + Modifica il vincolo di tabella selezionato + + + + Delete selected table constraint + Elimina il vincolo di tabella selezionato + + + + Refresh table index list + Aggiorna elenco indici tabella + + + + Add new index + Aggiungi un nuovo indice + + + + Edit selected index + Modifica l'indice selezionato + + + + Delete selected index + Elimina l'indice selezionato + + + + Refresh table trigger list + Aggiorna elenco trigger tabella + + + + + Add new trigger + Aggiungi nuovo trigger + + + + + Edit selected trigger + Modifica il trigger selezionato + + + + + Delete selected trigger + Elimina il trigger selezionato + + + + + Go to next tab + Vai alla scheda successiva + + + + + Go to previous tab + Vai alla scheda precedente + + + + A view window + Una finestra di visualizzazione + + + + Commit the view's query + Salva le query della vista + + + + Rollback pending changes in the view's query + Annulla le modifiche effettuate nella vista query + + + + Refresh view trigger list + Aggiorna vista elenco trigger + + + + Execute the view's query + Esegue la query della vista + + + + A code snippets editor window + Una finestra di modifica degli snippet di codice + + + + + + + Commit the pending changes + Esegue il commit delle modifiche in sospeso + + + + + + + Rollback the pending changes + Annulla le modifiche in sospeso + + + + A collation editor window + Una finestra di modifica dell'ordinamento + + + + A function editor window + Una finestra di modifica delle funzioni + + + + A SQLite extension editor window + Una finestra di modifica delle estensioni SQLite + + + + QuitConfirmDialog + + + Uncommitted changes + Modifiche senza commit + + + + Are you sure you want to quit the application? + +Following items are pending: + Sei sicuro di voler uscire dall'applicazione? + +I seguenti elementi sono in sospeso: + + + + SearchTextDialog + + + Find or replace + Trova o sostituisci + + + + Find: + Trova: + + + + Case sensitive + Distingui maiuscole + + + + Search backwards + Cerca all'indietro + + + + Regular expression matching + Espressione regolare corrispondente + + + + Replace && +find next + Sostituisci && +trova il prossimo + + + + Replace with: + Sostituisci con: + + + + Replace all + Sostituisci tutti + + + + Find + Trova + + + + SortDialog + + + Sort by columns + Ordina per colonne + + + + + Column + Colonna + + + + + Order + Ordine + + + + Sort by: %1 + Ordina per: %1 + + + + Move column up + Sposta colonna in alto + + + + Move column down + Sposta colonna in basso + + + + SqlEditor + + + Wrap words + sql editor + A capo automatico + + + + Cut + sql editor + Taglia + + + + Copy + sql editor + Copia + + + + Paste + sql editor + Incolla + + + + Delete + sql editor + Elimina + + + + Select all + sql editor + Seleziona tutto + + + + Undo + sql editor + Annulla + + + + Redo + sql editor + Ripeti + + + + Complete + sql editor + Complete + + + + Format SQL + sql editor + Formato SQL + + + + Save SQL to file + sql editor + Salva SQL su file + + + + Select file to save SQL + sql editor + Seleziona file per salvare l'SQL + + + + Load SQL from file + sql editor + Carica SQL da file + + + + Delete line + sql editor + Elimina riga + + + + Move block down + sql editor + Sposta blocco giù + + + + Move block up + sql editor + Sposta blocco su + + + + Copy block down + sql editor + Copia blocco giù + + + + Copy up down + sql editor + Copia su giù + + + + Find + sql editor + Trova + + + + Find next + sql editor + Trova successivo + + + + Find previous + sql editor + Trova precedente + + + + Replace + sql editor + Sostituisci + + + + Toggle comment + sql editor + Attiva/disattiva commento + + + + Increase font size + sql editor + Aumenta dimensione carattere + + + + Decrease font size + sql editor + Riduci dimensione carattere + + + + Could not open file '%1' for writing: %2 + Impossibile aprire il file '%1' in scrittura: %2 + + + + Saved SQL contents to file: %1 + Contenuti SQL salvati nel file: %1 + + + + Syntax completion can be used only when a valid database is set for the SQL editor. + Il completamento della sintassi può essere usato solo quando è impostato un database valido per l'editor SQL. + + + + Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. + I contenuti dell'editor SQL sono enormi, quindi gli errori di rilevamento e gli oggetti esistenti di evidenziazione sono temporaneamente disabilitati. + + + + Save to file + Salva su file + + + + SQL scripts (*.sql);;All files (*) + Script SQL (*.sql);;Tutti i file (*) + + + + Open file + Apri file + + + + Could not open file '%1' for reading: %2 + Impossibile aprire il file '%1' in lettura: %2 + + + + Reached the end of document. Hit the find again to restart the search. + Raggiunta la fine del documento. Premi nuovamente la ricerca per riavviare la ricerca. + + + + SqlQueryItem + + + Committing error: + data view tooltip + Errore di commit: + + + + Column: + data view tooltip + Colonna: + + + + Data type: + data view + Tipo di dati: + + + + Table: + data view tooltip + Tabella: + + + + Constraints: + data view tooltip + Vincoli: + + + + SqlQueryItemDelegate + + + + + + Cannot edit this cell. Details: %1 + Impossibile modificare questa cella. Dettagli: %1 + + + + The row is marked for deletion. + La riga è contrassegnata per l'eliminazione. + + + + + Structure of this table has changed since last data was loaded. Reload the data to proceed. + La struttura di questa tabella è cambiata da quando sono stati caricati gli ultimi dati. Ricarica i dati per procedere. + + + + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). + Modificare un ampio contenuto in un editor di celle in linea non è una buona idea. Può diventare lento e scomodo. È meglio modificare tali grandi contenuti in una vista modulo, o in un editor popup (disponibile sotto il menu tasto-destro). + + + + Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. + La chiave esterna per la colonna %2 ha più di %1 valori possibili. Sono troppi per essere visualizzati nell'elenco a discesa. È necessario modificare il valore manualmente. + + + + SqlQueryModel + + + + Only one query can be executed simultaneously. + Solo una query può essere eseguita contemporaneamente. + + + + Cannot execute query on undefined or invalid database. + Impossibile eseguire la query su database non definito o non valido. + + + + Cannot execute empty query. + Impossibile eseguire l'interrogazione vuota. + + + + Uncommitted data + Dati non salvati + + + + There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. + Ci sono modifiche dei dati senza commit. Vuoi procedere comunque? Tutte le modifiche senza commit andranno perse. + + + + Cannot commit the data for a cell that refers to the already closed database. + Impossibile eseguire il commit dei dati per una cella che si riferisce al database già chiuso. + + + + Could not begin transaction on the database. Details: %1 + Impossibile avviare la transazione nel database. Dettagli: %1 + + + + An error occurred while committing the transaction: %1 + Si è verificato un errore durante il commit della transazione: %1 + + + + An error occurred while rolling back the transaction: %1 + Si è verificato un errore durante il ripristino della transazione: %1 + + + + Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. + Hai provato a salvare una cella che non è modificabile (ancora modificata e in attesa di commit)! Questo è un bug. Si prega di segnalarlo. + + + + An error occurred while committing the data: %1 + Si è verificato un errore durante il commit dei dati: %1 + + + + Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. + Il numero di righe per pagina è decrementato a %1 a causa del numero di colonne (%2) nella vista dati. + + + + + Error while executing SQL query on database '%1': %2 + Errore durante l'esecuzione della query SQL nel database '%1': %2 + + + + Error while loading query results: %1 + Errore durante il caricamento dei risultati della query: %1 + + + + Insert multiple rows + Inserisci righe multiple + + + + Number of rows to insert: + Numero di righe da inserire: + + + + Delete rows + Elimina righe + + + + You're about to delete newly inserted rows that are not committed yet. Row numbers: %1 +Such deletion will be permanent. Are you sure you want to delete them? + Stai per cancellare le righe appena inserite che non sono ancora committate. Numeri di riga: %1 +Tale cancellazione sarà permanente. Sei sicuro di volerle cancellare? + + + + SqlQueryView + + + Go to referenced row in... + Vai alla riga di riferimento in... + + + + Copy + Copia + + + + Copy with headers + Copia con intestazioni + + + + Copy as... + Copia come... + + + + Paste + Incolla + + + + Paste as... + Incolla come... + + + + Set NULL values + Imposta valori NULL + + + + Erase values + Cancella valori + + + + Commit + Commit + + + + Rollback + Rollback + + + + Commit selected cells + Committa celle selezionate + + + + Rollback selected cells + Ripristina celle selezionate + + + + Edit current cell inline + Modifica la cella attuale inline + + + + Define columns to sort by + Definire le colonne da ordinare per + + + + Remove custom sorting + Rimuovi ordinamento personalizzato + + + + Insert row + Inserisci riga + + + + Insert multiple rows + Inserisci righe multiple + + + + Delete selected row + Elimina riga selezionata + + + + Adjust height of rows + Regola l'altezza delle righe + + + + Increase font size + data view + Aumenta dimensione carattere + + + + Decrease font size + data view + Riduci dimensione carattere + + + + Invert selection + data view + Inverti selezione + + + + Edit value in editor + Modifica valore nell'editor + + + + Show value in a viewer + Mostra valore in un visualizzatore + + + + Generate query for selected cells + Genera query per le celle selezionate + + + + No items selected to paste clipboard contents to. + Nessun elemento selezionato in cui incollare il contenuto degli appunti. + + + + Cannot paste data. Details: %1 + Impossibile incollare i dati. Dettagli: %1 + + + + Structure of at least one table used has changed since last data was loaded. Reload the data to proceed. + La struttura di almeno una tabella utilizzata è cambiata dall'ultimo caricamento dei dati. Ricarica i dati per procedere. + + + + Cannot paste to a cell. Details: %1 + Impossibile incollare in una cella. Dettagli: %1 + + + + The row is marked for deletion. + La riga è contrassegnata per l'eliminazione. + + + + Cannot paste to column %1. Details: %2 + Impossibile incollare nella colonna %1. Dettagli: %2 + + + + Go to referenced row in table '%1' + Vai alla riga referenziata nella tabella '%1' + + + + table '%1' + tabella '%1' + + + + Referenced row (%1) + Riga referenziata (%1) + + + + Trim pasted text? + Tagliare il testo incollato? + + + + The pasted text contains leading or trailing white space. Trim it automatically? + Il testo incollato contiene lo spazio bianco iniziale o finale. Taglio automaticamente? + + + + Paste "NULL" as null value? + Incollare "NULL" come valore nullo? + + + + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + Il testo incollato contiene "NULL" letterali. Vuoi considerarli come valori NULL? + + + + Edit value + Modifica valore + + + + SqlTableModel + + + Error while committing new row: %1 + Errore durante il commit della nuova riga: %1 + + + + Error while deleting row from table %1: %2 + Errore durante l'eliminazione della riga dalla tabella %1: %2 + + + + SqliteExtensionEditor + + + Filter extensions + Estensioni filtro + + + + Leave empty to use default function + Lascia vuoto per usare la funzione predefinita + + + + Extension file + File di estensione + + + + Initialization function + Funzione di inizializzazione + + + + Databases + Database + + + + Register in all databases + Registra in tutti i database + + + + Register in following databases: + Registra nei seguenti database: + + + + Extension manager window has uncommitted modifications. + La finestra del gestore di estensioni ha modifiche senza commit. + + + + Extension manager + Gestore estensioni + + + + Commit all extension changes + Esegue il commit di tutte le modifiche all'estensione + + + + Rollback all extension changes + Annulla tutte le modifiche all'estensione + + + + Add new extension + Aggiungi una nuova estensione + + + + Remove selected extension + Rimuovi l'estensione selezionata + + + + Editing extensions manual + Modifica le estensioni manualmente + + + + File with given path does not exist or is not readable. + Il file con percorso fornito non esiste o non è leggibile. + + + + Unable to load extension: %1 + Impossibile caricare l'estensione: %1 + + + + Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. + Nome della funzione di inizializzazione non valido. Il nome della funzione può contenere solo caratteri alfanumerici e underscore. + + + + Dynamic link libraries (*.dll);;All files (*) + Librerie di collegamento dinamico (*.dll);;Tutti i file (*) + + + + Shared objects (*.so);;All files (*) + Oggetti condivisi (*.so);;Tutti i file (*) + + + + Dynamic libraries (*.dylib);;All files (*) + Librerie dinamiche (*.dylib);;Tutti i file (*) + + + + All files (*) + Tutti i file (*) + + + + Open file + Apri file + + + + StatusField + + + Status + Stato + + + + Copy + Copia + + + + Clear + Pulisci + + + + TableConstraintsModel + + + Type + table constraints + Tipo + + + + Details + table constraints + Dettagli + + + + Name + table constraints + Nome + + + + TableForeignKeyPanel + + + Foreign table: + Tabella esterna: + + + + Columns + Colonne + + + + Local column + Colonna locale + + + + Foreign column + Colonna esterna + + + + Reactions + Reazioni + + + + Deferred foreign key + Chiave esterna differita + + + + Named constraint + Vincolo nominato + + + + Constraint name + Nome del vincolo + + + + Pick the foreign column. + Scegli la colonna esterna. + + + + Pick the foreign table. + Scegli la tabella esterna. + + + + Select at least one foreign column. + Seleziona almeno una colonna esterna. + + + + Enter a name of the constraint. + Inserisci un nome del vincolo. + + + + Foreign column + table constraints + Colonna esterna + + + + TablePrimaryKeyAndUniquePanel + + + Columns + Colonne + + + + Column + Colonna + + + + Collation + Collation + + + + Sort + Ordinamento + + + + Valid only for a single column with INTEGER data type + Valido solo per una singola colonna con tipo di dati INTEGER + + + + Autoincrement + Autoincremento + + + + Named constraint + Vincolo nominato + + + + Constraint name + Nome del vincolo + + + + On conflict + Su conflitto + + + + Collate + table constraints + Ordinamento + + + + Sort order + table constraints + Criterio di ordinamento + + + + Select at least one column. + Seleziona almeno una colonna. + + + + Enter a name of the constraint. + Inserisci un nome del vincolo. + + + + TableStructureModel + + + Name + table structure columns + Nome + + + + Data type + table structure columns + Tipo di dati + + + + Primary +Key + table structure columns + Chiave primaria + + + + Foreign +Key + table structure columns + Foreign key + + + + Unique + table structure columns + Univoco + + + + Check + table structure columns + Controllo + + + + Not +NULL + table structure columns + Non NULL + + + + Collate + table structure columns + Ordinamento + + + + Generated + table structure columns + Generato + + + + Default value + table structure columns + Valore predefinito + + + + TableWindow + + + Structure + Struttura + + + + Table name: + Nome tabella: + + + + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + <html><head/><body><p>Abilita/disabilitata la clausola WITHOUT ROWID sulla tabella. Tale tabella non avrà più la colonna &quot;rowid&quot; nascosta. Per tale tabella è obbligatoria una colonna PRIMARY KEY esplicita. Puoi leggere maggiori dettagli sull'argomento nella documentazione ufficiale SQLite.</p></body></html> + + + + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + <html><head/><body><p>Abilita/disabilita la clausola STRICT per la tabella. Tale tabella effettua una verifica rigorosa dei dati memorizzati in colonne rispetto ai tipi di dati dichiarati per queste colonne. Ciò è simile a come i tipi di dati sono di solito memorizzati nella maggior parte degli altri motori di database. Mantenerlo disabilitato per utilizzare il metodo classico SQLite (es.. nessuna forzatura di tipo). Puoi trovare maggiori dettagli nella documentazione ufficiale SQLite.</p></body></html> + + + + + Data + Dati + + + + Constraints + Vincoli + + + + Indexes + Indici + + + + Triggers + Trigger + + + + DDL + DDL + + + + Export table + table window + Esporta tabella + + + + Import data to table + table window + Importa dati nella tabella + + + + Populate table + table window + Popola tabella + + + + Refresh structure + table window + Aggiorna struttura + + + + Commit structure changes + table window + Registra modifiche struttura + + + + Rollback structure changes + table window + Ripristina modifiche struttura + + + + Add column + table window + Aggiungi colonna + + + + Edit column + table window + Modifica colonna + + + + + Delete column + table window + Elimina colonna + + + + Move column up + table window + Sposta colonna in alto + + + + Move column down + table window + Sposta colonna in basso + + + + Create similar table + table window + Crea una tabella simile + + + + Reset autoincrement value + table window + Ripristina valore autoincremento + + + + Add table constraint + table window + Aggiungi vincolo di tabella + + + + Edit table constraint + table window + Modifica vincolo di tabella + + + + Delete table constraint + table window + Elimina vincolo di tabella + + + + Move table constraint up + table window + Sposta vincolo di tabella in su + + + + Move table constraint down + table window + Sposta vincolo tabella in giù + + + + Add table primary key + table window + Aggiungi chiave primaria tabella + + + + Add table foreign key + table window + Aggiungi la chiave esterna della tabella + + + + Add table unique constraint + table window + Aggiungi un vincolo univocità di tabella + + + + Add table check constraint + table window + Aggiungi vincolo di controllo di tabella + + + + Refresh index list + table window + Aggiorna elenco indici + + + + + Create index + table window + Crea indice + + + + Edit index + table window + Modifica indice + + + + Delete index + table window + Elimina indice + + + + Refresh trigger list + table window + Aggiorna elenco trigger + + + + + Create trigger + table window + Crea trigger + + + + Edit trigger + table window + Modifica trigger + + + + Delete trigger + table window + Elimina trigger + + + + Are you sure you want to delete column '%1'? + table window + Sei sicuro di voler eliminare la colonna '%1'? + + + + Following problems will take place while modifying the table. +Would you like to proceed? + table window + I seguenti problemi si verificheranno durante la modifica della tabella. +Vuoi procedere? + + + + Table modification + table window + Modifica tabella + + + + Could not load data for table %1. Error details: %2 + Impossibile caricare i dati per la tabella %1. Dettagli errore: %2 + + + + Could not process the %1 table correctly. Unable to open a table window. + Impossibile elaborare correttamente la tabella %1. Impossibile aprire una finestra della tabella. + + + + Database + Database + + + + Could not restore window %1, because no database or table was stored in session for this window. + Impossibile ripristinare la finestra %1, perché nessun database o tabella è stato memorizzato in sessione per questa finestra. + + + + Could not restore window '%1', because no database or table was stored in session for this window. + Impossibile ripristinare la finestra '%1', perché nessun database o tabella è stato memorizzato nella sessione per questa finestra. + + + + Could not restore window '%1', because database %2 could not be resolved. + Impossibile ripristinare la finestra '%1', perché il database %2 non può essere risolto. + + + + Could not restore window '%1', because the table %2 doesn't exist in the database %3. + Impossibile ripristinare la finestra '%1', perché la tabella %2 non esiste nel database %3. + + + + + New table %1 + Nuova tabella %1 + + + + Committed changes for table '%1' successfully. + Modifiche per la tabella '%1' memorizzate con successo. + + + + Committed changes for table '%1' (named before '%2') successfully. + Modifiche memorizzate per la tabella '%1' (nominate prima del '%2') con successo. + + + + Could not commit table structure. Error message: %1 + table window + Impossibile eseguire il commit della struttura della tabella. Messaggio di errore: %1 + + + + Reset autoincrement + Reimposta l'autoincremento + + + + Are you sure you want to reset autoincrement value for table '%1'? + Sei sicuro di voler ripristinare il valore dell'incremento automatico per la tabella '%1'? + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + Si è verificato un errore durante il tentativo di ripristinare il valore dell'incremento automatico per la tabella '%1': %2 + + + + Autoincrement value for table '%1' has been reset successfully. + Il valore dell'incremento automatico per la tabella '%1' è stato ripristinato con successo. + + + + Empty name + Nome vuoto + + + + A blank name for the table is allowed in SQLite, but it is not recommended. +Are you sure you want to create a table with blank name? + Un nome vuoto per la tabella è consentito in SQLite, ma non è raccomandato. +Sei sicuro di voler creare una tabella con il nome vuoto? + + + + Cannot create a table without at least one column. + Impossibile creare una tabella senza almeno una colonna. + + + + Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. + Impossibile creare la tabella %1, se non ha una chiave primaria definita. Deselezionare la %2 o definire una chiave primaria. + + + + Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. + Impossibile usare l'auto incremento per la chiave primaria quando viene utilizzata la clausola %1. Deseleziona la casella %2 o l'auto incremento in una chiave primaria. + + + + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 + Le colonne seguenti hanno un tipo di dati non rigoroso: %1. Disabilita la modalità rigorosa della tabella o correggi i tipi di dati delle colonne. I tipi di dati rigorosi validi sono: %2 + + + + Are you sure you want to delete table constraint '%1'? + table window + Sei sicuro di voler eliminare il vincolo della tabella '%1'? + + + + Delete constraint + table window + Elimina vincolo + + + + Cannot export, because no export plugin is loaded. + Impossibile esportare, perché non è stato caricato nessun plugin di esportazione. + + + + Cannot import, because no import plugin is loaded. + Impossibile importare, perché non è stato caricato alcun plugin di importazione. + + + + Uncommitted changes + Modifiche senza commit + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + Ci sono modifiche non committate alla struttura. Non puoi sfogliare o modificare i dati finché non hai sistemato la struttura della tabella. +Vuoi committare la struttura o vuoi tornare alla scheda della struttura? + + + + Go back to structure tab + Torna alla scheda struttura + + + + Commit modifications and browse data. + Salva le modifiche e sfoglia i dati. + + + + Name + table window indexes + Nome + + + + Unique + table window indexes + Unico + + + + Columns + table window indexes + Colonne + + + + Partial index condition + table window indexes + Stato parziale dell'indice + + + + Name + table window triggers + Nome + + + + Event + table window triggers + Evento + + + + Condition + table window triggers + Condizione + + + + Details + table window triggers + Dettagli + + + + Table window "%1" has uncommitted structure modifications and data. + La finestra della tabella "%1" ha modifiche e dati della struttura senza commit. + + + + Table window "%1" has uncommitted data. + La finestra della tabella "%1" ha dati senza commit. + + + + Table window "%1" has uncommitted structure modifications. + La finestra della tabella "%1" ha modifiche della struttura senza commit. + + + + TriggerColumnsDialog + + + Trigger columns + Colonne trigger + + + + Triggering columns: + Colonne di triggering: + + + + Select all + Seleziona tutto + + + + Deselect all + Deseleziona tutto + + + + TriggerDialog + + + + Trigger + Trigger + + + + On table: + Su tabella: + + + + Action: + Azione: + + + + + <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> + <p>Condizione SQL che sarà valutata prima del codice di trigger attuale. Nel caso in cui la condizione restituisca false, il trigger non verrà eseguito per quella riga.</p> + + + + Pre-condition: + Pre-condizione: + + + + The scope is still not fully supported by the SQLite database. + Il campo di applicazione non è ancora completamente supportato dal database SQLite. + + + + Trigger name: + Nome del trigger: + + + + When: + Quando: + + + + List of columns for UPDATE OF action. + Elenco delle colonne per l'azione UPDATE OF. + + + + Scope: + Ambito: + + + + Code: + Codice: + + + + Trigger statements to be executed. + Dichiarazioni di trigger da eseguire. + + + + DDL + DDL + + + + On view: + Su vista: + + + + Could not process trigger %1 correctly. Unable to open a trigger dialog. + Impossibile elaborare correttamente il trigger %1. Impossibile aprire una finestra di trigger. + + + + Enter a valid condition. + Inserisci una condizione valida. + + + + Enter a valid trigger code. + Inserisci un codice di trigger valido. + + + + Error + trigger dialog + Errore + + + + An error occurred while executing SQL statements: +%1 + Si è verificato un errore durante l'esecuzione dei comandi SQL: +%1 + + + + VersionConvertSummaryDialog + + + Database version convert + Converti versione database + + + + Following changes to the SQL statements will be made: + Le seguenti modifiche alle istruzioni SQL saranno effettuate: + + + + Before + Prima + + + + After + Dopo + + + + ViewWindow + + + Query + Query + + + + View name: + Nome della vista: + + + + Output column names + Nomi colonne in output + + + + + Data + Dati + + + + Triggers + Trigger + + + + DDL + DDL + + + + + Could not restore window '%1', because no database or view was stored in session for this window. + Impossibile ripristinare la finestra '%1', perché non è stato memorizzato alcun database o vista nella sessione per questa finestra. + + + + Could not restore window '%1', because database %2 could not be resolved. + Impossibile ripristinare la finestra '%1', perché il database %2 non può essere risolto. + + + + Could not restore window '%1', because database %2 could not be open. + Impossibile ripristinare la finestra '%1', perché il database %2 non può essere aperto. + + + + Could not restore window '%1', because the view %2 doesn't exist in the database %3. + Impossibile ripristinare la finestra '%1', perché la vista %2 non esiste't nel database %3. + + + + + New view %1 + Nuova vista %1 + + + + Database + Database + + + + Refresh the view + view window + Aggiorna la vista + + + + Commit the view changes + view window + Commit delle modifiche alla vista + + + + Rollback the view changes + view window + Ripristina le modifiche della vista + + + + Explicit column names + Nomi espliciti delle colonne + + + + Generate output column names automatically basing on result columns of the view. + Genera i nomi delle colonne di output automaticamente basandosi sulle colonne di risultato della vista. + + + + Add column + view window + Aggiungi colonna + + + + Edit column + view window + Modifica colonna + + + + Delete column + view window + Cancellare Colonna + + + + Move column up + view window + Sposta colonna su + + + + Move column down + view window + Sposta colonna giù + + + + Refresh trigger list + view window + Aggiorna elenco trigger + + + + Create new trigger + view window + Crea nuovo trigger + + + + Edit selected trigger + view window + Modifica il trigger selezionato + + + + Delete selected trigger + view window + Elimina il trigger selezionato + + + + View window "%1" has uncommitted structure modifications and data. + Visualizza la finestra "%1" ha modifiche e dati della struttura senza commit. + + + + View window "%1" has uncommitted data. + Visualizza la finestra "%1" ha dati senza commit. + + + + View window "%1" has uncommitted structure modifications. + Visualizza la finestra "%1" ha modifiche della struttura senza commit. + + + + Could not load data for view %1. Error details: %2 + Impossibile caricare i dati per la vista %1. Dettagli errore: %2 + + + + Uncommitted changes + Modifiche senza commit + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + Ci sono modifiche della struttura senza commit. Non è possibile sfogliare o modificare i dati fino a quando non si dispone di una struttura di visualizzazione regolata. +Vuoi eseguire il commit della struttura, o vuoi tornare alla scheda Struttura? + + + + Go back to structure tab + Torna alla scheda struttura + + + + Commit modifications and browse data. + Commit delle modifiche e sfoglia i dati. + + + + View '%1' was committed successfully. + Vista '%1' commit effettuato con successo. + + + + Committed changes for view '%1' successfully. + Modifiche per la vista '%1' memorizzate con successo. + + + + Committed changes for view '%1' (named before '%2') successfully. + Modifiche per la vista '%1' (nominate prima del '%2') memorizzate con successo. + + + + Could not commit view changes. Error message: %1 + view window + Impossibile effettuare il commit delle modifiche alla visualizzazione. Messaggio di errore: %1 + + + + Override columns + Sovrascrivi colonne + + + + Currently defined columns will be overriden. Do you want to continue? + Le colonne attualmente definite saranno sovrascritte. Vuoi continuare? + + + + Could not determinate columns returned from the view. The query is problably incomplete or contains errors. + Impossibile determinare le colonne restituite dalla vista. La query è <unk> abilmente incompleta o contiene errori. + + + + Name + view window triggers + Nome + + + + Instead of + view window triggers + Invece di + + + + Condition + view window triggers + Condizione + + + + Details + table window triggers + Dettagli + + + + Could not process the %1 view correctly. Unable to open a view window. + Impossibile elaborare correttamente la vista « %1 ». Impossibile aprire una finestra di visualizzazione. + + + + Empty name + Nome vuoto + + + + A blank name for the view is allowed in SQLite, but it is not recommended. +Are you sure you want to create a view with blank name? + Un nome vuoto per la vista è consentito in SQLite, ma non è raccomandato. +Sei sicuro di voler creare una vista con il nome vuoto? + + + + The SELECT statement could not be parsed. Please correct the query and retry. +Details: %1 + L'istruzione SELECT non può essere analizzata. Correggi la richiesta e riprova. +Dettagli: %1 + + + + The view could not be modified due to internal SQLiteStudio error. Please report this! + La vista non può essere modificata a causa di un errore interno di SQLiteStudio. Si prega di segnalarlo! + + + + The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. + Il codice di visualizzazione non può essere analizzato correttamente per l'esecuzione. Questo è un bug di SQLiteStudio's. Si prega di segnalarlo. + + + + Following problems will take place while modifying the view. +Would you like to proceed? + view window + I seguenti problemi si verificheranno durante la modifica della vista. +Vuoi procedere? + + + + View modification + view window + Visualizza modifica + + + + WidgetCover + + + Interrupt + Interrompi + + + diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_ja_JP.ts b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_ja_JP.ts new file mode 100644 index 0000000..1c378fb --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_ja_JP.ts @@ -0,0 +1,7111 @@ + + + + + AboutDialog + + + About SQLiteStudio and licenses + SQLiteStudio とライセンスについて + + + + About + SQLiteStudioについて + + + + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">無料のオープンソースのクロスプラットフォームSQLiteデータベースマネージャー。<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">作成者およびアクティブなメンテナ<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + + + + Licenses + ライセンス + + + + Environment + 環境 + + + + Icon directories + アイコンディレクトリ + + + + Form directories + フォームディレクトリ + + + + SQLite extension directories + SQLite extension directories + + + + Plugin directories + プラグインディレクトリ + + + + Configuration directory + 設定ディレクトリ + + + + Application directory + アプリケーション ディレクトリ + + + + Qt version: + Qt バージョン: + + + + SQLite 3 version: + SQLite3 バージョン: + + + + Portable distribution. + ポータブル版 + + + + MacOS X application bundle distribution. + MacOS X application bundle distribution. + + + + Operating system managed distribution. + OSマネージ版 + + + + <h3>Table of contents:</h3><ol>%2</ol> + <h3>目次:</h3><ol>%2</ol> + + + + BindParamsDialog + + + Query parameters + クエリパラメータ + + + + Please provide values for query parameters + クエリパラメータの値を入力してください + + + + CodeSnippetEditor + + + Filter snippets + Filter snippets + + + + + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + + + + + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + + + + Snippet name + Snippet name + + + + Code assistant shortcut + Code assistant shortcut + + + + Snippet code + Snippet code + + + + Code Snippets editor window has uncommitted modifications. + Code Snippets editor window has uncommitted modifications. + + + + Code Snippets editor + Code Snippets editor + + + + Commit all snippet changes + Commit all snippet changes + + + + Rollback all snippet changes + Rollback all snippet changes + + + + Create new snippet + Create new snippet + + + + Delete selected snippet + Delete selected snippet + + + + Move the snippet up + Move the snippet up + + + + Move the snippet down + Move the snippet down + + + + Code snippets manual + Code snippets manual + + + + Enter a non-empty, unique name of the snippet. + Enter a non-empty, unique name of the snippet. + + + + Enter a non-empty snippet content. + Enter a non-empty snippet content. + + + + This hotkey is not unique in context of a code assistant. + This hotkey is not unique in context of a code assistant. + + + + CollationsEditor + + + Filter collations + 照合順序を絞り込む + + + + Databases + データベース + + + + Register in all databases + すべてのデータベースに登録する + + + + Register in following databases: + 次のデータベースに登録: + + + + Implementation code: + 実装コード: + + + + Collation name: + 照合順序名: + + + + Implementation language: + 実装言語: + + + + Collations editor + 照合順序エディタ + + + + Commit all collation changes + すべての照合順序の変更をコミット + + + + Rollback all collation changes + すべての照合順序の変更をロールバック + + + + Create new collation + 新しい照合順序を作成 + + + + Delete selected collation + 選択した照合順序を削除 + + + + Editing collations manual + 照合順序マニュアルの編集 + + + + Enter a non-empty, unique name of the collation. + 照合順序の空でない一意の名前を入力します。 + + + + Pick the implementation language. + 実装言語を選択します。 + + + + Enter a non-empty implementation code. + 空でない実装コードを入力します。 + + + + Collations editor window has uncommitted modifications. + 照合順序エディタウィンドウにはコミットされていない変更があります。 + + + + ColorButton + + + Pick a color + 色を選択 + + + + ColumnCollatePanel + + + Collation name: + 照合順序名: + + + + Named constraint: + 名前付き制約: + + + + Enter a name of the constraint. + 制約の名前を入力します。 + + + + Enter a collation name. + 照合順序名を入力します。 + + + + ColumnDefaultPanel + + + Default value: + デフォルト値: + + + + Named constraint: + 名前付き制約: + + + + Enter a default value expression. + デフォルト値の式を入力します。 + + + + Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. + デフォルト値の式%1 は無効です. 単純な文字列を値として使用する場合は、引用符で囲んでください。 + + + + Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. + 無効なデフォルト値です。単純な文字列を値として使用する場合は、引用符で囲んでください。 + + + + Enter a name of the constraint. + 制約の名前を入力します。 + + + + ColumnDialog + + + Column + + + + + Name and type + 名前と種類 + + + + Scale + スケール + + + + Precision + 精度 + + + + Data type: + データ型: + + + + Column name: + 列名: + + + + Size: + サイズ: + + + + Constraints + 制約 + + + + Generated value + 生成された値 + + + + Unique + 一意 + + + + + + + + + + + Configure + 設定 + + + + Foreign Key +  外部キー + + + + Collate + 照合順序 + + + + Not NULL + NULL非許容 + + + + Check condition + 条件をチェック + + + + Primary Key + 主キー + + + + Default + デフォルト + + + + Advanced mode + 上級者向けモード + + + + Add constraint + column dialog + 制約の追加 + + + + Edit constraint + column dialog + 制約を編集 + + + + + Delete constraint + column dialog + 制約を削除 + + + + Move constraint up + column dialog + 制約を上へ移動 + + + + Move constraint down + column dialog + 制約を下に移動 + + + + Add a primary key + column dialog + 主キーを追加 + + + + Add a foreign key + column dialog + 外部キーを追加 + + + + Add an unique constraint + column dialog + 一意制約を追加 + + + + Add a check constraint + column dialog + チェック制約を追加 + + + + Add a not null constraint + column dialog + Add a not null constraint + + + + Add a collate constraint + column dialog + Add a collate constraint + + + + Add a generated value constraint + column dialog + Add a generated value constraint + + + + Add a default constraint + column dialog + Add a default constraint + + + + Are you sure you want to delete constraint '%1'? + column dialog + Are you sure you want to delete constraint '%1'? + + + + Correct the constraint's configuration. + Correct the constraint's configuration. + + + + Scale is not allowed for INTEGER PRIMARY KEY columns. + Scale is not allowed for INTEGER PRIMARY KEY columns. + + + + Precision cannot be defined without the scale. + Precision cannot be defined without the scale. + + + + Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. + Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. + + + + INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. + INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. + + + + Precision is not allowed for INTEGER PRIMARY KEY columns. + Precision is not allowed for INTEGER PRIMARY KEY columns. + + + + Could not match valid STRICT table datatype from declared type: %1. + Could not match valid STRICT table datatype from declared type: %1. + + + + ColumnDialogConstraintsModel + + + Type + column dialog constraints + Type + + + + Name + column dialog constraints + Name + + + + Details + column dialog constraints + Details + + + + ColumnForeignKeyPanel + + + Foreign table: + Foreign table: + + + + Foreign column: + Foreign column: + + + + Reactions + Reactions + + + + Deferred foreign key + Deferred foreign key + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + Pick the foreign table. + Pick the foreign table. + + + + Pick the foreign column. + Pick the foreign column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ColumnGeneratedPanel + + + Generating code: + Generating code: + + + + Explicit type: + Explicit type: + + + + Use "GENERATED ALWAYS" keywords + Use "GENERATED ALWAYS" keywords + + + + Named constraint: + Named constraint: + + + + Enter the column value generating expression. + Enter the column value generating expression. + + + + Invalid value generating expression: %1. + Invalid value generating expression: %1. + + + + Invalid value generating expression. + Invalid value generating expression. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ColumnPrimaryKeyPanel + + + Autoincrement + Autoincrement + + + + Sort order: + Sort order: + + + + Named constraint: + Named constraint: + + + + On conflict: + On conflict: + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + Descending order is not allowed with AUTOINCREMENT. + Descending order is not allowed with AUTOINCREMENT. + + + + ColumnUniqueAndNotNullPanel + + + Named constraint: + Named constraint: + + + + On conflict: + On conflict: + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + CompleterWindow + + + Column: %1 + completer statusbar + Column: %1 + + + + Table: %1 + completer statusbar + Table: %1 + + + + Index: %1 + completer statusbar + Index: %1 + + + + Trigger: %1 + completer statusbar + Trigger: %1 + + + + View: %1 + completer statusbar + View: %1 + + + + Database: %1 + completer statusbar + Database: %1 + + + + Keyword: %1 + completer statusbar + Keyword: %1 + + + + Function: %1 + completer statusbar + Function: %1 + + + + Operator: %1 + completer statusbar + Operator: %1 + + + + String + completer statusbar + String + + + + Number + completer statusbar + Number + + + + Binary data + completer statusbar + Binary data + + + + Collation: %1 + completer statusbar + Collation: %1 + + + + Pragma function: %1 + completer statusbar + Pragma function: %1 + + + + Insert a code snippet + Insert a code snippet + + + + ConfigDialog + + + + Configuration + Configuration + + + + Search + Search + + + + General + General + + + + Keyboard shortcuts + Keyboard shortcuts + + + + Look & feel + Look & feel + + + + Style + Style + + + + Fonts + Fonts + + + + Code colors + Code colors + + + + + Database list + Database list + + + + Code assistant + Code assistant + + + + Data browsing + Data browsing + + + + Data editors + Data editors + + + + Plugins + Plugins + + + + Code formatters + Code formatters + + + + If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. + If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. + + + + Sort table columns alphabetically + Sort table columns alphabetically + + + + Expand tables node when connected to a database + Expand tables node when connected to a database + + + + <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> + <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> + + + + Display additional labels on the list + Display additional labels on the list + + + + For regular tables labels will show number of columns, indexes and triggers for each of tables. + For regular tables labels will show number of columns, indexes and triggers for each of tables. + + + + Display labels for regular tables + Display labels for regular tables + + + + Virtual tables will be marked with a 'virtual' label. + Virtual tables will be marked with a 'virtual' label. + + + + Display labels for virtual tables + Display labels for virtual tables + + + + Expand views node when connected to a database + Expand views node when connected to a database + + + + If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) + If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) + + + + Sort objects (tables, indexes, triggers and views) alphabetically + Sort objects (tables, indexes, triggers and views) alphabetically + + + + Display system tables and indexes on the list + Display system tables and indexes on the list + + + + Database dialog window + Database dialog window + + + + <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> + <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> + + + + Do not mark database to be "permanent" by default + Do not mark database to be "permanent" by default + + + + <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> + <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> + + + + Try to bypass dialog completly when dropping database file onto the list + Try to bypass dialog completly when dropping database file onto the list + + + + Data browsing and editing + Data browsing and editing + + + + + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + + + + Number of memorized table populating configurations + Number of memorized table populating configurations + + + + Data column width + Data column width + + + + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + + + + Enlarge column when entering value longer than current width + Enlarge column when entering value longer than current width + + + + <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> + <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> + + + + Number of data rows per page: + Number of data rows per page: + + + + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> + + + + Show column and row details tooltip in data view + Show column and row details tooltip in data view + + + + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + + + + Keep NULL value when entering empty value + Keep NULL value when entering empty value + + + + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> + + + + Use DEFAULT value (if defined), when committing NULL value + Use DEFAULT value (if defined), when committing NULL value + + + + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + + + + Limit number of rows for in case of dozens of columns + Limit number of rows for in case of dozens of columns + + + + Inserting new row in data grid + Inserting new row in data grid + + + + Before currently selected row + Before currently selected row + + + + After currently selected row + After currently selected row + + + + At the end of data view + At the end of data view + + + + Table windows + Table windows + + + + <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> + <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> + + + + Open Table Windows with the data tab for start + Open Table Windows with the data tab for start + + + + <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> + <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> + + + + Place data tab as first tab in a Table Window + Place data tab as first tab in a Table Window + + + + View windows + View windows + + + + <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> + <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> + + + + Open View Windows with the data tab for start + Open View Windows with the data tab for start + + + + <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> + <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> + + + + Place data tab as first tab in a View Window + Place data tab as first tab in a View Window + + + + Data types + Data types + + + + Available editors: + Available editors: + + + + Editors selected for this data type: + Editors selected for this data type: + + + + Schema editing + Schema editing + + + + Number of DDL changes kept in history. + Number of DDL changes kept in history. + + + + DDL history size: + DDL history size: + + + + Don't show DDL preview dialog when committing schema changes + Don't show DDL preview dialog when committing schema changes + + + + SQL queries + SQL queries + + + + + Number of queries kept in the history. + Number of queries kept in the history. + + + + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> + + + + History size: + History size: + + + + + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> + + + + Execute only the query under the cursor + Execute only the query under the cursor + + + + Number of memorized query parameters + Number of memorized query parameters + + + + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + + + + Use scientific notation for real numbers in the grid view + Use scientific notation for real numbers in the grid view + + + + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + + + + Limit automatic data column width to (in pixels): + Limit automatic data column width to (in pixels): + + + + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + + + + Keep at least the width to show complete column name + Keep at least the width to show complete column name + + + + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + + + + Wrap lines in SQL editor + Wrap lines in SQL editor + + + + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + + + + Highlight current query + Highlight current query + + + + Updates + Updates + + + + Automatically check for updates at startup + Automatically check for updates at startup + + + + Session + Session + + + + Restore last session (active MDI windows) after startup + Restore last session (active MDI windows) after startup + + + + Allow multiple instances of the application at the same time + Allow multiple instances of the application at the same time + + + + Status Field + Status Field + + + + <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> + <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> + + + + Always open Status panel when new message is printed + Always open Status panel when new message is printed + + + + Code syntax colors + Code syntax colors + + + + Keyword foreground + Keyword foreground + + + + Regular foreground + Regular foreground + + + + String foreground + String foreground + + + + Comment foreground + Comment foreground + + + + Valid objects foreground + Valid objects foreground + + + + Current query background + Current query background + + + + Bind parameter foreground + Bind parameter foreground + + + + Current line background + Current line background + + + + Matched parenthesis background + Matched parenthesis background + + + + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + + + + Number foreground + Number foreground + + + + BLOB value foreground + BLOB value foreground + + + + Matched parenthesis foreground + Matched parenthesis foreground + + + + Reset to defaults + Reset to defaults + + + + Filter shortcuts by name or key combination + Filter shortcuts by name or key combination + + + + Action + Action + + + + Key combination + Key combination + + + + + Language + Language + + + + Changing language requires application restart to take effect. + Changing language requires application restart to take effect. + + + + Compact layout + Compact layout + + + + <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> + <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> + + + + Use compact layout + Use compact layout + + + + Main window dock areas + Main window dock areas + + + + Left and right areas occupy corners + Left and right areas occupy corners + + + + Top and bottom areas occupy corners + Top and bottom areas occupy corners + + + + Hide built-in plugins + Hide built-in plugins + + + + Current style: + Current style: + + + + Preview + Preview + + + + Enabled + Enabled + + + + Disabled + Disabled + + + + Active formatter plugin + Active formatter plugin + + + + SQL editor font + SQL editor font + + + + Database list font + Database list font + + + + Database list additional label font + Database list additional label font + + + + Data view font + Data view font + + + + Status field font + Status field font + + + + Code assistant settings + Code assistant settings + + + + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + + + + Automatically trigger the assistant after a dot is typed after an object name + Automatically trigger the assistant after a dot is typed after an object name + + + + Description: + plugin details + Description: + + + + Category: + plugin details + Category: + + + + Version: + plugin details + Version: + + + + Author: + plugin details + Author: + + + + Internal name: + plugin details + Internal name: + + + + Dependencies: + plugin details + Dependencies: + + + + Conflicts: + plugin details + Conflicts: + + + + Plugin details + Plugin details + + + + Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. + Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. + + + + %1 (built-in) + plugins manager in configuration dialog + %1 (built-in) + + + + Details + Details + + + + No plugins in this category. + No plugins in this category. + + + + Add new data type + Add new data type + + + + Rename selected data type + Rename selected data type + + + + Delete selected data type + Delete selected data type + + + + Help for configuring data type editors + Help for configuring data type editors + + + + Clear hotkey for this action + Clear hotkey for this action + + + + Restore original hotkey for this action + Restore original hotkey for this action + + + + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + + + + ConstraintCheckPanel + + + The condition + The condition + + + + Named constraint: + Named constraint: + + + + On conflict + On conflict + + + + Enter a valid condition. + Enter a valid condition. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ConstraintDialog + + + New constraint + constraint dialog + New constraint + + + + Create + constraint dialog + Create + + + + Edit constraint + dialog window + Edit constraint + + + + Apply + constraint dialog + Apply + + + + Primary key + table constraints + Primary key + + + + Foreign key + table constraints + Foreign key + + + + Unique + table constraints + Unique + + + + Not NULL + table constraints + Not NULL + + + + Check + table constraints + Check + + + + Generated + table constraints + Generated + + + + Collate + table constraints + Collate + + + + Default + table constraints + Default + + + + ConstraintTabModel + + + Table + table constraints + Table + + + + Column (%1) + table constraints + Column (%1) + + + + Scope + table constraints + Scope + + + + Type + table constraints + Type + + + + Details + table constraints + Details + + + + Name + table constraints + Name + + + + CssDebugDialog + + + SQLiteStudio CSS console + SQLiteStudio CSS console + + + + DataView + + + Filter data + data view + Filter data + + + + Grid view + Grid view + + + + Form view + Form view + + + + Refresh table data + data view + Refresh table data + + + + First page + data view + First page + + + + Previous page + data view + Previous page + + + + Next page + data view + Next page + + + + Last page + data view + Last page + + + + Commit changes for selected cells + data view + Commit changes for selected cells + + + + Rollback changes for selected cells + data view + Rollback changes for selected cells + + + + Show grid view of results + data view + Show grid view of results + + + + Show form view of results + data view + Show form view of results + + + + Filter by text (if contains) + data view + Filter by text (if contains) + + + + Filter strictly by text (if equals) + data view + Filter strictly by text (if equals) + + + + Tabs on top + data view + Tabs on top + + + + Tabs at bottom + data view + Tabs at bottom + + + + Place new rows above selected row + data view + Place new rows above selected row + + + + Place new rows below selected row + data view + Place new rows below selected row + + + + Place new rows at the end of the data view + data view + Place new rows at the end of the data view + + + + Total number of rows is being counted. +Browsing other pages will be possible after the row counting is done. + Total number of rows is being counted. +Browsing other pages will be possible after the row counting is done. + + + + Row: %1 + Row: %1 + + + + Filter + Filter + + + + Hit Enter key or press "Apply filter" button on toolbar to apply new value. + Hit Enter key or press "Apply filter" button on toolbar to apply new value. + + + + Filter by the Regular Expression + data view + Filter by the Regular Expression + + + + Filter by SQL expression + data view + Filter by SQL expression + + + + Show filter inputs per column + data view + Show filter inputs per column + + + + Apply filter + data view + Apply filter + + + + DbDialog + + + Database + Database + + + + Database type + Database type + + + + Database driver + Database driver + + + + + File + File + + + + Name (on the list) + Name (on the list) + + + + Options + Options + + + + <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> + aasfd + <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> + + + + Permanent (keep it in configuration) + Permanent (keep it in configuration) + + + + Test connection + Test connection + + + + Select new or existing file on local computer + Select new or existing file on local computer + + + + Browse + Browse + + + + Database type not selected. + Database type not selected. + + + + Database path not specified. + Database path not specified. + + + + Enter an unique database name. + Enter an unique database name. + + + + This name is already in use. Please enter unique name. + This name is already in use. Please enter unique name. + + + + <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> + <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> + + + + Enter a database file path. + Enter a database file path. + + + + This database is already on the list under name: %1 + This database is already on the list under name: %1 + + + + Select a database type. + Select a database type. + + + + DbObjectDialogs + + + Delete table + Delete table + + + + Are you sure you want to delete table %1? + Are you sure you want to delete table %1? + + + + Delete index + Delete index + + + + Are you sure you want to delete index %1? + Are you sure you want to delete index %1? + + + + Delete trigger + Delete trigger + + + + Are you sure you want to delete trigger %1? + Are you sure you want to delete trigger %1? + + + + Delete view + Delete view + + + + Are you sure you want to delete view %1? + Are you sure you want to delete view %1? + + + + + Error while dropping %1: %2 + Error while dropping %1: %2 + + + + Delete objects + Delete objects + + + + Are you sure you want to delete following objects: +%1 + Are you sure you want to delete following objects: +%1 + + + + Cannot start transaction. Details: %1 + Cannot start transaction. Details: %1 + + + + Cannot commit transaction. Details: %1 + Cannot commit transaction. Details: %1 + + + + DbTree + + + Databases + Databases + + + + Filter by name + Filter by name + + + + Copy + Copy + + + + Paste + Paste + + + + Select all + Select all + + + + Create a group + Create a group + + + + Delete the group + Delete the group + + + + Rename the group + Rename the group + + + + &Add a database + &Add a database + + + + &Edit the database + &Edit the database + + + + &Remove the database + &Remove the database + + + + &Connect to the database + &Connect to the database + + + + &Disconnect from the database + &Disconnect from the database + + + + Import + Import + + + + &Export the database + &Export the database + + + + Vac&uum + Vac&uum + + + + &Integrity check + &Integrity check + + + + Create a &table + Create a &table + + + + Edit the t&able + Edit the t&able + + + + Delete the ta&ble + Delete the ta&ble + + + + Export the table + Export the table + + + + Import into the table + Import into the table + + + + Populate table + Populate table + + + + Create similar table + Create similar table + + + + Reset autoincrement sequence + Reset autoincrement sequence + + + + Create an &index + Create an &index + + + + Edit the i&ndex + Edit the i&ndex + + + + Delete the in&dex + Delete the in&dex + + + + Create a trig&ger + Create a trig&ger + + + + Edit the trigg&er + Edit the trigg&er + + + + Delete the trigge&r + Delete the trigge&r + + + + Create a &view + Create a &view + + + + Edit the v&iew + Edit the v&iew + + + + Delete the vi&ew + Delete the vi&ew + + + + Add a column + Add a column + + + + Edit the column + Edit the column + + + + Delete the column + Delete the column + + + + Delete selected items + Delete selected items + + + + Clear filter + Clear filter + + + + &Refresh all database schemas + &Refresh all database schemas + + + + Re&fresh selected database schema + Re&fresh selected database schema + + + + + Erase table data + Erase table data + + + + Open file's directory + Open file's directory + + + + Execute SQL from file + Execute SQL from file + + + + Increase font size + database list + Increase font size + + + + Decrease font size + database list + Decrease font size + + + + + Database + Database + + + + Grouping + Grouping + + + + Generate query for table + Generate query for table + + + + + Create group + Create group + + + + Group name + Group name + + + + Entry with name %1 already exists in group %2. + Entry with name %1 already exists in group %2. + + + + Delete group + Delete group + + + + Are you sure you want to delete group %1? +All objects from this group will be moved to parent group. + Are you sure you want to delete group %1? +All objects from this group will be moved to parent group. + + + + Are you sure you want to remove database '%1' from the list? + Are you sure you want to remove database '%1' from the list? + + + + Are you sure you want to remove following databases from the list: +%1 + Are you sure you want to remove following databases from the list: +%1 + + + + Remove database + Remove database + + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Vacuum (%1) + Vacuum (%1) + + + + Integrity check (%1) + Integrity check (%1) + + + + Reset autoincrement + Reset autoincrement + + + + Are you sure you want to reset autoincrement value for table '%1'? + Are you sure you want to reset autoincrement value for table '%1'? + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + An error occurred while trying to reset autoincrement value for table '%1': %2 + + + + Autoincrement value for table '%1' has been reset successfully. + Autoincrement value for table '%1' has been reset successfully. + + + + Are you sure you want to delete all data from table(s): %1? + Are you sure you want to delete all data from table(s): %1? + + + + An error occurred while trying to delete data from table '%1': %2 + An error occurred while trying to delete data from table '%1': %2 + + + + All data has been deleted for table '%1'. + All data has been deleted for table '%1'. + + + + Following objects will be deleted: %1. + Following objects will be deleted: %1. + + + + Following databases will be removed from list: %1. + Following databases will be removed from list: %1. + + + + Remainig objects from deleted group will be moved in place where the group used to be. + Remainig objects from deleted group will be moved in place where the group used to be. + + + + %1<br><br>Are you sure you want to continue? + %1<br><br>Are you sure you want to continue? + + + + Delete objects + Delete objects + + + + DbTreeItemDelegate + + + error + dbtree labels + error + + + + (system table) + database tree label + (system table) + + + + (virtual) + virtual table label + (virtual) + + + + (system index) + database tree label + (system index) + + + + DbTreeModel + + + Database: %1 + dbtree tooltip + Database: %1 + + + + URI: + dbtree tooltip + URI: + + + + Version: + dbtree tooltip + Version: + + + + File size: + dbtree tooltip + File size: + + + + Encoding: + dbtree tooltip + Encoding: + + + + Error: + dbtree tooltip + Error: + + + + Table : %1 + dbtree tooltip + Table : %1 + + + + Columns (%1): + dbtree tooltip + Columns (%1): + + + + Indexes (%1): + dbtree tooltip + Indexes (%1): + + + + Triggers (%1): + dbtree tooltip + Triggers (%1): + + + + Copy + Copy + + + + Move + Move + + + + Include data + Include data + + + + Include indexes + Include indexes + + + + Include triggers + Include triggers + + + + Abort + Abort + + + + Could not add dropped database file '%1' automatically. Manual setup is necessary. + Could not add dropped database file '%1' automatically. Manual setup is necessary. + + + + Referenced tables + Referenced tables + + + + Do you want to include following referenced tables as well: +%1 + Do you want to include following referenced tables as well: +%1 + + + + Name conflict + Name conflict + + + + Following object already exists in the target database. +Please enter new, unique name, or press '%1' to abort the operation: + Following object already exists in the target database. +Please enter new, unique name, or press '%1' to abort the operation: + + + + SQL statements conversion + SQL statements conversion + + + + Following error occurred while converting SQL statements to the target SQLite version: + Following error occurred while converting SQL statements to the target SQLite version: + + + + Would you like to ignore those errors and proceed? + Would you like to ignore those errors and proceed? + + + + DdlHistoryWindow + + + Filter by database: + Filter by database: + + + + Clear entire history + Clear entire history + + + + -- Queries executed on database %1 (%2) +-- Date and time of execution: %3 +%4 + -- Queries executed on database %1 (%2) +-- Date and time of execution: %3 +%4 + + + + Clear history + Clear history + + + + Are you sure you want to erase entire DDL history? + Are you sure you want to erase entire DDL history? + + + + DDL history + DDL history + + + + DdlPreviewDialog + + + Queries to be executed + Queries to be executed + + + + Don't show again + Don't show again + + + + DebugConsole + + + SQLiteStudio Debug Console + SQLiteStudio Debug Console + + + + EditorWindow + + + SQL editor + SQL editor + + + + Query + Query + + + + History + History + + + + Results in the separate tab + Results in the separate tab + + + + Results below the query + Results below the query + + + + + SQL editor %1 + SQL editor %1 + + + + + Results + Results + + + + Execute query + Execute query + + + + Explain query + Explain query + + + + Clear execution history + sql editor + Clear execution history + + + + Export results + sql editor + Export results + + + + Create view from query + sql editor + Create view from query + + + + Previous database + Previous database + + + + Next database + Next database + + + + Show next tab + sql editor + Show next tab + + + + Show previous tab + sql editor + Show previous tab + + + + Focus results below + sql editor + Focus results below + + + + Focus SQL editor above + sql editor + Focus SQL editor above + + + + Delete selected SQL history entries + sql editor + Delete selected SQL history entries + + + + Execute single query under cursor + Execute single query under cursor + + + + Execute all queries in editor + Execute all queries in editor + + + + Active database (%1/%2) + Active database (%1/%2) + + + + Query finished in %1 second(s). Rows affected: %2 + Query finished in %1 second(s). Rows affected: %2 + + + + Query finished in %1 second(s). + Query finished in %1 second(s). + + + + Clear execution history + Clear execution history + + + + Are you sure you want to erase the entire SQL execution history? This cannot be undone. + Are you sure you want to erase the entire SQL execution history? This cannot be undone. + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + No database selected in the SQL editor. Cannot create a view for unknown database. + No database selected in the SQL editor. Cannot create a view for unknown database. + + + + Editor window "%1" has uncommitted data. + Editor window "%1" has uncommitted data. + + + + ErrorsConfirmDialog + + + Errors + Errors + + + + Following errors occured: + Following errors occured: + + + + Would you like to proceed? + Would you like to proceed? + + + + ExecFromFileDialog + + + Execute SQL from file + Execute SQL from file + + + + Input file + Input file + + + + Path to file + Path to file + + + + Browse for file + Browse for file + + + + Options + Options + + + + File encoding + File encoding + + + + Skip failing SQL statements + Skip failing SQL statements + + + + SQL scripts (*.sql);;All files (*) + SQL scripts (*.sql);;All files (*) + + + + Execute SQL file + Execute SQL file + + + + Please provide file to be executed. + Please provide file to be executed. + + + + Provided file does not exist or cannot be read. + Provided file does not exist or cannot be read. + + + + ExportDialog + + + Export + Export + + + + What do you want to export? + What do you want to export? + + + + A database + A database + + + + A single table + A single table + + + + Query results + Query results + + + + Table to export + Table to export + + + + Database + Database + + + + Table + Table + + + + Options + Options + + + + When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. + When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. + + + + Export table data + Export table data + + + + Export table indexes + Export table indexes + + + + Export table triggers + Export table triggers + + + + Note, that exporting table indexes and triggers may be unsupported by some output formats. + Note, that exporting table indexes and triggers may be unsupported by some output formats. + + + + Select database objects to export + Select database objects to export + + + + Export data from tables + Export data from tables + + + + Select all + Select all + + + + Deselect all + Deselect all + + + + + Database: + Database: + + + + Query to export results for + Query to export results for + + + + Query to be executed for results: + Query to be executed for results: + + + + Export format and options + Export format and options + + + + Export format + Export format + + + + Output + Output + + + + Exported file path + Exported file path + + + + Clipboard + Clipboard + + + + File + File + + + + Exported text encoding: + Exported text encoding: + + + + Export format options + Export format options + + + + Cancel + Cancel + + + + + + Select database to export. + Select database to export. + + + + Select table to export. + Select table to export. + + + + Enter valid query to export. + Enter valid query to export. + + + + Select at least one object to export. + Select at least one object to export. + + + + You must provide a file name to export to. + You must provide a file name to export to. + + + + Path you provided is an existing directory. You cannot overwrite it. + Path you provided is an existing directory. You cannot overwrite it. + + + + The directory '%1' does not exist. + The directory '%1' does not exist. + + + + The file '%1' exists and will be overwritten. + The file '%1' exists and will be overwritten. + + + + All files (*) + All files (*) + + + + Pick file to export to + Pick file to export to + + + + Internal error during export. This is a bug. Please report it. + Internal error during export. This is a bug. Please report it. + + + + FileExecErrorsDialog + + + Execution errors + Execution errors + + + + Following errors were encountered during execution of SQL statements from the file: + Following errors were encountered during execution of SQL statements from the file: + + + + SQL + SQL + + + + Error + Error + + + + Statements that were executed successfully were commited. + Statements that were executed successfully were commited. + + + + Statements that were executed successfully were rolled back. + Statements that were executed successfully were rolled back. + + + + FkComboBox + + + Cannot edit this cell. Details: %1 + Cannot edit this cell. Details: %1 + + + + FontEdit + + + Choose font + font configuration + Choose font + + + + Form + + + Active SQL formatter plugin + Active SQL formatter plugin + + + + FormView + + + Commit row + form view + Commit row + + + + Rollback row + form view + Rollback row + + + + First row + form view + First row + + + + Previous row + form view + Previous row + + + + Next row + form view + Next row + + + + Last row + form view + Last row + + + + Insert new row + form view + Insert new row + + + + Delete current row + form view + Delete current row + + + + FunctionsEditor + + + Filter functions + Filter functions + + + + Input arguments + Input arguments + + + + Undefined + Undefined + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Type: + Type: + + + + Function name: + Function name: + + + + Implementation language: + Implementation language: + + + + Deterministic + Deterministic + + + + Initialization code: + Initialization code: + + + + + Function implementation code: + Function implementation code: + + + + Final step implementation code: + Final step implementation code: + + + + SQL functions editor + SQL functions editor + + + + Commit all function changes + Commit all function changes + + + + Rollback all function changes + Rollback all function changes + + + + Create new function + Create new function + + + + Delete selected function + Delete selected function + + + + Custom SQL functions manual + Custom SQL functions manual + + + + Add function argument + Add function argument + + + + Rename function argument + Rename function argument + + + + Delete function argument + Delete function argument + + + + Move function argument up + Move function argument up + + + + Move function argument down + Move function argument down + + + + Scalar + Scalar + + + + Aggregate + Aggregate + + + + Enter a non-empty, unique name of the function. + Enter a non-empty, unique name of the function. + + + + Pick the implementation language. + Pick the implementation language. + + + + Per step code: + Per step code: + + + + Enter a non-empty implementation code. + Enter a non-empty implementation code. + + + + argument + new function argument name in function editor window + argument + + + + Functions editor window has uncommitted modifications. + Functions editor window has uncommitted modifications. + + + + ImportDialog + + + Import data + Import data + + + + Table to import to + Table to import to + + + + Table + Table + + + + Database + Database + + + + Data source to import from + Data source to import from + + + + Data source type + Data source type + + + + Options + Options + + + + Text encoding: + Text encoding: + + + + Input file: + Input file: + + + + <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> + <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> + + + + Ignore errors + Ignore errors + + + + Data source options + Data source options + + + + Cancel + Cancel + + + + If you type table name that doesn't exist, it will be created. + If you type table name that doesn't exist, it will be created. + + + + Enter the table name + Enter the table name + + + + Select import plugin. + Select import plugin. + + + + You must provide a file to import from. + You must provide a file to import from. + + + + The file '%1' does not exist. + The file '%1' does not exist. + + + + Path you provided is a directory. A regular file is required. + Path you provided is a directory. A regular file is required. + + + + Pick file to import from + Pick file to import from + + + + IndexDialog + + + + Index + Index + + + + Column + Column + + + + Sort + Sort + + + + Collation + Collation + + + + On table: + On table: + + + + Delete selected indexed expression + Delete selected indexed expression + + + + Moves selected index column up in the order, making it more significant in the index. + Moves selected index column up in the order, making it more significant in the index. + + + + Moves selected index column down in the order, making it less significant in the index. + Moves selected index column down in the order, making it less significant in the index. + + + + Partial index condition + Partial index condition + + + + Unique index + Unique index + + + + Index name: + Index name: + + + + Edit selected indexed expression + Edit selected indexed expression + + + + Add indexed expression + Add indexed expression + + + + DDL + DDL + + + + Tried to open index dialog for closed or inexisting database. + Tried to open index dialog for closed or inexisting database. + + + + Could not process index %1 correctly. Unable to open an index dialog. + Could not process index %1 correctly. Unable to open an index dialog. + + + + Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. + Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. + + + + Pick the table for the index. + Pick the table for the index. + + + + Select at least one column. + Select at least one column. + + + + Enter a valid condition. + Enter a valid condition. + + + + default + index dialog + default + + + + Sort order + table constraints + Sort order + + + + + Error + index dialog + Error + + + + Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? + Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? + + + + An error occurred while executing SQL statements: +%1 + An error occurred while executing SQL statements: +%1 + + + + IndexExprColumnDialog + + + Indexed expression + Indexed expression + + + + Expression to index + Expression to index + + + + This expression is already indexed by the index. + This expression is already indexed by the index. + + + + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. + + + + Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. + Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. + + + + It's forbidden to use 'SELECT' statements in indexed expressions. + It's forbidden to use 'SELECT' statements in indexed expressions. + + + + Enter an indexed expression. + Enter an indexed expression. + + + + Invalid expression. + Invalid expression. + + + + LanguageDialog + + + Language + Language + + + + Please choose language: + Please choose language: + + + + MainWindow + + + Database toolbar + Database toolbar + + + + Structure toolbar + Structure toolbar + + + + Tools + Tools + + + + Window list + Window list + + + + View toolbar + View toolbar + + + + Configuration widgets + Configuration widgets + + + + Syntax highlighting engines + Syntax highlighting engines + + + + Data editors + Data editors + + + + Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. + Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. + + + + Running in debug mode. Debug messages are printed to the standard output. + Running in debug mode. Debug messages are printed to the standard output. + + + + You need to restart application to make the language change take effect. + You need to restart application to make the language change take effect. + + + + Open SQL &editor + Open SQL &editor + + + + Open DDL &history + Open DDL &history + + + + Open SQL &functions editor + Open SQL &functions editor + + + + Open code &snippets editor + Open code &snippets editor + + + + Open &collations editor + Open &collations editor + + + + Open ex&tension manager + Open ex&tension manager + + + + &Import + &Import + + + + E&xport + E&xport + + + + Open confi&guration dialog + Open confi&guration dialog + + + + &Tile windows + &Tile windows + + + + Tile windows &horizontally + Tile windows &horizontally + + + + Tile windows &vertically + Tile windows &vertically + + + + &Cascade windows + &Cascade windows + + + + Next window + Next window + + + + Previous window + Previous window + + + + Hide status field + Hide status field + + + + Close &all windows + Close &all windows + + + + Re&store recently closed window + Re&store recently closed window + + + + Close current &window + Close current &window + + + + Close &other windows + Close &other windows + + + + Close windows on the &left + Close windows on the &left + + + + Close windows on the &right + Close windows on the &right + + + + Re&name selected window + Re&name selected window + + + + Open Debug Console + Open Debug Console + + + + Open CSS Console + Open CSS Console + + + + Report a &bug + Report a &bug + + + + D&onate + D&onate + + + + Propose a new &feature + Propose a new &feature + + + + &About + &About + + + + &Licenses + &Licenses + + + + Open home &page + Open home &page + + + + User &Manual + User &Manual + + + + SQLite &documentation + SQLite &documentation + + + + Bugs and feature &requests + Bugs and feature &requests + + + + Quit + Quit + + + + Check for &updates + Check for &updates + + + + &Database + menubar + &Database + + + + &Structure + menubar + &Structure + + + + &View + menubar + &View + + + + Window list + menubar view menu + Window list + + + + &Tools + menubar + &Tools + + + + &Help + &Help + + + + Could not set style: %1 + main window + Could not set style: %1 + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + Rename window + Rename window + + + + Enter new name for the window: + Enter new name for the window: + + + + New updates are available. <a href="%1">Click here for details</a>. + New updates are available. <a href="%1">Click here for details</a>. + + + + You're running the most recent version. No updates are available. + You're running the most recent version. No updates are available. + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + Database passed in command line parameters (%1) was already on the list under name: %2 + + + + Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 + Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + MdiWindow + + + Uncommitted changes + Uncommitted changes + + + + Close anyway + Close anyway + + + + Don't close + Don't close + + + + MultiEditor + + + Null value + multieditor + Null value + + + + Configure editors for this data type + Configure editors for this data type + + + + Open another tab + Open another tab + + + + Foreign Key + Foreign Key + + + + Data editor plugin '%1' not loaded, while it is defined for editing '%2' data type. + Data editor plugin '%1' not loaded, while it is defined for editing '%1' data type. {1'?} {2'?} {1' or 2'?} + + + + Deleted + multieditor + Deleted + + + + Read only + multieditor + Read only + + + + MultiEditorBoolPlugin + + + Boolean + Boolean + + + + MultiEditorDatePlugin + + + Date + Date + + + + MultiEditorDateTimePlugin + + + Date & time + Date & time + + + + MultiEditorHexPlugin + + + Hex + Hex + + + + MultiEditorNumericPlugin + + + Number + numeric multi editor tab name + Number + + + + MultiEditorText + + + Tab changes focus + Tab changes focus + + + + Cut + Cut + + + + Copy + Copy + + + + Paste + Paste + + + + Delete + Delete + + + + Undo + Undo + + + + Redo + Redo + + + + MultiEditorTextPlugin + + + Text + Text + + + + MultiEditorTimePlugin + + + Time + Time + + + + NewConstraintDialog + + + New constraint + New constraint + + + + + Primary Key + new constraint dialog + Primary Key + + + + + Foreign Key + new constraint dialog + Foreign Key + + + + + Unique + new constraint dialog + Unique + + + + + Check + new constraint dialog + Check + + + + Not NULL + new constraint dialog + Not NULL + + + + Collate + new constraint dialog + Collate + + + + Generated + new constraint dialog + Generated + + + + Default + new constraint dialog + Default + + + + NewVersionDialog + + + SQLiteStudio updates + SQLiteStudio updates + + + + New version is available! + New version is available! + + + + Download new version! + Download new version! + + + + New version package will be downloaded. It will be up to you to install it whenever you're ready. + New version package will be downloaded. It will be up to you to install it whenever you're ready. + + + + Open SQLiteStudio home page. + Open SQLiteStudio home page. + + + + Read release notes && download package yourself. + Read release notes && download package yourself. + + + + Just close this window. + Just close this window. + + + + Check for updates on startup + Check for updates on startup + + + + Not now. + Not now. + + + + PopulateConfigDialog + + + Populating configuration + Populating configuration + + + + Configuring <b>%1</b> for column <b>%2</b> + Configuring <b>%1</b> for column <b>%2</b> + + + + PopulateDialog + + + Populate table + Populate table + + + + Database + Database + + + + Table + Table + + + + Columns + Columns + + + + Number of rows to populate: + Number of rows to populate: + + + + Populate + populate dialog button + Populate + + + + Abort + Abort + + + + Configure + Configure + + + + Populating configuration for this column is invalid or incomplete. + Populating configuration for this column is invalid or incomplete. + + + + Select database with table to populate + Select database with table to populate + + + + Select table to populate + Select table to populate + + + + You have to select at least one column. + You have to select at least one column. + + + + QObject + + + Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). + Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). + + + + The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. + The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. + + + + Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. + Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. + + + + Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. + Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. + + + + Cannot edit results of query other than %1. + Cannot edit results of query other than %1. + + + + Cannot edit columns that are result of aggregated %1 statements. + Cannot edit columns that are result of aggregated %1 statements. + + + + Cannot edit columns that are result of %1 statement. + Cannot edit columns that are result of %1 statement. + + + + Cannot edit columns that are result of common table expression statement (%1). + Cannot edit columns that are result of common table expression statement (%1). + + + + Cannot edit table generated columns. + Cannot edit table generated columns. + + + + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). + + + + + + + on conflict: %1 + data view tooltip + on conflict: %1 + + + + references table %1, column %2 + data view tooltip + references table %1, column %2 + + + + condition: %1 + data view tooltip + condition: %1 + + + + collation name: %1 + data view tooltip + collation name: %1 + + + + Data grid view + Data grid view + + + + Edit current cell inline + Edit current cell inline + + + + Copy cell(s) contents to clipboard + Copy cell(s) contents to clipboard + + + + Copy cell(s) contents together with header to clipboard + Copy cell(s) contents together with header to clipboard + + + + Paste cell(s) contents from clipboard + Paste cell(s) contents from clipboard + + + + Set empty value to selected cell(s) + Set empty value to selected cell(s) + + + + Set NULL value to selected cell(s) + Set NULL value to selected cell(s) + + + + Commit changes to cell(s) contents + Commit changes to cell(s) contents + + + + Rollback changes to cell(s) contents + Rollback changes to cell(s) contents + + + + Delete selected data row + Delete selected data row + + + + Insert new data row + Insert new data row + + + + Open contents of selected cell in a separate editor + Open contents of selected cell in a separate editor + + + + Toggle the height adjustment of rows + Toggle the height adjustment of rows + + + + Increase font size + data view + Increase font size + + + + Decrease font size + data view + Decrease font size + + + + Total pages available: %1 + Total pages available: %1 + + + + Total rows loaded: %1 + Total rows loaded: %1 + + + + Data view (both grid and form) + Data view (both grid and form) + + + + Refresh data + Refresh data + + + + Switch to grid view of the data + Switch to grid view of the data + + + + Switch to form view of the data + Switch to form view of the data + + + + Database list + Database list + + + + Delete selected item + Delete selected item + + + + Clear filter contents + Clear filter contents + + + + Refresh schema + Refresh schema + + + + Refresh all schemas + Refresh all schemas + + + + Add database + Add database + + + + Select all items + Select all items + + + + Copy selected item(s) + Copy selected item(s) + + + + + + Paste from clipboard + Paste from clipboard + + + + Increase font size + database list + Increase font size + + + + Decrease font size + database list + Decrease font size + + + + Tables + Tables + + + + Indexes + Indexes + + + + Triggers + Triggers + + + + Views + Views + + + + Columns + Columns + + + + Data form view + Data form view + + + + Commit changes for current row + Commit changes for current row + + + + Rollback changes for current row + Rollback changes for current row + + + + Go to first row on current page + Go to first row on current page + + + + Go to next row + Go to next row + + + + Go to previous row + Go to previous row + + + + Go to last row on current page + Go to last row on current page + + + + Insert new row + Insert new row + + + + Delete current row + Delete current row + + + + Main window + Main window + + + + Open SQL editor + Open SQL editor + + + + Open DDL history window + Open DDL history window + + + + Open snippets editor window + Open snippets editor window + + + + Open function editor window + Open function editor window + + + + Open collation editor window + Open collation editor window + + + + Open extension manager window + Open extension manager window + + + + Previous window + Previous window + + + + Next window + Next window + + + + Hide status area + Hide status area + + + + Open user manual + Open user manual + + + + Open configuration dialog + Open configuration dialog + + + + Open Debug Console + Open Debug Console + + + + Open CSS Console + Open CSS Console + + + + Open the About dialog + Open the About dialog + + + + Quit the application + Quit the application + + + + Cell text value editor + Cell text value editor + + + + + Cut selected text + Cut selected text + + + + + Copy selected text + Copy selected text + + + + + Delete selected text + Delete selected text + + + + + Undo + Undo + + + + + Redo + Redo + + + + SQL editor input field + SQL editor input field + + + + Select whole editor contents + Select whole editor contents + + + + Save contents into a file + Save contents into a file + + + + Load contents from a file + Load contents from a file + + + + Find in text + Find in text + + + + Find next + Find next + + + + Find previous + Find previous + + + + Replace in text + Replace in text + + + + Delete current line + Delete current line + + + + Request code assistant + Request code assistant + + + + Format contents + Format contents + + + + Move selected block of text one line down + Move selected block of text one line down + + + + Move selected block of text one line up + Move selected block of text one line up + + + + Copy selected block of text and paste it a line below + Copy selected block of text and paste it a line below + + + + Copy selected block of text and paste it a line above + Copy selected block of text and paste it a line above + + + + Toggle comment + Toggle comment + + + + Increase font size + sql editor + Increase font size + + + + Decrease font size + sql editor + Decrease font size + + + + All SQLite databases + All SQLite databases + + + + All files + All files + + + + Select database file + Select database file + + + + Select + Select + + + + File type + File type + + + + SQL editor window + SQL editor window + + + + Execute query + Execute query + + + + Execute single query under cursor + Execute single query under cursor + + + + Execute all queries in editor + Execute all queries in editor + + + + Execute "%1" query + Execute "%1" query + + + + Switch current working database to previous on the list + Switch current working database to previous on the list + + + + Switch current working database to next on the list + Switch current working database to next on the list + + + + Go to next editor tab + Go to next editor tab + + + + Go to previous editor tab + Go to previous editor tab + + + + Move keyboard input focus to the results view below + Move keyboard input focus to the results view below + + + + Move keyboard input focus to the SQL editor above + Move keyboard input focus to the SQL editor above + + + + Delete selected SQL history entries + Delete selected SQL history entries + + + + Table window + Table window + + + + Commit the table structure + Commit the table structure + + + + Rollback pending changes in the table structure + Rollback pending changes in the table structure + + + + Refresh table structure + Refresh table structure + + + + Add new column + Add new column + + + + Edit selected column + Edit selected column + + + + Delete selected column + Delete selected column + + + + Export table data + Export table data + + + + Import data to the table + Import data to the table + + + + Add new table constraint + Add new table constraint + + + + Edit selected table constraint + Edit selected table constraint + + + + Delete selected table constraint + Delete selected table constraint + + + + Refresh table index list + Refresh table index list + + + + Add new index + Add new index + + + + Edit selected index + Edit selected index + + + + Delete selected index + Delete selected index + + + + Refresh table trigger list + Refresh table trigger list + + + + + Add new trigger + Add new trigger + + + + + Edit selected trigger + Edit selected trigger + + + + + Delete selected trigger + Delete selected trigger + + + + + Go to next tab + Go to next tab + + + + + Go to previous tab + Go to previous tab + + + + A view window + A view window + + + + Commit the view's query + Commit the view's query + + + + Rollback pending changes in the view's query + Rollback pending changes in the view's query + + + + Refresh view trigger list + Refresh view trigger list + + + + Execute the view's query + Execute the view's query + + + + A code snippets editor window + A code snippets editor window + + + + + + + Commit the pending changes + Commit the pending changes + + + + + + + Rollback the pending changes + Rollback the pending changes + + + + A collation editor window + A collation editor window + + + + A function editor window + A function editor window + + + + A SQLite extension editor window + A SQLite extension editor window + + + + QuitConfirmDialog + + + Uncommitted changes + Uncommitted changes + + + + Are you sure you want to quit the application? + +Following items are pending: + Are you sure you want to quit the application? + +Following items are pending: + + + + SearchTextDialog + + + Find or replace + Find or replace + + + + Find: + Find: + + + + Case sensitive + Case sensitive + + + + Search backwards + Search backwards + + + + Regular expression matching + Regular expression matching + + + + Replace && +find next + Replace && +find next + + + + Replace with: + Replace with: + + + + Replace all + Replace all + + + + Find + Find + + + + SortDialog + + + Sort by columns + Sort by columns + + + + + Column + Column + + + + + Order + Order + + + + Sort by: %1 + Sort by: %1 + + + + Move column up + Move column up + + + + Move column down + Move column down + + + + SqlEditor + + + Wrap words + sql editor + Wrap words + + + + Cut + sql editor + Cut + + + + Copy + sql editor + Copy + + + + Paste + sql editor + Paste + + + + Delete + sql editor + Delete + + + + Select all + sql editor + Select all + + + + Undo + sql editor + Undo + + + + Redo + sql editor + Redo + + + + Complete + sql editor + Complete + + + + Format SQL + sql editor + Format SQL + + + + Save SQL to file + sql editor + Save SQL to file + + + + Select file to save SQL + sql editor + Select file to save SQL + + + + Load SQL from file + sql editor + Load SQL from file + + + + Delete line + sql editor + Delete line + + + + Move block down + sql editor + Move block down + + + + Move block up + sql editor + Move block up + + + + Copy block down + sql editor + Copy block down + + + + Copy up down + sql editor + Copy up down + + + + Find + sql editor + Find + + + + Find next + sql editor + Find next + + + + Find previous + sql editor + Find previous + + + + Replace + sql editor + Replace + + + + Toggle comment + sql editor + Toggle comment + + + + Increase font size + sql editor + Increase font size + + + + Decrease font size + sql editor + Decrease font size + + + + Could not open file '%1' for writing: %2 + Could not open file '%1' for writing: %2 + + + + Saved SQL contents to file: %1 + Saved SQL contents to file: %1 + + + + Syntax completion can be used only when a valid database is set for the SQL editor. + Syntax completion can be used only when a valid database is set for the SQL editor. + + + + Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. + Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. + + + + Save to file + Save to file + + + + SQL scripts (*.sql);;All files (*) + SQL scripts (*.sql);;All files (*) + + + + Open file + Open file + + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Reached the end of document. Hit the find again to restart the search. + Reached the end of document. Hit the find again to restart the search. + + + + SqlQueryItem + + + Committing error: + data view tooltip + Committing error: + + + + Column: + data view tooltip + Column: + + + + Data type: + data view + Data type: + + + + Table: + data view tooltip + Table: + + + + Constraints: + data view tooltip + Constraints: + + + + SqlQueryItemDelegate + + + + + + Cannot edit this cell. Details: %1 + Cannot edit this cell. Details: %1 + + + + The row is marked for deletion. + The row is marked for deletion. + + + + + Structure of this table has changed since last data was loaded. Reload the data to proceed. + Structure of this table has changed since last data was loaded. Reload the data to proceed. + + + + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). + + + + Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. + Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. + + + + SqlQueryModel + + + + Only one query can be executed simultaneously. + Only one query can be executed simultaneously. + + + + Cannot execute query on undefined or invalid database. + Cannot execute query on undefined or invalid database. + + + + Cannot execute empty query. + Cannot execute empty query. + + + + Uncommitted data + Uncommitted data + + + + There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. + There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. + + + + Cannot commit the data for a cell that refers to the already closed database. + Cannot commit the data for a cell that refers to the already closed database. + + + + Could not begin transaction on the database. Details: %1 + Could not begin transaction on the database. Details: %1 + + + + An error occurred while committing the transaction: %1 + An error occurred while committing the transaction: %1 + + + + An error occurred while rolling back the transaction: %1 + An error occurred while rolling back the transaction: %1 + + + + Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. + Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. + + + + An error occurred while committing the data: %1 + An error occurred while committing the data: %1 + + + + Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. + Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. + + + + + Error while executing SQL query on database '%1': %2 + Error while executing SQL query on database '%1': %2 + + + + Error while loading query results: %1 + Error while loading query results: %1 + + + + Insert multiple rows + Insert multiple rows + + + + Number of rows to insert: + Number of rows to insert: + + + + Delete rows + Delete rows + + + + You're about to delete newly inserted rows that are not committed yet. Row numbers: %1 +Such deletion will be permanent. Are you sure you want to delete them? + You're about to delete newly inserted rows that are not committed yet. Row numbers: %1 +Such deletion will be permanent. Are you sure you want to delete them? + + + + SqlQueryView + + + Go to referenced row in... + Go to referenced row in... + + + + Copy + Copy + + + + Copy with headers + Copy with headers + + + + Copy as... + Copy as... + + + + Paste + Paste + + + + Paste as... + Paste as... + + + + Set NULL values + Set NULL values + + + + Erase values + Erase values + + + + Commit + Commit + + + + Rollback + Rollback + + + + Commit selected cells + Commit selected cells + + + + Rollback selected cells + Rollback selected cells + + + + Edit current cell inline + Edit current cell inline + + + + Define columns to sort by + Define columns to sort by + + + + Remove custom sorting + Remove custom sorting + + + + Insert row + Insert row + + + + Insert multiple rows + Insert multiple rows + + + + Delete selected row + Delete selected row + + + + Adjust height of rows + Adjust height of rows + + + + Increase font size + data view + Increase font size + + + + Decrease font size + data view + Decrease font size + + + + Invert selection + data view + Invert selection + + + + Edit value in editor + Edit value in editor + + + + Show value in a viewer + Show value in a viewer + + + + Generate query for selected cells + Generate query for selected cells + + + + No items selected to paste clipboard contents to. + No items selected to paste clipboard contents to. + + + + Cannot paste data. Details: %1 + Cannot paste data. Details: %1 + + + + Structure of at least one table used has changed since last data was loaded. Reload the data to proceed. + Structure of at least one table used has changed since last data was loaded. Reload the data to proceed. + + + + Cannot paste to a cell. Details: %1 + Cannot paste to a cell. Details: %1 + + + + The row is marked for deletion. + The row is marked for deletion. + + + + Cannot paste to column %1. Details: %2 + Cannot paste to column %1. Details: %2 + + + + Go to referenced row in table '%1' + Go to referenced row in table '%1' + + + + table '%1' + table '%1' + + + + Referenced row (%1) + Referenced row (%1) + + + + Trim pasted text? + Trim pasted text? + + + + The pasted text contains leading or trailing white space. Trim it automatically? + The pasted text contains leading or trailing white space. Trim it automatically? + + + + Paste "NULL" as null value? + Paste "NULL" as null value? + + + + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + + + + Edit value + Edit value + + + + SqlTableModel + + + Error while committing new row: %1 + Error while committing new row: %1 + + + + Error while deleting row from table %1: %2 + Error while deleting row from table %1: %2 + + + + SqliteExtensionEditor + + + Filter extensions + Filter extensions + + + + Leave empty to use default function + Leave empty to use default function + + + + Extension file + Extension file + + + + Initialization function + Initialization function + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Extension manager window has uncommitted modifications. + Extension manager window has uncommitted modifications. + + + + Extension manager + Extension manager + + + + Commit all extension changes + Commit all extension changes + + + + Rollback all extension changes + Rollback all extension changes + + + + Add new extension + Add new extension + + + + Remove selected extension + Remove selected extension + + + + Editing extensions manual + Editing extensions manual + + + + File with given path does not exist or is not readable. + File with given path does not exist or is not readable. + + + + Unable to load extension: %1 + Unable to load extension: %1 + + + + Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. + Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. + + + + Dynamic link libraries (*.dll);;All files (*) + Dynamic link libraries (*.dll);;All files (*) + + + + Shared objects (*.so);;All files (*) + Shared objects (*.so);;All files (*) + + + + Dynamic libraries (*.dylib);;All files (*) + Dynamic libraries (*.dylib);;All files (*) + + + + All files (*) + All files (*) + + + + Open file + Open file + + + + StatusField + + + Status + Status + + + + Copy + Copy + + + + Clear + Clear + + + + TableConstraintsModel + + + Type + table constraints + Type + + + + Details + table constraints + Details + + + + Name + table constraints + Name + + + + TableForeignKeyPanel + + + Foreign table: + Foreign table: + + + + Columns + Columns + + + + Local column + Local column + + + + Foreign column + Foreign column + + + + Reactions + Reactions + + + + Deferred foreign key + Deferred foreign key + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + Pick the foreign column. + Pick the foreign column. + + + + Pick the foreign table. + Pick the foreign table. + + + + Select at least one foreign column. + Select at least one foreign column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + Foreign column + table constraints + Foreign column + + + + TablePrimaryKeyAndUniquePanel + + + Columns + Columns + + + + Column + Column + + + + Collation + Collation + + + + Sort + Sort + + + + Valid only for a single column with INTEGER data type + Valid only for a single column with INTEGER data type + + + + Autoincrement + Autoincrement + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + On conflict + On conflict + + + + Collate + table constraints + Collate + + + + Sort order + table constraints + Sort order + + + + Select at least one column. + Select at least one column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + TableStructureModel + + + Name + table structure columns + Name + + + + Data type + table structure columns + Data type + + + + Primary +Key + table structure columns + Primary +Key + + + + Foreign +Key + table structure columns + Foreign +Key + + + + Unique + table structure columns + Unique + + + + Check + table structure columns + Check + + + + Not +NULL + table structure columns + Not +NULL + + + + Collate + table structure columns + Collate + + + + Generated + table structure columns + Generated + + + + Default value + table structure columns + Default value + + + + TableWindow + + + Structure + Structure + + + + Table name: + Table name: + + + + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + + + + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + + + + + Data + Data + + + + Constraints + Constraints + + + + Indexes + Indexes + + + + Triggers + Triggers + + + + DDL + DDL + + + + Export table + table window + Export table + + + + Import data to table + table window + Import data to table + + + + Populate table + table window + Populate table + + + + Refresh structure + table window + Refresh structure + + + + Commit structure changes + table window + Commit structure changes + + + + Rollback structure changes + table window + Rollback structure changes + + + + Add column + table window + Add column + + + + Edit column + table window + Edit column + + + + + Delete column + table window + Delete column + + + + Move column up + table window + Move column up + + + + Move column down + table window + Move column down + + + + Create similar table + table window + Create similar table + + + + Reset autoincrement value + table window + Reset autoincrement value + + + + Add table constraint + table window + Add table constraint + + + + Edit table constraint + table window + Edit table constraint + + + + Delete table constraint + table window + Delete table constraint + + + + Move table constraint up + table window + Move table constraint up + + + + Move table constraint down + table window + Move table constraint down + + + + Add table primary key + table window + Add table primary key + + + + Add table foreign key + table window + Add table foreign key + + + + Add table unique constraint + table window + Add table unique constraint + + + + Add table check constraint + table window + Add table check constraint + + + + Refresh index list + table window + Refresh index list + + + + + Create index + table window + Create index + + + + Edit index + table window + Edit index + + + + Delete index + table window + Delete index + + + + Refresh trigger list + table window + Refresh trigger list + + + + + Create trigger + table window + Create trigger + + + + Edit trigger + table window + Edit trigger + + + + Delete trigger + table window + Delete trigger + + + + Are you sure you want to delete column '%1'? + table window + Are you sure you want to delete column '%1'? + + + + Following problems will take place while modifying the table. +Would you like to proceed? + table window + Following problems will take place while modifying the table. +Would you like to proceed? + + + + Table modification + table window + Table modification + + + + Could not load data for table %1. Error details: %2 + Could not load data for table %1. Error details: %2 + + + + Could not process the %1 table correctly. Unable to open a table window. + Could not process the %1 table correctly. Unable to open a table window. + + + + Database + Database + + + + Could not restore window %1, because no database or table was stored in session for this window. + Could not restore window %1, because no database or table was stored in session for this window. + + + + Could not restore window '%1', because no database or table was stored in session for this window. + Could not restore window '%1', because no database or table was stored in session for this window. + + + + Could not restore window '%1', because database %2 could not be resolved. + Could not restore window '%1', because database %2 could not be resolved. + + + + Could not restore window '%1', because the table %2 doesn't exist in the database %3. + Could not restore window '%1', because the table %2 doesn't exist in the database %3. + + + + + New table %1 + New table %1 + + + + Committed changes for table '%1' successfully. + Committed changes for table '%1' successfully. + + + + Committed changes for table '%1' (named before '%2') successfully. + Committed changes for table '%1' (named before '%2') successfully. + + + + Could not commit table structure. Error message: %1 + table window + Could not commit table structure. Error message: %1 + + + + Reset autoincrement + Reset autoincrement + + + + Are you sure you want to reset autoincrement value for table '%1'? + Are you sure you want to reset autoincrement value for table '%1'? + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + An error occurred while trying to reset autoincrement value for table '%1': %2 + + + + Autoincrement value for table '%1' has been reset successfully. + Autoincrement value for table '%1' has been reset successfully. + + + + Empty name + Empty name + + + + A blank name for the table is allowed in SQLite, but it is not recommended. +Are you sure you want to create a table with blank name? + A blank name for the table is allowed in SQLite, but it is not recommended. +Are you sure you want to create a table with blank name? + + + + Cannot create a table without at least one column. + Cannot create a table without at least one column. + + + + Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. + Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. + + + + Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. + Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. + + + + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 + + + + Are you sure you want to delete table constraint '%1'? + table window + Are you sure you want to delete table constraint '%1'? + + + + Delete constraint + table window + Delete constraint + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + Uncommitted changes + Uncommitted changes + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + + + + Go back to structure tab + Go back to structure tab + + + + Commit modifications and browse data. + Commit modifications and browse data. + + + + Name + table window indexes + Name + + + + Unique + table window indexes + Unique + + + + Columns + table window indexes + Columns + + + + Partial index condition + table window indexes + Partial index condition + + + + Name + table window triggers + Name + + + + Event + table window triggers + Event + + + + Condition + table window triggers + Condition + + + + Details + table window triggers + Details + + + + Table window "%1" has uncommitted structure modifications and data. + Table window "%1" has uncommitted structure modifications and data. + + + + Table window "%1" has uncommitted data. + Table window "%1" has uncommitted data. + + + + Table window "%1" has uncommitted structure modifications. + Table window "%1" has uncommitted structure modifications. + + + + TriggerColumnsDialog + + + Trigger columns + Trigger columns + + + + Triggering columns: + Triggering columns: + + + + Select all + Select all + + + + Deselect all + Deselect all + + + + TriggerDialog + + + + Trigger + Trigger + + + + On table: + On table: + + + + Action: + Action: + + + + + <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> + <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> + + + + Pre-condition: + Pre-condition: + + + + The scope is still not fully supported by the SQLite database. + The scope is still not fully supported by the SQLite database. + + + + Trigger name: + Trigger name: + + + + When: + When: + + + + List of columns for UPDATE OF action. + List of columns for UPDATE OF action. + + + + Scope: + Scope: + + + + Code: + Code: + + + + Trigger statements to be executed. + Trigger statements to be executed. + + + + DDL + DDL + + + + On view: + On view: + + + + Could not process trigger %1 correctly. Unable to open a trigger dialog. + Could not process trigger %1 correctly. Unable to open a trigger dialog. + + + + Enter a valid condition. + Enter a valid condition. + + + + Enter a valid trigger code. + Enter a valid trigger code. + + + + Error + trigger dialog + Error + + + + An error occurred while executing SQL statements: +%1 + An error occurred while executing SQL statements: +%1 + + + + VersionConvertSummaryDialog + + + Database version convert + Database version convert + + + + Following changes to the SQL statements will be made: + Following changes to the SQL statements will be made: + + + + Before + Before + + + + After + After + + + + ViewWindow + + + Query + Query + + + + View name: + View name: + + + + Output column names + Output column names + + + + + Data + Data + + + + Triggers + Triggers + + + + DDL + DDL + + + + + Could not restore window '%1', because no database or view was stored in session for this window. + Could not restore window '%1', because no database or view was stored in session for this window. + + + + Could not restore window '%1', because database %2 could not be resolved. + Could not restore window '%1', because database %2 could not be resolved. + + + + Could not restore window '%1', because database %2 could not be open. + Could not restore window '%1', because database %2 could not be open. + + + + Could not restore window '%1', because the view %2 doesn't exist in the database %3. + Could not restore window '%1', because the view %2 doesn't exist in the database %3. + + + + + New view %1 + New view %1 + + + + Database + Database + + + + Refresh the view + view window + Refresh the view + + + + Commit the view changes + view window + Commit the view changes + + + + Rollback the view changes + view window + Rollback the view changes + + + + Explicit column names + Explicit column names + + + + Generate output column names automatically basing on result columns of the view. + Generate output column names automatically basing on result columns of the view. + + + + Add column + view window + Add column + + + + Edit column + view window + Edit column + + + + Delete column + view window + Delete column + + + + Move column up + view window + Move column up + + + + Move column down + view window + Move column down + + + + Refresh trigger list + view window + Refresh trigger list + + + + Create new trigger + view window + Create new trigger + + + + Edit selected trigger + view window + Edit selected trigger + + + + Delete selected trigger + view window + Delete selected trigger + + + + View window "%1" has uncommitted structure modifications and data. + View window "%1" has uncommitted structure modifications and data. + + + + View window "%1" has uncommitted data. + View window "%1" has uncommitted data. + + + + View window "%1" has uncommitted structure modifications. + View window "%1" has uncommitted structure modifications. + + + + Could not load data for view %1. Error details: %2 + Could not load data for view %1. Error details: %2 + + + + Uncommitted changes + Uncommitted changes + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + + + + Go back to structure tab + Go back to structure tab + + + + Commit modifications and browse data. + Commit modifications and browse data. + + + + View '%1' was committed successfully. + View '%1' was committed successfully. + + + + Committed changes for view '%1' successfully. + Committed changes for view '%1' successfully. + + + + Committed changes for view '%1' (named before '%2') successfully. + Committed changes for view '%1' (named before '%2') successfully. + + + + Could not commit view changes. Error message: %1 + view window + Could not commit view changes. Error message: %1 + + + + Override columns + Override columns + + + + Currently defined columns will be overriden. Do you want to continue? + Currently defined columns will be overriden. Do you want to continue? + + + + Could not determinate columns returned from the view. The query is problably incomplete or contains errors. + Could not determinate columns returned from the view. The query is problably incomplete or contains errors. + + + + Name + view window triggers + Name + + + + Instead of + view window triggers + Instead of + + + + Condition + view window triggers + Condition + + + + Details + table window triggers + Details + + + + Could not process the %1 view correctly. Unable to open a view window. + Could not process the %1 view correctly. Unable to open a view window. + + + + Empty name + Empty name + + + + A blank name for the view is allowed in SQLite, but it is not recommended. +Are you sure you want to create a view with blank name? + A blank name for the view is allowed in SQLite, but it is not recommended. +Are you sure you want to create a view with blank name? + + + + The SELECT statement could not be parsed. Please correct the query and retry. +Details: %1 + The SELECT statement could not be parsed. Please correct the query and retry. +Details: %1 + + + + The view could not be modified due to internal SQLiteStudio error. Please report this! + The view could not be modified due to internal SQLiteStudio error. Please report this! + + + + The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. + The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. + + + + Following problems will take place while modifying the view. +Would you like to proceed? + view window + Following problems will take place while modifying the view. +Would you like to proceed? + + + + View modification + view window + View modification + + + + WidgetCover + + + Interrupt + Interrupt + + + diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_kaa.ts b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_kaa.ts new file mode 100644 index 0000000..1f97506 --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_kaa.ts @@ -0,0 +1,7111 @@ + + + + + AboutDialog + + + About SQLiteStudio and licenses + About SQLiteStudio and licenses + + + + About + Baǵdarlama haqqında + + + + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + + + + Licenses + Licenses + + + + Environment + Environment + + + + Icon directories + Icon directories + + + + Form directories + Form directories + + + + SQLite extension directories + SQLite extension directories + + + + Plugin directories + Plugin directories + + + + Configuration directory + Configuration directory + + + + Application directory + Application directory + + + + Qt version: + Qt version: + + + + SQLite 3 version: + SQLite 3 version: + + + + Portable distribution. + Portable distribution. + + + + MacOS X application bundle distribution. + MacOS X application bundle distribution. + + + + Operating system managed distribution. + Operating system managed distribution. + + + + <h3>Table of contents:</h3><ol>%2</ol> + <h3>Table of contents:</h3><ol>%2</ol> + + + + BindParamsDialog + + + Query parameters + Query parameters + + + + Please provide values for query parameters + Please provide values for query parameters + + + + CodeSnippetEditor + + + Filter snippets + Filter snippets + + + + + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + + + + + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + + + + Snippet name + Snippet name + + + + Code assistant shortcut + Code assistant shortcut + + + + Snippet code + Snippet code + + + + Code Snippets editor window has uncommitted modifications. + Code Snippets editor window has uncommitted modifications. + + + + Code Snippets editor + Code Snippets editor + + + + Commit all snippet changes + Commit all snippet changes + + + + Rollback all snippet changes + Rollback all snippet changes + + + + Create new snippet + Create new snippet + + + + Delete selected snippet + Delete selected snippet + + + + Move the snippet up + Move the snippet up + + + + Move the snippet down + Move the snippet down + + + + Code snippets manual + Code snippets manual + + + + Enter a non-empty, unique name of the snippet. + Enter a non-empty, unique name of the snippet. + + + + Enter a non-empty snippet content. + Enter a non-empty snippet content. + + + + This hotkey is not unique in context of a code assistant. + This hotkey is not unique in context of a code assistant. + + + + CollationsEditor + + + Filter collations + Filter collations + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Implementation code: + Implementation code: + + + + Collation name: + Collation name: + + + + Implementation language: + Implementation language: + + + + Collations editor + Collations editor + + + + Commit all collation changes + Commit all collation changes + + + + Rollback all collation changes + Rollback all collation changes + + + + Create new collation + Create new collation + + + + Delete selected collation + Delete selected collation + + + + Editing collations manual + Editing collations manual + + + + Enter a non-empty, unique name of the collation. + Enter a non-empty, unique name of the collation. + + + + Pick the implementation language. + Pick the implementation language. + + + + Enter a non-empty implementation code. + Enter a non-empty implementation code. + + + + Collations editor window has uncommitted modifications. + Collations editor window has uncommitted modifications. + + + + ColorButton + + + Pick a color + Pick a color + + + + ColumnCollatePanel + + + Collation name: + Collation name: + + + + Named constraint: + Named constraint: + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + Enter a collation name. + Enter a collation name. + + + + ColumnDefaultPanel + + + Default value: + Default value: + + + + Named constraint: + Named constraint: + + + + Enter a default value expression. + Enter a default value expression. + + + + Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. + Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. + + + + Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. + Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ColumnDialog + + + Column + Column + + + + Name and type + Name and type + + + + Scale + Scale + + + + Precision + Precision + + + + Data type: + Data type: + + + + Column name: + Column name: + + + + Size: + Size: + + + + Constraints + Constraints + + + + Generated value + Generated value + + + + Unique + Unique + + + + + + + + + + + Configure + Configure + + + + Foreign Key + Foreign Key + + + + Collate + Collate + + + + Not NULL + Not NULL + + + + Check condition + Check condition + + + + Primary Key + Primary Key + + + + Default + Default + + + + Advanced mode + Advanced mode + + + + Add constraint + column dialog + Add constraint + + + + Edit constraint + column dialog + Edit constraint + + + + + Delete constraint + column dialog + Delete constraint + + + + Move constraint up + column dialog + Move constraint up + + + + Move constraint down + column dialog + Move constraint down + + + + Add a primary key + column dialog + Add a primary key + + + + Add a foreign key + column dialog + Add a foreign key + + + + Add an unique constraint + column dialog + Add an unique constraint + + + + Add a check constraint + column dialog + Add a check constraint + + + + Add a not null constraint + column dialog + Add a not null constraint + + + + Add a collate constraint + column dialog + Add a collate constraint + + + + Add a generated value constraint + column dialog + Add a generated value constraint + + + + Add a default constraint + column dialog + Add a default constraint + + + + Are you sure you want to delete constraint '%1'? + column dialog + Are you sure you want to delete constraint '%1'? + + + + Correct the constraint's configuration. + Correct the constraint's configuration. + + + + Scale is not allowed for INTEGER PRIMARY KEY columns. + Scale is not allowed for INTEGER PRIMARY KEY columns. + + + + Precision cannot be defined without the scale. + Precision cannot be defined without the scale. + + + + Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. + Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. + + + + INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. + INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. + + + + Precision is not allowed for INTEGER PRIMARY KEY columns. + Precision is not allowed for INTEGER PRIMARY KEY columns. + + + + Could not match valid STRICT table datatype from declared type: %1. + Could not match valid STRICT table datatype from declared type: %1. + + + + ColumnDialogConstraintsModel + + + Type + column dialog constraints + Type + + + + Name + column dialog constraints + Atı + + + + Details + column dialog constraints + Details + + + + ColumnForeignKeyPanel + + + Foreign table: + Foreign table: + + + + Foreign column: + Foreign column: + + + + Reactions + Reactions + + + + Deferred foreign key + Deferred foreign key + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + Pick the foreign table. + Pick the foreign table. + + + + Pick the foreign column. + Pick the foreign column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ColumnGeneratedPanel + + + Generating code: + Generating code: + + + + Explicit type: + Explicit type: + + + + Use "GENERATED ALWAYS" keywords + Use "GENERATED ALWAYS" keywords + + + + Named constraint: + Named constraint: + + + + Enter the column value generating expression. + Enter the column value generating expression. + + + + Invalid value generating expression: %1. + Invalid value generating expression: %1. + + + + Invalid value generating expression. + Invalid value generating expression. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ColumnPrimaryKeyPanel + + + Autoincrement + Autoincrement + + + + Sort order: + Sort order: + + + + Named constraint: + Named constraint: + + + + On conflict: + On conflict: + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + Descending order is not allowed with AUTOINCREMENT. + Descending order is not allowed with AUTOINCREMENT. + + + + ColumnUniqueAndNotNullPanel + + + Named constraint: + Named constraint: + + + + On conflict: + On conflict: + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + CompleterWindow + + + Column: %1 + completer statusbar + Column: %1 + + + + Table: %1 + completer statusbar + Table: %1 + + + + Index: %1 + completer statusbar + Index: %1 + + + + Trigger: %1 + completer statusbar + Trigger: %1 + + + + View: %1 + completer statusbar + View: %1 + + + + Database: %1 + completer statusbar + Database: %1 + + + + Keyword: %1 + completer statusbar + Keyword: %1 + + + + Function: %1 + completer statusbar + Function: %1 + + + + Operator: %1 + completer statusbar + Operator: %1 + + + + String + completer statusbar + String + + + + Number + completer statusbar + Number + + + + Binary data + completer statusbar + Binary data + + + + Collation: %1 + completer statusbar + Collation: %1 + + + + Pragma function: %1 + completer statusbar + Pragma function: %1 + + + + Insert a code snippet + Insert a code snippet + + + + ConfigDialog + + + + Configuration + Configuration + + + + Search + Search + + + + General + General + + + + Keyboard shortcuts + Keyboard shortcuts + + + + Look & feel + Look & feel + + + + Style + Style + + + + Fonts + Fonts + + + + Code colors + Code colors + + + + + Database list + Database list + + + + Code assistant + Code assistant + + + + Data browsing + Data browsing + + + + Data editors + Data editors + + + + Plugins + Plugins + + + + Code formatters + Code formatters + + + + If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. + If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. + + + + Sort table columns alphabetically + Sort table columns alphabetically + + + + Expand tables node when connected to a database + Expand tables node when connected to a database + + + + <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> + <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> + + + + Display additional labels on the list + Display additional labels on the list + + + + For regular tables labels will show number of columns, indexes and triggers for each of tables. + For regular tables labels will show number of columns, indexes and triggers for each of tables. + + + + Display labels for regular tables + Display labels for regular tables + + + + Virtual tables will be marked with a 'virtual' label. + Virtual tables will be marked with a 'virtual' label. + + + + Display labels for virtual tables + Display labels for virtual tables + + + + Expand views node when connected to a database + Expand views node when connected to a database + + + + If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) + If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) + + + + Sort objects (tables, indexes, triggers and views) alphabetically + Sort objects (tables, indexes, triggers and views) alphabetically + + + + Display system tables and indexes on the list + Display system tables and indexes on the list + + + + Database dialog window + Database dialog window + + + + <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> + <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> + + + + Do not mark database to be "permanent" by default + Do not mark database to be "permanent" by default + + + + <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> + <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> + + + + Try to bypass dialog completly when dropping database file onto the list + Try to bypass dialog completly when dropping database file onto the list + + + + Data browsing and editing + Data browsing and editing + + + + + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + + + + Number of memorized table populating configurations + Number of memorized table populating configurations + + + + Data column width + Data column width + + + + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + + + + Enlarge column when entering value longer than current width + Enlarge column when entering value longer than current width + + + + <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> + <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> + + + + Number of data rows per page: + Number of data rows per page: + + + + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> + + + + Show column and row details tooltip in data view + Show column and row details tooltip in data view + + + + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + + + + Keep NULL value when entering empty value + Keep NULL value when entering empty value + + + + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> + + + + Use DEFAULT value (if defined), when committing NULL value + Use DEFAULT value (if defined), when committing NULL value + + + + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + + + + Limit number of rows for in case of dozens of columns + Limit number of rows for in case of dozens of columns + + + + Inserting new row in data grid + Inserting new row in data grid + + + + Before currently selected row + Before currently selected row + + + + After currently selected row + After currently selected row + + + + At the end of data view + At the end of data view + + + + Table windows + Table windows + + + + <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> + <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> + + + + Open Table Windows with the data tab for start + Open Table Windows with the data tab for start + + + + <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> + <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> + + + + Place data tab as first tab in a Table Window + Place data tab as first tab in a Table Window + + + + View windows + View windows + + + + <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> + <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> + + + + Open View Windows with the data tab for start + Open View Windows with the data tab for start + + + + <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> + <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> + + + + Place data tab as first tab in a View Window + Place data tab as first tab in a View Window + + + + Data types + Data types + + + + Available editors: + Available editors: + + + + Editors selected for this data type: + Editors selected for this data type: + + + + Schema editing + Schema editing + + + + Number of DDL changes kept in history. + Number of DDL changes kept in history. + + + + DDL history size: + DDL history size: + + + + Don't show DDL preview dialog when committing schema changes + Don't show DDL preview dialog when committing schema changes + + + + SQL queries + SQL queries + + + + + Number of queries kept in the history. + Number of queries kept in the history. + + + + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> + + + + History size: + History size: + + + + + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> + + + + Execute only the query under the cursor + Execute only the query under the cursor + + + + Number of memorized query parameters + Number of memorized query parameters + + + + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + + + + Use scientific notation for real numbers in the grid view + Use scientific notation for real numbers in the grid view + + + + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + + + + Limit automatic data column width to (in pixels): + Limit automatic data column width to (in pixels): + + + + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + + + + Keep at least the width to show complete column name + Keep at least the width to show complete column name + + + + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + + + + Wrap lines in SQL editor + Wrap lines in SQL editor + + + + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + + + + Highlight current query + Highlight current query + + + + Updates + Updates + + + + Automatically check for updates at startup + Automatically check for updates at startup + + + + Session + Session + + + + Restore last session (active MDI windows) after startup + Restore last session (active MDI windows) after startup + + + + Allow multiple instances of the application at the same time + Allow multiple instances of the application at the same time + + + + Status Field + Status Field + + + + <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> + <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> + + + + Always open Status panel when new message is printed + Always open Status panel when new message is printed + + + + Code syntax colors + Code syntax colors + + + + Keyword foreground + Keyword foreground + + + + Regular foreground + Regular foreground + + + + String foreground + String foreground + + + + Comment foreground + Comment foreground + + + + Valid objects foreground + Valid objects foreground + + + + Current query background + Current query background + + + + Bind parameter foreground + Bind parameter foreground + + + + Current line background + Current line background + + + + Matched parenthesis background + Matched parenthesis background + + + + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + + + + Number foreground + Number foreground + + + + BLOB value foreground + BLOB value foreground + + + + Matched parenthesis foreground + Matched parenthesis foreground + + + + Reset to defaults + Reset to defaults + + + + Filter shortcuts by name or key combination + Filter shortcuts by name or key combination + + + + Action + Action + + + + Key combination + Key combination + + + + + Language + Language + + + + Changing language requires application restart to take effect. + Changing language requires application restart to take effect. + + + + Compact layout + Compact layout + + + + <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> + <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> + + + + Use compact layout + Use compact layout + + + + Main window dock areas + Main window dock areas + + + + Left and right areas occupy corners + Left and right areas occupy corners + + + + Top and bottom areas occupy corners + Top and bottom areas occupy corners + + + + Hide built-in plugins + Hide built-in plugins + + + + Current style: + Current style: + + + + Preview + Preview + + + + Enabled + Enabled + + + + Disabled + Disabled + + + + Active formatter plugin + Active formatter plugin + + + + SQL editor font + SQL editor font + + + + Database list font + Database list font + + + + Database list additional label font + Database list additional label font + + + + Data view font + Data view font + + + + Status field font + Status field font + + + + Code assistant settings + Code assistant settings + + + + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + + + + Automatically trigger the assistant after a dot is typed after an object name + Automatically trigger the assistant after a dot is typed after an object name + + + + Description: + plugin details + Description: + + + + Category: + plugin details + Category: + + + + Version: + plugin details + Version: + + + + Author: + plugin details + Author: + + + + Internal name: + plugin details + Internal name: + + + + Dependencies: + plugin details + Dependencies: + + + + Conflicts: + plugin details + Conflicts: + + + + Plugin details + Plugin details + + + + Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. + Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. + + + + %1 (built-in) + plugins manager in configuration dialog + %1 (built-in) + + + + Details + Details + + + + No plugins in this category. + No plugins in this category. + + + + Add new data type + Add new data type + + + + Rename selected data type + Rename selected data type + + + + Delete selected data type + Delete selected data type + + + + Help for configuring data type editors + Help for configuring data type editors + + + + Clear hotkey for this action + Clear hotkey for this action + + + + Restore original hotkey for this action + Restore original hotkey for this action + + + + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + + + + ConstraintCheckPanel + + + The condition + The condition + + + + Named constraint: + Named constraint: + + + + On conflict + On conflict + + + + Enter a valid condition. + Enter a valid condition. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ConstraintDialog + + + New constraint + constraint dialog + New constraint + + + + Create + constraint dialog + Create + + + + Edit constraint + dialog window + Edit constraint + + + + Apply + constraint dialog + Apply + + + + Primary key + table constraints + Primary key + + + + Foreign key + table constraints + Foreign key + + + + Unique + table constraints + Unique + + + + Not NULL + table constraints + Not NULL + + + + Check + table constraints + Check + + + + Generated + table constraints + Generated + + + + Collate + table constraints + Collate + + + + Default + table constraints + Default + + + + ConstraintTabModel + + + Table + table constraints + Table + + + + Column (%1) + table constraints + Column (%1) + + + + Scope + table constraints + Scope + + + + Type + table constraints + Type + + + + Details + table constraints + Details + + + + Name + table constraints + Name + + + + CssDebugDialog + + + SQLiteStudio CSS console + SQLiteStudio CSS console + + + + DataView + + + Filter data + data view + Filter data + + + + Grid view + Grid view + + + + Form view + Form view + + + + Refresh table data + data view + Refresh table data + + + + First page + data view + First page + + + + Previous page + data view + Previous page + + + + Next page + data view + Next page + + + + Last page + data view + Last page + + + + Commit changes for selected cells + data view + Commit changes for selected cells + + + + Rollback changes for selected cells + data view + Rollback changes for selected cells + + + + Show grid view of results + data view + Show grid view of results + + + + Show form view of results + data view + Show form view of results + + + + Filter by text (if contains) + data view + Filter by text (if contains) + + + + Filter strictly by text (if equals) + data view + Filter strictly by text (if equals) + + + + Tabs on top + data view + Tabs on top + + + + Tabs at bottom + data view + Tabs at bottom + + + + Place new rows above selected row + data view + Place new rows above selected row + + + + Place new rows below selected row + data view + Place new rows below selected row + + + + Place new rows at the end of the data view + data view + Place new rows at the end of the data view + + + + Total number of rows is being counted. +Browsing other pages will be possible after the row counting is done. + Total number of rows is being counted. +Browsing other pages will be possible after the row counting is done. + + + + Row: %1 + Row: %1 + + + + Filter + Filter + + + + Hit Enter key or press "Apply filter" button on toolbar to apply new value. + Hit Enter key or press "Apply filter" button on toolbar to apply new value. + + + + Filter by the Regular Expression + data view + Filter by the Regular Expression + + + + Filter by SQL expression + data view + Filter by SQL expression + + + + Show filter inputs per column + data view + Show filter inputs per column + + + + Apply filter + data view + Apply filter + + + + DbDialog + + + Database + Database + + + + Database type + Database type + + + + Database driver + Database driver + + + + + File + File + + + + Name (on the list) + Name (on the list) + + + + Options + Options + + + + <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> + aasfd + <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> + + + + Permanent (keep it in configuration) + Permanent (keep it in configuration) + + + + Test connection + Test connection + + + + Select new or existing file on local computer + Select new or existing file on local computer + + + + Browse + Browse + + + + Database type not selected. + Database type not selected. + + + + Database path not specified. + Database path not specified. + + + + Enter an unique database name. + Enter an unique database name. + + + + This name is already in use. Please enter unique name. + This name is already in use. Please enter unique name. + + + + <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> + <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> + + + + Enter a database file path. + Enter a database file path. + + + + This database is already on the list under name: %1 + This database is already on the list under name: %1 + + + + Select a database type. + Select a database type. + + + + DbObjectDialogs + + + Delete table + Delete table + + + + Are you sure you want to delete table %1? + Are you sure you want to delete table %1? + + + + Delete index + Delete index + + + + Are you sure you want to delete index %1? + Are you sure you want to delete index %1? + + + + Delete trigger + Delete trigger + + + + Are you sure you want to delete trigger %1? + Are you sure you want to delete trigger %1? + + + + Delete view + Delete view + + + + Are you sure you want to delete view %1? + Are you sure you want to delete view %1? + + + + + Error while dropping %1: %2 + Error while dropping %1: %2 + + + + Delete objects + Delete objects + + + + Are you sure you want to delete following objects: +%1 + Are you sure you want to delete following objects: +%1 + + + + Cannot start transaction. Details: %1 + Cannot start transaction. Details: %1 + + + + Cannot commit transaction. Details: %1 + Cannot commit transaction. Details: %1 + + + + DbTree + + + Databases + Databases + + + + Filter by name + Filter by name + + + + Copy + Copy + + + + Paste + Paste + + + + Select all + Select all + + + + Create a group + Create a group + + + + Delete the group + Delete the group + + + + Rename the group + Rename the group + + + + &Add a database + &Add a database + + + + &Edit the database + &Edit the database + + + + &Remove the database + &Remove the database + + + + &Connect to the database + &Connect to the database + + + + &Disconnect from the database + &Disconnect from the database + + + + Import + Import + + + + &Export the database + &Export the database + + + + Vac&uum + Vac&uum + + + + &Integrity check + &Integrity check + + + + Create a &table + Create a &table + + + + Edit the t&able + Edit the t&able + + + + Delete the ta&ble + Delete the ta&ble + + + + Export the table + Export the table + + + + Import into the table + Import into the table + + + + Populate table + Populate table + + + + Create similar table + Create similar table + + + + Reset autoincrement sequence + Reset autoincrement sequence + + + + Create an &index + Create an &index + + + + Edit the i&ndex + Edit the i&ndex + + + + Delete the in&dex + Delete the in&dex + + + + Create a trig&ger + Create a trig&ger + + + + Edit the trigg&er + Edit the trigg&er + + + + Delete the trigge&r + Delete the trigge&r + + + + Create a &view + Create a &view + + + + Edit the v&iew + Edit the v&iew + + + + Delete the vi&ew + Delete the vi&ew + + + + Add a column + Add a column + + + + Edit the column + Edit the column + + + + Delete the column + Delete the column + + + + Delete selected items + Delete selected items + + + + Clear filter + Clear filter + + + + &Refresh all database schemas + &Refresh all database schemas + + + + Re&fresh selected database schema + Re&fresh selected database schema + + + + + Erase table data + Erase table data + + + + Open file's directory + Open file's directory + + + + Execute SQL from file + Execute SQL from file + + + + Increase font size + database list + Increase font size + + + + Decrease font size + database list + Decrease font size + + + + + Database + Database + + + + Grouping + Grouping + + + + Generate query for table + Generate query for table + + + + + Create group + Create group + + + + Group name + Group name + + + + Entry with name %1 already exists in group %2. + Entry with name %1 already exists in group %2. + + + + Delete group + Delete group + + + + Are you sure you want to delete group %1? +All objects from this group will be moved to parent group. + Are you sure you want to delete group %1? +All objects from this group will be moved to parent group. + + + + Are you sure you want to remove database '%1' from the list? + Are you sure you want to remove database '%1' from the list? + + + + Are you sure you want to remove following databases from the list: +%1 + Are you sure you want to remove following databases from the list: +%1 + + + + Remove database + Remove database + + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Vacuum (%1) + Vacuum (%1) + + + + Integrity check (%1) + Integrity check (%1) + + + + Reset autoincrement + Reset autoincrement + + + + Are you sure you want to reset autoincrement value for table '%1'? + Are you sure you want to reset autoincrement value for table '%1'? + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + An error occurred while trying to reset autoincrement value for table '%1': %2 + + + + Autoincrement value for table '%1' has been reset successfully. + Autoincrement value for table '%1' has been reset successfully. + + + + Are you sure you want to delete all data from table(s): %1? + Are you sure you want to delete all data from table(s): %1? + + + + An error occurred while trying to delete data from table '%1': %2 + An error occurred while trying to delete data from table '%1': %2 + + + + All data has been deleted for table '%1'. + All data has been deleted for table '%1'. + + + + Following objects will be deleted: %1. + Following objects will be deleted: %1. + + + + Following databases will be removed from list: %1. + Following databases will be removed from list: %1. + + + + Remainig objects from deleted group will be moved in place where the group used to be. + Remainig objects from deleted group will be moved in place where the group used to be. + + + + %1<br><br>Are you sure you want to continue? + %1<br><br>Are you sure you want to continue? + + + + Delete objects + Delete objects + + + + DbTreeItemDelegate + + + error + dbtree labels + error + + + + (system table) + database tree label + (system table) + + + + (virtual) + virtual table label + (virtual) + + + + (system index) + database tree label + (system index) + + + + DbTreeModel + + + Database: %1 + dbtree tooltip + Database: %1 + + + + URI: + dbtree tooltip + URI: + + + + Version: + dbtree tooltip + Version: + + + + File size: + dbtree tooltip + File size: + + + + Encoding: + dbtree tooltip + Encoding: + + + + Error: + dbtree tooltip + Error: + + + + Table : %1 + dbtree tooltip + Table : %1 + + + + Columns (%1): + dbtree tooltip + Columns (%1): + + + + Indexes (%1): + dbtree tooltip + Indexes (%1): + + + + Triggers (%1): + dbtree tooltip + Triggers (%1): + + + + Copy + Copy + + + + Move + Move + + + + Include data + Include data + + + + Include indexes + Include indexes + + + + Include triggers + Include triggers + + + + Abort + Abort + + + + Could not add dropped database file '%1' automatically. Manual setup is necessary. + Could not add dropped database file '%1' automatically. Manual setup is necessary. + + + + Referenced tables + Referenced tables + + + + Do you want to include following referenced tables as well: +%1 + Do you want to include following referenced tables as well: +%1 + + + + Name conflict + Name conflict + + + + Following object already exists in the target database. +Please enter new, unique name, or press '%1' to abort the operation: + Following object already exists in the target database. +Please enter new, unique name, or press '%1' to abort the operation: + + + + SQL statements conversion + SQL statements conversion + + + + Following error occurred while converting SQL statements to the target SQLite version: + Following error occurred while converting SQL statements to the target SQLite version: + + + + Would you like to ignore those errors and proceed? + Would you like to ignore those errors and proceed? + + + + DdlHistoryWindow + + + Filter by database: + Filter by database: + + + + Clear entire history + Clear entire history + + + + -- Queries executed on database %1 (%2) +-- Date and time of execution: %3 +%4 + -- Queries executed on database %1 (%2) +-- Date and time of execution: %3 +%4 + + + + Clear history + Clear history + + + + Are you sure you want to erase entire DDL history? + Are you sure you want to erase entire DDL history? + + + + DDL history + DDL history + + + + DdlPreviewDialog + + + Queries to be executed + Queries to be executed + + + + Don't show again + Don't show again + + + + DebugConsole + + + SQLiteStudio Debug Console + SQLiteStudio Debug Console + + + + EditorWindow + + + SQL editor + SQL editor + + + + Query + Query + + + + History + History + + + + Results in the separate tab + Results in the separate tab + + + + Results below the query + Results below the query + + + + + SQL editor %1 + SQL editor %1 + + + + + Results + Results + + + + Execute query + Execute query + + + + Explain query + Explain query + + + + Clear execution history + sql editor + Clear execution history + + + + Export results + sql editor + Export results + + + + Create view from query + sql editor + Create view from query + + + + Previous database + Previous database + + + + Next database + Next database + + + + Show next tab + sql editor + Show next tab + + + + Show previous tab + sql editor + Show previous tab + + + + Focus results below + sql editor + Focus results below + + + + Focus SQL editor above + sql editor + Focus SQL editor above + + + + Delete selected SQL history entries + sql editor + Delete selected SQL history entries + + + + Execute single query under cursor + Execute single query under cursor + + + + Execute all queries in editor + Execute all queries in editor + + + + Active database (%1/%2) + Active database (%1/%2) + + + + Query finished in %1 second(s). Rows affected: %2 + Query finished in %1 second(s). Rows affected: %2 + + + + Query finished in %1 second(s). + Query finished in %1 second(s). + + + + Clear execution history + Clear execution history + + + + Are you sure you want to erase the entire SQL execution history? This cannot be undone. + Are you sure you want to erase the entire SQL execution history? This cannot be undone. + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + No database selected in the SQL editor. Cannot create a view for unknown database. + No database selected in the SQL editor. Cannot create a view for unknown database. + + + + Editor window "%1" has uncommitted data. + Editor window "%1" has uncommitted data. + + + + ErrorsConfirmDialog + + + Errors + Errors + + + + Following errors occured: + Following errors occured: + + + + Would you like to proceed? + Would you like to proceed? + + + + ExecFromFileDialog + + + Execute SQL from file + Execute SQL from file + + + + Input file + Input file + + + + Path to file + Path to file + + + + Browse for file + Browse for file + + + + Options + Options + + + + File encoding + File encoding + + + + Skip failing SQL statements + Skip failing SQL statements + + + + SQL scripts (*.sql);;All files (*) + SQL scripts (*.sql);;All files (*) + + + + Execute SQL file + Execute SQL file + + + + Please provide file to be executed. + Please provide file to be executed. + + + + Provided file does not exist or cannot be read. + Provided file does not exist or cannot be read. + + + + ExportDialog + + + Export + Export + + + + What do you want to export? + What do you want to export? + + + + A database + A database + + + + A single table + A single table + + + + Query results + Query results + + + + Table to export + Table to export + + + + Database + Database + + + + Table + Table + + + + Options + Options + + + + When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. + When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. + + + + Export table data + Export table data + + + + Export table indexes + Export table indexes + + + + Export table triggers + Export table triggers + + + + Note, that exporting table indexes and triggers may be unsupported by some output formats. + Note, that exporting table indexes and triggers may be unsupported by some output formats. + + + + Select database objects to export + Select database objects to export + + + + Export data from tables + Export data from tables + + + + Select all + Select all + + + + Deselect all + Deselect all + + + + + Database: + Database: + + + + Query to export results for + Query to export results for + + + + Query to be executed for results: + Query to be executed for results: + + + + Export format and options + Export format and options + + + + Export format + Export format + + + + Output + Output + + + + Exported file path + Exported file path + + + + Clipboard + Clipboard + + + + File + File + + + + Exported text encoding: + Exported text encoding: + + + + Export format options + Export format options + + + + Cancel + Cancel + + + + + + Select database to export. + Select database to export. + + + + Select table to export. + Select table to export. + + + + Enter valid query to export. + Enter valid query to export. + + + + Select at least one object to export. + Select at least one object to export. + + + + You must provide a file name to export to. + You must provide a file name to export to. + + + + Path you provided is an existing directory. You cannot overwrite it. + Path you provided is an existing directory. You cannot overwrite it. + + + + The directory '%1' does not exist. + The directory '%1' does not exist. + + + + The file '%1' exists and will be overwritten. + The file '%1' exists and will be overwritten. + + + + All files (*) + All files (*) + + + + Pick file to export to + Pick file to export to + + + + Internal error during export. This is a bug. Please report it. + Internal error during export. This is a bug. Please report it. + + + + FileExecErrorsDialog + + + Execution errors + Execution errors + + + + Following errors were encountered during execution of SQL statements from the file: + Following errors were encountered during execution of SQL statements from the file: + + + + SQL + SQL + + + + Error + Error + + + + Statements that were executed successfully were commited. + Statements that were executed successfully were commited. + + + + Statements that were executed successfully were rolled back. + Statements that were executed successfully were rolled back. + + + + FkComboBox + + + Cannot edit this cell. Details: %1 + Cannot edit this cell. Details: %1 + + + + FontEdit + + + Choose font + font configuration + Choose font + + + + Form + + + Active SQL formatter plugin + Active SQL formatter plugin + + + + FormView + + + Commit row + form view + Commit row + + + + Rollback row + form view + Rollback row + + + + First row + form view + First row + + + + Previous row + form view + Previous row + + + + Next row + form view + Next row + + + + Last row + form view + Last row + + + + Insert new row + form view + Insert new row + + + + Delete current row + form view + Delete current row + + + + FunctionsEditor + + + Filter functions + Filter functions + + + + Input arguments + Input arguments + + + + Undefined + Undefined + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Type: + Type: + + + + Function name: + Function name: + + + + Implementation language: + Implementation language: + + + + Deterministic + Deterministic + + + + Initialization code: + Initialization code: + + + + + Function implementation code: + Function implementation code: + + + + Final step implementation code: + Final step implementation code: + + + + SQL functions editor + SQL functions editor + + + + Commit all function changes + Commit all function changes + + + + Rollback all function changes + Rollback all function changes + + + + Create new function + Create new function + + + + Delete selected function + Delete selected function + + + + Custom SQL functions manual + Custom SQL functions manual + + + + Add function argument + Add function argument + + + + Rename function argument + Rename function argument + + + + Delete function argument + Delete function argument + + + + Move function argument up + Move function argument up + + + + Move function argument down + Move function argument down + + + + Scalar + Scalar + + + + Aggregate + Aggregate + + + + Enter a non-empty, unique name of the function. + Enter a non-empty, unique name of the function. + + + + Pick the implementation language. + Pick the implementation language. + + + + Per step code: + Per step code: + + + + Enter a non-empty implementation code. + Enter a non-empty implementation code. + + + + argument + new function argument name in function editor window + argument + + + + Functions editor window has uncommitted modifications. + Functions editor window has uncommitted modifications. + + + + ImportDialog + + + Import data + Import data + + + + Table to import to + Table to import to + + + + Table + Table + + + + Database + Database + + + + Data source to import from + Data source to import from + + + + Data source type + Data source type + + + + Options + Options + + + + Text encoding: + Text encoding: + + + + Input file: + Input file: + + + + <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> + <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> + + + + Ignore errors + Ignore errors + + + + Data source options + Data source options + + + + Cancel + Cancel + + + + If you type table name that doesn't exist, it will be created. + If you type table name that doesn't exist, it will be created. + + + + Enter the table name + Enter the table name + + + + Select import plugin. + Select import plugin. + + + + You must provide a file to import from. + You must provide a file to import from. + + + + The file '%1' does not exist. + The file '%1' does not exist. + + + + Path you provided is a directory. A regular file is required. + Path you provided is a directory. A regular file is required. + + + + Pick file to import from + Pick file to import from + + + + IndexDialog + + + + Index + Index + + + + Column + Column + + + + Sort + Sort + + + + Collation + Collation + + + + On table: + On table: + + + + Delete selected indexed expression + Delete selected indexed expression + + + + Moves selected index column up in the order, making it more significant in the index. + Moves selected index column up in the order, making it more significant in the index. + + + + Moves selected index column down in the order, making it less significant in the index. + Moves selected index column down in the order, making it less significant in the index. + + + + Partial index condition + Partial index condition + + + + Unique index + Unique index + + + + Index name: + Index name: + + + + Edit selected indexed expression + Edit selected indexed expression + + + + Add indexed expression + Add indexed expression + + + + DDL + DDL + + + + Tried to open index dialog for closed or inexisting database. + Tried to open index dialog for closed or inexisting database. + + + + Could not process index %1 correctly. Unable to open an index dialog. + Could not process index %1 correctly. Unable to open an index dialog. + + + + Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. + Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. + + + + Pick the table for the index. + Pick the table for the index. + + + + Select at least one column. + Select at least one column. + + + + Enter a valid condition. + Enter a valid condition. + + + + default + index dialog + default + + + + Sort order + table constraints + Sort order + + + + + Error + index dialog + Error + + + + Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? + Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? + + + + An error occurred while executing SQL statements: +%1 + An error occurred while executing SQL statements: +%1 + + + + IndexExprColumnDialog + + + Indexed expression + Indexed expression + + + + Expression to index + Expression to index + + + + This expression is already indexed by the index. + This expression is already indexed by the index. + + + + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. + + + + Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. + Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. + + + + It's forbidden to use 'SELECT' statements in indexed expressions. + It's forbidden to use 'SELECT' statements in indexed expressions. + + + + Enter an indexed expression. + Enter an indexed expression. + + + + Invalid expression. + Invalid expression. + + + + LanguageDialog + + + Language + Language + + + + Please choose language: + Please choose language: + + + + MainWindow + + + Database toolbar + Database toolbar + + + + Structure toolbar + Structure toolbar + + + + Tools + Tools + + + + Window list + Window list + + + + View toolbar + View toolbar + + + + Configuration widgets + Configuration widgets + + + + Syntax highlighting engines + Syntax highlighting engines + + + + Data editors + Data editors + + + + Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. + Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. + + + + Running in debug mode. Debug messages are printed to the standard output. + Running in debug mode. Debug messages are printed to the standard output. + + + + You need to restart application to make the language change take effect. + You need to restart application to make the language change take effect. + + + + Open SQL &editor + Open SQL &editor + + + + Open DDL &history + Open DDL &history + + + + Open SQL &functions editor + Open SQL &functions editor + + + + Open code &snippets editor + Open code &snippets editor + + + + Open &collations editor + Open &collations editor + + + + Open ex&tension manager + Open ex&tension manager + + + + &Import + &Import + + + + E&xport + E&xport + + + + Open confi&guration dialog + Open confi&guration dialog + + + + &Tile windows + &Tile windows + + + + Tile windows &horizontally + Tile windows &horizontally + + + + Tile windows &vertically + Tile windows &vertically + + + + &Cascade windows + &Cascade windows + + + + Next window + Next window + + + + Previous window + Previous window + + + + Hide status field + Hide status field + + + + Close &all windows + Close &all windows + + + + Re&store recently closed window + Re&store recently closed window + + + + Close current &window + Close current &window + + + + Close &other windows + Close &other windows + + + + Close windows on the &left + Close windows on the &left + + + + Close windows on the &right + Close windows on the &right + + + + Re&name selected window + Re&name selected window + + + + Open Debug Console + Open Debug Console + + + + Open CSS Console + Open CSS Console + + + + Report a &bug + Report a &bug + + + + D&onate + D&onate + + + + Propose a new &feature + Propose a new &feature + + + + &About + &About + + + + &Licenses + &Licenses + + + + Open home &page + Open home &page + + + + User &Manual + User &Manual + + + + SQLite &documentation + SQLite &documentation + + + + Bugs and feature &requests + Bugs and feature &requests + + + + Quit + Quit + + + + Check for &updates + Check for &updates + + + + &Database + menubar + &Database + + + + &Structure + menubar + &Structure + + + + &View + menubar + &View + + + + Window list + menubar view menu + Window list + + + + &Tools + menubar + &Tools + + + + &Help + &Help + + + + Could not set style: %1 + main window + Could not set style: %1 + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + Rename window + Rename window + + + + Enter new name for the window: + Enter new name for the window: + + + + New updates are available. <a href="%1">Click here for details</a>. + New updates are available. <a href="%1">Click here for details</a>. + + + + You're running the most recent version. No updates are available. + You're running the most recent version. No updates are available. + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + Database passed in command line parameters (%1) was already on the list under name: %2 + + + + Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 + Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + MdiWindow + + + Uncommitted changes + Uncommitted changes + + + + Close anyway + Close anyway + + + + Don't close + Don't close + + + + MultiEditor + + + Null value + multieditor + Null value + + + + Configure editors for this data type + Configure editors for this data type + + + + Open another tab + Open another tab + + + + Foreign Key + Foreign Key + + + + Data editor plugin '%1' not loaded, while it is defined for editing '%2' data type. + Data editor plugin '%1' not loaded, while it is defined for editing '%2' data type. + + + + Deleted + multieditor + Deleted + + + + Read only + multieditor + Read only + + + + MultiEditorBoolPlugin + + + Boolean + Boolean + + + + MultiEditorDatePlugin + + + Date + Date + + + + MultiEditorDateTimePlugin + + + Date & time + Date & time + + + + MultiEditorHexPlugin + + + Hex + Hex + + + + MultiEditorNumericPlugin + + + Number + numeric multi editor tab name + Number + + + + MultiEditorText + + + Tab changes focus + Tab changes focus + + + + Cut + Cut + + + + Copy + Copy + + + + Paste + Paste + + + + Delete + Delete + + + + Undo + Undo + + + + Redo + Redo + + + + MultiEditorTextPlugin + + + Text + Text + + + + MultiEditorTimePlugin + + + Time + Time + + + + NewConstraintDialog + + + New constraint + New constraint + + + + + Primary Key + new constraint dialog + Primary Key + + + + + Foreign Key + new constraint dialog + Foreign Key + + + + + Unique + new constraint dialog + Unique + + + + + Check + new constraint dialog + Check + + + + Not NULL + new constraint dialog + Not NULL + + + + Collate + new constraint dialog + Collate + + + + Generated + new constraint dialog + Generated + + + + Default + new constraint dialog + Default + + + + NewVersionDialog + + + SQLiteStudio updates + SQLiteStudio updates + + + + New version is available! + New version is available! + + + + Download new version! + Download new version! + + + + New version package will be downloaded. It will be up to you to install it whenever you're ready. + New version package will be downloaded. It will be up to you to install it whenever you're ready. + + + + Open SQLiteStudio home page. + Open SQLiteStudio home page. + + + + Read release notes && download package yourself. + Read release notes && download package yourself. + + + + Just close this window. + Just close this window. + + + + Check for updates on startup + Check for updates on startup + + + + Not now. + Not now. + + + + PopulateConfigDialog + + + Populating configuration + Populating configuration + + + + Configuring <b>%1</b> for column <b>%2</b> + Configuring <b>%1</b> for column <b>%2</b> + + + + PopulateDialog + + + Populate table + Populate table + + + + Database + Database + + + + Table + Table + + + + Columns + Columns + + + + Number of rows to populate: + Number of rows to populate: + + + + Populate + populate dialog button + Populate + + + + Abort + Abort + + + + Configure + Configure + + + + Populating configuration for this column is invalid or incomplete. + Populating configuration for this column is invalid or incomplete. + + + + Select database with table to populate + Select database with table to populate + + + + Select table to populate + Select table to populate + + + + You have to select at least one column. + You have to select at least one column. + + + + QObject + + + Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). + Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). + + + + The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. + The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. + + + + Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. + Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. + + + + Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. + Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. + + + + Cannot edit results of query other than %1. + Cannot edit results of query other than %1. + + + + Cannot edit columns that are result of aggregated %1 statements. + Cannot edit columns that are result of aggregated %1 statements. + + + + Cannot edit columns that are result of %1 statement. + Cannot edit columns that are result of %1 statement. + + + + Cannot edit columns that are result of common table expression statement (%1). + Cannot edit columns that are result of common table expression statement (%1). + + + + Cannot edit table generated columns. + Cannot edit table generated columns. + + + + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). + + + + + + + on conflict: %1 + data view tooltip + on conflict: %1 + + + + references table %1, column %2 + data view tooltip + references table %1, column %2 + + + + condition: %1 + data view tooltip + condition: %1 + + + + collation name: %1 + data view tooltip + collation name: %1 + + + + Data grid view + Data grid view + + + + Edit current cell inline + Edit current cell inline + + + + Copy cell(s) contents to clipboard + Copy cell(s) contents to clipboard + + + + Copy cell(s) contents together with header to clipboard + Copy cell(s) contents together with header to clipboard + + + + Paste cell(s) contents from clipboard + Paste cell(s) contents from clipboard + + + + Set empty value to selected cell(s) + Set empty value to selected cell(s) + + + + Set NULL value to selected cell(s) + Set NULL value to selected cell(s) + + + + Commit changes to cell(s) contents + Commit changes to cell(s) contents + + + + Rollback changes to cell(s) contents + Rollback changes to cell(s) contents + + + + Delete selected data row + Delete selected data row + + + + Insert new data row + Insert new data row + + + + Open contents of selected cell in a separate editor + Open contents of selected cell in a separate editor + + + + Toggle the height adjustment of rows + Toggle the height adjustment of rows + + + + Increase font size + data view + Increase font size + + + + Decrease font size + data view + Decrease font size + + + + Total pages available: %1 + Total pages available: %1 + + + + Total rows loaded: %1 + Total rows loaded: %1 + + + + Data view (both grid and form) + Data view (both grid and form) + + + + Refresh data + Refresh data + + + + Switch to grid view of the data + Switch to grid view of the data + + + + Switch to form view of the data + Switch to form view of the data + + + + Database list + Database list + + + + Delete selected item + Delete selected item + + + + Clear filter contents + Clear filter contents + + + + Refresh schema + Refresh schema + + + + Refresh all schemas + Refresh all schemas + + + + Add database + Add database + + + + Select all items + Select all items + + + + Copy selected item(s) + Copy selected item(s) + + + + + + Paste from clipboard + Paste from clipboard + + + + Increase font size + database list + Increase font size + + + + Decrease font size + database list + Decrease font size + + + + Tables + Tables + + + + Indexes + Indexes + + + + Triggers + Triggers + + + + Views + Views + + + + Columns + Columns + + + + Data form view + Data form view + + + + Commit changes for current row + Commit changes for current row + + + + Rollback changes for current row + Rollback changes for current row + + + + Go to first row on current page + Go to first row on current page + + + + Go to next row + Go to next row + + + + Go to previous row + Go to previous row + + + + Go to last row on current page + Go to last row on current page + + + + Insert new row + Insert new row + + + + Delete current row + Delete current row + + + + Main window + Main window + + + + Open SQL editor + Open SQL editor + + + + Open DDL history window + Open DDL history window + + + + Open snippets editor window + Open snippets editor window + + + + Open function editor window + Open function editor window + + + + Open collation editor window + Open collation editor window + + + + Open extension manager window + Open extension manager window + + + + Previous window + Previous window + + + + Next window + Next window + + + + Hide status area + Hide status area + + + + Open user manual + Open user manual + + + + Open configuration dialog + Open configuration dialog + + + + Open Debug Console + Open Debug Console + + + + Open CSS Console + Open CSS Console + + + + Open the About dialog + Open the About dialog + + + + Quit the application + Quit the application + + + + Cell text value editor + Cell text value editor + + + + + Cut selected text + Cut selected text + + + + + Copy selected text + Copy selected text + + + + + Delete selected text + Delete selected text + + + + + Undo + Undo + + + + + Redo + Redo + + + + SQL editor input field + SQL editor input field + + + + Select whole editor contents + Select whole editor contents + + + + Save contents into a file + Save contents into a file + + + + Load contents from a file + Load contents from a file + + + + Find in text + Find in text + + + + Find next + Find next + + + + Find previous + Find previous + + + + Replace in text + Replace in text + + + + Delete current line + Delete current line + + + + Request code assistant + Request code assistant + + + + Format contents + Format contents + + + + Move selected block of text one line down + Move selected block of text one line down + + + + Move selected block of text one line up + Move selected block of text one line up + + + + Copy selected block of text and paste it a line below + Copy selected block of text and paste it a line below + + + + Copy selected block of text and paste it a line above + Copy selected block of text and paste it a line above + + + + Toggle comment + Toggle comment + + + + Increase font size + sql editor + Increase font size + + + + Decrease font size + sql editor + Decrease font size + + + + All SQLite databases + All SQLite databases + + + + All files + All files + + + + Select database file + Select database file + + + + Select + Select + + + + File type + File type + + + + SQL editor window + SQL editor window + + + + Execute query + Execute query + + + + Execute single query under cursor + Execute single query under cursor + + + + Execute all queries in editor + Execute all queries in editor + + + + Execute "%1" query + Execute "%1" query + + + + Switch current working database to previous on the list + Switch current working database to previous on the list + + + + Switch current working database to next on the list + Switch current working database to next on the list + + + + Go to next editor tab + Go to next editor tab + + + + Go to previous editor tab + Go to previous editor tab + + + + Move keyboard input focus to the results view below + Move keyboard input focus to the results view below + + + + Move keyboard input focus to the SQL editor above + Move keyboard input focus to the SQL editor above + + + + Delete selected SQL history entries + Delete selected SQL history entries + + + + Table window + Table window + + + + Commit the table structure + Commit the table structure + + + + Rollback pending changes in the table structure + Rollback pending changes in the table structure + + + + Refresh table structure + Refresh table structure + + + + Add new column + Add new column + + + + Edit selected column + Edit selected column + + + + Delete selected column + Delete selected column + + + + Export table data + Export table data + + + + Import data to the table + Import data to the table + + + + Add new table constraint + Add new table constraint + + + + Edit selected table constraint + Edit selected table constraint + + + + Delete selected table constraint + Delete selected table constraint + + + + Refresh table index list + Refresh table index list + + + + Add new index + Add new index + + + + Edit selected index + Edit selected index + + + + Delete selected index + Delete selected index + + + + Refresh table trigger list + Refresh table trigger list + + + + + Add new trigger + Add new trigger + + + + + Edit selected trigger + Edit selected trigger + + + + + Delete selected trigger + Delete selected trigger + + + + + Go to next tab + Go to next tab + + + + + Go to previous tab + Go to previous tab + + + + A view window + A view window + + + + Commit the view's query + Commit the view's query + + + + Rollback pending changes in the view's query + Rollback pending changes in the view's query + + + + Refresh view trigger list + Refresh view trigger list + + + + Execute the view's query + Execute the view's query + + + + A code snippets editor window + A code snippets editor window + + + + + + + Commit the pending changes + Commit the pending changes + + + + + + + Rollback the pending changes + Rollback the pending changes + + + + A collation editor window + A collation editor window + + + + A function editor window + A function editor window + + + + A SQLite extension editor window + A SQLite extension editor window + + + + QuitConfirmDialog + + + Uncommitted changes + Uncommitted changes + + + + Are you sure you want to quit the application? + +Following items are pending: + Are you sure you want to quit the application? + +Following items are pending: + + + + SearchTextDialog + + + Find or replace + Find or replace + + + + Find: + Find: + + + + Case sensitive + Case sensitive + + + + Search backwards + Search backwards + + + + Regular expression matching + Regular expression matching + + + + Replace && +find next + Replace && +find next + + + + Replace with: + Replace with: + + + + Replace all + Replace all + + + + Find + Find + + + + SortDialog + + + Sort by columns + Sort by columns + + + + + Column + Column + + + + + Order + Order + + + + Sort by: %1 + Sort by: %1 + + + + Move column up + Move column up + + + + Move column down + Move column down + + + + SqlEditor + + + Wrap words + sql editor + Wrap words + + + + Cut + sql editor + Cut + + + + Copy + sql editor + Copy + + + + Paste + sql editor + Paste + + + + Delete + sql editor + Delete + + + + Select all + sql editor + Select all + + + + Undo + sql editor + Undo + + + + Redo + sql editor + Redo + + + + Complete + sql editor + Complete + + + + Format SQL + sql editor + Format SQL + + + + Save SQL to file + sql editor + Save SQL to file + + + + Select file to save SQL + sql editor + Select file to save SQL + + + + Load SQL from file + sql editor + Load SQL from file + + + + Delete line + sql editor + Delete line + + + + Move block down + sql editor + Move block down + + + + Move block up + sql editor + Move block up + + + + Copy block down + sql editor + Copy block down + + + + Copy up down + sql editor + Copy up down + + + + Find + sql editor + Find + + + + Find next + sql editor + Find next + + + + Find previous + sql editor + Find previous + + + + Replace + sql editor + Replace + + + + Toggle comment + sql editor + Toggle comment + + + + Increase font size + sql editor + Increase font size + + + + Decrease font size + sql editor + Decrease font size + + + + Could not open file '%1' for writing: %2 + Could not open file '%1' for writing: %2 + + + + Saved SQL contents to file: %1 + Saved SQL contents to file: %1 + + + + Syntax completion can be used only when a valid database is set for the SQL editor. + Syntax completion can be used only when a valid database is set for the SQL editor. + + + + Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. + Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. + + + + Save to file + Save to file + + + + SQL scripts (*.sql);;All files (*) + SQL scripts (*.sql);;All files (*) + + + + Open file + Open file + + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Reached the end of document. Hit the find again to restart the search. + Reached the end of document. Hit the find again to restart the search. + + + + SqlQueryItem + + + Committing error: + data view tooltip + Committing error: + + + + Column: + data view tooltip + Column: + + + + Data type: + data view + Data type: + + + + Table: + data view tooltip + Table: + + + + Constraints: + data view tooltip + Constraints: + + + + SqlQueryItemDelegate + + + + + + Cannot edit this cell. Details: %1 + Cannot edit this cell. Details: %1 + + + + The row is marked for deletion. + The row is marked for deletion. + + + + + Structure of this table has changed since last data was loaded. Reload the data to proceed. + Structure of this table has changed since last data was loaded. Reload the data to proceed. + + + + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). + + + + Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. + Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. + + + + SqlQueryModel + + + + Only one query can be executed simultaneously. + Only one query can be executed simultaneously. + + + + Cannot execute query on undefined or invalid database. + Cannot execute query on undefined or invalid database. + + + + Cannot execute empty query. + Cannot execute empty query. + + + + Uncommitted data + Uncommitted data + + + + There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. + There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. + + + + Cannot commit the data for a cell that refers to the already closed database. + Cannot commit the data for a cell that refers to the already closed database. + + + + Could not begin transaction on the database. Details: %1 + Could not begin transaction on the database. Details: %1 + + + + An error occurred while committing the transaction: %1 + An error occurred while committing the transaction: %1 + + + + An error occurred while rolling back the transaction: %1 + An error occurred while rolling back the transaction: %1 + + + + Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. + Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. + + + + An error occurred while committing the data: %1 + An error occurred while committing the data: %1 + + + + Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. + Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. + + + + + Error while executing SQL query on database '%1': %2 + Error while executing SQL query on database '%1': %2 + + + + Error while loading query results: %1 + Error while loading query results: %1 + + + + Insert multiple rows + Insert multiple rows + + + + Number of rows to insert: + Number of rows to insert: + + + + Delete rows + Delete rows + + + + You're about to delete newly inserted rows that are not committed yet. Row numbers: %1 +Such deletion will be permanent. Are you sure you want to delete them? + You're about to delete newly inserted rows that are not committed yet. Row numbers: %1 +Such deletion will be permanent. Are you sure you want to delete them? + + + + SqlQueryView + + + Go to referenced row in... + Go to referenced row in... + + + + Copy + Copy + + + + Copy with headers + Copy with headers + + + + Copy as... + Copy as... + + + + Paste + Paste + + + + Paste as... + Paste as... + + + + Set NULL values + Set NULL values + + + + Erase values + Erase values + + + + Commit + Commit + + + + Rollback + Rollback + + + + Commit selected cells + Commit selected cells + + + + Rollback selected cells + Rollback selected cells + + + + Edit current cell inline + Edit current cell inline + + + + Define columns to sort by + Define columns to sort by + + + + Remove custom sorting + Remove custom sorting + + + + Insert row + Insert row + + + + Insert multiple rows + Insert multiple rows + + + + Delete selected row + Delete selected row + + + + Adjust height of rows + Adjust height of rows + + + + Increase font size + data view + Increase font size + + + + Decrease font size + data view + Decrease font size + + + + Invert selection + data view + Invert selection + + + + Edit value in editor + Edit value in editor + + + + Show value in a viewer + Show value in a viewer + + + + Generate query for selected cells + Generate query for selected cells + + + + No items selected to paste clipboard contents to. + No items selected to paste clipboard contents to. + + + + Cannot paste data. Details: %1 + Cannot paste data. Details: %1 + + + + Structure of at least one table used has changed since last data was loaded. Reload the data to proceed. + Structure of at least one table used has changed since last data was loaded. Reload the data to proceed. + + + + Cannot paste to a cell. Details: %1 + Cannot paste to a cell. Details: %1 + + + + The row is marked for deletion. + The row is marked for deletion. + + + + Cannot paste to column %1. Details: %2 + Cannot paste to column %1. Details: %2 + + + + Go to referenced row in table '%1' + Go to referenced row in table '%1' + + + + table '%1' + table '%1' + + + + Referenced row (%1) + Referenced row (%1) + + + + Trim pasted text? + Trim pasted text? + + + + The pasted text contains leading or trailing white space. Trim it automatically? + The pasted text contains leading or trailing white space. Trim it automatically? + + + + Paste "NULL" as null value? + Paste "NULL" as null value? + + + + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + + + + Edit value + Edit value + + + + SqlTableModel + + + Error while committing new row: %1 + Error while committing new row: %1 + + + + Error while deleting row from table %1: %2 + Error while deleting row from table %1: %2 + + + + SqliteExtensionEditor + + + Filter extensions + Filter extensions + + + + Leave empty to use default function + Leave empty to use default function + + + + Extension file + Extension file + + + + Initialization function + Initialization function + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Extension manager window has uncommitted modifications. + Extension manager window has uncommitted modifications. + + + + Extension manager + Extension manager + + + + Commit all extension changes + Commit all extension changes + + + + Rollback all extension changes + Rollback all extension changes + + + + Add new extension + Add new extension + + + + Remove selected extension + Remove selected extension + + + + Editing extensions manual + Editing extensions manual + + + + File with given path does not exist or is not readable. + File with given path does not exist or is not readable. + + + + Unable to load extension: %1 + Unable to load extension: %1 + + + + Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. + Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. + + + + Dynamic link libraries (*.dll);;All files (*) + Dynamic link libraries (*.dll);;All files (*) + + + + Shared objects (*.so);;All files (*) + Shared objects (*.so);;All files (*) + + + + Dynamic libraries (*.dylib);;All files (*) + Dynamic libraries (*.dylib);;All files (*) + + + + All files (*) + All files (*) + + + + Open file + Open file + + + + StatusField + + + Status + Status + + + + Copy + Copy + + + + Clear + Clear + + + + TableConstraintsModel + + + Type + table constraints + Type + + + + Details + table constraints + Details + + + + Name + table constraints + Name + + + + TableForeignKeyPanel + + + Foreign table: + Foreign table: + + + + Columns + Columns + + + + Local column + Local column + + + + Foreign column + Foreign column + + + + Reactions + Reactions + + + + Deferred foreign key + Deferred foreign key + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + Pick the foreign column. + Pick the foreign column. + + + + Pick the foreign table. + Pick the foreign table. + + + + Select at least one foreign column. + Select at least one foreign column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + Foreign column + table constraints + Foreign column + + + + TablePrimaryKeyAndUniquePanel + + + Columns + Columns + + + + Column + Column + + + + Collation + Collation + + + + Sort + Sort + + + + Valid only for a single column with INTEGER data type + Valid only for a single column with INTEGER data type + + + + Autoincrement + Autoincrement + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + On conflict + On conflict + + + + Collate + table constraints + Collate + + + + Sort order + table constraints + Sort order + + + + Select at least one column. + Select at least one column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + TableStructureModel + + + Name + table structure columns + Name + + + + Data type + table structure columns + Data type + + + + Primary +Key + table structure columns + Primary +Key + + + + Foreign +Key + table structure columns + Foreign +Key + + + + Unique + table structure columns + Unique + + + + Check + table structure columns + Check + + + + Not +NULL + table structure columns + Not +NULL + + + + Collate + table structure columns + Collate + + + + Generated + table structure columns + Generated + + + + Default value + table structure columns + Default value + + + + TableWindow + + + Structure + Structure + + + + Table name: + Table name: + + + + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + + + + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + + + + + Data + Data + + + + Constraints + Constraints + + + + Indexes + Indexes + + + + Triggers + Triggers + + + + DDL + DDL + + + + Export table + table window + Export table + + + + Import data to table + table window + Import data to table + + + + Populate table + table window + Populate table + + + + Refresh structure + table window + Refresh structure + + + + Commit structure changes + table window + Commit structure changes + + + + Rollback structure changes + table window + Rollback structure changes + + + + Add column + table window + Add column + + + + Edit column + table window + Edit column + + + + + Delete column + table window + Delete column + + + + Move column up + table window + Move column up + + + + Move column down + table window + Move column down + + + + Create similar table + table window + Create similar table + + + + Reset autoincrement value + table window + Reset autoincrement value + + + + Add table constraint + table window + Add table constraint + + + + Edit table constraint + table window + Edit table constraint + + + + Delete table constraint + table window + Delete table constraint + + + + Move table constraint up + table window + Move table constraint up + + + + Move table constraint down + table window + Move table constraint down + + + + Add table primary key + table window + Add table primary key + + + + Add table foreign key + table window + Add table foreign key + + + + Add table unique constraint + table window + Add table unique constraint + + + + Add table check constraint + table window + Add table check constraint + + + + Refresh index list + table window + Refresh index list + + + + + Create index + table window + Create index + + + + Edit index + table window + Edit index + + + + Delete index + table window + Delete index + + + + Refresh trigger list + table window + Refresh trigger list + + + + + Create trigger + table window + Create trigger + + + + Edit trigger + table window + Edit trigger + + + + Delete trigger + table window + Delete trigger + + + + Are you sure you want to delete column '%1'? + table window + Are you sure you want to delete column '%1'? + + + + Following problems will take place while modifying the table. +Would you like to proceed? + table window + Following problems will take place while modifying the table. +Would you like to proceed? + + + + Table modification + table window + Table modification + + + + Could not load data for table %1. Error details: %2 + Could not load data for table %1. Error details: %2 + + + + Could not process the %1 table correctly. Unable to open a table window. + Could not process the %1 table correctly. Unable to open a table window. + + + + Database + Database + + + + Could not restore window %1, because no database or table was stored in session for this window. + Could not restore window %1, because no database or table was stored in session for this window. + + + + Could not restore window '%1', because no database or table was stored in session for this window. + Could not restore window '%1', because no database or table was stored in session for this window. + + + + Could not restore window '%1', because database %2 could not be resolved. + Could not restore window '%1', because database %2 could not be resolved. + + + + Could not restore window '%1', because the table %2 doesn't exist in the database %3. + Could not restore window '%1', because the table %2 doesn't exist in the database %3. + + + + + New table %1 + New table %1 + + + + Committed changes for table '%1' successfully. + Committed changes for table '%1' successfully. + + + + Committed changes for table '%1' (named before '%2') successfully. + Committed changes for table '%1' (named before '%2') successfully. + + + + Could not commit table structure. Error message: %1 + table window + Could not commit table structure. Error message: %1 + + + + Reset autoincrement + Reset autoincrement + + + + Are you sure you want to reset autoincrement value for table '%1'? + Are you sure you want to reset autoincrement value for table '%1'? + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + An error occurred while trying to reset autoincrement value for table '%1': %2 + + + + Autoincrement value for table '%1' has been reset successfully. + Autoincrement value for table '%1' has been reset successfully. + + + + Empty name + Empty name + + + + A blank name for the table is allowed in SQLite, but it is not recommended. +Are you sure you want to create a table with blank name? + A blank name for the table is allowed in SQLite, but it is not recommended. +Are you sure you want to create a table with blank name? + + + + Cannot create a table without at least one column. + Cannot create a table without at least one column. + + + + Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. + Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. + + + + Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. + Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. + + + + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 + + + + Are you sure you want to delete table constraint '%1'? + table window + Are you sure you want to delete table constraint '%1'? + + + + Delete constraint + table window + Delete constraint + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + Uncommitted changes + Uncommitted changes + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + + + + Go back to structure tab + Go back to structure tab + + + + Commit modifications and browse data. + Commit modifications and browse data. + + + + Name + table window indexes + Name + + + + Unique + table window indexes + Unique + + + + Columns + table window indexes + Columns + + + + Partial index condition + table window indexes + Partial index condition + + + + Name + table window triggers + Name + + + + Event + table window triggers + Event + + + + Condition + table window triggers + Condition + + + + Details + table window triggers + Details + + + + Table window "%1" has uncommitted structure modifications and data. + Table window "%1" has uncommitted structure modifications and data. + + + + Table window "%1" has uncommitted data. + Table window "%1" has uncommitted data. + + + + Table window "%1" has uncommitted structure modifications. + Table window "%1" has uncommitted structure modifications. + + + + TriggerColumnsDialog + + + Trigger columns + Trigger columns + + + + Triggering columns: + Triggering columns: + + + + Select all + Select all + + + + Deselect all + Deselect all + + + + TriggerDialog + + + + Trigger + Trigger + + + + On table: + On table: + + + + Action: + Action: + + + + + <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> + <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> + + + + Pre-condition: + Pre-condition: + + + + The scope is still not fully supported by the SQLite database. + The scope is still not fully supported by the SQLite database. + + + + Trigger name: + Trigger name: + + + + When: + When: + + + + List of columns for UPDATE OF action. + List of columns for UPDATE OF action. + + + + Scope: + Scope: + + + + Code: + Code: + + + + Trigger statements to be executed. + Trigger statements to be executed. + + + + DDL + DDL + + + + On view: + On view: + + + + Could not process trigger %1 correctly. Unable to open a trigger dialog. + Could not process trigger %1 correctly. Unable to open a trigger dialog. + + + + Enter a valid condition. + Enter a valid condition. + + + + Enter a valid trigger code. + Enter a valid trigger code. + + + + Error + trigger dialog + Error + + + + An error occurred while executing SQL statements: +%1 + An error occurred while executing SQL statements: +%1 + + + + VersionConvertSummaryDialog + + + Database version convert + Database version convert + + + + Following changes to the SQL statements will be made: + Following changes to the SQL statements will be made: + + + + Before + Before + + + + After + After + + + + ViewWindow + + + Query + Query + + + + View name: + View name: + + + + Output column names + Output column names + + + + + Data + Data + + + + Triggers + Triggers + + + + DDL + DDL + + + + + Could not restore window '%1', because no database or view was stored in session for this window. + Could not restore window '%1', because no database or view was stored in session for this window. + + + + Could not restore window '%1', because database %2 could not be resolved. + Could not restore window '%1', because database %2 could not be resolved. + + + + Could not restore window '%1', because database %2 could not be open. + Could not restore window '%1', because database %2 could not be open. + + + + Could not restore window '%1', because the view %2 doesn't exist in the database %3. + Could not restore window '%1', because the view %2 doesn't exist in the database %3. + + + + + New view %1 + New view %1 + + + + Database + Database + + + + Refresh the view + view window + Refresh the view + + + + Commit the view changes + view window + Commit the view changes + + + + Rollback the view changes + view window + Rollback the view changes + + + + Explicit column names + Explicit column names + + + + Generate output column names automatically basing on result columns of the view. + Generate output column names automatically basing on result columns of the view. + + + + Add column + view window + Add column + + + + Edit column + view window + Edit column + + + + Delete column + view window + Delete column + + + + Move column up + view window + Move column up + + + + Move column down + view window + Move column down + + + + Refresh trigger list + view window + Refresh trigger list + + + + Create new trigger + view window + Create new trigger + + + + Edit selected trigger + view window + Edit selected trigger + + + + Delete selected trigger + view window + Delete selected trigger + + + + View window "%1" has uncommitted structure modifications and data. + View window "%1" has uncommitted structure modifications and data. + + + + View window "%1" has uncommitted data. + View window "%1" has uncommitted data. + + + + View window "%1" has uncommitted structure modifications. + View window "%1" has uncommitted structure modifications. + + + + Could not load data for view %1. Error details: %2 + Could not load data for view %1. Error details: %2 + + + + Uncommitted changes + Uncommitted changes + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + + + + Go back to structure tab + Go back to structure tab + + + + Commit modifications and browse data. + Commit modifications and browse data. + + + + View '%1' was committed successfully. + View '%1' was committed successfully. + + + + Committed changes for view '%1' successfully. + Committed changes for view '%1' successfully. + + + + Committed changes for view '%1' (named before '%2') successfully. + Committed changes for view '%1' (named before '%2') successfully. + + + + Could not commit view changes. Error message: %1 + view window + Could not commit view changes. Error message: %1 + + + + Override columns + Override columns + + + + Currently defined columns will be overriden. Do you want to continue? + Currently defined columns will be overriden. Do you want to continue? + + + + Could not determinate columns returned from the view. The query is problably incomplete or contains errors. + Could not determinate columns returned from the view. The query is problably incomplete or contains errors. + + + + Name + view window triggers + Name + + + + Instead of + view window triggers + Instead of + + + + Condition + view window triggers + Condition + + + + Details + table window triggers + Details + + + + Could not process the %1 view correctly. Unable to open a view window. + Could not process the %1 view correctly. Unable to open a view window. + + + + Empty name + Empty name + + + + A blank name for the view is allowed in SQLite, but it is not recommended. +Are you sure you want to create a view with blank name? + A blank name for the view is allowed in SQLite, but it is not recommended. +Are you sure you want to create a view with blank name? + + + + The SELECT statement could not be parsed. Please correct the query and retry. +Details: %1 + The SELECT statement could not be parsed. Please correct the query and retry. +Details: %1 + + + + The view could not be modified due to internal SQLiteStudio error. Please report this! + The view could not be modified due to internal SQLiteStudio error. Please report this! + + + + The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. + The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. + + + + Following problems will take place while modifying the view. +Would you like to proceed? + view window + Following problems will take place while modifying the view. +Would you like to proceed? + + + + View modification + view window + View modification + + + + WidgetCover + + + Interrupt + Interrupt + + + diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_ko_KR.ts b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_ko_KR.ts new file mode 100644 index 0000000..10a65d5 --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_ko_KR.ts @@ -0,0 +1,7111 @@ + + + + + AboutDialog + + + About SQLiteStudio and licenses + About SQLiteStudio and licenses + + + + About + About + + + + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + + + + Licenses + Licenses + + + + Environment + Environment + + + + Icon directories + Icon directories + + + + Form directories + Form directories + + + + SQLite extension directories + SQLite extension directories + + + + Plugin directories + Plugin directories + + + + Configuration directory + Configuration directory + + + + Application directory + Application directory + + + + Qt version: + Qt version: + + + + SQLite 3 version: + SQLite 3 version: + + + + Portable distribution. + Portable distribution. + + + + MacOS X application bundle distribution. + MacOS X application bundle distribution. + + + + Operating system managed distribution. + Operating system managed distribution. + + + + <h3>Table of contents:</h3><ol>%2</ol> + <h3>Table of contents:</h3><ol>%2</ol> + + + + BindParamsDialog + + + Query parameters + Query parameters + + + + Please provide values for query parameters + Please provide values for query parameters + + + + CodeSnippetEditor + + + Filter snippets + Filter snippets + + + + + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + + + + + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + + + + Snippet name + Snippet name + + + + Code assistant shortcut + Code assistant shortcut + + + + Snippet code + Snippet code + + + + Code Snippets editor window has uncommitted modifications. + Code Snippets editor window has uncommitted modifications. + + + + Code Snippets editor + Code Snippets editor + + + + Commit all snippet changes + Commit all snippet changes + + + + Rollback all snippet changes + Rollback all snippet changes + + + + Create new snippet + Create new snippet + + + + Delete selected snippet + Delete selected snippet + + + + Move the snippet up + Move the snippet up + + + + Move the snippet down + Move the snippet down + + + + Code snippets manual + Code snippets manual + + + + Enter a non-empty, unique name of the snippet. + Enter a non-empty, unique name of the snippet. + + + + Enter a non-empty snippet content. + Enter a non-empty snippet content. + + + + This hotkey is not unique in context of a code assistant. + This hotkey is not unique in context of a code assistant. + + + + CollationsEditor + + + Filter collations + Filter collations + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Implementation code: + Implementation code: + + + + Collation name: + Collation name: + + + + Implementation language: + Implementation language: + + + + Collations editor + Collations editor + + + + Commit all collation changes + Commit all collation changes + + + + Rollback all collation changes + Rollback all collation changes + + + + Create new collation + Create new collation + + + + Delete selected collation + Delete selected collation + + + + Editing collations manual + Editing collations manual + + + + Enter a non-empty, unique name of the collation. + Enter a non-empty, unique name of the collation. + + + + Pick the implementation language. + Pick the implementation language. + + + + Enter a non-empty implementation code. + Enter a non-empty implementation code. + + + + Collations editor window has uncommitted modifications. + Collations editor window has uncommitted modifications. + + + + ColorButton + + + Pick a color + Pick a color + + + + ColumnCollatePanel + + + Collation name: + Collation name: + + + + Named constraint: + Named constraint: + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + Enter a collation name. + Enter a collation name. + + + + ColumnDefaultPanel + + + Default value: + Default value: + + + + Named constraint: + Named constraint: + + + + Enter a default value expression. + Enter a default value expression. + + + + Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. + Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. + + + + Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. + Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ColumnDialog + + + Column + Column + + + + Name and type + Name and type + + + + Scale + Scale + + + + Precision + Precision + + + + Data type: + Data type: + + + + Column name: + Column name: + + + + Size: + Size: + + + + Constraints + Constraints + + + + Generated value + Generated value + + + + Unique + Unique + + + + + + + + + + + Configure + Configure + + + + Foreign Key + Foreign Key + + + + Collate + Collate + + + + Not NULL + Not NULL + + + + Check condition + Check condition + + + + Primary Key + Primary Key + + + + Default + Default + + + + Advanced mode + Advanced mode + + + + Add constraint + column dialog + Add constraint + + + + Edit constraint + column dialog + Edit constraint + + + + + Delete constraint + column dialog + Delete constraint + + + + Move constraint up + column dialog + Move constraint up + + + + Move constraint down + column dialog + Move constraint down + + + + Add a primary key + column dialog + Add a primary key + + + + Add a foreign key + column dialog + Add a foreign key + + + + Add an unique constraint + column dialog + Add an unique constraint + + + + Add a check constraint + column dialog + Add a check constraint + + + + Add a not null constraint + column dialog + Add a not null constraint + + + + Add a collate constraint + column dialog + Add a collate constraint + + + + Add a generated value constraint + column dialog + Add a generated value constraint + + + + Add a default constraint + column dialog + Add a default constraint + + + + Are you sure you want to delete constraint '%1'? + column dialog + Are you sure you want to delete constraint '%1'? + + + + Correct the constraint's configuration. + Correct the constraint's configuration. + + + + Scale is not allowed for INTEGER PRIMARY KEY columns. + Scale is not allowed for INTEGER PRIMARY KEY columns. + + + + Precision cannot be defined without the scale. + Precision cannot be defined without the scale. + + + + Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. + Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. + + + + INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. + INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. + + + + Precision is not allowed for INTEGER PRIMARY KEY columns. + Precision is not allowed for INTEGER PRIMARY KEY columns. + + + + Could not match valid STRICT table datatype from declared type: %1. + Could not match valid STRICT table datatype from declared type: %1. + + + + ColumnDialogConstraintsModel + + + Type + column dialog constraints + Type + + + + Name + column dialog constraints + Name + + + + Details + column dialog constraints + Details + + + + ColumnForeignKeyPanel + + + Foreign table: + Foreign table: + + + + Foreign column: + Foreign column: + + + + Reactions + Reactions + + + + Deferred foreign key + Deferred foreign key + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + Pick the foreign table. + Pick the foreign table. + + + + Pick the foreign column. + Pick the foreign column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ColumnGeneratedPanel + + + Generating code: + Generating code: + + + + Explicit type: + Explicit type: + + + + Use "GENERATED ALWAYS" keywords + Use "GENERATED ALWAYS" keywords + + + + Named constraint: + Named constraint: + + + + Enter the column value generating expression. + Enter the column value generating expression. + + + + Invalid value generating expression: %1. + Invalid value generating expression: %1. + + + + Invalid value generating expression. + Invalid value generating expression. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ColumnPrimaryKeyPanel + + + Autoincrement + Autoincrement + + + + Sort order: + Sort order: + + + + Named constraint: + Named constraint: + + + + On conflict: + On conflict: + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + Descending order is not allowed with AUTOINCREMENT. + Descending order is not allowed with AUTOINCREMENT. + + + + ColumnUniqueAndNotNullPanel + + + Named constraint: + Named constraint: + + + + On conflict: + On conflict: + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + CompleterWindow + + + Column: %1 + completer statusbar + Column: %1 + + + + Table: %1 + completer statusbar + Table: %1 + + + + Index: %1 + completer statusbar + Index: %1 + + + + Trigger: %1 + completer statusbar + Trigger: %1 + + + + View: %1 + completer statusbar + View: %1 + + + + Database: %1 + completer statusbar + Database: %1 + + + + Keyword: %1 + completer statusbar + Keyword: %1 + + + + Function: %1 + completer statusbar + Function: %1 + + + + Operator: %1 + completer statusbar + Operator: %1 + + + + String + completer statusbar + String + + + + Number + completer statusbar + Number + + + + Binary data + completer statusbar + Binary data + + + + Collation: %1 + completer statusbar + Collation: %1 + + + + Pragma function: %1 + completer statusbar + Pragma function: %1 + + + + Insert a code snippet + Insert a code snippet + + + + ConfigDialog + + + + Configuration + Configuration + + + + Search + Search + + + + General + General + + + + Keyboard shortcuts + Keyboard shortcuts + + + + Look & feel + Look & feel + + + + Style + Style + + + + Fonts + Fonts + + + + Code colors + Code colors + + + + + Database list + Database list + + + + Code assistant + Code assistant + + + + Data browsing + Data browsing + + + + Data editors + Data editors + + + + Plugins + Plugins + + + + Code formatters + Code formatters + + + + If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. + If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. + + + + Sort table columns alphabetically + Sort table columns alphabetically + + + + Expand tables node when connected to a database + Expand tables node when connected to a database + + + + <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> + <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> + + + + Display additional labels on the list + Display additional labels on the list + + + + For regular tables labels will show number of columns, indexes and triggers for each of tables. + For regular tables labels will show number of columns, indexes and triggers for each of tables. + + + + Display labels for regular tables + Display labels for regular tables + + + + Virtual tables will be marked with a 'virtual' label. + Virtual tables will be marked with a 'virtual' label. + + + + Display labels for virtual tables + Display labels for virtual tables + + + + Expand views node when connected to a database + Expand views node when connected to a database + + + + If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) + If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) + + + + Sort objects (tables, indexes, triggers and views) alphabetically + Sort objects (tables, indexes, triggers and views) alphabetically + + + + Display system tables and indexes on the list + Display system tables and indexes on the list + + + + Database dialog window + Database dialog window + + + + <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> + <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> + + + + Do not mark database to be "permanent" by default + Do not mark database to be "permanent" by default + + + + <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> + <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> + + + + Try to bypass dialog completly when dropping database file onto the list + Try to bypass dialog completly when dropping database file onto the list + + + + Data browsing and editing + Data browsing and editing + + + + + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + + + + Number of memorized table populating configurations + Number of memorized table populating configurations + + + + Data column width + Data column width + + + + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + + + + Enlarge column when entering value longer than current width + Enlarge column when entering value longer than current width + + + + <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> + <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> + + + + Number of data rows per page: + Number of data rows per page: + + + + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> + + + + Show column and row details tooltip in data view + Show column and row details tooltip in data view + + + + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + + + + Keep NULL value when entering empty value + Keep NULL value when entering empty value + + + + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> + + + + Use DEFAULT value (if defined), when committing NULL value + Use DEFAULT value (if defined), when committing NULL value + + + + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + + + + Limit number of rows for in case of dozens of columns + Limit number of rows for in case of dozens of columns + + + + Inserting new row in data grid + Inserting new row in data grid + + + + Before currently selected row + Before currently selected row + + + + After currently selected row + After currently selected row + + + + At the end of data view + At the end of data view + + + + Table windows + Table windows + + + + <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> + <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> + + + + Open Table Windows with the data tab for start + Open Table Windows with the data tab for start + + + + <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> + <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> + + + + Place data tab as first tab in a Table Window + Place data tab as first tab in a Table Window + + + + View windows + View windows + + + + <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> + <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> + + + + Open View Windows with the data tab for start + Open View Windows with the data tab for start + + + + <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> + <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> + + + + Place data tab as first tab in a View Window + Place data tab as first tab in a View Window + + + + Data types + Data types + + + + Available editors: + Available editors: + + + + Editors selected for this data type: + Editors selected for this data type: + + + + Schema editing + Schema editing + + + + Number of DDL changes kept in history. + Number of DDL changes kept in history. + + + + DDL history size: + DDL history size: + + + + Don't show DDL preview dialog when committing schema changes + Don't show DDL preview dialog when committing schema changes + + + + SQL queries + SQL queries + + + + + Number of queries kept in the history. + Number of queries kept in the history. + + + + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> + + + + History size: + History size: + + + + + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> + + + + Execute only the query under the cursor + Execute only the query under the cursor + + + + Number of memorized query parameters + Number of memorized query parameters + + + + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + + + + Use scientific notation for real numbers in the grid view + Use scientific notation for real numbers in the grid view + + + + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + + + + Limit automatic data column width to (in pixels): + Limit automatic data column width to (in pixels): + + + + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + + + + Keep at least the width to show complete column name + Keep at least the width to show complete column name + + + + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + + + + Wrap lines in SQL editor + Wrap lines in SQL editor + + + + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + + + + Highlight current query + Highlight current query + + + + Updates + Updates + + + + Automatically check for updates at startup + Automatically check for updates at startup + + + + Session + Session + + + + Restore last session (active MDI windows) after startup + Restore last session (active MDI windows) after startup + + + + Allow multiple instances of the application at the same time + Allow multiple instances of the application at the same time + + + + Status Field + Status Field + + + + <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> + <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> + + + + Always open Status panel when new message is printed + Always open Status panel when new message is printed + + + + Code syntax colors + Code syntax colors + + + + Keyword foreground + Keyword foreground + + + + Regular foreground + Regular foreground + + + + String foreground + String foreground + + + + Comment foreground + Comment foreground + + + + Valid objects foreground + Valid objects foreground + + + + Current query background + Current query background + + + + Bind parameter foreground + Bind parameter foreground + + + + Current line background + Current line background + + + + Matched parenthesis background + Matched parenthesis background + + + + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + + + + Number foreground + Number foreground + + + + BLOB value foreground + BLOB value foreground + + + + Matched parenthesis foreground + Matched parenthesis foreground + + + + Reset to defaults + Reset to defaults + + + + Filter shortcuts by name or key combination + Filter shortcuts by name or key combination + + + + Action + Action + + + + Key combination + Key combination + + + + + Language + Language + + + + Changing language requires application restart to take effect. + Changing language requires application restart to take effect. + + + + Compact layout + Compact layout + + + + <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> + <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> + + + + Use compact layout + Use compact layout + + + + Main window dock areas + Main window dock areas + + + + Left and right areas occupy corners + Left and right areas occupy corners + + + + Top and bottom areas occupy corners + Top and bottom areas occupy corners + + + + Hide built-in plugins + Hide built-in plugins + + + + Current style: + Current style: + + + + Preview + Preview + + + + Enabled + Enabled + + + + Disabled + Disabled + + + + Active formatter plugin + Active formatter plugin + + + + SQL editor font + SQL editor font + + + + Database list font + Database list font + + + + Database list additional label font + Database list additional label font + + + + Data view font + Data view font + + + + Status field font + Status field font + + + + Code assistant settings + Code assistant settings + + + + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + + + + Automatically trigger the assistant after a dot is typed after an object name + Automatically trigger the assistant after a dot is typed after an object name + + + + Description: + plugin details + Description: + + + + Category: + plugin details + Category: + + + + Version: + plugin details + Version: + + + + Author: + plugin details + Author: + + + + Internal name: + plugin details + Internal name: + + + + Dependencies: + plugin details + Dependencies: + + + + Conflicts: + plugin details + Conflicts: + + + + Plugin details + Plugin details + + + + Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. + Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. + + + + %1 (built-in) + plugins manager in configuration dialog + %1 (built-in) + + + + Details + Details + + + + No plugins in this category. + No plugins in this category. + + + + Add new data type + Add new data type + + + + Rename selected data type + Rename selected data type + + + + Delete selected data type + Delete selected data type + + + + Help for configuring data type editors + Help for configuring data type editors + + + + Clear hotkey for this action + Clear hotkey for this action + + + + Restore original hotkey for this action + Restore original hotkey for this action + + + + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + + + + ConstraintCheckPanel + + + The condition + The condition + + + + Named constraint: + Named constraint: + + + + On conflict + On conflict + + + + Enter a valid condition. + Enter a valid condition. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ConstraintDialog + + + New constraint + constraint dialog + New constraint + + + + Create + constraint dialog + Create + + + + Edit constraint + dialog window + Edit constraint + + + + Apply + constraint dialog + Apply + + + + Primary key + table constraints + Primary key + + + + Foreign key + table constraints + Foreign key + + + + Unique + table constraints + Unique + + + + Not NULL + table constraints + Not NULL + + + + Check + table constraints + Check + + + + Generated + table constraints + Generated + + + + Collate + table constraints + Collate + + + + Default + table constraints + Default + + + + ConstraintTabModel + + + Table + table constraints + Table + + + + Column (%1) + table constraints + Column (%1) + + + + Scope + table constraints + Scope + + + + Type + table constraints + Type + + + + Details + table constraints + Details + + + + Name + table constraints + Name + + + + CssDebugDialog + + + SQLiteStudio CSS console + SQLiteStudio CSS console + + + + DataView + + + Filter data + data view + Filter data + + + + Grid view + Grid view + + + + Form view + Form view + + + + Refresh table data + data view + Refresh table data + + + + First page + data view + First page + + + + Previous page + data view + Previous page + + + + Next page + data view + Next page + + + + Last page + data view + Last page + + + + Commit changes for selected cells + data view + Commit changes for selected cells + + + + Rollback changes for selected cells + data view + Rollback changes for selected cells + + + + Show grid view of results + data view + Show grid view of results + + + + Show form view of results + data view + Show form view of results + + + + Filter by text (if contains) + data view + Filter by text (if contains) + + + + Filter strictly by text (if equals) + data view + Filter strictly by text (if equals) + + + + Tabs on top + data view + Tabs on top + + + + Tabs at bottom + data view + Tabs at bottom + + + + Place new rows above selected row + data view + Place new rows above selected row + + + + Place new rows below selected row + data view + Place new rows below selected row + + + + Place new rows at the end of the data view + data view + Place new rows at the end of the data view + + + + Total number of rows is being counted. +Browsing other pages will be possible after the row counting is done. + Total number of rows is being counted. +Browsing other pages will be possible after the row counting is done. + + + + Row: %1 + Row: %1 + + + + Filter + Filter + + + + Hit Enter key or press "Apply filter" button on toolbar to apply new value. + Hit Enter key or press "Apply filter" button on toolbar to apply new value. + + + + Filter by the Regular Expression + data view + Filter by the Regular Expression + + + + Filter by SQL expression + data view + Filter by SQL expression + + + + Show filter inputs per column + data view + Show filter inputs per column + + + + Apply filter + data view + Apply filter + + + + DbDialog + + + Database + Database + + + + Database type + Database type + + + + Database driver + Database driver + + + + + File + File + + + + Name (on the list) + Name (on the list) + + + + Options + Options + + + + <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> + aasfd + <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> + + + + Permanent (keep it in configuration) + Permanent (keep it in configuration) + + + + Test connection + Test connection + + + + Select new or existing file on local computer + Select new or existing file on local computer + + + + Browse + Browse + + + + Database type not selected. + Database type not selected. + + + + Database path not specified. + Database path not specified. + + + + Enter an unique database name. + Enter an unique database name. + + + + This name is already in use. Please enter unique name. + This name is already in use. Please enter unique name. + + + + <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> + <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> + + + + Enter a database file path. + Enter a database file path. + + + + This database is already on the list under name: %1 + This database is already on the list under name: %1 + + + + Select a database type. + Select a database type. + + + + DbObjectDialogs + + + Delete table + Delete table + + + + Are you sure you want to delete table %1? + Are you sure you want to delete table %1? + + + + Delete index + Delete index + + + + Are you sure you want to delete index %1? + Are you sure you want to delete index %1? + + + + Delete trigger + Delete trigger + + + + Are you sure you want to delete trigger %1? + Are you sure you want to delete trigger %1? + + + + Delete view + Delete view + + + + Are you sure you want to delete view %1? + Are you sure you want to delete view %1? + + + + + Error while dropping %1: %2 + Error while dropping %1: %2 + + + + Delete objects + Delete objects + + + + Are you sure you want to delete following objects: +%1 + Are you sure you want to delete following objects: +%1 + + + + Cannot start transaction. Details: %1 + Cannot start transaction. Details: %1 + + + + Cannot commit transaction. Details: %1 + Cannot commit transaction. Details: %1 + + + + DbTree + + + Databases + Databases + + + + Filter by name + Filter by name + + + + Copy + Copy + + + + Paste + Paste + + + + Select all + Select all + + + + Create a group + Create a group + + + + Delete the group + Delete the group + + + + Rename the group + Rename the group + + + + &Add a database + &Add a database + + + + &Edit the database + &Edit the database + + + + &Remove the database + &Remove the database + + + + &Connect to the database + &Connect to the database + + + + &Disconnect from the database + &Disconnect from the database + + + + Import + Import + + + + &Export the database + &Export the database + + + + Vac&uum + Vac&uum + + + + &Integrity check + &Integrity check + + + + Create a &table + Create a &table + + + + Edit the t&able + Edit the t&able + + + + Delete the ta&ble + Delete the ta&ble + + + + Export the table + Export the table + + + + Import into the table + Import into the table + + + + Populate table + Populate table + + + + Create similar table + Create similar table + + + + Reset autoincrement sequence + Reset autoincrement sequence + + + + Create an &index + Create an &index + + + + Edit the i&ndex + Edit the i&ndex + + + + Delete the in&dex + Delete the in&dex + + + + Create a trig&ger + Create a trig&ger + + + + Edit the trigg&er + Edit the trigg&er + + + + Delete the trigge&r + Delete the trigge&r + + + + Create a &view + Create a &view + + + + Edit the v&iew + Edit the v&iew + + + + Delete the vi&ew + Delete the vi&ew + + + + Add a column + Add a column + + + + Edit the column + Edit the column + + + + Delete the column + Delete the column + + + + Delete selected items + Delete selected items + + + + Clear filter + Clear filter + + + + &Refresh all database schemas + &Refresh all database schemas + + + + Re&fresh selected database schema + Re&fresh selected database schema + + + + + Erase table data + Erase table data + + + + Open file's directory + Open file's directory + + + + Execute SQL from file + Execute SQL from file + + + + Increase font size + database list + Increase font size + + + + Decrease font size + database list + Decrease font size + + + + + Database + Database + + + + Grouping + Grouping + + + + Generate query for table + Generate query for table + + + + + Create group + Create group + + + + Group name + Group name + + + + Entry with name %1 already exists in group %2. + Entry with name %1 already exists in group %2. + + + + Delete group + Delete group + + + + Are you sure you want to delete group %1? +All objects from this group will be moved to parent group. + Are you sure you want to delete group %1? +All objects from this group will be moved to parent group. + + + + Are you sure you want to remove database '%1' from the list? + Are you sure you want to remove database '%1' from the list? + + + + Are you sure you want to remove following databases from the list: +%1 + Are you sure you want to remove following databases from the list: +%1 + + + + Remove database + Remove database + + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Vacuum (%1) + Vacuum (%1) + + + + Integrity check (%1) + Integrity check (%1) + + + + Reset autoincrement + Reset autoincrement + + + + Are you sure you want to reset autoincrement value for table '%1'? + Are you sure you want to reset autoincrement value for table '%1'? + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + An error occurred while trying to reset autoincrement value for table '%1': %2 + + + + Autoincrement value for table '%1' has been reset successfully. + Autoincrement value for table '%1' has been reset successfully. + + + + Are you sure you want to delete all data from table(s): %1? + Are you sure you want to delete all data from table(s): %1? + + + + An error occurred while trying to delete data from table '%1': %2 + An error occurred while trying to delete data from table '%1': %2 + + + + All data has been deleted for table '%1'. + All data has been deleted for table '%1'. + + + + Following objects will be deleted: %1. + Following objects will be deleted: %1. + + + + Following databases will be removed from list: %1. + Following databases will be removed from list: %1. + + + + Remainig objects from deleted group will be moved in place where the group used to be. + Remainig objects from deleted group will be moved in place where the group used to be. + + + + %1<br><br>Are you sure you want to continue? + %1<br><br>Are you sure you want to continue? + + + + Delete objects + Delete objects + + + + DbTreeItemDelegate + + + error + dbtree labels + error + + + + (system table) + database tree label + (system table) + + + + (virtual) + virtual table label + (virtual) + + + + (system index) + database tree label + (system index) + + + + DbTreeModel + + + Database: %1 + dbtree tooltip + Database: %1 + + + + URI: + dbtree tooltip + URI: + + + + Version: + dbtree tooltip + Version: + + + + File size: + dbtree tooltip + File size: + + + + Encoding: + dbtree tooltip + Encoding: + + + + Error: + dbtree tooltip + Error: + + + + Table : %1 + dbtree tooltip + Table : %1 + + + + Columns (%1): + dbtree tooltip + Columns (%1): + + + + Indexes (%1): + dbtree tooltip + Indexes (%1): + + + + Triggers (%1): + dbtree tooltip + Triggers (%1): + + + + Copy + Copy + + + + Move + Move + + + + Include data + Include data + + + + Include indexes + Include indexes + + + + Include triggers + Include triggers + + + + Abort + Abort + + + + Could not add dropped database file '%1' automatically. Manual setup is necessary. + Could not add dropped database file '%1' automatically. Manual setup is necessary. + + + + Referenced tables + Referenced tables + + + + Do you want to include following referenced tables as well: +%1 + Do you want to include following referenced tables as well: +%1 + + + + Name conflict + Name conflict + + + + Following object already exists in the target database. +Please enter new, unique name, or press '%1' to abort the operation: + Following object already exists in the target database. +Please enter new, unique name, or press '%1' to abort the operation: + + + + SQL statements conversion + SQL statements conversion + + + + Following error occurred while converting SQL statements to the target SQLite version: + Following error occurred while converting SQL statements to the target SQLite version: + + + + Would you like to ignore those errors and proceed? + Would you like to ignore those errors and proceed? + + + + DdlHistoryWindow + + + Filter by database: + Filter by database: + + + + Clear entire history + Clear entire history + + + + -- Queries executed on database %1 (%2) +-- Date and time of execution: %3 +%4 + -- Queries executed on database %1 (%2) +-- Date and time of execution: %3 +%4 + + + + Clear history + Clear history + + + + Are you sure you want to erase entire DDL history? + Are you sure you want to erase entire DDL history? + + + + DDL history + DDL history + + + + DdlPreviewDialog + + + Queries to be executed + Queries to be executed + + + + Don't show again + Don't show again + + + + DebugConsole + + + SQLiteStudio Debug Console + SQLiteStudio Debug Console + + + + EditorWindow + + + SQL editor + SQL editor + + + + Query + Query + + + + History + History + + + + Results in the separate tab + Results in the separate tab + + + + Results below the query + Results below the query + + + + + SQL editor %1 + SQL editor %1 + + + + + Results + Results + + + + Execute query + Execute query + + + + Explain query + Explain query + + + + Clear execution history + sql editor + Clear execution history + + + + Export results + sql editor + Export results + + + + Create view from query + sql editor + Create view from query + + + + Previous database + Previous database + + + + Next database + Next database + + + + Show next tab + sql editor + Show next tab + + + + Show previous tab + sql editor + Show previous tab + + + + Focus results below + sql editor + Focus results below + + + + Focus SQL editor above + sql editor + Focus SQL editor above + + + + Delete selected SQL history entries + sql editor + Delete selected SQL history entries + + + + Execute single query under cursor + Execute single query under cursor + + + + Execute all queries in editor + Execute all queries in editor + + + + Active database (%1/%2) + Active database (%1/%2) + + + + Query finished in %1 second(s). Rows affected: %2 + Query finished in %1 second(s). Rows affected: %2 + + + + Query finished in %1 second(s). + Query finished in %1 second(s). + + + + Clear execution history + Clear execution history + + + + Are you sure you want to erase the entire SQL execution history? This cannot be undone. + Are you sure you want to erase the entire SQL execution history? This cannot be undone. + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + No database selected in the SQL editor. Cannot create a view for unknown database. + No database selected in the SQL editor. Cannot create a view for unknown database. + + + + Editor window "%1" has uncommitted data. + Editor window "%1" has uncommitted data. + + + + ErrorsConfirmDialog + + + Errors + Errors + + + + Following errors occured: + Following errors occured: + + + + Would you like to proceed? + Would you like to proceed? + + + + ExecFromFileDialog + + + Execute SQL from file + Execute SQL from file + + + + Input file + Input file + + + + Path to file + Path to file + + + + Browse for file + Browse for file + + + + Options + Options + + + + File encoding + File encoding + + + + Skip failing SQL statements + Skip failing SQL statements + + + + SQL scripts (*.sql);;All files (*) + SQL scripts (*.sql);;All files (*) + + + + Execute SQL file + Execute SQL file + + + + Please provide file to be executed. + Please provide file to be executed. + + + + Provided file does not exist or cannot be read. + Provided file does not exist or cannot be read. + + + + ExportDialog + + + Export + Export + + + + What do you want to export? + What do you want to export? + + + + A database + A database + + + + A single table + A single table + + + + Query results + Query results + + + + Table to export + Table to export + + + + Database + Database + + + + Table + Table + + + + Options + Options + + + + When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. + When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. + + + + Export table data + Export table data + + + + Export table indexes + Export table indexes + + + + Export table triggers + Export table triggers + + + + Note, that exporting table indexes and triggers may be unsupported by some output formats. + Note, that exporting table indexes and triggers may be unsupported by some output formats. + + + + Select database objects to export + Select database objects to export + + + + Export data from tables + Export data from tables + + + + Select all + Select all + + + + Deselect all + Deselect all + + + + + Database: + Database: + + + + Query to export results for + Query to export results for + + + + Query to be executed for results: + Query to be executed for results: + + + + Export format and options + Export format and options + + + + Export format + Export format + + + + Output + Output + + + + Exported file path + Exported file path + + + + Clipboard + Clipboard + + + + File + File + + + + Exported text encoding: + Exported text encoding: + + + + Export format options + Export format options + + + + Cancel + Cancel + + + + + + Select database to export. + Select database to export. + + + + Select table to export. + Select table to export. + + + + Enter valid query to export. + Enter valid query to export. + + + + Select at least one object to export. + Select at least one object to export. + + + + You must provide a file name to export to. + You must provide a file name to export to. + + + + Path you provided is an existing directory. You cannot overwrite it. + Path you provided is an existing directory. You cannot overwrite it. + + + + The directory '%1' does not exist. + The directory '%1' does not exist. + + + + The file '%1' exists and will be overwritten. + The file '%1' exists and will be overwritten. + + + + All files (*) + All files (*) + + + + Pick file to export to + Pick file to export to + + + + Internal error during export. This is a bug. Please report it. + Internal error during export. This is a bug. Please report it. + + + + FileExecErrorsDialog + + + Execution errors + Execution errors + + + + Following errors were encountered during execution of SQL statements from the file: + Following errors were encountered during execution of SQL statements from the file: + + + + SQL + SQL + + + + Error + Error + + + + Statements that were executed successfully were commited. + Statements that were executed successfully were commited. + + + + Statements that were executed successfully were rolled back. + Statements that were executed successfully were rolled back. + + + + FkComboBox + + + Cannot edit this cell. Details: %1 + Cannot edit this cell. Details: %1 + + + + FontEdit + + + Choose font + font configuration + Choose font + + + + Form + + + Active SQL formatter plugin + Active SQL formatter plugin + + + + FormView + + + Commit row + form view + Commit row + + + + Rollback row + form view + Rollback row + + + + First row + form view + First row + + + + Previous row + form view + Previous row + + + + Next row + form view + Next row + + + + Last row + form view + Last row + + + + Insert new row + form view + Insert new row + + + + Delete current row + form view + Delete current row + + + + FunctionsEditor + + + Filter functions + Filter functions + + + + Input arguments + Input arguments + + + + Undefined + Undefined + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Type: + Type: + + + + Function name: + Function name: + + + + Implementation language: + Implementation language: + + + + Deterministic + Deterministic + + + + Initialization code: + Initialization code: + + + + + Function implementation code: + Function implementation code: + + + + Final step implementation code: + Final step implementation code: + + + + SQL functions editor + SQL functions editor + + + + Commit all function changes + Commit all function changes + + + + Rollback all function changes + Rollback all function changes + + + + Create new function + Create new function + + + + Delete selected function + Delete selected function + + + + Custom SQL functions manual + Custom SQL functions manual + + + + Add function argument + Add function argument + + + + Rename function argument + Rename function argument + + + + Delete function argument + Delete function argument + + + + Move function argument up + Move function argument up + + + + Move function argument down + Move function argument down + + + + Scalar + Scalar + + + + Aggregate + Aggregate + + + + Enter a non-empty, unique name of the function. + Enter a non-empty, unique name of the function. + + + + Pick the implementation language. + Pick the implementation language. + + + + Per step code: + Per step code: + + + + Enter a non-empty implementation code. + Enter a non-empty implementation code. + + + + argument + new function argument name in function editor window + argument + + + + Functions editor window has uncommitted modifications. + Functions editor window has uncommitted modifications. + + + + ImportDialog + + + Import data + Import data + + + + Table to import to + Table to import to + + + + Table + Table + + + + Database + Database + + + + Data source to import from + Data source to import from + + + + Data source type + Data source type + + + + Options + Options + + + + Text encoding: + Text encoding: + + + + Input file: + Input file: + + + + <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> + <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> + + + + Ignore errors + Ignore errors + + + + Data source options + Data source options + + + + Cancel + Cancel + + + + If you type table name that doesn't exist, it will be created. + If you type table name that doesn't exist, it will be created. + + + + Enter the table name + Enter the table name + + + + Select import plugin. + Select import plugin. + + + + You must provide a file to import from. + You must provide a file to import from. + + + + The file '%1' does not exist. + The file '%1' does not exist. + + + + Path you provided is a directory. A regular file is required. + Path you provided is a directory. A regular file is required. + + + + Pick file to import from + Pick file to import from + + + + IndexDialog + + + + Index + Index + + + + Column + Column + + + + Sort + Sort + + + + Collation + Collation + + + + On table: + On table: + + + + Delete selected indexed expression + Delete selected indexed expression + + + + Moves selected index column up in the order, making it more significant in the index. + Moves selected index column up in the order, making it more significant in the index. + + + + Moves selected index column down in the order, making it less significant in the index. + Moves selected index column down in the order, making it less significant in the index. + + + + Partial index condition + Partial index condition + + + + Unique index + Unique index + + + + Index name: + Index name: + + + + Edit selected indexed expression + Edit selected indexed expression + + + + Add indexed expression + Add indexed expression + + + + DDL + DDL + + + + Tried to open index dialog for closed or inexisting database. + Tried to open index dialog for closed or inexisting database. + + + + Could not process index %1 correctly. Unable to open an index dialog. + Could not process index %1 correctly. Unable to open an index dialog. + + + + Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. + Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. + + + + Pick the table for the index. + Pick the table for the index. + + + + Select at least one column. + Select at least one column. + + + + Enter a valid condition. + Enter a valid condition. + + + + default + index dialog + default + + + + Sort order + table constraints + Sort order + + + + + Error + index dialog + Error + + + + Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? + Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? + + + + An error occurred while executing SQL statements: +%1 + An error occurred while executing SQL statements: +%1 + + + + IndexExprColumnDialog + + + Indexed expression + Indexed expression + + + + Expression to index + Expression to index + + + + This expression is already indexed by the index. + This expression is already indexed by the index. + + + + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. + + + + Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. + Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. + + + + It's forbidden to use 'SELECT' statements in indexed expressions. + It's forbidden to use 'SELECT' statements in indexed expressions. + + + + Enter an indexed expression. + Enter an indexed expression. + + + + Invalid expression. + Invalid expression. + + + + LanguageDialog + + + Language + Language + + + + Please choose language: + Please choose language: + + + + MainWindow + + + Database toolbar + Database toolbar + + + + Structure toolbar + Structure toolbar + + + + Tools + Tools + + + + Window list + Window list + + + + View toolbar + View toolbar + + + + Configuration widgets + Configuration widgets + + + + Syntax highlighting engines + Syntax highlighting engines + + + + Data editors + Data editors + + + + Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. + Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. + + + + Running in debug mode. Debug messages are printed to the standard output. + Running in debug mode. Debug messages are printed to the standard output. + + + + You need to restart application to make the language change take effect. + You need to restart application to make the language change take effect. + + + + Open SQL &editor + Open SQL &editor + + + + Open DDL &history + Open DDL &history + + + + Open SQL &functions editor + Open SQL &functions editor + + + + Open code &snippets editor + Open code &snippets editor + + + + Open &collations editor + Open &collations editor + + + + Open ex&tension manager + Open ex&tension manager + + + + &Import + &Import + + + + E&xport + E&xport + + + + Open confi&guration dialog + Open confi&guration dialog + + + + &Tile windows + &Tile windows + + + + Tile windows &horizontally + Tile windows &horizontally + + + + Tile windows &vertically + Tile windows &vertically + + + + &Cascade windows + &Cascade windows + + + + Next window + Next window + + + + Previous window + Previous window + + + + Hide status field + Hide status field + + + + Close &all windows + Close &all windows + + + + Re&store recently closed window + Re&store recently closed window + + + + Close current &window + Close current &window + + + + Close &other windows + Close &other windows + + + + Close windows on the &left + Close windows on the &left + + + + Close windows on the &right + Close windows on the &right + + + + Re&name selected window + Re&name selected window + + + + Open Debug Console + Open Debug Console + + + + Open CSS Console + Open CSS Console + + + + Report a &bug + Report a &bug + + + + D&onate + D&onate + + + + Propose a new &feature + Propose a new &feature + + + + &About + &About + + + + &Licenses + &Licenses + + + + Open home &page + Open home &page + + + + User &Manual + User &Manual + + + + SQLite &documentation + SQLite &documentation + + + + Bugs and feature &requests + Bugs and feature &requests + + + + Quit + Quit + + + + Check for &updates + Check for &updates + + + + &Database + menubar + &Database + + + + &Structure + menubar + &Structure + + + + &View + menubar + &View + + + + Window list + menubar view menu + Window list + + + + &Tools + menubar + &Tools + + + + &Help + &Help + + + + Could not set style: %1 + main window + Could not set style: %1 + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + Rename window + Rename window + + + + Enter new name for the window: + Enter new name for the window: + + + + New updates are available. <a href="%1">Click here for details</a>. + New updates are available. <a href="%1">Click here for details</a>. + + + + You're running the most recent version. No updates are available. + You're running the most recent version. No updates are available. + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + Database passed in command line parameters (%1) was already on the list under name: %2 + + + + Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 + Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + MdiWindow + + + Uncommitted changes + Uncommitted changes + + + + Close anyway + Close anyway + + + + Don't close + Don't close + + + + MultiEditor + + + Null value + multieditor + Null value + + + + Configure editors for this data type + Configure editors for this data type + + + + Open another tab + Open another tab + + + + Foreign Key + Foreign Key + + + + Data editor plugin '%1' not loaded, while it is defined for editing '%2' data type. + Data editor plugin '%1' not loaded, while it is defined for editing '%1' data type. {1'?} {2'?} {1' or 2'?} + + + + Deleted + multieditor + Deleted + + + + Read only + multieditor + Read only + + + + MultiEditorBoolPlugin + + + Boolean + Boolean + + + + MultiEditorDatePlugin + + + Date + Date + + + + MultiEditorDateTimePlugin + + + Date & time + Date & time + + + + MultiEditorHexPlugin + + + Hex + Hex + + + + MultiEditorNumericPlugin + + + Number + numeric multi editor tab name + Number + + + + MultiEditorText + + + Tab changes focus + Tab changes focus + + + + Cut + Cut + + + + Copy + Copy + + + + Paste + Paste + + + + Delete + Delete + + + + Undo + Undo + + + + Redo + Redo + + + + MultiEditorTextPlugin + + + Text + Text + + + + MultiEditorTimePlugin + + + Time + Time + + + + NewConstraintDialog + + + New constraint + New constraint + + + + + Primary Key + new constraint dialog + Primary Key + + + + + Foreign Key + new constraint dialog + Foreign Key + + + + + Unique + new constraint dialog + Unique + + + + + Check + new constraint dialog + Check + + + + Not NULL + new constraint dialog + Not NULL + + + + Collate + new constraint dialog + Collate + + + + Generated + new constraint dialog + Generated + + + + Default + new constraint dialog + Default + + + + NewVersionDialog + + + SQLiteStudio updates + SQLiteStudio updates + + + + New version is available! + New version is available! + + + + Download new version! + Download new version! + + + + New version package will be downloaded. It will be up to you to install it whenever you're ready. + New version package will be downloaded. It will be up to you to install it whenever you're ready. + + + + Open SQLiteStudio home page. + Open SQLiteStudio home page. + + + + Read release notes && download package yourself. + Read release notes && download package yourself. + + + + Just close this window. + Just close this window. + + + + Check for updates on startup + Check for updates on startup + + + + Not now. + Not now. + + + + PopulateConfigDialog + + + Populating configuration + Populating configuration + + + + Configuring <b>%1</b> for column <b>%2</b> + Configuring <b>%1</b> for column <b>%2</b> + + + + PopulateDialog + + + Populate table + Populate table + + + + Database + Database + + + + Table + Table + + + + Columns + Columns + + + + Number of rows to populate: + Number of rows to populate: + + + + Populate + populate dialog button + Populate + + + + Abort + Abort + + + + Configure + Configure + + + + Populating configuration for this column is invalid or incomplete. + Populating configuration for this column is invalid or incomplete. + + + + Select database with table to populate + Select database with table to populate + + + + Select table to populate + Select table to populate + + + + You have to select at least one column. + You have to select at least one column. + + + + QObject + + + Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). + Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). + + + + The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. + The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. + + + + Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. + Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. + + + + Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. + Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. + + + + Cannot edit results of query other than %1. + Cannot edit results of query other than %1. + + + + Cannot edit columns that are result of aggregated %1 statements. + Cannot edit columns that are result of aggregated %1 statements. + + + + Cannot edit columns that are result of %1 statement. + Cannot edit columns that are result of %1 statement. + + + + Cannot edit columns that are result of common table expression statement (%1). + Cannot edit columns that are result of common table expression statement (%1). + + + + Cannot edit table generated columns. + Cannot edit table generated columns. + + + + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). + + + + + + + on conflict: %1 + data view tooltip + on conflict: %1 + + + + references table %1, column %2 + data view tooltip + references table %1, column %2 + + + + condition: %1 + data view tooltip + condition: %1 + + + + collation name: %1 + data view tooltip + collation name: %1 + + + + Data grid view + Data grid view + + + + Edit current cell inline + Edit current cell inline + + + + Copy cell(s) contents to clipboard + Copy cell(s) contents to clipboard + + + + Copy cell(s) contents together with header to clipboard + Copy cell(s) contents together with header to clipboard + + + + Paste cell(s) contents from clipboard + Paste cell(s) contents from clipboard + + + + Set empty value to selected cell(s) + Set empty value to selected cell(s) + + + + Set NULL value to selected cell(s) + Set NULL value to selected cell(s) + + + + Commit changes to cell(s) contents + Commit changes to cell(s) contents + + + + Rollback changes to cell(s) contents + Rollback changes to cell(s) contents + + + + Delete selected data row + Delete selected data row + + + + Insert new data row + Insert new data row + + + + Open contents of selected cell in a separate editor + Open contents of selected cell in a separate editor + + + + Toggle the height adjustment of rows + Toggle the height adjustment of rows + + + + Increase font size + data view + Increase font size + + + + Decrease font size + data view + Decrease font size + + + + Total pages available: %1 + Total pages available: %1 + + + + Total rows loaded: %1 + Total rows loaded: %1 + + + + Data view (both grid and form) + Data view (both grid and form) + + + + Refresh data + Refresh data + + + + Switch to grid view of the data + Switch to grid view of the data + + + + Switch to form view of the data + Switch to form view of the data + + + + Database list + Database list + + + + Delete selected item + Delete selected item + + + + Clear filter contents + Clear filter contents + + + + Refresh schema + Refresh schema + + + + Refresh all schemas + Refresh all schemas + + + + Add database + Add database + + + + Select all items + Select all items + + + + Copy selected item(s) + Copy selected item(s) + + + + + + Paste from clipboard + Paste from clipboard + + + + Increase font size + database list + Increase font size + + + + Decrease font size + database list + Decrease font size + + + + Tables + Tables + + + + Indexes + Indexes + + + + Triggers + Triggers + + + + Views + Views + + + + Columns + Columns + + + + Data form view + Data form view + + + + Commit changes for current row + Commit changes for current row + + + + Rollback changes for current row + Rollback changes for current row + + + + Go to first row on current page + Go to first row on current page + + + + Go to next row + Go to next row + + + + Go to previous row + Go to previous row + + + + Go to last row on current page + Go to last row on current page + + + + Insert new row + Insert new row + + + + Delete current row + Delete current row + + + + Main window + Main window + + + + Open SQL editor + Open SQL editor + + + + Open DDL history window + Open DDL history window + + + + Open snippets editor window + Open snippets editor window + + + + Open function editor window + Open function editor window + + + + Open collation editor window + Open collation editor window + + + + Open extension manager window + Open extension manager window + + + + Previous window + Previous window + + + + Next window + Next window + + + + Hide status area + Hide status area + + + + Open user manual + Open user manual + + + + Open configuration dialog + Open configuration dialog + + + + Open Debug Console + Open Debug Console + + + + Open CSS Console + Open CSS Console + + + + Open the About dialog + Open the About dialog + + + + Quit the application + Quit the application + + + + Cell text value editor + Cell text value editor + + + + + Cut selected text + Cut selected text + + + + + Copy selected text + Copy selected text + + + + + Delete selected text + Delete selected text + + + + + Undo + Undo + + + + + Redo + Redo + + + + SQL editor input field + SQL editor input field + + + + Select whole editor contents + Select whole editor contents + + + + Save contents into a file + Save contents into a file + + + + Load contents from a file + Load contents from a file + + + + Find in text + Find in text + + + + Find next + Find next + + + + Find previous + Find previous + + + + Replace in text + Replace in text + + + + Delete current line + Delete current line + + + + Request code assistant + Request code assistant + + + + Format contents + Format contents + + + + Move selected block of text one line down + Move selected block of text one line down + + + + Move selected block of text one line up + Move selected block of text one line up + + + + Copy selected block of text and paste it a line below + Copy selected block of text and paste it a line below + + + + Copy selected block of text and paste it a line above + Copy selected block of text and paste it a line above + + + + Toggle comment + Toggle comment + + + + Increase font size + sql editor + Increase font size + + + + Decrease font size + sql editor + Decrease font size + + + + All SQLite databases + All SQLite databases + + + + All files + All files + + + + Select database file + Select database file + + + + Select + Select + + + + File type + File type + + + + SQL editor window + SQL editor window + + + + Execute query + Execute query + + + + Execute single query under cursor + Execute single query under cursor + + + + Execute all queries in editor + Execute all queries in editor + + + + Execute "%1" query + Execute "%1" query + + + + Switch current working database to previous on the list + Switch current working database to previous on the list + + + + Switch current working database to next on the list + Switch current working database to next on the list + + + + Go to next editor tab + Go to next editor tab + + + + Go to previous editor tab + Go to previous editor tab + + + + Move keyboard input focus to the results view below + Move keyboard input focus to the results view below + + + + Move keyboard input focus to the SQL editor above + Move keyboard input focus to the SQL editor above + + + + Delete selected SQL history entries + Delete selected SQL history entries + + + + Table window + Table window + + + + Commit the table structure + Commit the table structure + + + + Rollback pending changes in the table structure + Rollback pending changes in the table structure + + + + Refresh table structure + Refresh table structure + + + + Add new column + Add new column + + + + Edit selected column + Edit selected column + + + + Delete selected column + Delete selected column + + + + Export table data + Export table data + + + + Import data to the table + Import data to the table + + + + Add new table constraint + Add new table constraint + + + + Edit selected table constraint + Edit selected table constraint + + + + Delete selected table constraint + Delete selected table constraint + + + + Refresh table index list + Refresh table index list + + + + Add new index + Add new index + + + + Edit selected index + Edit selected index + + + + Delete selected index + Delete selected index + + + + Refresh table trigger list + Refresh table trigger list + + + + + Add new trigger + Add new trigger + + + + + Edit selected trigger + Edit selected trigger + + + + + Delete selected trigger + Delete selected trigger + + + + + Go to next tab + Go to next tab + + + + + Go to previous tab + Go to previous tab + + + + A view window + A view window + + + + Commit the view's query + Commit the view's query + + + + Rollback pending changes in the view's query + Rollback pending changes in the view's query + + + + Refresh view trigger list + Refresh view trigger list + + + + Execute the view's query + Execute the view's query + + + + A code snippets editor window + A code snippets editor window + + + + + + + Commit the pending changes + Commit the pending changes + + + + + + + Rollback the pending changes + Rollback the pending changes + + + + A collation editor window + A collation editor window + + + + A function editor window + A function editor window + + + + A SQLite extension editor window + A SQLite extension editor window + + + + QuitConfirmDialog + + + Uncommitted changes + Uncommitted changes + + + + Are you sure you want to quit the application? + +Following items are pending: + Are you sure you want to quit the application? + +Following items are pending: + + + + SearchTextDialog + + + Find or replace + Find or replace + + + + Find: + Find: + + + + Case sensitive + Case sensitive + + + + Search backwards + Search backwards + + + + Regular expression matching + Regular expression matching + + + + Replace && +find next + Replace && +find next + + + + Replace with: + Replace with: + + + + Replace all + Replace all + + + + Find + Find + + + + SortDialog + + + Sort by columns + Sort by columns + + + + + Column + Column + + + + + Order + Order + + + + Sort by: %1 + Sort by: %1 + + + + Move column up + Move column up + + + + Move column down + Move column down + + + + SqlEditor + + + Wrap words + sql editor + Wrap words + + + + Cut + sql editor + Cut + + + + Copy + sql editor + Copy + + + + Paste + sql editor + Paste + + + + Delete + sql editor + Delete + + + + Select all + sql editor + Select all + + + + Undo + sql editor + Undo + + + + Redo + sql editor + Redo + + + + Complete + sql editor + Complete + + + + Format SQL + sql editor + Format SQL + + + + Save SQL to file + sql editor + Save SQL to file + + + + Select file to save SQL + sql editor + Select file to save SQL + + + + Load SQL from file + sql editor + Load SQL from file + + + + Delete line + sql editor + Delete line + + + + Move block down + sql editor + Move block down + + + + Move block up + sql editor + Move block up + + + + Copy block down + sql editor + Copy block down + + + + Copy up down + sql editor + Copy up down + + + + Find + sql editor + Find + + + + Find next + sql editor + Find next + + + + Find previous + sql editor + Find previous + + + + Replace + sql editor + Replace + + + + Toggle comment + sql editor + Toggle comment + + + + Increase font size + sql editor + Increase font size + + + + Decrease font size + sql editor + Decrease font size + + + + Could not open file '%1' for writing: %2 + Could not open file '%1' for writing: %2 + + + + Saved SQL contents to file: %1 + Saved SQL contents to file: %1 + + + + Syntax completion can be used only when a valid database is set for the SQL editor. + Syntax completion can be used only when a valid database is set for the SQL editor. + + + + Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. + Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. + + + + Save to file + Save to file + + + + SQL scripts (*.sql);;All files (*) + SQL scripts (*.sql);;All files (*) + + + + Open file + Open file + + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Reached the end of document. Hit the find again to restart the search. + Reached the end of document. Hit the find again to restart the search. + + + + SqlQueryItem + + + Committing error: + data view tooltip + Committing error: + + + + Column: + data view tooltip + Column: + + + + Data type: + data view + Data type: + + + + Table: + data view tooltip + Table: + + + + Constraints: + data view tooltip + Constraints: + + + + SqlQueryItemDelegate + + + + + + Cannot edit this cell. Details: %1 + Cannot edit this cell. Details: %1 + + + + The row is marked for deletion. + The row is marked for deletion. + + + + + Structure of this table has changed since last data was loaded. Reload the data to proceed. + Structure of this table has changed since last data was loaded. Reload the data to proceed. + + + + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). + + + + Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. + Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. + + + + SqlQueryModel + + + + Only one query can be executed simultaneously. + Only one query can be executed simultaneously. + + + + Cannot execute query on undefined or invalid database. + Cannot execute query on undefined or invalid database. + + + + Cannot execute empty query. + Cannot execute empty query. + + + + Uncommitted data + Uncommitted data + + + + There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. + There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. + + + + Cannot commit the data for a cell that refers to the already closed database. + Cannot commit the data for a cell that refers to the already closed database. + + + + Could not begin transaction on the database. Details: %1 + Could not begin transaction on the database. Details: %1 + + + + An error occurred while committing the transaction: %1 + An error occurred while committing the transaction: %1 + + + + An error occurred while rolling back the transaction: %1 + An error occurred while rolling back the transaction: %1 + + + + Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. + Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. + + + + An error occurred while committing the data: %1 + An error occurred while committing the data: %1 + + + + Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. + Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. + + + + + Error while executing SQL query on database '%1': %2 + Error while executing SQL query on database '%1': %2 + + + + Error while loading query results: %1 + Error while loading query results: %1 + + + + Insert multiple rows + Insert multiple rows + + + + Number of rows to insert: + Number of rows to insert: + + + + Delete rows + Delete rows + + + + You're about to delete newly inserted rows that are not committed yet. Row numbers: %1 +Such deletion will be permanent. Are you sure you want to delete them? + You're about to delete newly inserted rows that are not committed yet. Row numbers: %1 +Such deletion will be permanent. Are you sure you want to delete them? + + + + SqlQueryView + + + Go to referenced row in... + Go to referenced row in... + + + + Copy + Copy + + + + Copy with headers + Copy with headers + + + + Copy as... + Copy as... + + + + Paste + Paste + + + + Paste as... + Paste as... + + + + Set NULL values + Set NULL values + + + + Erase values + Erase values + + + + Commit + Commit + + + + Rollback + Rollback + + + + Commit selected cells + Commit selected cells + + + + Rollback selected cells + Rollback selected cells + + + + Edit current cell inline + Edit current cell inline + + + + Define columns to sort by + Define columns to sort by + + + + Remove custom sorting + Remove custom sorting + + + + Insert row + Insert row + + + + Insert multiple rows + Insert multiple rows + + + + Delete selected row + Delete selected row + + + + Adjust height of rows + Adjust height of rows + + + + Increase font size + data view + Increase font size + + + + Decrease font size + data view + Decrease font size + + + + Invert selection + data view + Invert selection + + + + Edit value in editor + Edit value in editor + + + + Show value in a viewer + Show value in a viewer + + + + Generate query for selected cells + Generate query for selected cells + + + + No items selected to paste clipboard contents to. + No items selected to paste clipboard contents to. + + + + Cannot paste data. Details: %1 + Cannot paste data. Details: %1 + + + + Structure of at least one table used has changed since last data was loaded. Reload the data to proceed. + Structure of at least one table used has changed since last data was loaded. Reload the data to proceed. + + + + Cannot paste to a cell. Details: %1 + Cannot paste to a cell. Details: %1 + + + + The row is marked for deletion. + The row is marked for deletion. + + + + Cannot paste to column %1. Details: %2 + Cannot paste to column %1. Details: %2 + + + + Go to referenced row in table '%1' + Go to referenced row in table '%1' + + + + table '%1' + table '%1' + + + + Referenced row (%1) + Referenced row (%1) + + + + Trim pasted text? + Trim pasted text? + + + + The pasted text contains leading or trailing white space. Trim it automatically? + The pasted text contains leading or trailing white space. Trim it automatically? + + + + Paste "NULL" as null value? + Paste "NULL" as null value? + + + + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + + + + Edit value + Edit value + + + + SqlTableModel + + + Error while committing new row: %1 + Error while committing new row: %1 + + + + Error while deleting row from table %1: %2 + Error while deleting row from table %1: %2 + + + + SqliteExtensionEditor + + + Filter extensions + Filter extensions + + + + Leave empty to use default function + Leave empty to use default function + + + + Extension file + Extension file + + + + Initialization function + Initialization function + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Extension manager window has uncommitted modifications. + Extension manager window has uncommitted modifications. + + + + Extension manager + Extension manager + + + + Commit all extension changes + Commit all extension changes + + + + Rollback all extension changes + Rollback all extension changes + + + + Add new extension + Add new extension + + + + Remove selected extension + Remove selected extension + + + + Editing extensions manual + Editing extensions manual + + + + File with given path does not exist or is not readable. + File with given path does not exist or is not readable. + + + + Unable to load extension: %1 + Unable to load extension: %1 + + + + Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. + Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. + + + + Dynamic link libraries (*.dll);;All files (*) + Dynamic link libraries (*.dll);;All files (*) + + + + Shared objects (*.so);;All files (*) + Shared objects (*.so);;All files (*) + + + + Dynamic libraries (*.dylib);;All files (*) + Dynamic libraries (*.dylib);;All files (*) + + + + All files (*) + All files (*) + + + + Open file + Open file + + + + StatusField + + + Status + Status + + + + Copy + Copy + + + + Clear + Clear + + + + TableConstraintsModel + + + Type + table constraints + Type + + + + Details + table constraints + Details + + + + Name + table constraints + Name + + + + TableForeignKeyPanel + + + Foreign table: + Foreign table: + + + + Columns + Columns + + + + Local column + Local column + + + + Foreign column + Foreign column + + + + Reactions + Reactions + + + + Deferred foreign key + Deferred foreign key + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + Pick the foreign column. + Pick the foreign column. + + + + Pick the foreign table. + Pick the foreign table. + + + + Select at least one foreign column. + Select at least one foreign column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + Foreign column + table constraints + Foreign column + + + + TablePrimaryKeyAndUniquePanel + + + Columns + Columns + + + + Column + Column + + + + Collation + Collation + + + + Sort + Sort + + + + Valid only for a single column with INTEGER data type + Valid only for a single column with INTEGER data type + + + + Autoincrement + Autoincrement + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + On conflict + On conflict + + + + Collate + table constraints + Collate + + + + Sort order + table constraints + Sort order + + + + Select at least one column. + Select at least one column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + TableStructureModel + + + Name + table structure columns + Name + + + + Data type + table structure columns + Data type + + + + Primary +Key + table structure columns + Primary +Key + + + + Foreign +Key + table structure columns + Foreign +Key + + + + Unique + table structure columns + Unique + + + + Check + table structure columns + Check + + + + Not +NULL + table structure columns + Not +NULL + + + + Collate + table structure columns + Collate + + + + Generated + table structure columns + Generated + + + + Default value + table structure columns + Default value + + + + TableWindow + + + Structure + Structure + + + + Table name: + Table name: + + + + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + + + + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + + + + + Data + Data + + + + Constraints + Constraints + + + + Indexes + Indexes + + + + Triggers + Triggers + + + + DDL + DDL + + + + Export table + table window + Export table + + + + Import data to table + table window + Import data to table + + + + Populate table + table window + Populate table + + + + Refresh structure + table window + Refresh structure + + + + Commit structure changes + table window + Commit structure changes + + + + Rollback structure changes + table window + Rollback structure changes + + + + Add column + table window + Add column + + + + Edit column + table window + Edit column + + + + + Delete column + table window + Delete column + + + + Move column up + table window + Move column up + + + + Move column down + table window + Move column down + + + + Create similar table + table window + Create similar table + + + + Reset autoincrement value + table window + Reset autoincrement value + + + + Add table constraint + table window + Add table constraint + + + + Edit table constraint + table window + Edit table constraint + + + + Delete table constraint + table window + Delete table constraint + + + + Move table constraint up + table window + Move table constraint up + + + + Move table constraint down + table window + Move table constraint down + + + + Add table primary key + table window + Add table primary key + + + + Add table foreign key + table window + Add table foreign key + + + + Add table unique constraint + table window + Add table unique constraint + + + + Add table check constraint + table window + Add table check constraint + + + + Refresh index list + table window + Refresh index list + + + + + Create index + table window + Create index + + + + Edit index + table window + Edit index + + + + Delete index + table window + Delete index + + + + Refresh trigger list + table window + Refresh trigger list + + + + + Create trigger + table window + Create trigger + + + + Edit trigger + table window + Edit trigger + + + + Delete trigger + table window + Delete trigger + + + + Are you sure you want to delete column '%1'? + table window + Are you sure you want to delete column '%1'? + + + + Following problems will take place while modifying the table. +Would you like to proceed? + table window + Following problems will take place while modifying the table. +Would you like to proceed? + + + + Table modification + table window + Table modification + + + + Could not load data for table %1. Error details: %2 + Could not load data for table %1. Error details: %2 + + + + Could not process the %1 table correctly. Unable to open a table window. + Could not process the %1 table correctly. Unable to open a table window. + + + + Database + Database + + + + Could not restore window %1, because no database or table was stored in session for this window. + Could not restore window %1, because no database or table was stored in session for this window. + + + + Could not restore window '%1', because no database or table was stored in session for this window. + Could not restore window '%1', because no database or table was stored in session for this window. + + + + Could not restore window '%1', because database %2 could not be resolved. + Could not restore window '%1', because database %2 could not be resolved. + + + + Could not restore window '%1', because the table %2 doesn't exist in the database %3. + Could not restore window '%1', because the table %2 doesn't exist in the database %3. + + + + + New table %1 + New table %1 + + + + Committed changes for table '%1' successfully. + Committed changes for table '%1' successfully. + + + + Committed changes for table '%1' (named before '%2') successfully. + Committed changes for table '%1' (named before '%2') successfully. + + + + Could not commit table structure. Error message: %1 + table window + Could not commit table structure. Error message: %1 + + + + Reset autoincrement + Reset autoincrement + + + + Are you sure you want to reset autoincrement value for table '%1'? + Are you sure you want to reset autoincrement value for table '%1'? + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + An error occurred while trying to reset autoincrement value for table '%1': %2 + + + + Autoincrement value for table '%1' has been reset successfully. + Autoincrement value for table '%1' has been reset successfully. + + + + Empty name + Empty name + + + + A blank name for the table is allowed in SQLite, but it is not recommended. +Are you sure you want to create a table with blank name? + A blank name for the table is allowed in SQLite, but it is not recommended. +Are you sure you want to create a table with blank name? + + + + Cannot create a table without at least one column. + Cannot create a table without at least one column. + + + + Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. + Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. + + + + Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. + Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. + + + + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 + + + + Are you sure you want to delete table constraint '%1'? + table window + Are you sure you want to delete table constraint '%1'? + + + + Delete constraint + table window + Delete constraint + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + Uncommitted changes + Uncommitted changes + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + + + + Go back to structure tab + Go back to structure tab + + + + Commit modifications and browse data. + Commit modifications and browse data. + + + + Name + table window indexes + Name + + + + Unique + table window indexes + Unique + + + + Columns + table window indexes + Columns + + + + Partial index condition + table window indexes + Partial index condition + + + + Name + table window triggers + Name + + + + Event + table window triggers + Event + + + + Condition + table window triggers + Condition + + + + Details + table window triggers + Details + + + + Table window "%1" has uncommitted structure modifications and data. + Table window "%1" has uncommitted structure modifications and data. + + + + Table window "%1" has uncommitted data. + Table window "%1" has uncommitted data. + + + + Table window "%1" has uncommitted structure modifications. + Table window "%1" has uncommitted structure modifications. + + + + TriggerColumnsDialog + + + Trigger columns + Trigger columns + + + + Triggering columns: + Triggering columns: + + + + Select all + Select all + + + + Deselect all + Deselect all + + + + TriggerDialog + + + + Trigger + Trigger + + + + On table: + On table: + + + + Action: + Action: + + + + + <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> + <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> + + + + Pre-condition: + Pre-condition: + + + + The scope is still not fully supported by the SQLite database. + The scope is still not fully supported by the SQLite database. + + + + Trigger name: + Trigger name: + + + + When: + When: + + + + List of columns for UPDATE OF action. + List of columns for UPDATE OF action. + + + + Scope: + Scope: + + + + Code: + Code: + + + + Trigger statements to be executed. + Trigger statements to be executed. + + + + DDL + DDL + + + + On view: + On view: + + + + Could not process trigger %1 correctly. Unable to open a trigger dialog. + Could not process trigger %1 correctly. Unable to open a trigger dialog. + + + + Enter a valid condition. + Enter a valid condition. + + + + Enter a valid trigger code. + Enter a valid trigger code. + + + + Error + trigger dialog + Error + + + + An error occurred while executing SQL statements: +%1 + An error occurred while executing SQL statements: +%1 + + + + VersionConvertSummaryDialog + + + Database version convert + Database version convert + + + + Following changes to the SQL statements will be made: + Following changes to the SQL statements will be made: + + + + Before + Before + + + + After + After + + + + ViewWindow + + + Query + Query + + + + View name: + View name: + + + + Output column names + Output column names + + + + + Data + Data + + + + Triggers + Triggers + + + + DDL + DDL + + + + + Could not restore window '%1', because no database or view was stored in session for this window. + Could not restore window '%1', because no database or view was stored in session for this window. + + + + Could not restore window '%1', because database %2 could not be resolved. + Could not restore window '%1', because database %2 could not be resolved. + + + + Could not restore window '%1', because database %2 could not be open. + Could not restore window '%1', because database %2 could not be open. + + + + Could not restore window '%1', because the view %2 doesn't exist in the database %3. + Could not restore window '%1', because the view %2 doesn't exist in the database %3. + + + + + New view %1 + New view %1 + + + + Database + Database + + + + Refresh the view + view window + Refresh the view + + + + Commit the view changes + view window + Commit the view changes + + + + Rollback the view changes + view window + Rollback the view changes + + + + Explicit column names + Explicit column names + + + + Generate output column names automatically basing on result columns of the view. + Generate output column names automatically basing on result columns of the view. + + + + Add column + view window + Add column + + + + Edit column + view window + Edit column + + + + Delete column + view window + Delete column + + + + Move column up + view window + Move column up + + + + Move column down + view window + Move column down + + + + Refresh trigger list + view window + Refresh trigger list + + + + Create new trigger + view window + Create new trigger + + + + Edit selected trigger + view window + Edit selected trigger + + + + Delete selected trigger + view window + Delete selected trigger + + + + View window "%1" has uncommitted structure modifications and data. + View window "%1" has uncommitted structure modifications and data. + + + + View window "%1" has uncommitted data. + View window "%1" has uncommitted data. + + + + View window "%1" has uncommitted structure modifications. + View window "%1" has uncommitted structure modifications. + + + + Could not load data for view %1. Error details: %2 + Could not load data for view %1. Error details: %2 + + + + Uncommitted changes + Uncommitted changes + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + + + + Go back to structure tab + Go back to structure tab + + + + Commit modifications and browse data. + Commit modifications and browse data. + + + + View '%1' was committed successfully. + View '%1' was committed successfully. + + + + Committed changes for view '%1' successfully. + Committed changes for view '%1' successfully. + + + + Committed changes for view '%1' (named before '%2') successfully. + Committed changes for view '%1' (named before '%2') successfully. + + + + Could not commit view changes. Error message: %1 + view window + Could not commit view changes. Error message: %1 + + + + Override columns + Override columns + + + + Currently defined columns will be overriden. Do you want to continue? + Currently defined columns will be overriden. Do you want to continue? + + + + Could not determinate columns returned from the view. The query is problably incomplete or contains errors. + Could not determinate columns returned from the view. The query is problably incomplete or contains errors. + + + + Name + view window triggers + Name + + + + Instead of + view window triggers + Instead of + + + + Condition + view window triggers + Condition + + + + Details + table window triggers + Details + + + + Could not process the %1 view correctly. Unable to open a view window. + Could not process the %1 view correctly. Unable to open a view window. + + + + Empty name + Empty name + + + + A blank name for the view is allowed in SQLite, but it is not recommended. +Are you sure you want to create a view with blank name? + A blank name for the view is allowed in SQLite, but it is not recommended. +Are you sure you want to create a view with blank name? + + + + The SELECT statement could not be parsed. Please correct the query and retry. +Details: %1 + The SELECT statement could not be parsed. Please correct the query and retry. +Details: %1 + + + + The view could not be modified due to internal SQLiteStudio error. Please report this! + The view could not be modified due to internal SQLiteStudio error. Please report this! + + + + The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. + The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. + + + + Following problems will take place while modifying the view. +Would you like to proceed? + view window + Following problems will take place while modifying the view. +Would you like to proceed? + + + + View modification + view window + View modification + + + + WidgetCover + + + Interrupt + Interrupt + + + diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_nl_NL.ts b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_nl_NL.ts new file mode 100644 index 0000000..671687f --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_nl_NL.ts @@ -0,0 +1,7111 @@ + + + + + AboutDialog + + + About SQLiteStudio and licenses + About SQLiteStudio and licenses + + + + About + About + + + + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + + + + Licenses + Licenses + + + + Environment + Environment + + + + Icon directories + Icon directories + + + + Form directories + Form directories + + + + SQLite extension directories + SQLite extension directories + + + + Plugin directories + Plugin directories + + + + Configuration directory + Configuration directory + + + + Application directory + Application directory + + + + Qt version: + Qt version: + + + + SQLite 3 version: + SQLite 3 version: + + + + Portable distribution. + Portable distribution. + + + + MacOS X application bundle distribution. + MacOS X application bundle distribution. + + + + Operating system managed distribution. + Operating system managed distribution. + + + + <h3>Table of contents:</h3><ol>%2</ol> + <h3>Table of contents:</h3><ol>%2</ol> + + + + BindParamsDialog + + + Query parameters + Query parameters + + + + Please provide values for query parameters + Please provide values for query parameters + + + + CodeSnippetEditor + + + Filter snippets + Filter snippets + + + + + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + + + + + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + + + + Snippet name + Snippet name + + + + Code assistant shortcut + Code assistant shortcut + + + + Snippet code + Snippet code + + + + Code Snippets editor window has uncommitted modifications. + Code Snippets editor window has uncommitted modifications. + + + + Code Snippets editor + Code Snippets editor + + + + Commit all snippet changes + Commit all snippet changes + + + + Rollback all snippet changes + Rollback all snippet changes + + + + Create new snippet + Create new snippet + + + + Delete selected snippet + Delete selected snippet + + + + Move the snippet up + Move the snippet up + + + + Move the snippet down + Move the snippet down + + + + Code snippets manual + Code snippets manual + + + + Enter a non-empty, unique name of the snippet. + Enter a non-empty, unique name of the snippet. + + + + Enter a non-empty snippet content. + Enter a non-empty snippet content. + + + + This hotkey is not unique in context of a code assistant. + This hotkey is not unique in context of a code assistant. + + + + CollationsEditor + + + Filter collations + Filter collations + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Implementation code: + Implementation code: + + + + Collation name: + Collation name: + + + + Implementation language: + Implementation language: + + + + Collations editor + Collations editor + + + + Commit all collation changes + Commit all collation changes + + + + Rollback all collation changes + Rollback all collation changes + + + + Create new collation + Create new collation + + + + Delete selected collation + Delete selected collation + + + + Editing collations manual + Editing collations manual + + + + Enter a non-empty, unique name of the collation. + Enter a non-empty, unique name of the collation. + + + + Pick the implementation language. + Pick the implementation language. + + + + Enter a non-empty implementation code. + Enter a non-empty implementation code. + + + + Collations editor window has uncommitted modifications. + Collations editor window has uncommitted modifications. + + + + ColorButton + + + Pick a color + Pick a color + + + + ColumnCollatePanel + + + Collation name: + Collation name: + + + + Named constraint: + Named constraint: + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + Enter a collation name. + Enter a collation name. + + + + ColumnDefaultPanel + + + Default value: + Default value: + + + + Named constraint: + Named constraint: + + + + Enter a default value expression. + Enter a default value expression. + + + + Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. + Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. + + + + Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. + Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ColumnDialog + + + Column + Column + + + + Name and type + Name and type + + + + Scale + Scale + + + + Precision + Precision + + + + Data type: + Data type: + + + + Column name: + Column name: + + + + Size: + Size: + + + + Constraints + Constraints + + + + Generated value + Generated value + + + + Unique + Unique + + + + + + + + + + + Configure + Configure + + + + Foreign Key + Foreign Key + + + + Collate + Collate + + + + Not NULL + Not NULL + + + + Check condition + Check condition + + + + Primary Key + Primary Key + + + + Default + Default + + + + Advanced mode + Advanced mode + + + + Add constraint + column dialog + Add constraint + + + + Edit constraint + column dialog + Edit constraint + + + + + Delete constraint + column dialog + Delete constraint + + + + Move constraint up + column dialog + Move constraint up + + + + Move constraint down + column dialog + Move constraint down + + + + Add a primary key + column dialog + Add a primary key + + + + Add a foreign key + column dialog + Add a foreign key + + + + Add an unique constraint + column dialog + Add an unique constraint + + + + Add a check constraint + column dialog + Add a check constraint + + + + Add a not null constraint + column dialog + Add a not null constraint + + + + Add a collate constraint + column dialog + Add a collate constraint + + + + Add a generated value constraint + column dialog + Add a generated value constraint + + + + Add a default constraint + column dialog + Add a default constraint + + + + Are you sure you want to delete constraint '%1'? + column dialog + Are you sure you want to delete constraint '%1'? + + + + Correct the constraint's configuration. + Correct the constraint's configuration. + + + + Scale is not allowed for INTEGER PRIMARY KEY columns. + Scale is not allowed for INTEGER PRIMARY KEY columns. + + + + Precision cannot be defined without the scale. + Precision cannot be defined without the scale. + + + + Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. + Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. + + + + INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. + INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. + + + + Precision is not allowed for INTEGER PRIMARY KEY columns. + Precision is not allowed for INTEGER PRIMARY KEY columns. + + + + Could not match valid STRICT table datatype from declared type: %1. + Could not match valid STRICT table datatype from declared type: %1. + + + + ColumnDialogConstraintsModel + + + Type + column dialog constraints + Type + + + + Name + column dialog constraints + Name + + + + Details + column dialog constraints + Details + + + + ColumnForeignKeyPanel + + + Foreign table: + Foreign table: + + + + Foreign column: + Foreign column: + + + + Reactions + Reactions + + + + Deferred foreign key + Deferred foreign key + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + Pick the foreign table. + Pick the foreign table. + + + + Pick the foreign column. + Pick the foreign column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ColumnGeneratedPanel + + + Generating code: + Generating code: + + + + Explicit type: + Explicit type: + + + + Use "GENERATED ALWAYS" keywords + Use "GENERATED ALWAYS" keywords + + + + Named constraint: + Named constraint: + + + + Enter the column value generating expression. + Enter the column value generating expression. + + + + Invalid value generating expression: %1. + Invalid value generating expression: %1. + + + + Invalid value generating expression. + Invalid value generating expression. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ColumnPrimaryKeyPanel + + + Autoincrement + Autoincrement + + + + Sort order: + Sort order: + + + + Named constraint: + Named constraint: + + + + On conflict: + On conflict: + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + Descending order is not allowed with AUTOINCREMENT. + Descending order is not allowed with AUTOINCREMENT. + + + + ColumnUniqueAndNotNullPanel + + + Named constraint: + Named constraint: + + + + On conflict: + On conflict: + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + CompleterWindow + + + Column: %1 + completer statusbar + Column: %1 + + + + Table: %1 + completer statusbar + Table: %1 + + + + Index: %1 + completer statusbar + Index: %1 + + + + Trigger: %1 + completer statusbar + Trigger: %1 + + + + View: %1 + completer statusbar + View: %1 + + + + Database: %1 + completer statusbar + Database: %1 + + + + Keyword: %1 + completer statusbar + Keyword: %1 + + + + Function: %1 + completer statusbar + Function: %1 + + + + Operator: %1 + completer statusbar + Operator: %1 + + + + String + completer statusbar + String + + + + Number + completer statusbar + Number + + + + Binary data + completer statusbar + Binary data + + + + Collation: %1 + completer statusbar + Collation: %1 + + + + Pragma function: %1 + completer statusbar + Pragma function: %1 + + + + Insert a code snippet + Insert a code snippet + + + + ConfigDialog + + + + Configuration + Configuration + + + + Search + Search + + + + General + General + + + + Keyboard shortcuts + Keyboard shortcuts + + + + Look & feel + Look & feel + + + + Style + Style + + + + Fonts + Fonts + + + + Code colors + Code colors + + + + + Database list + Database list + + + + Code assistant + Code assistant + + + + Data browsing + Data browsing + + + + Data editors + Data editors + + + + Plugins + Plugins + + + + Code formatters + Code formatters + + + + If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. + If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. + + + + Sort table columns alphabetically + Sort table columns alphabetically + + + + Expand tables node when connected to a database + Expand tables node when connected to a database + + + + <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> + <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> + + + + Display additional labels on the list + Display additional labels on the list + + + + For regular tables labels will show number of columns, indexes and triggers for each of tables. + For regular tables labels will show number of columns, indexes and triggers for each of tables. + + + + Display labels for regular tables + Display labels for regular tables + + + + Virtual tables will be marked with a 'virtual' label. + Virtual tables will be marked with a 'virtual' label. + + + + Display labels for virtual tables + Display labels for virtual tables + + + + Expand views node when connected to a database + Expand views node when connected to a database + + + + If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) + If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) + + + + Sort objects (tables, indexes, triggers and views) alphabetically + Sort objects (tables, indexes, triggers and views) alphabetically + + + + Display system tables and indexes on the list + Display system tables and indexes on the list + + + + Database dialog window + Database dialog window + + + + <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> + <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> + + + + Do not mark database to be "permanent" by default + Do not mark database to be "permanent" by default + + + + <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> + <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> + + + + Try to bypass dialog completly when dropping database file onto the list + Try to bypass dialog completly when dropping database file onto the list + + + + Data browsing and editing + Data browsing and editing + + + + + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + + + + Number of memorized table populating configurations + Number of memorized table populating configurations + + + + Data column width + Data column width + + + + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + + + + Enlarge column when entering value longer than current width + Enlarge column when entering value longer than current width + + + + <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> + <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> + + + + Number of data rows per page: + Number of data rows per page: + + + + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> + + + + Show column and row details tooltip in data view + Show column and row details tooltip in data view + + + + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + + + + Keep NULL value when entering empty value + Keep NULL value when entering empty value + + + + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> + + + + Use DEFAULT value (if defined), when committing NULL value + Use DEFAULT value (if defined), when committing NULL value + + + + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + + + + Limit number of rows for in case of dozens of columns + Limit number of rows for in case of dozens of columns + + + + Inserting new row in data grid + Inserting new row in data grid + + + + Before currently selected row + Before currently selected row + + + + After currently selected row + After currently selected row + + + + At the end of data view + At the end of data view + + + + Table windows + Table windows + + + + <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> + <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> + + + + Open Table Windows with the data tab for start + Open Table Windows with the data tab for start + + + + <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> + <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> + + + + Place data tab as first tab in a Table Window + Place data tab as first tab in a Table Window + + + + View windows + View windows + + + + <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> + <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> + + + + Open View Windows with the data tab for start + Open View Windows with the data tab for start + + + + <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> + <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> + + + + Place data tab as first tab in a View Window + Place data tab as first tab in a View Window + + + + Data types + Data types + + + + Available editors: + Available editors: + + + + Editors selected for this data type: + Editors selected for this data type: + + + + Schema editing + Schema editing + + + + Number of DDL changes kept in history. + Number of DDL changes kept in history. + + + + DDL history size: + DDL history size: + + + + Don't show DDL preview dialog when committing schema changes + Don't show DDL preview dialog when committing schema changes + + + + SQL queries + SQL queries + + + + + Number of queries kept in the history. + Number of queries kept in the history. + + + + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> + + + + History size: + History size: + + + + + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> + + + + Execute only the query under the cursor + Execute only the query under the cursor + + + + Number of memorized query parameters + Number of memorized query parameters + + + + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + + + + Use scientific notation for real numbers in the grid view + Use scientific notation for real numbers in the grid view + + + + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + + + + Limit automatic data column width to (in pixels): + Limit automatic data column width to (in pixels): + + + + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + + + + Keep at least the width to show complete column name + Keep at least the width to show complete column name + + + + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + + + + Wrap lines in SQL editor + Wrap lines in SQL editor + + + + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + + + + Highlight current query + Highlight current query + + + + Updates + Updates + + + + Automatically check for updates at startup + Automatically check for updates at startup + + + + Session + Session + + + + Restore last session (active MDI windows) after startup + Restore last session (active MDI windows) after startup + + + + Allow multiple instances of the application at the same time + Allow multiple instances of the application at the same time + + + + Status Field + Status Field + + + + <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> + <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> + + + + Always open Status panel when new message is printed + Always open Status panel when new message is printed + + + + Code syntax colors + Code syntax colors + + + + Keyword foreground + Keyword foreground + + + + Regular foreground + Regular foreground + + + + String foreground + String foreground + + + + Comment foreground + Comment foreground + + + + Valid objects foreground + Valid objects foreground + + + + Current query background + Current query background + + + + Bind parameter foreground + Bind parameter foreground + + + + Current line background + Current line background + + + + Matched parenthesis background + Matched parenthesis background + + + + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + + + + Number foreground + Number foreground + + + + BLOB value foreground + BLOB value foreground + + + + Matched parenthesis foreground + Matched parenthesis foreground + + + + Reset to defaults + Reset to defaults + + + + Filter shortcuts by name or key combination + Filter shortcuts by name or key combination + + + + Action + Action + + + + Key combination + Key combination + + + + + Language + Language + + + + Changing language requires application restart to take effect. + Changing language requires application restart to take effect. + + + + Compact layout + Compact layout + + + + <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> + <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> + + + + Use compact layout + Use compact layout + + + + Main window dock areas + Main window dock areas + + + + Left and right areas occupy corners + Left and right areas occupy corners + + + + Top and bottom areas occupy corners + Top and bottom areas occupy corners + + + + Hide built-in plugins + Hide built-in plugins + + + + Current style: + Current style: + + + + Preview + Preview + + + + Enabled + Enabled + + + + Disabled + Disabled + + + + Active formatter plugin + Active formatter plugin + + + + SQL editor font + SQL editor font + + + + Database list font + Database list font + + + + Database list additional label font + Database list additional label font + + + + Data view font + Data view font + + + + Status field font + Status field font + + + + Code assistant settings + Code assistant settings + + + + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + + + + Automatically trigger the assistant after a dot is typed after an object name + Automatically trigger the assistant after a dot is typed after an object name + + + + Description: + plugin details + Description: + + + + Category: + plugin details + Category: + + + + Version: + plugin details + Version: + + + + Author: + plugin details + Author: + + + + Internal name: + plugin details + Internal name: + + + + Dependencies: + plugin details + Dependencies: + + + + Conflicts: + plugin details + Conflicts: + + + + Plugin details + Plugin details + + + + Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. + Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. + + + + %1 (built-in) + plugins manager in configuration dialog + %1 (built-in) + + + + Details + Details + + + + No plugins in this category. + No plugins in this category. + + + + Add new data type + Add new data type + + + + Rename selected data type + Rename selected data type + + + + Delete selected data type + Delete selected data type + + + + Help for configuring data type editors + Help for configuring data type editors + + + + Clear hotkey for this action + Clear hotkey for this action + + + + Restore original hotkey for this action + Restore original hotkey for this action + + + + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + + + + ConstraintCheckPanel + + + The condition + The condition + + + + Named constraint: + Named constraint: + + + + On conflict + On conflict + + + + Enter a valid condition. + Enter a valid condition. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ConstraintDialog + + + New constraint + constraint dialog + New constraint + + + + Create + constraint dialog + Create + + + + Edit constraint + dialog window + Edit constraint + + + + Apply + constraint dialog + Apply + + + + Primary key + table constraints + Primary key + + + + Foreign key + table constraints + Foreign key + + + + Unique + table constraints + Unique + + + + Not NULL + table constraints + Not NULL + + + + Check + table constraints + Check + + + + Generated + table constraints + Generated + + + + Collate + table constraints + Collate + + + + Default + table constraints + Default + + + + ConstraintTabModel + + + Table + table constraints + Table + + + + Column (%1) + table constraints + Column (%1) + + + + Scope + table constraints + Scope + + + + Type + table constraints + Type + + + + Details + table constraints + Details + + + + Name + table constraints + Name + + + + CssDebugDialog + + + SQLiteStudio CSS console + SQLiteStudio CSS console + + + + DataView + + + Filter data + data view + Filter data + + + + Grid view + Grid view + + + + Form view + Form view + + + + Refresh table data + data view + Refresh table data + + + + First page + data view + First page + + + + Previous page + data view + Previous page + + + + Next page + data view + Next page + + + + Last page + data view + Last page + + + + Commit changes for selected cells + data view + Commit changes for selected cells + + + + Rollback changes for selected cells + data view + Rollback changes for selected cells + + + + Show grid view of results + data view + Show grid view of results + + + + Show form view of results + data view + Show form view of results + + + + Filter by text (if contains) + data view + Filter by text (if contains) + + + + Filter strictly by text (if equals) + data view + Filter strictly by text (if equals) + + + + Tabs on top + data view + Tabs on top + + + + Tabs at bottom + data view + Tabs at bottom + + + + Place new rows above selected row + data view + Place new rows above selected row + + + + Place new rows below selected row + data view + Place new rows below selected row + + + + Place new rows at the end of the data view + data view + Place new rows at the end of the data view + + + + Total number of rows is being counted. +Browsing other pages will be possible after the row counting is done. + Total number of rows is being counted. +Browsing other pages will be possible after the row counting is done. + + + + Row: %1 + Row: %1 + + + + Filter + Filter + + + + Hit Enter key or press "Apply filter" button on toolbar to apply new value. + Hit Enter key or press "Apply filter" button on toolbar to apply new value. + + + + Filter by the Regular Expression + data view + Filter by the Regular Expression + + + + Filter by SQL expression + data view + Filter by SQL expression + + + + Show filter inputs per column + data view + Show filter inputs per column + + + + Apply filter + data view + Apply filter + + + + DbDialog + + + Database + Database + + + + Database type + Database type + + + + Database driver + Database driver + + + + + File + File + + + + Name (on the list) + Name (on the list) + + + + Options + Options + + + + <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> + aasfd + <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> + + + + Permanent (keep it in configuration) + Permanent (keep it in configuration) + + + + Test connection + Test connection + + + + Select new or existing file on local computer + Select new or existing file on local computer + + + + Browse + Browse + + + + Database type not selected. + Database type not selected. + + + + Database path not specified. + Database path not specified. + + + + Enter an unique database name. + Enter an unique database name. + + + + This name is already in use. Please enter unique name. + This name is already in use. Please enter unique name. + + + + <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> + <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> + + + + Enter a database file path. + Enter a database file path. + + + + This database is already on the list under name: %1 + This database is already on the list under name: %1 + + + + Select a database type. + Select a database type. + + + + DbObjectDialogs + + + Delete table + Delete table + + + + Are you sure you want to delete table %1? + Are you sure you want to delete table %1? + + + + Delete index + Delete index + + + + Are you sure you want to delete index %1? + Are you sure you want to delete index %1? + + + + Delete trigger + Delete trigger + + + + Are you sure you want to delete trigger %1? + Are you sure you want to delete trigger %1? + + + + Delete view + Delete view + + + + Are you sure you want to delete view %1? + Are you sure you want to delete view %1? + + + + + Error while dropping %1: %2 + Error while dropping %1: %2 + + + + Delete objects + Delete objects + + + + Are you sure you want to delete following objects: +%1 + Are you sure you want to delete following objects: +%1 + + + + Cannot start transaction. Details: %1 + Cannot start transaction. Details: %1 + + + + Cannot commit transaction. Details: %1 + Cannot commit transaction. Details: %1 + + + + DbTree + + + Databases + Databases + + + + Filter by name + Filter by name + + + + Copy + Copy + + + + Paste + Paste + + + + Select all + Select all + + + + Create a group + Create a group + + + + Delete the group + Delete the group + + + + Rename the group + Rename the group + + + + &Add a database + &Add a database + + + + &Edit the database + &Edit the database + + + + &Remove the database + &Remove the database + + + + &Connect to the database + &Connect to the database + + + + &Disconnect from the database + &Disconnect from the database + + + + Import + Import + + + + &Export the database + &Export the database + + + + Vac&uum + Vac&uum + + + + &Integrity check + &Integrity check + + + + Create a &table + Create a &table + + + + Edit the t&able + Edit the t&able + + + + Delete the ta&ble + Delete the ta&ble + + + + Export the table + Export the table + + + + Import into the table + Import into the table + + + + Populate table + Populate table + + + + Create similar table + Create similar table + + + + Reset autoincrement sequence + Reset autoincrement sequence + + + + Create an &index + Create an &index + + + + Edit the i&ndex + Edit the i&ndex + + + + Delete the in&dex + Delete the in&dex + + + + Create a trig&ger + Create a trig&ger + + + + Edit the trigg&er + Edit the trigg&er + + + + Delete the trigge&r + Delete the trigge&r + + + + Create a &view + Create a &view + + + + Edit the v&iew + Edit the v&iew + + + + Delete the vi&ew + Delete the vi&ew + + + + Add a column + Add a column + + + + Edit the column + Edit the column + + + + Delete the column + Delete the column + + + + Delete selected items + Delete selected items + + + + Clear filter + Clear filter + + + + &Refresh all database schemas + &Refresh all database schemas + + + + Re&fresh selected database schema + Re&fresh selected database schema + + + + + Erase table data + Erase table data + + + + Open file's directory + Open file's directory + + + + Execute SQL from file + Execute SQL from file + + + + Increase font size + database list + Increase font size + + + + Decrease font size + database list + Decrease font size + + + + + Database + Database + + + + Grouping + Grouping + + + + Generate query for table + Generate query for table + + + + + Create group + Create group + + + + Group name + Group name + + + + Entry with name %1 already exists in group %2. + Entry with name %1 already exists in group %2. + + + + Delete group + Delete group + + + + Are you sure you want to delete group %1? +All objects from this group will be moved to parent group. + Are you sure you want to delete group %1? +All objects from this group will be moved to parent group. + + + + Are you sure you want to remove database '%1' from the list? + Are you sure you want to remove database '%1' from the list? + + + + Are you sure you want to remove following databases from the list: +%1 + Are you sure you want to remove following databases from the list: +%1 + + + + Remove database + Remove database + + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Vacuum (%1) + Vacuum (%1) + + + + Integrity check (%1) + Integrity check (%1) + + + + Reset autoincrement + Reset autoincrement + + + + Are you sure you want to reset autoincrement value for table '%1'? + Are you sure you want to reset autoincrement value for table '%1'? + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + An error occurred while trying to reset autoincrement value for table '%1': %2 + + + + Autoincrement value for table '%1' has been reset successfully. + Autoincrement value for table '%1' has been reset successfully. + + + + Are you sure you want to delete all data from table(s): %1? + Are you sure you want to delete all data from table(s): %1? + + + + An error occurred while trying to delete data from table '%1': %2 + An error occurred while trying to delete data from table '%1': %2 + + + + All data has been deleted for table '%1'. + All data has been deleted for table '%1'. + + + + Following objects will be deleted: %1. + Following objects will be deleted: %1. + + + + Following databases will be removed from list: %1. + Following databases will be removed from list: %1. + + + + Remainig objects from deleted group will be moved in place where the group used to be. + Remainig objects from deleted group will be moved in place where the group used to be. + + + + %1<br><br>Are you sure you want to continue? + %1<br><br>Are you sure you want to continue? + + + + Delete objects + Delete objects + + + + DbTreeItemDelegate + + + error + dbtree labels + error + + + + (system table) + database tree label + (system table) + + + + (virtual) + virtual table label + (virtual) + + + + (system index) + database tree label + (system index) + + + + DbTreeModel + + + Database: %1 + dbtree tooltip + Database: %1 + + + + URI: + dbtree tooltip + URI: + + + + Version: + dbtree tooltip + Version: + + + + File size: + dbtree tooltip + File size: + + + + Encoding: + dbtree tooltip + Encoding: + + + + Error: + dbtree tooltip + Error: + + + + Table : %1 + dbtree tooltip + Table : %1 + + + + Columns (%1): + dbtree tooltip + Columns (%1): + + + + Indexes (%1): + dbtree tooltip + Indexes (%1): + + + + Triggers (%1): + dbtree tooltip + Triggers (%1): + + + + Copy + Copy + + + + Move + Move + + + + Include data + Include data + + + + Include indexes + Include indexes + + + + Include triggers + Include triggers + + + + Abort + Abort + + + + Could not add dropped database file '%1' automatically. Manual setup is necessary. + Could not add dropped database file '%1' automatically. Manual setup is necessary. + + + + Referenced tables + Referenced tables + + + + Do you want to include following referenced tables as well: +%1 + Do you want to include following referenced tables as well: +%1 + + + + Name conflict + Name conflict + + + + Following object already exists in the target database. +Please enter new, unique name, or press '%1' to abort the operation: + Following object already exists in the target database. +Please enter new, unique name, or press '%1' to abort the operation: + + + + SQL statements conversion + SQL statements conversion + + + + Following error occurred while converting SQL statements to the target SQLite version: + Following error occurred while converting SQL statements to the target SQLite version: + + + + Would you like to ignore those errors and proceed? + Would you like to ignore those errors and proceed? + + + + DdlHistoryWindow + + + Filter by database: + Filter by database: + + + + Clear entire history + Clear entire history + + + + -- Queries executed on database %1 (%2) +-- Date and time of execution: %3 +%4 + -- Queries executed on database %1 (%2) +-- Date and time of execution: %3 +%4 + + + + Clear history + Clear history + + + + Are you sure you want to erase entire DDL history? + Are you sure you want to erase entire DDL history? + + + + DDL history + DDL history + + + + DdlPreviewDialog + + + Queries to be executed + Queries to be executed + + + + Don't show again + Don't show again + + + + DebugConsole + + + SQLiteStudio Debug Console + SQLiteStudio Debug Console + + + + EditorWindow + + + SQL editor + SQL editor + + + + Query + Query + + + + History + History + + + + Results in the separate tab + Results in the separate tab + + + + Results below the query + Results below the query + + + + + SQL editor %1 + SQL editor %1 + + + + + Results + Results + + + + Execute query + Execute query + + + + Explain query + Explain query + + + + Clear execution history + sql editor + Clear execution history + + + + Export results + sql editor + Export results + + + + Create view from query + sql editor + Create view from query + + + + Previous database + Previous database + + + + Next database + Next database + + + + Show next tab + sql editor + Show next tab + + + + Show previous tab + sql editor + Show previous tab + + + + Focus results below + sql editor + Focus results below + + + + Focus SQL editor above + sql editor + Focus SQL editor above + + + + Delete selected SQL history entries + sql editor + Delete selected SQL history entries + + + + Execute single query under cursor + Execute single query under cursor + + + + Execute all queries in editor + Execute all queries in editor + + + + Active database (%1/%2) + Active database (%1/%2) + + + + Query finished in %1 second(s). Rows affected: %2 + Query finished in %1 second(s). Rows affected: %2 + + + + Query finished in %1 second(s). + Query finished in %1 second(s). + + + + Clear execution history + Clear execution history + + + + Are you sure you want to erase the entire SQL execution history? This cannot be undone. + Are you sure you want to erase the entire SQL execution history? This cannot be undone. + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + No database selected in the SQL editor. Cannot create a view for unknown database. + No database selected in the SQL editor. Cannot create a view for unknown database. + + + + Editor window "%1" has uncommitted data. + Editor window "%1" has uncommitted data. + + + + ErrorsConfirmDialog + + + Errors + Errors + + + + Following errors occured: + Following errors occured: + + + + Would you like to proceed? + Would you like to proceed? + + + + ExecFromFileDialog + + + Execute SQL from file + Execute SQL from file + + + + Input file + Input file + + + + Path to file + Path to file + + + + Browse for file + Browse for file + + + + Options + Options + + + + File encoding + File encoding + + + + Skip failing SQL statements + Skip failing SQL statements + + + + SQL scripts (*.sql);;All files (*) + SQL scripts (*.sql);;All files (*) + + + + Execute SQL file + Execute SQL file + + + + Please provide file to be executed. + Please provide file to be executed. + + + + Provided file does not exist or cannot be read. + Provided file does not exist or cannot be read. + + + + ExportDialog + + + Export + Export + + + + What do you want to export? + What do you want to export? + + + + A database + A database + + + + A single table + A single table + + + + Query results + Query results + + + + Table to export + Table to export + + + + Database + Database + + + + Table + Table + + + + Options + Options + + + + When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. + When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. + + + + Export table data + Export table data + + + + Export table indexes + Export table indexes + + + + Export table triggers + Export table triggers + + + + Note, that exporting table indexes and triggers may be unsupported by some output formats. + Note, that exporting table indexes and triggers may be unsupported by some output formats. + + + + Select database objects to export + Select database objects to export + + + + Export data from tables + Export data from tables + + + + Select all + Select all + + + + Deselect all + Deselect all + + + + + Database: + Database: + + + + Query to export results for + Query to export results for + + + + Query to be executed for results: + Query to be executed for results: + + + + Export format and options + Export format and options + + + + Export format + Export format + + + + Output + Output + + + + Exported file path + Exported file path + + + + Clipboard + Clipboard + + + + File + File + + + + Exported text encoding: + Exported text encoding: + + + + Export format options + Export format options + + + + Cancel + Cancel + + + + + + Select database to export. + Select database to export. + + + + Select table to export. + Select table to export. + + + + Enter valid query to export. + Enter valid query to export. + + + + Select at least one object to export. + Select at least one object to export. + + + + You must provide a file name to export to. + You must provide a file name to export to. + + + + Path you provided is an existing directory. You cannot overwrite it. + Path you provided is an existing directory. You cannot overwrite it. + + + + The directory '%1' does not exist. + The directory '%1' does not exist. + + + + The file '%1' exists and will be overwritten. + The file '%1' exists and will be overwritten. + + + + All files (*) + All files (*) + + + + Pick file to export to + Pick file to export to + + + + Internal error during export. This is a bug. Please report it. + Internal error during export. This is a bug. Please report it. + + + + FileExecErrorsDialog + + + Execution errors + Execution errors + + + + Following errors were encountered during execution of SQL statements from the file: + Following errors were encountered during execution of SQL statements from the file: + + + + SQL + SQL + + + + Error + Error + + + + Statements that were executed successfully were commited. + Statements that were executed successfully were commited. + + + + Statements that were executed successfully were rolled back. + Statements that were executed successfully were rolled back. + + + + FkComboBox + + + Cannot edit this cell. Details: %1 + Cannot edit this cell. Details: %1 + + + + FontEdit + + + Choose font + font configuration + Choose font + + + + Form + + + Active SQL formatter plugin + Active SQL formatter plugin + + + + FormView + + + Commit row + form view + Commit row + + + + Rollback row + form view + Rollback row + + + + First row + form view + First row + + + + Previous row + form view + Previous row + + + + Next row + form view + Next row + + + + Last row + form view + Last row + + + + Insert new row + form view + Insert new row + + + + Delete current row + form view + Delete current row + + + + FunctionsEditor + + + Filter functions + Filter functions + + + + Input arguments + Input arguments + + + + Undefined + Undefined + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Type: + Type: + + + + Function name: + Function name: + + + + Implementation language: + Implementation language: + + + + Deterministic + Deterministic + + + + Initialization code: + Initialization code: + + + + + Function implementation code: + Function implementation code: + + + + Final step implementation code: + Final step implementation code: + + + + SQL functions editor + SQL functions editor + + + + Commit all function changes + Commit all function changes + + + + Rollback all function changes + Rollback all function changes + + + + Create new function + Create new function + + + + Delete selected function + Delete selected function + + + + Custom SQL functions manual + Custom SQL functions manual + + + + Add function argument + Add function argument + + + + Rename function argument + Rename function argument + + + + Delete function argument + Delete function argument + + + + Move function argument up + Move function argument up + + + + Move function argument down + Move function argument down + + + + Scalar + Scalar + + + + Aggregate + Aggregate + + + + Enter a non-empty, unique name of the function. + Enter a non-empty, unique name of the function. + + + + Pick the implementation language. + Pick the implementation language. + + + + Per step code: + Per step code: + + + + Enter a non-empty implementation code. + Enter a non-empty implementation code. + + + + argument + new function argument name in function editor window + argument + + + + Functions editor window has uncommitted modifications. + Functions editor window has uncommitted modifications. + + + + ImportDialog + + + Import data + Import data + + + + Table to import to + Table to import to + + + + Table + Table + + + + Database + Database + + + + Data source to import from + Data source to import from + + + + Data source type + Data source type + + + + Options + Options + + + + Text encoding: + Text encoding: + + + + Input file: + Input file: + + + + <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> + <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> + + + + Ignore errors + Ignore errors + + + + Data source options + Data source options + + + + Cancel + Cancel + + + + If you type table name that doesn't exist, it will be created. + If you type table name that doesn't exist, it will be created. + + + + Enter the table name + Enter the table name + + + + Select import plugin. + Select import plugin. + + + + You must provide a file to import from. + You must provide a file to import from. + + + + The file '%1' does not exist. + The file '%1' does not exist. + + + + Path you provided is a directory. A regular file is required. + Path you provided is a directory. A regular file is required. + + + + Pick file to import from + Pick file to import from + + + + IndexDialog + + + + Index + Index + + + + Column + Column + + + + Sort + Sort + + + + Collation + Collation + + + + On table: + On table: + + + + Delete selected indexed expression + Delete selected indexed expression + + + + Moves selected index column up in the order, making it more significant in the index. + Moves selected index column up in the order, making it more significant in the index. + + + + Moves selected index column down in the order, making it less significant in the index. + Moves selected index column down in the order, making it less significant in the index. + + + + Partial index condition + Partial index condition + + + + Unique index + Unique index + + + + Index name: + Index name: + + + + Edit selected indexed expression + Edit selected indexed expression + + + + Add indexed expression + Add indexed expression + + + + DDL + DDL + + + + Tried to open index dialog for closed or inexisting database. + Tried to open index dialog for closed or inexisting database. + + + + Could not process index %1 correctly. Unable to open an index dialog. + Could not process index %1 correctly. Unable to open an index dialog. + + + + Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. + Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. + + + + Pick the table for the index. + Pick the table for the index. + + + + Select at least one column. + Select at least one column. + + + + Enter a valid condition. + Enter a valid condition. + + + + default + index dialog + default + + + + Sort order + table constraints + Sort order + + + + + Error + index dialog + Error + + + + Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? + Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? + + + + An error occurred while executing SQL statements: +%1 + An error occurred while executing SQL statements: +%1 + + + + IndexExprColumnDialog + + + Indexed expression + Indexed expression + + + + Expression to index + Expression to index + + + + This expression is already indexed by the index. + This expression is already indexed by the index. + + + + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. + + + + Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. + Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. + + + + It's forbidden to use 'SELECT' statements in indexed expressions. + It's forbidden to use 'SELECT' statements in indexed expressions. + + + + Enter an indexed expression. + Enter an indexed expression. + + + + Invalid expression. + Invalid expression. + + + + LanguageDialog + + + Language + Language + + + + Please choose language: + Please choose language: + + + + MainWindow + + + Database toolbar + Database toolbar + + + + Structure toolbar + Structure toolbar + + + + Tools + Tools + + + + Window list + Window list + + + + View toolbar + View toolbar + + + + Configuration widgets + Configuration widgets + + + + Syntax highlighting engines + Syntax highlighting engines + + + + Data editors + Data editors + + + + Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. + Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. + + + + Running in debug mode. Debug messages are printed to the standard output. + Running in debug mode. Debug messages are printed to the standard output. + + + + You need to restart application to make the language change take effect. + You need to restart application to make the language change take effect. + + + + Open SQL &editor + Open SQL &editor + + + + Open DDL &history + Open DDL &history + + + + Open SQL &functions editor + Open SQL &functions editor + + + + Open code &snippets editor + Open code &snippets editor + + + + Open &collations editor + Open &collations editor + + + + Open ex&tension manager + Open ex&tension manager + + + + &Import + &Import + + + + E&xport + E&xport + + + + Open confi&guration dialog + Open confi&guration dialog + + + + &Tile windows + &Tile windows + + + + Tile windows &horizontally + Tile windows &horizontally + + + + Tile windows &vertically + Tile windows &vertically + + + + &Cascade windows + &Cascade windows + + + + Next window + Next window + + + + Previous window + Previous window + + + + Hide status field + Hide status field + + + + Close &all windows + Close &all windows + + + + Re&store recently closed window + Re&store recently closed window + + + + Close current &window + Close current &window + + + + Close &other windows + Close &other windows + + + + Close windows on the &left + Close windows on the &left + + + + Close windows on the &right + Close windows on the &right + + + + Re&name selected window + Re&name selected window + + + + Open Debug Console + Open Debug Console + + + + Open CSS Console + Open CSS Console + + + + Report a &bug + Report a &bug + + + + D&onate + D&onate + + + + Propose a new &feature + Propose a new &feature + + + + &About + &About + + + + &Licenses + &Licenses + + + + Open home &page + Open home &page + + + + User &Manual + User &Manual + + + + SQLite &documentation + SQLite &documentation + + + + Bugs and feature &requests + Bugs and feature &requests + + + + Quit + Quit + + + + Check for &updates + Check for &updates + + + + &Database + menubar + &Database + + + + &Structure + menubar + &Structure + + + + &View + menubar + &View + + + + Window list + menubar view menu + Window list + + + + &Tools + menubar + &Tools + + + + &Help + &Help + + + + Could not set style: %1 + main window + Could not set style: %1 + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + Rename window + Rename window + + + + Enter new name for the window: + Enter new name for the window: + + + + New updates are available. <a href="%1">Click here for details</a>. + New updates are available. <a href="%1">Click here for details</a>. + + + + You're running the most recent version. No updates are available. + You're running the most recent version. No updates are available. + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + Database passed in command line parameters (%1) was already on the list under name: %2 + + + + Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 + Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + MdiWindow + + + Uncommitted changes + Uncommitted changes + + + + Close anyway + Close anyway + + + + Don't close + Don't close + + + + MultiEditor + + + Null value + multieditor + Null value + + + + Configure editors for this data type + Configure editors for this data type + + + + Open another tab + Open another tab + + + + Foreign Key + Foreign Key + + + + Data editor plugin '%1' not loaded, while it is defined for editing '%2' data type. + Data editor plugin '%1' not loaded, while it is defined for editing '%1' data type. {1'?} {2'?} {1' or 2'?} + + + + Deleted + multieditor + Deleted + + + + Read only + multieditor + Read only + + + + MultiEditorBoolPlugin + + + Boolean + Boolean + + + + MultiEditorDatePlugin + + + Date + Date + + + + MultiEditorDateTimePlugin + + + Date & time + Date & time + + + + MultiEditorHexPlugin + + + Hex + Hex + + + + MultiEditorNumericPlugin + + + Number + numeric multi editor tab name + Number + + + + MultiEditorText + + + Tab changes focus + Tab changes focus + + + + Cut + Cut + + + + Copy + Copy + + + + Paste + Paste + + + + Delete + Delete + + + + Undo + Undo + + + + Redo + Redo + + + + MultiEditorTextPlugin + + + Text + Text + + + + MultiEditorTimePlugin + + + Time + Time + + + + NewConstraintDialog + + + New constraint + New constraint + + + + + Primary Key + new constraint dialog + Primary Key + + + + + Foreign Key + new constraint dialog + Foreign Key + + + + + Unique + new constraint dialog + Unique + + + + + Check + new constraint dialog + Check + + + + Not NULL + new constraint dialog + Not NULL + + + + Collate + new constraint dialog + Collate + + + + Generated + new constraint dialog + Generated + + + + Default + new constraint dialog + Default + + + + NewVersionDialog + + + SQLiteStudio updates + SQLiteStudio updates + + + + New version is available! + New version is available! + + + + Download new version! + Download new version! + + + + New version package will be downloaded. It will be up to you to install it whenever you're ready. + New version package will be downloaded. It will be up to you to install it whenever you're ready. + + + + Open SQLiteStudio home page. + Open SQLiteStudio home page. + + + + Read release notes && download package yourself. + Read release notes && download package yourself. + + + + Just close this window. + Just close this window. + + + + Check for updates on startup + Check for updates on startup + + + + Not now. + Not now. + + + + PopulateConfigDialog + + + Populating configuration + Populating configuration + + + + Configuring <b>%1</b> for column <b>%2</b> + Configuring <b>%1</b> for column <b>%2</b> + + + + PopulateDialog + + + Populate table + Populate table + + + + Database + Database + + + + Table + Table + + + + Columns + Columns + + + + Number of rows to populate: + Number of rows to populate: + + + + Populate + populate dialog button + Populate + + + + Abort + Abort + + + + Configure + Configure + + + + Populating configuration for this column is invalid or incomplete. + Populating configuration for this column is invalid or incomplete. + + + + Select database with table to populate + Select database with table to populate + + + + Select table to populate + Select table to populate + + + + You have to select at least one column. + You have to select at least one column. + + + + QObject + + + Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). + Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). + + + + The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. + The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. + + + + Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. + Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. + + + + Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. + Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. + + + + Cannot edit results of query other than %1. + Cannot edit results of query other than %1. + + + + Cannot edit columns that are result of aggregated %1 statements. + Cannot edit columns that are result of aggregated %1 statements. + + + + Cannot edit columns that are result of %1 statement. + Cannot edit columns that are result of %1 statement. + + + + Cannot edit columns that are result of common table expression statement (%1). + Cannot edit columns that are result of common table expression statement (%1). + + + + Cannot edit table generated columns. + Cannot edit table generated columns. + + + + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). + + + + + + + on conflict: %1 + data view tooltip + on conflict: %1 + + + + references table %1, column %2 + data view tooltip + references table %1, column %2 + + + + condition: %1 + data view tooltip + condition: %1 + + + + collation name: %1 + data view tooltip + collation name: %1 + + + + Data grid view + Data grid view + + + + Edit current cell inline + Edit current cell inline + + + + Copy cell(s) contents to clipboard + Copy cell(s) contents to clipboard + + + + Copy cell(s) contents together with header to clipboard + Copy cell(s) contents together with header to clipboard + + + + Paste cell(s) contents from clipboard + Paste cell(s) contents from clipboard + + + + Set empty value to selected cell(s) + Set empty value to selected cell(s) + + + + Set NULL value to selected cell(s) + Set NULL value to selected cell(s) + + + + Commit changes to cell(s) contents + Commit changes to cell(s) contents + + + + Rollback changes to cell(s) contents + Rollback changes to cell(s) contents + + + + Delete selected data row + Delete selected data row + + + + Insert new data row + Insert new data row + + + + Open contents of selected cell in a separate editor + Open contents of selected cell in a separate editor + + + + Toggle the height adjustment of rows + Toggle the height adjustment of rows + + + + Increase font size + data view + Increase font size + + + + Decrease font size + data view + Decrease font size + + + + Total pages available: %1 + Total pages available: %1 + + + + Total rows loaded: %1 + Total rows loaded: %1 + + + + Data view (both grid and form) + Data view (both grid and form) + + + + Refresh data + Refresh data + + + + Switch to grid view of the data + Switch to grid view of the data + + + + Switch to form view of the data + Switch to form view of the data + + + + Database list + Database list + + + + Delete selected item + Delete selected item + + + + Clear filter contents + Clear filter contents + + + + Refresh schema + Refresh schema + + + + Refresh all schemas + Refresh all schemas + + + + Add database + Add database + + + + Select all items + Select all items + + + + Copy selected item(s) + Copy selected item(s) + + + + + + Paste from clipboard + Paste from clipboard + + + + Increase font size + database list + Increase font size + + + + Decrease font size + database list + Decrease font size + + + + Tables + Tables + + + + Indexes + Indexes + + + + Triggers + Triggers + + + + Views + Views + + + + Columns + Columns + + + + Data form view + Data form view + + + + Commit changes for current row + Commit changes for current row + + + + Rollback changes for current row + Rollback changes for current row + + + + Go to first row on current page + Go to first row on current page + + + + Go to next row + Go to next row + + + + Go to previous row + Go to previous row + + + + Go to last row on current page + Go to last row on current page + + + + Insert new row + Insert new row + + + + Delete current row + Delete current row + + + + Main window + Main window + + + + Open SQL editor + Open SQL editor + + + + Open DDL history window + Open DDL history window + + + + Open snippets editor window + Open snippets editor window + + + + Open function editor window + Open function editor window + + + + Open collation editor window + Open collation editor window + + + + Open extension manager window + Open extension manager window + + + + Previous window + Previous window + + + + Next window + Next window + + + + Hide status area + Hide status area + + + + Open user manual + Open user manual + + + + Open configuration dialog + Open configuration dialog + + + + Open Debug Console + Open Debug Console + + + + Open CSS Console + Open CSS Console + + + + Open the About dialog + Open the About dialog + + + + Quit the application + Quit the application + + + + Cell text value editor + Cell text value editor + + + + + Cut selected text + Cut selected text + + + + + Copy selected text + Copy selected text + + + + + Delete selected text + Delete selected text + + + + + Undo + Undo + + + + + Redo + Redo + + + + SQL editor input field + SQL editor input field + + + + Select whole editor contents + Select whole editor contents + + + + Save contents into a file + Save contents into a file + + + + Load contents from a file + Load contents from a file + + + + Find in text + Find in text + + + + Find next + Find next + + + + Find previous + Find previous + + + + Replace in text + Replace in text + + + + Delete current line + Delete current line + + + + Request code assistant + Request code assistant + + + + Format contents + Format contents + + + + Move selected block of text one line down + Move selected block of text one line down + + + + Move selected block of text one line up + Move selected block of text one line up + + + + Copy selected block of text and paste it a line below + Copy selected block of text and paste it a line below + + + + Copy selected block of text and paste it a line above + Copy selected block of text and paste it a line above + + + + Toggle comment + Toggle comment + + + + Increase font size + sql editor + Increase font size + + + + Decrease font size + sql editor + Decrease font size + + + + All SQLite databases + All SQLite databases + + + + All files + All files + + + + Select database file + Select database file + + + + Select + Select + + + + File type + File type + + + + SQL editor window + SQL editor window + + + + Execute query + Execute query + + + + Execute single query under cursor + Execute single query under cursor + + + + Execute all queries in editor + Execute all queries in editor + + + + Execute "%1" query + Execute "%1" query + + + + Switch current working database to previous on the list + Switch current working database to previous on the list + + + + Switch current working database to next on the list + Switch current working database to next on the list + + + + Go to next editor tab + Go to next editor tab + + + + Go to previous editor tab + Go to previous editor tab + + + + Move keyboard input focus to the results view below + Move keyboard input focus to the results view below + + + + Move keyboard input focus to the SQL editor above + Move keyboard input focus to the SQL editor above + + + + Delete selected SQL history entries + Delete selected SQL history entries + + + + Table window + Table window + + + + Commit the table structure + Commit the table structure + + + + Rollback pending changes in the table structure + Rollback pending changes in the table structure + + + + Refresh table structure + Refresh table structure + + + + Add new column + Add new column + + + + Edit selected column + Edit selected column + + + + Delete selected column + Delete selected column + + + + Export table data + Export table data + + + + Import data to the table + Import data to the table + + + + Add new table constraint + Add new table constraint + + + + Edit selected table constraint + Edit selected table constraint + + + + Delete selected table constraint + Delete selected table constraint + + + + Refresh table index list + Refresh table index list + + + + Add new index + Add new index + + + + Edit selected index + Edit selected index + + + + Delete selected index + Delete selected index + + + + Refresh table trigger list + Refresh table trigger list + + + + + Add new trigger + Add new trigger + + + + + Edit selected trigger + Edit selected trigger + + + + + Delete selected trigger + Delete selected trigger + + + + + Go to next tab + Go to next tab + + + + + Go to previous tab + Go to previous tab + + + + A view window + A view window + + + + Commit the view's query + Commit the view's query + + + + Rollback pending changes in the view's query + Rollback pending changes in the view's query + + + + Refresh view trigger list + Refresh view trigger list + + + + Execute the view's query + Execute the view's query + + + + A code snippets editor window + A code snippets editor window + + + + + + + Commit the pending changes + Commit the pending changes + + + + + + + Rollback the pending changes + Rollback the pending changes + + + + A collation editor window + A collation editor window + + + + A function editor window + A function editor window + + + + A SQLite extension editor window + A SQLite extension editor window + + + + QuitConfirmDialog + + + Uncommitted changes + Uncommitted changes + + + + Are you sure you want to quit the application? + +Following items are pending: + Are you sure you want to quit the application? + +Following items are pending: + + + + SearchTextDialog + + + Find or replace + Find or replace + + + + Find: + Find: + + + + Case sensitive + Case sensitive + + + + Search backwards + Search backwards + + + + Regular expression matching + Regular expression matching + + + + Replace && +find next + Replace && +find next + + + + Replace with: + Replace with: + + + + Replace all + Replace all + + + + Find + Find + + + + SortDialog + + + Sort by columns + Sort by columns + + + + + Column + Column + + + + + Order + Order + + + + Sort by: %1 + Sort by: %1 + + + + Move column up + Move column up + + + + Move column down + Move column down + + + + SqlEditor + + + Wrap words + sql editor + Wrap words + + + + Cut + sql editor + Cut + + + + Copy + sql editor + Copy + + + + Paste + sql editor + Paste + + + + Delete + sql editor + Delete + + + + Select all + sql editor + Select all + + + + Undo + sql editor + Undo + + + + Redo + sql editor + Redo + + + + Complete + sql editor + Complete + + + + Format SQL + sql editor + Format SQL + + + + Save SQL to file + sql editor + Save SQL to file + + + + Select file to save SQL + sql editor + Select file to save SQL + + + + Load SQL from file + sql editor + Load SQL from file + + + + Delete line + sql editor + Delete line + + + + Move block down + sql editor + Move block down + + + + Move block up + sql editor + Move block up + + + + Copy block down + sql editor + Copy block down + + + + Copy up down + sql editor + Copy up down + + + + Find + sql editor + Find + + + + Find next + sql editor + Find next + + + + Find previous + sql editor + Find previous + + + + Replace + sql editor + Replace + + + + Toggle comment + sql editor + Toggle comment + + + + Increase font size + sql editor + Increase font size + + + + Decrease font size + sql editor + Decrease font size + + + + Could not open file '%1' for writing: %2 + Could not open file '%1' for writing: %2 + + + + Saved SQL contents to file: %1 + Saved SQL contents to file: %1 + + + + Syntax completion can be used only when a valid database is set for the SQL editor. + Syntax completion can be used only when a valid database is set for the SQL editor. + + + + Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. + Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. + + + + Save to file + Save to file + + + + SQL scripts (*.sql);;All files (*) + SQL scripts (*.sql);;All files (*) + + + + Open file + Open file + + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Reached the end of document. Hit the find again to restart the search. + Reached the end of document. Hit the find again to restart the search. + + + + SqlQueryItem + + + Committing error: + data view tooltip + Committing error: + + + + Column: + data view tooltip + Column: + + + + Data type: + data view + Data type: + + + + Table: + data view tooltip + Table: + + + + Constraints: + data view tooltip + Constraints: + + + + SqlQueryItemDelegate + + + + + + Cannot edit this cell. Details: %1 + Cannot edit this cell. Details: %1 + + + + The row is marked for deletion. + The row is marked for deletion. + + + + + Structure of this table has changed since last data was loaded. Reload the data to proceed. + Structure of this table has changed since last data was loaded. Reload the data to proceed. + + + + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). + + + + Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. + Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. + + + + SqlQueryModel + + + + Only one query can be executed simultaneously. + Only one query can be executed simultaneously. + + + + Cannot execute query on undefined or invalid database. + Cannot execute query on undefined or invalid database. + + + + Cannot execute empty query. + Cannot execute empty query. + + + + Uncommitted data + Uncommitted data + + + + There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. + There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. + + + + Cannot commit the data for a cell that refers to the already closed database. + Cannot commit the data for a cell that refers to the already closed database. + + + + Could not begin transaction on the database. Details: %1 + Could not begin transaction on the database. Details: %1 + + + + An error occurred while committing the transaction: %1 + An error occurred while committing the transaction: %1 + + + + An error occurred while rolling back the transaction: %1 + An error occurred while rolling back the transaction: %1 + + + + Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. + Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. + + + + An error occurred while committing the data: %1 + An error occurred while committing the data: %1 + + + + Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. + Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. + + + + + Error while executing SQL query on database '%1': %2 + Error while executing SQL query on database '%1': %2 + + + + Error while loading query results: %1 + Error while loading query results: %1 + + + + Insert multiple rows + Insert multiple rows + + + + Number of rows to insert: + Number of rows to insert: + + + + Delete rows + Delete rows + + + + You're about to delete newly inserted rows that are not committed yet. Row numbers: %1 +Such deletion will be permanent. Are you sure you want to delete them? + You're about to delete newly inserted rows that are not committed yet. Row numbers: %1 +Such deletion will be permanent. Are you sure you want to delete them? + + + + SqlQueryView + + + Go to referenced row in... + Go to referenced row in... + + + + Copy + Copy + + + + Copy with headers + Copy with headers + + + + Copy as... + Copy as... + + + + Paste + Paste + + + + Paste as... + Paste as... + + + + Set NULL values + Set NULL values + + + + Erase values + Erase values + + + + Commit + Commit + + + + Rollback + Rollback + + + + Commit selected cells + Commit selected cells + + + + Rollback selected cells + Rollback selected cells + + + + Edit current cell inline + Edit current cell inline + + + + Define columns to sort by + Define columns to sort by + + + + Remove custom sorting + Remove custom sorting + + + + Insert row + Insert row + + + + Insert multiple rows + Insert multiple rows + + + + Delete selected row + Delete selected row + + + + Adjust height of rows + Adjust height of rows + + + + Increase font size + data view + Increase font size + + + + Decrease font size + data view + Decrease font size + + + + Invert selection + data view + Invert selection + + + + Edit value in editor + Edit value in editor + + + + Show value in a viewer + Show value in a viewer + + + + Generate query for selected cells + Generate query for selected cells + + + + No items selected to paste clipboard contents to. + No items selected to paste clipboard contents to. + + + + Cannot paste data. Details: %1 + Cannot paste data. Details: %1 + + + + Structure of at least one table used has changed since last data was loaded. Reload the data to proceed. + Structure of at least one table used has changed since last data was loaded. Reload the data to proceed. + + + + Cannot paste to a cell. Details: %1 + Cannot paste to a cell. Details: %1 + + + + The row is marked for deletion. + The row is marked for deletion. + + + + Cannot paste to column %1. Details: %2 + Cannot paste to column %1. Details: %2 + + + + Go to referenced row in table '%1' + Go to referenced row in table '%1' + + + + table '%1' + table '%1' + + + + Referenced row (%1) + Referenced row (%1) + + + + Trim pasted text? + Trim pasted text? + + + + The pasted text contains leading or trailing white space. Trim it automatically? + The pasted text contains leading or trailing white space. Trim it automatically? + + + + Paste "NULL" as null value? + Paste "NULL" as null value? + + + + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + + + + Edit value + Edit value + + + + SqlTableModel + + + Error while committing new row: %1 + Error while committing new row: %1 + + + + Error while deleting row from table %1: %2 + Error while deleting row from table %1: %2 + + + + SqliteExtensionEditor + + + Filter extensions + Filter extensions + + + + Leave empty to use default function + Leave empty to use default function + + + + Extension file + Extension file + + + + Initialization function + Initialization function + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Extension manager window has uncommitted modifications. + Extension manager window has uncommitted modifications. + + + + Extension manager + Extension manager + + + + Commit all extension changes + Commit all extension changes + + + + Rollback all extension changes + Rollback all extension changes + + + + Add new extension + Add new extension + + + + Remove selected extension + Remove selected extension + + + + Editing extensions manual + Editing extensions manual + + + + File with given path does not exist or is not readable. + File with given path does not exist or is not readable. + + + + Unable to load extension: %1 + Unable to load extension: %1 + + + + Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. + Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. + + + + Dynamic link libraries (*.dll);;All files (*) + Dynamic link libraries (*.dll);;All files (*) + + + + Shared objects (*.so);;All files (*) + Shared objects (*.so);;All files (*) + + + + Dynamic libraries (*.dylib);;All files (*) + Dynamic libraries (*.dylib);;All files (*) + + + + All files (*) + All files (*) + + + + Open file + Open file + + + + StatusField + + + Status + Status + + + + Copy + Copy + + + + Clear + Clear + + + + TableConstraintsModel + + + Type + table constraints + Type + + + + Details + table constraints + Details + + + + Name + table constraints + Name + + + + TableForeignKeyPanel + + + Foreign table: + Foreign table: + + + + Columns + Columns + + + + Local column + Local column + + + + Foreign column + Foreign column + + + + Reactions + Reactions + + + + Deferred foreign key + Deferred foreign key + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + Pick the foreign column. + Pick the foreign column. + + + + Pick the foreign table. + Pick the foreign table. + + + + Select at least one foreign column. + Select at least one foreign column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + Foreign column + table constraints + Foreign column + + + + TablePrimaryKeyAndUniquePanel + + + Columns + Columns + + + + Column + Column + + + + Collation + Collation + + + + Sort + Sort + + + + Valid only for a single column with INTEGER data type + Valid only for a single column with INTEGER data type + + + + Autoincrement + Autoincrement + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + On conflict + On conflict + + + + Collate + table constraints + Collate + + + + Sort order + table constraints + Sort order + + + + Select at least one column. + Select at least one column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + TableStructureModel + + + Name + table structure columns + Name + + + + Data type + table structure columns + Data type + + + + Primary +Key + table structure columns + Primary +Key + + + + Foreign +Key + table structure columns + Foreign +Key + + + + Unique + table structure columns + Unique + + + + Check + table structure columns + Check + + + + Not +NULL + table structure columns + Not +NULL + + + + Collate + table structure columns + Collate + + + + Generated + table structure columns + Generated + + + + Default value + table structure columns + Default value + + + + TableWindow + + + Structure + Structure + + + + Table name: + Table name: + + + + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + + + + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + + + + + Data + Data + + + + Constraints + Constraints + + + + Indexes + Indexes + + + + Triggers + Triggers + + + + DDL + DDL + + + + Export table + table window + Export table + + + + Import data to table + table window + Import data to table + + + + Populate table + table window + Populate table + + + + Refresh structure + table window + Refresh structure + + + + Commit structure changes + table window + Commit structure changes + + + + Rollback structure changes + table window + Rollback structure changes + + + + Add column + table window + Add column + + + + Edit column + table window + Edit column + + + + + Delete column + table window + Delete column + + + + Move column up + table window + Move column up + + + + Move column down + table window + Move column down + + + + Create similar table + table window + Create similar table + + + + Reset autoincrement value + table window + Reset autoincrement value + + + + Add table constraint + table window + Add table constraint + + + + Edit table constraint + table window + Edit table constraint + + + + Delete table constraint + table window + Delete table constraint + + + + Move table constraint up + table window + Move table constraint up + + + + Move table constraint down + table window + Move table constraint down + + + + Add table primary key + table window + Add table primary key + + + + Add table foreign key + table window + Add table foreign key + + + + Add table unique constraint + table window + Add table unique constraint + + + + Add table check constraint + table window + Add table check constraint + + + + Refresh index list + table window + Refresh index list + + + + + Create index + table window + Create index + + + + Edit index + table window + Edit index + + + + Delete index + table window + Delete index + + + + Refresh trigger list + table window + Refresh trigger list + + + + + Create trigger + table window + Create trigger + + + + Edit trigger + table window + Edit trigger + + + + Delete trigger + table window + Delete trigger + + + + Are you sure you want to delete column '%1'? + table window + Are you sure you want to delete column '%1'? + + + + Following problems will take place while modifying the table. +Would you like to proceed? + table window + Following problems will take place while modifying the table. +Would you like to proceed? + + + + Table modification + table window + Table modification + + + + Could not load data for table %1. Error details: %2 + Could not load data for table %1. Error details: %2 + + + + Could not process the %1 table correctly. Unable to open a table window. + Could not process the %1 table correctly. Unable to open a table window. + + + + Database + Database + + + + Could not restore window %1, because no database or table was stored in session for this window. + Could not restore window %1, because no database or table was stored in session for this window. + + + + Could not restore window '%1', because no database or table was stored in session for this window. + Could not restore window '%1', because no database or table was stored in session for this window. + + + + Could not restore window '%1', because database %2 could not be resolved. + Could not restore window '%1', because database %2 could not be resolved. + + + + Could not restore window '%1', because the table %2 doesn't exist in the database %3. + Could not restore window '%1', because the table %2 doesn't exist in the database %3. + + + + + New table %1 + New table %1 + + + + Committed changes for table '%1' successfully. + Committed changes for table '%1' successfully. + + + + Committed changes for table '%1' (named before '%2') successfully. + Committed changes for table '%1' (named before '%2') successfully. + + + + Could not commit table structure. Error message: %1 + table window + Could not commit table structure. Error message: %1 + + + + Reset autoincrement + Reset autoincrement + + + + Are you sure you want to reset autoincrement value for table '%1'? + Are you sure you want to reset autoincrement value for table '%1'? + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + An error occurred while trying to reset autoincrement value for table '%1': %2 + + + + Autoincrement value for table '%1' has been reset successfully. + Autoincrement value for table '%1' has been reset successfully. + + + + Empty name + Empty name + + + + A blank name for the table is allowed in SQLite, but it is not recommended. +Are you sure you want to create a table with blank name? + A blank name for the table is allowed in SQLite, but it is not recommended. +Are you sure you want to create a table with blank name? + + + + Cannot create a table without at least one column. + Cannot create a table without at least one column. + + + + Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. + Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. + + + + Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. + Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. + + + + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 + + + + Are you sure you want to delete table constraint '%1'? + table window + Are you sure you want to delete table constraint '%1'? + + + + Delete constraint + table window + Delete constraint + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + Uncommitted changes + Uncommitted changes + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + + + + Go back to structure tab + Go back to structure tab + + + + Commit modifications and browse data. + Commit modifications and browse data. + + + + Name + table window indexes + Name + + + + Unique + table window indexes + Unique + + + + Columns + table window indexes + Columns + + + + Partial index condition + table window indexes + Partial index condition + + + + Name + table window triggers + Name + + + + Event + table window triggers + Event + + + + Condition + table window triggers + Condition + + + + Details + table window triggers + Details + + + + Table window "%1" has uncommitted structure modifications and data. + Table window "%1" has uncommitted structure modifications and data. + + + + Table window "%1" has uncommitted data. + Table window "%1" has uncommitted data. + + + + Table window "%1" has uncommitted structure modifications. + Table window "%1" has uncommitted structure modifications. + + + + TriggerColumnsDialog + + + Trigger columns + Trigger columns + + + + Triggering columns: + Triggering columns: + + + + Select all + Select all + + + + Deselect all + Deselect all + + + + TriggerDialog + + + + Trigger + Trigger + + + + On table: + On table: + + + + Action: + Action: + + + + + <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> + <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> + + + + Pre-condition: + Pre-condition: + + + + The scope is still not fully supported by the SQLite database. + The scope is still not fully supported by the SQLite database. + + + + Trigger name: + Trigger name: + + + + When: + When: + + + + List of columns for UPDATE OF action. + List of columns for UPDATE OF action. + + + + Scope: + Scope: + + + + Code: + Code: + + + + Trigger statements to be executed. + Trigger statements to be executed. + + + + DDL + DDL + + + + On view: + On view: + + + + Could not process trigger %1 correctly. Unable to open a trigger dialog. + Could not process trigger %1 correctly. Unable to open a trigger dialog. + + + + Enter a valid condition. + Enter a valid condition. + + + + Enter a valid trigger code. + Enter a valid trigger code. + + + + Error + trigger dialog + Error + + + + An error occurred while executing SQL statements: +%1 + An error occurred while executing SQL statements: +%1 + + + + VersionConvertSummaryDialog + + + Database version convert + Database version convert + + + + Following changes to the SQL statements will be made: + Following changes to the SQL statements will be made: + + + + Before + Before + + + + After + After + + + + ViewWindow + + + Query + Query + + + + View name: + View name: + + + + Output column names + Output column names + + + + + Data + Data + + + + Triggers + Triggers + + + + DDL + DDL + + + + + Could not restore window '%1', because no database or view was stored in session for this window. + Could not restore window '%1', because no database or view was stored in session for this window. + + + + Could not restore window '%1', because database %2 could not be resolved. + Could not restore window '%1', because database %2 could not be resolved. + + + + Could not restore window '%1', because database %2 could not be open. + Could not restore window '%1', because database %2 could not be open. + + + + Could not restore window '%1', because the view %2 doesn't exist in the database %3. + Could not restore window '%1', because the view %2 doesn't exist in the database %3. + + + + + New view %1 + New view %1 + + + + Database + Database + + + + Refresh the view + view window + Refresh the view + + + + Commit the view changes + view window + Commit the view changes + + + + Rollback the view changes + view window + Rollback the view changes + + + + Explicit column names + Explicit column names + + + + Generate output column names automatically basing on result columns of the view. + Generate output column names automatically basing on result columns of the view. + + + + Add column + view window + Add column + + + + Edit column + view window + Edit column + + + + Delete column + view window + Delete column + + + + Move column up + view window + Move column up + + + + Move column down + view window + Move column down + + + + Refresh trigger list + view window + Refresh trigger list + + + + Create new trigger + view window + Create new trigger + + + + Edit selected trigger + view window + Edit selected trigger + + + + Delete selected trigger + view window + Delete selected trigger + + + + View window "%1" has uncommitted structure modifications and data. + View window "%1" has uncommitted structure modifications and data. + + + + View window "%1" has uncommitted data. + View window "%1" has uncommitted data. + + + + View window "%1" has uncommitted structure modifications. + View window "%1" has uncommitted structure modifications. + + + + Could not load data for view %1. Error details: %2 + Could not load data for view %1. Error details: %2 + + + + Uncommitted changes + Uncommitted changes + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + + + + Go back to structure tab + Go back to structure tab + + + + Commit modifications and browse data. + Commit modifications and browse data. + + + + View '%1' was committed successfully. + View '%1' was committed successfully. + + + + Committed changes for view '%1' successfully. + Committed changes for view '%1' successfully. + + + + Committed changes for view '%1' (named before '%2') successfully. + Committed changes for view '%1' (named before '%2') successfully. + + + + Could not commit view changes. Error message: %1 + view window + Could not commit view changes. Error message: %1 + + + + Override columns + Override columns + + + + Currently defined columns will be overriden. Do you want to continue? + Currently defined columns will be overriden. Do you want to continue? + + + + Could not determinate columns returned from the view. The query is problably incomplete or contains errors. + Could not determinate columns returned from the view. The query is problably incomplete or contains errors. + + + + Name + view window triggers + Name + + + + Instead of + view window triggers + Instead of + + + + Condition + view window triggers + Condition + + + + Details + table window triggers + Details + + + + Could not process the %1 view correctly. Unable to open a view window. + Could not process the %1 view correctly. Unable to open a view window. + + + + Empty name + Empty name + + + + A blank name for the view is allowed in SQLite, but it is not recommended. +Are you sure you want to create a view with blank name? + A blank name for the view is allowed in SQLite, but it is not recommended. +Are you sure you want to create a view with blank name? + + + + The SELECT statement could not be parsed. Please correct the query and retry. +Details: %1 + The SELECT statement could not be parsed. Please correct the query and retry. +Details: %1 + + + + The view could not be modified due to internal SQLiteStudio error. Please report this! + The view could not be modified due to internal SQLiteStudio error. Please report this! + + + + The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. + The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. + + + + Following problems will take place while modifying the view. +Would you like to proceed? + view window + Following problems will take place while modifying the view. +Would you like to proceed? + + + + View modification + view window + View modification + + + + WidgetCover + + + Interrupt + Interrupt + + + diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_no_NO.ts b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_no_NO.ts new file mode 100644 index 0000000..d6bf3b3 --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_no_NO.ts @@ -0,0 +1,7111 @@ + + + + + AboutDialog + + + About SQLiteStudio and licenses + About SQLiteStudio and licenses + + + + About + About + + + + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + + + + Licenses + Licenses + + + + Environment + Environment + + + + Icon directories + Icon directories + + + + Form directories + Form directories + + + + SQLite extension directories + SQLite extension directories + + + + Plugin directories + Plugin directories + + + + Configuration directory + Configuration directory + + + + Application directory + Application directory + + + + Qt version: + Qt version: + + + + SQLite 3 version: + SQLite 3 version: + + + + Portable distribution. + Portable distribution. + + + + MacOS X application bundle distribution. + MacOS X application bundle distribution. + + + + Operating system managed distribution. + Operating system managed distribution. + + + + <h3>Table of contents:</h3><ol>%2</ol> + <h3>Table of contents:</h3><ol>%2</ol> + + + + BindParamsDialog + + + Query parameters + Query parameters + + + + Please provide values for query parameters + Please provide values for query parameters + + + + CodeSnippetEditor + + + Filter snippets + Filter snippets + + + + + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + + + + + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + + + + Snippet name + Snippet name + + + + Code assistant shortcut + Code assistant shortcut + + + + Snippet code + Snippet code + + + + Code Snippets editor window has uncommitted modifications. + Code Snippets editor window has uncommitted modifications. + + + + Code Snippets editor + Code Snippets editor + + + + Commit all snippet changes + Commit all snippet changes + + + + Rollback all snippet changes + Rollback all snippet changes + + + + Create new snippet + Create new snippet + + + + Delete selected snippet + Delete selected snippet + + + + Move the snippet up + Move the snippet up + + + + Move the snippet down + Move the snippet down + + + + Code snippets manual + Code snippets manual + + + + Enter a non-empty, unique name of the snippet. + Enter a non-empty, unique name of the snippet. + + + + Enter a non-empty snippet content. + Enter a non-empty snippet content. + + + + This hotkey is not unique in context of a code assistant. + This hotkey is not unique in context of a code assistant. + + + + CollationsEditor + + + Filter collations + Filter collations + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Implementation code: + Implementation code: + + + + Collation name: + Collation name: + + + + Implementation language: + Implementation language: + + + + Collations editor + Collations editor + + + + Commit all collation changes + Commit all collation changes + + + + Rollback all collation changes + Rollback all collation changes + + + + Create new collation + Create new collation + + + + Delete selected collation + Delete selected collation + + + + Editing collations manual + Editing collations manual + + + + Enter a non-empty, unique name of the collation. + Enter a non-empty, unique name of the collation. + + + + Pick the implementation language. + Pick the implementation language. + + + + Enter a non-empty implementation code. + Enter a non-empty implementation code. + + + + Collations editor window has uncommitted modifications. + Collations editor window has uncommitted modifications. + + + + ColorButton + + + Pick a color + Pick a color + + + + ColumnCollatePanel + + + Collation name: + Collation name: + + + + Named constraint: + Named constraint: + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + Enter a collation name. + Enter a collation name. + + + + ColumnDefaultPanel + + + Default value: + Default value: + + + + Named constraint: + Named constraint: + + + + Enter a default value expression. + Enter a default value expression. + + + + Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. + Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. + + + + Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. + Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ColumnDialog + + + Column + Column + + + + Name and type + Name and type + + + + Scale + Scale + + + + Precision + Precision + + + + Data type: + Data type: + + + + Column name: + Column name: + + + + Size: + Size: + + + + Constraints + Constraints + + + + Generated value + Generated value + + + + Unique + Unique + + + + + + + + + + + Configure + Configure + + + + Foreign Key + Foreign Key + + + + Collate + Collate + + + + Not NULL + Not NULL + + + + Check condition + Check condition + + + + Primary Key + Primary Key + + + + Default + Default + + + + Advanced mode + Advanced mode + + + + Add constraint + column dialog + Add constraint + + + + Edit constraint + column dialog + Edit constraint + + + + + Delete constraint + column dialog + Delete constraint + + + + Move constraint up + column dialog + Move constraint up + + + + Move constraint down + column dialog + Move constraint down + + + + Add a primary key + column dialog + Add a primary key + + + + Add a foreign key + column dialog + Add a foreign key + + + + Add an unique constraint + column dialog + Add an unique constraint + + + + Add a check constraint + column dialog + Add a check constraint + + + + Add a not null constraint + column dialog + Add a not null constraint + + + + Add a collate constraint + column dialog + Add a collate constraint + + + + Add a generated value constraint + column dialog + Add a generated value constraint + + + + Add a default constraint + column dialog + Add a default constraint + + + + Are you sure you want to delete constraint '%1'? + column dialog + Are you sure you want to delete constraint '%1'? + + + + Correct the constraint's configuration. + Correct the constraint's configuration. + + + + Scale is not allowed for INTEGER PRIMARY KEY columns. + Scale is not allowed for INTEGER PRIMARY KEY columns. + + + + Precision cannot be defined without the scale. + Precision cannot be defined without the scale. + + + + Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. + Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. + + + + INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. + INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. + + + + Precision is not allowed for INTEGER PRIMARY KEY columns. + Precision is not allowed for INTEGER PRIMARY KEY columns. + + + + Could not match valid STRICT table datatype from declared type: %1. + Could not match valid STRICT table datatype from declared type: %1. + + + + ColumnDialogConstraintsModel + + + Type + column dialog constraints + Type + + + + Name + column dialog constraints + Name + + + + Details + column dialog constraints + Details + + + + ColumnForeignKeyPanel + + + Foreign table: + Foreign table: + + + + Foreign column: + Foreign column: + + + + Reactions + Reactions + + + + Deferred foreign key + Deferred foreign key + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + Pick the foreign table. + Pick the foreign table. + + + + Pick the foreign column. + Pick the foreign column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ColumnGeneratedPanel + + + Generating code: + Generating code: + + + + Explicit type: + Explicit type: + + + + Use "GENERATED ALWAYS" keywords + Use "GENERATED ALWAYS" keywords + + + + Named constraint: + Named constraint: + + + + Enter the column value generating expression. + Enter the column value generating expression. + + + + Invalid value generating expression: %1. + Invalid value generating expression: %1. + + + + Invalid value generating expression. + Invalid value generating expression. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ColumnPrimaryKeyPanel + + + Autoincrement + Autoincrement + + + + Sort order: + Sort order: + + + + Named constraint: + Named constraint: + + + + On conflict: + On conflict: + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + Descending order is not allowed with AUTOINCREMENT. + Descending order is not allowed with AUTOINCREMENT. + + + + ColumnUniqueAndNotNullPanel + + + Named constraint: + Named constraint: + + + + On conflict: + On conflict: + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + CompleterWindow + + + Column: %1 + completer statusbar + Column: %1 + + + + Table: %1 + completer statusbar + Table: %1 + + + + Index: %1 + completer statusbar + Index: %1 + + + + Trigger: %1 + completer statusbar + Trigger: %1 + + + + View: %1 + completer statusbar + View: %1 + + + + Database: %1 + completer statusbar + Database: %1 + + + + Keyword: %1 + completer statusbar + Keyword: %1 + + + + Function: %1 + completer statusbar + Function: %1 + + + + Operator: %1 + completer statusbar + Operator: %1 + + + + String + completer statusbar + String + + + + Number + completer statusbar + Number + + + + Binary data + completer statusbar + Binary data + + + + Collation: %1 + completer statusbar + Collation: %1 + + + + Pragma function: %1 + completer statusbar + Pragma function: %1 + + + + Insert a code snippet + Insert a code snippet + + + + ConfigDialog + + + + Configuration + Configuration + + + + Search + Search + + + + General + General + + + + Keyboard shortcuts + Keyboard shortcuts + + + + Look & feel + Look & feel + + + + Style + Style + + + + Fonts + Fonts + + + + Code colors + Code colors + + + + + Database list + Database list + + + + Code assistant + Code assistant + + + + Data browsing + Data browsing + + + + Data editors + Data editors + + + + Plugins + Plugins + + + + Code formatters + Code formatters + + + + If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. + If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. + + + + Sort table columns alphabetically + Sort table columns alphabetically + + + + Expand tables node when connected to a database + Expand tables node when connected to a database + + + + <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> + <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> + + + + Display additional labels on the list + Display additional labels on the list + + + + For regular tables labels will show number of columns, indexes and triggers for each of tables. + For regular tables labels will show number of columns, indexes and triggers for each of tables. + + + + Display labels for regular tables + Display labels for regular tables + + + + Virtual tables will be marked with a 'virtual' label. + Virtual tables will be marked with a 'virtual' label. + + + + Display labels for virtual tables + Display labels for virtual tables + + + + Expand views node when connected to a database + Expand views node when connected to a database + + + + If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) + If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) + + + + Sort objects (tables, indexes, triggers and views) alphabetically + Sort objects (tables, indexes, triggers and views) alphabetically + + + + Display system tables and indexes on the list + Display system tables and indexes on the list + + + + Database dialog window + Database dialog window + + + + <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> + <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> + + + + Do not mark database to be "permanent" by default + Do not mark database to be "permanent" by default + + + + <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> + <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> + + + + Try to bypass dialog completly when dropping database file onto the list + Try to bypass dialog completly when dropping database file onto the list + + + + Data browsing and editing + Data browsing and editing + + + + + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + + + + Number of memorized table populating configurations + Number of memorized table populating configurations + + + + Data column width + Data column width + + + + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + + + + Enlarge column when entering value longer than current width + Enlarge column when entering value longer than current width + + + + <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> + <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> + + + + Number of data rows per page: + Number of data rows per page: + + + + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> + + + + Show column and row details tooltip in data view + Show column and row details tooltip in data view + + + + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + + + + Keep NULL value when entering empty value + Keep NULL value when entering empty value + + + + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> + + + + Use DEFAULT value (if defined), when committing NULL value + Use DEFAULT value (if defined), when committing NULL value + + + + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + + + + Limit number of rows for in case of dozens of columns + Limit number of rows for in case of dozens of columns + + + + Inserting new row in data grid + Inserting new row in data grid + + + + Before currently selected row + Before currently selected row + + + + After currently selected row + After currently selected row + + + + At the end of data view + At the end of data view + + + + Table windows + Table windows + + + + <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> + <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> + + + + Open Table Windows with the data tab for start + Open Table Windows with the data tab for start + + + + <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> + <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> + + + + Place data tab as first tab in a Table Window + Place data tab as first tab in a Table Window + + + + View windows + View windows + + + + <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> + <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> + + + + Open View Windows with the data tab for start + Open View Windows with the data tab for start + + + + <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> + <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> + + + + Place data tab as first tab in a View Window + Place data tab as first tab in a View Window + + + + Data types + Data types + + + + Available editors: + Available editors: + + + + Editors selected for this data type: + Editors selected for this data type: + + + + Schema editing + Schema editing + + + + Number of DDL changes kept in history. + Number of DDL changes kept in history. + + + + DDL history size: + DDL history size: + + + + Don't show DDL preview dialog when committing schema changes + Don't show DDL preview dialog when committing schema changes + + + + SQL queries + SQL queries + + + + + Number of queries kept in the history. + Number of queries kept in the history. + + + + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> + + + + History size: + History size: + + + + + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> + + + + Execute only the query under the cursor + Execute only the query under the cursor + + + + Number of memorized query parameters + Number of memorized query parameters + + + + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + + + + Use scientific notation for real numbers in the grid view + Use scientific notation for real numbers in the grid view + + + + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + + + + Limit automatic data column width to (in pixels): + Limit automatic data column width to (in pixels): + + + + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + + + + Keep at least the width to show complete column name + Keep at least the width to show complete column name + + + + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + + + + Wrap lines in SQL editor + Wrap lines in SQL editor + + + + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + + + + Highlight current query + Highlight current query + + + + Updates + Updates + + + + Automatically check for updates at startup + Automatically check for updates at startup + + + + Session + Session + + + + Restore last session (active MDI windows) after startup + Restore last session (active MDI windows) after startup + + + + Allow multiple instances of the application at the same time + Allow multiple instances of the application at the same time + + + + Status Field + Status Field + + + + <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> + <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> + + + + Always open Status panel when new message is printed + Always open Status panel when new message is printed + + + + Code syntax colors + Code syntax colors + + + + Keyword foreground + Keyword foreground + + + + Regular foreground + Regular foreground + + + + String foreground + String foreground + + + + Comment foreground + Comment foreground + + + + Valid objects foreground + Valid objects foreground + + + + Current query background + Current query background + + + + Bind parameter foreground + Bind parameter foreground + + + + Current line background + Current line background + + + + Matched parenthesis background + Matched parenthesis background + + + + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + + + + Number foreground + Number foreground + + + + BLOB value foreground + BLOB value foreground + + + + Matched parenthesis foreground + Matched parenthesis foreground + + + + Reset to defaults + Reset to defaults + + + + Filter shortcuts by name or key combination + Filter shortcuts by name or key combination + + + + Action + Action + + + + Key combination + Key combination + + + + + Language + Language + + + + Changing language requires application restart to take effect. + Changing language requires application restart to take effect. + + + + Compact layout + Compact layout + + + + <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> + <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> + + + + Use compact layout + Use compact layout + + + + Main window dock areas + Main window dock areas + + + + Left and right areas occupy corners + Left and right areas occupy corners + + + + Top and bottom areas occupy corners + Top and bottom areas occupy corners + + + + Hide built-in plugins + Hide built-in plugins + + + + Current style: + Current style: + + + + Preview + Preview + + + + Enabled + Enabled + + + + Disabled + Disabled + + + + Active formatter plugin + Active formatter plugin + + + + SQL editor font + SQL editor font + + + + Database list font + Database list font + + + + Database list additional label font + Database list additional label font + + + + Data view font + Data view font + + + + Status field font + Status field font + + + + Code assistant settings + Code assistant settings + + + + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + + + + Automatically trigger the assistant after a dot is typed after an object name + Automatically trigger the assistant after a dot is typed after an object name + + + + Description: + plugin details + Description: + + + + Category: + plugin details + Category: + + + + Version: + plugin details + Version: + + + + Author: + plugin details + Author: + + + + Internal name: + plugin details + Internal name: + + + + Dependencies: + plugin details + Dependencies: + + + + Conflicts: + plugin details + Conflicts: + + + + Plugin details + Plugin details + + + + Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. + Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. + + + + %1 (built-in) + plugins manager in configuration dialog + %1 (built-in) + + + + Details + Details + + + + No plugins in this category. + No plugins in this category. + + + + Add new data type + Add new data type + + + + Rename selected data type + Rename selected data type + + + + Delete selected data type + Delete selected data type + + + + Help for configuring data type editors + Help for configuring data type editors + + + + Clear hotkey for this action + Clear hotkey for this action + + + + Restore original hotkey for this action + Restore original hotkey for this action + + + + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + + + + ConstraintCheckPanel + + + The condition + The condition + + + + Named constraint: + Named constraint: + + + + On conflict + On conflict + + + + Enter a valid condition. + Enter a valid condition. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ConstraintDialog + + + New constraint + constraint dialog + New constraint + + + + Create + constraint dialog + Create + + + + Edit constraint + dialog window + Edit constraint + + + + Apply + constraint dialog + Apply + + + + Primary key + table constraints + Primary key + + + + Foreign key + table constraints + Foreign key + + + + Unique + table constraints + Unique + + + + Not NULL + table constraints + Not NULL + + + + Check + table constraints + Check + + + + Generated + table constraints + Generated + + + + Collate + table constraints + Collate + + + + Default + table constraints + Default + + + + ConstraintTabModel + + + Table + table constraints + Table + + + + Column (%1) + table constraints + Column (%1) + + + + Scope + table constraints + Scope + + + + Type + table constraints + Type + + + + Details + table constraints + Details + + + + Name + table constraints + Name + + + + CssDebugDialog + + + SQLiteStudio CSS console + SQLiteStudio CSS console + + + + DataView + + + Filter data + data view + Filter data + + + + Grid view + Grid view + + + + Form view + Form view + + + + Refresh table data + data view + Refresh table data + + + + First page + data view + First page + + + + Previous page + data view + Previous page + + + + Next page + data view + Next page + + + + Last page + data view + Last page + + + + Commit changes for selected cells + data view + Commit changes for selected cells + + + + Rollback changes for selected cells + data view + Rollback changes for selected cells + + + + Show grid view of results + data view + Show grid view of results + + + + Show form view of results + data view + Show form view of results + + + + Filter by text (if contains) + data view + Filter by text (if contains) + + + + Filter strictly by text (if equals) + data view + Filter strictly by text (if equals) + + + + Tabs on top + data view + Tabs on top + + + + Tabs at bottom + data view + Tabs at bottom + + + + Place new rows above selected row + data view + Place new rows above selected row + + + + Place new rows below selected row + data view + Place new rows below selected row + + + + Place new rows at the end of the data view + data view + Place new rows at the end of the data view + + + + Total number of rows is being counted. +Browsing other pages will be possible after the row counting is done. + Total number of rows is being counted. +Browsing other pages will be possible after the row counting is done. + + + + Row: %1 + Row: %1 + + + + Filter + Filter + + + + Hit Enter key or press "Apply filter" button on toolbar to apply new value. + Hit Enter key or press "Apply filter" button on toolbar to apply new value. + + + + Filter by the Regular Expression + data view + Filter by the Regular Expression + + + + Filter by SQL expression + data view + Filter by SQL expression + + + + Show filter inputs per column + data view + Show filter inputs per column + + + + Apply filter + data view + Apply filter + + + + DbDialog + + + Database + Database + + + + Database type + Database type + + + + Database driver + Database driver + + + + + File + File + + + + Name (on the list) + Name (on the list) + + + + Options + Options + + + + <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> + aasfd + <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> + + + + Permanent (keep it in configuration) + Permanent (keep it in configuration) + + + + Test connection + Test connection + + + + Select new or existing file on local computer + Select new or existing file on local computer + + + + Browse + Browse + + + + Database type not selected. + Database type not selected. + + + + Database path not specified. + Database path not specified. + + + + Enter an unique database name. + Enter an unique database name. + + + + This name is already in use. Please enter unique name. + This name is already in use. Please enter unique name. + + + + <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> + <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> + + + + Enter a database file path. + Enter a database file path. + + + + This database is already on the list under name: %1 + This database is already on the list under name: %1 + + + + Select a database type. + Select a database type. + + + + DbObjectDialogs + + + Delete table + Delete table + + + + Are you sure you want to delete table %1? + Are you sure you want to delete table %1? + + + + Delete index + Delete index + + + + Are you sure you want to delete index %1? + Are you sure you want to delete index %1? + + + + Delete trigger + Delete trigger + + + + Are you sure you want to delete trigger %1? + Are you sure you want to delete trigger %1? + + + + Delete view + Delete view + + + + Are you sure you want to delete view %1? + Are you sure you want to delete view %1? + + + + + Error while dropping %1: %2 + Error while dropping %1: %2 + + + + Delete objects + Delete objects + + + + Are you sure you want to delete following objects: +%1 + Are you sure you want to delete following objects: +%1 + + + + Cannot start transaction. Details: %1 + Cannot start transaction. Details: %1 + + + + Cannot commit transaction. Details: %1 + Cannot commit transaction. Details: %1 + + + + DbTree + + + Databases + Databases + + + + Filter by name + Filter by name + + + + Copy + Copy + + + + Paste + Paste + + + + Select all + Select all + + + + Create a group + Create a group + + + + Delete the group + Delete the group + + + + Rename the group + Rename the group + + + + &Add a database + &Add a database + + + + &Edit the database + &Edit the database + + + + &Remove the database + &Remove the database + + + + &Connect to the database + &Connect to the database + + + + &Disconnect from the database + &Disconnect from the database + + + + Import + Import + + + + &Export the database + &Export the database + + + + Vac&uum + Vac&uum + + + + &Integrity check + &Integrity check + + + + Create a &table + Create a &table + + + + Edit the t&able + Edit the t&able + + + + Delete the ta&ble + Delete the ta&ble + + + + Export the table + Export the table + + + + Import into the table + Import into the table + + + + Populate table + Populate table + + + + Create similar table + Create similar table + + + + Reset autoincrement sequence + Reset autoincrement sequence + + + + Create an &index + Create an &index + + + + Edit the i&ndex + Edit the i&ndex + + + + Delete the in&dex + Delete the in&dex + + + + Create a trig&ger + Create a trig&ger + + + + Edit the trigg&er + Edit the trigg&er + + + + Delete the trigge&r + Delete the trigge&r + + + + Create a &view + Create a &view + + + + Edit the v&iew + Edit the v&iew + + + + Delete the vi&ew + Delete the vi&ew + + + + Add a column + Add a column + + + + Edit the column + Edit the column + + + + Delete the column + Delete the column + + + + Delete selected items + Delete selected items + + + + Clear filter + Clear filter + + + + &Refresh all database schemas + &Refresh all database schemas + + + + Re&fresh selected database schema + Re&fresh selected database schema + + + + + Erase table data + Erase table data + + + + Open file's directory + Open file's directory + + + + Execute SQL from file + Execute SQL from file + + + + Increase font size + database list + Increase font size + + + + Decrease font size + database list + Decrease font size + + + + + Database + Database + + + + Grouping + Grouping + + + + Generate query for table + Generate query for table + + + + + Create group + Create group + + + + Group name + Group name + + + + Entry with name %1 already exists in group %2. + Entry with name %1 already exists in group %2. + + + + Delete group + Delete group + + + + Are you sure you want to delete group %1? +All objects from this group will be moved to parent group. + Are you sure you want to delete group %1? +All objects from this group will be moved to parent group. + + + + Are you sure you want to remove database '%1' from the list? + Are you sure you want to remove database '%1' from the list? + + + + Are you sure you want to remove following databases from the list: +%1 + Are you sure you want to remove following databases from the list: +%1 + + + + Remove database + Remove database + + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Vacuum (%1) + Vacuum (%1) + + + + Integrity check (%1) + Integrity check (%1) + + + + Reset autoincrement + Reset autoincrement + + + + Are you sure you want to reset autoincrement value for table '%1'? + Are you sure you want to reset autoincrement value for table '%1'? + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + An error occurred while trying to reset autoincrement value for table '%1': %2 + + + + Autoincrement value for table '%1' has been reset successfully. + Autoincrement value for table '%1' has been reset successfully. + + + + Are you sure you want to delete all data from table(s): %1? + Are you sure you want to delete all data from table(s): %1? + + + + An error occurred while trying to delete data from table '%1': %2 + An error occurred while trying to delete data from table '%1': %2 + + + + All data has been deleted for table '%1'. + All data has been deleted for table '%1'. + + + + Following objects will be deleted: %1. + Following objects will be deleted: %1. + + + + Following databases will be removed from list: %1. + Following databases will be removed from list: %1. + + + + Remainig objects from deleted group will be moved in place where the group used to be. + Remainig objects from deleted group will be moved in place where the group used to be. + + + + %1<br><br>Are you sure you want to continue? + %1<br><br>Are you sure you want to continue? + + + + Delete objects + Delete objects + + + + DbTreeItemDelegate + + + error + dbtree labels + error + + + + (system table) + database tree label + (system table) + + + + (virtual) + virtual table label + (virtual) + + + + (system index) + database tree label + (system index) + + + + DbTreeModel + + + Database: %1 + dbtree tooltip + Database: %1 + + + + URI: + dbtree tooltip + URI: + + + + Version: + dbtree tooltip + Version: + + + + File size: + dbtree tooltip + File size: + + + + Encoding: + dbtree tooltip + Encoding: + + + + Error: + dbtree tooltip + Error: + + + + Table : %1 + dbtree tooltip + Table : %1 + + + + Columns (%1): + dbtree tooltip + Columns (%1): + + + + Indexes (%1): + dbtree tooltip + Indexes (%1): + + + + Triggers (%1): + dbtree tooltip + Triggers (%1): + + + + Copy + Copy + + + + Move + Move + + + + Include data + Include data + + + + Include indexes + Include indexes + + + + Include triggers + Include triggers + + + + Abort + Abort + + + + Could not add dropped database file '%1' automatically. Manual setup is necessary. + Could not add dropped database file '%1' automatically. Manual setup is necessary. + + + + Referenced tables + Referenced tables + + + + Do you want to include following referenced tables as well: +%1 + Do you want to include following referenced tables as well: +%1 + + + + Name conflict + Name conflict + + + + Following object already exists in the target database. +Please enter new, unique name, or press '%1' to abort the operation: + Following object already exists in the target database. +Please enter new, unique name, or press '%1' to abort the operation: + + + + SQL statements conversion + SQL statements conversion + + + + Following error occurred while converting SQL statements to the target SQLite version: + Following error occurred while converting SQL statements to the target SQLite version: + + + + Would you like to ignore those errors and proceed? + Would you like to ignore those errors and proceed? + + + + DdlHistoryWindow + + + Filter by database: + Filter by database: + + + + Clear entire history + Clear entire history + + + + -- Queries executed on database %1 (%2) +-- Date and time of execution: %3 +%4 + -- Queries executed on database %1 (%2) +-- Date and time of execution: %3 +%4 + + + + Clear history + Clear history + + + + Are you sure you want to erase entire DDL history? + Are you sure you want to erase entire DDL history? + + + + DDL history + DDL history + + + + DdlPreviewDialog + + + Queries to be executed + Queries to be executed + + + + Don't show again + Don't show again + + + + DebugConsole + + + SQLiteStudio Debug Console + SQLiteStudio Debug Console + + + + EditorWindow + + + SQL editor + SQL editor + + + + Query + Query + + + + History + History + + + + Results in the separate tab + Results in the separate tab + + + + Results below the query + Results below the query + + + + + SQL editor %1 + SQL editor %1 + + + + + Results + Results + + + + Execute query + Execute query + + + + Explain query + Explain query + + + + Clear execution history + sql editor + Clear execution history + + + + Export results + sql editor + Export results + + + + Create view from query + sql editor + Create view from query + + + + Previous database + Previous database + + + + Next database + Next database + + + + Show next tab + sql editor + Show next tab + + + + Show previous tab + sql editor + Show previous tab + + + + Focus results below + sql editor + Focus results below + + + + Focus SQL editor above + sql editor + Focus SQL editor above + + + + Delete selected SQL history entries + sql editor + Delete selected SQL history entries + + + + Execute single query under cursor + Execute single query under cursor + + + + Execute all queries in editor + Execute all queries in editor + + + + Active database (%1/%2) + Active database (%1/%2) + + + + Query finished in %1 second(s). Rows affected: %2 + Query finished in %1 second(s). Rows affected: %2 + + + + Query finished in %1 second(s). + Query finished in %1 second(s). + + + + Clear execution history + Clear execution history + + + + Are you sure you want to erase the entire SQL execution history? This cannot be undone. + Are you sure you want to erase the entire SQL execution history? This cannot be undone. + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + No database selected in the SQL editor. Cannot create a view for unknown database. + No database selected in the SQL editor. Cannot create a view for unknown database. + + + + Editor window "%1" has uncommitted data. + Editor window "%1" has uncommitted data. + + + + ErrorsConfirmDialog + + + Errors + Errors + + + + Following errors occured: + Following errors occured: + + + + Would you like to proceed? + Would you like to proceed? + + + + ExecFromFileDialog + + + Execute SQL from file + Execute SQL from file + + + + Input file + Input file + + + + Path to file + Path to file + + + + Browse for file + Browse for file + + + + Options + Options + + + + File encoding + File encoding + + + + Skip failing SQL statements + Skip failing SQL statements + + + + SQL scripts (*.sql);;All files (*) + SQL scripts (*.sql);;All files (*) + + + + Execute SQL file + Execute SQL file + + + + Please provide file to be executed. + Please provide file to be executed. + + + + Provided file does not exist or cannot be read. + Provided file does not exist or cannot be read. + + + + ExportDialog + + + Export + Export + + + + What do you want to export? + What do you want to export? + + + + A database + A database + + + + A single table + A single table + + + + Query results + Query results + + + + Table to export + Table to export + + + + Database + Database + + + + Table + Table + + + + Options + Options + + + + When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. + When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. + + + + Export table data + Export table data + + + + Export table indexes + Export table indexes + + + + Export table triggers + Export table triggers + + + + Note, that exporting table indexes and triggers may be unsupported by some output formats. + Note, that exporting table indexes and triggers may be unsupported by some output formats. + + + + Select database objects to export + Select database objects to export + + + + Export data from tables + Export data from tables + + + + Select all + Select all + + + + Deselect all + Deselect all + + + + + Database: + Database: + + + + Query to export results for + Query to export results for + + + + Query to be executed for results: + Query to be executed for results: + + + + Export format and options + Export format and options + + + + Export format + Export format + + + + Output + Output + + + + Exported file path + Exported file path + + + + Clipboard + Clipboard + + + + File + File + + + + Exported text encoding: + Exported text encoding: + + + + Export format options + Export format options + + + + Cancel + Cancel + + + + + + Select database to export. + Select database to export. + + + + Select table to export. + Select table to export. + + + + Enter valid query to export. + Enter valid query to export. + + + + Select at least one object to export. + Select at least one object to export. + + + + You must provide a file name to export to. + You must provide a file name to export to. + + + + Path you provided is an existing directory. You cannot overwrite it. + Path you provided is an existing directory. You cannot overwrite it. + + + + The directory '%1' does not exist. + The directory '%1' does not exist. + + + + The file '%1' exists and will be overwritten. + The file '%1' exists and will be overwritten. + + + + All files (*) + All files (*) + + + + Pick file to export to + Pick file to export to + + + + Internal error during export. This is a bug. Please report it. + Internal error during export. This is a bug. Please report it. + + + + FileExecErrorsDialog + + + Execution errors + Execution errors + + + + Following errors were encountered during execution of SQL statements from the file: + Following errors were encountered during execution of SQL statements from the file: + + + + SQL + SQL + + + + Error + Error + + + + Statements that were executed successfully were commited. + Statements that were executed successfully were commited. + + + + Statements that were executed successfully were rolled back. + Statements that were executed successfully were rolled back. + + + + FkComboBox + + + Cannot edit this cell. Details: %1 + Cannot edit this cell. Details: %1 + + + + FontEdit + + + Choose font + font configuration + Choose font + + + + Form + + + Active SQL formatter plugin + Active SQL formatter plugin + + + + FormView + + + Commit row + form view + Commit row + + + + Rollback row + form view + Rollback row + + + + First row + form view + First row + + + + Previous row + form view + Previous row + + + + Next row + form view + Next row + + + + Last row + form view + Last row + + + + Insert new row + form view + Insert new row + + + + Delete current row + form view + Delete current row + + + + FunctionsEditor + + + Filter functions + Filter functions + + + + Input arguments + Input arguments + + + + Undefined + Undefined + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Type: + Type: + + + + Function name: + Function name: + + + + Implementation language: + Implementation language: + + + + Deterministic + Deterministic + + + + Initialization code: + Initialization code: + + + + + Function implementation code: + Function implementation code: + + + + Final step implementation code: + Final step implementation code: + + + + SQL functions editor + SQL functions editor + + + + Commit all function changes + Commit all function changes + + + + Rollback all function changes + Rollback all function changes + + + + Create new function + Create new function + + + + Delete selected function + Delete selected function + + + + Custom SQL functions manual + Custom SQL functions manual + + + + Add function argument + Add function argument + + + + Rename function argument + Rename function argument + + + + Delete function argument + Delete function argument + + + + Move function argument up + Move function argument up + + + + Move function argument down + Move function argument down + + + + Scalar + Scalar + + + + Aggregate + Aggregate + + + + Enter a non-empty, unique name of the function. + Enter a non-empty, unique name of the function. + + + + Pick the implementation language. + Pick the implementation language. + + + + Per step code: + Per step code: + + + + Enter a non-empty implementation code. + Enter a non-empty implementation code. + + + + argument + new function argument name in function editor window + argument + + + + Functions editor window has uncommitted modifications. + Functions editor window has uncommitted modifications. + + + + ImportDialog + + + Import data + Import data + + + + Table to import to + Table to import to + + + + Table + Table + + + + Database + Database + + + + Data source to import from + Data source to import from + + + + Data source type + Data source type + + + + Options + Options + + + + Text encoding: + Text encoding: + + + + Input file: + Input file: + + + + <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> + <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> + + + + Ignore errors + Ignore errors + + + + Data source options + Data source options + + + + Cancel + Cancel + + + + If you type table name that doesn't exist, it will be created. + If you type table name that doesn't exist, it will be created. + + + + Enter the table name + Enter the table name + + + + Select import plugin. + Select import plugin. + + + + You must provide a file to import from. + You must provide a file to import from. + + + + The file '%1' does not exist. + The file '%1' does not exist. + + + + Path you provided is a directory. A regular file is required. + Path you provided is a directory. A regular file is required. + + + + Pick file to import from + Pick file to import from + + + + IndexDialog + + + + Index + Index + + + + Column + Column + + + + Sort + Sort + + + + Collation + Collation + + + + On table: + On table: + + + + Delete selected indexed expression + Delete selected indexed expression + + + + Moves selected index column up in the order, making it more significant in the index. + Moves selected index column up in the order, making it more significant in the index. + + + + Moves selected index column down in the order, making it less significant in the index. + Moves selected index column down in the order, making it less significant in the index. + + + + Partial index condition + Partial index condition + + + + Unique index + Unique index + + + + Index name: + Index name: + + + + Edit selected indexed expression + Edit selected indexed expression + + + + Add indexed expression + Add indexed expression + + + + DDL + DDL + + + + Tried to open index dialog for closed or inexisting database. + Tried to open index dialog for closed or inexisting database. + + + + Could not process index %1 correctly. Unable to open an index dialog. + Could not process index %1 correctly. Unable to open an index dialog. + + + + Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. + Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. + + + + Pick the table for the index. + Pick the table for the index. + + + + Select at least one column. + Select at least one column. + + + + Enter a valid condition. + Enter a valid condition. + + + + default + index dialog + default + + + + Sort order + table constraints + Sort order + + + + + Error + index dialog + Error + + + + Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? + Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? + + + + An error occurred while executing SQL statements: +%1 + An error occurred while executing SQL statements: +%1 + + + + IndexExprColumnDialog + + + Indexed expression + Indexed expression + + + + Expression to index + Expression to index + + + + This expression is already indexed by the index. + This expression is already indexed by the index. + + + + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. + + + + Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. + Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. + + + + It's forbidden to use 'SELECT' statements in indexed expressions. + It's forbidden to use 'SELECT' statements in indexed expressions. + + + + Enter an indexed expression. + Enter an indexed expression. + + + + Invalid expression. + Invalid expression. + + + + LanguageDialog + + + Language + Language + + + + Please choose language: + Please choose language: + + + + MainWindow + + + Database toolbar + Database toolbar + + + + Structure toolbar + Structure toolbar + + + + Tools + Tools + + + + Window list + Window list + + + + View toolbar + View toolbar + + + + Configuration widgets + Configuration widgets + + + + Syntax highlighting engines + Syntax highlighting engines + + + + Data editors + Data editors + + + + Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. + Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. + + + + Running in debug mode. Debug messages are printed to the standard output. + Running in debug mode. Debug messages are printed to the standard output. + + + + You need to restart application to make the language change take effect. + You need to restart application to make the language change take effect. + + + + Open SQL &editor + Open SQL &editor + + + + Open DDL &history + Open DDL &history + + + + Open SQL &functions editor + Open SQL &functions editor + + + + Open code &snippets editor + Open code &snippets editor + + + + Open &collations editor + Open &collations editor + + + + Open ex&tension manager + Open ex&tension manager + + + + &Import + &Import + + + + E&xport + E&xport + + + + Open confi&guration dialog + Open confi&guration dialog + + + + &Tile windows + &Tile windows + + + + Tile windows &horizontally + Tile windows &horizontally + + + + Tile windows &vertically + Tile windows &vertically + + + + &Cascade windows + &Cascade windows + + + + Next window + Next window + + + + Previous window + Previous window + + + + Hide status field + Hide status field + + + + Close &all windows + Close &all windows + + + + Re&store recently closed window + Re&store recently closed window + + + + Close current &window + Close current &window + + + + Close &other windows + Close &other windows + + + + Close windows on the &left + Close windows on the &left + + + + Close windows on the &right + Close windows on the &right + + + + Re&name selected window + Re&name selected window + + + + Open Debug Console + Open Debug Console + + + + Open CSS Console + Open CSS Console + + + + Report a &bug + Report a &bug + + + + D&onate + D&onate + + + + Propose a new &feature + Propose a new &feature + + + + &About + &About + + + + &Licenses + &Licenses + + + + Open home &page + Open home &page + + + + User &Manual + User &Manual + + + + SQLite &documentation + SQLite &documentation + + + + Bugs and feature &requests + Bugs and feature &requests + + + + Quit + Quit + + + + Check for &updates + Check for &updates + + + + &Database + menubar + &Database + + + + &Structure + menubar + &Structure + + + + &View + menubar + &View + + + + Window list + menubar view menu + Window list + + + + &Tools + menubar + &Tools + + + + &Help + &Help + + + + Could not set style: %1 + main window + Could not set style: %1 + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + Rename window + Rename window + + + + Enter new name for the window: + Enter new name for the window: + + + + New updates are available. <a href="%1">Click here for details</a>. + New updates are available. <a href="%1">Click here for details</a>. + + + + You're running the most recent version. No updates are available. + You're running the most recent version. No updates are available. + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + Database passed in command line parameters (%1) was already on the list under name: %2 + + + + Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 + Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + MdiWindow + + + Uncommitted changes + Uncommitted changes + + + + Close anyway + Close anyway + + + + Don't close + Don't close + + + + MultiEditor + + + Null value + multieditor + Null value + + + + Configure editors for this data type + Configure editors for this data type + + + + Open another tab + Open another tab + + + + Foreign Key + Foreign Key + + + + Data editor plugin '%1' not loaded, while it is defined for editing '%2' data type. + Data editor plugin '%1' not loaded, while it is defined for editing '%1' data type. {1'?} {2'?} {1' or 2'?} + + + + Deleted + multieditor + Deleted + + + + Read only + multieditor + Read only + + + + MultiEditorBoolPlugin + + + Boolean + Boolean + + + + MultiEditorDatePlugin + + + Date + Date + + + + MultiEditorDateTimePlugin + + + Date & time + Date & time + + + + MultiEditorHexPlugin + + + Hex + Hex + + + + MultiEditorNumericPlugin + + + Number + numeric multi editor tab name + Number + + + + MultiEditorText + + + Tab changes focus + Tab changes focus + + + + Cut + Cut + + + + Copy + Copy + + + + Paste + Paste + + + + Delete + Delete + + + + Undo + Undo + + + + Redo + Redo + + + + MultiEditorTextPlugin + + + Text + Text + + + + MultiEditorTimePlugin + + + Time + Time + + + + NewConstraintDialog + + + New constraint + New constraint + + + + + Primary Key + new constraint dialog + Primary Key + + + + + Foreign Key + new constraint dialog + Foreign Key + + + + + Unique + new constraint dialog + Unique + + + + + Check + new constraint dialog + Check + + + + Not NULL + new constraint dialog + Not NULL + + + + Collate + new constraint dialog + Collate + + + + Generated + new constraint dialog + Generated + + + + Default + new constraint dialog + Default + + + + NewVersionDialog + + + SQLiteStudio updates + SQLiteStudio updates + + + + New version is available! + New version is available! + + + + Download new version! + Download new version! + + + + New version package will be downloaded. It will be up to you to install it whenever you're ready. + New version package will be downloaded. It will be up to you to install it whenever you're ready. + + + + Open SQLiteStudio home page. + Open SQLiteStudio home page. + + + + Read release notes && download package yourself. + Read release notes && download package yourself. + + + + Just close this window. + Just close this window. + + + + Check for updates on startup + Check for updates on startup + + + + Not now. + Not now. + + + + PopulateConfigDialog + + + Populating configuration + Populating configuration + + + + Configuring <b>%1</b> for column <b>%2</b> + Configuring <b>%1</b> for column <b>%2</b> + + + + PopulateDialog + + + Populate table + Populate table + + + + Database + Database + + + + Table + Table + + + + Columns + Columns + + + + Number of rows to populate: + Number of rows to populate: + + + + Populate + populate dialog button + Populate + + + + Abort + Abort + + + + Configure + Configure + + + + Populating configuration for this column is invalid or incomplete. + Populating configuration for this column is invalid or incomplete. + + + + Select database with table to populate + Select database with table to populate + + + + Select table to populate + Select table to populate + + + + You have to select at least one column. + You have to select at least one column. + + + + QObject + + + Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). + Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). + + + + The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. + The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. + + + + Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. + Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. + + + + Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. + Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. + + + + Cannot edit results of query other than %1. + Cannot edit results of query other than %1. + + + + Cannot edit columns that are result of aggregated %1 statements. + Cannot edit columns that are result of aggregated %1 statements. + + + + Cannot edit columns that are result of %1 statement. + Cannot edit columns that are result of %1 statement. + + + + Cannot edit columns that are result of common table expression statement (%1). + Cannot edit columns that are result of common table expression statement (%1). + + + + Cannot edit table generated columns. + Cannot edit table generated columns. + + + + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). + + + + + + + on conflict: %1 + data view tooltip + on conflict: %1 + + + + references table %1, column %2 + data view tooltip + references table %1, column %2 + + + + condition: %1 + data view tooltip + condition: %1 + + + + collation name: %1 + data view tooltip + collation name: %1 + + + + Data grid view + Data grid view + + + + Edit current cell inline + Edit current cell inline + + + + Copy cell(s) contents to clipboard + Copy cell(s) contents to clipboard + + + + Copy cell(s) contents together with header to clipboard + Copy cell(s) contents together with header to clipboard + + + + Paste cell(s) contents from clipboard + Paste cell(s) contents from clipboard + + + + Set empty value to selected cell(s) + Set empty value to selected cell(s) + + + + Set NULL value to selected cell(s) + Set NULL value to selected cell(s) + + + + Commit changes to cell(s) contents + Commit changes to cell(s) contents + + + + Rollback changes to cell(s) contents + Rollback changes to cell(s) contents + + + + Delete selected data row + Delete selected data row + + + + Insert new data row + Insert new data row + + + + Open contents of selected cell in a separate editor + Open contents of selected cell in a separate editor + + + + Toggle the height adjustment of rows + Toggle the height adjustment of rows + + + + Increase font size + data view + Increase font size + + + + Decrease font size + data view + Decrease font size + + + + Total pages available: %1 + Total pages available: %1 + + + + Total rows loaded: %1 + Total rows loaded: %1 + + + + Data view (both grid and form) + Data view (both grid and form) + + + + Refresh data + Refresh data + + + + Switch to grid view of the data + Switch to grid view of the data + + + + Switch to form view of the data + Switch to form view of the data + + + + Database list + Database list + + + + Delete selected item + Delete selected item + + + + Clear filter contents + Clear filter contents + + + + Refresh schema + Refresh schema + + + + Refresh all schemas + Refresh all schemas + + + + Add database + Add database + + + + Select all items + Select all items + + + + Copy selected item(s) + Copy selected item(s) + + + + + + Paste from clipboard + Paste from clipboard + + + + Increase font size + database list + Increase font size + + + + Decrease font size + database list + Decrease font size + + + + Tables + Tables + + + + Indexes + Indexes + + + + Triggers + Triggers + + + + Views + Views + + + + Columns + Columns + + + + Data form view + Data form view + + + + Commit changes for current row + Commit changes for current row + + + + Rollback changes for current row + Rollback changes for current row + + + + Go to first row on current page + Go to first row on current page + + + + Go to next row + Go to next row + + + + Go to previous row + Go to previous row + + + + Go to last row on current page + Go to last row on current page + + + + Insert new row + Insert new row + + + + Delete current row + Delete current row + + + + Main window + Main window + + + + Open SQL editor + Open SQL editor + + + + Open DDL history window + Open DDL history window + + + + Open snippets editor window + Open snippets editor window + + + + Open function editor window + Open function editor window + + + + Open collation editor window + Open collation editor window + + + + Open extension manager window + Open extension manager window + + + + Previous window + Previous window + + + + Next window + Next window + + + + Hide status area + Hide status area + + + + Open user manual + Open user manual + + + + Open configuration dialog + Open configuration dialog + + + + Open Debug Console + Open Debug Console + + + + Open CSS Console + Open CSS Console + + + + Open the About dialog + Open the About dialog + + + + Quit the application + Quit the application + + + + Cell text value editor + Cell text value editor + + + + + Cut selected text + Cut selected text + + + + + Copy selected text + Copy selected text + + + + + Delete selected text + Delete selected text + + + + + Undo + Undo + + + + + Redo + Redo + + + + SQL editor input field + SQL editor input field + + + + Select whole editor contents + Select whole editor contents + + + + Save contents into a file + Save contents into a file + + + + Load contents from a file + Load contents from a file + + + + Find in text + Find in text + + + + Find next + Find next + + + + Find previous + Find previous + + + + Replace in text + Replace in text + + + + Delete current line + Delete current line + + + + Request code assistant + Request code assistant + + + + Format contents + Format contents + + + + Move selected block of text one line down + Move selected block of text one line down + + + + Move selected block of text one line up + Move selected block of text one line up + + + + Copy selected block of text and paste it a line below + Copy selected block of text and paste it a line below + + + + Copy selected block of text and paste it a line above + Copy selected block of text and paste it a line above + + + + Toggle comment + Toggle comment + + + + Increase font size + sql editor + Increase font size + + + + Decrease font size + sql editor + Decrease font size + + + + All SQLite databases + All SQLite databases + + + + All files + All files + + + + Select database file + Select database file + + + + Select + Select + + + + File type + File type + + + + SQL editor window + SQL editor window + + + + Execute query + Execute query + + + + Execute single query under cursor + Execute single query under cursor + + + + Execute all queries in editor + Execute all queries in editor + + + + Execute "%1" query + Execute "%1" query + + + + Switch current working database to previous on the list + Switch current working database to previous on the list + + + + Switch current working database to next on the list + Switch current working database to next on the list + + + + Go to next editor tab + Go to next editor tab + + + + Go to previous editor tab + Go to previous editor tab + + + + Move keyboard input focus to the results view below + Move keyboard input focus to the results view below + + + + Move keyboard input focus to the SQL editor above + Move keyboard input focus to the SQL editor above + + + + Delete selected SQL history entries + Delete selected SQL history entries + + + + Table window + Table window + + + + Commit the table structure + Commit the table structure + + + + Rollback pending changes in the table structure + Rollback pending changes in the table structure + + + + Refresh table structure + Refresh table structure + + + + Add new column + Add new column + + + + Edit selected column + Edit selected column + + + + Delete selected column + Delete selected column + + + + Export table data + Export table data + + + + Import data to the table + Import data to the table + + + + Add new table constraint + Add new table constraint + + + + Edit selected table constraint + Edit selected table constraint + + + + Delete selected table constraint + Delete selected table constraint + + + + Refresh table index list + Refresh table index list + + + + Add new index + Add new index + + + + Edit selected index + Edit selected index + + + + Delete selected index + Delete selected index + + + + Refresh table trigger list + Refresh table trigger list + + + + + Add new trigger + Add new trigger + + + + + Edit selected trigger + Edit selected trigger + + + + + Delete selected trigger + Delete selected trigger + + + + + Go to next tab + Go to next tab + + + + + Go to previous tab + Go to previous tab + + + + A view window + A view window + + + + Commit the view's query + Commit the view's query + + + + Rollback pending changes in the view's query + Rollback pending changes in the view's query + + + + Refresh view trigger list + Refresh view trigger list + + + + Execute the view's query + Execute the view's query + + + + A code snippets editor window + A code snippets editor window + + + + + + + Commit the pending changes + Commit the pending changes + + + + + + + Rollback the pending changes + Rollback the pending changes + + + + A collation editor window + A collation editor window + + + + A function editor window + A function editor window + + + + A SQLite extension editor window + A SQLite extension editor window + + + + QuitConfirmDialog + + + Uncommitted changes + Uncommitted changes + + + + Are you sure you want to quit the application? + +Following items are pending: + Are you sure you want to quit the application? + +Following items are pending: + + + + SearchTextDialog + + + Find or replace + Find or replace + + + + Find: + Find: + + + + Case sensitive + Case sensitive + + + + Search backwards + Search backwards + + + + Regular expression matching + Regular expression matching + + + + Replace && +find next + Replace && +find next + + + + Replace with: + Replace with: + + + + Replace all + Replace all + + + + Find + Find + + + + SortDialog + + + Sort by columns + Sort by columns + + + + + Column + Column + + + + + Order + Order + + + + Sort by: %1 + Sort by: %1 + + + + Move column up + Move column up + + + + Move column down + Move column down + + + + SqlEditor + + + Wrap words + sql editor + Wrap words + + + + Cut + sql editor + Cut + + + + Copy + sql editor + Copy + + + + Paste + sql editor + Paste + + + + Delete + sql editor + Delete + + + + Select all + sql editor + Select all + + + + Undo + sql editor + Undo + + + + Redo + sql editor + Redo + + + + Complete + sql editor + Complete + + + + Format SQL + sql editor + Format SQL + + + + Save SQL to file + sql editor + Save SQL to file + + + + Select file to save SQL + sql editor + Select file to save SQL + + + + Load SQL from file + sql editor + Load SQL from file + + + + Delete line + sql editor + Delete line + + + + Move block down + sql editor + Move block down + + + + Move block up + sql editor + Move block up + + + + Copy block down + sql editor + Copy block down + + + + Copy up down + sql editor + Copy up down + + + + Find + sql editor + Find + + + + Find next + sql editor + Find next + + + + Find previous + sql editor + Find previous + + + + Replace + sql editor + Replace + + + + Toggle comment + sql editor + Toggle comment + + + + Increase font size + sql editor + Increase font size + + + + Decrease font size + sql editor + Decrease font size + + + + Could not open file '%1' for writing: %2 + Could not open file '%1' for writing: %2 + + + + Saved SQL contents to file: %1 + Saved SQL contents to file: %1 + + + + Syntax completion can be used only when a valid database is set for the SQL editor. + Syntax completion can be used only when a valid database is set for the SQL editor. + + + + Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. + Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. + + + + Save to file + Save to file + + + + SQL scripts (*.sql);;All files (*) + SQL scripts (*.sql);;All files (*) + + + + Open file + Open file + + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Reached the end of document. Hit the find again to restart the search. + Reached the end of document. Hit the find again to restart the search. + + + + SqlQueryItem + + + Committing error: + data view tooltip + Committing error: + + + + Column: + data view tooltip + Column: + + + + Data type: + data view + Data type: + + + + Table: + data view tooltip + Table: + + + + Constraints: + data view tooltip + Constraints: + + + + SqlQueryItemDelegate + + + + + + Cannot edit this cell. Details: %1 + Cannot edit this cell. Details: %1 + + + + The row is marked for deletion. + The row is marked for deletion. + + + + + Structure of this table has changed since last data was loaded. Reload the data to proceed. + Structure of this table has changed since last data was loaded. Reload the data to proceed. + + + + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). + + + + Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. + Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. + + + + SqlQueryModel + + + + Only one query can be executed simultaneously. + Only one query can be executed simultaneously. + + + + Cannot execute query on undefined or invalid database. + Cannot execute query on undefined or invalid database. + + + + Cannot execute empty query. + Cannot execute empty query. + + + + Uncommitted data + Uncommitted data + + + + There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. + There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. + + + + Cannot commit the data for a cell that refers to the already closed database. + Cannot commit the data for a cell that refers to the already closed database. + + + + Could not begin transaction on the database. Details: %1 + Could not begin transaction on the database. Details: %1 + + + + An error occurred while committing the transaction: %1 + An error occurred while committing the transaction: %1 + + + + An error occurred while rolling back the transaction: %1 + An error occurred while rolling back the transaction: %1 + + + + Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. + Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. + + + + An error occurred while committing the data: %1 + An error occurred while committing the data: %1 + + + + Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. + Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. + + + + + Error while executing SQL query on database '%1': %2 + Error while executing SQL query on database '%1': %2 + + + + Error while loading query results: %1 + Error while loading query results: %1 + + + + Insert multiple rows + Insert multiple rows + + + + Number of rows to insert: + Number of rows to insert: + + + + Delete rows + Delete rows + + + + You're about to delete newly inserted rows that are not committed yet. Row numbers: %1 +Such deletion will be permanent. Are you sure you want to delete them? + You're about to delete newly inserted rows that are not committed yet. Row numbers: %1 +Such deletion will be permanent. Are you sure you want to delete them? + + + + SqlQueryView + + + Go to referenced row in... + Go to referenced row in... + + + + Copy + Copy + + + + Copy with headers + Copy with headers + + + + Copy as... + Copy as... + + + + Paste + Paste + + + + Paste as... + Paste as... + + + + Set NULL values + Set NULL values + + + + Erase values + Erase values + + + + Commit + Commit + + + + Rollback + Rollback + + + + Commit selected cells + Commit selected cells + + + + Rollback selected cells + Rollback selected cells + + + + Edit current cell inline + Edit current cell inline + + + + Define columns to sort by + Define columns to sort by + + + + Remove custom sorting + Remove custom sorting + + + + Insert row + Insert row + + + + Insert multiple rows + Insert multiple rows + + + + Delete selected row + Delete selected row + + + + Adjust height of rows + Adjust height of rows + + + + Increase font size + data view + Increase font size + + + + Decrease font size + data view + Decrease font size + + + + Invert selection + data view + Invert selection + + + + Edit value in editor + Edit value in editor + + + + Show value in a viewer + Show value in a viewer + + + + Generate query for selected cells + Generate query for selected cells + + + + No items selected to paste clipboard contents to. + No items selected to paste clipboard contents to. + + + + Cannot paste data. Details: %1 + Cannot paste data. Details: %1 + + + + Structure of at least one table used has changed since last data was loaded. Reload the data to proceed. + Structure of at least one table used has changed since last data was loaded. Reload the data to proceed. + + + + Cannot paste to a cell. Details: %1 + Cannot paste to a cell. Details: %1 + + + + The row is marked for deletion. + The row is marked for deletion. + + + + Cannot paste to column %1. Details: %2 + Cannot paste to column %1. Details: %2 + + + + Go to referenced row in table '%1' + Go to referenced row in table '%1' + + + + table '%1' + table '%1' + + + + Referenced row (%1) + Referenced row (%1) + + + + Trim pasted text? + Trim pasted text? + + + + The pasted text contains leading or trailing white space. Trim it automatically? + The pasted text contains leading or trailing white space. Trim it automatically? + + + + Paste "NULL" as null value? + Paste "NULL" as null value? + + + + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + + + + Edit value + Edit value + + + + SqlTableModel + + + Error while committing new row: %1 + Error while committing new row: %1 + + + + Error while deleting row from table %1: %2 + Error while deleting row from table %1: %2 + + + + SqliteExtensionEditor + + + Filter extensions + Filter extensions + + + + Leave empty to use default function + Leave empty to use default function + + + + Extension file + Extension file + + + + Initialization function + Initialization function + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Extension manager window has uncommitted modifications. + Extension manager window has uncommitted modifications. + + + + Extension manager + Extension manager + + + + Commit all extension changes + Commit all extension changes + + + + Rollback all extension changes + Rollback all extension changes + + + + Add new extension + Add new extension + + + + Remove selected extension + Remove selected extension + + + + Editing extensions manual + Editing extensions manual + + + + File with given path does not exist or is not readable. + File with given path does not exist or is not readable. + + + + Unable to load extension: %1 + Unable to load extension: %1 + + + + Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. + Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. + + + + Dynamic link libraries (*.dll);;All files (*) + Dynamic link libraries (*.dll);;All files (*) + + + + Shared objects (*.so);;All files (*) + Shared objects (*.so);;All files (*) + + + + Dynamic libraries (*.dylib);;All files (*) + Dynamic libraries (*.dylib);;All files (*) + + + + All files (*) + All files (*) + + + + Open file + Open file + + + + StatusField + + + Status + Status + + + + Copy + Copy + + + + Clear + Clear + + + + TableConstraintsModel + + + Type + table constraints + Type + + + + Details + table constraints + Details + + + + Name + table constraints + Name + + + + TableForeignKeyPanel + + + Foreign table: + Foreign table: + + + + Columns + Columns + + + + Local column + Local column + + + + Foreign column + Foreign column + + + + Reactions + Reactions + + + + Deferred foreign key + Deferred foreign key + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + Pick the foreign column. + Pick the foreign column. + + + + Pick the foreign table. + Pick the foreign table. + + + + Select at least one foreign column. + Select at least one foreign column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + Foreign column + table constraints + Foreign column + + + + TablePrimaryKeyAndUniquePanel + + + Columns + Columns + + + + Column + Column + + + + Collation + Collation + + + + Sort + Sort + + + + Valid only for a single column with INTEGER data type + Valid only for a single column with INTEGER data type + + + + Autoincrement + Autoincrement + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + On conflict + On conflict + + + + Collate + table constraints + Collate + + + + Sort order + table constraints + Sort order + + + + Select at least one column. + Select at least one column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + TableStructureModel + + + Name + table structure columns + Name + + + + Data type + table structure columns + Data type + + + + Primary +Key + table structure columns + Primary +Key + + + + Foreign +Key + table structure columns + Foreign +Key + + + + Unique + table structure columns + Unique + + + + Check + table structure columns + Check + + + + Not +NULL + table structure columns + Not +NULL + + + + Collate + table structure columns + Collate + + + + Generated + table structure columns + Generated + + + + Default value + table structure columns + Default value + + + + TableWindow + + + Structure + Structure + + + + Table name: + Table name: + + + + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + + + + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + + + + + Data + Data + + + + Constraints + Constraints + + + + Indexes + Indexes + + + + Triggers + Triggers + + + + DDL + DDL + + + + Export table + table window + Export table + + + + Import data to table + table window + Import data to table + + + + Populate table + table window + Populate table + + + + Refresh structure + table window + Refresh structure + + + + Commit structure changes + table window + Commit structure changes + + + + Rollback structure changes + table window + Rollback structure changes + + + + Add column + table window + Add column + + + + Edit column + table window + Edit column + + + + + Delete column + table window + Delete column + + + + Move column up + table window + Move column up + + + + Move column down + table window + Move column down + + + + Create similar table + table window + Create similar table + + + + Reset autoincrement value + table window + Reset autoincrement value + + + + Add table constraint + table window + Add table constraint + + + + Edit table constraint + table window + Edit table constraint + + + + Delete table constraint + table window + Delete table constraint + + + + Move table constraint up + table window + Move table constraint up + + + + Move table constraint down + table window + Move table constraint down + + + + Add table primary key + table window + Add table primary key + + + + Add table foreign key + table window + Add table foreign key + + + + Add table unique constraint + table window + Add table unique constraint + + + + Add table check constraint + table window + Add table check constraint + + + + Refresh index list + table window + Refresh index list + + + + + Create index + table window + Create index + + + + Edit index + table window + Edit index + + + + Delete index + table window + Delete index + + + + Refresh trigger list + table window + Refresh trigger list + + + + + Create trigger + table window + Create trigger + + + + Edit trigger + table window + Edit trigger + + + + Delete trigger + table window + Delete trigger + + + + Are you sure you want to delete column '%1'? + table window + Are you sure you want to delete column '%1'? + + + + Following problems will take place while modifying the table. +Would you like to proceed? + table window + Following problems will take place while modifying the table. +Would you like to proceed? + + + + Table modification + table window + Table modification + + + + Could not load data for table %1. Error details: %2 + Could not load data for table %1. Error details: %2 + + + + Could not process the %1 table correctly. Unable to open a table window. + Could not process the %1 table correctly. Unable to open a table window. + + + + Database + Database + + + + Could not restore window %1, because no database or table was stored in session for this window. + Could not restore window %1, because no database or table was stored in session for this window. + + + + Could not restore window '%1', because no database or table was stored in session for this window. + Could not restore window '%1', because no database or table was stored in session for this window. + + + + Could not restore window '%1', because database %2 could not be resolved. + Could not restore window '%1', because database %2 could not be resolved. + + + + Could not restore window '%1', because the table %2 doesn't exist in the database %3. + Could not restore window '%1', because the table %2 doesn't exist in the database %3. + + + + + New table %1 + New table %1 + + + + Committed changes for table '%1' successfully. + Committed changes for table '%1' successfully. + + + + Committed changes for table '%1' (named before '%2') successfully. + Committed changes for table '%1' (named before '%2') successfully. + + + + Could not commit table structure. Error message: %1 + table window + Could not commit table structure. Error message: %1 + + + + Reset autoincrement + Reset autoincrement + + + + Are you sure you want to reset autoincrement value for table '%1'? + Are you sure you want to reset autoincrement value for table '%1'? + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + An error occurred while trying to reset autoincrement value for table '%1': %2 + + + + Autoincrement value for table '%1' has been reset successfully. + Autoincrement value for table '%1' has been reset successfully. + + + + Empty name + Empty name + + + + A blank name for the table is allowed in SQLite, but it is not recommended. +Are you sure you want to create a table with blank name? + A blank name for the table is allowed in SQLite, but it is not recommended. +Are you sure you want to create a table with blank name? + + + + Cannot create a table without at least one column. + Cannot create a table without at least one column. + + + + Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. + Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. + + + + Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. + Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. + + + + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 + + + + Are you sure you want to delete table constraint '%1'? + table window + Are you sure you want to delete table constraint '%1'? + + + + Delete constraint + table window + Delete constraint + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + Uncommitted changes + Uncommitted changes + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + + + + Go back to structure tab + Go back to structure tab + + + + Commit modifications and browse data. + Commit modifications and browse data. + + + + Name + table window indexes + Name + + + + Unique + table window indexes + Unique + + + + Columns + table window indexes + Columns + + + + Partial index condition + table window indexes + Partial index condition + + + + Name + table window triggers + Name + + + + Event + table window triggers + Event + + + + Condition + table window triggers + Condition + + + + Details + table window triggers + Details + + + + Table window "%1" has uncommitted structure modifications and data. + Table window "%1" has uncommitted structure modifications and data. + + + + Table window "%1" has uncommitted data. + Table window "%1" has uncommitted data. + + + + Table window "%1" has uncommitted structure modifications. + Table window "%1" has uncommitted structure modifications. + + + + TriggerColumnsDialog + + + Trigger columns + Trigger columns + + + + Triggering columns: + Triggering columns: + + + + Select all + Select all + + + + Deselect all + Deselect all + + + + TriggerDialog + + + + Trigger + Trigger + + + + On table: + On table: + + + + Action: + Action: + + + + + <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> + <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> + + + + Pre-condition: + Pre-condition: + + + + The scope is still not fully supported by the SQLite database. + The scope is still not fully supported by the SQLite database. + + + + Trigger name: + Trigger name: + + + + When: + When: + + + + List of columns for UPDATE OF action. + List of columns for UPDATE OF action. + + + + Scope: + Scope: + + + + Code: + Code: + + + + Trigger statements to be executed. + Trigger statements to be executed. + + + + DDL + DDL + + + + On view: + On view: + + + + Could not process trigger %1 correctly. Unable to open a trigger dialog. + Could not process trigger %1 correctly. Unable to open a trigger dialog. + + + + Enter a valid condition. + Enter a valid condition. + + + + Enter a valid trigger code. + Enter a valid trigger code. + + + + Error + trigger dialog + Error + + + + An error occurred while executing SQL statements: +%1 + An error occurred while executing SQL statements: +%1 + + + + VersionConvertSummaryDialog + + + Database version convert + Database version convert + + + + Following changes to the SQL statements will be made: + Following changes to the SQL statements will be made: + + + + Before + Before + + + + After + After + + + + ViewWindow + + + Query + Query + + + + View name: + View name: + + + + Output column names + Output column names + + + + + Data + Data + + + + Triggers + Triggers + + + + DDL + DDL + + + + + Could not restore window '%1', because no database or view was stored in session for this window. + Could not restore window '%1', because no database or view was stored in session for this window. + + + + Could not restore window '%1', because database %2 could not be resolved. + Could not restore window '%1', because database %2 could not be resolved. + + + + Could not restore window '%1', because database %2 could not be open. + Could not restore window '%1', because database %2 could not be open. + + + + Could not restore window '%1', because the view %2 doesn't exist in the database %3. + Could not restore window '%1', because the view %2 doesn't exist in the database %3. + + + + + New view %1 + New view %1 + + + + Database + Database + + + + Refresh the view + view window + Refresh the view + + + + Commit the view changes + view window + Commit the view changes + + + + Rollback the view changes + view window + Rollback the view changes + + + + Explicit column names + Explicit column names + + + + Generate output column names automatically basing on result columns of the view. + Generate output column names automatically basing on result columns of the view. + + + + Add column + view window + Add column + + + + Edit column + view window + Edit column + + + + Delete column + view window + Delete column + + + + Move column up + view window + Move column up + + + + Move column down + view window + Move column down + + + + Refresh trigger list + view window + Refresh trigger list + + + + Create new trigger + view window + Create new trigger + + + + Edit selected trigger + view window + Edit selected trigger + + + + Delete selected trigger + view window + Delete selected trigger + + + + View window "%1" has uncommitted structure modifications and data. + View window "%1" has uncommitted structure modifications and data. + + + + View window "%1" has uncommitted data. + View window "%1" has uncommitted data. + + + + View window "%1" has uncommitted structure modifications. + View window "%1" has uncommitted structure modifications. + + + + Could not load data for view %1. Error details: %2 + Could not load data for view %1. Error details: %2 + + + + Uncommitted changes + Uncommitted changes + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + + + + Go back to structure tab + Go back to structure tab + + + + Commit modifications and browse data. + Commit modifications and browse data. + + + + View '%1' was committed successfully. + View '%1' was committed successfully. + + + + Committed changes for view '%1' successfully. + Committed changes for view '%1' successfully. + + + + Committed changes for view '%1' (named before '%2') successfully. + Committed changes for view '%1' (named before '%2') successfully. + + + + Could not commit view changes. Error message: %1 + view window + Could not commit view changes. Error message: %1 + + + + Override columns + Override columns + + + + Currently defined columns will be overriden. Do you want to continue? + Currently defined columns will be overriden. Do you want to continue? + + + + Could not determinate columns returned from the view. The query is problably incomplete or contains errors. + Could not determinate columns returned from the view. The query is problably incomplete or contains errors. + + + + Name + view window triggers + Name + + + + Instead of + view window triggers + Instead of + + + + Condition + view window triggers + Condition + + + + Details + table window triggers + Details + + + + Could not process the %1 view correctly. Unable to open a view window. + Could not process the %1 view correctly. Unable to open a view window. + + + + Empty name + Empty name + + + + A blank name for the view is allowed in SQLite, but it is not recommended. +Are you sure you want to create a view with blank name? + A blank name for the view is allowed in SQLite, but it is not recommended. +Are you sure you want to create a view with blank name? + + + + The SELECT statement could not be parsed. Please correct the query and retry. +Details: %1 + The SELECT statement could not be parsed. Please correct the query and retry. +Details: %1 + + + + The view could not be modified due to internal SQLiteStudio error. Please report this! + The view could not be modified due to internal SQLiteStudio error. Please report this! + + + + The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. + The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. + + + + Following problems will take place while modifying the view. +Would you like to proceed? + view window + Following problems will take place while modifying the view. +Would you like to proceed? + + + + View modification + view window + View modification + + + + WidgetCover + + + Interrupt + Interrupt + + + diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_pl.qm b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_pl.qm deleted file mode 100644 index 5740bcd..0000000 Binary files a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_pl.qm and /dev/null differ diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_pl.ts b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_pl.ts deleted file mode 100644 index e144d8b..0000000 --- a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_pl.ts +++ /dev/null @@ -1,7399 +0,0 @@ - - - - - AboutDialog - - - About SQLiteStudio and licenses - O SQLiteStudio i licencje - - - - About - O programie - - - <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="http://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">http://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="http://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">http://salsoft.com.pl</span></a>)<br/></p></body></html> - <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Darmowy, otwartoźródłowy, wieloplatformowy menadżer baz danych SQLite.<br/><a href="http://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">http://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Autor i aktywny opiekun:<br/>SalSoft (<a href="http://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">http://salsoft.com.pl</span></a>)<br/></p></body></html> - - - - Licenses - Licencje - - - - Environment - Środowisko - - - - Icon directories - Katalogi ikon - - - - Form directories - Katalogi formularzy - - - - Plugin directories - Katalogi wtyczek - - - - Application directory - Katalog aplikacji - - - - SQLite 3 version: - Wersja SQLite 3: - - - - Configuration directory - Katalog konfiguracji - - - - <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> - <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Darmowy, otwartoźródłowy, wieloplatformowy menadżer baz danych SQLite.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Autor i aktywny opiekun:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> - - - - Qt version: - Wersja Qt: - - - - Portable distribution. - Dystrybucja przenośna. - - - - MacOS X application boundle distribution. - Dytrybucja aplikacji MacOS X. - - - - Operating system managed distribution. - Dystrybucja zarządzana przez system operacyjny. - - - - Copy - Kopiuj - - - - <h3>Table of contents:</h3><ol>%2</ol> - <h3>Zawartość:</h3><ol>%2</ol> - - - - BindParamsDialog - - - Query parameters - Parametry zapytania - - - - Please provide values for query parameters - Proszę podać wartości dla parametrów zapytania - - - - BugDialog - - Bugs and ideas - Błędy i pomysły - - - Reporter - Zgłaszający - - - E-mail address - Adres e-mail - - - Log in - Zaloguj - - - Short description - Krótki opis - - - Detailed description - Opis szczegółowy - - - Show more details - Pokaż więcej szczegółów - - - SQLiteStudio version - Wersja SQLiteStudio - - - Operating system - System operacyjny - - - Loaded plugins - Załadowane wtyczki - - - Send - Wyślij - - - You can see all your reported bugs and ideas by selecting menu '%1' and then '%2'. - Możesz zobaczyć wszystkie błędy i pomysły zgłoszone przez ciebie wybierając menu '%1' i dalej '%2'. - - - A bug report sent successfully. - Błąd został zgłoszony pomyślnie. - - - An error occurred while sending a bug report: %1 -%2 - Wystąpił błąd podczas zgłaszania błędu: %1 -%2 - - - You can retry sending. The contents will be restored when you open a report dialog after an error like this. - Możesz spróbować powtórzyć wysyłkę. Zawartość będzie przywrócona, kiedy otworzysz okno zgłaszania po błędzie takim jak ten. - - - An idea proposal sent successfully. - Pomysł został zgłoszony pomyślnie. - - - An error occurred while sending an idea proposal: %1 -%2 - Wystąpił błąd podczas zgłaszania pomysłu: %1 -%2 - - - A bug report - Zgłoś błąd - - - Describe problem in few words - Opisz problem w kilku słowach - - - Describe problem and how to reproduce it - Opisz problem, oraz jak go powtórzyć - - - A new feature idea - Zgłoś pomysł - - - A title for your idea - Tytuł twojego pomysłu - - - Describe your idea in more details - Opisz twój pomysł szerzej - - - Reporting as an unregistered user, using e-mail address. - Zgłaszanie jako niezarejestrowany użytkownik, używając adresu e-mail. - - - Reporting as a registered user. - Zgłaszanie jako zarejestrowany użytkownik. - - - Log out - Wyloguj - - - Providing true email address will make it possible to contact you regarding your report. To learn more, press 'help' button on the right side. - Podanie prawdziwego adresu e-mail pozwoli na skontaktowanie się z tobą w związku z twoim zgłoszeniem. Aby dowiedzieć się więcej, kliknij przycisk 'pomoc' po prawej stronie. - - - Enter vaild e-mail address, or log in. - Wpisz poprawny adres e-mail, lub zaloguj się. - - - Short description requires at least 10 characters, but not more than 100. Longer description can be entered in the field below. - Krótki opis wymaga przynajmniej 10 znaków, ale nie więcej niż 100. Dłuższy opis może być wpisany w polu poniżej. - - - Long description requires at least 30 characters. - Długi opis wymaga przynajmniej 30 znaków. - - - - BugReportHistoryWindow - - Title - Tytuł - - - Reported at - Zgłoszony dnia - - - URL - URL - - - Reports history - Historia zgłoszeń - - - Clear reports history - Wyczyść historię zgłoszeń - - - Delete selected entry - Usuń wybraną pozycję - - - Invalid response from server. - Niepoprawna odpowiedź z serwera. - - - - BugReportLoginDialog - - Log in - Zaloguj - - - Credentials - Dane do logowania - - - Login: - Login: - - - Password: - Hasło: - - - Validation - Walidacja - - - Validate - Sprawdź - - - Validation result message - Treść wyniku walidacji - - - Abort - Przerwij - - - A login must be at least 2 characters long. - Login musi mieć przynajmniej 2 znaki. - - - A password must be at least 5 characters long. - Hasło musi mieć przynajmniej 5 znaków. - - - Valid - Poprawne - - - - CollationsEditor - - - Filter collations - Filtruj zestawienia - - - - Collation name: - Nazwa zestawienia: - - - - Implementation language: - Język implementacji: - - - - Databases - Bazy danych - - - - Register in all databases - Zarejestruj we wszystkich bazach danych - - - - Register in following databases: - Zarejestruj w następujących bazach danych: - - - - Implementation code: - Kod implementacji: - - - - Collations editor - Edytor zestawień - - - - Commit all collation changes - Zatwierdź wszystkie zmiany w zestawieniach - - - - Rollback all collation changes - Wycofaj wszystkie zmiany w zestawieniach - - - - Create new collation - Utwórz nowe zestawienie - - - - Delete selected collation - Usuń wybrane zestawienie - - - - Editing collations manual - Podręcznik edycji zestawień - - - - Enter a non-empty, unique name of the collation. - Podaj niepustą, unikalną nazwę zestawienia. - - - - Pick the implementation language. - Wybierz język implementacji. - - - - Enter a non-empty implementation code. - Wprowadź niepusty kod implementacji. - - - - Collations editor window has uncommitted modifications. - Okno edytora zestawień ma niezatwierdzone zmiany. - - - Collations editor window has uncommited modifications. - Okno edytora zestawień ma niezatwierdzone zmiany. - - - - ColorButton - - - Pick a color - Wybierz kolor - - - - ColumnCollatePanel - - - Collation name: - Nazwa zestawienia: - - - - Named constraint: - Ograniczenie nazwane: - - - - Enter a name of the constraint. - Wprowadź nazwę ograniczenia. - - - - Enter a collation name. - Wprowadź nazwę zestawienia. - - - - ColumnDefaultPanel - - - Default value: - Domyślna wartość: - - - - Named constraint: - Ograniczenie nazwane: - - - - Enter a default value expression. - Wprowadź wyrażenie wartości domyślnej. - - - - Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. - Niepoprawne wyrażenie wartości domyślnej: %1. Jeśli chcesz użyć zwykłego tekstu jako wartość, pamiętaj o zamknięciu go w znakach apostrofu. - - - - Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. - Niepoprawne wyrażenie wartości domyślnej. Jeśli chcesz użyć zwykłego tekstu jako wartość, pamiętaj o zamknięciu go w znakach apostrofu. - - - Invalid default value expression: %1 - Niepoprawna wartość wyrażenia domyślnego: %1 - - - - Enter a name of the constraint. - Wprowadź nazwę ograniczenia. - - - - ColumnDialog - - - Column - Kolumna - - - - Name and type - Nazwa i typ - - - - Scale - Skala - - - - Precision - Precyzja - - - - Data type: - Typ danych: - - - - Column name: - Nazwa kolumny: - - - - Size: - Rozmiar: - - - - Constraints - Ograniczenia - - - - Unique - Wartości unikalne - - - - - - - - - - Configure - Konfiguruj - - - - Foreign Key - Klucz obcy - - - - Collate - Zestawienie - - - - Not NULL - Niepuste - - - - Check condition - Sprawdzaj warunek - - - - Primary Key - Klucz główny - - - - Default - Wartość domyślna - - - - Advanced mode - Tryb zaawansowany - - - - Add constraint - column dialog - Dodaj ograniczenie - - - - Edit constraint - column dialog - Edytuj ograniczenie - - - - - Delete constraint - column dialog - Usuń ograniczenie - - - - Move constraint up - column dialog - Przenieś ograniczenie w górę - - - - Move constraint down - column dialog - Przenieś ograniczenie w dół - - - - Add a primary key - column dialog - Dodaj klucz główny - - - - Add a foreign key - column dialog - Dodaj klucz obcy - - - - Add an unique constraint - column dialog - Dodaj ograniczenie wartości unikalnych - - - - Add a check constraint - column dialog - Dodaj ograniczenie sprawdzania wartości - - - - Add a not null constraint - column dialog - Dodaj ograniczenie niepustych wartości - - - - Add a collate constraint - column dialog - Dodaj ograniczenie zestawienia - - - - Add a default constraint - column dialog - Dodaj ograniczenie wartości domyślnej - - - - Are you sure you want to delete constraint '%1'? - column dialog - Czy na pewno chcesz usunąć ograniczenie '%1'? - - - - Correct the constraint's configuration. - Popraw konfigurację ograniczenia. - - - - This constraint is not officially supported by SQLite 2, -but it's okay to use it. - To ograniczenie nie jest oficjalnie wspireane przez SQLite 2, -ale można go używać. - - - - Scale is not allowed for INTEGER PRIMARY KEY columns. - Skala nie jest dozwolona dla kolumn INTEGER PRIMARY KEY. - - - - Precision cannot be defined without the scale. - Precyzja nie może być zdefiniowana bez skali. - - - - Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. - Nie można użyć innego typu niż INTEGER, jeśli opcja AUTOINCREMENT jest wybrana w PRIMARY KEY. - - - - INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. - Typ INTEGER został wymuszony w związku z wybraną opcją AUTOINCREMENT w PRIMARY KEY. - - - - Precision is not allowed for INTEGER PRIMARY KEY columns. - Precyzja nie jest dozwolona dla kolumn INTEGER PRIMARY KEY. - - - - ColumnDialogConstraintsModel - - - Type - column dialog constraints - Typ - - - - Name - column dialog constraints - Nazwa - - - - Details - column dialog constraints - Szczegóły - - - - ColumnForeignKeyPanel - - - Foreign table: - Tabela obca: - - - - Foreign column: - Kolumn obca: - - - - Reactions - Reakcje - - - - Deferred foreign key - Klucz obcy odroczony - - - - Named constraint - Nazwane ograniczenie - - - - Constraint name - Nazwa ograniczenia - - - - Pick the foreign table. - Wybierz tabelę obcą - - - - Pick the foreign column. - Wybierz kolumnę obcą - - - - Enter a name of the constraint. - Wprowadź nazwę ograniczenia. - - - - ColumnPrimaryKeyPanel - - - Autoincrement - Autoinkrementacja - - - - Sort order: - Kierunek sortowania: - - - - Named constraint: - Ograniczenie nazwane: - - - - On conflict: - W razie konfliktu: - - - - Enter a name of the constraint. - Wprowadź nazwę ograniczenia. - - - Autoincrement (only for %1 type columns) - column primary key - Autoinkrementacja (tylko dla kolumn o typie %1) - - - - ColumnUniqueAndNotNullPanel - - - Named constraint: - Ograniczenie nazwane: - - - - On conflict: - W razie konfliktu: - - - - Enter a name of the constraint. - Wprowadź nazwę ograniczenia. - - - - CompleterWindow - - - Column: %1 - completer statusbar - Kolumna: %1 - - - - Table: %1 - completer statusbar - Tabela: %1 - - - - Index: %1 - completer statusbar - Indeks: %1 - - - - Trigger: %1 - completer statusbar - Wyzwalacz: %1 - - - - View: %1 - completer statusbar - Widok: %1 - - - - Database: %1 - completer statusbar - Baza danych: %1 - - - - Keyword: %1 - completer statusbar - Słowo kluczowe: %1 - - - - Function: %1 - completer statusbar - Funkcja: %1 - - - - Operator: %1 - completer statusbar - Operator: %1 - - - - String - completer statusbar - Tekst - - - - Number - completer statusbar - Liczba - - - - Binary data - completer statusbar - Dane binarne - - - - Collation: %1 - completer statusbar - Zestawienie: %1 - - - - Pragma function: %1 - completer statusbar - Funkcja pragma: %1 - - - - ConfigDialog - - - - Configuration - Konfiguracja - - - - Search - Szukaj - - - - General - Ogólne - - - - Keyboard shortcuts - Skróty klawiszowe - - - - Look & feel - Wygląd i zachowanie - - - - Style - Style - - - - Fonts - Czcionki - - - - Colors - Kolory - - - - Plugins - Wtyczki - - - - Code formatters - Formatery kodu - - - - Data browsing - Przeglądanie danych - - - - Data editors - Edytory danych - - - - Data browsing and editing - Przeglądanie i edycja danych - - - - Number of data rows per page: - Liczba wierszy danych na stronie: - - - - - <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> - <p>Kiedy dane są wczytane do widoku siatki, szerokość kolumn jest automatycznie dostosowywana. Ta wartość ogranicza początkową szerokość tego dostosowywania, ale użytkownik nadal może rozszerzać kolumnę ręcznie poza ten limit.</p> - - - - Limit initial data column width to (in pixels): - Ogranicz początkową szerokość kolumn danych (w pikselach): - - - - Inserting new row in data grid - Wstawianie nowego wiersza w widoku siatki danych. - - - - Before currently selected row - Przed aktualnie wybranym wierszem - - - - After currently selected row - Po aktualnie wybranym wierszu. - - - - At the end of data view - Na końcu widoku siatki danych - - - - Data types - Type danych - - - - Available editors: - Dostępne edytory: - - - - Editors selected for this data type: - Edytory wybrane dla tego typu danych: - - - - Schema editing - Edycja schematu - - - - Number of DDL changes kept in history. - Liczba zmian DDL trzymanych w historii. - - - - DDL history size: - Rozmiar historii DDL: - - - Don't show DDL preview dialog when commiting schema changes - Nie pokazuj okna podglądu DDL podczas zatwierdzania zmian schematu - - - - SQL queries - Zapytania SQL - - - - - Number of queries kept in the history. - Liczba zapytań trzymana w historii. - - - - History size: - Rozmiar historii: - - - - <p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute.</p> - <p>Jeśli w oknie edytora SQL jest więcej niż jedno zapytanie, to (jeśli ta opcja jest włączona) tylko jedno zapytanie będzie wykonana - to, które znajduje się pod kursorem pisania. W przeciwnym wypadku wszystkie zapytania będą wykonywane. Zawsze możesz ograniczyć zapytania do wywołania przez zaznaczenie tych zapytań, które chcesz wywołać.</p> - - - - Execute only the query under the cursor - Wykonuj tylko zapytania będące pod kursorem - - - - Updates - Aktualizacje - - - - Automatically check for updates at startup - Sprawdzaj aktualizacje automatycznie przy starcie - - - - Session - Sesje - - - - Restore last session (active MDI windows) after startup - Przywróć ostatnią sesję (aktywne okna MDI) po starcie - - - - Filter shortcuts by name or key combination - Filtruj skróty po nazwie, lub kombinacji klawiszy - - - - Action - Akcja - - - - Key combination - Kombinacja klawiszy - - - - Changing language requires application restart to take effect. - Zmiana języka wymaga restartu aplikacji, aby zadziałać. - - - - Compact layout - Układ kompaktowy - - - - <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> - <p>Układ kompaktowy zmniejsza wszystkie marginesy i odstępy na interfejsie do minimum, robiąc więcej miejsca na wyświetlanie danych. Powoduje to, że interfejs jest nieco mniej estetyczny, ale pozwala to na prezentację większej ilości danych naraz.</p> - - - - Use compact layout - Użyj układu kompaktowego - - - - - Database list - Lista baz - - - - If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. - Gdy wyłączone, to kolumny będą ułożone w takiej kolejności, w jakiej wystąpiły w zapytaniu CREATE TABLE. - - - - Sort table columns alphabetically - Sortuj kolumny tabel alfabetycznie. - - - - Expand tables node when connected to a database - Rozwiń listę tabel po połączeniu z bazą danych - - - - <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> - <p>Dodatkowe etykiety, to te wyświetlane obok nazw na liście baz danych (są niebieskie, chyba że skonfigurowano je inaczej). Włączenie tej opcji spowoduje wyświetlenie etykiet dla baz danych, niepoprawnych baz danych, oraz dla węzłów agregujących (grupa kolumn, grupa indeksów, grupa wyzwalaczy). Więcej etykiet jest dostępne niżej.</p> - - - - Display additional labels on the list - Wyświetlaj dodatkowe etykiety na liście - - - - For regular tables labels will show number of columns, indexes and triggers for each of tables. - Dla zwykłych tabel etykiety będą pokazywać liczbę kolumn, inseksów, oraz wyzwalaczy dla tych tabel. - - - - Display labels for regular tables - Wyświetlaj etykiety dla zwykłych tabel - - - - Virtual tables will be marked with a 'virtual' label. - Tabele wirtualne będą oznaczone etykietą 'wirtualna'. - - - - Display labels for virtual tables - Wyświetlaj etykiety dla tabel wirtualnych - - - - Expand views node when connected to a database - Rozwiń listę widoków po połączeniu z bazą. - - - - If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) - Gdy ta opcja jest wyłączona, to wszystkie obiekty będą ułożone w takiej kolejności, w jakiej występują w tabeli sqlite_master (czyli w takiej, w jakiej zostały stworzone) - - - - Sort objects (tables, indexes, triggers and views) alphabetically - Sortuj obiekty (tabele, indeksy, wyzwalacze i widoki) alfabetycznie - - - - Display system tables and indexes on the list - Wyświetlaj tabele i indeksy systemowe na liście - - - - Table windows - Okna tabel - - - When enabled, Table Windows will show up with the data tab, instead of the structure tab. - Gdy włączone, Okna Tabel będą się pokazywać z zakładką danych, zamiast z zakładką struktury. - - - - Open Table Windows with the data tab for start - Otwieraj Okna Tabeli z zakładką danych na początek - - - - View windows - Okna Widoków - - - When enabled, View Windows will show up with the data tab, instead of the structure tab. - Gdy włączone, Okna Widoków będą się pokazywać z zakładką danych, zamiast z zakładką struktury. - - - - Open View Windows with the data tab for start - Otwieraj Okna Widoku z zakładką danych na początek - - - - Main window dock areas - Strefy dokowania głównego okna - - - - Left and right areas occupy corners - Lewa i prawa strefa zajmują rogi - - - - Top and bottom areas occupy corners - Górna i dolna strefa zajmują rogi - - - - Hide built-in plugins - Ukryj wtyczki wbudowane - - - - Current style: - Aktualny styl: - - - - Preview - Podgląd - - - - Enabled - Włączone - - - Column - Kolumna - - - - Disabled - Wyłączone - - - - - Language - Język - - - - Database dialog window - Okno dialogowe bazy danych - - - - <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> - <p>Podczas dodawania nowej bazy danych jest ona domyślnie zaznaczana jako "trwała" (zapisywana w konfiguracji). Włączenie tej opcji powoduje, że każda nowa baza danych NIE będzie zaznaczana domyślnie jako "trwała".</p> - - - - Do not mark database to be "permanent" by default - Nie zaznaczaj bazy danych domyślnie jako "trwała" - - - - <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> - <p>Gdy ta opcja jest włączona, to pliki upuszczone z menadżera plików na listę baz danych będą automatycznie dodawane do list, pomijając standardowe okno bazy danych. Jeśli z różnych powodów automatyczny proces się nie powiedzie, to użytkownikowi ukaże się standardowe okno.</p> - - - - Try to bypass dialog completly when dropping database file onto the list - Próbuj całkowicie pomijać dialog podczas upuszczania pliku bazy na listę - - - - Keep NULL value when entering empty value - Zachowaj wartość NULL gdy wstawiania jest pusta wartość - - - - <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> - <p>Gdy to jest włączone i użytkownik zatrzyma kursor myszy nad komórką w widoku siatki danych (wyniki zapytania, dane tabeli, dane widoku), to pojawi się podpowiedź ze szczegółami odnośnie komórki - zawiera ona szczegóły , jak typ danych kolumny, ograniczenia, ROWID i inne.</p> - - - - - <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> - <p>Maksymalna liczba konfiguracji w oknie dialogowym zaludniania tabeli, która ma być trzymana w konfiguracji. Wartość 100 powinna być wystarczająca.</p> - - - - Number of memorized table populating configurations - Liczba zapamiętanych konfiguracji zaludniania tabeli - - - - Show column and row details tooltip in data view - Pokazuj podpowiedź ze szczegółami o kolumnie i wierszu w widoku siatki danych - - - - <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> - <p>Kiedy edytowana jest komórka, która miała wartość NULL, a nowa wartość wprowadzona jest pusta, to ta opcja decyduje o tym, czy wartość powinna pozostać NULL (gdy ta opcja jest włączona), czy powinna być nadpisana pustym łańcuchem znaków (gdy ta opcja wyłączona).</p> - - - - <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> - <html><head/><body><p>Włącz to, aby wymusić wartość DEFAULT podczas zatwierdzania wartości NULL dla kolumn, które mają zdefiniowaną wartość DEFAULT, nawet jeśli kolumna dopuszcza wartości NULL.</p><p>Wyłącz tą opcję aby używać wartości DEFAULT tylko i wyłącznie, gdy wartość NULL jest zatwierdzana dla kolumny z ograniczeniem NOT NULL.</p></body></html> - - - - Use DEFAULT value (if defined), when committing NULL value - Używaj wartości DEFAULT (jeśli zdefiniowana), gdy zatwierdzana jest wartość NULL - - - - <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> - <p>Gdy włączone, Okna Tabeli będą się otwierać na zakładce danych, zamiast na zakładce struktury.</p> - - - - <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> - <p>Gdy włączone, to zakładka "Dane" będzie umieszczona jako pierwsza w każdym Oknie Tabeli, zamiast jako druga.</p> - - - - Place data tab as first tab in a Table Window - Ustaw zakładkę danych jako pierwszą w Oknie Tabeli - - - - <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> - <p>Gdy włączone, Okna Widoku będą się otwierać na zakładce danych, zamiast na zakładce struktury.</p> - - - - <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> - <p>Gdy włączone, to zakładka "Dane" będzie umieszczona jako pierwsza w każdym Oknie Widoku, zamiast jako druga.</p> - - - - Place data tab as first tab in a View Window - Ustaw zakładkę danych jako pierwszą w Oknie Widoku - - - - Don't show DDL preview dialog when committing schema changes - Nie pokazuj okna podglądu DDL podczas zatwierdzania zmian struktury - - - - - <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> - <p>Maksymalna liczba parametrów zapytania (:param, @param, $param, ?) trzymanych w historii. Kiedy ponownie użyjesz parametru o tej samej nazwie/pozycji, SQLiteStudio wstępnie uzupełni go używając ostatniej zapamiętanej wartości (nadal będzie można ją zmienić). Wartość 100 powinna być wystarczająca.</p> - - - - Number of memorized query parameters - Liczba zapamiętanych parametrów zapytania - - - - Status Field - Pole Statusu - - - - <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> - <p>Kiedy użytkownik ręcznie zamyka panel Statusu, ta opcja zapewnia, że zostanie ono otwarte ponownie, gdy jest wyświetlona nowa wiadomość. Jeśli jest ona wyłączona, to panel Statusu może być otwarte tylko ręcznie z menu "Widok".</p> - - - - Always open Status panel when new message is printed - Zawsze otwieraj panel Statusu, gdy wyświetlona jest nowa wiadomość - - - - Active formatter plugin - Aktywna wtyczka formatera - - - - SQL editor font - Czcionka edytora SQL - - - - Database list font - Czcionka listy baz danych - - - - Database list additional label font - Czcionka dodatkowych etykiety listy baz danych - - - - Data view font - Czcionka widoku danych - - - - Status field font - Czcionka pola statusu - - - - SQL editor colors - Kolory edytora SQL - - - - Current line background - Tło bieżącej linii - - - - <p>SQL strings are enclosed with single quote characters.</p> - <p>Łańcuchy znaków SQL są zamknięte pomiędzy znakami apostrofu.</p> - - - - String foreground - Czcionka łańcucha znaków - - - - <p>Bind parameters are placeholders for values yet to be provided by the user. They have one of the forms:</p><ul><li>:param_name</li><li>$param_name</li><li>@param_name</li><li>?</li></ul> - <b>Parametry wiążące to wyrażenia zastępcze dla wartości, które mają być dopiero dostarczone przez użytkownika. Mają one jedną z form: </p><ul><li>:nazwa_parametru</li><li>$nazwa_parametru</li><li>@nazwa_parametru</li><li>?</li></ul> - - - - Bind parameter foreground - Czcionka parametru wiążącego - - - - Highlighted parenthesis background - Tło podświetlonych nawiasów - - - - <p>BLOB values are binary values represented as hexadecimal numbers, like:</p><ul><li>X'12B4'</li><li>x'46A2F4'</li></ul> - <p>Wartości BLOB są wartościami binarnymi, reprezentowanymi jako liczby heksadecymalne, jak np:</p><ul><li>X'12B4'</li><li>x'46A2F4'</li></ul> - - - - BLOB value foreground - - - - - Regular foreground - Standardowa czcionka - - - - Line numbers area background - Tło obszaru numerów linii - - - - Keyword foreground - Czcionka słowa kluczowego - - - - Number foreground - Czcionka liczby - - - - Comment foreground - Czcionka komentarza - - - - <p>Valid objects are name of tables, indexes, triggers, or views that exist in the SQLite database.</p> - <p>Poprawne obiekty to nazwy tabel, indekstów, wyzwalaczy i widoków, które istnieją w basie SQLite.</p> - - - - Valid objects foreground - Czcionka poprawnych obiektów - - - - Data view colors - Kolory widoku danych - - - - <p>Any data changes will be outlined with this color, until they're committed to the database.</p> - <p>Jakiekolwiek zmiany danych będą otoczone ramką w tym kolorze, dopóki nie zostaną zatwierdzone do bazy.</p> - - - - Uncommitted data outline color - Kolor obramowania niezatwierdzonych danych - - - - <p>In case of error while committing data changes, the problematic cell will be outlined with this color.</p> - <p>W razie błędu podczas zatwierdzania zmian w danych, komórki sprawiające problem będą obramowane tym kolorem.</p> - - - <p>Any data changes will be outlined with this color, until they're commited to the database.</p> - <p>Jakakolwiek zmiana danych będzie obrysowana tym kolorem, dopóki nie zostanie zatwierdzona do bazy danych.</p> - - - Uncommited data outline color - Kolor obrysu niezatwierdzonych danych - - - <p>In case of error while commiting data changes, the problematic cell will be outlined with this color.</p> - <p>W przypadku błędu podczas zatwierdzania zmian danych, komórka będąca przyczyną problemu zostanie obrysowana tym kolorem.</p> - - - - Commit error outline color - Kolor obrysu błędu zatwierdzania - - - - NULL value foreground - Kolor czcionki wartości NULL - - - - Deleted row background - Tło wiersza usuniętego - - - - Database list colors - Kolory listy baz danych - - - - <p>Additional labels are those which tell you SQLite version, number of objects deeper in the tree, etc.</p> - <p>Dodatkowe etykiety to te, które mówią o wersji SQLite, liczbie obiektów w głębszych częściach drzewa, itp.</p> - - - - Additional labels foreground - Czcionka dodatkowych etykiet - - - - Status field colors - Kolory pola statusu - - - - Information message foreground - Czcionka wiadomości informującej - - - - Warning message foreground - Czcionka wiadomości ostrzegającej - - - - Error message foreground - Czcionka wiadomości błędu - - - - Description: - plugin details - Opis: - - - - Category: - plugin details - Kategoria: - - - - Version: - plugin details - Wersja: - - - - Author: - plugin details - Autor: - - - - Internal name: - plugin details - Nazwa wewnętrzna: - - - - Dependencies: - plugin details - Zależności: - - - - Conflicts: - plugin details - Konflikty: - - - - Plugin details - Szczegóły wtyczki - - - - Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. - Wtyczki są ładowane/wyładowywane natychmiast po zaznaczeniu/odznaczeniu, ale zmodyfikowana lista wtyczek, które należy załadować przy starcie nie jest zapisana, dopóki nie zatwierdzisz całego okna configuracji. - - - - %1 (built-in) - plugins manager in configuration dialog - %1 (wbudowany) - - - - Details - Szczegóły - - - - No plugins in this category. - Brak wtyczek w tej kategorii. - - - - Add new data type - Dodaj nowy typ danych - - - - Rename selected data type - Zmień nazwę wybranego typu danych - - - - Delete selected data type - Usuń wybrany typ danych - - - - Help for configuring data type editors - Pomoc w konfiguracji edytorów typów danych - - - - ConstraintCheckPanel - - - The condition - Warunek - - - - Named constraint: - Ograniczenie nazwane: - - - - On conflict - W razie konfliktu - - - - Enter a valid condition. - Wprowadź poprawny warunek. - - - - Enter a name of the constraint. - Wprowadź nazwę ograniczenia. - - - - ConstraintDialog - - - New constraint - constraint dialog - Nowe ograniczenie - - - - Create - constraint dialog - Utwórz - - - - Edit constraint - dialog window - Edytuj ograniczenie - - - - Apply - constraint dialog - Zastosuj - - - - Primary key - table constraints - Klucz główny - - - - Foreign key - table constraints - Klucz obcy - - - - Unique - table constraints - Wartości unikalne - - - - Not NULL - table constraints - Niepuste - - - - Check - table constraints - Warunek - - - - Collate - table constraints - Zestawienie - - - - Default - table constraints - Wartość domyślna - - - - ConstraintTabModel - - - Table - table constraints - Tabela - - - - Column (%1) - table constraints - Kolumna (%1) - - - - Scope - table constraints - Zakres - - - - Type - table constraints - Typ - - - - Details - table constraints - Szczegóły - - - - Name - table constraints - Nazwa - - - - CssDebugDialog - - - SQLiteStudio CSS console - Konsola CSS SQLiteStudio - - - - DataView - - - Filter data - data view - Filtruj dane - - - - Grid view - Widok siatki - - - - Form view - Widok formularza - - - - Refresh table data - data view - Odśwież dane tabeli - - - - First page - data view - Pierwsza strona - - - - Previous page - data view - Poprzednia strona - - - - Next page - data view - Następna strona - - - - Last page - data view - Ostatnia strona - - - - Filter - Filtruj - - - - Hit Enter key or press "Apply filter" button on toolbar to apply new value. - Wciśnij Enter lub naciśnij przycisk "Zastosuj filtr", aby zastosować nową wartość. - - - - Show filter inputs per column - data view - Pokaż filtr dla każdej kolumny - - - - Apply filter - data view - Zastosuj filtr - - - - Commit changes for selected cells - data view - Zatwierdź zmiany dla wybranych komórek - - - - Rollback changes for selected cells - data view - Wycofaj zmiany dla wybranych komórek - - - - Show grid view of results - sql editor - Pokaż widok siatki dla wyników - - - - Show form view of results - sql editor - Pokaż widok formularza dla wyników - - - - Filter by text - data view - Filtruj po tekście - - - - Filter by the Regular Expression - data view - Filtruj używając Wyrażeń Regularnych - - - - Filter by SQL expression - data view - Filtruj używając wyrażenia SQL - - - - Tabs on top - data view - Karty na górze - - - - Tabs at bottom - data view - Karty na dole - - - - Place new rows above selected row - data view - Wstawiaj nowe wiersze nad aktualnie wybranym wierszem - - - - Place new rows below selected row - data view - Wstawiaj nowe wiersze pod aktualnie wybranym wierszem - - - - Place new rows at the end of the data view - data view - Wstawiaj nowe wiersze na końcu widoku siatki danych - - - - Total number of rows is being counted. -Browsing other pages will be possible after the row counting is done. - Całkowita liczba wierszy jest liczona. -Przeglądanie pozostałych stron będzie możliwe kiedy liczenie wierszy zostanie zakończone. - - - - Row: %1 - Wiersz: %1 - - - - DbConverterDialog - - - Source database - Źródłowa baza danych - - - - Source database version: - Wersja źródłowej bazy: - - - - Target database - Docelowa baza danych - - - - Target version: - Wersja docelowej bazy: - - - - This is the file that will be created as a result of the conversion. - To jest plik, który będzie stworzony jako wynik konwersji. - - - - Target file: - Docelowy plik: - - - - Name of the new database: - Nazwa nowej bazy: - - - - This is the name that the converted database will be added to SQLiteStudio with. - To jest nazwa z jaką skonwertowana baza będzie dodana do SQLiteStudio. - - - - Convert database - Konwertuj bazę danych - - - - Select source database - Wybierz źródłową bazę danych - - - - Enter valid and writable file path. - Wprowadź poprawną ścieżkę do pliku, do której masz prawo zapisywać. - - - - Entered file exists and will be overwritten. - Podany plik istnieje i zostanie nadpisany. - - - - Enter a not empty, unique name (as in the list of databases on the left). - Wprowadź niepustą, unikalną nazwę (w kontekście listy baz danych po lewej). - - - - No valid target dialect available. Conversion not possible. - Nie ma dostępnego poprawnego docelowego dialektu. Konwersja nie jest możliwa. - - - - Select valid target dialect. - Wybierz poprawny docelowy dialekt. - - - - Database %1 has been successfully converted and now is available under new name: %2 - Baza danych %1 została przekonwertowana pomyślnie i jest teraz dostępna pod nazwą: %2 - - - - SQL statements conversion - Konwersja zapytań SQL - - - - Following error occurred while converting SQL statements to the target SQLite version: - Następujące błędy wystąpiły podczas konwersji zapytań SQL do docelowej wersji SQLite: - - - - Would you like to ignore those errors and proceed? - Czy chcesz zignorować te błędy i kontynuować? - - - - DbDialog - - - Database - Baza danych - - - - Database type - Typ bazy danych - - - - Database driver - Sterownik bazy danych - - - Generate automatically - Generuj automatycznie - - - - Options - Opcje - - - - Permanent (keep it in configuration) - Trwała (trzymaj w konfiguracji) - - - - Test connection - Testuj połączenie - - - Name - Nazwa - - - Type - Typ - - - Browse for database file on local computer - Przeglądaj w poszukiwaniu pliku bazy danych na lokalnym komputerze - - - - Create new database file - Utwórz nową bazę - - - - - File - Plik - - - - Name (on the list) - Nazwa (na liście) - - - Generate name basing on file path - Generuj nazwę bazując na ścieżce do pliku - - - Permanent - Trwała - - - - <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> - aasfd - <p>Włącz to, jeśli chcesz aby baza danych była przechowywana w pliku konfiguracji i przywracana za każdym razem, gdy startuje SQLiteStudio.</p> - - - Test database connection - Testuj połączenie z bazą - - - - Browse for existing database file on local computer - Przeglądaj lokalny komputer w poszukiwaniu istniejącej bazy - - - - Browse - Przeglądaj - - - - Enter an unique database name. - Wprowadź unikalną nazwę bazy danych. - - - - This name is already in use. Please enter unique name. - Ta nazwa jest już w użyciu. Proszę wprowadzić unikalną nazwę. - - - - <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> - <p>Automatyczne generowanie nazwy zostało wyłączone, ponieważ nazwa była edytowana ręcznie. Aby przywrócić automatyczne generowanie, proszę wyczyścić pole nazwy.</p> - - - <p>Automatic name generation was disabled, becuase the name was edited manually. To restore automatic generation please erase contents of the name field.</p> - <p>Automatyczne generowanie nazwy zostało wyłączone, ponieważ nazwa była edytowana ręcznie. Aby przywrócić automatyczne generowanie, proszę wyczyścić pole nazwy.</p> - - - - Enter a database file path. - Wprowadź ścieżkę do pliku bazy danych. - - - - This database is already on the list under name: %1 - Ta baza jest już na liście pod nazwą: %1 - - - - Select a database type. - Wybierz typ bazy danych. - - - Auto-generated - Auto-generowana - - - The name will be auto-generated - Nazwa będzie generowana automatycznie - - - Type the name - Wprowadź nazwę - - - - DbObjectDialogs - - - Delete table - Usuń tabelę - - - - Are you sure you want to delete table %1? - Czy na pewno chcesz usunąć tabelę %1? - - - - Delete index - Usuń indeks - - - - Are you sure you want to delete index %1? - Czy na pewno chcesz usunąć indeks %1? - - - - Delete trigger - Usuń wyzwalacz - - - - Are you sure you want to delete trigger %1? - Czy na pewno chcesz usunąć wyzwalacz %1? - - - - Delete view - Usuń widok - - - - Are you sure you want to delete view %1? - Czy na pewno chcesz usunąć widok %1? - - - - - Error while dropping %1: %2 - Błąd podczas porzucania %1: %2 - - - - Delete objects - Usuń obiekty - - - - Are you sure you want to delete following objects: -%1 - Czy na pewno chcesz usunąć następujące obiekty: -%1 - - - - Cannot start transaction. Details: %1 - Nie można wystartować transakcji. Szczegóły: %1 - - - - Cannot commit transaction. Details: %1 - Nie można zatwierdzić transakcji. Szczegóły: %1 - - - - DbTree - - - Databases - Bazy danych - - - - Filter by name - Filtruj po nazwie - - - - Copy - Kopiuj - - - - Paste - Wklej - - - - Select all - Zaznacz wszystko - - - - Create a group - Utwórz grupę - - - - Delete the group - Usuń grupę - - - - Rename the group - Zmień nazwę grupy - - - Add a database - Dodaj bazę danych - - - Edit the database - Edytuj bazę danych - - - Remove the database - Usuń bazę danych - - - Connect to the database - Połącz z bazą danych - - - Disconnect from the database - Rozłącz się z bazą danych - - - - Import - Importuj - - - Export the database - Eksportuj bazę danych - - - Convert database type - Konwertuj typ bazy danych - - - Vacuum - Odkurz - - - Integrity check - Sprawdź spójność - - - Create a table - Utwórz tabelę - - - Edit the table - Edytuj tabelę - - - - Execution from file cancelled. Any queries executed so far have been rolled back. - Wykonywanie z pliku przerwane. Jakiekolwiek wykonane zapytania zostały wycofane. - - - - &Add a database - Dod&aj bazę danych - - - - &Edit the database - &Edytuj bazę danych - - - - &Remove the database - U&suń bazę danych - - - - &Connect to the database - &Połącz z bazą danych - - - - &Disconnect from the database - &Rozłącz się z bazą danych - - - - &Export the database - &Eksportuj bazę danych - - - - Con&vert database type - Kon&wertuj typ bazy danych - - - - Vac&uum - Odk&urz - - - - &Integrity check - Sprawdź spó&jność - - - - Create a &table - Utwórz &tabelę - - - - Edit the t&able - Edytuj t&abelę - - - - Delete the ta&ble - Usuń ta&belę - - - - Create an &index - Utwórz &indeks - - - - Edit the i&ndex - Edytuj i&ndeks - - - - Delete the in&dex - Usuń in&deks - - - - Create a trig&ger - Utwórz wyz&walacz - - - - Edit the trigg&er - Edytuj wyzw&alacz - - - - Delete the trigge&r - Usuń wyzwa&lacz - - - - Create a &view - Utwórz &widok - - - - Edit the v&iew - Edytuj w&idok - - - - Delete the vi&ew - Usuń wi&dok - - - - &Refresh all database schemas - &Odśwież schematy wszystkich baz danych - - - - Re&fresh selected database schema - Odśwież schemat wy&branej bazy danych - - - - Open file's directory - Otwórz katalog pliku - - - - Execute SQL from file - Wykonaj SQL z pliku - - - - Generate query for table - Generuj zapytanie dla tabeli - - - - Entry with name %1 already exists in group %2. - Pozycja o nazwie %1 istnieje już w grupie %2. - - - - Are you sure you want to remove database '%1' from the list? - Czy napewno chcesz wycofać bazę '%1' z listy? - - - - Are you sure you want to remove following databases from the list: -%1 - Czy na pewno chcesz wycofać następujące bazy z listy: -%1 - - - - Remove database - Wycofaj bazę - - - - Vacuum (%1) - Odkurz (%1) - - - - Autoincrement value for table '%1' has been reset successfully. - Wartość automatycznej inkrementacji dla tabeli '%1' została zresetowana. - - - - Are you sure you want to delete all data from table(s): %1? - Czy na pewno chcesz usunąć wszystkie dane z tabel(i): %1? - - - - Could not execute SQL, because application has failed to start transaction: %1 - Nie można wykonać SQLa, ponieważ aplikacja nie mogła rozpocząć transakcji: %1 - - - - Could not open file '%1' for reading: %2 - Nie udało się otworzyć pliku '%1' do odczytu: %2 - - - - Could not execute SQL, because application has failed to commit the transaction: %1 - Nie można wykonać SQLa, ponieważ aplikacja nie mogła zatwierdzić transakcji: %1 - - - - Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. - Zakończono wykonywanie %1 zapytań w %2 sekund(y). %3 nie zostały wykonane w zwiążku z błędami. - - - - Finished executing %1 queries in %2 seconds. - Zakończono wykonywanie %1 zapytań w %2 sekund(y). - - - - Could not execute SQL due to error. - Nie można wykonać SQL w związku z błędem. - - - Drop the table - Porzuć tabelę - - - - Export the table - Eksportuj tabelę - - - - Import into the table - Importuj do tabeli - - - - Populate table - Zaludnij tabelę - - - - Create similar table - Utwórz podobną tabelę - - - Create an index - Utwórz indeks - - - Edit the index - Edytuj indeks - - - Drop the index - Porzuć indeks - - - Create a trigger - Utwórz wyzwalacz - - - Edit the trigger - Edytuj wyzwalacz - - - Drop the trigger - Porzuć wyzwalacz - - - Create a view - Utwórz widok - - - Edit the view - Edytuj widok - - - Drop the view - Porzuć widok - - - - Add a column - Dodaj kolumnę - - - - Edit the column - Edytuj kolumnę - - - - Delete the column - Usuń kolumnę - - - - Delete selected items - Usuń wybrane elementy - - - - Clear filter - Wyczyść filtr - - - Refresh all database schemas - Odśwież schematy wszystkich baz danych - - - Refresh selected database schema - Odśwież schemat wybranej bazy danych - - - Delete the table - Usuń tabelę - - - - Reset autoincrement sequence - Wyzeruj sekwencję autoinkrementacji - - - Delete the index - Usuń indeks - - - Delete the trigger - Usuń wyzwalacz - - - Delete the view - Usuń widok - - - - - Erase table data - Wymaż dane tabeli - - - - - Database - Baza danych - - - - Grouping - Grupowanie - - - - - Create group - Utwórz grupę - - - - Group name - Nazwa grupy - - - - Delete group - Usuń grupę - - - - Are you sure you want to delete group %1? -All objects from this group will be moved to parent group. - Czy na pewno chcesz usunąć grupę %1? -Wszystkie obiekty z tej grupy zostaną przeniesione do nadrzędnej grupy. - - - Delete database - Usuń bazę danych - - - Are you sure you want to delete database '%1'? - Czy na pewno chcesz usunąć bazę danych '%1'? - - - - - Cannot import, because no import plugin is loaded. - Nie można zaimportować, ponieważ żadna wtyczka importu nie została załadowana. - - - - - Cannot export, because no export plugin is loaded. - Nie można wyeksportować, ponieważ żadna wtyczka eksportu nie została załadowana. - - - Error while executing VACUUM on the database %1: %2 - Błąd podczas wykonywania VACUUM na bazie danych %1: %2 - - - VACUUM execution finished successfully. - Wykonanie VACUUM przebiegło pomyślnie. - - - - Integrity check (%1) - Sprawdzanie spójności (%1) - - - - Reset autoincrement - Wyzeruj autoinkrementację - - - - Are you sure you want to reset autoincrement value for table '%1'? - Czy na pewno chcesz wyzerować wartość autoinkrementacji dla tabeli '%1'? - - - - An error occurred while trying to reset autoincrement value for table '%1': %2 - Wystąpił błąd podczas próby wyzerowania wartości autoinkrementacji dla tabeli '%1': %2 - - - Autoincrement value for table '%1' has been reset successfly. - Wartość autoinkrementacji dla tabeli '%1' została pomyślnie wyzerowana. - - - Are you sure you want to delete all data from table '%1'? - Czy na pewno chcesz usunąć wszystkie dane z tabeli '%1'? - - - - An error occurred while trying to delete data from table '%1': %2 - Wystąpił błąd podczas próby usunięcia danych z tabeli '%1': %2 - - - - All data has been deleted for table '%1'. - Wszystkie dane z tabeli '%1' zostały usunięte. - - - - Following objects will be deleted: %1. - Następujące obiekty zostaną usunięte: %1 - - - - Following databases will be removed from list: %1. - Następujące bazy danych zostaną usunięte z listy: %1 - - - - Remainig objects from deleted group will be moved in place where the group used to be. - Pozostałe obiekty z usuniętej grupy będą przeniesione w miejsce, gdzie dotychczas była ta grupa. - - - - %1<br><br>Are you sure you want to continue? - %1<br><br>Czy na pewno chcesz kontynuować? - - - - Delete objects - Usuń obiekty - - - - DbTreeItemDelegate - - - error - dbtree labels - błąd - - - - (system table) - database tree label - (tabela systemowa) - - - - (virtual) - virtual table label - (wirtualna) - - - - (system index) - database tree label - (indeks systemowy) - - - - DbTreeModel - - - Database: %1 - dbtree tooltip - Baza danych: %1 - - - - Version: - dbtree tooltip - Wersja: - - - - File size: - dbtree tooltip - Rozmiar pliku: - - - - Encoding: - dbtree tooltip - Kodowanie: - - - Error details: - dbtree tooltip - Szczegóły błędu: - - - - Error: - dbtree tooltip - Błąd: - - - - Table : %1 - dbtree tooltip - Tablela: : %1 - - - - Columns (%1): - dbtree tooltip - Kolumny (%1): - - - - Indexes (%1): - dbtree tooltip - Indeksy (%1): - - - - Triggers (%1): - dbtree tooltip - Wyzwalacze (%1): - - - - Copy - Kopiuj - - - - Move - Przenieś - - - - Include data - Również dane - - - - Include indexes - Również indeksy - - - - Include triggers - Również wyzwalacze - - - - Abort - Przerwij - - - - Could not add dropped database file '%1' automatically. Manual setup is necessary. - Nie udało się automatycznie dodać upuszczonego pliku bazy '%1'. Niezbędna ręczna ingerencja. - - - - Referenced tables - Tabele powiązane - - - - Do you want to include following referenced tables as well: -%1 - Czy chcesz zawrzeć również powiązane tabele: -%1 - - - - Name conflict - Konflikt nazwy - - - - Following object already exists in the target database. -Please enter new, unique name, or press '%1' to abort the operation: - Następująy obiekt istnieje już w docelowej bazie danych. -Proszę podać nową, unikalną nazwę, lub nacisnąć '%1', aby przerwać operację. - - - - SQL statements conversion - Konwersja zapytań SQL - - - - Following error occurred while converting SQL statements to the target SQLite version: - Następujące błędy wystąpiły podczas konwersji zapytań SQL do docelowej wersji SQLite: - - - - Would you like to ignore those errors and proceed? - Czy chcesz zignorować te błędy i kontynuować? - - - - DdlHistoryWindow - - - Filter by database: - Filtruj po bazie danych: - - - - -- Queries executed on database %1 (%2) --- Date and time of execution: %3 -%4 - -- Zapytania wykonane na bazie %1 (%2) --- Data i godzina wykonania: %3 -%4 - - - - DDL history - Historia DDL - - - - DdlPreviewDialog - - - Queries to be executed - Zapytania do wykonania - - - - Don't show again - Nie pokazuj więcej - - - - DebugConsole - - - SQLiteStudio Debug Console - Konsola Debugowania SQLiteStudio - - - - EditorWindow - - - Query - Zapytanie - - - - History - Historia - - - - Results in the separate tab - Wyniki w osobnej karcie - - - - Results below the query - Wyniki pod zapytaniem - - - - - SQL editor %1 - Edytor SQL %1 - - - - Results - Wyniki - - - - Execute query - Wykonaj zapytanie - - - - Explain query - Wytłumacz zapytanie - - - - Clear execution history - sql editor - Wymaż historię zapytań - - - - Export results - sql editor - Wyeksportuj wyniki - - - - Create view from query - sql editor - Utwórz widok z zapytania - - - - Previous database - Poprzednia baza danych - - - - Next database - Następna baza danych - - - - Show next tab - sql editor - Pokaż następną kartę - - - - Show previous tab - sql editor - Pokaż poprzednią kartę - - - - Focus results below - sql editor - Aktywuj wyniki poniżej - - - - Focus SQL editor above - sql editor - Aktywuj edytor SQL powyżej - - - - Delete selected SQL history entries - sql editor - Usuń wybrane wpisy z historii SQL - - - - Active database (%1/%2) - Aktywna baza danych (%1/%2) - - - - Query finished in %1 second(s). Rows affected: %2 - Zapytanie ukończone w %1 sekund(y). Liczba przetworzonych wierszy: %2 - - - - Query finished in %1 second(s). - Zapytanie ukończone w %1 sekund(y). - - - - Editor window "%1" has uncommitted data. - Okno edytora "%1" ma niezatwierdzone dane. - - - Query finished in %2 second(s). - Zapytanie ukończone w %2 sekund(y). - - - - Clear execution history - Wymaż historię zapytań - - - - Are you sure you want to erase the entire SQL execution history? This cannot be undone. - Czy na pewno chcesz wymazać całą historię zapytań SQL? Tego nie można odwrócić. - - - - Cannot export, because no export plugin is loaded. - Nie można wyeksportować, ponieważ żadna wtyczka eksportu nie została załadowana. - - - - No database selected in the SQL editor. Cannot create a view for unknown database. - Nie wybrano bazdy danych w edytorze SQL. Nie można utworzyć widoku dla nieznanej bazy. - - - Editor window "%1" has uncommited data. - Okno edytora "%1" ma niezatwierdzone dane. - - - - ErrorsConfirmDialog - - - Errors - Błędy - - - - Following errors occured: - Wystąpiły następujące błędy: - - - - Would you like to proceed? - Czy chcesz kontynuować? - - - - ExecFromFileDialog - - - Execute SQL from file - Wykonaj SQL z pliku - - - - Input file - Plik wejściowy - - - - Path to file - Ścieżka do pliku - - - - Browse for file - Przeglądaj pliki - - - - Options - Opcje - - - - File encoding - Kodowanie pliku - - - - Skip failing SQL statements - Pomiń zapytania z błędami - - - - SQL scripts (*.sql);;All files (*) - Skrypty SQL (*.sql);;Wszystkie pliki (*) - - - - Execute SQL file - Wykonaj plik SQL - - - - Please provide file to be executed. - Proszę podać plik do wykonania - - - - Provided file does not exist or cannot be read. - Podany plik nie istnieje, lub nie można go odczytać. - - - - ExportDialog - - - Export - Eksportuj - - - - What do you want to export? - Co chcesz eksportować? - - - - A database - Bazę danych - - - - A single table - Pojedynczą tabelę - - - - Query results - Wyniki zapytania - - - - Table to export - Tabela do wyeksportowania - - - - Database - Baza danych - - - - Table - Tabela - - - - Options - Opcje - - - - When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. - Gdy ta opcja jest odznaczona, to tylko DDL tabeli (zapytanie CREATE TABLE) jest eksportowane. - - - - Export table data - Eksportuj dane tabeli - - - - Export table indexes - Eksportuj indeksy tabeli - - - - Export table triggers - Eksportuj wyzwalacze tabeli - - - - Note, that exporting table indexes and triggers may be unsupported by some output formats. - Zwróć uwagę, że eksportowanie indeksów i wyzwalaczy tabeli może nie być obsługiwane przez niektóre formaty wyjściowe. - - - - Select database objects to export - Wybierz obiekty bazy danych do eksportu - - - - Export data from tables - Eksportuj dane z tabel - - - - Select all - Zaznacz wszystko - - - - Deselect all - Odznacz wszystko - - - - - Database: - Baza danych: - - - - Query to export results for - Zapytanie dla wyników do eksportu - - - - Query to be executed for results: - Zapytanie, które należy wykonać dla wyników: - - - - Export format and options - Format eksportu i opcje - - - - Export format - Format eksportu - - - - Output - Wyjście - - - - Exported file path - Ścieżka do wyeksportowanego pliku - - - - Clipboard - Schowek - - - - File - Plik - - - - Exported text encoding: - Kodowanie wyeksportowanego tekstu: - - - - Export format options - Opcje formatu eksportowania - - - - Cancel - Anuluj - - - - - - Select database to export. - Wybierz bazę do eksportu. - - - - Select table to export. - Wybierz tabelę do eksportu. - - - - Enter valid query to export. - Wprowadź poprawne zapytanie do eksportu. - - - - Select at least one object to export. - Wybierz przynajmniej jeden obiekt do eksportu. - - - - You must provide a file name to export to. - Musisz podać nazwę pliku do którego należy wyeksportować. - - - - Path you provided is an existing directory. You cannot overwrite it. - Ścieżka którą podałeś jest istniejącym katalogiem. Nie można go nadpisać. - - - - The directory '%1' does not exist. - Katalog '%1' nie istnieje. - - - - The file '%1' exists and will be overwritten. - Plik '%1' istnieje i zostanie nadpisany. - - - - All files (*) - Wszystkie pliki (*) - - - - Pick file to export to - Wybierz plik do eksportu - - - - Internal error during export. This is a bug. Please report it. - Wystąpił wewnętrzny błąd podczas eksportu. To jest błąd programu. Proszę to zgłosić. - - - - FileExecErrorsDialog - - - Execution errors - Błędy wykonywania - - - - Following errors were encountered during execution of SQL statements from the file: - Następujące błędy wystąpiły podczas wykonywania zapytań SQL z pliku: - - - - SQL - SQL - - - - Error - Błąd - - - - Statements that were executed successfully were commited. - Wyniki zapytań, które zostały wykonane, zostały zatwierdzone. - - - - Statements that were executed successfully were rolled back. - Wyniki zapytań, które zostały wykonane zostały wycofane. - - - - FontEdit - - - Choose font - font configuration - Wybierz czcionkę - - - - Form - - - Active SQL formatter plugin - Aktywna wtyczka formatera SQL - - - - FormView - - - Commit row - form view - Zatwierdź wiersz - - - - Rollback row - form view - Wycofaj wiersz - - - - First row - form view - Pierwszy wiersz - - - - Previous row - form view - Poprzedni wiersz - - - - Next row - form view - Następny wiersz - - - - Last row - form view - Ostatni wiersz - - - - Insert new row - form view - Wstaw nowy wiersz - - - - Delete current row - form view - Usuń bieżący wiersz - - - - FunctionsEditor - - - Filter funtions - Filtruj funkcje - - - - Function name: - Nazwa funkcji: - - - - Implementation language: - Język implementacji: - - - - Type: - Typ: - - - - Input arguments - Argumenty wejściowe - - - - Undefined - Niezdefiniowane - - - - Databases - Bazy danych - - - - Register in all databases - Zarejestruj we wszystkich bazach danych - - - - Register in following databases: - Zarejestruj w następujących bazach danych: - - - - Initialization code: - Kod inicjalizacji: - - - - - Function implementation code: - Kod implementacji funkcji: - - - - Final step implementation code: - Kod implementacji ostatniego kroku: - - - - SQL function editor - Edytor funkcji SQL - - - - Commit all function changes - Zatwierdź zmiany we wszystkich funkcjach - - - - Rollback all function changes - Wycofaj zmiany we wszystkich funkcjach - - - - Create new function - Utwórz nową funkcję - - - - Delete selected function - Usuń wybraną funkcję - - - - Custom SQL functions manual - Podręcznik własnych funkcji SQL - - - - Add function argument - Dodaj argument funkcji - - - - Rename function argument - Zmień nazwę argumentu funkcji - - - - Delete function argument - Usuń argument funkcji - - - - Move function argument up - Przesuń argument funkcji w górę - - - - Move function argument down - Przesuń argument funkcji w dół - - - - Scalar - Skalarna - - - - Aggregate - Agregacyjna - - - - Enter a non-empty, unique name of the function. - Wprowadź niepustą, unikalną nazwę funkcji - - - - Pick the implementation language. - Wybierz język implementacji. - - - - Per step code: - Kod pojedynczego kroku: - - - - Enter a non-empty implementation code. - Wprowadź niepusty kod implementacji. - - - - argument - new function argument name in function editor window - argument - - - - Functions editor window has uncommitted modifications. - Okno edytora funkcji ma niezatwierdzone modyfikacje. - - - Functions editor window has uncommited modifications. - Okno edytora funkcji ma niezatwierdzone zmiany. - - - - ImportDialog - - - Import data - Importuj dane - - - - Table to import to - Tabela do której należy importować - - - - Table - Tabela - - - - Database - Baza danych - - - - Data source to import from - Źródło danych z którego należy importować - - - - Data source type - Typ źródła danych - - - - Options - Opcje - - - - Input file: - Plik wejściowy: - - - - Text encoding: - Kodowanie tekstu: - - - - <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> - <p>Jeśli włączone, to jakiekolwiek naruszenia ograniczeń, lub niepoprawny format danych (niepoprawna liczba kolumn), lub jakikolwiek inny problem, który wystąpi podczas importu zostanie zignorowany i importowanie będzie kontynuowane.</p> - - - - Ignore errors - Ignoruj błędy - - - - Data source options - Opcje źródła danych - - - - Cancel - Anuluj - - - - If you type table name that doesn't exist, it will be created. - Jeśli wpiszesz nazwę tabeli, która nie istnieje, to zostanie ona stworzona. - - - - Enter the table name - Wprowadź nazwę tabeli - - - - Select import plugin. - Wybierz wtyczkę importu - - - - You must provide a file to import from. - Musisz podać plik z którego należy zaimportować. - - - - The file '%1' does not exist. - Plik '%1' nie istnieje. - - - - Path you provided is a directory. A regular file is required. - Ścieżka którą podałeś jest katalogiem. Wymagany jest zwykły plik. - - - - Pick file to import from - Wybierz plik do importu - - - - IndexDialog - - - - Index - Indeks - - - - On table: - Na tabeli: - - - - Index name: - Nazwa indeksu: - - - - Partial index condition - Warunek indeksu częściowego: - - - - Unique index - Indeks unikalny - - - - Column - Kolumna - - - - Collation - Zestawienie - - - - Sort - Sortowanie - - - - Delete selected indexed expression - Usuń wybrane wyrażenie indeksowane. - - - - Moves selected index column up in the order, making it more significant in the index. - Przenosi wybraną indeksowaną kolumnę wyżej w kolejności, czyniąc ją ważniejszą w indeksie. - - - - Moves selected index column down in the order, making it less significant in the index. - Przenosi wybraną indeksowaną kolumnę niżej w kolejności, czyniąc ją mniej ważną w indeksie. - - - - Edit selected indexed expression - Edytuj wybrane wyrażenie indeksowane - - - - Add indexed expression - Dodaj wyrażenie indeksowane - - - - DDL - DDL - - - - Tried to open index dialog for closed or inexisting database. - Próbowano otworzyć okno indeksu dla zamkniętej lub nieistniejącej bazy. - - - - Could not process index %1 correctly. Unable to open an index dialog. - Nie udało się przetworzyć poprawnie indeksu %1. Nie można otworzyć okna indeksu. - - - - Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. - Unikalny indeks nie może zawierać wyrażeń indeksowanych. Albo usuń wyrażenia z poniższej listy, albo odznacz tę opcję. - - - - Pick the table for the index. - Wybierz tabelę dla indeksu. - - - - Select at least one column. - Zaznacz przynajmniej jedną kolumnę. - - - - Enter a valid condition. - Wprowadź poprawny warunek. - - - - default - index dialog - domyślne - - - - Sort order - table constraints - Kierunek sortowania - - - - - Error - index dialog - Błąd - - - - Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? - Nie można utworzyć indeksu, ponieważ wartości w wybranych kolumnach nie są unikalne. Czy chcesz wykonać zapytanie SELECT, aby zobaczyć wartości stwarzające problem? - - - - An error occurred while executing SQL statements: -%1 - Wystąpił błąd podczas wykonywania zapytań SQL: -%1 - - - - IndexExprColumnDialog - - - Indexed expression - Wyrażenie indeksowane - - - - Expression to index - Wyrażenie do indeksowania - - - - This expression is already indexed by the index. - To wyrażenie jest już indeksowane przez indeks. - - - - Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. - Kolumna powinna być indeksowana bezpośrednio, nie przez wyrażenie. Albo rozszerz to wyrażenie, aby zwierało coś więcej niż tylko nazwę kolumny, albo przerwij i wybierz tą kolumnę bezpośrednio w oknie dialogowym indeksu. - - - - Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. - Kolumna '%1' nie należy do tabeli objętej tym indeksem. Wyrażenia indeksowane mogą odnosić się jedynie do kolumn z indeksowanej tabeli. - - - - It's forbidden to use 'SELECT' statements in indexed expressions. - Nie można używać zapytań 'SELECT' w wyrażeniach indeksowanych. - - - - Enter an indexed expression. - Wprowadź wyrażenie indeksowane. - - - - Invalid expression. - Niepoprawne wyrażenie. - - - - LanguageDialog - - - Language - Język - - - - Please choose language: - Proszę wybrać język: - - - - MainWindow - - - Database toolbar - Pasek narzędzi baz danych - - - - Structure toolbar - Pasek narzędzi struktury - - - - Tools - Narzędzia - - - - Window list - Lista okien - - - - View toolbar - Pasek narzędzi widoku - - - - Configuration widgets - Kontrolki konfiguracji - - - - Syntax highlighting engines - Silniki podświetlania składni - - - - Data editors - Edytory danych - - - - Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. - Uruchomiono tryb debugowania. Wciśnij %1 lub wybierz menu 'Pomoc / Otwórz konsolę debugowania' aby otworzyć konsolę debugowania. - - - - Running in debug mode. Debug messages are printed to the standard output. - Uruchomiono tryb debugowania. Wiadomości debugujące są wyświetlane na standardowym wyjściu. - - - - You need to restart application to make the language change take effect. - Należy zrestartować aplikację, aby nastąpiła zmiana języka. - - - Open SQL editor - Otwórz edytor SQL - - - Open DDL history - Otwórz historię DDL - - - Open SQL functions editor - Otwórz edytor funkcji SQL - - - Open collations editor - Otwórz edytor zestawień - - - Import - Importuj - - - Export - Eksportuj - - - Open configuration dialog - Otwórz okno konfiguracji - - - Tile windows - Ustaw okna w płytki - - - Tile windows horizontally - Ustaw okno poziomo - - - Tile windows vertically - Ustaw okna pionowo - - - Cascade windows - Ustaw okna kaskadowo - - - - Next window - Następne okno - - - - Previous window - Poprzednie okno - - - - Hide status field - Ukryj pole statusu - - - Close selected window - Zamknij wybrane okno - - - Close all windows but selected - Zamknij wszystkie okna, oprócz wybranego - - - Close all windows - Zamknij wszystkie okna - - - Restore recently closed window - Przywróć ostatnio zamknięte okno - - - Rename selected window - Zmień nazwę wybranego okna - - - - Open Debug Console - Otwórz Konsolę Debugowania - - - - Open CSS Console - Otwórz konsolę CSS - - - Report a bug - Zgłoś błąd - - - Propose a new feature - Zgłoś pomysł - - - About - O programie - - - Licenses - Licencje - - - Open home page - Otwórz stronę domową - - - Open forum page - Otwórz stronę forum - - - User Manual - Podręcznik Użytkownika - - - SQLite documentation - Dokumentacja SQLite - - - Report history - Historia zgłoszeń - - - Check for updates - Sprawdź aktualizacje - - - Database - menubar - Baza danych - - - Structure - menubar - Struktura - - - View - menubar - Widok - - - - Window list - menubar view menu - Lista okien - - - Tools - menubar - Narzędzia - - - Help - Pomoc - - - - Open SQL &editor - Otwórz &edytor SQL - - - - Open DDL &history - Otwórz &historię DDL - - - - Open SQL &functions editor - Otwórz edytor &funkcji SQL - - - - Open &collations editor - Otwórz edytor &zestawień - - - - Open ex&tension manager - O&twórzy menadżera rozszerzeń - - - - &Import - &Importuj - - - - E&xport - E&ksportuj - - - - Open confi&guration dialog - Otwórz okno konfi&guracji - - - - &Tile windows - Ustaw okna w pły&tki - - - - Tile windows &horizontally - Ustaw okno po&ziomo - - - - Tile windows &vertically - Ustaw okna pio&nowo - - - - &Cascade windows - Ustaw okna &kaskadowo - - - - Close selected &window - Zamknij &wybrane okno - - - - Close all windows &but selected - Zamknij wszystkie okna, &oprócz wybranego - - - - Close &all windows - Z&amknij wszystkie okna - - - - Re&store recently closed window - Przywróć o&statnio zamknięte okno - - - - &Rename selected window - Zmień nazwę wyb&ranego okna - - - - Report a &bug - Zgłoś &błąd - - - - Propose a new &feature - Zgłoś &pomysł - - - - &About - O progra&mie - - - - &Licenses - &Licencje - - - - Open home &page - Otwórz stronę &domową - - - - Open fo&rum page - Otwórz stronę &forum - - - - User &Manual - &Podręcznik Użytkownika - - - - SQLite &documentation - &Dokumentacja SQLite - - - - Bugs and feature &requests - Błęd&y i pomysły - - - - Check for &updates - Sprawdź akt&ualizacje - - - - &Database - menubar - Bazy &danych - - - - &Structure - menubar - &Struktura - - - - &View - menubar - &Widoki - - - - &Tools - menubar - &Narzędzia - - - - &Help - &Pomoc - - - - Could not set style: %1 - main window - Nie udało się ustawić stylu: %1 - - - - Cannot export, because no export plugin is loaded. - Nie można wyeksportować, ponieważ żadna wtyczka eksportu nie została załadowana. - - - - Cannot import, because no import plugin is loaded. - Nie można zaimportować, ponieważ żadna wtyczka importu nie została załadowana. - - - - Rename window - Zmień nazwę okna - - - - Enter new name for the window: - Wprowadź nową nazwę dla okna: - - - - New updates are available. <a href="%1">Click here for details</a>. - Nowe aktualizacje są dostępne: <a href="%1">Kliknij aby poznać szczegóły</a>. - - - - You're running the most recent version. No updates are available. - Uruchomiona jest najnowsza wersja. Nie ma dostępnych aktualizacji. - - - - Database passed in command line parameters (%1) was already on the list under name: %2 - Baza danych podana w parametrach linii poleceń (%1) była już na liście pod nazwą: %2 - - - - Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 - Baza danych podana w linii poleceń (%1) jest tymczasowo dodana do listy pod nazwą: %2 - - - - Could not add database %1 to list. - Nie udało się dodać bazy danych %1 do listy. - - - - MdiWindow - - Uncommited changes - Niezatwierdzone dane - - - - Uncommitted changes - Niezatwierdzone zmiany - - - - Close anyway - Zamknij mimo to - - - - Don't close - Nie zamykaj - - - - MultiEditor - - - Null value - multieditor - Wartość null - - - - Configure editors for this data type - Skonfiguruj edytory dla tego typu danych - - - - Open another tab - Otwórz kolejną zakładkę - - - - Data editor plugin '%1' not loaded, while it is defined for editing '%1' data type. - Wtyczka edytora danych '%1' nie jest załadowana, podczas gdy jest ona zdefiniowana do edycji typu danych '%1'. - - - - Deleted - multieditor - Usunięto - - - - Read only - multieditor - Tylko do odczytu - - - - MultiEditorBool - - Boolean - Logiczna - - - - MultiEditorBoolPlugin - - - Boolean - Logiczna - - - - MultiEditorDate - - Date - Data - - - - MultiEditorDatePlugin - - - Date - Data - - - - MultiEditorDateTime - - Date & time - Data i czas - - - - MultiEditorDateTimePlugin - - - Date & time - Data i czas - - - - MultiEditorHex - - Hex - Heks - - - - MultiEditorHexPlugin - - - Hex - Heks - - - - MultiEditorNumeric - - Number - Liczba - - - Number - numeric multi editor tab name - Liczba - - - - MultiEditorNumericPlugin - - - Number - numeric multi editor tab name - Liczba - - - - MultiEditorText - - Text - Tekst - - - - Tab changes focus - Tabulator zmienia aktywność - - - - Cut - Wytnij - - - - Copy - Kopiuj - - - - Paste - Wklej - - - - Delete - Usuń - - - - Undo - Cofnij - - - - Redo - Przywróć - - - - MultiEditorTextPlugin - - - Text - Tekst - - - - MultiEditorTime - - Time - Czas - - - - MultiEditorTimePlugin - - - Time - Czas - - - - NewConstraintDialog - - - New constraint - Nowe ograniczenie - - - - - Primary Key - new constraint dialog - Klucz główny - - - - - Foreign Key - new constraint dialog - Klucz obcy - - - - - Unique - new constraint dialog - Wartości unikalne - - - - - Check - new constraint dialog - Warunek - - - - Not NULL - new constraint dialog - Niepuste - - - - Collate - new constraint dialog - Zestawienie - - - - Default - new constraint dialog - Wartość domyślna - - - - NewVersionDialog - - - SQLiteStudio updates - Aktualizacje SQLiteStudio - - - - New updates are available! - Dostępne są nowe aktualizacje! - - - - Component - Komponent - - - - This application will be closed and the update installer will start to download and install all the updates. - Aplikacja zostanie zamknięta i uruchomiony zostanie instalator aktualizacji, który ściągnie i zainstaluje wszystkie aktualizacje. - - - Current version - Obecna wersja - - - - Update version - Wersja aktualizacji - - - - Check for updates on startup - Sprawdzaj aktualizacje na starcie - - - - Update to new version! - Aktualizuj do nowej wersji! - - - The update will be automatically downloaded and installed. This will also restart application at the end. - Aktualizacja będzie pobrana i zainstalowana automatycznie. Spowoduje to również na końcu restart aplikacji. - - - - Not now. - Nie teraz. - - - - Don't install the update and close this window. - Nie instaluj aktualizacji i zamknij to okno. - - - - PopulateConfigDialog - - - Populating configuration - Konfiguracja zaludniania - - - - Configuring <b>%1</b> for column <b>%2</b> - Konfigurowanie <b>%1</b> dla kolumny <b>%2</b> - - - - PopulateDialog - - - Populate table - Zaludnij tabelę - - - - Database - Baza danych - - - - Table - Tabela - - - - Columns - Kolumny - - - - Number of rows to populate: - Liczba wierszy do zaludnienia: - - - - Populate - populate dialog button - Zaludnij - - - - Abort - Przerwij - - - - Configure - Konfiguruj - - - - Populating configuration for this column is invalid or incomplete. - Konfiguracja zaludniania dla tej kolumny jest niepoprawna lub niekompletna. - - - - Select database with table to populate - Wybierz bazę danych z tabelą do zaludnienia - - - - Select table to populate - Wybierz tabelę do zaludnienia - - - - You have to select at least one column. - Musisz zaznaczyć przynajmniej jedną kolumnę. - - - - QObject - - - The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. - Mechanizm wykonywania zapytań miał problemy z wyciągnięciem własności ROWID. To może być błąd aplikacji. Możesz to zgłosić. - - - - Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. - Ta kolumna jest wynikiem wyrażenia SQL, a nie zwykłej selekcji kolumny. Takie kolumny nie mogą być edytowane. - - - - Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. - Ta kolumna należy do systemowej tabeli SQLite. Te tabele nie mogą być edytowane bezpośrednio. - - - - Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). - Nie można edytować kolumn, które są wynikiem złożonego zapytania %1 (tego, które zawiera słowo kluczowe %2, %3, lub %4). - - - - Cannot edit results of query other than %1. - Nie można edytować wyników zapytania innego niż %1. - - - - Cannot edit columns that are result of aggregated %1 statements. - Nie można edytować kolumn, które są wynikiem zapytania agregacyjnego %1. - - - - Cannot edit columns that are result of %1 statement. - Nie można edytować kolumn, które są wynikiem zapytania %1. - - - - Cannot edit columns that are result of common table expression statement (%1). - Nie można edytować kolumn, które są wynikiem zapytania ze wspólnym wyrażeniem tabeli (%1). - - - - - - - on conflict: %1 - data view tooltip - w razie konfliktu: %1 - - - - references table %1, column %2 - data view tooltip - odwołuje się do tabeli %1, kolumny %2 - - - - condition: %1 - data view tooltip - warunek: %1 - - - - collation name: %1 - data view tooltip - nazwa zestawienia: %1 - - - - Data grid view - Widok siatki danych - - - - Copy cell(s) contents to clipboard - Skopiuj zawartość komórek do schowka. - - - - Copy cell(s) contents together with header to clipboard - Skopiuj zawartość komórek z z nagłówkiem do schowka - - - - Paste cell(s) contents from clipboard - Wklej zawartość komórkek ze schowka. - - - - Set empty value to selected cell(s) - Ustaw pustą wartość dla wybranych komórek - - - - Set NULL value to selected cell(s) - Ustaw wartość NULL dla wybranych komórek - - - - Commit changes to cell(s) contents - Zatwierdź zmiany dla zawartości komórek - - - - Rollback changes to cell(s) contents - Wycofaj zmiany dla zawartości komórek - - - - Delete selected data row - Usuń wybrane wiersze danych - - - - Insert new data row - Wstaw nowy wiersz danych - - - - Open contents of selected cell in a separate editor - Otwórz zawartość wybranej komórki w osobnym edytorze - - - - Total pages available: %1 - Liczba dostępnych stron: %1 - - - - Total rows loaded: %1 - Liczba załadowanych wierszy: %1 - - - - Data view (both grid and form) - Widok danych (zarówno siatki i formularza) - - - - Refresh data - Odśwież dane - - - - Switch to grid view of the data - Przełącz do widoku siatki danych - - - - Switch to form view of the data - Przełącz do widoku formularza danych - - - - Database list - Lista baz - - - - Delete selected item - Usuń zaznaczony element - - - - Clear filter contents - Wyczyść zawartość filtra - - - - Refresh schema - Odśwież schemat - - - - Refresh all schemas - Odśwież wszystkie schematy - - - - Add database - Dodaj bazę danych - - - - Select all items - Zaznacz wszystkie elementy - - - - Copy selected item(s) - Kopiuj zaznaczone elementy - - - - - - Paste from clipboard - Wklej ze schowka - - - - Tables - Tabele - - - - Indexes - Indeksy - - - - Triggers - Wyzwalacze - - - - Views - Widoki - - - - Columns - Kolumny - - - - Data form view - Widok formularza danych - - - - Commit changes for current row - Zatawierdź zmiany dla bieżącego wiersza - - - - Rollback changes for current row - Wycofaj zmiany dla bieżącego wiersza - - - - Go to first row on current page - Przejdź do pierwszego wiersza na bieżącej stronie - - - - Go to next row - Przejdź do następnego wiersza - - - - Go to previous row - Przejdź do poprzedniego wiersza - - - - Go to last row on current page - Przejdź do ostatniego wiersza na bieżącej stronie - - - - Insert new row - Wstaw nowy wiersz - - - - Delete current row - Usuń bieżący wiersz - - - - Main window - Okno główne - - - - Open SQL editor - Otwórz edytor SQL - - - - Previous window - Poprzednie okno - - - - Next window - Następne okno - - - - Hide status area - Ukryj pole statusu - - - - Open configuration dialog - Otwórz okno konfiguracji - - - - Open Debug Console - Otwórz Konsolę Debugowania - - - - Open CSS Console - Otwórz konsolę CSS - - - - Cell text value editor - Edytor tekstowy wartości komórki - - - - - Cut selected text - Wytnij wybrany tekst - - - - - Copy selected text - Skopiuj wybrany tekst - - - - - Delete selected text - Usuń wybrany tekst - - - - - Undo - Cofnij - - - - - Redo - Przywróć - - - - SQL editor input field - Pole wprowadzania edytora SQL - - - - Select whole editor contents - Zaznacz całą zawartość edytora - - - - Save contents into a file - Zapisz zawartość do pliku - - - - Load contents from a file - Wczytaj zawartość z pliku - - - - Find in text - Znajdź w tekście - - - - Find next - Znajdź następny - - - - Find previous - Znajdź poprzedni - - - - Replace in text - Zmień w tekście - - - - Delete current line - Usuń bieżącą linię - - - - Request code assistant - Wywołaj asystenta kodu - - - - Format contents - Formatuj zawartość - - - - Move selected block of text one line down - Przenieś wybrany blok tekstu o jedną linię w dół - - - - Move selected block of text one line up - Przenieś wybrany blok tekstu o jedną linię w górę - - - - Copy selected block of text and paste it a line below - Skopiuj wybrany blok tekstu i wklej go poniżej - - - - Copy selected block of text and paste it a line above - Skopiuj wybrany blok tekstu i wklej go powyżej - - - - Toggle comment - Przełącz komentarz - - - - All SQLite databases - Wszystkie bazy danych SQLite - - - - All files - Wszystkie pliki - - - - - Database file - Plik bazy danych - - - Reports history window - Okno history zgłoszeń - - - Delete selected entry - Usuń wybraną pozycję - - - - SQL editor window - Okno edytora SQL - - - - Execute query - Wykonaj zapytanie - - - - Execute "%1" query - Wykonaj zapytanie "%1" - - - - Switch current working database to previous on the list - Zmień roboczą bazę danych na poprzednią z listy - - - - Switch current working database to next on the list - Zmień roboczą bazę danych na następną z listy - - - - Go to next editor tab - Przejdź do następnej karty edytora - - - - Go to previous editor tab - Przejdź do poprzedniej karty edytora - - - - Move keyboard input focus to the results view below - Przenieś aktywność klawiatury do widoku wyników poniżej - - - - Move keyboard input focus to the SQL editor above - Przenieś aktywność klawiatury do edytora SQL powyżej - - - - Delete selected SQL history entries - Usuń wybrane wpisy z historii SQL - - - - Table window - Okno tabeli - - - - Refresh table structure - Odśwież strukturę tabeli - - - - Add new column - Dodaj nową kolumnę - - - - Edit selected column - Edytuj wybraną kolumnę - - - - Delete selected column - Usuń wybraną kolumnę - - - - Export table data - Eksportuj dane tabeli - - - - Import data to the table - Importuj dane do tabeli - - - - Add new table constraint - Dodaj nowe ograniczenie tabeli - - - - Edit selected table constraint - Edytuj wybrane ograniczenie tabeli - - - - Delete selected table constraint - Usuń wybrane ograniczenie tabeli - - - - Refresh table index list - Odśwież listę indeksów tabeli - - - - Add new index - Dodaj nowy indeks - - - - Edit selected index - Edytuj wybrany indeks - - - - Delete selected index - Usuń wybrany indeks - - - - Refresh table trigger list - Odśwież listę wyzwalaczy tabeli - - - - - Add new trigger - Dodaj nowy wyzwalacz - - - - - Edit selected trigger - Edytuj wybrany wyzwalacz - - - - - Delete selected trigger - Usuń wybrany wyzwalacz - - - - - Go to next tab - Przejdź do następnej karty - - - - - Go to previous tab - Przejdź do poprzedniej karty - - - - A view window - Okno widoku - - - - Refresh view trigger list - Odśwież listę wizwalaczy widoku - - - - QuitConfirmDialog - - Uncommited changes - Niezatwierdzone dane - - - - Uncommitted changes - Niezatwierdzone zmiany - - - - Are you sure you want to quit the application? - -Following items are pending: - Czy na pewno chcesz zamknąć aplikację? - -Następujące elementy są w toku: - - - - SearchTextDialog - - - Find or replace - Znajdź lub zastąp - - - - Find: - Znajdź: - - - - Case sensitive - Uwzględniaj wielkość liter - - - - Search backwards - Szukaj wstecz - - - - Regular expression matching - Dopasowywanie wyrażeniem regularnym - - - - Replace && -find next - Zastąp i -znajdź następny - - - - Replace with: - Zastąp: - - - - Replace all - Zastąp wszystkie - - - - Find - Znajdź - - - - SortDialog - - - Sort by columns - Sortuj wg. kolumn - - - - - Column - Kolumna - - - - - Order - Kierunek - - - - Sort by: %1 - Sortuj po: %1 - - - - Move column up - Przesuń kolumnę w górę - - - - Move column down - Przesuń kolumnę w dół - - - - SqlEditor - - - Cut - sql editor - Wytnij - - - - Copy - sql editor - Kopiuj - - - - Paste - sql editor - Wklej - - - - Delete - sql editor - Usuń - - - - Select all - sql editor - Zaznacz wszystko - - - - Undo - sql editor - Cofnij - - - - Redo - sql editor - Przywróć - - - - Complete - sql editor - Dopełnij - - - - Format SQL - sql editor - Formatuj SQL - - - - Save SQL to file - sql editor - Zapisz SQL do pliku - - - - Select file to save SQL - sql editor - Wybierz plik do zapisu SQL - - - - Load SQL from file - sql editor - Wczytaj SQL z pliku - - - - Delete line - sql editor - Usuń linię - - - - Move block down - sql editor - Przesuń blok w dół - - - - Move block up - sql editor - Przesuń blok w górę - - - - Copy block down - sql editor - Skopiuj blok w dół - - - - Copy up down - sql editor - Skopiuj blok w górę - - - - Find - sql editor - Znajdź - - - - Find next - sql editor - Znajdź następny - - - - Find previous - sql editor - Znajdź poprzedni - - - - Replace - sql editor - Zastąp - - - - Toggle comment - sql editor - Przełącz komentarz - - - - Saved SQL contents to file: %1 - Zapisano zawartość SQL do pliku: %1 - - - - Syntax completion can be used only when a valid database is set for the SQL editor. - Dopełnianie składni może być użyte tylko wtedy, gdy poprawna baza danych jest ustawiona w edytorze SQL. - - - - Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. - Zawartość edytora SQL jest ogromna, więc sprawdzanie błędów i podświetlanie istniejących obiektów zostało tymczasowo wyłączone. - - - - Save to file - Zapisz do pliku - - - - Could not open file '%1' for writing: %2 - Nie udało się otworzyć pliku '%1' do zapisu: %2 - - - - SQL scripts (*.sql);;All files (*) - Skrypty SQL (*.sql);;Wszystkie pliki (*) - - - - Open file - Otwórz plik - - - - Could not open file '%1' for reading: %2 - Nie udało się otworzyć pliku '%1' do odczytu: %2 - - - - Reached the end of document. Hit the find again to restart the search. - Osiągnięto koniec dokumentu. Wciśnij szukanie ponownie, aby zrestartować szukanie. - - - - SqlQueryItem - - - Column: - data view tooltip - Kolumna: - - - - Data type: - data view - Typ danych: - - - - Table: - data view tooltip - Tabela: - - - - Constraints: - data view tooltip - Ograniczenie: - - - This cell is not editable, because: %1 - Tej komórki nie można edytować, ponieważ: %1 - - - - Cannot load the data for a cell that refers to the already closed database. - Nie można załadować danych dla komórki, która odwołuje się do zamkniętej już bazy danych. - - - - SqlQueryItemDelegate - - Cannot edit this cell. Details: %2 - Nie można edytować tej komórki. Szczegóły: %2 - - - - The row is marked for deletion. - Wiersz jest zaznaczony do usunięcia. - - - - - - - - Cannot edit this cell. Details: %1 - Nie można edytować tej komórki. Szczegóły: %1 - - - - - Structure of this table has changed since last data was loaded. Reload the data to proceed. - Struktura tej tabeli zmieniła się od ostatniego ładowania danych. Przeładuj dane, aby kontynuować. - - - - Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). - Edytowanie ogromnych ilości danych w podręcznym edytorze nie jest dobrym pomysłem. Może być on powolny i nieporęczny. Lepiej edytować takie duże ilości danych w Widoku Formularza, lub w osobnym oknie edytora (dostępnym w menu prawego kliknięcia myszy). - - - - Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. - Klucz obcy dla kolumny %2 ma więcej niż %1 możliwych wartości. To zbyt wiele, by wyświetlić w liście rozwijanej. Musisz edytować wartość ręcznie. - - - - SqlQueryModel - - - - Only one query can be executed simultaneously. - Tylko jedno zapytanie może być wykonywane w danym momencie. - - - Uncommited data - Niezatwierdzone dane - - - There are uncommited data changes. Do you want to proceed anyway? All uncommited changes will be lost. - Niektóre zmiany w danych nie zostały zatwierdzone. Czy na pewno chcesz kontynuować? Wszystkie niezatwierdzone zmiany zostaną utracone. - - - - Cannot commit the data for a cell that refers to the already closed database. - Nie można zatwierdzić danych dla komórki, która odnosi się do zamkniętej już bazy danych. - - - - Could not begin transaction on the database. Details: %1 - Nie udało się rozpocząć transakcji na bazie danych. Szczegóły: %1 - - - An error occurred while commiting the transaction: %1 - Wystąpił błąd podczas zatwierdzania transakcji: %1 - - - - An error occurred while rolling back the transaction: %1 - Wystąpił błąd podczas wycofywania transakcji: %1 - - - - Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. - Próbowano zatwierdzić komórkę, której nie można edytować (a mimo to została zmodyfikowana i czeka na zatwierdzenie)! To jest błąd. Proszę to zgłosić. - - - An error occurred while commiting the data: %1 - Wystąpił błąd podczas zatwierdzania danych: %1 - - - - - Error while executing SQL query on database '%1': %2 - Błąd podczas wykonywania zapytania SQL na bazie '%1': %2 - - - Error while executing SQL query: %1 - Błąd podczas wykonywania zapytania SQL: %1 - - - - Uncommitted data - Niezatwierdzone dane - - - - There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. - Niektóre zmiany w danych nie zostały zatwierdzone. Czy na pewno chcesz kontynuować? Wszystkie niezatwierdzone zmiany zostaną utracone. - - - - An error occurred while committing the transaction: %1 - Wystąpił błąd podczas zatwierdzania transakcji: %1 - - - - An error occurred while committing the data: %1 - Wystąpił błąd podczas zatwierdzania danych: %1 - - - - Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. - Liczba wierszy na stronę została zmniejszona do %1, w związku z liczbą kolumn (%2) w widoku danych. - - - - Error while loading query results: %1 - Błąd podczas wczytywania wyników zapytania: %1 - - - - Insert multiple rows - Wstaw wiele wierszy - - - - Number of rows to insert: - Liczba wierszy do wstawienia: - - - - SqlQueryView - - - Go to referenced row in... - Idź do powiązanego wiersza w... - - - - Copy - Kopiuj - - - - Copy as... - Kopiuj jako... - - - - Paste - Wklej - - - - Paste as... - Wklej jako... - - - - Set NULL values - Ustaw wartości NULL - - - - Erase values - Wymaż wartości - - - - Edit value in editor - Edytuj wartość w edytorze - - - - Commit - Zatwierdź - - - - Copy with headers - Kopiuj z nagłówkami - - - - Rollback - Wycofaj - - - - Commit selected cells - Zatwierdź zaznaczone komórki - - - - Rollback selected cells - Wycofaj zaznaczone komórki - - - - Define columns to sort by - Zdefiniuj kolumny po których sortować - - - - Remove custom sorting - Wycofaj własne sortowanie - - - - Insert row - Wstaw wiersz - - - - Insert multiple rows - Wstaw wiele wierszy - - - - Delete selected row - Usuń zaznaczony wiersz - - - - Show value in a viewer - Pokaż wartość w przeglądarce - - - - Generate query for selected cells - Generuj zapytanie dla wybranych komórek - - - - No items selected to paste clipboard contents to. - Nie wybrano elementów do których należy wkleić zawartość schowka. - - - - Go to referenced row in table '%1' - Idź do powiązanego wiersza w tabeli '%1' - - - - table '%1' - tabela '%1' - - - - Referenced row (%1) - Powiązany wiersz (%1) - - - - Trim pasted text? - Przyciąć wklejany tekst? - - - - The pasted text contains leading or trailing white space. Trim it automatically? - Wklejany tekst zawiera spacje na początku lub końcu. Czy przyciąć go automatycznie? - - - - Edit value - Edytuj wartość - - - - SqlTableModel - - Error while commiting new row: %1 - Błąd podczas zatwierdzania nowego wiersza: %1 - - - - Error while committing new row: %1 - Błąd podczas zatwierdzania nowego wiersza: %1 - - - - Error while deleting row from table %1: %2 - Błąd podczas usuwania wiersza z tabeli %1: %2 - - - - SqliteExtensionEditor - - - Filter extensions - Filtruj rozszerzenia - - - - Leave empty to use default function - Pozostaw puste, aby użyć domyślnej funkcji - - - - Extension file - Plik rozszerzenia - - - - Initialization function - Funkcja inicjalizująca - - - - Databases - Bazy danych - - - - Register in all databases - Zarejestruj we wszystkich bazach danych - - - - Register in following databases: - Zarejestruj w następujących bazach danych: - - - - Extension manager window has uncommitted modifications. - Okno menadżera rozszerzeń ma niezatwierdzone modyfikacje. - - - - Extension manager - Menadżer rozszerzeń - - - - Commit all extension changes - Zatwierdź wszystkie zmiany w rozszerzeniach - - - - Rollback all extension changes - Wycofaj wszystkie zmiany w rozszerzeniach - - - - Add new extension - Dodaj nowe rozszerzenie - - - - Remove selected extension - Usuń wybrane rozszerzenie - - - - Editing extensions manual - Podręcznik edytowania rozszerzeń - - - - File with given path does not exist or is not readable. - Plik o podanej ścieżce nie istnieje lub nie można go odczytać. - - - - Unable to load extension: %1 - Nie można załadować rozszerzenia: %1 - - - - Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. - Niepoprawna nazwa funkcji inicjalizującej. Nazwa funkcji może zawierać jedynie znaki alfanumeryczne i znak podkreślenia. - - - - Dynamic link libraries (*.dll);;All files (*) - Biblioteki linkowania dynamicznego (*.dll);;Wszystkie pliki (*) - - - - Shared objects (*.so);;All files (*) - Obiekty wspóldzielone (*.so);;Wszystkie pliki (*) - - - - Dynamic libraries (*.dylib);;All files (*) - Biblioteki dynamiczne (*.dylib);;Wszystkie pliki (*) - - - - All files (*) - Wszystkie pliki (*) - - - - Open file - Otwórz plik - - - - StatusField - - - Status - Status - - - - Copy - Kopiuj - - - - Clear - Wyczyść - - - - TableConstraintsModel - - - Type - table constraints - Typ - - - - Details - table constraints - Szczegóły - - - - Name - table constraints - Nazwa - - - - TableForeignKeyPanel - - - Foreign table: - Tabela obca: - - - - SQLite 2 does not support foreign keys officially, -but it's okay to use them anyway. - SQLite 2 oficjalnie nie obsługuje kluczy obcych, -ale można ich używać. - - - - Columns - Kolumny - - - - Local column - Kolumna lokalna - - - - Foreign column - Kolumna obca - - - - Reactions - Reakcje - - - - Deferred foreign key - Klucz obcy odroczony - - - - Named constraint - Nazwane ograniczenie - - - - Constraint name - Nazwa ograniczenia - - - - Pick the foreign column. - Wybierz kolumnę obcą - - - - Pick the foreign table. - Wybierz tabelę obcą - - - - Select at least one foreign column. - Wybierz przynajmnie jedną kolumnę obcą. - - - - Enter a name of the constraint. - Wprowadź nazwę ograniczenia. - - - - Foreign column - table constraints - Kolumna obca - - - - TablePrimaryKeyAndUniquePanel - - - Columns - Kolumny - - - - Column - Kolumna - - - - Collation - Zestawienie - - - - Sort - Sortowanie - - - - Valid only for a single column with INTEGER data type - Dozwolone tylko dla jednej kolumny o typie danych INTEGER - - - - Autoincrement - Autoinkrementacja - - - - Named constraint - Nazwane ograniczenie - - - - Constraint name - Nazwa ograniczenia - - - - On conflict - W razie konfliktu - - - - Collate - table constraints - Zestawienie - - - - Sort order - table constraints - Kierunek sortowania - - - - Select at least one column. - Zaznacz przynajmniej jedną kolumnę. - - - - Enter a name of the constraint. - Wprowadź nazwę ograniczenia. - - - - TableStructureModel - - - Name - table structure columns - Nazwa - - - - Data type - table structure columns - Typ danych - - - - Primary -Key - table structure columns - Klucz -Główny - - - - Foreign -Key - table structure columns - Klucz -Obcy - - - - Unique - table structure columns - Wartości -unikalne - - - - Check - table structure columns - Warunek - - - - Not -NULL - table structure columns - Niepuste - - - - Collate - table structure columns - Zestawienie - - - - Default value - table structure columns - Domyślna wartość - - - - TableWindow - - - Structure - Struktura - - - - Table name: - Nazwa tabeli: - - - - - Data - Dane - - - - Constraints - Ograniczenia - - - - Indexes - Indeksy - - - - Triggers - Wyzwalacze - - - - DDL - DDL - - - - Export table - table window - Eksportuj tabelę - - - - Import data to table - table window - Importuj do tabeli - - - - Populate table - table window - Zaludnij tabelę - - - - Refresh structure - table window - Odśwież strukturę - - - - Commit structure changes - table window - Zatwierdź zmiany w strukturze - - - - Rollback structure changes - table window - Wycofaj zmiany w strukturze - - - - Add column - table window - Dodaj kolumnę - - - - Edit column - table window - Edytuj kolumnę - - - - - Delete column - table window - Usuń kolumnę - - - - Move column up - table window - Przesuń kolumnę w górę - - - - Move column down - table window - Przesuń kolumnę w dół - - - - Create similar table - table window - Utwórz podobną tabelę - - - - Reset autoincrement value - table window - Wyzeruj wartość autoinkrementacji - - - - Add table constraint - table window - Dodaj ograniczenie tabeli - - - - Edit table constraint - table window - Edytuj ograniczenie tabeli - - - - Delete table constraint - table window - Usuń ograniczenie tabeli - - - - Move table constraint up - table window - Przesuń ograniczenie tabeli w górę - - - - Move table constraint down - table window - Przesuń ograniczenie tabeli w dół - - - - Add table primary key - table window - Dodaj klucz główny tabeli - - - - Add table foreign key - table window - Dodaj klucz obcy tabeli - - - - Add table unique constraint - table window - Dodaj ograniczenie unikalnych wartości tabeli - - - - Add table check constraint - table window - Dodaj ograniczenie warunkiem tabeli - - - - Refresh index list - table window - Odśwież listę indeksów - - - - Create index - table window - Utwórz indeks - - - - Edit index - table window - Edytuj indeks - - - - Delete index - table window - Usuń indeks - - - - Refresh trigger list - table window - Odśwież listę wyzwalaczy - - - - Create trigger - table window - Utwórz wyzwalacz - - - - Edit trigger - table window - Edytuj wyzwalacz - - - - Delete trigger - table window - Usuń wyzwalacz - - - - Are you sure you want to delete column '%1'? - table window - Czy na pewno chcesz usunąć kolumnę '%1'? - - - - Following problems will take place while modifying the table. -Would you like to proceed? - table window - Następujące problemy wystąpią podczas modyfikacji tabeli. -Czy chcesz kontynuować? - - - - Table modification - table window - Modyfikacja tabeli - - - - Could not load data for table %1. Error details: %2 - Nie udało się załadować danych dla tabeli %1. Szczegóły błędu: %2 - - - - Could not process the %1 table correctly. Unable to open a table window. - Nie udało się przetworzyć poprawnie tabeli %1. Nie można otworzyć okna tabeli. - - - - Could not restore window %1, because no database or table was stored in session for this window. - Nie można przywrócić okna %1, ponieważ nie ma bazy danych lub tabeli zachowanej w sesji dla tego okna. - - - - Could not restore window '%1', because no database or table was stored in session for this window. - Nie można przywrócić okna %1, ponieważ nie ma bazy danych lub tabeli zachowanej w sesji dla tego okna. - - - - Could not restore window '%1', because database %2 could not be resolved. - Nie udało się przywrócić okna '%1', ponieważ nie udało się ustalić bazy danych %2. - - - - Could not restore window '%1'', because the table %2 doesn't exist in the database %3. - Nie można przywrócić okna '%1', ponieważ tabela %2 już nie jestnieje w bazie danych %3. - - - - Committed changes for table '%1' successfully. - Pomyślnie zatwierdzono zmiany dla tabeli '%1'. - - - - Committed changes for table '%1' (named before '%2') successfully. - Pomyślnie zatwierdzono zmiany dla tabeli '%1' (nazwanej wcześniej '%2'). - - - - Autoincrement value for table '%1' has been reset successfully. - Wartość automatycznej inkrementacji dla tabeli '%1' została zresetowana. - - - - Uncommitted changes - Niezatwierdzone zmiany - - - - There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. -Do you want to commit the structure, or do you want to go back to the structure tab? - Zmiany w strukturze nie zostały zatwierdzone. Nie można przeglądać, ani edytować danych, dopóki struktura tabeli nie zostanie ustalona. -Czy chcesz zatwierdzić strukturę, czy jednak chcesz wrócić do karty struktury? - - - - Table window "%1" has uncommitted structure modifications and data. - Okno tabeli "%1" ma niezatwierdzone modyfikacje struktury i danych. - - - - Table window "%1" has uncommitted data. - Okno tabeli "%1" ma niezatwierdzone dane. - - - - Table window "%1" has uncommitted structure modifications. - Okno tabeli "%1" ma niezatwierdzone modyfikacje struktury. - - - Could not restore window, because database %1 could not be resolved. - Nie można przywrócić okna, ponieważ nie znaleziono bazy danych %1. - - - Could not restore window, because the table %1 doesn't exist in the database %2. - Nie można przywrócić okna, ponieważ tabela %1 już nie jestnieje w bazie danych %2. - - - - - New table %1 - Nowa tabela %1 - - - Commited changes for table '%1' successfly. - Pomyślnie zatwierdzono zmiany dla tabeli '%1'. - - - Commited changes for table '%1' (named before '%2') successfly. - Pomyślnie zatwierdzono zmiany dla tabeli '%1' (nazwanej wcześniej '%2'). - - - - Could not commit table structure. Error message: %1 - table window - Nie udało się zatwierdzić struktury tabeli. Treść błędu: %1 - - - - Reset autoincrement - Wyzeruj autoinkrementację - - - - Are you sure you want to reset autoincrement value for table '%1'? - Czy na pewno chcesz wyzerować wartość autoinkrementacji dla tabeli '%1'? - - - - An error occurred while trying to reset autoincrement value for table '%1': %2 - Wystąpił błąd podczas próby wyzerowania wartości autoinkrementacji dla tabeli '%1': %2 - - - Autoincrement value for table '%1' has been reset successfly. - Wartość autoinkrementacji dla tabeli '%1' została pomyślnie wyzerowana. - - - - Empty name - Pusta nazwa - - - - A blank name for the table is allowed in SQLite, but it is not recommended. -Are you sure you want to create a table with blank name? - Pusta nazwa dla tabeli jest dozwolona w SQLite, ale nie jest zalecana. -Czy na pewno chcesz utworzyć tabelę o pustej nazwie? - - - - Cannot create a table without at least one column. - Nie można utworzyć tabeli bez przynajmniej jednej kolumny. - - - - Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. - Nie można utworzyć tabeli %1, jeśli nie ma zdefiniowanego klucza głównego. Albo udznacz %2, albo zdefiniuj klucz główny. - - - - Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. - Nie można użyć autoinkrementacji dla klucza głównego, kiedy klauzula %1 jest użyta. Albo odnacz %2, albo autonkrementację w kluczu głównym. - - - - Are you sure you want to delete table constraint '%1'? - table window - Czy na pewno chcesz usunąć ograniczenie tabeli '%1'? - - - - Delete constraint - table window - Usuń ograniczenie - - - - Cannot export, because no export plugin is loaded. - Nie można wyeksportować, ponieważ żadna wtyczka eksportu nie została załadowana. - - - - Cannot import, because no import plugin is loaded. - Nie można zaimportować, ponieważ żadna wtyczka importu nie została załadowana. - - - Uncommited changes - Niezatwierdzone dane - - - There are uncommited structure modifications. You cannot browse or edit data until you have table structure settled. -Do you want to commit the structure, or do you want to go back to the structure tab? - Zmiany w strukturze nie zostały zatwierdzone. Nie można przeglądać, ani edytować danych, dopóki struktura tabeli nie zostanie ustalona. -Czy chcesz zatwierdzić strukturę, czy jednak chcesz wrócić do karty struktury? - - - - Go back to structure tab - Wróć do karty struktury - - - - Commit modifications and browse data. - Zatwierdź modyfikacje i przeglądaj dane. - - - - Name - table window indexes - Nazwa - - - - Unique - table window indexes - Wartości unikalne - - - - Columns - table window indexes - Kolumny - - - - Partial index condition - table window indexes - Warunek indeksu częściowego: - - - - Name - table window triggers - Nazwa - - - - Event - table window triggers - Zdarzenie - - - - Condition - table window triggers - Warunek - - - - Details - table window triggers - Szczegóły - - - Table window "%1" has uncommited structure modifications and data. - Okno tabeli "%1" ma niezatwierdzone modyfikacje struktury i danych. - - - Table window "%1" has uncommited data. - Okno tabeli "%1" ma niezatwierdzone dane. - - - Table window "%1" has uncommited structure modifications. - Okno tabeli "%1" ma niezatwierdzone modyfikacje struktury. - - - - TriggerColumnsDialog - - - Trigger columns - Kolumny wyzwalacza - - - - Triggering columns: - Kolumny wyzwalające: - - - - Select all - Zaznacz wszystko - - - - Deselect all - Odznacz wszystko - - - - TriggerDialog - - - - Trigger - Wyzwalacz - - - - On table: - Na tabeli: - - - - Action: - Akcja: - - - - - <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> - <p>Warunek SQL, który będzie wykonany przed właściwym kodem wyzwalacza. W przypadku gdy warunek zwróci fałsz, wyzwalacz nie zostanie uruchomiony dla tego wiersza.</p> - - - - Pre-condition: - Warunek wstępny: - - - - The scope is still not fully supported by the SQLite database. - Zakres wciąż nie jest w pełni obsługiwany przez bazy danych SQLite. - - - - Trigger name: - Nazwa wyzwalacza: - - - - When: - Kiedy: - - - - List of columns for UPDATE OF action. - Lista kolumn dla akcji UPDATE OF. - - - - Scope: - Zakres: - - - - Code: - Kod: - - - - Trigger statements to be executed. - Zapytania wyzwalacz do wykonania. - - - - DDL - DDL - - - - On view: - Na widoku: - - - - Could not process trigger %1 correctly. Unable to open a trigger dialog. - Nie udało się przetworzyć poprawnie wyzwalacza %1. Nie można otworzyć okna wyzwalacza. - - - - Enter a valid condition. - Wprowadź poprawny warunek. - - - - Enter a valid trigger code. - Wprowadź poprawny kod wyzwalacza. - - - - Error - trigger dialog - Błąd - - - - An error occurred while executing SQL statements: -%1 - Wystąpił błąd podczas wykonywania zapytań SQL: -%1 - - - - VersionConvertSummaryDialog - - - Database version convert - Konwersja bazy danych - - - - Following changes to the SQL statements will be made: - Dokonane będą następujące zmiany w zapytaniach SQL: - - - - Before - Przed - - - - After - Po - - - - ViewWindow - - - Query - Zapytanie - - - - View name: - Nazwa widoku: - - - - Output column names - Nazwy kolumn wyjściowych - - - - - Data - Dane - - - - Triggers - Wyzwalacze - - - - DDL - DDL - - - Could not restore window, because database %1 could not be resolved. - Nie można przywrócić okna, ponieważ nie znaleziono bazy danych %1. - - - Could not restore window, because database %1 could not be open. - Nie można przywrócić okna, ponieważ nie udało się otworzyć bazy danych %1. - - - Could not restore window, because the view %1 doesn't exist in the database %2. - Nie można przywrócić okna, ponieważ widok %1 już nie jestnieje w bazie danych %2. - - - - - Could not restore window '%1', because no database or view was stored in session for this window. - Nie można przywrócić okna %1, ponieważ nie ma bazy danych lub tabeli zachowanej w sesji dla tego okna. - - - - Could not restore window '%1', because database %2 could not be resolved. - Nie udało się przywrócić okna '%1', ponieważ nie udało się ustalić bazy danych %2. - - - - Could not restore window '%1', because database %2 could not be open. - Nie można przywrócić okna '%1', ponieważ nie można było otworzyć bazy danych %2. - - - - Could not restore window '%1', because the view %2 doesn't exist in the database %3. - Nie można przywrócić okna '%1', ponieważ widok %2 już nie jestnieje w bazie danych %3. - - - - - New view %1 - Nowy widok %1 - - - - Refresh the view - view window - Odśwież widok - - - - Commit the view changes - view window - Zatwierdź zmiany w widoku - - - - Rollback the view changes - view window - Wycofaj zmiany w widoku - - - - Explicit column names - Jawne nazwy kolumn - - - - Generate output column names automatically basing on result columns of the view. - Generuj automatycznie nazwy kolumn wyjściowych bazując na kolumnach wynikowych widoku. - - - - Add column - view window - Dodaj kolumnę - - - - Edit column - view window - Edytuj kolumnę - - - - Delete column - view window - Usuń kolumnę - - - - Move column up - view window - Przesuń kolumnę w górę - - - - Move column down - view window - Przesuń kolumnę w dół - - - - Refresh trigger list - view window - Odśwież listę wyzwalaczy - - - - Create new trigger - view window - Utwórz nowy wyzwalacz - - - - Edit selected trigger - view window - Edytuj wybrany wyzwalacz - - - - Delete selected trigger - view window - Usuń wybrany wyzwalacz - - - - View window "%1" has uncommitted structure modifications and data. - Okno widoku "%1" ma niezatwierdzone modyfikacje struktury i danych. - - - - View window "%1" has uncommitted data. - Okno widoku "%1" ma niezatwierdzone dane. - - - - View window "%1" has uncommitted structure modifications. - Okno widoku "%1" ma niezatwierdzone modyfikacje struktury. - - - - Uncommitted changes - Niezatwierdzone zmiany - - - - There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. -Do you want to commit the structure, or do you want to go back to the structure tab? - Zmiany w strukturze nie zostały zatwierdzone. Nie można przeglądać, ani edytować danych, dopóki struktura widoku nie zostanie ustalona. -Czy chcesz zatwierdzić strukturę, czy jednak chcesz wrócić do karty struktury? - - - - Committed changes for view '%1' successfully. - Pomyślnie zatwierdzono zmiany dla widoku '%1'. - - - - Committed changes for view '%1' (named before '%2') successfully. - Pomyślnie zatwierdzono zmiany dla tabeli '%1' (nazwanej wcześniej '%2'). - - - View window "%1" has uncommited structure modifications and data. - Okno widoku "%1" ma niezatwierdzone modyfikacje struktury i danych. - - - View window "%1" has uncommited data. - Okno widoku "%1" ma niezatwierdzone dane. - - - View window "%1" has uncommited structure modifications. - Okno widoku "%1" ma niezatwierdzone modyfikacje struktury. - - - - Could not load data for view %1. Error details: %2 - Nie udało się załadować danych dla widoku %1. Szczegóły błędu: %2 - - - Uncommited changes - Niezatwierdzone dane - - - There are uncommited structure modifications. You cannot browse or edit data until you have the view structure settled. -Do you want to commit the structure, or do you want to go back to the structure tab? - Zmiany w strukturze nie zostały zatwierdzone. Nie można przeglądać, ani edytować danych, dopóki struktura widoku nie zostanie ustalona. -Czy chcesz zatwierdzić strukturę, czy jednak chcesz wrócić do karty struktury? - - - - Go back to structure tab - Wróć do karty struktury - - - - Commit modifications and browse data. - Zatwierdź modyfikacje i przeglądaj dane. - - - Commited changes for view '%1' successfly. - Pomyślnie zatwierdzono zmiany dla widoku '%1'. - - - Commited changes for view '%1' (named before '%2') successfly. - Pomyślnie zatwierdzono zmiany dla widoku '%1' (nazwanego wcześniej '%2'). - - - - Could not commit view changes. Error message: %1 - view window - Nie udało się zatwierdzić widoku. Treść błędu: %1 - - - - Override columns - Nadpisz kolumny - - - - Currently defined columns will be overriden. Do you want to continue? - Aktualnie zdefiniowane kolumny zostaną nadpisane. Czy chcesz kontynuować? - - - - Could not determinate columns returned from the view. The query is problably incomplete or contains errors. - Nie udało się ustalić kolumn zwracanych z widoku. Zapytanie jest prawdopodobnie niekompletne lub zawiera błędy. - - - - Name - view window triggers - Nazwa - - - - Instead of - view window triggers - Zamiast - - - - Condition - view window triggers - Warunek - - - - Details - table window triggers - Szczegóły - - - - Could not process the %1 view correctly. Unable to open a view window. - Nie udało się przetworzyć poprawnie widoku %1. Nie można otworzyć okna widoku. - - - - Empty name - Pusta nazwa - - - - A blank name for the view is allowed in SQLite, but it is not recommended. -Are you sure you want to create a view with blank name? - Pusta nazwa dla widoku jest dozwolona w SQLite, ale nie jest zalecana. -Czy na pewno chcesz utworzyć widok o pustej nazwie? - - - - The SELECT statement could not be parsed. Please correct the query and retry. -Details: %1 - Zapytanie SELECT nie mogło być poprawnie przeanalizowane. Proszę poprawić zapytanie i spróbować ponownie. -Szczegóły: %1 - - - - The view could not be modified due to internal SQLiteStudio error. Please report this! - Widok nie mógł być zmodyfikowany w związku z wewnętrznym błędem SQLiteStudio. Proszę to zgłosić! - - - - The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. - Kod widok nie mógł być poprawnie przeanalizowany. To jest błąd SQLiteStudio Proszę to zgłosić! - - - - Following problems will take place while modifying the view. -Would you like to proceed? - view window - Następujące problemy wystąpią podczas modyfikacji widoku. -Czy chcesz kontynuować? - - - - View modification - view window - Modyfikacja widoku - - - - WidgetCover - - - Interrupt - Przerwij - - - diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_pl_PL.ts b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_pl_PL.ts new file mode 100644 index 0000000..ab4476f --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_pl_PL.ts @@ -0,0 +1,7111 @@ + + + + + AboutDialog + + + About SQLiteStudio and licenses + O SQLiteStudio i licencje + + + + About + O programie + + + + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Darmowy, otwartoźródłowy, wieloplatformowy menadżer baz danych SQLite.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Autor i aktywny opiekun:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + + + + Licenses + Licencje + + + + Environment + Środowisko + + + + Icon directories + Katalogi ikon + + + + Form directories + Katalogi formularzy + + + + SQLite extension directories + Katalogi rozszerzeń SQLite + + + + Plugin directories + Katalogi wtyczek + + + + Configuration directory + Katalog konfiguracji + + + + Application directory + Katalog aplikacji + + + + Qt version: + Wersja Qt: + + + + SQLite 3 version: + Wersja SQLite 3: + + + + Portable distribution. + Dystrybucja przenośna. + + + + MacOS X application bundle distribution. + Dystrybucja aplikacji MacOS X. + + + + Operating system managed distribution. + Dystrybucja zarządzana przez system operacyjny. + + + + <h3>Table of contents:</h3><ol>%2</ol> + <h3>Zawartość:</h3><ol>%2</ol> + + + + BindParamsDialog + + + Query parameters + Parametry zapytania + + + + Please provide values for query parameters + Proszę podać wartości dla parametrów zapytania + + + + CodeSnippetEditor + + + Filter snippets + Filtruj fragmenty + + + + + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + <html><head/><body><p>Opcjonalny skrót, który będzie działać tylko w kontekście aktywnego okna asystenta kodu. Pozwala użytkownikowi na używanie kombinacji klawiszy, które w przeciwnym razie byłyby sprzeczne z innymi skrótami. Posiadanie okna asystenta kodu w wymaganym kontekście sprawia, że wybór klawiszy jest bardziej elastyczny.</p></body></html> + + + + + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + <html><head/><body><p>Nazwa fragmentu będzie wyświetlana w asystencie kodu. Aby uzyskać dostęp do listy fragmentów użytkownik musi dwukrotnie uruchomić skrót asystenta kodu.</p></body></html> + + + + Snippet name + Nazwa fragmentu + + + + Code assistant shortcut + Skrót asystenta kodu + + + + Snippet code + Kod fragmentu + + + + Code Snippets editor window has uncommitted modifications. + Okno edytora fragmentu kodu ma niezatwierdzone modyfikacje. + + + + Code Snippets editor + Edytor fragmentów kodu + + + + Commit all snippet changes + Zatwierdź wszystkie zmiany fragmentów + + + + Rollback all snippet changes + Wycofaj zmiany we wszystkich fragmentach + + + + Create new snippet + Utwórz nowy fragment kodu + + + + Delete selected snippet + Usuń wybrany fragment kodu + + + + Move the snippet up + Przesuń fragment w górę + + + + Move the snippet down + Przesuń fragment w dół + + + + Code snippets manual + Instrukcja fragmentów kodu + + + + Enter a non-empty, unique name of the snippet. + Wprowadź niepustą, unikalną nazwę fragmentu. + + + + Enter a non-empty snippet content. + Wprowadź niepustą zawartość fragmentu. + + + + This hotkey is not unique in context of a code assistant. + Ten skrót klawiszowy nie jest unikalny w kontekście asystenta kodu. + + + + CollationsEditor + + + Filter collations + Filtruj zestawienia + + + + Databases + Bazy danych + + + + Register in all databases + Zarejestruj we wszystkich bazach danych + + + + Register in following databases: + Zarejestruj w następujących bazach danych: + + + + Implementation code: + Kod implementacji: + + + + Collation name: + Nazwa zestawienia: + + + + Implementation language: + Język implementacji: + + + + Collations editor + Edytor zestawień + + + + Commit all collation changes + Zatwierdź wszystkie zmiany w zestawieniach + + + + Rollback all collation changes + Wycofaj wszystkie zmiany w zestawieniach + + + + Create new collation + Utwórz nowe zestawienie + + + + Delete selected collation + Usuń wybrane zestawienie + + + + Editing collations manual + Podręcznik edycji zestawień + + + + Enter a non-empty, unique name of the collation. + Podaj niepustą, unikalną nazwę zestawienia. + + + + Pick the implementation language. + Wybierz język implementacji. + + + + Enter a non-empty implementation code. + Wprowadź niepusty kod implementacji. + + + + Collations editor window has uncommitted modifications. + Okno edytora zestawień ma niezatwierdzone zmiany. + + + + ColorButton + + + Pick a color + Wybierz kolor + + + + ColumnCollatePanel + + + Collation name: + Nazwa zestawienia: + + + + Named constraint: + Ograniczenie nazwane: + + + + Enter a name of the constraint. + Wprowadź nazwę ograniczenia. + + + + Enter a collation name. + Wprowadź nazwę zestawienia. + + + + ColumnDefaultPanel + + + Default value: + Domyślna wartość: + + + + Named constraint: + Ograniczenie nazwane: + + + + Enter a default value expression. + Wprowadź wyrażenie wartości domyślnej. + + + + Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. + Niepoprawne wyrażenie wartości domyślnej: %1. Jeśli chcesz użyć zwykłego tekstu jako wartość, pamiętaj o zamknięciu go w znakach apostrofu. + + + + Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. + Niepoprawne wyrażenie wartości domyślnej. Jeśli chcesz użyć zwykłego tekstu jako wartość, pamiętaj o zamknięciu go w znakach apostrofu. + + + + Enter a name of the constraint. + Wprowadź nazwę ograniczenia. + + + + ColumnDialog + + + Column + Kolumna + + + + Name and type + Nazwa i typ + + + + Scale + Skala + + + + Precision + Precyzja + + + + Data type: + Typ danych: + + + + Column name: + Nazwa kolumny: + + + + Size: + Rozmiar: + + + + Constraints + Ograniczenia + + + + Generated value + Wygenerowana wartość + + + + Unique + Wartości unikalne + + + + + + + + + + + Configure + Konfiguruj + + + + Foreign Key + Klucz obcy + + + + Collate + Zestawienie + + + + Not NULL + Niepuste + + + + Check condition + Sprawdzaj warunek + + + + Primary Key + Klucz główny + + + + Default + Wartość domyślna + + + + Advanced mode + Tryb zaawansowany + + + + Add constraint + column dialog + Dodaj ograniczenie + + + + Edit constraint + column dialog + Edytuj ograniczenie + + + + + Delete constraint + column dialog + Usuń ograniczenie + + + + Move constraint up + column dialog + Przenieś ograniczenie w górę + + + + Move constraint down + column dialog + Przenieś ograniczenie w dół + + + + Add a primary key + column dialog + Dodaj klucz główny + + + + Add a foreign key + column dialog + Dodaj klucz obcy + + + + Add an unique constraint + column dialog + Dodaj ograniczenie wartości unikalnych + + + + Add a check constraint + column dialog + Dodaj ograniczenie sprawdzania wartości + + + + Add a not null constraint + column dialog + Dodaj ograniczenie niepustych wartości + + + + Add a collate constraint + column dialog + Dodaj ograniczenie zestawienia + + + + Add a generated value constraint + column dialog + Dodaj ograniczenie wygenerowanej wartości + + + + Add a default constraint + column dialog + Dodaj ograniczenie wartości domyślnej + + + + Are you sure you want to delete constraint '%1'? + column dialog + Czy na pewno chcesz usunąć ograniczenie '%1'? + + + + Correct the constraint's configuration. + Popraw konfigurację ograniczenia. + + + + Scale is not allowed for INTEGER PRIMARY KEY columns. + Skala nie jest dozwolona dla kolumn INTEGER PRIMARY KEY. + + + + Precision cannot be defined without the scale. + Precyzja nie może być zdefiniowana bez skali. + + + + Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. + Nie można użyć innego typu niż INTEGER, jeśli opcja AUTOINCREMENT jest wybrana w PRIMARY KEY. + + + + INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. + Typ INTEGER został wymuszony w związku z wybraną opcją AUTOINCREMENT w PRIMARY KEY. + + + + Precision is not allowed for INTEGER PRIMARY KEY columns. + Precyzja nie jest dozwolona dla kolumn INTEGER PRIMARY KEY. + + + + Could not match valid STRICT table datatype from declared type: %1. + Nie można dopasować prawidłowego typu danych dla tablicy STRICT wg zadeklarowanego typu: %1. + + + + ColumnDialogConstraintsModel + + + Type + column dialog constraints + Typ + + + + Name + column dialog constraints + Nazwa + + + + Details + column dialog constraints + Szczegóły + + + + ColumnForeignKeyPanel + + + Foreign table: + Tabela obca: + + + + Foreign column: + Kolumn obca: + + + + Reactions + Reakcje + + + + Deferred foreign key + Klucz obcy odroczony + + + + Named constraint + Nazwane ograniczenie + + + + Constraint name + Nazwa ograniczenia + + + + Pick the foreign table. + Wybierz tabelę obcą + + + + Pick the foreign column. + Wybierz kolumnę obcą + + + + Enter a name of the constraint. + Wprowadź nazwę ograniczenia. + + + + ColumnGeneratedPanel + + + Generating code: + Kod generujący: + + + + Explicit type: + Sprecyzowany typ: + + + + Use "GENERATED ALWAYS" keywords + Użyj słów kluczowych "GENEROWANYCH ALWAYS" + + + + Named constraint: + Ograniczenie nazwane: + + + + Enter the column value generating expression. + Wprowadź wyrażenie generujące wartość kolumny. + + + + Invalid value generating expression: %1. + Nieprawidłowe wyrażenie generujące wartość: %1. + + + + Invalid value generating expression. + Nieprawidłowe wyrażenie generujące wartość. + + + + Enter a name of the constraint. + Wprowadź nazwę ograniczenia. + + + + ColumnPrimaryKeyPanel + + + Autoincrement + Autoinkrementacja + + + + Sort order: + Kierunek sortowania: + + + + Named constraint: + Ograniczenie nazwane: + + + + On conflict: + W razie konfliktu: + + + + Enter a name of the constraint. + Wprowadź nazwę ograniczenia. + + + + Descending order is not allowed with AUTOINCREMENT. + Kolejność malejąca jest niedozwolona z AUTOINCREMENT. + + + + ColumnUniqueAndNotNullPanel + + + Named constraint: + Ograniczenie nazwane: + + + + On conflict: + W razie konfliktu: + + + + Enter a name of the constraint. + Wprowadź nazwę ograniczenia. + + + + CompleterWindow + + + Column: %1 + completer statusbar + Kolumna: %1 + + + + Table: %1 + completer statusbar + Tabela: %1 + + + + Index: %1 + completer statusbar + Indeks: %1 + + + + Trigger: %1 + completer statusbar + Wyzwalacz: %1 + + + + View: %1 + completer statusbar + Widok: %1 + + + + Database: %1 + completer statusbar + Baza danych: %1 + + + + Keyword: %1 + completer statusbar + Słowo kluczowe: %1 + + + + Function: %1 + completer statusbar + Funkcja: %1 + + + + Operator: %1 + completer statusbar + Operator: %1 + + + + String + completer statusbar + Tekst + + + + Number + completer statusbar + Liczba + + + + Binary data + completer statusbar + Dane binarne + + + + Collation: %1 + completer statusbar + Zestawienie: %1 + + + + Pragma function: %1 + completer statusbar + Funkcja pragma: %1 + + + + Insert a code snippet + Wstaw fragment kodu + + + + ConfigDialog + + + + Configuration + Konfiguracja + + + + Search + Szukaj + + + + General + Ogólne + + + + Keyboard shortcuts + Skróty klawiszowe + + + + Look & feel + Wygląd i zachowanie + + + + Style + Styl + + + + Fonts + Czcionki + + + + Code colors + Kolory kodu + + + + + Database list + Lista baz + + + + Code assistant + Asystent kodu + + + + Data browsing + Przeglądanie danych + + + + Data editors + Edytory danych + + + + Plugins + Wtyczki + + + + Code formatters + Formatery kodu + + + + If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. + Gdy wyłączone, to kolumny będą ułożone w takiej kolejności, w jakiej wystąpiły w zapytaniu CREATE TABLE. + + + + Sort table columns alphabetically + Sortuj kolumny tabel alfabetycznie. + + + + Expand tables node when connected to a database + Rozwiń listę tabel po połączeniu z bazą danych + + + + <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> + <p>Dodatkowe etykiety, to te wyświetlane obok nazw na liście baz danych (są niebieskie, chyba że skonfigurowano je inaczej). Włączenie tej opcji spowoduje wyświetlenie etykiet dla baz danych, niepoprawnych baz danych, oraz dla węzłów agregujących (grupa kolumn, grupa indeksów, grupa wyzwalaczy). Więcej etykiet jest dostępne niżej.</p> + + + + Display additional labels on the list + Wyświetlaj dodatkowe etykiety na liście + + + + For regular tables labels will show number of columns, indexes and triggers for each of tables. + Dla zwykłych tabel etykiety będą pokazywać liczbę kolumn, inseksów, oraz wyzwalaczy dla tych tabel. + + + + Display labels for regular tables + Wyświetlaj etykiety dla zwykłych tabel + + + + Virtual tables will be marked with a 'virtual' label. + Tabele wirtualne będą oznaczone etykietą 'wirtualna'. + + + + Display labels for virtual tables + Wyświetlaj etykiety dla tabel wirtualnych + + + + Expand views node when connected to a database + Rozwiń listę widoków po połączeniu z bazą. + + + + If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) + Gdy ta opcja jest wyłączona, to wszystkie obiekty będą ułożone w takiej kolejności, w jakiej występują w tabeli sqlite_master (czyli w takiej, w jakiej zostały stworzone) + + + + Sort objects (tables, indexes, triggers and views) alphabetically + Sortuj obiekty (tabele, indeksy, wyzwalacze i widoki) alfabetycznie + + + + Display system tables and indexes on the list + Wyświetlaj tabele i indeksy systemowe na liście + + + + Database dialog window + Okno dialogowe bazy danych + + + + <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> + <p>Podczas dodawania nowej bazy danych jest ona domyślnie zaznaczana jako "trwała" (zapisywana w konfiguracji). Włączenie tej opcji powoduje, że każda nowa baza danych NIE będzie zaznaczana domyślnie jako "trwała".</p> + + + + Do not mark database to be "permanent" by default + Nie zaznaczaj bazy danych domyślnie jako "trwała" + + + + <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> + <p>Gdy ta opcja jest włączona, to pliki upuszczone z menadżera plików na listę baz danych będą automatycznie dodawane do list, pomijając standardowe okno bazy danych. Jeśli z różnych powodów automatyczny proces się nie powiedzie, to użytkownikowi ukaże się standardowe okno.</p> + + + + Try to bypass dialog completly when dropping database file onto the list + Próbuj całkowicie pomijać dialog podczas upuszczania pliku bazy na listę + + + + Data browsing and editing + Przeglądanie i edycja danych + + + + + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + <p>Maksymalna liczba konfiguracji w oknie dialogowym zaludniania tabeli, która ma być trzymana w konfiguracji. Wartość 100 powinna być wystarczająca.</p> + + + + Number of memorized table populating configurations + Liczba zapamiętanych konfiguracji zaludniania tabeli + + + + Data column width + Szerokość kolumny danych + + + + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + <html><head/><body><p>Kiedy użytkownik wprowadzi nową wartość do kolumny, a wartość jest większa niż obecna szerokość kolumny, aplikacja powiększy kolumnę w celu dostosowania jej do nowej wartości, ale nie więcej niż limit określony w opcji powyżej.</p></body></html> + + + + Enlarge column when entering value longer than current width + Powiększ kolumnę podczas wprowadzania wartości dłuższej niż obecna szerokość + + + + <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> + <p>Kiedy dane są wczytane do widoku siatki, szerokość kolumn jest automatycznie dostosowywana. Ta wartość ogranicza początkową szerokość tego dostosowywania, ale użytkownik nadal może rozszerzać kolumnę ręcznie poza ten limit.</p> + + + + Number of data rows per page: + Liczba wierszy danych na stronie: + + + + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> + <p>Gdy to jest włączone i użytkownik zatrzyma kursor myszy nad komórką w widoku siatki danych (wyniki zapytania, dane tabeli, dane widoku), to pojawi się podpowiedź ze szczegółami odnośnie komórki - zawiera ona szczegóły , jak typ danych kolumny, ograniczenia, ROWID i inne.</p> + + + + Show column and row details tooltip in data view + Pokazuj podpowiedź ze szczegółami o kolumnie i wierszu w widoku siatki danych + + + + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + <p>Kiedy edytowana jest komórka, która miała wartość NULL, a nowa wartość wprowadzona jest pusta, to ta opcja decyduje o tym, czy wartość powinna pozostać NULL (gdy ta opcja jest włączona), czy powinna być nadpisana pustym łańcuchem znaków (gdy ta opcja wyłączona).</p> + + + + Keep NULL value when entering empty value + Zachowaj wartość NULL gdy wstawiania jest pusta wartość + + + + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> + <html><head/><body><p>Włącz to, aby wymusić wartość DEFAULT podczas zatwierdzania wartości NULL dla kolumn, które mają zdefiniowaną wartość DEFAULT, nawet jeśli kolumna dopuszcza wartości NULL.</p><p>Wyłącz tą opcję aby używać wartości DEFAULT tylko i wyłącznie, gdy wartość NULL jest zatwierdzana dla kolumny z ograniczeniem NOT NULL.</p></body></html> + + + + Use DEFAULT value (if defined), when committing NULL value + Używaj wartości DEFAULT (jeśli zdefiniowana), gdy zatwierdzana jest wartość NULL + + + + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + <html><head/><body><p>Jeśli wyniki zapytania zawierają dziesiątki (lub setki) kolumn, bardziej prawdopodobne jest, że wyczerpie pamięć komputera ładując kilka gigabajtów danych jednocześnie. SQLiteStudio może próbować ograniczyć liczbę wyników wyświetlanych na jednej stronie w celu ochrony komputera. Jeśli wiesz, że nie pracujesz z dużymi wartościami w bazie danych, możesz wyłączyć ten limit i zawsze zobaczysz tyle wierszy, ile jest zdefiniowanych na stronie.</p></body></html> + + + + Limit number of rows for in case of dozens of columns + Ogranicz liczbę wierszy w przypadku dziesiątek kolumn + + + + Inserting new row in data grid + Wstawianie nowego wiersza w widoku siatki danych. + + + + Before currently selected row + Przed aktualnie wybranym wierszem + + + + After currently selected row + Po aktualnie wybranym wierszu. + + + + At the end of data view + Na końcu widoku siatki danych + + + + Table windows + Okna tabel + + + + <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> + <p>Gdy włączone, Okna Tabeli będą się otwierać na zakładce danych, zamiast na zakładce struktury.</p> + + + + Open Table Windows with the data tab for start + Otwieraj Okna Tabeli z zakładką danych na początek + + + + <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> + <p>Gdy włączone, to zakładka "Dane" będzie umieszczona jako pierwsza w każdym Oknie Tabeli, zamiast jako druga.</p> + + + + Place data tab as first tab in a Table Window + Ustaw zakładkę danych jako pierwszą w Oknie Tabeli + + + + View windows + Okna Widoków + + + + <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> + <p>Gdy włączone, Okna Widoku będą się otwierać na zakładce danych, zamiast na zakładce struktury.</p> + + + + Open View Windows with the data tab for start + Otwieraj Okna Widoku z zakładką danych na początek + + + + <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> + <p>Gdy włączone, to zakładka "Dane" będzie umieszczona jako pierwsza w każdym Oknie Widoku, zamiast jako druga.</p> + + + + Place data tab as first tab in a View Window + Ustaw zakładkę danych jako pierwszą w Oknie Widoku + + + + Data types + Type danych + + + + Available editors: + Dostępne edytory: + + + + Editors selected for this data type: + Edytory wybrane dla tego typu danych: + + + + Schema editing + Edycja schematu + + + + Number of DDL changes kept in history. + Liczba zmian DDL trzymanych w historii. + + + + DDL history size: + Rozmiar historii DDL: + + + + Don't show DDL preview dialog when committing schema changes + Nie pokazuj okna podglądu DDL podczas zatwierdzania zmian struktury + + + + SQL queries + Zapytania SQL + + + + + Number of queries kept in the history. + Liczba zapytań trzymana w historii. + + + + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> + <html><head/><body><p>Jeśli w oknie edytora SQL jest więcej niż jedno zapytanie, wtedy (jeśli ta opcja jest włączona) zostanie wykonana tylko jedno zapytanie - to pod kursorem wstawiania klawiatury. W przeciwnym razie wszystkie zapytania zostaną wykonane. Zawsze możesz ograniczyć zapytania do wykonania poprzez zaznaczenie tych zapytań przed ich wykonaniem. Możesz również użyć dedykowanych skrótów do wykonywania w jednym lub drugim trybie (obecnie skonfigurowanych pod %1 dla wykonania pojedynczego zapytania i %2 dla wykonania wszystkich zapytań).</p></body></html> + + + + History size: + Rozmiar historii: + + + + + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> + <p>Maksymalna liczba parametrów zapytania (:param, @param, $param, ?) trzymanych w historii. Kiedy ponownie użyjesz parametru o tej samej nazwie/pozycji, SQLiteStudio wstępnie uzupełni go używając ostatniej zapamiętanej wartości (nadal będzie można ją zmienić). Wartość 100 powinna być wystarczająca.</p> + + + + Execute only the query under the cursor + Wykonuj tylko zapytania będące pod kursorem + + + + Number of memorized query parameters + Liczba zapamiętanych parametrów zapytania + + + + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + <html><head/><body><p>Domyślnie (gdy ta opcja jest wyłączona) rzeczywista liczba jest wyświetlana w formacie dziesiętnym z przecinkiem. W niektórych przypadkach, gdy liczba jest naprawdę mała (kilka miejsc po przecinku), domyślna reprezentacja może wydawać się niedokładna. W takim przypadku możesz włączyć tę opcję do użycia notacji naukowej (np. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + + + + Use scientific notation for real numbers in the grid view + Użyj notacji naukowej dla liczb rzeczywistych w widoku siatki + + + + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + <html><head/><body><p>Gdy dane są odczytywane w widoku tabeli szerokość kolumn jest automatycznie dostosowywana. Ta wartość ogranicza wstępnie dostosowaną szerokość, ale użytkownik może zmieniać rozmiar kolumny ręcznie powyżej tego limitu. Ta wartość jest również używana podczas powiększania kolumny w przypadku nowej, dłuższej wartości wprowadzonej przez użytkownika (patrz opcja poniżej).</p></body></html> + + + + Limit automatic data column width to (in pixels): + Ogranicz automatyczną szerokość kolumny danych do (w pikselach): + + + + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + <html><head/><body><p>Początkowa szerokość kolumn danych zostanie ustawiona co najmniej tak, aby pokazać pełne nazwy kolumn w nagłówku. To może być nadpisane przez wstępny limit szerokości kolumny określony w pikselach (ustawienie powyżej).</p></body></html> + + + + Keep at least the width to show complete column name + Zachowaj co najmniej szerokość wystarczającą, aby wyświetlić pełną nazwę kolumny + + + + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + <html><head/><body><p>Jeśli włączone, linie dłuższe niż szerokość edytora będą zawijane, więc przewijanie poziome nie będzie potrzebne.</p></body></html> + + + + Wrap lines in SQL editor + Zawijaj linie w edytorze SQL + + + + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + <html><head/><body><p>Podświetla całe zapytanie, które jest obecnie pod kursorem wstawiania. To jest to samo zapytanie, które zostanie wykonane po naciśnięciu klawisza skrótu lub przycisku &quot;Wykonaj zapytanie&quot; (chyba że skonfigurowano inaczej).</p></body></html> + + + + Highlight current query + Podświetl bieżące zapytanie + + + + Updates + Aktualizacje + + + + Automatically check for updates at startup + Sprawdzaj aktualizacje automatycznie przy starcie + + + + Session + Sesje + + + + Restore last session (active MDI windows) after startup + Przywróć ostatnią sesję (aktywne okna MDI) po starcie + + + + Allow multiple instances of the application at the same time + Zezwalaj na wiele instancji aplikacji w tym samym czasie + + + + Status Field + Pole Statusu + + + + <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> + <p>Kiedy użytkownik ręcznie zamyka panel Statusu, ta opcja zapewnia, że zostanie ono otwarte ponownie, gdy jest wyświetlona nowa wiadomość. Jeśli jest ona wyłączona, to panel Statusu może być otwarte tylko ręcznie z menu "Widok".</p> + + + + Always open Status panel when new message is printed + Zawsze otwieraj panel Statusu, gdy wyświetlona jest nowa wiadomość + + + + Code syntax colors + Kolory składni kodu + + + + Keyword foreground + Słowo kluczowe + + + + Regular foreground + Standardowy tekst + + + + String foreground + Łańcuch znaków + + + + Comment foreground + Komentarz + + + + Valid objects foreground + Prawidłowe obiekty + + + + Current query background + Bieżące tło zapytania + + + + Bind parameter foreground + Parametr wiążący + + + + Current line background + Tło bieżącej linii + + + + Matched parenthesis background + Tło dopasowanych nawiasów + + + + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + <html><head/><body><p>Możesz całkowicie wyłączyć podświetlanie bieżącego zapytania na stronie ustawień ogólnych.</p></body></html> + + + + Number foreground + Liczba + + + + BLOB value foreground + Kolor zawartości BLOB + + + + Matched parenthesis foreground + Dopasowane nawiasy + + + + Reset to defaults + Przywróć ustawienia domyślne + + + + Filter shortcuts by name or key combination + Filtruj skróty po nazwie, lub kombinacji klawiszy + + + + Action + Akcja + + + + Key combination + Kombinacja klawiszy + + + + + Language + Język + + + + Changing language requires application restart to take effect. + Zmiana języka wymaga restartu aplikacji, aby zadziałać. + + + + Compact layout + Układ kompaktowy + + + + <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> + <p>Układ kompaktowy zmniejsza wszystkie marginesy i odstępy na interfejsie do minimum, robiąc więcej miejsca na wyświetlanie danych. Powoduje to, że interfejs jest nieco mniej estetyczny, ale pozwala to na prezentację większej ilości danych naraz.</p> + + + + Use compact layout + Użyj układu kompaktowego + + + + Main window dock areas + Strefy dokowania głównego okna + + + + Left and right areas occupy corners + Lewa i prawa strefa zajmują rogi + + + + Top and bottom areas occupy corners + Górna i dolna strefa zajmują rogi + + + + Hide built-in plugins + Ukryj wtyczki wbudowane + + + + Current style: + Aktualny styl: + + + + Preview + Podgląd + + + + Enabled + Włączone + + + + Disabled + Wyłączone + + + + Active formatter plugin + Aktywna wtyczka formatera + + + + SQL editor font + Czcionka edytora SQL + + + + Database list font + Czcionka listy baz danych + + + + Database list additional label font + Czcionka dodatkowych etykiety listy baz danych + + + + Data view font + Czcionka widoku danych + + + + Status field font + Czcionka pola statusu + + + + Code assistant settings + Ustawienia asystenta kodu + + + + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + <html><head/><body><p>Jeśli ta opcja jest włączona, asystent kodu zostanie uruchomiony w przypadkach, gdy użytkownik wpisze na przykład <span style=" font-weight:700;">nazwaTabeli.</span>, aby zaproponować nazwy kolumn tabeli. Jeśli opcja jest wyłączona, użytkownik będzie musiał użyć skrót klawiszowy asystenta.</p></body></html> + + + + Automatically trigger the assistant after a dot is typed after an object name + Automatycznie wyzwalaj asystenta po wpisaniu kropki po nazwie obiektu + + + + Description: + plugin details + Opis: + + + + Category: + plugin details + Kategoria: + + + + Version: + plugin details + Wersja: + + + + Author: + plugin details + Autor: + + + + Internal name: + plugin details + Nazwa wewnętrzna: + + + + Dependencies: + plugin details + Zależności: + + + + Conflicts: + plugin details + Konflikty: + + + + Plugin details + Szczegóły wtyczki + + + + Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. + Wtyczki są ładowane/wyładowywane natychmiast po zaznaczeniu/odznaczeniu, ale zmodyfikowana lista wtyczek, które należy załadować przy starcie nie jest zapisana, dopóki nie zatwierdzisz całego okna configuracji. + + + + %1 (built-in) + plugins manager in configuration dialog + %1 (wbudowany) + + + + Details + Szczegóły + + + + No plugins in this category. + Brak wtyczek w tej kategorii. + + + + Add new data type + Dodaj nowy typ danych + + + + Rename selected data type + Zmień nazwę wybranego typu danych + + + + Delete selected data type + Usuń wybrany typ danych + + + + Help for configuring data type editors + Pomoc w konfiguracji edytorów typów danych + + + + Clear hotkey for this action + Wyczyść klawisz skrótu dla tej akcji + + + + Restore original hotkey for this action + Przywróć oryginalny skrót klawiszowy dla tej akcji + + + + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + Tutaj możesz skonfigurować kolory dla podświetlenia składni kodu. Są one współdzielone w różnych językach - nie tylko dla SQL, ale również dla JavaScript i innych. Domyślnie używany jest kolor zależny od motywu. Aby zdefiniować swój własny kolor, włącz kolor niestandardowy, zaznaczając pole wyboru obok konkretnego koloru. + + + + ConstraintCheckPanel + + + The condition + Warunek + + + + Named constraint: + Ograniczenie nazwane: + + + + On conflict + W razie konfliktu + + + + Enter a valid condition. + Wprowadź poprawny warunek. + + + + Enter a name of the constraint. + Wprowadź nazwę ograniczenia. + + + + ConstraintDialog + + + New constraint + constraint dialog + Nowe ograniczenie + + + + Create + constraint dialog + Utwórz + + + + Edit constraint + dialog window + Edytuj ograniczenie + + + + Apply + constraint dialog + Zastosuj + + + + Primary key + table constraints + Klucz główny + + + + Foreign key + table constraints + Klucz obcy + + + + Unique + table constraints + Wartości unikalne + + + + Not NULL + table constraints + Niepuste + + + + Check + table constraints + Warunek + + + + Generated + table constraints + Generowane + + + + Collate + table constraints + Zestawienie + + + + Default + table constraints + Wartość domyślna + + + + ConstraintTabModel + + + Table + table constraints + Tabela + + + + Column (%1) + table constraints + Kolumna (%1) + + + + Scope + table constraints + Zakres + + + + Type + table constraints + Typ + + + + Details + table constraints + Szczegóły + + + + Name + table constraints + Nazwa + + + + CssDebugDialog + + + SQLiteStudio CSS console + Konsola CSS SQLiteStudio + + + + DataView + + + Filter data + data view + Filtruj dane + + + + Grid view + Widok siatki + + + + Form view + Widok formularza + + + + Refresh table data + data view + Odśwież dane tabeli + + + + First page + data view + Pierwsza strona + + + + Previous page + data view + Poprzednia strona + + + + Next page + data view + Następna strona + + + + Last page + data view + Ostatnia strona + + + + Commit changes for selected cells + data view + Zatwierdź zmiany dla wybranych komórek + + + + Rollback changes for selected cells + data view + Wycofaj zmiany dla wybranych komórek + + + + Show grid view of results + data view + Pokaż widok siatki dla wyników + + + + Show form view of results + data view + Pokaż widok formularza dla wyników + + + + Filter by text (if contains) + data view + Filtruj według tekstu (jeśli zawiera) + + + + Filter strictly by text (if equals) + data view + Filtruj ściśle według tekstu (jeśli jest równy) + + + + Tabs on top + data view + Karty na górze + + + + Tabs at bottom + data view + Karty na dole + + + + Place new rows above selected row + data view + Wstawiaj nowe wiersze nad aktualnie wybranym wierszem + + + + Place new rows below selected row + data view + Wstawiaj nowe wiersze pod aktualnie wybranym wierszem + + + + Place new rows at the end of the data view + data view + Wstawiaj nowe wiersze na końcu widoku siatki danych + + + + Total number of rows is being counted. +Browsing other pages will be possible after the row counting is done. + Całkowita liczba wierszy jest liczona. +Przeglądanie pozostałych stron będzie możliwe kiedy liczenie wierszy zostanie zakończone. + + + + Row: %1 + Wiersz: %1 + + + + Filter + Filtruj + + + + Hit Enter key or press "Apply filter" button on toolbar to apply new value. + Wciśnij Enter lub naciśnij przycisk "Zastosuj filtr", aby zastosować nową wartość. + + + + Filter by the Regular Expression + data view + Filtruj używając Wyrażeń Regularnych + + + + Filter by SQL expression + data view + Filtruj używając wyrażenia SQL + + + + Show filter inputs per column + data view + Pokaż filtr dla każdej kolumny + + + + Apply filter + data view + Zastosuj filtr + + + + DbDialog + + + Database + Baza danych + + + + Database type + Typ bazy danych + + + + Database driver + Sterownik bazy danych + + + + + File + Plik + + + + Name (on the list) + Nazwa (na liście) + + + + Options + Opcje + + + + <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> + aasfd + <p>Włącz to, jeśli chcesz aby baza danych była przechowywana w pliku konfiguracji i przywracana za każdym razem, gdy startuje SQLiteStudio.</p> + + + + Permanent (keep it in configuration) + Trwała (trzymaj w konfiguracji) + + + + Test connection + Testuj połączenie + + + + Select new or existing file on local computer + Wybierz nowy lub istniejący plik na komputerze lokalnym + + + + Browse + Przeglądaj + + + + Database type not selected. + Typ bazy danych nie został wybrany. + + + + Database path not specified. + Ścieżka bazy danych nie została określona. + + + + Enter an unique database name. + Wprowadź unikalną nazwę bazy danych. + + + + This name is already in use. Please enter unique name. + Ta nazwa jest już w użyciu. Proszę wprowadzić unikalną nazwę. + + + + <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> + <p>Automatyczne generowanie nazwy zostało wyłączone, ponieważ nazwa była edytowana ręcznie. Aby przywrócić automatyczne generowanie, proszę wyczyścić pole nazwy.</p> + + + + Enter a database file path. + Wprowadź ścieżkę do pliku bazy danych. + + + + This database is already on the list under name: %1 + Ta baza jest już na liście pod nazwą: %1 + + + + Select a database type. + Wybierz typ bazy danych. + + + + DbObjectDialogs + + + Delete table + Usuń tabelę + + + + Are you sure you want to delete table %1? + Czy na pewno chcesz usunąć tabelę %1? + + + + Delete index + Usuń indeks + + + + Are you sure you want to delete index %1? + Czy na pewno chcesz usunąć indeks %1? + + + + Delete trigger + Usuń wyzwalacz + + + + Are you sure you want to delete trigger %1? + Czy na pewno chcesz usunąć wyzwalacz %1? + + + + Delete view + Usuń widok + + + + Are you sure you want to delete view %1? + Czy na pewno chcesz usunąć widok %1? + + + + + Error while dropping %1: %2 + Błąd podczas porzucania %1: %2 + + + + Delete objects + Usuń obiekty + + + + Are you sure you want to delete following objects: +%1 + Czy na pewno chcesz usunąć następujące obiekty: +%1 + + + + Cannot start transaction. Details: %1 + Nie można wystartować transakcji. Szczegóły: %1 + + + + Cannot commit transaction. Details: %1 + Nie można zatwierdzić transakcji. Szczegóły: %1 + + + + DbTree + + + Databases + Bazy danych + + + + Filter by name + Filtruj po nazwie + + + + Copy + Kopiuj + + + + Paste + Wklej + + + + Select all + Zaznacz wszystko + + + + Create a group + Utwórz grupę + + + + Delete the group + Usuń grupę + + + + Rename the group + Zmień nazwę grupy + + + + &Add a database + Dod&aj bazę danych + + + + &Edit the database + &Edytuj bazę danych + + + + &Remove the database + U&suń bazę danych + + + + &Connect to the database + &Połącz z bazą danych + + + + &Disconnect from the database + &Rozłącz się z bazą danych + + + + Import + Importuj + + + + &Export the database + &Eksportuj bazę danych + + + + Vac&uum + Odk&urz + + + + &Integrity check + Sprawdź spó&jność + + + + Create a &table + Utwórz &tabelę + + + + Edit the t&able + Edytuj t&abelę + + + + Delete the ta&ble + Usuń ta&belę + + + + Export the table + Eksportuj tabelę + + + + Import into the table + Importuj do tabeli + + + + Populate table + Zaludnij tabelę + + + + Create similar table + Utwórz podobną tabelę + + + + Reset autoincrement sequence + Wyzeruj sekwencję autoinkrementacji + + + + Create an &index + Utwórz &indeks + + + + Edit the i&ndex + Edytuj i&ndeks + + + + Delete the in&dex + Usuń in&deks + + + + Create a trig&ger + Utwórz wyz&walacz + + + + Edit the trigg&er + Edytuj wyzw&alacz + + + + Delete the trigge&r + Usuń wyzwa&lacz + + + + Create a &view + Utwórz &widok + + + + Edit the v&iew + Edytuj w&idok + + + + Delete the vi&ew + Usuń wi&dok + + + + Add a column + Dodaj kolumnę + + + + Edit the column + Edytuj kolumnę + + + + Delete the column + Usuń kolumnę + + + + Delete selected items + Usuń wybrane elementy + + + + Clear filter + Wyczyść filtr + + + + &Refresh all database schemas + &Odśwież schematy wszystkich baz danych + + + + Re&fresh selected database schema + Odśwież schemat wy&branej bazy danych + + + + + Erase table data + Wymaż dane tabeli + + + + Open file's directory + Otwórz katalog pliku + + + + Execute SQL from file + Wykonaj SQL z pliku + + + + Increase font size + database list + Zwiększ rozmiar czcionki + + + + Decrease font size + database list + Zmniejsz rozmiar czcionki + + + + + Database + Baza danych + + + + Grouping + Grupowanie + + + + Generate query for table + Generuj zapytanie dla tabeli + + + + + Create group + Utwórz grupę + + + + Group name + Nazwa grupy + + + + Entry with name %1 already exists in group %2. + Pozycja o nazwie %1 istnieje już w grupie %2. + + + + Delete group + Usuń grupę + + + + Are you sure you want to delete group %1? +All objects from this group will be moved to parent group. + Czy na pewno chcesz usunąć grupę %1? +Wszystkie obiekty z tej grupy zostaną przeniesione do nadrzędnej grupy. + + + + Are you sure you want to remove database '%1' from the list? + Czy napewno chcesz wycofać bazę '%1' z listy? + + + + Are you sure you want to remove following databases from the list: +%1 + Czy na pewno chcesz wycofać następujące bazy z listy: +%1 + + + + Remove database + Wycofaj bazę + + + + + Cannot import, because no import plugin is loaded. + Nie można zaimportować, ponieważ żadna wtyczka importu nie została załadowana. + + + + + Cannot export, because no export plugin is loaded. + Nie można wyeksportować, ponieważ żadna wtyczka eksportu nie została załadowana. + + + + Vacuum (%1) + Odkurz (%1) + + + + Integrity check (%1) + Sprawdzanie spójności (%1) + + + + Reset autoincrement + Wyzeruj autoinkrementację + + + + Are you sure you want to reset autoincrement value for table '%1'? + Czy na pewno chcesz wyzerować wartość autoinkrementacji dla tabeli '%1'? + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + Wystąpił błąd podczas próby wyzerowania wartości autoinkrementacji dla tabeli '%1': %2 + + + + Autoincrement value for table '%1' has been reset successfully. + Wartość automatycznej inkrementacji dla tabeli '%1' została zresetowana. + + + + Are you sure you want to delete all data from table(s): %1? + Czy na pewno chcesz usunąć wszystkie dane z tabel(i): %1? + + + + An error occurred while trying to delete data from table '%1': %2 + Wystąpił błąd podczas próby usunięcia danych z tabeli '%1': %2 + + + + All data has been deleted for table '%1'. + Wszystkie dane z tabeli '%1' zostały usunięte. + + + + Following objects will be deleted: %1. + Następujące obiekty zostaną usunięte: %1 + + + + Following databases will be removed from list: %1. + Następujące bazy danych zostaną usunięte z listy: %1 + + + + Remainig objects from deleted group will be moved in place where the group used to be. + Pozostałe obiekty z usuniętej grupy będą przeniesione w miejsce, gdzie dotychczas była ta grupa. + + + + %1<br><br>Are you sure you want to continue? + %1<br><br>Czy na pewno chcesz kontynuować? + + + + Delete objects + Usuń obiekty + + + + DbTreeItemDelegate + + + error + dbtree labels + błąd + + + + (system table) + database tree label + (tabela systemowa) + + + + (virtual) + virtual table label + (wirtualna) + + + + (system index) + database tree label + (indeks systemowy) + + + + DbTreeModel + + + Database: %1 + dbtree tooltip + Baza danych: %1 + + + + URI: + dbtree tooltip + URI: + + + + Version: + dbtree tooltip + Wersja: + + + + File size: + dbtree tooltip + Rozmiar pliku: + + + + Encoding: + dbtree tooltip + Kodowanie: + + + + Error: + dbtree tooltip + Błąd: + + + + Table : %1 + dbtree tooltip + Tablela: : %1 + + + + Columns (%1): + dbtree tooltip + Kolumny (%1): + + + + Indexes (%1): + dbtree tooltip + Indeksy (%1): + + + + Triggers (%1): + dbtree tooltip + Wyzwalacze (%1): + + + + Copy + Kopiuj + + + + Move + Przenieś + + + + Include data + Również dane + + + + Include indexes + Również indeksy + + + + Include triggers + Również wyzwalacze + + + + Abort + Przerwij + + + + Could not add dropped database file '%1' automatically. Manual setup is necessary. + Nie udało się automatycznie dodać upuszczonego pliku bazy '%1'. Niezbędna ręczna ingerencja. + + + + Referenced tables + Tabele powiązane + + + + Do you want to include following referenced tables as well: +%1 + Czy chcesz zawrzeć również powiązane tabele: +%1 + + + + Name conflict + Konflikt nazwy + + + + Following object already exists in the target database. +Please enter new, unique name, or press '%1' to abort the operation: + Następująy obiekt istnieje już w docelowej bazie danych. +Proszę podać nową, unikalną nazwę, lub nacisnąć '%1', aby przerwać operację. + + + + SQL statements conversion + Konwersja zapytań SQL + + + + Following error occurred while converting SQL statements to the target SQLite version: + Następujące błędy wystąpiły podczas konwersji zapytań SQL do docelowej wersji SQLite: + + + + Would you like to ignore those errors and proceed? + Czy chcesz zignorować te błędy i kontynuować? + + + + DdlHistoryWindow + + + Filter by database: + Filtruj po bazie danych: + + + + Clear entire history + Wyczyść całą historię + + + + -- Queries executed on database %1 (%2) +-- Date and time of execution: %3 +%4 + -- Zapytania wykonane na bazie %1 (%2) +-- Data i godzina wykonania: %3 +%4 + + + + Clear history + Wyczyść historię + + + + Are you sure you want to erase entire DDL history? + Czy na pewno chcesz usunąć całą historię DDL? + + + + DDL history + Historia DDL + + + + DdlPreviewDialog + + + Queries to be executed + Zapytania do wykonania + + + + Don't show again + Nie pokazuj więcej + + + + DebugConsole + + + SQLiteStudio Debug Console + Konsola Debugowania SQLiteStudio + + + + EditorWindow + + + SQL editor + Edytor SQL + + + + Query + Zapytanie + + + + History + Historia + + + + Results in the separate tab + Wyniki w osobnej karcie + + + + Results below the query + Wyniki pod zapytaniem + + + + + SQL editor %1 + Edytor SQL %1 + + + + + Results + Wyniki + + + + Execute query + Wykonaj zapytanie + + + + Explain query + Wytłumacz zapytanie + + + + Clear execution history + sql editor + Wymaż historię zapytań + + + + Export results + sql editor + Wyeksportuj wyniki + + + + Create view from query + sql editor + Utwórz widok z zapytania + + + + Previous database + Poprzednia baza danych + + + + Next database + Następna baza danych + + + + Show next tab + sql editor + Pokaż następną kartę + + + + Show previous tab + sql editor + Pokaż poprzednią kartę + + + + Focus results below + sql editor + Aktywuj wyniki poniżej + + + + Focus SQL editor above + sql editor + Aktywuj edytor SQL powyżej + + + + Delete selected SQL history entries + sql editor + Usuń wybrane wpisy z historii SQL + + + + Execute single query under cursor + Wykonaj pojedyncze zapytanie pod kursorem + + + + Execute all queries in editor + Wykonaj wszystkie zapytania w edytorze + + + + Active database (%1/%2) + Aktywna baza danych (%1/%2) + + + + Query finished in %1 second(s). Rows affected: %2 + Zapytanie ukończone w %1 sekund(y). Liczba przetworzonych wierszy: %2 + + + + Query finished in %1 second(s). + Zapytanie ukończone w %1 sekund(y). + + + + Clear execution history + Wymaż historię zapytań + + + + Are you sure you want to erase the entire SQL execution history? This cannot be undone. + Czy na pewno chcesz wymazać całą historię zapytań SQL? Tego nie można odwrócić. + + + + Cannot export, because no export plugin is loaded. + Nie można wyeksportować, ponieważ żadna wtyczka eksportu nie została załadowana. + + + + No database selected in the SQL editor. Cannot create a view for unknown database. + Nie wybrano bazdy danych w edytorze SQL. Nie można utworzyć widoku dla nieznanej bazy. + + + + Editor window "%1" has uncommitted data. + Okno edytora "%1" ma niezatwierdzone dane. + + + + ErrorsConfirmDialog + + + Errors + Błędy + + + + Following errors occured: + Wystąpiły następujące błędy: + + + + Would you like to proceed? + Czy chcesz kontynuować? + + + + ExecFromFileDialog + + + Execute SQL from file + Wykonaj SQL z pliku + + + + Input file + Plik wejściowy + + + + Path to file + Ścieżka do pliku + + + + Browse for file + Przeglądaj pliki + + + + Options + Opcje + + + + File encoding + Kodowanie pliku + + + + Skip failing SQL statements + Pomiń zapytania z błędami + + + + SQL scripts (*.sql);;All files (*) + Skrypty SQL (*.sql);;Wszystkie pliki (*) + + + + Execute SQL file + Wykonaj plik SQL + + + + Please provide file to be executed. + Proszę podać plik do wykonania + + + + Provided file does not exist or cannot be read. + Podany plik nie istnieje, lub nie można go odczytać. + + + + ExportDialog + + + Export + Eksportuj + + + + What do you want to export? + Co chcesz eksportować? + + + + A database + Bazę danych + + + + A single table + Pojedynczą tabelę + + + + Query results + Wyniki zapytania + + + + Table to export + Tabela do wyeksportowania + + + + Database + Baza danych + + + + Table + Tabela + + + + Options + Opcje + + + + When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. + Gdy ta opcja jest odznaczona, to tylko DDL tabeli (zapytanie CREATE TABLE) jest eksportowane. + + + + Export table data + Eksportuj dane tabeli + + + + Export table indexes + Eksportuj indeksy tabeli + + + + Export table triggers + Eksportuj wyzwalacze tabeli + + + + Note, that exporting table indexes and triggers may be unsupported by some output formats. + Zwróć uwagę, że eksportowanie indeksów i wyzwalaczy tabeli może nie być obsługiwane przez niektóre formaty wyjściowe. + + + + Select database objects to export + Wybierz obiekty bazy danych do eksportu + + + + Export data from tables + Eksportuj dane z tabel + + + + Select all + Zaznacz wszystko + + + + Deselect all + Odznacz wszystko + + + + + Database: + Baza danych: + + + + Query to export results for + Zapytanie dla wyników do eksportu + + + + Query to be executed for results: + Zapytanie, które należy wykonać dla wyników: + + + + Export format and options + Format eksportu i opcje + + + + Export format + Format eksportu + + + + Output + Wyjście + + + + Exported file path + Ścieżka do wyeksportowanego pliku + + + + Clipboard + Schowek + + + + File + Plik + + + + Exported text encoding: + Kodowanie wyeksportowanego tekstu: + + + + Export format options + Opcje formatu eksportowania + + + + Cancel + Anuluj + + + + + + Select database to export. + Wybierz bazę do eksportu. + + + + Select table to export. + Wybierz tabelę do eksportu. + + + + Enter valid query to export. + Wprowadź poprawne zapytanie do eksportu. + + + + Select at least one object to export. + Wybierz przynajmniej jeden obiekt do eksportu. + + + + You must provide a file name to export to. + Musisz podać nazwę pliku do którego należy wyeksportować. + + + + Path you provided is an existing directory. You cannot overwrite it. + Ścieżka którą podałeś jest istniejącym katalogiem. Nie można go nadpisać. + + + + The directory '%1' does not exist. + Katalog '%1' nie istnieje. + + + + The file '%1' exists and will be overwritten. + Plik '%1' istnieje i zostanie nadpisany. + + + + All files (*) + Wszystkie pliki (*) + + + + Pick file to export to + Wybierz plik do eksportu + + + + Internal error during export. This is a bug. Please report it. + Wystąpił wewnętrzny błąd podczas eksportu. To jest błąd programu. Proszę to zgłosić. + + + + FileExecErrorsDialog + + + Execution errors + Błędy wykonywania + + + + Following errors were encountered during execution of SQL statements from the file: + Następujące błędy wystąpiły podczas wykonywania zapytań SQL z pliku: + + + + SQL + SQL + + + + Error + Błąd + + + + Statements that were executed successfully were commited. + Wyniki zapytań, które zostały wykonane, zostały zatwierdzone. + + + + Statements that were executed successfully were rolled back. + Wyniki zapytań, które zostały wykonane zostały wycofane. + + + + FkComboBox + + + Cannot edit this cell. Details: %1 + Nie można edytować tej komórki. Szczegóły: %1 + + + + FontEdit + + + Choose font + font configuration + Wybierz czcionkę + + + + Form + + + Active SQL formatter plugin + Aktywna wtyczka formatera SQL + + + + FormView + + + Commit row + form view + Zatwierdź wiersz + + + + Rollback row + form view + Wycofaj wiersz + + + + First row + form view + Pierwszy wiersz + + + + Previous row + form view + Poprzedni wiersz + + + + Next row + form view + Następny wiersz + + + + Last row + form view + Ostatni wiersz + + + + Insert new row + form view + Wstaw nowy wiersz + + + + Delete current row + form view + Usuń bieżący wiersz + + + + FunctionsEditor + + + Filter functions + Filtruj funkcje + + + + Input arguments + Argumenty wejściowe + + + + Undefined + Niezdefiniowane + + + + Databases + Bazy danych + + + + Register in all databases + Zarejestruj we wszystkich bazach danych + + + + Register in following databases: + Zarejestruj w następujących bazach danych: + + + + Type: + Typ: + + + + Function name: + Nazwa funkcji: + + + + Implementation language: + Język implementacji: + + + + Deterministic + Deterministyczna + + + + Initialization code: + Kod inicjalizacji: + + + + + Function implementation code: + Kod implementacji funkcji: + + + + Final step implementation code: + Kod implementacji ostatniego kroku: + + + + SQL functions editor + Edytor funkcji SQL + + + + Commit all function changes + Zatwierdź zmiany we wszystkich funkcjach + + + + Rollback all function changes + Wycofaj zmiany we wszystkich funkcjach + + + + Create new function + Utwórz nową funkcję + + + + Delete selected function + Usuń wybraną funkcję + + + + Custom SQL functions manual + Podręcznik własnych funkcji SQL + + + + Add function argument + Dodaj argument funkcji + + + + Rename function argument + Zmień nazwę argumentu funkcji + + + + Delete function argument + Usuń argument funkcji + + + + Move function argument up + Przesuń argument funkcji w górę + + + + Move function argument down + Przesuń argument funkcji w dół + + + + Scalar + Skalarna + + + + Aggregate + Agregacyjna + + + + Enter a non-empty, unique name of the function. + Wprowadź niepustą, unikalną nazwę funkcji + + + + Pick the implementation language. + Wybierz język implementacji. + + + + Per step code: + Kod pojedynczego kroku: + + + + Enter a non-empty implementation code. + Wprowadź niepusty kod implementacji. + + + + argument + new function argument name in function editor window + argument + + + + Functions editor window has uncommitted modifications. + Okno edytora funkcji ma niezatwierdzone modyfikacje. + + + + ImportDialog + + + Import data + Importuj dane + + + + Table to import to + Tabela do której należy importować + + + + Table + Tabela + + + + Database + Baza danych + + + + Data source to import from + Źródło danych z którego należy importować + + + + Data source type + Typ źródła danych + + + + Options + Opcje + + + + Text encoding: + Kodowanie tekstu: + + + + Input file: + Plik wejściowy: + + + + <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> + <p>Jeśli włączone, to jakiekolwiek naruszenia ograniczeń, lub niepoprawny format danych (niepoprawna liczba kolumn), lub jakikolwiek inny problem, który wystąpi podczas importu zostanie zignorowany i importowanie będzie kontynuowane.</p> + + + + Ignore errors + Ignoruj błędy + + + + Data source options + Opcje źródła danych + + + + Cancel + Anuluj + + + + If you type table name that doesn't exist, it will be created. + Jeśli wpiszesz nazwę tabeli, która nie istnieje, to zostanie ona stworzona. + + + + Enter the table name + Wprowadź nazwę tabeli + + + + Select import plugin. + Wybierz wtyczkę importu + + + + You must provide a file to import from. + Musisz podać plik z którego należy zaimportować. + + + + The file '%1' does not exist. + Plik '%1' nie istnieje. + + + + Path you provided is a directory. A regular file is required. + Ścieżka którą podałeś jest katalogiem. Wymagany jest zwykły plik. + + + + Pick file to import from + Wybierz plik do importu + + + + IndexDialog + + + + Index + Indeks + + + + Column + Kolumna + + + + Sort + Sortowanie + + + + Collation + Zestawienie + + + + On table: + Na tabeli: + + + + Delete selected indexed expression + Usuń wybrane wyrażenie indeksowane. + + + + Moves selected index column up in the order, making it more significant in the index. + Przenosi wybraną indeksowaną kolumnę wyżej w kolejności, czyniąc ją ważniejszą w indeksie. + + + + Moves selected index column down in the order, making it less significant in the index. + Przenosi wybraną indeksowaną kolumnę niżej w kolejności, czyniąc ją mniej ważną w indeksie. + + + + Partial index condition + Warunek indeksu częściowego: + + + + Unique index + Indeks unikalny + + + + Index name: + Nazwa indeksu: + + + + Edit selected indexed expression + Edytuj wybrane wyrażenie indeksowane + + + + Add indexed expression + Dodaj wyrażenie indeksowane + + + + DDL + DDL + + + + Tried to open index dialog for closed or inexisting database. + Próbowano otworzyć okno indeksu dla zamkniętej lub nieistniejącej bazy. + + + + Could not process index %1 correctly. Unable to open an index dialog. + Nie udało się przetworzyć poprawnie indeksu %1. Nie można otworzyć okna indeksu. + + + + Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. + Unikalny indeks nie może zawierać wyrażeń indeksowanych. Albo usuń wyrażenia z poniższej listy, albo odznacz tę opcję. + + + + Pick the table for the index. + Wybierz tabelę dla indeksu. + + + + Select at least one column. + Zaznacz przynajmniej jedną kolumnę. + + + + Enter a valid condition. + Wprowadź poprawny warunek. + + + + default + index dialog + domyślne + + + + Sort order + table constraints + Kierunek sortowania + + + + + Error + index dialog + Błąd + + + + Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? + Nie można utworzyć indeksu, ponieważ wartości w wybranych kolumnach nie są unikalne. Czy chcesz wykonać zapytanie SELECT, aby zobaczyć wartości stwarzające problem? + + + + An error occurred while executing SQL statements: +%1 + Wystąpił błąd podczas wykonywania zapytań SQL: +%1 + + + + IndexExprColumnDialog + + + Indexed expression + Wyrażenie indeksowane + + + + Expression to index + Wyrażenie do indeksowania + + + + This expression is already indexed by the index. + To wyrażenie jest już indeksowane przez indeks. + + + + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. + Kolumna powinna być indeksowana bezpośrednio, nie przez wyrażenie. Albo rozszerz to wyrażenie, aby zwierało coś więcej niż tylko nazwę kolumny, albo przerwij i wybierz tą kolumnę bezpośrednio w oknie dialogowym indeksu. + + + + Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. + Kolumna '%1' nie należy do tabeli objętej tym indeksem. Wyrażenia indeksowane mogą odnosić się jedynie do kolumn z indeksowanej tabeli. + + + + It's forbidden to use 'SELECT' statements in indexed expressions. + Nie można używać zapytań 'SELECT' w wyrażeniach indeksowanych. + + + + Enter an indexed expression. + Wprowadź wyrażenie indeksowane. + + + + Invalid expression. + Niepoprawne wyrażenie. + + + + LanguageDialog + + + Language + Język + + + + Please choose language: + Proszę wybrać język: + + + + MainWindow + + + Database toolbar + Pasek narzędzi baz danych + + + + Structure toolbar + Pasek narzędzi struktury + + + + Tools + Narzędzia + + + + Window list + Lista okien + + + + View toolbar + Pasek narzędzi widoku + + + + Configuration widgets + Kontrolki konfiguracji + + + + Syntax highlighting engines + Silniki podświetlania składni + + + + Data editors + Edytory danych + + + + Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. + Uruchomiono tryb debugowania. Wciśnij %1 lub wybierz menu 'Pomoc / Otwórz konsolę debugowania' aby otworzyć konsolę debugowania. + + + + Running in debug mode. Debug messages are printed to the standard output. + Uruchomiono tryb debugowania. Wiadomości debugujące są wyświetlane na standardowym wyjściu. + + + + You need to restart application to make the language change take effect. + Należy zrestartować aplikację, aby nastąpiła zmiana języka. + + + + Open SQL &editor + Otwórz &edytor SQL + + + + Open DDL &history + Otwórz &historię DDL + + + + Open SQL &functions editor + Otwórz edytor &funkcji SQL + + + + Open code &snippets editor + Otwórz edytor kodu f&ragmentów + + + + Open &collations editor + Otwórz edytor &zestawień + + + + Open ex&tension manager + O&twórzy menadżera rozszerzeń + + + + &Import + &Importuj + + + + E&xport + E&ksportuj + + + + Open confi&guration dialog + Otwórz okno konfi&guracji + + + + &Tile windows + Ustaw okna w pły&tki + + + + Tile windows &horizontally + Ustaw okno po&ziomo + + + + Tile windows &vertically + Ustaw okna pio&nowo + + + + &Cascade windows + Ustaw okna &kaskadowo + + + + Next window + Następne okno + + + + Previous window + Poprzednie okno + + + + Hide status field + Ukryj pole statusu + + + + Close &all windows + Z&amknij wszystkie okna + + + + Re&store recently closed window + Przywróć o&statnio zamknięte okno + + + + Close current &window + Zamknij &bieżące okno + + + + Close &other windows + Zamknij &inne okna + + + + Close windows on the &left + Zamknij okna po &lewej + + + + Close windows on the &right + Zamknij okna po &prawej + + + + Re&name selected window + Zmień &nazwę wybranego okna + + + + Open Debug Console + Otwórz Konsolę Debugowania + + + + Open CSS Console + Otwórz konsolę CSS + + + + Report a &bug + Zgłoś &błąd + + + + D&onate + Wesprzyj d&otacją + + + + Propose a new &feature + Zgłoś &pomysł + + + + &About + O progra&mie + + + + &Licenses + &Licencje + + + + Open home &page + Otwórz stronę &domową + + + + User &Manual + &Podręcznik Użytkownika + + + + SQLite &documentation + &Dokumentacja SQLite + + + + Bugs and feature &requests + Błęd&y i pomysły + + + + Quit + Wyjdź + + + + Check for &updates + Sprawdź akt&ualizacje + + + + &Database + menubar + Bazy &danych + + + + &Structure + menubar + &Struktura + + + + &View + menubar + &Widoki + + + + Window list + menubar view menu + Lista okien + + + + &Tools + menubar + &Narzędzia + + + + &Help + &Pomoc + + + + Could not set style: %1 + main window + Nie udało się ustawić stylu: %1 + + + + Cannot export, because no export plugin is loaded. + Nie można wyeksportować, ponieważ żadna wtyczka eksportu nie została załadowana. + + + + Cannot import, because no import plugin is loaded. + Nie można zaimportować, ponieważ żadna wtyczka importu nie została załadowana. + + + + Rename window + Zmień nazwę okna + + + + Enter new name for the window: + Wprowadź nową nazwę dla okna: + + + + New updates are available. <a href="%1">Click here for details</a>. + Nowe aktualizacje są dostępne: <a href="%1">Kliknij aby poznać szczegóły</a>. + + + + You're running the most recent version. No updates are available. + Uruchomiona jest najnowsza wersja. Nie ma dostępnych aktualizacji. + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + Baza danych podana w parametrach linii poleceń (%1) była już na liście pod nazwą: %2 + + + + Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 + Baza danych podana w linii poleceń (%1) jest tymczasowo dodana do listy pod nazwą: %2 + + + + Could not add database %1 to list. + Nie udało się dodać bazy danych %1 do listy. + + + + MdiWindow + + + Uncommitted changes + Niezatwierdzone zmiany + + + + Close anyway + Zamknij mimo to + + + + Don't close + Nie zamykaj + + + + MultiEditor + + + Null value + multieditor + Wartość null + + + + Configure editors for this data type + Skonfiguruj edytory dla tego typu danych + + + + Open another tab + Otwórz kolejną zakładkę + + + + Foreign Key + Klucz obcy + + + + Data editor plugin '%1' not loaded, while it is defined for editing '%2' data type. + Wtyczka edytora danych '%1' nie jest załadowana, podczas gdy jest ona zdefiniowana do edycji typu danych '%1'. {1'?} {2'?} {1' or 2'?} + + + + Deleted + multieditor + Usunięto + + + + Read only + multieditor + Tylko do odczytu + + + + MultiEditorBoolPlugin + + + Boolean + Logiczna + + + + MultiEditorDatePlugin + + + Date + Data + + + + MultiEditorDateTimePlugin + + + Date & time + Data i czas + + + + MultiEditorHexPlugin + + + Hex + Heks + + + + MultiEditorNumericPlugin + + + Number + numeric multi editor tab name + Liczba + + + + MultiEditorText + + + Tab changes focus + Tabulator zmienia aktywność + + + + Cut + Wytnij + + + + Copy + Kopiuj + + + + Paste + Wklej + + + + Delete + Usuń + + + + Undo + Cofnij + + + + Redo + Przywróć + + + + MultiEditorTextPlugin + + + Text + Tekst + + + + MultiEditorTimePlugin + + + Time + Czas + + + + NewConstraintDialog + + + New constraint + Nowe ograniczenie + + + + + Primary Key + new constraint dialog + Klucz główny + + + + + Foreign Key + new constraint dialog + Klucz obcy + + + + + Unique + new constraint dialog + Wartości unikalne + + + + + Check + new constraint dialog + Warunek + + + + Not NULL + new constraint dialog + Niepuste + + + + Collate + new constraint dialog + Zestawienie + + + + Generated + new constraint dialog + Generowane + + + + Default + new constraint dialog + Wartość domyślna + + + + NewVersionDialog + + + SQLiteStudio updates + Aktualizacje SQLiteStudio + + + + New version is available! + Dostępna jest nowa wersja! + + + + Download new version! + Pobierz nową wersję! + + + + New version package will be downloaded. It will be up to you to install it whenever you're ready. + Paczka z nową wersją zostanie pobrana. Do ciebie będzie należało zainstalowanie jej, gdy uznasz to za stosowne. + + + + Open SQLiteStudio home page. + Otwórz stronę główną SQLiteStudio. + + + + Read release notes && download package yourself. + Przeczytaj notatki o wydaniu i pobierz pakiet samodzielnie. + + + + Just close this window. + Po prostu zamknij to okno. + + + + Check for updates on startup + Sprawdzaj aktualizacje na starcie + + + + Not now. + Nie teraz. + + + + PopulateConfigDialog + + + Populating configuration + Konfiguracja zaludniania + + + + Configuring <b>%1</b> for column <b>%2</b> + Konfigurowanie <b>%1</b> dla kolumny <b>%2</b> + + + + PopulateDialog + + + Populate table + Zaludnij tabelę + + + + Database + Baza danych + + + + Table + Tabela + + + + Columns + Kolumny + + + + Number of rows to populate: + Liczba wierszy do zaludnienia: + + + + Populate + populate dialog button + Zaludnij + + + + Abort + Przerwij + + + + Configure + Konfiguruj + + + + Populating configuration for this column is invalid or incomplete. + Konfiguracja zaludniania dla tej kolumny jest niepoprawna lub niekompletna. + + + + Select database with table to populate + Wybierz bazę danych z tabelą do zaludnienia + + + + Select table to populate + Wybierz tabelę do zaludnienia + + + + You have to select at least one column. + Musisz zaznaczyć przynajmniej jedną kolumnę. + + + + QObject + + + Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). + Nie można edytować kolumn, które są wynikiem złożonego zapytania %1 (tego, które zawiera słowo kluczowe %2, %3, lub %4). + + + + The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. + Mechanizm wykonywania zapytań miał problemy z wyciągnięciem własności ROWID. To może być błąd aplikacji. Możesz to zgłosić. + + + + Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. + Ta kolumna jest wynikiem wyrażenia SQL, a nie zwykłej selekcji kolumny. Takie kolumny nie mogą być edytowane. + + + + Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. + Ta kolumna należy do systemowej tabeli SQLite. Te tabele nie mogą być edytowane bezpośrednio. + + + + Cannot edit results of query other than %1. + Nie można edytować wyników zapytania innego niż %1. + + + + Cannot edit columns that are result of aggregated %1 statements. + Nie można edytować kolumn, które są wynikiem zapytania agregacyjnego %1. + + + + Cannot edit columns that are result of %1 statement. + Nie można edytować kolumn, które są wynikiem zapytania %1. + + + + Cannot edit columns that are result of common table expression statement (%1). + Nie można edytować kolumn, które są wynikiem zapytania ze wspólnym wyrażeniem tabeli (%1). + + + + Cannot edit table generated columns. + Nie można edytować generowanych kolumn tabeli. + + + + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). + Nie można edytować kolumn, które są wynikiem widoku, jeśli wykonane zapytanie odczytuje z dowolnego widoku wielopoziomowego (tj. widoku który zapytał inny widok). + + + + + + + on conflict: %1 + data view tooltip + w razie konfliktu: %1 + + + + references table %1, column %2 + data view tooltip + odwołuje się do tabeli %1, kolumny %2 + + + + condition: %1 + data view tooltip + warunek: %1 + + + + collation name: %1 + data view tooltip + nazwa zestawienia: %1 + + + + Data grid view + Widok siatki danych + + + + Edit current cell inline + Edytuj bieżącą komórkę na miejscu + + + + Copy cell(s) contents to clipboard + Skopiuj zawartość komórek do schowka. + + + + Copy cell(s) contents together with header to clipboard + Skopiuj zawartość komórek z z nagłówkiem do schowka + + + + Paste cell(s) contents from clipboard + Wklej zawartość komórkek ze schowka. + + + + Set empty value to selected cell(s) + Ustaw pustą wartość dla wybranych komórek + + + + Set NULL value to selected cell(s) + Ustaw wartość NULL dla wybranych komórek + + + + Commit changes to cell(s) contents + Zatwierdź zmiany dla zawartości komórek + + + + Rollback changes to cell(s) contents + Wycofaj zmiany dla zawartości komórek + + + + Delete selected data row + Usuń wybrane wiersze danych + + + + Insert new data row + Wstaw nowy wiersz danych + + + + Open contents of selected cell in a separate editor + Otwórz zawartość wybranej komórki w osobnym edytorze + + + + Toggle the height adjustment of rows + Przełącz regulację wysokości wierszy + + + + Increase font size + data view + Zwiększ rozmiar czcionki + + + + Decrease font size + data view + Zmniejsz rozmiar czcionki + + + + Total pages available: %1 + Liczba dostępnych stron: %1 + + + + Total rows loaded: %1 + Liczba załadowanych wierszy: %1 + + + + Data view (both grid and form) + Widok danych (zarówno siatki i formularza) + + + + Refresh data + Odśwież dane + + + + Switch to grid view of the data + Przełącz do widoku siatki danych + + + + Switch to form view of the data + Przełącz do widoku formularza danych + + + + Database list + Lista baz + + + + Delete selected item + Usuń zaznaczony element + + + + Clear filter contents + Wyczyść zawartość filtra + + + + Refresh schema + Odśwież schemat + + + + Refresh all schemas + Odśwież wszystkie schematy + + + + Add database + Dodaj bazę danych + + + + Select all items + Zaznacz wszystkie elementy + + + + Copy selected item(s) + Kopiuj zaznaczone elementy + + + + + + Paste from clipboard + Wklej ze schowka + + + + Increase font size + database list + Zwiększ rozmiar czcionki + + + + Decrease font size + database list + Zmniejsz rozmiar czcionki + + + + Tables + Tabele + + + + Indexes + Indeksy + + + + Triggers + Wyzwalacze + + + + Views + Widoki + + + + Columns + Kolumny + + + + Data form view + Widok formularza danych + + + + Commit changes for current row + Zatawierdź zmiany dla bieżącego wiersza + + + + Rollback changes for current row + Wycofaj zmiany dla bieżącego wiersza + + + + Go to first row on current page + Przejdź do pierwszego wiersza na bieżącej stronie + + + + Go to next row + Przejdź do następnego wiersza + + + + Go to previous row + Przejdź do poprzedniego wiersza + + + + Go to last row on current page + Przejdź do ostatniego wiersza na bieżącej stronie + + + + Insert new row + Wstaw nowy wiersz + + + + Delete current row + Usuń bieżący wiersz + + + + Main window + Okno główne + + + + Open SQL editor + Otwórz edytor SQL + + + + Open DDL history window + Otwórz okno historii DDL + + + + Open snippets editor window + Otwórz okno edytora fragmentów + + + + Open function editor window + Otwórz okno edytora funkcji + + + + Open collation editor window + Otwórz okno edytora zestawień + + + + Open extension manager window + Otwórz okno menedżera rozszerzeń + + + + Previous window + Poprzednie okno + + + + Next window + Następne okno + + + + Hide status area + Ukryj pole statusu + + + + Open user manual + Otwórz podręcznik użytkownika + + + + Open configuration dialog + Otwórz okno konfiguracji + + + + Open Debug Console + Otwórz Konsolę Debugowania + + + + Open CSS Console + Otwórz konsolę CSS + + + + Open the About dialog + Otwórz okno O Programie + + + + Quit the application + Wyjdź z aplikacji + + + + Cell text value editor + Edytor tekstowy wartości komórki + + + + + Cut selected text + Wytnij wybrany tekst + + + + + Copy selected text + Skopiuj wybrany tekst + + + + + Delete selected text + Usuń wybrany tekst + + + + + Undo + Cofnij + + + + + Redo + Przywróć + + + + SQL editor input field + Pole wprowadzania edytora SQL + + + + Select whole editor contents + Zaznacz całą zawartość edytora + + + + Save contents into a file + Zapisz zawartość do pliku + + + + Load contents from a file + Wczytaj zawartość z pliku + + + + Find in text + Znajdź w tekście + + + + Find next + Znajdź następny + + + + Find previous + Znajdź poprzedni + + + + Replace in text + Zmień w tekście + + + + Delete current line + Usuń bieżącą linię + + + + Request code assistant + Wywołaj asystenta kodu + + + + Format contents + Formatuj zawartość + + + + Move selected block of text one line down + Przenieś wybrany blok tekstu o jedną linię w dół + + + + Move selected block of text one line up + Przenieś wybrany blok tekstu o jedną linię w górę + + + + Copy selected block of text and paste it a line below + Skopiuj wybrany blok tekstu i wklej go poniżej + + + + Copy selected block of text and paste it a line above + Skopiuj wybrany blok tekstu i wklej go powyżej + + + + Toggle comment + Przełącz komentarz + + + + Increase font size + sql editor + Zwiększ rozmiar czcionki + + + + Decrease font size + sql editor + Zmniejsz rozmiar czcionki + + + + All SQLite databases + Wszystkie bazy danych SQLite + + + + All files + Wszystkie pliki + + + + Select database file + Wybierz plik bazy danych + + + + Select + Wybierz + + + + File type + Typ pliku + + + + SQL editor window + Okno edytora SQL + + + + Execute query + Wykonaj zapytanie + + + + Execute single query under cursor + Wykonaj pojedyncze zapytanie pod kursorem + + + + Execute all queries in editor + Wykonaj wszystkie zapytania w edytorze + + + + Execute "%1" query + Wykonaj zapytanie "%1" + + + + Switch current working database to previous on the list + Zmień roboczą bazę danych na poprzednią z listy + + + + Switch current working database to next on the list + Zmień roboczą bazę danych na następną z listy + + + + Go to next editor tab + Przejdź do następnej karty edytora + + + + Go to previous editor tab + Przejdź do poprzedniej karty edytora + + + + Move keyboard input focus to the results view below + Przenieś aktywność klawiatury do widoku wyników poniżej + + + + Move keyboard input focus to the SQL editor above + Przenieś aktywność klawiatury do edytora SQL powyżej + + + + Delete selected SQL history entries + Usuń wybrane wpisy z historii SQL + + + + Table window + Okno tabeli + + + + Commit the table structure + Zatwierdź strukturę tabeli + + + + Rollback pending changes in the table structure + Wycofaj oczekujące zmiany w strukturze tabeli + + + + Refresh table structure + Odśwież strukturę tabeli + + + + Add new column + Dodaj nową kolumnę + + + + Edit selected column + Edytuj wybraną kolumnę + + + + Delete selected column + Usuń wybraną kolumnę + + + + Export table data + Eksportuj dane tabeli + + + + Import data to the table + Importuj dane do tabeli + + + + Add new table constraint + Dodaj nowe ograniczenie tabeli + + + + Edit selected table constraint + Edytuj wybrane ograniczenie tabeli + + + + Delete selected table constraint + Usuń wybrane ograniczenie tabeli + + + + Refresh table index list + Odśwież listę indeksów tabeli + + + + Add new index + Dodaj nowy indeks + + + + Edit selected index + Edytuj wybrany indeks + + + + Delete selected index + Usuń wybrany indeks + + + + Refresh table trigger list + Odśwież listę wyzwalaczy tabeli + + + + + Add new trigger + Dodaj nowy wyzwalacz + + + + + Edit selected trigger + Edytuj wybrany wyzwalacz + + + + + Delete selected trigger + Usuń wybrany wyzwalacz + + + + + Go to next tab + Przejdź do następnej karty + + + + + Go to previous tab + Przejdź do poprzedniej karty + + + + A view window + Okno widoku + + + + Commit the view's query + Zatwierdź zapytanie widoku + + + + Rollback pending changes in the view's query + Wycofaj oczekujące zmiany w widoku zapytania + + + + Refresh view trigger list + Odśwież listę wizwalaczy widoku + + + + Execute the view's query + Wykonaj zapytanie widoku + + + + A code snippets editor window + Okno edytora fragmentów kodu + + + + + + + Commit the pending changes + Zatwierdź oczekujące zmiany + + + + + + + Rollback the pending changes + Wycofaj oczekujące zmiany + + + + A collation editor window + Okno edytora zestawień + + + + A function editor window + Okno edytora funkcji + + + + A SQLite extension editor window + Okno edytora rozszerzeń SQLite + + + + QuitConfirmDialog + + + Uncommitted changes + Niezatwierdzone zmiany + + + + Are you sure you want to quit the application? + +Following items are pending: + Czy na pewno chcesz zamknąć aplikację? + +Następujące elementy są w toku: + + + + SearchTextDialog + + + Find or replace + Znajdź lub zastąp + + + + Find: + Znajdź: + + + + Case sensitive + Uwzględniaj wielkość liter + + + + Search backwards + Szukaj wstecz + + + + Regular expression matching + Dopasowywanie wyrażeniem regularnym + + + + Replace && +find next + Zastąp i +znajdź następny + + + + Replace with: + Zastąp: + + + + Replace all + Zastąp wszystkie + + + + Find + Znajdź + + + + SortDialog + + + Sort by columns + Sortuj wg. kolumn + + + + + Column + Kolumna + + + + + Order + Kierunek + + + + Sort by: %1 + Sortuj po: %1 + + + + Move column up + Przesuń kolumnę w górę + + + + Move column down + Przesuń kolumnę w dół + + + + SqlEditor + + + Wrap words + sql editor + Zawijaj słowa + + + + Cut + sql editor + Wytnij + + + + Copy + sql editor + Kopiuj + + + + Paste + sql editor + Wklej + + + + Delete + sql editor + Usuń + + + + Select all + sql editor + Zaznacz wszystko + + + + Undo + sql editor + Cofnij + + + + Redo + sql editor + Przywróć + + + + Complete + sql editor + Dopełnij + + + + Format SQL + sql editor + Formatuj SQL + + + + Save SQL to file + sql editor + Zapisz SQL do pliku + + + + Select file to save SQL + sql editor + Wybierz plik do zapisu SQL + + + + Load SQL from file + sql editor + Wczytaj SQL z pliku + + + + Delete line + sql editor + Usuń linię + + + + Move block down + sql editor + Przesuń blok w dół + + + + Move block up + sql editor + Przesuń blok w górę + + + + Copy block down + sql editor + Skopiuj blok w dół + + + + Copy up down + sql editor + Skopiuj blok w górę + + + + Find + sql editor + Znajdź + + + + Find next + sql editor + Znajdź następny + + + + Find previous + sql editor + Znajdź poprzedni + + + + Replace + sql editor + Zastąp + + + + Toggle comment + sql editor + Przełącz komentarz + + + + Increase font size + sql editor + Zwiększ rozmiar czcionki + + + + Decrease font size + sql editor + Zmniejsz rozmiar czcionki + + + + Could not open file '%1' for writing: %2 + Nie udało się otworzyć pliku '%1' do zapisu: %2 + + + + Saved SQL contents to file: %1 + Zapisano zawartość SQL do pliku: %1 + + + + Syntax completion can be used only when a valid database is set for the SQL editor. + Dopełnianie składni może być użyte tylko wtedy, gdy poprawna baza danych jest ustawiona w edytorze SQL. + + + + Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. + Zawartość edytora SQL jest ogromna, więc sprawdzanie błędów i podświetlanie istniejących obiektów zostało tymczasowo wyłączone. + + + + Save to file + Zapisz do pliku + + + + SQL scripts (*.sql);;All files (*) + Skrypty SQL (*.sql);;Wszystkie pliki (*) + + + + Open file + Otwórz plik + + + + Could not open file '%1' for reading: %2 + Nie udało się otworzyć pliku '%1' do odczytu: %2 + + + + Reached the end of document. Hit the find again to restart the search. + Osiągnięto koniec dokumentu. Wciśnij szukanie ponownie, aby zrestartować szukanie. + + + + SqlQueryItem + + + Committing error: + data view tooltip + Błąd zatwierdzenia: + + + + Column: + data view tooltip + Kolumna: + + + + Data type: + data view + Typ danych: + + + + Table: + data view tooltip + Tabela: + + + + Constraints: + data view tooltip + Ograniczenie: + + + + SqlQueryItemDelegate + + + + + + Cannot edit this cell. Details: %1 + Nie można edytować tej komórki. Szczegóły: %1 + + + + The row is marked for deletion. + Wiersz jest zaznaczony do usunięcia. + + + + + Structure of this table has changed since last data was loaded. Reload the data to proceed. + Struktura tej tabeli zmieniła się od ostatniego ładowania danych. Przeładuj dane, aby kontynuować. + + + + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). + Edytowanie ogromnych ilości danych w podręcznym edytorze nie jest dobrym pomysłem. Może być on powolny i nieporęczny. Lepiej edytować takie duże ilości danych w Widoku Formularza, lub w osobnym oknie edytora (dostępnym w menu prawego kliknięcia myszy). + + + + Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. + Klucz obcy dla kolumny %2 ma więcej niż %1 możliwych wartości. To zbyt wiele, by wyświetlić w liście rozwijanej. Musisz edytować wartość ręcznie. + + + + SqlQueryModel + + + + Only one query can be executed simultaneously. + Tylko jedno zapytanie może być wykonywane w danym momencie. + + + + Cannot execute query on undefined or invalid database. + Nie można wykonać zapytania na niezdefiniowanej lub nieprawidłowej bazie danych. + + + + Cannot execute empty query. + Nie można wykonać pustego zapytania. + + + + Uncommitted data + Niezatwierdzone dane + + + + There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. + Niektóre zmiany w danych nie zostały zatwierdzone. Czy na pewno chcesz kontynuować? Wszystkie niezatwierdzone zmiany zostaną utracone. + + + + Cannot commit the data for a cell that refers to the already closed database. + Nie można zatwierdzić danych dla komórki, która odnosi się do zamkniętej już bazy danych. + + + + Could not begin transaction on the database. Details: %1 + Nie udało się rozpocząć transakcji na bazie danych. Szczegóły: %1 + + + + An error occurred while committing the transaction: %1 + Wystąpił błąd podczas zatwierdzania transakcji: %1 + + + + An error occurred while rolling back the transaction: %1 + Wystąpił błąd podczas wycofywania transakcji: %1 + + + + Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. + Próbowano zatwierdzić komórkę, której nie można edytować (a mimo to została zmodyfikowana i czeka na zatwierdzenie)! To jest błąd. Proszę to zgłosić. + + + + An error occurred while committing the data: %1 + Wystąpił błąd podczas zatwierdzania danych: %1 + + + + Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. + Liczba wierszy na stronę została zmniejszona do %1, w związku z liczbą kolumn (%2) w widoku danych. + + + + + Error while executing SQL query on database '%1': %2 + Błąd podczas wykonywania zapytania SQL na bazie '%1': %2 + + + + Error while loading query results: %1 + Błąd podczas wczytywania wyników zapytania: %1 + + + + Insert multiple rows + Wstaw wiele wierszy + + + + Number of rows to insert: + Liczba wierszy do wstawienia: + + + + Delete rows + Usuń wiersze + + + + You're about to delete newly inserted rows that are not committed yet. Row numbers: %1 +Such deletion will be permanent. Are you sure you want to delete them? + Chcesz usunąć nowo wstawione wiersze, które nie są jeszcze zatwierdzone. Numery wierszy: %1 +Takie usunięcie będzie trwałe. Czy na pewno chcesz je usunąć? + + + + SqlQueryView + + + Go to referenced row in... + Idź do powiązanego wiersza w... + + + + Copy + Kopiuj + + + + Copy with headers + Kopiuj z nagłówkami + + + + Copy as... + Kopiuj jako... + + + + Paste + Wklej + + + + Paste as... + Wklej jako... + + + + Set NULL values + Ustaw wartości NULL + + + + Erase values + Wymaż wartości + + + + Commit + Zatwierdź + + + + Rollback + Wycofaj + + + + Commit selected cells + Zatwierdź zaznaczone komórki + + + + Rollback selected cells + Wycofaj zaznaczone komórki + + + + Edit current cell inline + Edytuj bieżącą komórkę na miejscu + + + + Define columns to sort by + Zdefiniuj kolumny po których sortować + + + + Remove custom sorting + Wycofaj własne sortowanie + + + + Insert row + Wstaw wiersz + + + + Insert multiple rows + Wstaw wiele wierszy + + + + Delete selected row + Usuń zaznaczony wiersz + + + + Adjust height of rows + Dostosuj wysokość wierszy + + + + Increase font size + data view + Zwiększ rozmiar czcionki + + + + Decrease font size + data view + Zmniejsz rozmiar czcionki + + + + Invert selection + data view + Odwróć zaznaczenie + + + + Edit value in editor + Edytuj wartość w edytorze + + + + Show value in a viewer + Pokaż wartość w przeglądarce + + + + Generate query for selected cells + Generuj zapytanie dla wybranych komórek + + + + No items selected to paste clipboard contents to. + Nie wybrano elementów do których należy wkleić zawartość schowka. + + + + Cannot paste data. Details: %1 + Nie można wkleić danych. Szczegóły: %1 + + + + Structure of at least one table used has changed since last data was loaded. Reload the data to proceed. + Zmieniła się struktura przynajmniej jednej tabeli od czasu ostatniego wczytania danych. Odśwież dane, aby kontynuować. + + + + Cannot paste to a cell. Details: %1 + Nie można wkleić do komórki. Szczegóły: %1 + + + + The row is marked for deletion. + Wiersz jest zaznaczony do usunięcia. + + + + Cannot paste to column %1. Details: %2 + Nie można wkleić do kolumny %1. Szczegóły: %2 + + + + Go to referenced row in table '%1' + Idź do powiązanego wiersza w tabeli '%1' + + + + table '%1' + tabela '%1' + + + + Referenced row (%1) + Powiązany wiersz (%1) + + + + Trim pasted text? + Przyciąć wklejany tekst? + + + + The pasted text contains leading or trailing white space. Trim it automatically? + Wklejany tekst zawiera spacje na początku lub końcu. Czy przyciąć go automatycznie? + + + + Paste "NULL" as null value? + Wkleić "NULL" jako wartość zerową? + + + + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + Wklejony tekst zawiera literały "NULL". Czy chcesz je uznać za wartości NULL? + + + + Edit value + Edytuj wartość + + + + SqlTableModel + + + Error while committing new row: %1 + Błąd podczas zatwierdzania nowego wiersza: %1 + + + + Error while deleting row from table %1: %2 + Błąd podczas usuwania wiersza z tabeli %1: %2 + + + + SqliteExtensionEditor + + + Filter extensions + Filtruj rozszerzenia + + + + Leave empty to use default function + Pozostaw puste, aby użyć domyślnej funkcji + + + + Extension file + Plik rozszerzenia + + + + Initialization function + Funkcja inicjalizująca + + + + Databases + Bazy danych + + + + Register in all databases + Zarejestruj we wszystkich bazach danych + + + + Register in following databases: + Zarejestruj w następujących bazach danych: + + + + Extension manager window has uncommitted modifications. + Okno menadżera rozszerzeń ma niezatwierdzone modyfikacje. + + + + Extension manager + Menadżer rozszerzeń + + + + Commit all extension changes + Zatwierdź wszystkie zmiany w rozszerzeniach + + + + Rollback all extension changes + Wycofaj wszystkie zmiany w rozszerzeniach + + + + Add new extension + Dodaj nowe rozszerzenie + + + + Remove selected extension + Usuń wybrane rozszerzenie + + + + Editing extensions manual + Podręcznik edytowania rozszerzeń + + + + File with given path does not exist or is not readable. + Plik o podanej ścieżce nie istnieje lub nie można go odczytać. + + + + Unable to load extension: %1 + Nie można załadować rozszerzenia: %1 + + + + Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. + Niepoprawna nazwa funkcji inicjalizującej. Nazwa funkcji może zawierać jedynie znaki alfanumeryczne i znak podkreślenia. + + + + Dynamic link libraries (*.dll);;All files (*) + Biblioteki linkowania dynamicznego (*.dll);;Wszystkie pliki (*) + + + + Shared objects (*.so);;All files (*) + Obiekty wspóldzielone (*.so);;Wszystkie pliki (*) + + + + Dynamic libraries (*.dylib);;All files (*) + Biblioteki dynamiczne (*.dylib);;Wszystkie pliki (*) + + + + All files (*) + Wszystkie pliki (*) + + + + Open file + Otwórz plik + + + + StatusField + + + Status + Status + + + + Copy + Kopiuj + + + + Clear + Wyczyść + + + + TableConstraintsModel + + + Type + table constraints + Typ + + + + Details + table constraints + Szczegóły + + + + Name + table constraints + Nazwa + + + + TableForeignKeyPanel + + + Foreign table: + Tabela obca: + + + + Columns + Kolumny + + + + Local column + Kolumna lokalna + + + + Foreign column + Kolumna obca + + + + Reactions + Reakcje + + + + Deferred foreign key + Klucz obcy odroczony + + + + Named constraint + Nazwane ograniczenie + + + + Constraint name + Nazwa ograniczenia + + + + Pick the foreign column. + Wybierz kolumnę obcą + + + + Pick the foreign table. + Wybierz tabelę obcą + + + + Select at least one foreign column. + Wybierz przynajmnie jedną kolumnę obcą. + + + + Enter a name of the constraint. + Wprowadź nazwę ograniczenia. + + + + Foreign column + table constraints + Kolumna obca + + + + TablePrimaryKeyAndUniquePanel + + + Columns + Kolumny + + + + Column + Kolumna + + + + Collation + Zestawienie + + + + Sort + Sortowanie + + + + Valid only for a single column with INTEGER data type + Dozwolone tylko dla jednej kolumny o typie danych INTEGER + + + + Autoincrement + Autoinkrementacja + + + + Named constraint + Nazwane ograniczenie + + + + Constraint name + Nazwa ograniczenia + + + + On conflict + W razie konfliktu + + + + Collate + table constraints + Zestawienie + + + + Sort order + table constraints + Kierunek sortowania + + + + Select at least one column. + Zaznacz przynajmniej jedną kolumnę. + + + + Enter a name of the constraint. + Wprowadź nazwę ograniczenia. + + + + TableStructureModel + + + Name + table structure columns + Nazwa + + + + Data type + table structure columns + Typ danych + + + + Primary +Key + table structure columns + Klucz +Główny + + + + Foreign +Key + table structure columns + Klucz +Obcy + + + + Unique + table structure columns + Wartości +unikalne + + + + Check + table structure columns + Warunek + + + + Not +NULL + table structure columns + Niepuste + + + + Collate + table structure columns + Zestawienie + + + + Generated + table structure columns + Generowane + + + + Default value + table structure columns + Domyślna wartość + + + + TableWindow + + + Structure + Struktura + + + + Table name: + Nazwa tabeli: + + + + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + <html><head/><body><p>Włącza/wyłącza klauzulę WITHOUT ROWID na tabeli. Taka tabela nie będzie już miała ukrytej kolumny &quot;rowid&quot;. Dla takiej tabeli obowiązkowa jest jawna kolumna PRIMARY KEY. Więcej szczegółów na ten temat można przeczytać w oficjalnej dokumentacji SQLite.</p></body></html> + + + + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + <html><head/><body><p>Włącza/wyłącza klauzulę STRICT dla tabeli. W tabeli takiej dokonuje się ścisłej weryfikacji danych przechowywanych w kolumnach w odniesieniu do deklarowanych typów danych dla tych kolumn. Jest to podobne do tego, w jaki sposób typy danych są zazwyczaj wymuszane w większości innych baz danych. Pozostaw wyłączone, aby używać klasycznego zachowania SQLite (tj. brak wymuszania typu danych). Więcej szczegółów znajdziesz w oficjalnej dokumentacji SQLite.</p></body></html> + + + + + Data + Dane + + + + Constraints + Ograniczenia + + + + Indexes + Indeksy + + + + Triggers + Wyzwalacze + + + + DDL + DDL + + + + Export table + table window + Eksportuj tabelę + + + + Import data to table + table window + Importuj do tabeli + + + + Populate table + table window + Zaludnij tabelę + + + + Refresh structure + table window + Odśwież strukturę + + + + Commit structure changes + table window + Zatwierdź zmiany w strukturze + + + + Rollback structure changes + table window + Wycofaj zmiany w strukturze + + + + Add column + table window + Dodaj kolumnę + + + + Edit column + table window + Edytuj kolumnę + + + + + Delete column + table window + Usuń kolumnę + + + + Move column up + table window + Przesuń kolumnę w górę + + + + Move column down + table window + Przesuń kolumnę w dół + + + + Create similar table + table window + Utwórz podobną tabelę + + + + Reset autoincrement value + table window + Wyzeruj wartość autoinkrementacji + + + + Add table constraint + table window + Dodaj ograniczenie tabeli + + + + Edit table constraint + table window + Edytuj ograniczenie tabeli + + + + Delete table constraint + table window + Usuń ograniczenie tabeli + + + + Move table constraint up + table window + Przesuń ograniczenie tabeli w górę + + + + Move table constraint down + table window + Przesuń ograniczenie tabeli w dół + + + + Add table primary key + table window + Dodaj klucz główny tabeli + + + + Add table foreign key + table window + Dodaj klucz obcy tabeli + + + + Add table unique constraint + table window + Dodaj ograniczenie unikalnych wartości tabeli + + + + Add table check constraint + table window + Dodaj ograniczenie warunkiem tabeli + + + + Refresh index list + table window + Odśwież listę indeksów + + + + + Create index + table window + Utwórz indeks + + + + Edit index + table window + Edytuj indeks + + + + Delete index + table window + Usuń indeks + + + + Refresh trigger list + table window + Odśwież listę wyzwalaczy + + + + + Create trigger + table window + Utwórz wyzwalacz + + + + Edit trigger + table window + Edytuj wyzwalacz + + + + Delete trigger + table window + Usuń wyzwalacz + + + + Are you sure you want to delete column '%1'? + table window + Czy na pewno chcesz usunąć kolumnę '%1'? + + + + Following problems will take place while modifying the table. +Would you like to proceed? + table window + Następujące problemy wystąpią podczas modyfikacji tabeli. +Czy chcesz kontynuować? + + + + Table modification + table window + Modyfikacja tabeli + + + + Could not load data for table %1. Error details: %2 + Nie udało się załadować danych dla tabeli %1. Szczegóły błędu: %2 + + + + Could not process the %1 table correctly. Unable to open a table window. + Nie udało się przetworzyć poprawnie tabeli %1. Nie można otworzyć okna tabeli. + + + + Database + Baza danych + + + + Could not restore window %1, because no database or table was stored in session for this window. + Nie można przywrócić okna %1, ponieważ nie ma bazy danych lub tabeli zachowanej w sesji dla tego okna. + + + + Could not restore window '%1', because no database or table was stored in session for this window. + Nie można przywrócić okna %1, ponieważ nie ma bazy danych lub tabeli zachowanej w sesji dla tego okna. + + + + Could not restore window '%1', because database %2 could not be resolved. + Nie udało się przywrócić okna '%1', ponieważ nie udało się ustalić bazy danych %2. + + + + Could not restore window '%1', because the table %2 doesn't exist in the database %3. + Nie można przywrócić okna '%1', ponieważ tabela %2 nie istnieje w bazie danych %3. + + + + + New table %1 + Nowa tabela %1 + + + + Committed changes for table '%1' successfully. + Pomyślnie zatwierdzono zmiany dla tabeli '%1'. + + + + Committed changes for table '%1' (named before '%2') successfully. + Pomyślnie zatwierdzono zmiany dla tabeli '%1' (nazwanej wcześniej '%2'). + + + + Could not commit table structure. Error message: %1 + table window + Nie udało się zatwierdzić struktury tabeli. Treść błędu: %1 + + + + Reset autoincrement + Wyzeruj autoinkrementację + + + + Are you sure you want to reset autoincrement value for table '%1'? + Czy na pewno chcesz wyzerować wartość autoinkrementacji dla tabeli '%1'? + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + Wystąpił błąd podczas próby wyzerowania wartości autoinkrementacji dla tabeli '%1': %2 + + + + Autoincrement value for table '%1' has been reset successfully. + Wartość automatycznej inkrementacji dla tabeli '%1' została zresetowana. + + + + Empty name + Pusta nazwa + + + + A blank name for the table is allowed in SQLite, but it is not recommended. +Are you sure you want to create a table with blank name? + Pusta nazwa dla tabeli jest dozwolona w SQLite, ale nie jest zalecana. +Czy na pewno chcesz utworzyć tabelę o pustej nazwie? + + + + Cannot create a table without at least one column. + Nie można utworzyć tabeli bez przynajmniej jednej kolumny. + + + + Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. + Nie można utworzyć tabeli %1, jeśli nie ma zdefiniowanego klucza głównego. Albo udznacz %2, albo zdefiniuj klucz główny. + + + + Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. + Nie można użyć autoinkrementacji dla klucza głównego, kiedy klauzula %1 jest użyta. Albo odnacz %2, albo autonkrementację w kluczu głównym. + + + + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 + Następujące kolumny mają nieścisły typ danych: %1. Wyłącz tryb ścisły tabeli lub napraw typy danych kolumn. Prawidłowe ścisłe typy danych to: %2 + + + + Are you sure you want to delete table constraint '%1'? + table window + Czy na pewno chcesz usunąć ograniczenie tabeli '%1'? + + + + Delete constraint + table window + Usuń ograniczenie + + + + Cannot export, because no export plugin is loaded. + Nie można wyeksportować, ponieważ żadna wtyczka eksportu nie została załadowana. + + + + Cannot import, because no import plugin is loaded. + Nie można zaimportować, ponieważ żadna wtyczka importu nie została załadowana. + + + + Uncommitted changes + Niezatwierdzone zmiany + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + Zmiany w strukturze nie zostały zatwierdzone. Nie można przeglądać, ani edytować danych, dopóki struktura tabeli nie zostanie ustalona. +Czy chcesz zatwierdzić strukturę, czy jednak chcesz wrócić do karty struktury? + + + + Go back to structure tab + Wróć do karty struktury + + + + Commit modifications and browse data. + Zatwierdź modyfikacje i przeglądaj dane. + + + + Name + table window indexes + Nazwa + + + + Unique + table window indexes + Wartości unikalne + + + + Columns + table window indexes + Kolumny + + + + Partial index condition + table window indexes + Warunek indeksu częściowego: + + + + Name + table window triggers + Nazwa + + + + Event + table window triggers + Zdarzenie + + + + Condition + table window triggers + Warunek + + + + Details + table window triggers + Szczegóły + + + + Table window "%1" has uncommitted structure modifications and data. + Okno tabeli "%1" ma niezatwierdzone modyfikacje struktury i danych. + + + + Table window "%1" has uncommitted data. + Okno tabeli "%1" ma niezatwierdzone dane. + + + + Table window "%1" has uncommitted structure modifications. + Okno tabeli "%1" ma niezatwierdzone modyfikacje struktury. + + + + TriggerColumnsDialog + + + Trigger columns + Kolumny wyzwalacza + + + + Triggering columns: + Kolumny wyzwalające: + + + + Select all + Zaznacz wszystko + + + + Deselect all + Odznacz wszystko + + + + TriggerDialog + + + + Trigger + Wyzwalacz + + + + On table: + Na tabeli: + + + + Action: + Akcja: + + + + + <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> + <p>Warunek SQL, który będzie wykonany przed właściwym kodem wyzwalacza. W przypadku gdy warunek zwróci fałsz, wyzwalacz nie zostanie uruchomiony dla tego wiersza.</p> + + + + Pre-condition: + Warunek wstępny: + + + + The scope is still not fully supported by the SQLite database. + Zakres wciąż nie jest w pełni obsługiwany przez bazy danych SQLite. + + + + Trigger name: + Nazwa wyzwalacza: + + + + When: + Kiedy: + + + + List of columns for UPDATE OF action. + Lista kolumn dla akcji UPDATE OF. + + + + Scope: + Zakres: + + + + Code: + Kod: + + + + Trigger statements to be executed. + Zapytania wyzwalacz do wykonania. + + + + DDL + DDL + + + + On view: + Na widoku: + + + + Could not process trigger %1 correctly. Unable to open a trigger dialog. + Nie udało się przetworzyć poprawnie wyzwalacza %1. Nie można otworzyć okna wyzwalacza. + + + + Enter a valid condition. + Wprowadź poprawny warunek. + + + + Enter a valid trigger code. + Wprowadź poprawny kod wyzwalacza. + + + + Error + trigger dialog + Błąd + + + + An error occurred while executing SQL statements: +%1 + Wystąpił błąd podczas wykonywania zapytań SQL: +%1 + + + + VersionConvertSummaryDialog + + + Database version convert + Konwersja bazy danych + + + + Following changes to the SQL statements will be made: + Dokonane będą następujące zmiany w zapytaniach SQL: + + + + Before + Przed + + + + After + Po + + + + ViewWindow + + + Query + Zapytanie + + + + View name: + Nazwa widoku: + + + + Output column names + Nazwy kolumn wyjściowych + + + + + Data + Dane + + + + Triggers + Wyzwalacze + + + + DDL + DDL + + + + + Could not restore window '%1', because no database or view was stored in session for this window. + Nie można przywrócić okna %1, ponieważ nie ma bazy danych lub tabeli zachowanej w sesji dla tego okna. + + + + Could not restore window '%1', because database %2 could not be resolved. + Nie udało się przywrócić okna '%1', ponieważ nie udało się ustalić bazy danych %2. + + + + Could not restore window '%1', because database %2 could not be open. + Nie można przywrócić okna '%1', ponieważ nie można było otworzyć bazy danych %2. + + + + Could not restore window '%1', because the view %2 doesn't exist in the database %3. + Nie można przywrócić okna '%1', ponieważ widok %2 już nie jestnieje w bazie danych %3. + + + + + New view %1 + Nowy widok %1 + + + + Database + Baza danych + + + + Refresh the view + view window + Odśwież widok + + + + Commit the view changes + view window + Zatwierdź zmiany w widoku + + + + Rollback the view changes + view window + Wycofaj zmiany w widoku + + + + Explicit column names + Jawne nazwy kolumn + + + + Generate output column names automatically basing on result columns of the view. + Generuj automatycznie nazwy kolumn wyjściowych bazując na kolumnach wynikowych widoku. + + + + Add column + view window + Dodaj kolumnę + + + + Edit column + view window + Edytuj kolumnę + + + + Delete column + view window + Usuń kolumnę + + + + Move column up + view window + Przesuń kolumnę w górę + + + + Move column down + view window + Przesuń kolumnę w dół + + + + Refresh trigger list + view window + Odśwież listę wyzwalaczy + + + + Create new trigger + view window + Utwórz nowy wyzwalacz + + + + Edit selected trigger + view window + Edytuj wybrany wyzwalacz + + + + Delete selected trigger + view window + Usuń wybrany wyzwalacz + + + + View window "%1" has uncommitted structure modifications and data. + Okno widoku "%1" ma niezatwierdzone modyfikacje struktury i danych. + + + + View window "%1" has uncommitted data. + Okno widoku "%1" ma niezatwierdzone dane. + + + + View window "%1" has uncommitted structure modifications. + Okno widoku "%1" ma niezatwierdzone modyfikacje struktury. + + + + Could not load data for view %1. Error details: %2 + Nie udało się załadować danych dla widoku %1. Szczegóły błędu: %2 + + + + Uncommitted changes + Niezatwierdzone zmiany + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + Zmiany w strukturze nie zostały zatwierdzone. Nie można przeglądać, ani edytować danych, dopóki struktura widoku nie zostanie ustalona. +Czy chcesz zatwierdzić strukturę, czy jednak chcesz wrócić do karty struktury? + + + + Go back to structure tab + Wróć do karty struktury + + + + Commit modifications and browse data. + Zatwierdź modyfikacje i przeglądaj dane. + + + + View '%1' was committed successfully. + Widok '%1' został pomyślnie zatwierdzony. + + + + Committed changes for view '%1' successfully. + Pomyślnie zatwierdzono zmiany dla widoku '%1'. + + + + Committed changes for view '%1' (named before '%2') successfully. + Pomyślnie zatwierdzono zmiany dla tabeli '%1' (nazwanej wcześniej '%2'). + + + + Could not commit view changes. Error message: %1 + view window + Nie udało się zatwierdzić widoku. Treść błędu: %1 + + + + Override columns + Nadpisz kolumny + + + + Currently defined columns will be overriden. Do you want to continue? + Aktualnie zdefiniowane kolumny zostaną nadpisane. Czy chcesz kontynuować? + + + + Could not determinate columns returned from the view. The query is problably incomplete or contains errors. + Nie udało się ustalić kolumn zwracanych z widoku. Zapytanie jest prawdopodobnie niekompletne lub zawiera błędy. + + + + Name + view window triggers + Nazwa + + + + Instead of + view window triggers + Zamiast + + + + Condition + view window triggers + Warunek + + + + Details + table window triggers + Szczegóły + + + + Could not process the %1 view correctly. Unable to open a view window. + Nie udało się przetworzyć poprawnie widoku %1. Nie można otworzyć okna widoku. + + + + Empty name + Pusta nazwa + + + + A blank name for the view is allowed in SQLite, but it is not recommended. +Are you sure you want to create a view with blank name? + Pusta nazwa dla widoku jest dozwolona w SQLite, ale nie jest zalecana. +Czy na pewno chcesz utworzyć widok o pustej nazwie? + + + + The SELECT statement could not be parsed. Please correct the query and retry. +Details: %1 + Zapytanie SELECT nie mogło być poprawnie przeanalizowane. Proszę poprawić zapytanie i spróbować ponownie. +Szczegóły: %1 + + + + The view could not be modified due to internal SQLiteStudio error. Please report this! + Widok nie mógł być zmodyfikowany w związku z wewnętrznym błędem SQLiteStudio. Proszę to zgłosić! + + + + The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. + Kod widok nie mógł być poprawnie przeanalizowany. To jest błąd SQLiteStudio Proszę to zgłosić! + + + + Following problems will take place while modifying the view. +Would you like to proceed? + view window + Następujące problemy wystąpią podczas modyfikacji widoku. +Czy chcesz kontynuować? + + + + View modification + view window + Modyfikacja widoku + + + + WidgetCover + + + Interrupt + Przerwij + + + diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_pt_BR.qm b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_pt_BR.qm deleted file mode 100644 index c02994c..0000000 Binary files a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_pt_BR.qm and /dev/null differ diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_pt_BR.ts b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_pt_BR.ts index 0d15aa6..2ba5919 100644 --- a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_pt_BR.ts +++ b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_pt_BR.ts @@ -1,6612 +1,7110 @@ - - + + AboutDialog - - About SQLiteStudio and licenses - + + About SQLiteStudio and licenses + Sobre SQLiteStudio e licenças - - About - + + About + Sobre - - Licenses - + + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Gerenciador de banco de dados grátis, open-source, multi-plataforma.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio. l</span></a><br/></p><p align="center">%2<br/></p><p align="center">Autor e mantenedor ativo:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft. um.pl</span></a>)<br/></p></body></html> - - Environment - + + Licenses + Licenças - - Icon directories - + + Environment + Ambiente - - Form directories - + + Icon directories + Diretórios de ícones - - Plugin directories - + + Form directories + Diretório de formulários - - Application directory - + + SQLite extension directories + Diretórios de extensões SQLite - - SQLite 3 version: - + + Plugin directories + Diretório de plugins - - Configuration directory - + + Configuration directory + Configuração do diretório - - <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> - + + Application directory + Diretório da aplicação - - Qt version: - + + Qt version: + Qt versão - - Portable distribution. - + + SQLite 3 version: + SQLite 3 versão - - MacOS X application boundle distribution. - + + Portable distribution. + Distribuição portátil. - - Operating system managed distribution. - + + MacOS X application bundle distribution. + MacOS X application bundle distribution. - - Copy - + + Operating system managed distribution. + Distribuição gerenciada pelo sistema operacional. - - <h3>Table of contents:</h3><ol>%2</ol> - + + <h3>Table of contents:</h3><ol>%2</ol> + <h3>Conteúdo:</h3><ol>%2</ol> - - + + BindParamsDialog - - Query parameters - + + Query parameters + Parâmetros de consultas - - Please provide values for query parameters - + + Please provide values for query parameters + Forneça valores para os parâmetros de consulta - - + + + CodeSnippetEditor + + + Filter snippets + Filtrar trechos + + + + + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + <html><head/><body><p>Atalho opcional, que funcionará apenas no contexto da janela ativa de assistente de código. Ele permite ao usuário usar combinações de teclas que de outra forma entrariam em conflito com outros atalhos. Ter a janela do assistente de código conforme o contexto necessário torna a escolha das chaves mais versáteis.</p></body></html> + + + + + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + <html><head/><body><p>O nome do snippet será exibido no assistente de código. Para acessar a lista de snippets o usuário precisa clicar duas vezes no atalho assistente de código.</p></body></html> + + + + Snippet name + Nome do Snippet + + + + Code assistant shortcut + Atalho do assistente de código + + + + Snippet code + Nome do Snippet + + + + Code Snippets editor window has uncommitted modifications. + A janela do editor de colagens possui modificações não autorizadas. + + + + Code Snippets editor + Editor de snippet + + + + Commit all snippet changes + Commit all snippet changes + + + + Rollback all snippet changes + Rollback all snippet changes + + + + Create new snippet + Create new snippet + + + + Delete selected snippet + Delete selected snippet + + + + Move the snippet up + Mova o trecho para cima + + + + Move the snippet down + Move o trecho para baixo + + + + Code snippets manual + Snippets de código manuais + + + + Enter a non-empty, unique name of the snippet. + Insira um nome único e completo da função. + + + + Enter a non-empty snippet content. + Digite um conteúdo de snippet não-vazio. + + + + This hotkey is not unique in context of a code assistant. + Este atalho não é exclusivo no contexto de um assistente de código. + + + CollationsEditor - - Filter collations - + + Filter collations + Filtrar agrupamentos - - Collation name: - + + Databases + Banco de dados - - Implementation language: - + + Register in all databases + Inscrever todos os bancos de dados - - Databases - + + Register in following databases: + Inscrever e seguir os banco de dados - - Register in all databases - + + Implementation code: + Código de implementação: - - Register in following databases: - + + Collation name: + Nome do agrupamento: - - Implementation code: - + + Implementation language: + Idioma de implementação: - - Collations editor - + + Collations editor + Editor de ordenações - - Commit all collation changes - + + Commit all collation changes + Aplicar todas as alterações de agrupamento - - Rollback all collation changes - + + Rollback all collation changes + Reverter todas as alterações de agrupamento - - Create new collation - + + Create new collation + Criar novo agrupamento - - Delete selected collation - + + Delete selected collation + Apagar o agrupamento selecionado - - Editing collations manual - + + Editing collations manual + Editar ordenamento manual - - Enter a non-empty, unique name of the collation. - + + Enter a non-empty, unique name of the collation. + Insira um nome único e vazio para a coleção. - - Pick the implementation language. - + + Pick the implementation language. + Escolha a linguagem de implementação. - - Enter a non-empty implementation code. - + + Enter a non-empty implementation code. + Digite um código de implementação não vazio. - - Collations editor window has uncommitted modifications. - + + Collations editor window has uncommitted modifications. + A janela do editor de colagens possui modificações não autorizadas. - - + + ColorButton - - Pick a color - + + Pick a color + Escolha uma cor - - + + ColumnCollatePanel - - Collation name: - + + Collation name: + Nome do agrupamento: - - Named constraint: - + + Named constraint: + Restrição nomeada: - - Enter a name of the constraint. - + + Enter a name of the constraint. + Digite um nome da restrição - - Enter a collation name. - + + Enter a collation name. + Insira um nome de agrupamento. - - + + ColumnDefaultPanel - - Default value: - + + Default value: + Valor padrão: - - Named constraint: - + + Named constraint: + Restrição nomeada: - - Enter a default value expression. - + + Enter a default value expression. + Informe uma expressão de valor padrão. - - Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. - + + Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. + Expressão de valor padrão inválido: %1. Se você quiser usar uma string simples como valor, lembre-se de envolvê-lo com caracteres de cotação. - - Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. - + + Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. + Expressão de valor padrão inválida. Se você quiser usar uma string simples como valor, lembre-se de colocá-la em cima com caracteres de cotação. - - Enter a name of the constraint. - + + Enter a name of the constraint. + Digite um nome da restrição - - + + ColumnDialog - - Column - + + Column + Coluna - - Name and type - + + Name and type + Nome e tipo - - Scale - + + Scale + Escala - - Precision - + + Precision + Precisão - - Data type: - + + Data type: + Tipo de dado: - - Column name: - + + Column name: + Nome da coluna: - - Size: - + + Size: + Tamanho: - - Constraints - + + Constraints + Constraints - - Unique - + + Generated value + Valor gerado - - - - - - - - Configure - + + Unique + Unique - - Foreign Key - + + + + + + + + + Configure + Configurar - - Collate - + + Foreign Key + Foreign +Key - - Not NULL - + + Collate + Collate - - Check condition - + + Not NULL + Not NULL - - Primary Key - + + Check condition + Verifique o estado - - Default - + + Primary Key + Primary Key - - Advanced mode - + + Default + Padrão - - Add constraint - column dialog - + + Advanced mode + Modo avançado - - Edit constraint - column dialog - + + Add constraint + column dialog + Adicionar constraint - - - Delete constraint - column dialog - + + Edit constraint + column dialog + Editar constraint - - Move constraint up - column dialog - + + + Delete constraint + column dialog + Excluir constraint - - Move constraint down - column dialog - + + Move constraint up + column dialog + Mover constraint para cima - - Add a primary key - column dialog - + + Move constraint down + column dialog + Mover constraint para baixo - - Add a foreign key - column dialog - + + Add a primary key + column dialog + Adicionar uma chave primária - - Add an unique constraint - column dialog - + + Add a foreign key + column dialog + Adicionar uma chave estrangeira - - Add a check constraint - column dialog - + + Add an unique constraint + column dialog + Adicionar unique constraint - - Add a not null constraint - column dialog - + + Add a check constraint + column dialog + Adicionar uma check constraint - - Add a collate constraint - column dialog - + + Add a not null constraint + column dialog + Adicionar uma not null constraint - - Add a default constraint - column dialog - + + Add a collate constraint + column dialog + Adicionar uma collate constraint - - Are you sure you want to delete constraint '%1'? - column dialog - + + Add a generated value constraint + column dialog + Adicionar constraint de valor gerado - - Correct the constraint's configuration. - + + Add a default constraint + column dialog + Adicionar uma constraint padrão - - This constraint is not officially supported by SQLite 2, -but it's okay to use it. - + + Are you sure you want to delete constraint '%1'? + column dialog + Tem certeza que deseja excluir a constraint '%1'? - - Scale is not allowed for INTEGER PRIMARY KEY columns. - + + Correct the constraint's configuration. + Corrija a configuração da constraint - - Precision cannot be defined without the scale. - + + Scale is not allowed for INTEGER PRIMARY KEY columns. + Escala não é permitida para colunas INTEGER PRIMARY KEY. - - Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. - + + Precision cannot be defined without the scale. + A precisão não pode ser definida sem a escala. - - INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. - + + Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. + Não é possível usar outro tipo que não seja INTEGER se AUTOINCREMENT estiver habilitado no PRIMÁRIO KEY. - - Precision is not allowed for INTEGER PRIMARY KEY columns. - + + INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. + O tipo INTEGER foi imposto devido à ativação do AUTOINCREMENT na PRIMARY KEY. - - + + + Precision is not allowed for INTEGER PRIMARY KEY columns. + Precisão não é permitida para colunas INTEGER PRIMARY KEY. + + + + Could not match valid STRICT table datatype from declared type: %1. + Não foi possível corresponder a datatype de tabela STRICT válido do tipo declarado: %1. + + + ColumnDialogConstraintsModel - - Type - column dialog constraints - + + Type + column dialog constraints + Tipo - - Name - column dialog constraints - + + Name + column dialog constraints + Nome - - Details - column dialog constraints - + + Details + column dialog constraints + Detalhes - - + + ColumnForeignKeyPanel - - Foreign table: - + + Foreign table: + Tabela externa: - - Foreign column: - + + Foreign column: + Coluna estrangeira: - - Reactions - + + Reactions + Reações - - Deferred foreign key - + + Deferred foreign key + Chave estrangeira definida - - Named constraint - + + Named constraint + Constraint nomeada - - Constraint name - + + Constraint name + Nome da constraint - - Pick the foreign table. - + + Pick the foreign table. + Pegue a tabela externa. - - Pick the foreign column. - + + Pick the foreign column. + Selecione a coluna estrangeira. - - Enter a name of the constraint. - + + Enter a name of the constraint. + Digite um nome da constraint. - - - ColumnPrimaryKeyPanel + + + ColumnGeneratedPanel - - Autoincrement - + + Generating code: + Gerando código: - - Sort order: - + + Explicit type: + Tipo explícito: - - Named constraint: - + + Use "GENERATED ALWAYS" keywords + Usar palavras-chave "GENERATED ALWAYS" - - On conflict: - + + Named constraint: + Restrição nomeada: - - Enter a name of the constraint. - + + Enter the column value generating expression. + Informe o valor da coluna que gera expressão. - - - ColumnUniqueAndNotNullPanel - - Named constraint: - + + Invalid value generating expression: %1. + Valor que gera a expressão inválido: %1. - - On conflict: - + + Invalid value generating expression. + Expressão de geração de valor inválida. - - Enter a name of the constraint. - + + Enter a name of the constraint. + Digite um nome da restrição. - - - CompleterWindow + + + ColumnPrimaryKeyPanel - - Column: %1 - completer statusbar - + + Autoincrement + Auto-incremento - - Table: %1 - completer statusbar - + + Sort order: + Ordem de classificação: - - Index: %1 - completer statusbar - + + Named constraint: + Restrição nomeada: - - Trigger: %1 - completer statusbar - + + On conflict: + Conflito: - - View: %1 - completer statusbar - + + Enter a name of the constraint. + Digite um nome da restrição - - Database: %1 - completer statusbar - + + Descending order is not allowed with AUTOINCREMENT. + A ordem decrescente não é permitida com AUTOINCREMENT. + + + ColumnUniqueAndNotNullPanel - - Keyword: %1 - completer statusbar - + + Named constraint: + Restrição nomeada: - - Function: %1 - completer statusbar - + + On conflict: + Conflito: - - Operator: %1 - completer statusbar - + + Enter a name of the constraint. + Digite um nome da restrição + + + CompleterWindow - - String - completer statusbar - + + Column: %1 + completer statusbar + Coluna: %1 - - Number - completer statusbar - + + Table: %1 + completer statusbar + Tabela: %1 - - Binary data - completer statusbar - + + Index: %1 + completer statusbar + Índice: %1 - - Collation: %1 - completer statusbar - + + Trigger: %1 + completer statusbar + Desencadear: %1 - - Pragma function: %1 - completer statusbar - + + View: %1 + completer statusbar + Visualizar: %1 - - - ConfigDialog - - - Configuration - + + Database: %1 + completer statusbar + Banco de dados: %1 - - Search - + + Keyword: %1 + completer statusbar + Tecla: %1 - - General - + + Function: %1 + completer statusbar + Função: %1 - - Keyboard shortcuts - + + Operator: %1 + completer statusbar + Operador: %1 - - Look & feel - + + String + completer statusbar + String - - Style - + + Number + completer statusbar + Número - - Fonts - + + Binary data + completer statusbar + Dados binários - - Colors - + + Collation: %1 + completer statusbar + Agrupamento: %1 - - Plugins - + + Pragma function: %1 + completer statusbar + Pragma função: %1 - - Code formatters - + + Insert a code snippet + Inserir trecho de código + + + ConfigDialog - - Data browsing - + + + Configuration + Configuração - - Data editors - + + Search + Pesquisa - - Database dialog window - + + General + Geral - - <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> - + + Keyboard shortcuts + Atalhos de teclado - - Do not mark database to be "permanent" by default - + + Look & feel + Aparência e funcionamento - - <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> - + + Style + Estilo - - Try to bypass dialog completly when dropping database file onto the list - + + Fonts + Fontes - - Data browsing and editing - + + Code colors + Cores de código - - Number of data rows per page: - + + + Database list + Lista de banco de dados - - - <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> - + + Code assistant + Assistente de código - - Limit initial data column width to (in pixels): - + + Data browsing + Navegação de dados - - <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> - + + Data editors + Editores de dados - - Show column and row details tooltip in data view - + + Plugins + Complementos - - <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> - + + Code formatters + Formatadores de código - - Inserting new row in data grid - + + If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. + Se desativado, então as colunas serão classificadas na ordem em que são digitadas na instrução CREATE TABLE. - - Before currently selected row - + + Sort table columns alphabetically + Ordenar colunas das tabelas alfabeticamente - - After currently selected row - + + Expand tables node when connected to a database + Expandir tabelas nó quando conectado a um banco de dados - - At the end of data view - + + <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> + <p>Rótulos adicionais são exibidos ao lado dos nomes na lista de bancos de dados (eles são azuis, a menos que configurados de outra forma). Ativar esta opção resultará em rótulos para bancos de dados, bancos de dados inválidos e nós agregados (grupo de colunas, grupo de indexações, grupo de ativação). Para mais rótulos veja as opções abaixo.<p> - - <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> - + + Display additional labels on the list + Exibir rótulos adicionais na lista - - <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> - + + For regular tables labels will show number of columns, indexes and triggers for each of tables. + Para tabelas regulares, os rótulos mostrarão o número de colunas, índices e ativadores para cada tabela. - - Place data tab as first tab in a Table Window - + + Display labels for regular tables + Exibir rótulos para tabelas regulares - - <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> - + + Virtual tables will be marked with a 'virtual' label. + Tabelas virtuais serão marcadas com um 'virtual' rótulo. - - <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> - + + Display labels for virtual tables + Exibir rótulos para tabelas virtuais - - Place data tab as first tab in a View Window - + + Expand views node when connected to a database + Expandir visualizações enquanto conectado a um banco de dados - - Data types - + + If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) + Se esta opção estiver desligada, os objetos serão classificados na ordem em que aparecem na tabela mestre sqlite_master (que é em ordem que foram criados) - - Available editors: - + + Sort objects (tables, indexes, triggers and views) alphabetically + Ordenar objetos (tabelas, índices, gatilhos e visualizações) em ordem alfabética - - Editors selected for this data type: - + + Display system tables and indexes on the list + Exibir tabelas e índices do sistema em lista - - Schema editing - + + Database dialog window + Janela de diálogo do banco de dados - - Number of DDL changes kept in history. - + + <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> + <p>Ao adicionar um novo banco de dados, está marcado como "permanente" (armazenado na configuração) por padrão. Marcar esta opção faz com que cada novo banco de dados para NÃO ser "permanente" por padrão.</p> - - DDL history size: - + + Do not mark database to be "permanent" by default + Não marcar banco de dados para ser "permanente" por padrão - - SQL queries - + + <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> + <p>Quando esta opção está habilitada, em seguida, os arquivos descartados do gerenciador de arquivos na lista de banco de dados serão automaticamente adicionados à lista, ignorando o diálogo padrão de banco de dados. Se por várias razões o processo automático falhar, então a caixa de diálogo padrão será apresentada ao usuário.</p> - - - Number of queries kept in the history. - + + Try to bypass dialog completly when dropping database file onto the list + Tente ignorar completamente a caixa de diálogo ao soltar o arquivo de banco de dados na lista - - History size: - + + Data browsing and editing + Navegação e edição de dados - - <p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute.</p> - + + + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + <p>O número máximo de configurações da caixa de diálogo Populate Table armazenada na configuração. O valor de 100 deve ser suficiente.</p> - - Execute only the query under the cursor - + + Number of memorized table populating configurations + Número de tabelas memorizadas que preenchem configurações - - Updates - + + Data column width + Largura da coluna de dados - - Automatically check for updates at startup - + + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + <html><head/><body><p>Quando o usuário insere novo valor na coluna e o valor é maior do que a largura da coluna atual, o aplicativo irá ampliar a coluna para caber no novo valor, mas não mais do que o limite definido na opção acima.</p></body></html> - - Session - + + Enlarge column when entering value longer than current width + Ampliar a coluna ao inserir um valor maior que a largura atual - - Restore last session (active MDI windows) after startup - + + <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> + <p>Quando os dados são lidos na exibição das colunas de grade a largura é automaticamente ajustada. Este valor limita a largura inicial para o ajuste, mas o usuário ainda pode redimensionar a coluna manualmente acima deste limite.</p> - - Status Field - + + Number of data rows per page: + Número de linhas de dados por página: - - <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> - + + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> + <p>Quando isso está habilitado e o usuário mantém o ponteiro do mouse sobre uma célula em qualquer exibição de dados (resultados de consulta, dados de uma tabela, uma visualização de dados), uma dica será exibida com detalhes sobre a célula - ela inclui detalhes como o tipo de dados da coluna, restrições, ROWID e outros.</p> - - Always open Status panel when new message is printed - + + Show column and row details tooltip in data view + Mostrar dica de detalhes da coluna e linha na visualização de dados - - Filter shortcuts by name or key combination - + + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + <p>Ao editar uma célula que usava como novo valor NULL e a entrada de seqüência de caracteres vazios, então esta opção determina se o novo valor deve permanecer NULO (tenha esta opção ativada), ou deve ser substituído pelo valor vazio da string (tenha esta opção desativada).</p> - - Action - + + Keep NULL value when entering empty value + Manter valor NULL ao inserir um valor vazio - - Key combination - + + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> + <html><head/><body><p>Habilite isso para sempre aplicar o valor DEFAULT ao confirmar um valor NULL para uma coluna que tenha o valor padrão definido, embora a coluna possa conter valores NULL.</p><p>Desativar esta opção para usar valor PADRÃO exclusivamente quando o valor NULL é comprometido para a coluna com restrição NÃO NULL.</p></body></html> - - - Language - + + Use DEFAULT value (if defined), when committing NULL value + Usar valor PADRÃO (se definido), ao confirmar o valor NULL - - Changing language requires application restart to take effect. - + + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + <html><head/><body><p>Se consultas de resultados contêm dezenas (ou centenas) de colunas, é mais provável que ele esgote a memória livre do seu computador carregando vários gigabytes de dados de uma só vez. SQLiteStudio pode tentar limitar o número de resultados exibidos em uma página para proteger o seu computador. Se você sabe que você don't trabalha com grandes valores no banco de dados, você pode desativar esse limite e sempre verá quantas linhas forem definidas por página.</p></body></html> - - Compact layout - + + Limit number of rows for in case of dozens of columns + Limitar o número de linhas no caso de dezenas de colunas - - <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> - + + Inserting new row in data grid + Inserindo nova linha na grade de dados - - Use compact layout - + + Before currently selected row + Antes da linha selecionada - - - Database list - + + After currently selected row + Depois da linha selecionada - - If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. - + + At the end of data view + No final da visualização de dados - - Sort table columns alphabetically - + + Table windows + Janelas da tabela - - Expand tables node when connected to a database - + + <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> + <p>Quando ativado, as janelas de tabela serão exibidas na aba de dados, em vez da aba estrutura.</p> - - <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> - + + Open Table Windows with the data tab for start + Janelas em tabela aberta com a guia de dados para iniciar - - Display additional labels on the list - + + <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> + <p>Quando ativado a guia "Dados" será colocada como a primeira guia em cada janela de tabela, em vez de estar no segundo lugar.</p> - - For regular tables labels will show number of columns, indexes and triggers for each of tables. - + + Place data tab as first tab in a Table Window + Colocar guia de dados como primeira aba em uma janela de tabela - - Display labels for regular tables - + + View windows + Ver janelas - - Virtual tables will be marked with a 'virtual' label. - + + <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> + <p>Quando ativado, exibir janelas irá aparecer na aba de dados, em vez da aba estrutura.</p> - - Display labels for virtual tables - + + Open View Windows with the data tab for start + Abra a visualização de janelas com a guia de dados para iniciar - - Expand views node when connected to a database - + + <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> + <p>Quando ativado a guia "Dados" será colocada como a primeira guia em cada exibição de janela, em vez de ser no segundo lugar.</p> - - If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) - + + Place data tab as first tab in a View Window + Colocar guia de dados como primeira aba em uma janela de visualização - - Sort objects (tables, indexes, triggers and views) alphabetically - + + Data types + Tipo de dados - - Display system tables and indexes on the list - + + Available editors: + Editores disponíveis: - - - <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> - + + Editors selected for this data type: + Editores selecionados para este tipo de dado: - - Number of memorized table populating configurations - + + Schema editing + Edição do schema - - Keep NULL value when entering empty value - + + Number of DDL changes kept in history. + Número de alterações DDL mantidas no histórico. - - <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> - + + DDL history size: + Tamanho do histórico DDL: - - Use DEFAULT value (if defined), when committing NULL value - + + Don't show DDL preview dialog when committing schema changes + Não mostrar a janela de pré-visualização do DDL ao confirmar alterações de esquema - - Table windows - + + SQL queries + Consultas SQL - - Open Table Windows with the data tab for start - + + + Number of queries kept in the history. + Número de consultas mantidas no histórico. - - View windows - + + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> + <html><head/><body><p>Se houver mais de uma consulta na janela do editor de SQL, então (se essa opção estiver ativada) apenas uma consulta será executada - a que está sob o cursor de inserção do teclado. Caso contrário, todas as consultas serão executadas. Você pode limitar as consultas a serem executadas selecionando essas consultas antes de executar uma chamada. Você também pode usar atalhos dedicados para executar em um modo ou outro (atualmente configurado para %1 para única consulta de execução e %2 para todas as consultas).</p></body></html> - - Open View Windows with the data tab for start - + + History size: + Tamanho do histórico: - - Don't show DDL preview dialog when committing schema changes - + + + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> + <p>Número máximo de parâmetros de consulta (:param, @param, $param, ?) armazenado na história. Quando você usar novamente o parâmetro com o mesmo nome/posição, SQLiteStudio irá pré-inicializá-lo com o valor mais recente memorizado (você ainda poderá alterá-lo). O valor de 1000 deve ser suficiente.</p> - - - <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> - + + Execute only the query under the cursor + Executar a consulta em que o cursor está posicionado - - Number of memorized query parameters - + + Number of memorized query parameters + Número de parâmetros de consulta memorizados - - Main window dock areas - + + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> - - Left and right areas occupy corners - + + Use scientific notation for real numbers in the grid view + Use scientific notation for real numbers in the grid view - - Top and bottom areas occupy corners - + + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + <html><head/><body><p>Quando os dados são lidos na largura de exibição de colunas da grade é automaticamente ajustada. Este valor limita a largura inicial para o ajuste, mas o usuário ainda pode redimensionar a coluna manualmente acima deste limite. Esse valor também é usado quando se amplia a coluna para um novo valor mais longo inserido pelo usuário (veja a opção abaixo).</p></body></html> - - Hide built-in plugins - + + Limit automatic data column width to (in pixels): + Limitar a largura da coluna de dados inicial em (em pixels): - - Current style: - + + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + <html><head/><body><p>A largura inicial das colunas de dados será definida para pelo menos mostrar o nome completo da coluna no cabeçalho. Isso ainda pode ser substituído pelo limite inicial de largura de coluna especificada em pixels (configuração acima).</p></body></html> - - Preview - + + Keep at least the width to show complete column name + Mantenha pelo menos a largura para mostrar o nome completo da coluna - - Enabled - + + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + <html><head/><body><p>Se ativado, linhas maiores que a largura do editor serão encapsuladas, então a rolagem horizontal não será necessária.</p></body></html> - - Disabled - + + Wrap lines in SQL editor + Quebrar linhas no editor SQL - - Active formatter plugin - + + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + <html><head/><body><p>Destaca a consulta inteira que está atualmente sob o cursor de inserção.'a mesma consulta que será executada quando você clicar em &quot;Executar consulta&quot; atalho ou botão (a menos que configurado de outra forma).</p></body></html> - - SQL editor font - + + Highlight current query + Destacar consulta atual - - Database list font - + + Updates + Atualizações - - Database list additional label font - + + Automatically check for updates at startup + Verificar atualizações automaticamente ao iniciar - - Data view font - + + Session + Sessão - - Status field font - + + Restore last session (active MDI windows) after startup + Restaurar última sessão (janelas MDI ativas) após a inicialização - - SQL editor colors - + + Allow multiple instances of the application at the same time + Permitir várias instâncias do aplicativo ao mesmo tempo - - Current line background - + + Status Field + Campo Status - - <p>SQL strings are enclosed with single quote characters.</p> - + + <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> + Quando o usuário fecha manualmente o painel de Status, esta opção garante que, se alguma nova mensagem for impressa no painel de Status, ela será reaberta. Se desativado, o painel de status só pode ser aberto manualmente pelo usuário a partir do menu - - String foreground - + + Always open Status panel when new message is printed + Sempre abrir painel de Status quando uma nova mensagem é impressa - - <p>Bind parameters are placeholders for values yet to be provided by the user. They have one of the forms:</p><ul><li>:param_name</li><li>$param_name</li><li>@param_name</li><li>?</li></ul> - + + Code syntax colors + Cores de sintaxe - - Bind parameter foreground - + + Keyword foreground + Palavra-chave em primeiro plano - - Highlighted parenthesis background - + + Regular foreground + Normal primeiro plano - - <p>BLOB values are binary values represented as hexadecimal numbers, like:</p><ul><li>X'12B4'</li><li>x'46A2F4'</li></ul> - + + String foreground + Iniciar em primeiro plano - - BLOB value foreground - + + Comment foreground + Comentar primeiro plano - - Regular foreground - + + Valid objects foreground + Objetos válidos em primeiro plano - - Line numbers area background - + + Current query background + Fundo da consulta atual - - Keyword foreground - + + Bind parameter foreground + Vincular parâmetro em primeiro plano - - Number foreground - + + Current line background + Fundo da linha atual - - Comment foreground - + + Matched parenthesis background + Fundo de parênteses correspondente - - <p>Valid objects are name of tables, indexes, triggers, or views that exist in the SQLite database.</p> - + + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + <html><head/><body><p>É possível desativar o destaque das consultas inteiramente na página de configurações gerais.</p></body></html> - - Valid objects foreground - + + Number foreground + Número primeiro plano - - Data view colors - + + BLOB value foreground + Valor BLOB em primeiro plano - - <p>Any data changes will be outlined with this color, until they're committed to the database.</p> - + + Matched parenthesis foreground + Primeiro plano de parênteses correspondentes - - Uncommitted data outline color - + + Reset to defaults + Redefinir padrões - - <p>In case of error while committing data changes, the problematic cell will be outlined with this color.</p> - + + Filter shortcuts by name or key combination + Filtrar atalhos por nome ou combinação de teclas - - Commit error outline color - + + Action + Acão - - NULL value foreground - + + Key combination + Combinação de teclas - - Deleted row background - + + + Language + Idioma - - Database list colors - + + Changing language requires application restart to take effect. + Para mudar o idioma é necessário reiniciar o aplicativo para ter efeito. - - <p>Additional labels are those which tell you SQLite version, number of objects deeper in the tree, etc.</p> - + + Compact layout + Layout compacto - - Additional labels foreground - + + <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> + <p>O layout compacto reduz ao mínimo todas as margens e espaços na interface do usuário, deixando espaço para exibir mais dados. A interface fica um pouco menos estética, mas permite exibir mais dados de uma só vez.</p> - - Status field colors - + + Use compact layout + Usar layout compacto - - Information message foreground - + + Main window dock areas + Áreas de encaixe da janela principal - - Warning message foreground - + + Left and right areas occupy corners + Áreas esquerda e direita ocupam cantos - - Error message foreground - + + Top and bottom areas occupy corners + Áreas superior e inferior ocupam cantos - - Description: - plugin details - + + Hide built-in plugins + Ocultar plugins integrados - - Category: - plugin details - + + Current style: + Estilo atual: - - Version: - plugin details - + + Preview + Pré-visualizar - - Author: - plugin details - + + Enabled + Ativado - - Internal name: - plugin details - + + Disabled + Desabilitado - - Dependencies: - plugin details - + + Active formatter plugin + Plugin formatador ativo - - Conflicts: - plugin details - + + SQL editor font + Fonte do editor SQL - - Plugin details - + + Database list font + Fonte da lista do banco de dados - - Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. - + + Database list additional label font + Fonte de rótulo adicional da lista de banco de dados - - %1 (built-in) - plugins manager in configuration dialog - + + Data view font + Fonte para visualização de dados - - Details - + + Status field font + Fonte do campo status - - No plugins in this category. - + + Code assistant settings + Configurações code assistente - - Add new data type - + + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + <html><head/><body><p>Se esta opção estiver habilitada, o assistente de código será acionado nos casos, quando tipos de usuário, por exemplo <span style=" font-weight:700;">tableName.</span> para propor colunas da tabela. Se a opção estiver desativada, o usuário terá de apertar explicitamente a chave de atalho assistente.</p></body></html> - - Rename selected data type - + + Automatically trigger the assistant after a dot is typed after an object name + Acionar automaticamente o assistente após um ponto ser digitado após um nome de objeto - - Delete selected data type - + + Description: + plugin details + Descrição: - - Help for configuring data type editors - + + Category: + plugin details + Categoria: - - - ConstraintCheckPanel - - The condition - + + Version: + plugin details + Versão: - - Named constraint: - + + Author: + plugin details + Autor: - - On conflict - + + Internal name: + plugin details + Nome interno: - - Enter a valid condition. - + + Dependencies: + plugin details + Dependências: - - Enter a name of the constraint. - + + Conflicts: + plugin details + Conflitos - - - ConstraintDialog - - New constraint - constraint dialog - + + Plugin details + Detalhes do plugin - - Create - constraint dialog - + + Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. + Plugins são carregados/descarregados imediatamente quando marcados/desmarcados, mas a lista de plugins modificados para carregar na inicialização não é salva até que você confirme toda a caixa de diálogo de configuração. - - Edit constraint - dialog window - + + %1 (built-in) + plugins manager in configuration dialog + %1 (embutido) - - Apply - constraint dialog - + + Details + Detalhes - - Primary key - table constraints - + + No plugins in this category. + Sem plugins nesta categoria. - - Foreign key - table constraints - + + Add new data type + Adicionar novo tipo de dado - - Unique - table constraints - + + Rename selected data type + Renomear tipo de dados selecionados - - Not NULL - table constraints - + + Delete selected data type + Excluir tipo de dado selecionado - - Check - table constraints - + + Help for configuring data type editors + Ajuda para configurar editores de tipos de dados - - Collate - table constraints - + + Clear hotkey for this action + Clear hotkey for this action - - Default - table constraints - + + Restore original hotkey for this action + Restore original hotkey for this action - - - ConstraintTabModel - - Table - table constraints - + + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + + + ConstraintCheckPanel - - Column (%1) - table constraints - + + The condition + A condição - - Scope - table constraints - + + Named constraint: + Constraint nomeada: - - Type - table constraints - + + On conflict + Em conflito - - Details - table constraints - + + Enter a valid condition. + Informe uma condição válida. - - Name - table constraints - + + Enter a name of the constraint. + Digite um nome da constraint. - - - CssDebugDialog + + + ConstraintDialog - - SQLiteStudio CSS console - + + New constraint + constraint dialog + Nova constraint - - - DataView - - Filter data - data view - + + Create + constraint dialog + Criar - - Grid view - + + Edit constraint + dialog window + Editar constraint - - Form view - + + Apply + constraint dialog + Aplicar - - Refresh table data - data view - + + Primary key + table constraints + Chave primária - - First page - data view - + + Foreign key + table constraints + Foreign Key - - Previous page - data view - + + Unique + table constraints + Unique - - Next page - data view - + + Not NULL + table constraints + Not NULL - - Last page - data view - + + Check + table constraints + Check - - Filter - + + Generated + table constraints + Generated - - Hit Enter key or press "Apply filter" button on toolbar to apply new value. - + + Collate + table constraints + Collate - - Show filter inputs per column - data view - + + Default + table constraints + Padrão + + + ConstraintTabModel - - Apply filter - data view - + + Table + table constraints + Tabela - - Commit changes for selected cells - data view - + + Column (%1) + table constraints + Coluna (%1) - - Rollback changes for selected cells - data view - + + Scope + table constraints + Escopo - - Show grid view of results - sql editor - + + Type + table constraints + Tipo - - Show form view of results - sql editor - + + Details + table constraints + Detalhes - - Filter by text - data view - + + Name + table constraints + Nome + + + CssDebugDialog - - Filter by the Regular Expression - data view - + + SQLiteStudio CSS console + SQLiteStudio CSS console + + + DataView - - Filter by SQL expression - data view - + + Filter data + data view + Filtrar dados - - Tabs on top - data view - + + Grid view + Exibição em grade - - Tabs at bottom - data view - + + Form view + Visualização do formulário - - Place new rows above selected row - data view - + + Refresh table data + data view + Atualizar dados das tabelas - - Place new rows below selected row - data view - + + First page + data view + Primeira página - - Place new rows at the end of the data view - data view - + + Previous page + data view + Página anterior - - Total number of rows is being counted. -Browsing other pages will be possible after the row counting is done. - + + Next page + data view + Próxima página - - Row: %1 - + + Last page + data view + Última página - - - DbConverterDialog - - Convert database - + + Commit changes for selected cells + data view + Enviar mudanças para as células selecionadas - - Source database - + + Rollback changes for selected cells + data view + Reverter mudanças para as células selecionadas - - Source database version: - + + Show grid view of results + data view + Mostrar exibição de grid de resultados - - Target database - + + Show form view of results + data view + Mostrar formulário de visualização de resultados - - Target version: - + + Filter by text (if contains) + data view + Filtrar por texto (se conter) - - This is the file that will be created as a result of the conversion. - + + Filter strictly by text (if equals) + data view + Filtrar estritamente por texto (se igual) - - Target file: - + + Tabs on top + data view + Abas no topo - - Name of the new database: - + + Tabs at bottom + data view + Abas na parte inferior - - This is the name that the converted database will be added to SQLiteStudio with. - + + Place new rows above selected row + data view + Colocar novas linhas acima da linha selecionada - - Select source database - + + Place new rows below selected row + data view + Colocar novas linhas abaixo da linha selecionada - - Enter valid and writable file path. - + + Place new rows at the end of the data view + data view + Coloque novas linhas no final da exibição de dados - - Entered file exists and will be overwritten. - + + Total number of rows is being counted. +Browsing other pages will be possible after the row counting is done. + O número total de linhas está sendo contado. +Navegar por outras páginas será possível após a contagem de linhas ser finalizada. - - Enter a not empty, unique name (as in the list of databases on the left). - + + Row: %1 + Linha: %1 - - No valid target dialect available. Conversion not possible. - + + Filter + Filtro - - Select valid target dialect. - + + Hit Enter key or press "Apply filter" button on toolbar to apply new value. + Pressione a tecla Enter ou pressione "Aplicar filtro" botão na barra de ferramentas para aplicar o novo valor. - - Database %1 has been successfully converted and now is available under new name: %2 - + + Filter by the Regular Expression + data view + Filtrar pela Expressão Regular - - SQL statements conversion - + + Filter by SQL expression + data view + Filtrar por expressão SQL - - Following error occurred while converting SQL statements to the target SQLite version: - + + Show filter inputs per column + data view + Mostrar entradas de filtro por coluna - - Would you like to ignore those errors and proceed? - + + Apply filter + data view + Aplicar filtro - - + + DbDialog - - Database - + + Database + Banco de dados + + + + Database type + Tipo de banco de dados - - Database type - + + Database driver + Driver de banco de dados - - Database driver - + + + File + Arquivo - - Options - + + Name (on the list) + Nome (na lista) - - Permanent (keep it in configuration) - + + Options + Opções - - Test connection - + + <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> + aasfd + <p>Ative isso se quiser que o banco de dados seja armazenado no arquivo de configuração e restaurado toda vez que o SQLiteStudio é iniciado.</p> - - Create new database file - + + Permanent (keep it in configuration) + Permanente (mantenha na configuração) - - - File - + + Test connection + Testar conexão - - Name (on the list) - + + Select new or existing file on local computer + Selecionar arquivo novo ou existente no computador local - - <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> - aasfd - + + Browse + Navegar - - Browse for existing database file on local computer - + + Database type not selected. + Tipo de banco de dados não selecionado. - - Browse - + + Database path not specified. + Caminho da base de dados não especificado. - - Enter an unique database name. - + + Enter an unique database name. + Informe um nome único para o banco de dados. - - This name is already in use. Please enter unique name. - + + This name is already in use. Please enter unique name. + Este nome já está em uso. Por favor, insira um nome único. - - <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> - + + <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> + <p>A geração automática de nome foi desabilitada, porque o nome foi editado manualmente. Para restaurar a geração automática, apague o conteúdo do campo nome.</p> - - Enter a database file path. - + + Enter a database file path. + Digite o caminho do arquivo de banco de dados. - - This database is already on the list under name: %1 - + + This database is already on the list under name: %1 + Este banco de dados já está na lista sob o nome: %1 - - Select a database type. - + + Select a database type. + Selecione um tipo de banco de dados. - - + + DbObjectDialogs - - Delete table - + + Delete table + Apagar a tabela - - Are you sure you want to delete table %1? - + + Are you sure you want to delete table %1? + Tem certeza que deseja apagar a tabela %1? - - Delete index - + + Delete index + Excluir índice - - Are you sure you want to delete index %1? - + + Are you sure you want to delete index %1? + Tem certeza que deseja excluir o índice %1? - - Delete trigger - + + Delete trigger + Excluir trigger - - Are you sure you want to delete trigger %1? - + + Are you sure you want to delete trigger %1? + Deseja mesmo excluir trigger %1? - - Delete view - + + Delete view + Excluir visualização - - Are you sure you want to delete view %1? - + + Are you sure you want to delete view %1? + Tem certeza que deseja excluir a visualização %1? - - - Error while dropping %1: %2 - + + + Error while dropping %1: %2 + Erro ao derrubar %1: %2 - - Delete objects - + + Delete objects + Excluir objetos - - Are you sure you want to delete following objects: + + Are you sure you want to delete following objects: %1 - + Tem certeza que deseja excluir os seguintes objetos: +%1 - - Cannot start transaction. Details: %1 - + + Cannot start transaction. Details: %1 + Não é possível iniciar a transação. Detalhes: %1 - - Cannot commit transaction. Details: %1 - + + Cannot commit transaction. Details: %1 + Não é possível realizar a transação. Detalhes: %1 - - + + DbTree - - Databases - + + Databases + Banco de dados - - Filter by name - + + Filter by name + Filtrar por nome - - Copy - + + Copy + Copiar - - Paste - + + Paste + Colar - - Select all - + + Select all + Selecionar tudo - - Create a group - + + Create a group + Criar um grupo - - Delete the group - + + Delete the group + Excluir grupo - - Rename the group - + + Rename the group + Renomear o grupo - - Import - + + &Add a database + &Adicionar um banco de dados - - Export the table - + + &Edit the database + &Editar o banco de dados - - Import into the table - + + &Remove the database + &Remover o banco de dados - - Populate table - + + &Connect to the database + &Conectar ao banco de dados - - Create similar table - + + &Disconnect from the database + &Desconectar do banco de dados - - Reset autoincrement sequence - + + Import + Importar - - Add a column - + + &Export the database + &Exportar banco de dados - - Edit the column - + + Vac&uum + Vacuum - - Delete the column - + + &Integrity check + Verificar Integridade - - Delete selected items - + + Create a &table + Criar uma tabela - - Clear filter - + + Edit the t&able + Edita uma tabela - - - Erase table data - + + Delete the ta&ble + Apagar a tabela - - - Database - + + Export the table + Exportar a tabela - - Grouping - + + Import into the table + Importar para a tabela - - Generate query for table - + + Populate table + Preencher a tabela - - - Create group - + + Create similar table + Criar tabela semelhante - - Group name - + + Reset autoincrement sequence + Redefinir sequência de auto-incremento - - Entry with name %1 already exists in group %2. - + + Create an &index + Criar um índice - - Delete group - + + Edit the i&ndex + Editar o índice - - Are you sure you want to delete group %1? -All objects from this group will be moved to parent group. - + + Delete the in&dex + Apagar o índice - - Are you sure you want to remove database '%1' from the list? - + + Create a trig&ger + Criar um gatilho - - Are you sure you want to remove following databases from the list: -%1 - + + Edit the trigg&er + Editar gatilho - - Remove database - + + Delete the trigge&r + Excluir gatilho - - Vacuum (%1) - + + Create a &view + Criar uma visualização - - Autoincrement value for table '%1' has been reset successfully. - + + Edit the v&iew + Editar uma visualização - - Are you sure you want to delete all data from table(s): %1? - + + Delete the vi&ew + Apagar uma visualização - - - Cannot import, because no import plugin is loaded. - + + Add a column + Adicionar uma coluna - - Execution from file cancelled. Any queries executed so far have been rolled back. - + + Edit the column + Editar a coluna - - &Add a database - + + Delete the column + Excluir a coluna - - &Edit the database - + + Delete selected items + Excluir itens selecionados - - &Remove the database - + + Clear filter + Limpar filtro - - &Connect to the database - + + &Refresh all database schemas + &Atualizar todos os esquemas de banco de dados - - &Disconnect from the database - + + Re&fresh selected database schema + Atualizar &esquema de banco de dados selecionado - - &Export the database - + + + Erase table data + Apagar dados da tabela - - Con&vert database type - + + Open file's directory + Abrir arquivos diretório - - Vac&uum - + + Execute SQL from file + Executar SQL de um arquivo - - &Integrity check - + + Increase font size + database list + Aumentar o tamanho da fonte - - Create a &table - + + Decrease font size + database list + Diminuir o tamanho da fonte - - Edit the t&able - + + + Database + Base de dados - - Delete the ta&ble - + + Grouping + Agrupamento - - Create an &index - + + Generate query for table + Gerar consulta para tabela - - Edit the i&ndex - + + + Create group + Criar grupo - - Delete the in&dex - + + Group name + Nome do grupo - - Create a trig&ger - + + Entry with name %1 already exists in group %2. + A referência com o nome %1 já existe no grupo %2. - - Edit the trigg&er - + + Delete group + Apagar grupo - - Delete the trigge&r - + + Are you sure you want to delete group %1? +All objects from this group will be moved to parent group. + Tem certeza que deseja excluir o grupo %1? +Todos os objetos deste grupo serão movidos para o grupo pai. - - Create a &view - + + Are you sure you want to remove database '%1' from the list? + Tem certeza de que deseja remover o banco de dados da lista? - - Edit the v&iew - + + Are you sure you want to remove following databases from the list: +%1 + Tem certeza de que deseja remover os seguintes bancos de dados da lista: +%1 - - Delete the vi&ew - + + Remove database + Apagar banco de dados - - &Refresh all database schemas - + + + Cannot import, because no import plugin is loaded. + Não é possível importar porque nenhum plugin de importação está carregado. - - Re&fresh selected database schema - + + + Cannot export, because no export plugin is loaded. + Não é possível exportar, porque nenhum plugin de exportação está carregado. - - Open file's directory - + + Vacuum (%1) + Vacuum (%1) - - Execute SQL from file - + + Integrity check (%1) + Verificação de integridade (%1) - - - Cannot export, because no export plugin is loaded. - + + Reset autoincrement + Redefinir auto-incremento - - Integrity check (%1) - + + Are you sure you want to reset autoincrement value for table '%1'? + Tem certeza de que deseja redefinir o valor de auto-incremento para a tabela? - - Reset autoincrement - + + An error occurred while trying to reset autoincrement value for table '%1': %2 + Ocorreu um erro ao tentar redefinir o valor de auto-incremento da tabela: %2 - - Are you sure you want to reset autoincrement value for table '%1'? - + + Autoincrement value for table '%1' has been reset successfully. + O valor do auto-incremento para a tabela foi redefinido com sucesso. - - An error occurred while trying to reset autoincrement value for table '%1': %2 - + + Are you sure you want to delete all data from table(s): %1? + Tem certeza que deseja excluir todos os dados da tabela: %1? - - An error occurred while trying to delete data from table '%1': %2 - + + An error occurred while trying to delete data from table '%1': %2 + Ocorreu um erro ao tentar excluir os dados da tabela: %2 - - All data has been deleted for table '%1'. - + + All data has been deleted for table '%1'. + Todos os dados da tabela %1 foram apagados. - - Following objects will be deleted: %1. - + + Following objects will be deleted: %1. + Os seguintes objetos serão deletados: %1. - - Following databases will be removed from list: %1. - + + Following databases will be removed from list: %1. + Os seguintes bancos de dados serão removidos da lista: %1. - - Remainig objects from deleted group will be moved in place where the group used to be. - + + Remainig objects from deleted group will be moved in place where the group used to be. + Os objetos restantes do grupo excluído serão movidos no lugar onde o grupo costumava estar. - - %1<br><br>Are you sure you want to continue? - + + %1<br><br>Are you sure you want to continue? + %1<br><br>Você tem certeza que quer continuar? - - Delete objects - + + Delete objects + Excluir objetos + + + DbTreeItemDelegate - - Could not execute SQL, because application has failed to start transaction: %1 - + + error + dbtree labels + erro - - Could not open file '%1' for reading: %2 - + + (system table) + database tree label + (tabela de sistema) - - Could not execute SQL, because application has failed to commit the transaction: %1 - + + (virtual) + virtual table label + (virtual) - - Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. - + + (system index) + database tree label + (índice do sistema) + + + DbTreeModel - - Finished executing %1 queries in %2 seconds. - + + Database: %1 + dbtree tooltip + Banco de dados: %1 - - Could not execute SQL due to error. - + + URI: + dbtree tooltip + URI: - - - DbTreeItemDelegate - - error - dbtree labels - + + Version: + dbtree tooltip + Versão: - - (system table) - database tree label - + + File size: + dbtree tooltip + Tamanho do arquivo: - - (virtual) - virtual table label - + + Encoding: + dbtree tooltip + Codificação: - - (system index) - database tree label - + + Error: + dbtree tooltip + Erro: - - - DbTreeModel - - Database: %1 - dbtree tooltip - + + Table : %1 + dbtree tooltip + Tabela: %1 - - Version: - dbtree tooltip - + + Columns (%1): + dbtree tooltip + Colunas (%1): - - File size: - dbtree tooltip - + + Indexes (%1): + dbtree tooltip + Índices (%1): - - Encoding: - dbtree tooltip - + + Triggers (%1): + dbtree tooltip + Triggers (%1): - - Error: - dbtree tooltip - + + Copy + Cópia - - Table : %1 - dbtree tooltip - + + Move + Mover - - Columns (%1): - dbtree tooltip - + + Include data + Incluir dados - - Indexes (%1): - dbtree tooltip - + + Include indexes + Incluir índices - - Triggers (%1): - dbtree tooltip - + + Include triggers + Incluir triggers - - Copy - + + Abort + Interromper - - Move - + + Could not add dropped database file '%1' automatically. Manual setup is necessary. + Não foi possível adicionar o arquivo de banco de dados '%1' automaticamente. A configuração manual é necessária. - - Include data - + + Referenced tables + Tabelas referenciadas - - Include indexes - + + Do you want to include following referenced tables as well: +%1 + Você também deseja incluir as seguintes tabelas referenciadas: +%1 - - Include triggers - + + Name conflict + Conflito no nome - - Abort - + + Following object already exists in the target database. +Please enter new, unique name, or press '%1' to abort the operation: + Seguindo o objeto já existe no banco de dados de destino. +Digite um nome novo, único ou pressione '%1' para abortar a operação: - - Could not add dropped database file '%1' automatically. Manual setup is necessary. - + + SQL statements conversion + Conversão de comandos SQL - - Referenced tables - + + Following error occurred while converting SQL statements to the target SQLite version: + Ocorreu um erro ao converter as instruções SQL para a versão de SQLite de destino: - - Do you want to include following referenced tables as well: -%1 - + + Would you like to ignore those errors and proceed? + Gostaria de ignorar esses erros e prosseguir? + + + DdlHistoryWindow - - Name conflict - + + Filter by database: + Filtrar por banco de dados: - - Following object already exists in the target database. -Please enter new, unique name, or press '%1' to abort the operation: - + + Clear entire history + Limpar o histórico de navegação - - SQL statements conversion - + + -- Queries executed on database %1 (%2) +-- Date and time of execution: %3 +%4 + -- Consultas executadas no banco de dados %1 (%2) +-- Data e horário de execução: %3 +%4 - - Following error occurred while converting SQL statements to the target SQLite version: - + + Clear history + Limpar histórico - - Would you like to ignore those errors and proceed? - + + Are you sure you want to erase entire DDL history? + Tem certeza de que deseja excluir todo o histórico? - - - DdlHistoryWindow - - Filter by database: - + + DDL history + Histórico DDL + + + DdlPreviewDialog - - -- Queries executed on database %1 (%2) --- Date and time of execution: %3 -%4 - + + Queries to be executed + Consultas a serem executadas - - DDL history - + + Don't show again + Não mostrar novamente - - - DdlPreviewDialog + + + DebugConsole - - Queries to be executed - + + SQLiteStudio Debug Console + Console de Debug SQLiteStudio + + + EditorWindow - - Don't show again - + + SQL editor + Editor SQL - - - DebugConsole - - SQLiteStudio Debug Console - + + Query + Consulta - - - EditorWindow - - Query - + + History + Histórico - - History - + + Results in the separate tab + Resultados em uma aba separada - - Results in the separate tab - + + Results below the query + Resultados abaixo da consulta - - Results below the query - + + + SQL editor %1 + Editor SQL %1 - - - SQL editor %1 - + + + Results + Resultados - - Results - + + Execute query + Executar consulta - - Execute query - + + Explain query + Expandir consulta - - Explain query - + + Clear execution history + sql editor + Limpar histórico de execução - - Clear execution history - sql editor - + + Export results + sql editor + Exportar resultados - - Export results - sql editor - + + Create view from query + sql editor + Criar visualização a partir da consulta - - Create view from query - sql editor - + + Previous database + Banco de dados anterior - - Previous database - + + Next database + Próximo banco de dados - - Next database - + + Show next tab + sql editor + Mostrar próxima aba - - Show next tab - sql editor - + + Show previous tab + sql editor + Mostrar aba anterior - - Show previous tab - sql editor - + + Focus results below + sql editor + Focar resultados abaixo - - Focus results below - sql editor - + + Focus SQL editor above + sql editor + Focar resultados acima - - Focus SQL editor above - sql editor - + + Delete selected SQL history entries + sql editor + Excluir as entradas do histórico SQL selecionadas - - Delete selected SQL history entries - sql editor - + + Execute single query under cursor + Executar a consulta em que o cursor está posicionado - - Active database (%1/%2) - + + Execute all queries in editor + Executar todas as consultas no editor - - Query finished in %1 second(s). Rows affected: %2 - + + Active database (%1/%2) + Banco de dados ativo (%1/%2) - - Query finished in %1 second(s). - + + Query finished in %1 second(s). Rows affected: %2 + Consulta finalizada em %1 segundo(s). Linhas afetadas: %2 - - Clear execution history - + + Query finished in %1 second(s). + Consulta finalizada em %1 segundo(s). - - Are you sure you want to erase the entire SQL execution history? This cannot be undone. - + + Clear execution history + Limpar histórico de execução - - Cannot export, because no export plugin is loaded. - + + Are you sure you want to erase the entire SQL execution history? This cannot be undone. + Tem certeza que deseja apagar todo o histórico de execução de SQL? Isso não pode ser desfeito. - - No database selected in the SQL editor. Cannot create a view for unknown database. - + + Cannot export, because no export plugin is loaded. + Não é possível exportar, porque nenhum plugin de exportação está carregado. - - Editor window "%1" has uncommitted data. - + + No database selected in the SQL editor. Cannot create a view for unknown database. + Nenhum banco de dados selecionado no editor SQL. Não é possível criar uma view para um banco de dados desconhecido. - - + + + Editor window "%1" has uncommitted data. + Janela do editor "%1" possui dados não confirmados. + + + ErrorsConfirmDialog - - Errors - + + Errors + Erros - - Following errors occured: - + + Following errors occured: + Ocorreu o seguinte erro: - - Would you like to proceed? - + + Would you like to proceed? + Deseja continuar? - - + + ExecFromFileDialog - - Execute SQL from file - + + Execute SQL from file + Executar SQL de um arquivo - - Input file - + + Input file + Arquivo de entrada - - Path to file - + + Path to file + Caminho para o arquivo - - Browse for file - + + Browse for file + Procurar por arquivo - - Options - + + Options + Opções - - File encoding - + + File encoding + Codificação de arquivo - - Skip failing SQL statements - + + Skip failing SQL statements + Pular comandos SQL falhados - - SQL scripts (*.sql);;All files (*) - + + SQL scripts (*.sql);;All files (*) + SQL scripts (*.sql);;All files (*) - - Execute SQL file - + + Execute SQL file + Executar o arquivo SQL - - Please provide file to be executed. - + + Please provide file to be executed. + Por favor, forneça um arquivo para ser executado. - - Provided file does not exist or cannot be read. - + + Provided file does not exist or cannot be read. + O arquivo fornecido não existe ou não pode ser lido. - - + + ExportDialog - - Export - + + Export + Exportar - - What do you want to export? - + + What do you want to export? + O que você deseja exportar? - - A database - + + A database + Um banco de dados - - A single table - + + A single table + Uma única tabela - - Query results - + + Query results + Resultados da consulta - - Table to export - + + Table to export + Tabela a exportar - - Database - + + Database + Banco de dados - - Table - + + Table + Tabela - - Options - + + Options + Opções - - When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. - + + When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. + Quando esta opção está desmarcada, então apenas o DDL da tabela (CREATE TABLE) é exportado. - - Export table data - + + Export table data + Exportar dados da tabela - - Export table indexes - + + Export table indexes + Exportar índices de tabelas - - Export table triggers - + + Export table triggers + Exportar gatilhos de tabelas - - Note, that exporting table indexes and triggers may be unsupported by some output formats. - + + Note, that exporting table indexes and triggers may be unsupported by some output formats. + Observe que a exportação de índices e gatilhos de tabela podem não ser suportados por alguns formatos de saída. - - Select database objects to export - + + Select database objects to export + Selecionar objetos de banco de dados para exportar - - Export data from tables - + + Export data from tables + Exportar dados das tabelas - - Select all - + + Select all + Selecionar todos - - Deselect all - + + Deselect all + Desmarcar todos - - - Database: - + + + Database: + Banco de dados: - - Query to export results for - + + Query to export results for + Consulta para exportar resultados para - - Query to be executed for results: - + + Query to be executed for results: + Consulta a ser executada para resultados: - - Export format and options - + + Export format and options + Formato e opções de exportação - - Export format - + + Export format + Formato de exportação - - Output - + + Output + Saída - - Exported file path - + + Exported file path + Caminho do arquivo exportado - - Clipboard - + + Clipboard + Área de transferência - - File - + + File + Arquivo - - Exported text encoding: - + + Exported text encoding: + Codificação de texto exportado: - - Export format options - + + Export format options + Formato e opções de exportação - - Cancel - + + Cancel + Cancelar - - - - Select database to export. - + + + + Select database to export. + Selecionar banco de dados para exportar. - - Select table to export. - + + Select table to export. + Selecione a tabela a ser exportada. - - Enter valid query to export. - + + Enter valid query to export. + Digite uma consulta válida para exportar. - - Select at least one object to export. - + + Select at least one object to export. + Selecione pelo menos um objeto para exportar. - - You must provide a file name to export to. - + + You must provide a file name to export to. + Você deve fornecer um nome de arquivo para exportar. - - Path you provided is an existing directory. You cannot overwrite it. - + + Path you provided is an existing directory. You cannot overwrite it. + O caminho fornecido é um diretório existente. Você não pode substituí-lo. - - The directory '%1' does not exist. - + + The directory '%1' does not exist. + O diretório %1 não existe. - - The file '%1' exists and will be overwritten. - + + The file '%1' exists and will be overwritten. + O arquivo %1 existe e será sobrescrito. - - All files (*) - + + All files (*) + Todos os arquivos (*) - - Pick file to export to - + + Pick file to export to + Exportar arquivo para - - Internal error during export. This is a bug. Please report it. - + + Internal error during export. This is a bug. Please report it. + Erro interno durante a exportação. Isto é um bug. Por favor, reporte-o. - - + + FileExecErrorsDialog - - Execution errors - + + Execution errors + Erros de execução + + + + Following errors were encountered during execution of SQL statements from the file: + Os seguintes erros foram encontrados durante a execução das instruções SQL do arquivo: - - Following errors were encountered during execution of SQL statements from the file: - + + SQL + SQL - - SQL - + + Error + Erro - - Error - + + Statements that were executed successfully were commited. + Declarações executadas com sucesso foram enviadas. - - Statements that were executed successfully were commited. - + + Statements that were executed successfully were rolled back. + Declarações executadas com sucesso foram rebaixadas. + + + FkComboBox - - Statements that were executed successfully were rolled back. - + + Cannot edit this cell. Details: %1 + Não é possível editar esta célula. Detalhes: %1 - - + + FontEdit - - Choose font - font configuration - + + Choose font + font configuration + Escolha a fonte - - + + Form - - Active SQL formatter plugin - + + Active SQL formatter plugin + Formatador SQL ativo do plugin - - + + FormView - - Commit row - form view - + + Commit row + form view + Submeter linha - - Rollback row - form view - + + Rollback row + form view + Reverter linha - - First row - form view - + + First row + form view + Primeira linha - - Previous row - form view - + + Previous row + form view + Linha anterior - - Next row - form view - + + Next row + form view + Próxima linha - - Last row - form view - + + Last row + form view + Última linha - - Insert new row - form view - + + Insert new row + form view + Inserir nova linha - - Delete current row - form view - + + Delete current row + form view + Excluir linha atual - - + + FunctionsEditor - - Filter funtions - + + Filter functions + Filter functions - - Function name: - + + Input arguments + Imputar argumentos - - Implementation language: - + + Undefined + Indefinido - - Type: - + + Databases + Banco de dados - - Input arguments - + + Register in all databases + Registrar em todos os bancos de dados - - Undefined - + + Register in following databases: + Registrar nos seguintes bancos de dados: - - Databases - + + Type: + Tipo: - - Register in all databases - + + Function name: + Nome da função: - - Register in following databases: - + + Implementation language: + Idioma de implementação: - - Initialization code: - + + Deterministic + Determinístico - - - Function implementation code: - + + Initialization code: + Código de inicialização: - - Final step implementation code: - + + + Function implementation code: + Código de implementação da função: - - SQL function editor - + + Final step implementation code: + Código de implementação da etapa final: - - Commit all function changes - + + SQL functions editor + Editor de funções SQL - - Rollback all function changes - + + Commit all function changes + Enviar todas as mudanças de função - - Create new function - + + Rollback all function changes + Restaurar todas as alterações de função - - Delete selected function - + + Create new function + Criar nova função - - Custom SQL functions manual - + + Delete selected function + Excluir função selecionada - - Add function argument - + + Custom SQL functions manual + Personalizar funções SQL manualmente - - Rename function argument - + + Add function argument + Adicionar argumento da função - - Delete function argument - + + Rename function argument + Renomear argumento da função - - Move function argument up - + + Delete function argument + Excluir argumento da função - - Move function argument down - + + Move function argument up + Move o argumento da função para cima - - Scalar - + + Move function argument down + Move o argumento da função para baixo - - Aggregate - + + Scalar + Escalar - - Enter a non-empty, unique name of the function. - + + Aggregate + Agregar - - Pick the implementation language. - + + Enter a non-empty, unique name of the function. + Insira um nome único e completo da função. - - Per step code: - + + Pick the implementation language. + Escolha a linguagem de implementação. - - Enter a non-empty implementation code. - + + Per step code: + Código de cada passo: - - argument - new function argument name in function editor window - + + Enter a non-empty implementation code. + Digite um código de implementação não vazio. - - Functions editor window has uncommitted modifications. - + + argument + new function argument name in function editor window + argumento - - + + + Functions editor window has uncommitted modifications. + Janela do editor de funções tem modificações não autorizadas. + + + ImportDialog - - Import data - + + Import data + Importar dados - - Table to import to - + + Table to import to + Importar tabela para - - Table - + + Table + Tabela - - Database - + + Database + Banco de dados - - Data source to import from - + + Data source to import from + Dados para importar - - Data source type - + + Data source type + Tipo de fonte de dados - - Options - + + Options + Opções - - Input file: - + + Text encoding: + Codificação de texto: - - Text encoding: - + + Input file: + Arquivo de entrada: - - <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> - + + <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> + <p>Se ativado, qualquer violação de restrição ou formato de dados inválido (contagem de coluna errada), ou qualquer outro problema encontrado durante a importação será ignorado e a importação será continuada.</p> - - Ignore errors - + + Ignore errors + Ignorar erros - - Data source options - + + Data source options + Opções de fonte de dados - - Cancel - + + Cancel + Cancelar - - If you type table name that doesn't exist, it will be created. - + + If you type table name that doesn't exist, it will be created. + Se você digitar o nome da tabela que não existe, ela será criada. - - Enter the table name - + + Enter the table name + Digite o nome da tabela - - Select import plugin. - + + Select import plugin. + Selecione plugin de importação. - - You must provide a file to import from. - + + You must provide a file to import from. + Você deve fornecer um arquivo para importar. - - The file '%1' does not exist. - + + The file '%1' does not exist. + O arquivo '%1' não existe. - - Path you provided is a directory. A regular file is required. - + + Path you provided is a directory. A regular file is required. + Caminho fornecido é um diretório. Um arquivo regular é necessário. - - Pick file to import from - + + Pick file to import from + Escolher arquivo de onde importar - - + + IndexDialog - - - Index - + + + Index + Índice - - On table: - + + Column + Coluna - - Index name: - + + Sort + Ordenar - - Partial index condition - + + Collation + Collation - - Unique index - + + On table: + Na tabela: - - Column - + + Delete selected indexed expression + Excluir expressão indexada selecionada - - Collation - + + Moves selected index column up in the order, making it more significant in the index. + Move a coluna de índice selecionada para cima, tornando-a mais significativa no índice. - - Sort - + + Moves selected index column down in the order, making it less significant in the index. + Move a coluna de índice selecionada para baixo na ordem, tornando-a menos significativa no índice. - - Delete selected indexed expression - + + Partial index condition + Condição do índice parcial - - Moves selected index column up in the order, making it more significant in the index. - + + Unique index + Índice exclusivo - - Moves selected index column down in the order, making it less significant in the index. - + + Index name: + Nome do índice: - - Edit selected indexed expression - + + Edit selected indexed expression + Editar a expressão indexada selecionada - - Add indexed expression - + + Add indexed expression + Adicionar expressão indexada - - DDL - + + DDL + DDL - - Tried to open index dialog for closed or inexisting database. - + + Tried to open index dialog for closed or inexisting database. + Tentou abrir diálogo de índice para banco de dados fechado ou inexistente. - - Could not process index %1 correctly. Unable to open an index dialog. - + + Could not process index %1 correctly. Unable to open an index dialog. + Não foi possível processar o índice %1 corretamente. Não foi possível abrir um diálogo de índice. - - Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. - + + Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. + Índice exclusivo não pode ter expressões indexadas. Remova expressões da lista abaixo, ou desmarque esta opção. - - Pick the table for the index. - + + Pick the table for the index. + Selecione a tabela para o índice. - - Select at least one column. - + + Select at least one column. + Selecione pelo menos uma coluna. - - Enter a valid condition. - + + Enter a valid condition. + Informe uma condição válida. - - default - index dialog - + + default + index dialog + padrão - - Sort order - table constraints - + + Sort order + table constraints + Ordem de classificação - - - Error - index dialog - + + + Error + index dialog + Erro - - Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? - + + Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? + Não é possível criar um índice único, porque os valores nas colunas selecionadas não são únicos. Gostaria de executar uma consulta SELECT para ver os valores problemáticos? - - An error occurred while executing SQL statements: + + An error occurred while executing SQL statements: %1 - + Ocorreu um erro ao executar instruções SQL: +%1 - - + + IndexExprColumnDialog - - Indexed expression - + + Indexed expression + Expressão indexada - - Expression to index - + + Expression to index + Expressão para indexar - - This expression is already indexed by the index. - + + This expression is already indexed by the index. + Esta expressão já está indexada pelo índice. - - Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. - + + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. + A coluna deve ser indexada diretamente, não por expressão. Ou amplie esta expressão para conter algo mais do que apenas o nome da coluna, ou aborte e selecione esta coluna no diálogo de índice diretamente. - - Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. - + + Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. + A coluna '%1' não pertence à tabela coberta por este índice. Expressões indexadas podem se referir apenas a colunas da tabela indexada. - - It's forbidden to use 'SELECT' statements in indexed expressions. - + + It's forbidden to use 'SELECT' statements in indexed expressions. + Proibido usar instruções SELECT em expressões indexadas. - - Enter an indexed expression. - + + Enter an indexed expression. + Informe uma expressão indexada. - - Invalid expression. - + + Invalid expression. + Expressão inválida. - - + + LanguageDialog - - Language - + + Language + Idioma - - Please choose language: - + + Please choose language: + Por favor, escolha o idioma: - - + + MainWindow - - Database toolbar - + + Database toolbar + Barra de ferramentas do banco de dados + + + + Structure toolbar + Barra de ferramentas da estrutura - - Structure toolbar - + + Tools + Ferramentas - - Tools - + + Window list + Lista de janelas - - Window list - + + View toolbar + Visualizar barra de ferramentas - - View toolbar - + + Configuration widgets + Configurar widgets - - Configuration widgets - + + Syntax highlighting engines + Realce do tema da sintaxe - - Syntax highlighting engines - + + Data editors + Editores de dados - - Data editors - + + Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. + Executando no modo de depuração. Pressione %1 ou use 'Ajuda / Abrir console de depuração' entrada de menu para abrir o console de depuração. - - Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. - + + Running in debug mode. Debug messages are printed to the standard output. + Executando em modo de depuração. Mensagens de depuração são impressas na saída padrão. - - Running in debug mode. Debug messages are printed to the standard output. - + + You need to restart application to make the language change take effect. + Você precisa reiniciar o aplicativo para que a alteração de idioma tenha efeito. - - You need to restart application to make the language change take effect. - + + Open SQL &editor + Abrir editor de SQL - - Next window - + + Open DDL &history + Abrir histórico DDL - - Previous window - + + Open SQL &functions editor + Abrir editor de funções SQL - - Hide status field - + + Open code &snippets editor + Abrir editor de &snippets - - Open Debug Console - + + Open &collations editor + Abrir editor de ordenações - - Open CSS Console - + + Open ex&tension manager + Abrir gerenciador de extensão - - Bugs and feature &requests - + + &Import + Importar - - Window list - menubar view menu - + + E&xport + Exportar - - Open SQL &editor - + + Open confi&guration dialog + Configurações - - Open DDL &history - + + &Tile windows + Dividir janelas - - Open SQL &functions editor - + + Tile windows &horizontally + Dividir janela horizontalmente - - Open &collations editor - + + Tile windows &vertically + Dividir janela verticalmente - - Open ex&tension manager - + + &Cascade windows + Janelas em cascata - - &Import - + + Next window + Próxima janela - - E&xport - + + Previous window + Janela anterior - - Open confi&guration dialog - + + Hide status field + Ocultar a barra de status - - &Tile windows - + + Close &all windows + Fechar todas as janelas - - Tile windows &horizontally - + + Re&store recently closed window + Restaurar a janela fechada recentemente - - Tile windows &vertically - + + Close current &window + Fechar janela atual - - &Cascade windows - + + Close &other windows + Fechar janela - - Close selected &window - + + Close windows on the &left + Fechar janelas na &esquerda - - Close all windows &but selected - + + Close windows on the &right + Fechar janelas na &direita - - Close &all windows - + + Re&name selected window + Renomear janela selecionada - - Re&store recently closed window - + + Open Debug Console + Abrir Debug Console - - &Rename selected window - + + Open CSS Console + Abrir CSS Console - - Report a &bug - + + Report a &bug + Relatar um erro - - Propose a new &feature - + + D&onate + Fazer uma doação - - &About - + + Propose a new &feature + Proponha novas funcionalidades - - &Licenses - + + &About + Sobre - - Open home &page - + + &Licenses + Licenças - - Open fo&rum page - + + Open home &page + Abrir página inicial - - User &Manual - + + User &Manual + Manual do Usuário - - SQLite &documentation - + + SQLite &documentation + Documentação do SQLite - - Check for &updates - + + Bugs and feature &requests + Bugs e solicitações de recursos - - &Database - menubar - + + Quit + Sair - - &Structure - menubar - + + Check for &updates + Verificar atualizações - - &View - menubar - + + &Database + menubar + Banco de dados - - &Tools - menubar - + + &Structure + menubar + Estrutura - - &Help - + + &View + menubar + Visualizar - - Could not set style: %1 - main window - + + Window list + menubar view menu + Lista de janelas - - Cannot export, because no export plugin is loaded. - + + &Tools + menubar + Ferramentas - - Cannot import, because no import plugin is loaded. - + + &Help + Ajuda - - Rename window - + + Could not set style: %1 + main window + Não foi possível definir o estilo: %1 - - Enter new name for the window: - + + Cannot export, because no export plugin is loaded. + Não é possível exportar, porque nenhum plugin de exportação está carregado. - - New updates are available. <a href="%1">Click here for details</a>. - + + Cannot import, because no import plugin is loaded. + Não é possível importar porque nenhum plugin de importação está carregado. - - You're running the most recent version. No updates are available. - + + Rename window + Renomear janela - - Database passed in command line parameters (%1) was already on the list under name: %2 - + + Enter new name for the window: + Digite um novo nome para a janela: - - Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 - + + New updates are available. <a href="%1">Click here for details</a>. + Novas atualizações estão disponíveis. <a href="%1">Clique aqui para mais detalhes</a>. - - Could not add database %1 to list. - + + You're running the most recent version. No updates are available. + Você está executando a versão mais recente. Não há atualizações disponíveis. - - + + + Database passed in command line parameters (%1) was already on the list under name: %2 + Banco de dados passado nos parâmetros da linha de comando (%1) já estava na lista com o nome: %2 + + + + Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 + Banco de dados passado nos parâmetros da linha de comando (%1) já estava na lista com o nome: %2 + + + + Could not add database %1 to list. + Não foi possível adicionar o banco de dados %1 à lista. + + + MdiWindow - - Uncommitted changes - + + Uncommitted changes + Alterações não realizadas - - Close anyway - + + Close anyway + Fechar mesmo assim - - Don't close - + + Don't close + Não fechar - - + + MultiEditor - - Null value - multieditor - + + Null value + multieditor + Valor nulo + + + + Configure editors for this data type + Configurar os editores para este tipo de dados - - Configure editors for this data type - + + Open another tab + Abrir outra aba - - Open another tab - + + Foreign Key + Chave estrangeira - - Data editor plugin '%1' not loaded, while it is defined for editing '%1' data type. - + + Data editor plugin '%1' not loaded, while it is defined for editing '%2' data type. + Plugin do editor de dados '%1' não carregado, enquanto estiver definido para edição '%1' tipo de dados. {1'?} {2'?} {1' or 2'?} - - Deleted - multieditor - + + Deleted + multieditor + Excluído - - Read only - multieditor - + + Read only + multieditor + Somente leitura - - + + MultiEditorBoolPlugin - - Boolean - + + Boolean + Booleano - - + + MultiEditorDatePlugin - - Date - + + Date + Data - - + + MultiEditorDateTimePlugin - - Date & time - + + Date & time + Data e hora - - + + MultiEditorHexPlugin - - Hex - + + Hex + Hexadecimal - - + + MultiEditorNumericPlugin - - Number - numeric multi editor tab name - + + Number + numeric multi editor tab name + Número - - + + MultiEditorText - - Tab changes focus - + + Tab changes focus + Mudança de foco da guia - - Cut - + + Cut + Recortar - - Copy - + + Copy + Copiar - - Paste - + + Paste + Colar - - Delete - + + Delete + Deletar - - Undo - + + Undo + Desfazer - - Redo - + + Redo + Refazer - - + + MultiEditorTextPlugin - - Text - + + Text + Texto - - + + MultiEditorTimePlugin - - Time - + + Time + Tempo - - + + NewConstraintDialog - - New constraint - + + New constraint + Nova constraint + + + + + Primary Key + new constraint dialog + Chave Primária - - - Primary Key - new constraint dialog - + + + Foreign Key + new constraint dialog + Foreign Key - - - Foreign Key - new constraint dialog - + + + Unique + new constraint dialog + Unique - - - Unique - new constraint dialog - + + + Check + new constraint dialog + Verificar - - - Check - new constraint dialog - + + Not NULL + new constraint dialog + Not NULL - - Not NULL - new constraint dialog - + + Collate + new constraint dialog + Collate - - Collate - new constraint dialog - + + Generated + new constraint dialog + Gerado - - Default - new constraint dialog - + + Default + new constraint dialog + Padrão - - + + NewVersionDialog - - SQLiteStudio updates - + + SQLiteStudio updates + Atualizações do SQLiteStudio - - New updates are available! - + + New version is available! + Uma nova versão está disponível! - - Component - + + Download new version! + Baixe a nova versão! - - This application will be closed and the update installer will start to download and install all the updates. - + + New version package will be downloaded. It will be up to you to install it whenever you're ready. + O novo pacote de versão será baixado. Caberá a você instalá-lo sempre que você estiver pronto. - - Update version - + + Open SQLiteStudio home page. + Abrir página inicial do SQLiteStudio. - - Check for updates on startup - + + Read release notes && download package yourself. + Leia as notas do lançamento e baixe o pacote você mesmo. - - Update to new version! - + + Just close this window. + Apenas feche essa janela. - - Not now. - + + Check for updates on startup + Verificar se há atualizações na inicialização - - Don't install the update and close this window. - + + Not now. + Agora não. - - + + PopulateConfigDialog - - Populating configuration - + + Populating configuration + Preenchendo configuração - - Configuring <b>%1</b> for column <b>%2</b> - + + Configuring <b>%1</b> for column <b>%2</b> + Configurando <b>%1</b> para a coluna <b>%2</b> - - + + PopulateDialog - - Populate table - + + Populate table + Preencher tabela - - Database - + + Database + Banco de dados - - Table - + + Table + Tabela - - Columns - + + Columns + Colunas - - Number of rows to populate: - + + Number of rows to populate: + Número de linhas para preencher: - - Populate - populate dialog button - + + Populate + populate dialog button + Preencher - - Abort - + + Abort + Interromper - - Configure - + + Configure + Configurar - - Populating configuration for this column is invalid or incomplete. - + + Populating configuration for this column is invalid or incomplete. + Preencher a configuração para esta coluna é inválido ou incompleto. - - Select database with table to populate - + + Select database with table to populate + Selecionar a tabela do banco de dados para preencher - - Select table to populate - + + Select table to populate + Selecione a tabela para preencher - - You have to select at least one column. - + + You have to select at least one column. + Você deve selecionar pelo menos uma coluna. - - + + QObject - - Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). - + + Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). + Não é possível editar colunas que são resultado das declarações compostas %1 (uma que inclui %2, %3 ou %4 palavras-chave). + + + + The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. + O mecanismo de execução da consulta teve problemas com a extração de ROWID corretamente. Este pode ser um erro na aplicação. Você pode querer reportar isto. + + + + Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. + A coluna solicitada é um resultado de expressão SQL, ao invés de uma seleção de coluna simples. Essas colunas não podem ser editadas. - - The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. - + + Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. + Coluna requisitada pertence à tabela SQLite restrita. Essas tabelas não podem ser editadas diretamente. - - Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. - + + Cannot edit results of query other than %1. + Não é possível editar resultados da consulta diferente de %1. - - Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. - + + Cannot edit columns that are result of aggregated %1 statements. + Não é possível editar colunas que são resultado de declarações %1 agregadas. - - Cannot edit results of query other than %1. - + + Cannot edit columns that are result of %1 statement. + Não é possível editar colunas que são resultado de %1 demonstração. - - Cannot edit columns that are result of aggregated %1 statements. - + + Cannot edit columns that are result of common table expression statement (%1). + Não é possível editar colunas que são resultado da declaração de expressão comum da tabela (%1). - - Cannot edit columns that are result of %1 statement. - + + Cannot edit table generated columns. + Não é possível editar colunas geradas pela tabela. - - Cannot edit columns that are result of common table expression statement (%1). - + + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). - - - - - on conflict: %1 - data view tooltip - + + + + + on conflict: %1 + data view tooltip + Conflito: %1 - - references table %1, column %2 - data view tooltip - + + references table %1, column %2 + data view tooltip + tabela de referências %1, coluna %2 - - condition: %1 - data view tooltip - + + condition: %1 + data view tooltip + condição: %1 - - collation name: %1 - data view tooltip - + + collation name: %1 + data view tooltip + nome da ordenação: %1 - - Data grid view - + + Data grid view + Exibição dos dados em grade - - Copy cell(s) contents to clipboard - + + Edit current cell inline + Editar célula atual em linha - - Copy cell(s) contents together with header to clipboard - + + Copy cell(s) contents to clipboard + Copiar conteúdo de células para área de transferência - - Paste cell(s) contents from clipboard - + + Copy cell(s) contents together with header to clipboard + Copiar conteúdo de células junto com o cabeçalho para área de transferência - - Set empty value to selected cell(s) - + + Paste cell(s) contents from clipboard + Colar o conteúdo da área de transferência - - Set NULL value to selected cell(s) - + + Set empty value to selected cell(s) + Definir valor vazio para a(s) célula(s) selecionada(s) - - Commit changes to cell(s) contents - + + Set NULL value to selected cell(s) + Definir valor NULL para as células selecionadas - - Rollback changes to cell(s) contents - + + Commit changes to cell(s) contents + Enviar alterações no conteúdo de célula(s) - - Delete selected data row - + + Rollback changes to cell(s) contents + Restaurar alterações para conteúdo de célula(s) - - Insert new data row - + + Delete selected data row + Excluir linha de dados selecionada - - Open contents of selected cell in a separate editor - + + Insert new data row + Inserir nova linha de dados - - Total pages available: %1 - + + Open contents of selected cell in a separate editor + Abrir o conteúdo da célula selecionada em um editor separado - - Total rows loaded: %1 - + + Toggle the height adjustment of rows + Alternar o ajuste de altura das linhas - - Data view (both grid and form) - + + Increase font size + data view + Aumentar o tamanho da fonte - - Refresh data - + + Decrease font size + data view + Diminuir o tamanho da fonte - - Switch to grid view of the data - + + Total pages available: %1 + Total de páginas disponíveis: %1 - - Switch to form view of the data - + + Total rows loaded: %1 + Total de linhas carregadas: %1 - - Database list - + + Data view (both grid and form) + Visualização de dados (grade e formulário) - - Delete selected item - + + Refresh data + Atualizar dados - - Clear filter contents - + + Switch to grid view of the data + Alternar para exibição em grade dos dados - - Refresh schema - + + Switch to form view of the data + Alternar para exibição de formulário dos dados - - Refresh all schemas - + + Database list + Lista de banco de dados - - Add database - + + Delete selected item + Apagar item selecionado - - Select all items - + + Clear filter contents + Limpar conteúdo do filtro - - Copy selected item(s) - + + Refresh schema + Atualizar esquema - - - - Paste from clipboard - + + Refresh all schemas + Atualizar todos os esquemas - - Tables - + + Add database + Adicionar banco de dados - - Indexes - + + Select all items + Selecionar todos os itens - - Triggers - + + Copy selected item(s) + Copiar itens selecionados - - Views - + + + + Paste from clipboard + Colar da área de transferência - - Columns - + + Increase font size + database list + Aumentar o tamanho da fonte - - Data form view - + + Decrease font size + database list + Diminuir o tamanho da fonte - - Commit changes for current row - + + Tables + Tabelas - - Rollback changes for current row - + + Indexes + Índices - - Go to first row on current page - + + Triggers + Triggers - - Go to next row - + + Views + Visualizações - - Go to previous row - + + Columns + Colunas - - Go to last row on current page - + + Data form view + Visualização de dados em formulário - - Insert new row - + + Commit changes for current row + Enviar alterações para a linha atual - - Delete current row - + + Rollback changes for current row + Reverter alterações da linha atual - - Main window - + + Go to first row on current page + Ir para a primeira linha na página atual - - Open SQL editor - + + Go to next row + Ir para a próxima linha - - Previous window - + + Go to previous row + Ir para a linha anterior - - Next window - + + Go to last row on current page + Ir para a última linha na página atual - - Hide status area - + + Insert new row + Inserir nova linha - - Open configuration dialog - + + Delete current row + Excluir linha atual - - Open Debug Console - + + Main window + Janela principal - - Open CSS Console - + + Open SQL editor + Abrir editor de SQL - - Cell text value editor - + + Open DDL history window + Abrir janela de histórico - - - Cut selected text - + + Open snippets editor window + Uma janela de editor de snippets - - - Copy selected text - + + Open function editor window + Uma janela de editor de função - - - Delete selected text - + + Open collation editor window + Uma janela de editor de ordenação - - - Undo - + + Open extension manager window + Abrir gerenciador de extensão - - - Redo - + + Previous window + Janela anterior - - SQL editor input field - + + Next window + Próxima janela - - Select whole editor contents - + + Hide status area + Ocultar área de status - - Save contents into a file - + + Open user manual + Abrir manual do usuário - - Load contents from a file - + + Open configuration dialog + Configurações - - Find in text - + + Open Debug Console + Abrir Console de Depuração - - Find next - + + Open CSS Console + Abrir Console CSS - - Find previous - + + Open the About dialog + Abrir o diálogo Sobre - - Replace in text - + + Quit the application + Sair do aplicativo - - Delete current line - + + Cell text value editor + Editor de texto de célula - - Request code assistant - + + + Cut selected text + Recortar texto selecionado - - Format contents - + + + Copy selected text + Copiar texto selecionado - - Move selected block of text one line down - + + + Delete selected text + Excluir texto selecionado - - Move selected block of text one line up - + + + Undo + Desfazer - - Copy selected block of text and paste it a line below - + + + Redo + Refazer - - Copy selected block of text and paste it a line above - + + SQL editor input field + Campo de entrada do editor SQL - - Toggle comment - + + Select whole editor contents + Selecionar todo o conteúdo do editor - - All SQLite databases - + + Save contents into a file + Salvar conteúdo em um arquivo - - All files - + + Load contents from a file + Carregar conteúdo de um arquivo - - - Database file - + + Find in text + Localizar no texto - - SQL editor window - + + Find next + Localizar próximo - - Execute query - + + Find previous + Localizar anterior - - Execute "%1" query - + + Replace in text + Substituir no texto - - Switch current working database to previous on the list - + + Delete current line + Excluir linha atual - - Switch current working database to next on the list - + + Request code assistant + Solicitar código assistente - - Go to next editor tab - + + Format contents + Formatar conteúdo - - Go to previous editor tab - + + Move selected block of text one line down + Mover o bloco selecionado de texto com uma linha para baixo - - Move keyboard input focus to the results view below - + + Move selected block of text one line up + Mover o bloco selecionado de uma linha para cima - - Move keyboard input focus to the SQL editor above - + + Copy selected block of text and paste it a line below + Copie o bloco de texto selecionado e cole uma linha abaixo - - Delete selected SQL history entries - + + Copy selected block of text and paste it a line above + Copie o bloco de texto selecionado e cole uma linha acima - - Table window - + + Toggle comment + Alternar comentário - - Refresh table structure - + + Increase font size + sql editor + Aumentar o tamanho da fonte - - Add new column - + + Decrease font size + sql editor + Diminuir o tamanho da fonte - - Edit selected column - + + All SQLite databases + Todos os bancos de dados - - Delete selected column - + + All files + Todos os arquivos - - Export table data - + + Select database file + Selecionar banco de dados - - Import data to the table - + + Select + Selecionar - - Add new table constraint - + + File type + Tipo de arquivo - - Edit selected table constraint - + + SQL editor window + Editor gráfico SQL - - Delete selected table constraint - + + Execute query + Executar consulta - - Refresh table index list - + + Execute single query under cursor + Executar a consulta em que o cursor está posicionado - - Add new index - + + Execute all queries in editor + Executar todas as consultas no editor - - Edit selected index - + + Execute "%1" query + Executar "%1" consulta - - Delete selected index - + + Switch current working database to previous on the list + Alternar a atual base de dados de trabalho para a anterior na lista - - Refresh table trigger list - + + Switch current working database to next on the list + Alternar a atual base de dados de trabalho para a próxima lista - - - Add new trigger - + + Go to next editor tab + Ir para a aba do próximo editor - - - Edit selected trigger - + + Go to previous editor tab + Ir para aba editor anterior - - - Delete selected trigger - + + Move keyboard input focus to the results view below + Mover o foco de entrada do teclado para a exibição de resultados abaixo - - - Go to next tab - + + Move keyboard input focus to the SQL editor above + Mover o foco de entrada do teclado para o editor SQL acima - - - Go to previous tab - + + Delete selected SQL history entries + Excluir as entradas do histórico SQL selecionadas - - A view window - + + Table window + Janela da tabela - - Refresh view trigger list - + + Commit the table structure + Commit the table structure - - + + + Rollback pending changes in the table structure + Rollback pending changes in the table structure + + + + Refresh table structure + Atualizar estrutura da tabela + + + + Add new column + Adicionar nova coluna + + + + Edit selected column + Editar coluna selecionada + + + + Delete selected column + Excluir coluna selecionada + + + + Export table data + Exportar dados da tabela + + + + Import data to the table + Importar dados para a tabela + + + + Add new table constraint + Adicionar nova restrição de tabela + + + + Edit selected table constraint + Editar restrição de tabela selecionada + + + + Delete selected table constraint + Excluir restrição de tabela selecionada + + + + Refresh table index list + Atualizar lista de índices das tabelas + + + + Add new index + Adicionar novo índice + + + + Edit selected index + Editar índice selecionado + + + + Delete selected index + Excluir índice selecionado + + + + Refresh table trigger list + Atualizar lista de gatilhos da tabela + + + + + Add new trigger + Adicionar novo gatilho + + + + + Edit selected trigger + Editar gatilho selecionado + + + + + Delete selected trigger + Excluir gatilho selecionado + + + + + Go to next tab + Ir para a próxima aba + + + + + Go to previous tab + Ir para a aba anterior + + + + A view window + Uma janela de visualização + + + + Commit the view's query + Executar a view após a consulta + + + + Rollback pending changes in the view's query + Rollback pending changes in the view's query + + + + Refresh view trigger list + Atualizar lista de gatilho de visão + + + + Execute the view's query + Executar a view após a consulta + + + + A code snippets editor window + Uma janela de editor de snippets + + + + + + + Commit the pending changes + Faça commit da alteração. + + + + + + + Rollback the pending changes + Rollback the pending changes + + + + A collation editor window + Uma janela de editor de ordenação + + + + A function editor window + Uma janela de editor de função + + + + A SQLite extension editor window + Uma janela de editor de extensões SQLite + + + QuitConfirmDialog - - Uncommitted changes - + + Uncommitted changes + Alterações não realizadas - - Are you sure you want to quit the application? + + Are you sure you want to quit the application? Following items are pending: - + Tem certeza que quer sair do aplicativo? + +Os seguintes itens estão pendentes: - - + + SearchTextDialog - - Find or replace - + + Find or replace + Localizar ou substituir - - Find: - + + Find: + Localizar: - - Case sensitive - + + Case sensitive + Distinção entre maiúsculas e minúsculas - - Search backwards - + + Search backwards + Pesquisar para trás - - Regular expression matching - + + Regular expression matching + Expressão regular correspondente - - Replace && + + Replace && find next - + Substituir && +encontrar próximo - - Replace with: - + + Replace with: + Substituir por: - - Replace all - + + Replace all + Substituir todos - - Find - + + Find + Procurar - - + + SortDialog - - Sort by columns - + + Sort by columns + Ordenar por colunas - - - Column - + + + Column + Coluna - - - Order - + + + Order + Ordenar - - Sort by: %1 - + + Sort by: %1 + Classificar por: %1 - - Move column up - + + Move column up + Mover coluna para cima - - Move column down - + + Move column down + Mover coluna para baixo - - + + SqlEditor - - Cut - sql editor - + + Wrap words + sql editor + Ajustar palavras + + + + Cut + sql editor + Recortar + + + + Copy + sql editor + Copiar + + + + Paste + sql editor + Colar - - Copy - sql editor - + + Delete + sql editor + Deletar - - Paste - sql editor - + + Select all + sql editor + Selecionar tudo - - Delete - sql editor - + + Undo + sql editor + Desfazer - - Select all - sql editor - + + Redo + sql editor + Refazer - - Undo - sql editor - + + Complete + sql editor + Completado - - Redo - sql editor - + + Format SQL + sql editor + Formatar SQL - - Complete - sql editor - + + Save SQL to file + sql editor + Salvar SQL no arquivo - - Format SQL - sql editor - + + Select file to save SQL + sql editor + Selecione o arquivo para salvar SQL - - Save SQL to file - sql editor - + + Load SQL from file + sql editor + Carregar SQL do arquivo - - Select file to save SQL - sql editor - + + Delete line + sql editor + Excluir linha - - Load SQL from file - sql editor - + + Move block down + sql editor + Mover bloco para baixo - - Delete line - sql editor - + + Move block up + sql editor + Mover bloco para cima - - Move block down - sql editor - + + Copy block down + sql editor + Copiar bloco para baixo - - Move block up - sql editor - + + Copy up down + sql editor + Copie para baixo - - Copy block down - sql editor - + + Find + sql editor + Localizar - - Copy up down - sql editor - + + Find next + sql editor + Encontrar próximo - - Find - sql editor - + + Find previous + sql editor + Localizar anterior - - Find next - sql editor - + + Replace + sql editor + Substituir - - Find previous - sql editor - + + Toggle comment + sql editor + Alternar comentário - - Replace - sql editor - + + Increase font size + sql editor + Aumentar o tamanho da fonte - - Toggle comment - sql editor - + + Decrease font size + sql editor + Reduzir Tamanho da Fonte - - Saved SQL contents to file: %1 - + + Could not open file '%1' for writing: %2 + Não foi possível abrir o arquivo '%1' para escrever: %2 - - Syntax completion can be used only when a valid database is set for the SQL editor. - + + Saved SQL contents to file: %1 + Conteúdo SQL salvo no arquivo: %1 - - Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. - + + Syntax completion can be used only when a valid database is set for the SQL editor. + A conclusão da sintaxe só pode ser usada quando um banco de dados válido é definido para o editor SQL. - - Save to file - + + Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. + O conteúdo do editor SQL é enorme, portanto os erros detectando e o realce de objetos existentes estão temporariamente desabilitados. - - Could not open file '%1' for writing: %2 - + + Save to file + Salvar para arquivo - - SQL scripts (*.sql);;All files (*) - + + SQL scripts (*.sql);;All files (*) + Scripts SQL (*.sql);;Todos os arquivos (*) - - Open file - + + Open file + Abrir arquivo - - Could not open file '%1' for reading: %2 - + + Could not open file '%1' for reading: %2 + Não foi possível abrir o arquivo '%1' para leitura: %2 - - Reached the end of document. Hit the find again to restart the search. - + + Reached the end of document. Hit the find again to restart the search. + Alcançou o fim do documento. Clique em encontrar novamente para reiniciar a pesquisa. - - + + SqlQueryItem - - Column: - data view tooltip - + + Committing error: + data view tooltip + Erro ao enviar: - - Data type: - data view - + + Column: + data view tooltip + Coluna: - - Table: - data view tooltip - + + Data type: + data view + Tipo de dado: - - Constraints: - data view tooltip - + + Table: + data view tooltip + Tabela: - - Cannot load the data for a cell that refers to the already closed database. - + + Constraints: + data view tooltip + Constraints: - - + + SqlQueryItemDelegate - - The row is marked for deletion. - + + + + + Cannot edit this cell. Details: %1 + Não é possível editar esta célula. Detalhes: %1 - - - - - - Cannot edit this cell. Details: %1 - + + The row is marked for deletion. + A linha está marcada para exclusão. - - - Structure of this table has changed since last data was loaded. Reload the data to proceed. - + + + Structure of this table has changed since last data was loaded. Reload the data to proceed. + A estrutura desta tabela mudou desde a última data foi carregada. Recarregue os dados para continuar. - - Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). - + + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). + Editar um conteúdo enorme em um editor de celular não é uma boa ideia. Pode se tornar lento e inconveniente. É melhor editar conteúdos tão grandes em um Form View ou em um editor pop-up (disponível no menu rick-click). - - Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. - + + Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. + Chave estrangeira para a coluna %2 possui mais de %1 valores possíveis.'é muito para ser exibido na lista de seleção. Você precisa editar o valor manualmente. - - + + SqlQueryModel - - - Only one query can be executed simultaneously. - + + + Only one query can be executed simultaneously. + Apenas uma consulta pode ser executada simultaneamente. + + + + Cannot execute query on undefined or invalid database. + Não é possível executar a consulta num banco de dados indefinido ou inválido. - - Cannot commit the data for a cell that refers to the already closed database. - + + Cannot execute empty query. + Não é possível executar consulta vazia. - - Could not begin transaction on the database. Details: %1 - + + Uncommitted data + Dados não confirmados - - An error occurred while rolling back the transaction: %1 - + + There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. + Há alterações de dados não confirmadas. Você deseja prosseguir mesmo assim? Todas as alterações não confirmadas serão perdidas. - - Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. - + + Cannot commit the data for a cell that refers to the already closed database. + Não é possível confirmar os dados para uma célula que se refere ao banco de dados já fechado. - - Uncommitted data - + + Could not begin transaction on the database. Details: %1 + Não foi possível iniciar a transação no banco de dados. Detalhes: %1 - - There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. - + + An error occurred while committing the transaction: %1 + Ocorreu um erro ao confirmar a transação: %1 - - An error occurred while committing the transaction: %1 - + + An error occurred while rolling back the transaction: %1 + Ocorreu um erro ao reverter a transação: %1 - - An error occurred while committing the data: %1 - + + Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. + Tentou comprometer uma célula que não é editável (ainda é modificada e aguardando commit)! Isso é um bug. Por favor, reporte isso. - - Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. - + + An error occurred while committing the data: %1 + Ocorreu um erro ao confirmar os dados: %1 - - - Error while executing SQL query on database '%1': %2 - + + Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. + O número de linhas por página foi reduzido para %1 devido ao número de colunas (%2) na visualização de dados. - - Error while loading query results: %1 - + + + Error while executing SQL query on database '%1': %2 + Erro ao executar consulta SQL no banco de dados '%1': %2 - - Insert multiple rows - + + Error while loading query results: %1 + Erro ao carregar os resultados da consulta: %1 - - Number of rows to insert: - + + Insert multiple rows + Inserir múltiplas linhas - - + + + Number of rows to insert: + Número de linhas a inserir: + + + + Delete rows + Excluir linha + + + + You're about to delete newly inserted rows that are not committed yet. Row numbers: %1 +Such deletion will be permanent. Are you sure you want to delete them? + Você está prestes a excluir linhas recém-inseridas que ainda não foram confirmadas. Números da linha: %1 +Essa exclusão será permanente. Tem certeza que deseja excluí-la? + + + SqlQueryView - - Go to referenced row in... - + + Go to referenced row in... + Ir para a linha referenciada em... + + + + Copy + Copiar + + + + Copy with headers + Copiar com cabeçalhos + + + + Copy as... + Copiar como... + + + + Paste + Colar + + + + Paste as... + Colar como... + + + + Set NULL values + Definir valores NULL + + + + Erase values + Apagar valores + + + + Commit + Commit - - Copy - + + Rollback + Rollback - - Copy as... - + + Commit selected cells + Submeter células selecionadas - - Paste - + + Rollback selected cells + Restaurar células selecionadas - - Paste as... - + + Edit current cell inline + Editar célula atual - - Set NULL values - + + Define columns to sort by + Definir colunas para classificar por - - Erase values - + + Remove custom sorting + Remover classificação personalizada - - Edit value in editor - + + Insert row + Inserir linha - - Commit - + + Insert multiple rows + Inserir múltiplas linhas - - Copy with headers - + + Delete selected row + Excluir linha selecionada - - Rollback - + + Adjust height of rows + Ajustar altura das linhas - - Commit selected cells - + + Increase font size + data view + Aumentar o tamanho da fonte - - Rollback selected cells - + + Decrease font size + data view + Diminuir o tamanho da fonte - - Define columns to sort by - + + Invert selection + data view + Inverter seleção - - Remove custom sorting - + + Edit value in editor + Editar valor no editor - - Insert row - + + Show value in a viewer + Mostrar valor em um visualizador - - Insert multiple rows - + + Generate query for selected cells + Gerar consulta para células selecionadas - - Delete selected row - + + No items selected to paste clipboard contents to. + Nenhum item selecionado para colar conteúdo da área de transferência. - - Show value in a viewer - + + Cannot paste data. Details: %1 + Não é possível colar dados. Detalhes: %1 - - Generate query for selected cells - + + Structure of at least one table used has changed since last data was loaded. Reload the data to proceed. + A estrutura de pelo menos uma tabela usada mudou desde a última data foi carregada. Recarregue os dados para prosseguir. - - No items selected to paste clipboard contents to. - + + Cannot paste to a cell. Details: %1 + Não é possível colar para uma célula. Detalhes: %1 - - Go to referenced row in table '%1' - + + The row is marked for deletion. + A linha está marcada para exclusão. - - table '%1' - + + Cannot paste to column %1. Details: %2 + Não é possível colar na coluna %1. Detalhes: %2 - - Referenced row (%1) - + + Go to referenced row in table '%1' + Ir para a linha referenciada na tabela '%1' - - Trim pasted text? - + + table '%1' + tabela '%1' - - The pasted text contains leading or trailing white space. Trim it automatically? - + + Referenced row (%1) + Linha referenciada (%1) - - Edit value - + + Trim pasted text? + Aparar texto colado? - - + + + The pasted text contains leading or trailing white space. Trim it automatically? + O texto colado contém espaço branco à esquerda ou à direita. Aparar automaticamente? + + + + Paste "NULL" as null value? + Colar "NULO" como valor nulo? + + + + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + O texto colado contém "NULL" literais. Deseja considerá-los como valores NULL? + + + + Edit value + Editar valor + + + SqlTableModel - - Error while committing new row: %1 - + + Error while committing new row: %1 + Erro ao confirmar nova linha: %1 - - Error while deleting row from table %1: %2 - + + Error while deleting row from table %1: %2 + Erro ao excluir linha da tabela %1: %2 - - + + SqliteExtensionEditor - - Filter extensions - + + Filter extensions + Filtrar extensões - - Leave empty to use default function - + + Leave empty to use default function + Deixe em branco para usar a função padrão - - Extension file - + + Extension file + Arquivo de extensão - - Initialization function - + + Initialization function + Função de inicialização - - Databases - + + Databases + Banco de dados - - Register in all databases - + + Register in all databases + Registrar em todos os bancos de dados - - Register in following databases: - + + Register in following databases: + Registrar nos seguintes bancos de dados: - - Extension manager window has uncommitted modifications. - + + Extension manager window has uncommitted modifications. + A janela do gerenciador de extensões tem modificações não realizadas. - - Extension manager - + + Extension manager + Gerenciador de extensões - - Commit all extension changes - + + Commit all extension changes + Enviar todas as alterações de extensão - - Rollback all extension changes - + + Rollback all extension changes + Restaurar todas as alterações de extensão - - Add new extension - + + Add new extension + Adicionar nova extensão - - Remove selected extension - + + Remove selected extension + Remover extensão selecionada - - Editing extensions manual - + + Editing extensions manual + Edição manual de extensões - - File with given path does not exist or is not readable. - + + File with given path does not exist or is not readable. + O arquivo com o caminho informado não existe ou não é legível. - - Unable to load extension: %1 - + + Unable to load extension: %1 + Não foi possível carregar a extensão: %1 - - Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. - + + Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. + Nome de função de inicialização inválido. Nome de função só pode conter caracteres alfa-numéricos e sublinhado. - - Dynamic link libraries (*.dll);;All files (*) - + + Dynamic link libraries (*.dll);;All files (*) + Bibliotecas dinâmicas de links (*.dll);;Todos os arquivos (*) - - Shared objects (*.so);;All files (*) - + + Shared objects (*.so);;All files (*) + Objetos compartilhados (*.so);;Todos os arquivos (*) - - Dynamic libraries (*.dylib);;All files (*) - + + Dynamic libraries (*.dylib);;All files (*) + Bibliotecas dinâmicas (*.dylib);;Todos os arquivos (*) - - All files (*) - + + All files (*) + Todos os arquivos (*) - - Open file - + + Open file + Abrir arquivo - - + + StatusField - - Status - + + Status + Status - - Copy - + + Copy + Copiar - - Clear - + + Clear + Limpar - - + + TableConstraintsModel - - Type - table constraints - + + Type + table constraints + Tipo - - Details - table constraints - + + Details + table constraints + Detalhes - - Name - table constraints - + + Name + table constraints + Nome - - + + TableForeignKeyPanel - - Foreign table: - - - - - SQLite 2 does not support foreign keys officially, -but it's okay to use them anyway. - + + Foreign table: + Tabela externa: - - Columns - + + Columns + Colunas - - Local column - + + Local column + Coluna local - - Foreign column - + + Foreign column + Foreign column - - Reactions - + + Reactions + Reações - - Deferred foreign key - + + Deferred foreign key + Chave estrangeira diferida - - Named constraint - + + Named constraint + Restrição nomeada - - Constraint name - + + Constraint name + Nome da restrição - - Pick the foreign column. - + + Pick the foreign column. + Selecione a coluna estrangeira. - - Pick the foreign table. - + + Pick the foreign table. + Pegue a tabela externa. - - Select at least one foreign column. - + + Select at least one foreign column. + Selecione pelo menos uma coluna estrangeira. - - Enter a name of the constraint. - + + Enter a name of the constraint. + Digite um nome da constraint. - - Foreign column - table constraints - + + Foreign column + table constraints + Coluna estrangeira - - + + TablePrimaryKeyAndUniquePanel - - Columns - + + Columns + Colunas - - Column - + + Column + Coluna - - Collation - + + Collation + Collation - - Sort - + + Sort + Ordenar - - Valid only for a single column with INTEGER data type - + + Valid only for a single column with INTEGER data type + Válido somente para uma única coluna com tipo de dados INTEGER - - Autoincrement - + + Autoincrement + Auto-incremento - - Named constraint - + + Named constraint + Restrição nomeada - - Constraint name - + + Constraint name + Nome da constraint - - On conflict - + + On conflict + Conflito - - Collate - table constraints - + + Collate + table constraints + Collate - - Sort order - table constraints - + + Sort order + table constraints + Ordem de classificação - - Select at least one column. - + + Select at least one column. + Selecione pelo menos uma coluna. - - Enter a name of the constraint. - + + Enter a name of the constraint. + Digite um nome da restrição - - + + TableStructureModel - - Name - table structure columns - + + Name + table structure columns + Nome - - Data type - table structure columns - + + Data type + table structure columns + Tipo de dado - - Primary + + Primary Key - table structure columns - + table structure columns + Primary Key - - Foreign + + Foreign Key - table structure columns - + table structure columns + Foreign +Key - - Unique - table structure columns - + + Unique + table structure columns + Unique - - Check - table structure columns - + + Check + table structure columns + Verificar - - Not + + Not NULL - table structure columns - + table structure columns + Not NULL - - Collate - table structure columns - + + Collate + table structure columns + Collate - - Default value - table structure columns - + + Generated + table structure columns + Gerado - - + + + Default value + table structure columns + Valor padrão + + + TableWindow - - Structure - + + Structure + Estrutura + + + + Table name: + Nome da tabela: - - Table name: - + + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + <html><head/><body><p>Enables/disabled a cláusula SEM ROWID na tabela. Tal tabela não terá mais o &quot;rowid&quot; coluna oculta. Para tal tabela, uma coluna explícita PRIMARY KEY é obrigatória. Você pode ler mais detalhes sobre isso na documentação oficial do SQLite.</p></body></html> - - - Data - + + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + <html><head/><body><p>Enables/desabilita a cláusula STRICT para a tabela. Tal tabela faz uma verificação rigorosa dos dados armazenados em colunas contra tipos de dados declarados para essas colunas. Isto é semelhante à forma como os tipos de dados geralmente são aplicados na maioria dos outros motores de banco de dados. Mantenha-o desabilitado para usar o comportamento clássico de SQLite (i. . nenhuma aplicação do tipo de dados). Você pode encontrar mais detalhes na documentação oficial de SQLite.</p></body></html> - - Constraints - + + + Data + Dados - - Indexes - + + Constraints + Constraints - - Triggers - + + Indexes + Índices - - DDL - + + Triggers + Triggers - - Export table - table window - + + DDL + DDL - - Import data to table - table window - + + Export table + table window + Exportar a tabela - - Populate table - table window - + + Import data to table + table window + Importar para a tabela - - Refresh structure - table window - + + Populate table + table window + Preencher a tabela - - Commit structure changes - table window - + + Refresh structure + table window + Atualizar estrutura - - Rollback structure changes - table window - + + Commit structure changes + table window + Confirmar alterações de estrutura - - Add column - table window - + + Rollback structure changes + table window + Restaurar alterações de estrutura - - Edit column - table window - + + Add column + table window + Adicionar coluna - - - Delete column - table window - + + Edit column + table window + Editar coluna - - Move column up - table window - + + + Delete column + table window + Excluir coluna - - Move column down - table window - + + Move column up + table window + Mover a coluna para cima - - Create similar table - table window - + + Move column down + table window + Mover a coluna para baixo - - Reset autoincrement value - table window - + + Create similar table + table window + Criar tabela semelhante - - Add table constraint - table window - + + Reset autoincrement value + table window + Redefinir valor de auto-incremento - - Edit table constraint - table window - + + Add table constraint + table window + Adicionar restrição de tabela - - Delete table constraint - table window - + + Edit table constraint + table window + Editar restrição de tabela - - Move table constraint up - table window - + + Delete table constraint + table window + Apagar restrição de tabela - - Move table constraint down - table window - + + Move table constraint up + table window + Mover restrição de tabela para cima - - Add table primary key - table window - + + Move table constraint down + table window + Mover restrição de tabela para baixo - - Add table foreign key - table window - + + Add table primary key + table window + Adicionar chave primária da tabela - - Add table unique constraint - table window - + + Add table foreign key + table window + Adicionar chave estrangeira de tabela - - Add table check constraint - table window - + + Add table unique constraint + table window + Adicionar restrição de unicidade de tabela - - Refresh index list - table window - + + Add table check constraint + table window + Adicionar uma check constraint - - Create index - table window - + + Refresh index list + table window + Atualizar lista de índices - - Edit index - table window - + + + Create index + table window + Criar índice - - Delete index - table window - + + Edit index + table window + Editar índice - - Refresh trigger list - table window - + + Delete index + table window + Excluir índice - - Create trigger - table window - + + Refresh trigger list + table window + Atualizar lista de disparos - - Edit trigger - table window - + + + Create trigger + table window + Criar gatilho - - Delete trigger - table window - + + Edit trigger + table window + Editar gatilho - - Are you sure you want to delete column '%1'? - table window - + + Delete trigger + table window + Excluir gatilho - - Following problems will take place while modifying the table. + + Are you sure you want to delete column '%1'? + table window + Tem certeza que deseja excluir a coluna '%1'? + + + + Following problems will take place while modifying the table. Would you like to proceed? - table window - + table window + Os seguintes problemas ocorrerão durante a modificação da tabela. +Gostaria de continuar? - - Table modification - table window - + + Table modification + table window + Modificação da tabela - - Could not load data for table %1. Error details: %2 - + + Could not load data for table %1. Error details: %2 + Não foi possível carregar os dados da tabela %1. Detalhes do erro: %2 - - Could not process the %1 table correctly. Unable to open a table window. - + + Could not process the %1 table correctly. Unable to open a table window. + Não foi possível processar a tabela %1 corretamente. Não foi possível abrir uma janela da tabela. - - Could not restore window %1, because no database or table was stored in session for this window. - + + Database + Banco de dados - - Could not restore window '%1', because no database or table was stored in session for this window. - + + Could not restore window %1, because no database or table was stored in session for this window. + Não foi possível restaurar a janela %1, porque nenhum banco de dados ou tabela foi armazenada na sessão desta janela. - - Could not restore window '%1', because database %2 could not be resolved. - + + Could not restore window '%1', because no database or table was stored in session for this window. + Não foi possível restaurar a janela '%1', porque nenhum banco de dados ou tabela foi armazenada na sessão desta janela. - - Could not restore window '%1'', because the table %2 doesn't exist in the database %3. - + + Could not restore window '%1', because database %2 could not be resolved. + Não foi possível restaurar a janela '%1', porque o banco de dados %2 não pôde ser resolvido. - - - New table %1 - + + Could not restore window '%1', because the table %2 doesn't exist in the database %3. + Não foi possível restaurar a janela %1'', porque a tabela %2 não existe no banco de dados %3. - - Committed changes for table '%1' successfully. - + + + New table %1 + Nova tabela %1 - - Committed changes for table '%1' (named before '%2') successfully. - + + Committed changes for table '%1' successfully. + Alterações comprometidas para a tabela '%1' com sucesso. - - Autoincrement value for table '%1' has been reset successfully. - + + Committed changes for table '%1' (named before '%2') successfully. + Alterações comprometidas para a tabela '%1' (nomeado antes '%2') com sucesso. - - Uncommitted changes - + + Could not commit table structure. Error message: %1 + table window + Não foi possível criar a estrutura da tabela. Mensagem de erro: %1 - - There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. -Do you want to commit the structure, or do you want to go back to the structure tab? - + + Reset autoincrement + Redefinir auto-incremento - - Table window "%1" has uncommitted structure modifications and data. - + + Are you sure you want to reset autoincrement value for table '%1'? + Tem certeza de que deseja redefinir o valor de auto-incremento para a tabela '%1'? - - Table window "%1" has uncommitted data. - + + An error occurred while trying to reset autoincrement value for table '%1': %2 + Ocorreu um erro ao tentar redefinir o valor de auto-incremento da tabela '%1': %2 - - Table window "%1" has uncommitted structure modifications. - + + Autoincrement value for table '%1' has been reset successfully. + O valor do auto-incremento para a tabela '%1' foi redefinido com sucesso. - - Could not commit table structure. Error message: %1 - table window - + + Empty name + Nome vazio - - Reset autoincrement - + + A blank name for the table is allowed in SQLite, but it is not recommended. +Are you sure you want to create a table with blank name? + Um nome em branco para a tabela é permitido no SQLite, mas não é recomendado. +Tem certeza de que deseja criar uma tabela com nome em branco? - - Are you sure you want to reset autoincrement value for table '%1'? - + + Cannot create a table without at least one column. + Não é possível criar uma tabela sem pelo menos uma coluna. - - An error occurred while trying to reset autoincrement value for table '%1': %2 - + + Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. + Não é possível criar tabela %1, se não tem chave primária definida. Desmarque a chave %2ou defina uma chave primária. - - Empty name - + + Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. + Não é possível usar o autoincremento para a chave primária quando a cláusula %1 é usada. Desmarque o %2, ou o autoincremento em uma chave primária. - - A blank name for the table is allowed in SQLite, but it is not recommended. -Are you sure you want to create a table with blank name? - + + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 + As seguintes colunas têm um tipo de dado não estrito: %1. Ou desative o modo rigoroso da tabela, ou corrija tipos de dados de colunas. Tipos de dados válidos estritos são: %2 + + + + Are you sure you want to delete table constraint '%1'? + table window + Tem certeza que deseja excluir a restrição de tabela '%1'? - - Cannot create a table without at least one column. - + + Delete constraint + table window + Apagar restrição - - Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. - + + Cannot export, because no export plugin is loaded. + Não é possível exportar, porque nenhum plugin de exportação está carregado. - - Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. - + + Cannot import, because no import plugin is loaded. + Não é possível importar porque nenhum plugin de importação está carregado. - - Are you sure you want to delete table constraint '%1'? - table window - + + Uncommitted changes + Alterações não realizadas - - Delete constraint - table window - + + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + Há modificações de estrutura não autorizadas. Você não pode navegar ou editar dados até que sua estrutura de tabela seja estabelecida. +Você deseja comprometer a estrutura, ou deseja voltar para a guia estrutura? + + + + Go back to structure tab + Voltar à aba de estrutura - - Cannot export, because no export plugin is loaded. - + + Commit modifications and browse data. + Conclua modificações e navegue dados. - - Cannot import, because no import plugin is loaded. - + + Name + table window indexes + Nome - - Go back to structure tab - + + Unique + table window indexes + Unique - - Commit modifications and browse data. - + + Columns + table window indexes + Colunas - - Name - table window indexes - + + Partial index condition + table window indexes + Condição do índice parcial - - Unique - table window indexes - + + Name + table window triggers + Nome - - Columns - table window indexes - + + Event + table window triggers + Evento - - Partial index condition - table window indexes - + + Condition + table window triggers + Condição - - Name - table window triggers - + + Details + table window triggers + Detalhes - - Event - table window triggers - + + Table window "%1" has uncommitted structure modifications and data. + Janela de tabela "%1" possui dados e modificações de estrutura não autorizadas. - - Condition - table window triggers - + + Table window "%1" has uncommitted data. + Janela de tabela "%1" tem dados não confirmados. - - Details - table window triggers - + + Table window "%1" has uncommitted structure modifications. + Janela de tabela "%1" tem modificações de estrutura não autorizadas. - - + + TriggerColumnsDialog - - Trigger columns - + + Trigger columns + Colunas de disparo - - Triggering columns: - + + Triggering columns: + Disparar colunas: - - Select all - + + Select all + Selecionar tudo - - Deselect all - + + Deselect all + Desmarcar tudo - - + + TriggerDialog - - - Trigger - + + + Trigger + Trigger - - On table: - + + On table: + Na tabela: - - Action: - + + Action: + Ação: - - - <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> - + + + <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> + <p>A condição de SQL será avaliada antes do atual código de ativação. Caso a condição retorne falso, o gatilho não será disparado por essa linha.</p> - - Pre-condition: - + + Pre-condition: + Pré-condição: - - The scope is still not fully supported by the SQLite database. - + + The scope is still not fully supported by the SQLite database. + O âmbito ainda não é totalmente suportado pelo banco de dados SQLite. - - Trigger name: - + + Trigger name: + Nome do gatilho: - - When: - + + When: + Quando: - - List of columns for UPDATE OF action. - + + List of columns for UPDATE OF action. + Lista de colunas para ATUALIZAR A ação. - - Scope: - + + Scope: + Escopo: - - Code: - + + Code: + Código: - - Trigger statements to be executed. - + + Trigger statements to be executed. + Instruções de disparo a serem executadas. - - DDL - + + DDL + DDL - - On view: - + + On view: + Na visualização: - - Could not process trigger %1 correctly. Unable to open a trigger dialog. - + + Could not process trigger %1 correctly. Unable to open a trigger dialog. + Não foi possível processar o gatilho %1 corretamente. Não foi possível abrir um diálogo de gatilho. - - Enter a valid condition. - + + Enter a valid condition. + Informe uma condição válida. - - Enter a valid trigger code. - + + Enter a valid trigger code. + Digite um código acionador válido. - - Error - trigger dialog - + + Error + trigger dialog + Erro - - An error occurred while executing SQL statements: + + An error occurred while executing SQL statements: %1 - + Ocorreu um erro ao executar instruções SQL: +%1 - - + + VersionConvertSummaryDialog - - Database version convert - + + Database version convert + Conversão do banco de dados - - Following changes to the SQL statements will be made: - + + Following changes to the SQL statements will be made: + As seguintes mudanças para as instruções SQL serão feitas: - - Before - + + Before + Antes - - After - + + After + Depois - - + + ViewWindow - - Query - + + Query + Consulta + + + + View name: + Ver nome: + + + + Output column names + Nomes das colunas de saída - - View name: - + + + Data + Dado - - Output column names - + + Triggers + Triggers - - - Data - + + DDL + DDL - - Triggers - + + + Could not restore window '%1', because no database or view was stored in session for this window. + Não foi possível restaurar a janela '%1', porque nenhum banco de dados ou visualização foi armazenado na sessão desta janela. - - DDL - + + Could not restore window '%1', because database %2 could not be resolved. + Não foi possível restaurar a janela '%1', porque o banco de dados %2 não pôde ser resolvido. - - - Could not restore window '%1', because no database or view was stored in session for this window. - + + Could not restore window '%1', because database %2 could not be open. + Não foi possível restaurar a janela '%1', porque o banco de dados %2 não pôde estar aberto. - - Could not restore window '%1', because database %2 could not be resolved. - + + Could not restore window '%1', because the view %2 doesn't exist in the database %3. + Não foi possível restaurar a janela '%1', porque a visualização %2't existe no banco de dados %3. - - Could not restore window '%1', because database %2 could not be open. - + + + New view %1 + Nova visualização %1 - - Could not restore window '%1', because the view %2 doesn't exist in the database %3. - + + Database + Banco de dados - - - New view %1 - + + Refresh the view + view window + Atualizar a visualização - - Refresh the view - view window - + + Commit the view changes + view window + Faça commit da alteração. - - Commit the view changes - view window - + + Rollback the view changes + view window + Restaurar as alterações de exibição - - Rollback the view changes - view window - + + Explicit column names + Nomes de coluna explícitas - - Explicit column names - + + Generate output column names automatically basing on result columns of the view. + Gerar nomes de colunas de saída baseando-se automaticamente em colunas de resultado da exibição. - - Generate output column names automatically basing on result columns of the view. - + + Add column + view window + Adicionar coluna - - Add column - view window - + + Edit column + view window + Editar coluna - - Edit column - view window - + + Delete column + view window + Excluir coluna - - Delete column - view window - + + Move column up + view window + Mover a coluna para cima - - Move column up - view window - + + Move column down + view window + Mover a coluna para baixo - - Move column down - view window - + + Refresh trigger list + view window + Atualizar lista de disparos - - Refresh trigger list - view window - + + Create new trigger + view window + Criar novo gatilho - - Create new trigger - view window - + + Edit selected trigger + view window + Editar gatilho selecionado - - Edit selected trigger - view window - + + Delete selected trigger + view window + Excluir gatilho selecionado - - Delete selected trigger - view window - + + View window "%1" has uncommitted structure modifications and data. + Exibir janela "%1" possui dados e modificações de estrutura não autorizadas. - - View window "%1" has uncommitted structure modifications and data. - + + View window "%1" has uncommitted data. + Ver janela "%1" possui dados não confirmados. - - View window "%1" has uncommitted data. - + + View window "%1" has uncommitted structure modifications. + Exibir janela "%1" tem modificações de estrutura não autorizadas. - - View window "%1" has uncommitted structure modifications. - + + Could not load data for view %1. Error details: %2 + Não foi possível carregar os dados para a visualização %1. Detalhes do erro: %2 - - Uncommitted changes - + + Uncommitted changes + Alterações não realizadas - - There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. + + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. Do you want to commit the structure, or do you want to go back to the structure tab? - + Há modificações de estrutura não autorizadas. Você não pode navegar ou editar dados até que tenha a estrutura da visualização configurada. +Você deseja comprometer a estrutura, ou deseja voltar para a guia estrutura? - - Committed changes for view '%1' successfully. - + + Go back to structure tab + Voltar à aba de estrutura - - Committed changes for view '%1' (named before '%2') successfully. - + + Commit modifications and browse data. + Modificações e buscas por dados. - - Could not load data for view %1. Error details: %2 - + + View '%1' was committed successfully. + A visualização '%1' foi confirmada com sucesso. - - Go back to structure tab - + + Committed changes for view '%1' successfully. + Alterações comprometidas para visualização '%1' com sucesso. - - Commit modifications and browse data. - + + Committed changes for view '%1' (named before '%2') successfully. + Alterações comprometidas para visualização '%1' (nomeado antes '%2') com sucesso. - - Could not commit view changes. Error message: %1 - view window - + + Could not commit view changes. Error message: %1 + view window + Não foi possível enviar alterações de visualização. Mensagem de erro: %1 - - Override columns - + + Override columns + Substituir colunas - - Currently defined columns will be overriden. Do you want to continue? - + + Currently defined columns will be overriden. Do you want to continue? + Colunas atualmente definidas serão substituídas. Deseja continuar? - - Could not determinate columns returned from the view. The query is problably incomplete or contains errors. - + + Could not determinate columns returned from the view. The query is problably incomplete or contains errors. + Não foi possível determinar as colunas retornadas da visualização. A consulta está provavelmente incompleta ou contém erros. - - Name - view window triggers - + + Name + view window triggers + Nome - - Instead of - view window triggers - + + Instead of + view window triggers + Em vez de - - Condition - view window triggers - + + Condition + view window triggers + Condição - - Details - table window triggers - + + Details + table window triggers + Detalhes - - Could not process the %1 view correctly. Unable to open a view window. - + + Could not process the %1 view correctly. Unable to open a view window. + Não foi possível processar a visualização de %1 corretamente. Não é possível abrir uma janela de visualização. - - Empty name - + + Empty name + Nome vazio - - A blank name for the view is allowed in SQLite, but it is not recommended. + + A blank name for the view is allowed in SQLite, but it is not recommended. Are you sure you want to create a view with blank name? - + Um nome em branco para a visualização é permitido no SQLite, mas não é recomendado. +Tem certeza de que deseja criar uma view com nome em branco? - - The SELECT statement could not be parsed. Please correct the query and retry. + + The SELECT statement could not be parsed. Please correct the query and retry. Details: %1 - + A declaração SELECT não pôde ser analisada. Por favor, corrija a consulta e tente novamente. +Detalhes: %1 - - The view could not be modified due to internal SQLiteStudio error. Please report this! - + + The view could not be modified due to internal SQLiteStudio error. Please report this! + A vista não pôde ser modificada devido a um erro interno do SQLiteStudio. Por favor reporte isto! - - The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. - + + The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. + A visualização do código não pôde ser analisada corretamente para execução. Este é um bug SQLiteStudio's. Por favor, reporte-o. - - Following problems will take place while modifying the view. + + Following problems will take place while modifying the view. Would you like to proceed? - view window - + view window + Os seguintes problemas ocorrerão durante a modificação da exibição. +Gostaria de continuar? - - View modification - view window - + + View modification + view window + Visualizar modificação - - + + WidgetCover - - Interrupt - + + Interrupt + Interromper - + diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_pt_PT.ts b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_pt_PT.ts new file mode 100644 index 0000000..52ac9cc --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_pt_PT.ts @@ -0,0 +1,7111 @@ + + + + + AboutDialog + + + About SQLiteStudio and licenses + About SQLiteStudio and licenses + + + + About + About + + + + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + + + + Licenses + Licenses + + + + Environment + Environment + + + + Icon directories + Icon directories + + + + Form directories + Form directories + + + + SQLite extension directories + SQLite extension directories + + + + Plugin directories + Plugin directories + + + + Configuration directory + Configuration directory + + + + Application directory + Application directory + + + + Qt version: + Qt version: + + + + SQLite 3 version: + SQLite 3 version: + + + + Portable distribution. + Portable distribution. + + + + MacOS X application bundle distribution. + MacOS X application bundle distribution. + + + + Operating system managed distribution. + Operating system managed distribution. + + + + <h3>Table of contents:</h3><ol>%2</ol> + <h3>Table of contents:</h3><ol>%2</ol> + + + + BindParamsDialog + + + Query parameters + Query parameters + + + + Please provide values for query parameters + Please provide values for query parameters + + + + CodeSnippetEditor + + + Filter snippets + Filter snippets + + + + + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + + + + + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + + + + Snippet name + Snippet name + + + + Code assistant shortcut + Code assistant shortcut + + + + Snippet code + Snippet code + + + + Code Snippets editor window has uncommitted modifications. + Code Snippets editor window has uncommitted modifications. + + + + Code Snippets editor + Code Snippets editor + + + + Commit all snippet changes + Commit all snippet changes + + + + Rollback all snippet changes + Rollback all snippet changes + + + + Create new snippet + Create new snippet + + + + Delete selected snippet + Delete selected snippet + + + + Move the snippet up + Move the snippet up + + + + Move the snippet down + Move the snippet down + + + + Code snippets manual + Code snippets manual + + + + Enter a non-empty, unique name of the snippet. + Enter a non-empty, unique name of the snippet. + + + + Enter a non-empty snippet content. + Enter a non-empty snippet content. + + + + This hotkey is not unique in context of a code assistant. + This hotkey is not unique in context of a code assistant. + + + + CollationsEditor + + + Filter collations + Filter collations + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Implementation code: + Implementation code: + + + + Collation name: + Collation name: + + + + Implementation language: + Implementation language: + + + + Collations editor + Collations editor + + + + Commit all collation changes + Commit all collation changes + + + + Rollback all collation changes + Rollback all collation changes + + + + Create new collation + Create new collation + + + + Delete selected collation + Delete selected collation + + + + Editing collations manual + Editing collations manual + + + + Enter a non-empty, unique name of the collation. + Enter a non-empty, unique name of the collation. + + + + Pick the implementation language. + Pick the implementation language. + + + + Enter a non-empty implementation code. + Enter a non-empty implementation code. + + + + Collations editor window has uncommitted modifications. + Collations editor window has uncommitted modifications. + + + + ColorButton + + + Pick a color + Pick a color + + + + ColumnCollatePanel + + + Collation name: + Collation name: + + + + Named constraint: + Named constraint: + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + Enter a collation name. + Enter a collation name. + + + + ColumnDefaultPanel + + + Default value: + Default value: + + + + Named constraint: + Named constraint: + + + + Enter a default value expression. + Enter a default value expression. + + + + Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. + Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. + + + + Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. + Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ColumnDialog + + + Column + Column + + + + Name and type + Name and type + + + + Scale + Scale + + + + Precision + Precision + + + + Data type: + Data type: + + + + Column name: + Column name: + + + + Size: + Size: + + + + Constraints + Constraints + + + + Generated value + Generated value + + + + Unique + Unique + + + + + + + + + + + Configure + Configure + + + + Foreign Key + Foreign Key + + + + Collate + Collate + + + + Not NULL + Not NULL + + + + Check condition + Check condition + + + + Primary Key + Primary Key + + + + Default + Default + + + + Advanced mode + Advanced mode + + + + Add constraint + column dialog + Add constraint + + + + Edit constraint + column dialog + Edit constraint + + + + + Delete constraint + column dialog + Delete constraint + + + + Move constraint up + column dialog + Move constraint up + + + + Move constraint down + column dialog + Move constraint down + + + + Add a primary key + column dialog + Add a primary key + + + + Add a foreign key + column dialog + Add a foreign key + + + + Add an unique constraint + column dialog + Add an unique constraint + + + + Add a check constraint + column dialog + Add a check constraint + + + + Add a not null constraint + column dialog + Add a not null constraint + + + + Add a collate constraint + column dialog + Add a collate constraint + + + + Add a generated value constraint + column dialog + Add a generated value constraint + + + + Add a default constraint + column dialog + Add a default constraint + + + + Are you sure you want to delete constraint '%1'? + column dialog + Are you sure you want to delete constraint '%1'? + + + + Correct the constraint's configuration. + Correct the constraint's configuration. + + + + Scale is not allowed for INTEGER PRIMARY KEY columns. + Scale is not allowed for INTEGER PRIMARY KEY columns. + + + + Precision cannot be defined without the scale. + Precision cannot be defined without the scale. + + + + Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. + Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. + + + + INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. + INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. + + + + Precision is not allowed for INTEGER PRIMARY KEY columns. + Precision is not allowed for INTEGER PRIMARY KEY columns. + + + + Could not match valid STRICT table datatype from declared type: %1. + Could not match valid STRICT table datatype from declared type: %1. + + + + ColumnDialogConstraintsModel + + + Type + column dialog constraints + Type + + + + Name + column dialog constraints + Name + + + + Details + column dialog constraints + Details + + + + ColumnForeignKeyPanel + + + Foreign table: + Foreign table: + + + + Foreign column: + Foreign column: + + + + Reactions + Reactions + + + + Deferred foreign key + Deferred foreign key + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + Pick the foreign table. + Pick the foreign table. + + + + Pick the foreign column. + Pick the foreign column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ColumnGeneratedPanel + + + Generating code: + Generating code: + + + + Explicit type: + Explicit type: + + + + Use "GENERATED ALWAYS" keywords + Use "GENERATED ALWAYS" keywords + + + + Named constraint: + Named constraint: + + + + Enter the column value generating expression. + Enter the column value generating expression. + + + + Invalid value generating expression: %1. + Invalid value generating expression: %1. + + + + Invalid value generating expression. + Invalid value generating expression. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ColumnPrimaryKeyPanel + + + Autoincrement + Autoincrement + + + + Sort order: + Sort order: + + + + Named constraint: + Named constraint: + + + + On conflict: + On conflict: + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + Descending order is not allowed with AUTOINCREMENT. + Descending order is not allowed with AUTOINCREMENT. + + + + ColumnUniqueAndNotNullPanel + + + Named constraint: + Named constraint: + + + + On conflict: + On conflict: + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + CompleterWindow + + + Column: %1 + completer statusbar + Column: %1 + + + + Table: %1 + completer statusbar + Table: %1 + + + + Index: %1 + completer statusbar + Index: %1 + + + + Trigger: %1 + completer statusbar + Trigger: %1 + + + + View: %1 + completer statusbar + View: %1 + + + + Database: %1 + completer statusbar + Database: %1 + + + + Keyword: %1 + completer statusbar + Keyword: %1 + + + + Function: %1 + completer statusbar + Function: %1 + + + + Operator: %1 + completer statusbar + Operator: %1 + + + + String + completer statusbar + String + + + + Number + completer statusbar + Number + + + + Binary data + completer statusbar + Binary data + + + + Collation: %1 + completer statusbar + Collation: %1 + + + + Pragma function: %1 + completer statusbar + Pragma function: %1 + + + + Insert a code snippet + Insert a code snippet + + + + ConfigDialog + + + + Configuration + Configuration + + + + Search + Search + + + + General + General + + + + Keyboard shortcuts + Keyboard shortcuts + + + + Look & feel + Look & feel + + + + Style + Style + + + + Fonts + Fonts + + + + Code colors + Code colors + + + + + Database list + Database list + + + + Code assistant + Code assistant + + + + Data browsing + Data browsing + + + + Data editors + Data editors + + + + Plugins + Plugins + + + + Code formatters + Code formatters + + + + If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. + If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. + + + + Sort table columns alphabetically + Sort table columns alphabetically + + + + Expand tables node when connected to a database + Expand tables node when connected to a database + + + + <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> + <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> + + + + Display additional labels on the list + Display additional labels on the list + + + + For regular tables labels will show number of columns, indexes and triggers for each of tables. + For regular tables labels will show number of columns, indexes and triggers for each of tables. + + + + Display labels for regular tables + Display labels for regular tables + + + + Virtual tables will be marked with a 'virtual' label. + Virtual tables will be marked with a 'virtual' label. + + + + Display labels for virtual tables + Display labels for virtual tables + + + + Expand views node when connected to a database + Expand views node when connected to a database + + + + If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) + If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) + + + + Sort objects (tables, indexes, triggers and views) alphabetically + Sort objects (tables, indexes, triggers and views) alphabetically + + + + Display system tables and indexes on the list + Display system tables and indexes on the list + + + + Database dialog window + Database dialog window + + + + <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> + <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> + + + + Do not mark database to be "permanent" by default + Do not mark database to be "permanent" by default + + + + <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> + <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> + + + + Try to bypass dialog completly when dropping database file onto the list + Try to bypass dialog completly when dropping database file onto the list + + + + Data browsing and editing + Data browsing and editing + + + + + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + + + + Number of memorized table populating configurations + Number of memorized table populating configurations + + + + Data column width + Data column width + + + + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + + + + Enlarge column when entering value longer than current width + Enlarge column when entering value longer than current width + + + + <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> + <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> + + + + Number of data rows per page: + Number of data rows per page: + + + + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> + + + + Show column and row details tooltip in data view + Show column and row details tooltip in data view + + + + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + + + + Keep NULL value when entering empty value + Keep NULL value when entering empty value + + + + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> + + + + Use DEFAULT value (if defined), when committing NULL value + Use DEFAULT value (if defined), when committing NULL value + + + + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + + + + Limit number of rows for in case of dozens of columns + Limit number of rows for in case of dozens of columns + + + + Inserting new row in data grid + Inserting new row in data grid + + + + Before currently selected row + Before currently selected row + + + + After currently selected row + After currently selected row + + + + At the end of data view + At the end of data view + + + + Table windows + Table windows + + + + <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> + <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> + + + + Open Table Windows with the data tab for start + Open Table Windows with the data tab for start + + + + <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> + <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> + + + + Place data tab as first tab in a Table Window + Place data tab as first tab in a Table Window + + + + View windows + View windows + + + + <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> + <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> + + + + Open View Windows with the data tab for start + Open View Windows with the data tab for start + + + + <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> + <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> + + + + Place data tab as first tab in a View Window + Place data tab as first tab in a View Window + + + + Data types + Data types + + + + Available editors: + Available editors: + + + + Editors selected for this data type: + Editors selected for this data type: + + + + Schema editing + Schema editing + + + + Number of DDL changes kept in history. + Number of DDL changes kept in history. + + + + DDL history size: + DDL history size: + + + + Don't show DDL preview dialog when committing schema changes + Don't show DDL preview dialog when committing schema changes + + + + SQL queries + SQL queries + + + + + Number of queries kept in the history. + Number of queries kept in the history. + + + + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> + + + + History size: + History size: + + + + + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> + + + + Execute only the query under the cursor + Execute only the query under the cursor + + + + Number of memorized query parameters + Number of memorized query parameters + + + + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + + + + Use scientific notation for real numbers in the grid view + Use scientific notation for real numbers in the grid view + + + + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + + + + Limit automatic data column width to (in pixels): + Limit automatic data column width to (in pixels): + + + + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + + + + Keep at least the width to show complete column name + Keep at least the width to show complete column name + + + + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + + + + Wrap lines in SQL editor + Wrap lines in SQL editor + + + + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + + + + Highlight current query + Highlight current query + + + + Updates + Updates + + + + Automatically check for updates at startup + Automatically check for updates at startup + + + + Session + Session + + + + Restore last session (active MDI windows) after startup + Restore last session (active MDI windows) after startup + + + + Allow multiple instances of the application at the same time + Allow multiple instances of the application at the same time + + + + Status Field + Status Field + + + + <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> + <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> + + + + Always open Status panel when new message is printed + Always open Status panel when new message is printed + + + + Code syntax colors + Code syntax colors + + + + Keyword foreground + Keyword foreground + + + + Regular foreground + Regular foreground + + + + String foreground + String foreground + + + + Comment foreground + Comment foreground + + + + Valid objects foreground + Valid objects foreground + + + + Current query background + Current query background + + + + Bind parameter foreground + Bind parameter foreground + + + + Current line background + Current line background + + + + Matched parenthesis background + Matched parenthesis background + + + + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + + + + Number foreground + Number foreground + + + + BLOB value foreground + BLOB value foreground + + + + Matched parenthesis foreground + Matched parenthesis foreground + + + + Reset to defaults + Reset to defaults + + + + Filter shortcuts by name or key combination + Filter shortcuts by name or key combination + + + + Action + Action + + + + Key combination + Key combination + + + + + Language + Language + + + + Changing language requires application restart to take effect. + Changing language requires application restart to take effect. + + + + Compact layout + Compact layout + + + + <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> + <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> + + + + Use compact layout + Use compact layout + + + + Main window dock areas + Main window dock areas + + + + Left and right areas occupy corners + Left and right areas occupy corners + + + + Top and bottom areas occupy corners + Top and bottom areas occupy corners + + + + Hide built-in plugins + Hide built-in plugins + + + + Current style: + Current style: + + + + Preview + Preview + + + + Enabled + Enabled + + + + Disabled + Disabled + + + + Active formatter plugin + Active formatter plugin + + + + SQL editor font + SQL editor font + + + + Database list font + Database list font + + + + Database list additional label font + Database list additional label font + + + + Data view font + Data view font + + + + Status field font + Status field font + + + + Code assistant settings + Code assistant settings + + + + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + + + + Automatically trigger the assistant after a dot is typed after an object name + Automatically trigger the assistant after a dot is typed after an object name + + + + Description: + plugin details + Description: + + + + Category: + plugin details + Category: + + + + Version: + plugin details + Version: + + + + Author: + plugin details + Author: + + + + Internal name: + plugin details + Internal name: + + + + Dependencies: + plugin details + Dependencies: + + + + Conflicts: + plugin details + Conflicts: + + + + Plugin details + Plugin details + + + + Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. + Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. + + + + %1 (built-in) + plugins manager in configuration dialog + %1 (built-in) + + + + Details + Details + + + + No plugins in this category. + No plugins in this category. + + + + Add new data type + Add new data type + + + + Rename selected data type + Rename selected data type + + + + Delete selected data type + Delete selected data type + + + + Help for configuring data type editors + Help for configuring data type editors + + + + Clear hotkey for this action + Clear hotkey for this action + + + + Restore original hotkey for this action + Restore original hotkey for this action + + + + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + + + + ConstraintCheckPanel + + + The condition + The condition + + + + Named constraint: + Named constraint: + + + + On conflict + On conflict + + + + Enter a valid condition. + Enter a valid condition. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ConstraintDialog + + + New constraint + constraint dialog + New constraint + + + + Create + constraint dialog + Create + + + + Edit constraint + dialog window + Edit constraint + + + + Apply + constraint dialog + Apply + + + + Primary key + table constraints + Primary key + + + + Foreign key + table constraints + Foreign key + + + + Unique + table constraints + Unique + + + + Not NULL + table constraints + Not NULL + + + + Check + table constraints + Check + + + + Generated + table constraints + Generated + + + + Collate + table constraints + Collate + + + + Default + table constraints + Default + + + + ConstraintTabModel + + + Table + table constraints + Table + + + + Column (%1) + table constraints + Column (%1) + + + + Scope + table constraints + Scope + + + + Type + table constraints + Type + + + + Details + table constraints + Details + + + + Name + table constraints + Name + + + + CssDebugDialog + + + SQLiteStudio CSS console + SQLiteStudio CSS console + + + + DataView + + + Filter data + data view + Filter data + + + + Grid view + Grid view + + + + Form view + Form view + + + + Refresh table data + data view + Refresh table data + + + + First page + data view + First page + + + + Previous page + data view + Previous page + + + + Next page + data view + Next page + + + + Last page + data view + Last page + + + + Commit changes for selected cells + data view + Commit changes for selected cells + + + + Rollback changes for selected cells + data view + Rollback changes for selected cells + + + + Show grid view of results + data view + Show grid view of results + + + + Show form view of results + data view + Show form view of results + + + + Filter by text (if contains) + data view + Filter by text (if contains) + + + + Filter strictly by text (if equals) + data view + Filter strictly by text (if equals) + + + + Tabs on top + data view + Tabs on top + + + + Tabs at bottom + data view + Tabs at bottom + + + + Place new rows above selected row + data view + Place new rows above selected row + + + + Place new rows below selected row + data view + Place new rows below selected row + + + + Place new rows at the end of the data view + data view + Place new rows at the end of the data view + + + + Total number of rows is being counted. +Browsing other pages will be possible after the row counting is done. + Total number of rows is being counted. +Browsing other pages will be possible after the row counting is done. + + + + Row: %1 + Row: %1 + + + + Filter + Filter + + + + Hit Enter key or press "Apply filter" button on toolbar to apply new value. + Hit Enter key or press "Apply filter" button on toolbar to apply new value. + + + + Filter by the Regular Expression + data view + Filter by the Regular Expression + + + + Filter by SQL expression + data view + Filter by SQL expression + + + + Show filter inputs per column + data view + Show filter inputs per column + + + + Apply filter + data view + Apply filter + + + + DbDialog + + + Database + Database + + + + Database type + Database type + + + + Database driver + Database driver + + + + + File + File + + + + Name (on the list) + Name (on the list) + + + + Options + Options + + + + <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> + aasfd + <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> + + + + Permanent (keep it in configuration) + Permanent (keep it in configuration) + + + + Test connection + Test connection + + + + Select new or existing file on local computer + Select new or existing file on local computer + + + + Browse + Browse + + + + Database type not selected. + Database type not selected. + + + + Database path not specified. + Database path not specified. + + + + Enter an unique database name. + Enter an unique database name. + + + + This name is already in use. Please enter unique name. + This name is already in use. Please enter unique name. + + + + <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> + <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> + + + + Enter a database file path. + Enter a database file path. + + + + This database is already on the list under name: %1 + This database is already on the list under name: %1 + + + + Select a database type. + Select a database type. + + + + DbObjectDialogs + + + Delete table + Delete table + + + + Are you sure you want to delete table %1? + Are you sure you want to delete table %1? + + + + Delete index + Delete index + + + + Are you sure you want to delete index %1? + Are you sure you want to delete index %1? + + + + Delete trigger + Delete trigger + + + + Are you sure you want to delete trigger %1? + Are you sure you want to delete trigger %1? + + + + Delete view + Delete view + + + + Are you sure you want to delete view %1? + Are you sure you want to delete view %1? + + + + + Error while dropping %1: %2 + Error while dropping %1: %2 + + + + Delete objects + Delete objects + + + + Are you sure you want to delete following objects: +%1 + Are you sure you want to delete following objects: +%1 + + + + Cannot start transaction. Details: %1 + Cannot start transaction. Details: %1 + + + + Cannot commit transaction. Details: %1 + Cannot commit transaction. Details: %1 + + + + DbTree + + + Databases + Databases + + + + Filter by name + Filter by name + + + + Copy + Copy + + + + Paste + Paste + + + + Select all + Select all + + + + Create a group + Create a group + + + + Delete the group + Delete the group + + + + Rename the group + Rename the group + + + + &Add a database + &Add a database + + + + &Edit the database + &Edit the database + + + + &Remove the database + &Remove the database + + + + &Connect to the database + &Connect to the database + + + + &Disconnect from the database + &Disconnect from the database + + + + Import + Import + + + + &Export the database + &Export the database + + + + Vac&uum + Vac&uum + + + + &Integrity check + &Integrity check + + + + Create a &table + Create a &table + + + + Edit the t&able + Edit the t&able + + + + Delete the ta&ble + Delete the ta&ble + + + + Export the table + Export the table + + + + Import into the table + Import into the table + + + + Populate table + Populate table + + + + Create similar table + Create similar table + + + + Reset autoincrement sequence + Reset autoincrement sequence + + + + Create an &index + Create an &index + + + + Edit the i&ndex + Edit the i&ndex + + + + Delete the in&dex + Delete the in&dex + + + + Create a trig&ger + Create a trig&ger + + + + Edit the trigg&er + Edit the trigg&er + + + + Delete the trigge&r + Delete the trigge&r + + + + Create a &view + Create a &view + + + + Edit the v&iew + Edit the v&iew + + + + Delete the vi&ew + Delete the vi&ew + + + + Add a column + Add a column + + + + Edit the column + Edit the column + + + + Delete the column + Delete the column + + + + Delete selected items + Delete selected items + + + + Clear filter + Clear filter + + + + &Refresh all database schemas + &Refresh all database schemas + + + + Re&fresh selected database schema + Re&fresh selected database schema + + + + + Erase table data + Erase table data + + + + Open file's directory + Open file's directory + + + + Execute SQL from file + Execute SQL from file + + + + Increase font size + database list + Increase font size + + + + Decrease font size + database list + Decrease font size + + + + + Database + Database + + + + Grouping + Grouping + + + + Generate query for table + Generate query for table + + + + + Create group + Create group + + + + Group name + Group name + + + + Entry with name %1 already exists in group %2. + Entry with name %1 already exists in group %2. + + + + Delete group + Delete group + + + + Are you sure you want to delete group %1? +All objects from this group will be moved to parent group. + Are you sure you want to delete group %1? +All objects from this group will be moved to parent group. + + + + Are you sure you want to remove database '%1' from the list? + Are you sure you want to remove database '%1' from the list? + + + + Are you sure you want to remove following databases from the list: +%1 + Are you sure you want to remove following databases from the list: +%1 + + + + Remove database + Remove database + + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Vacuum (%1) + Vacuum (%1) + + + + Integrity check (%1) + Integrity check (%1) + + + + Reset autoincrement + Reset autoincrement + + + + Are you sure you want to reset autoincrement value for table '%1'? + Are you sure you want to reset autoincrement value for table '%1'? + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + An error occurred while trying to reset autoincrement value for table '%1': %2 + + + + Autoincrement value for table '%1' has been reset successfully. + Autoincrement value for table '%1' has been reset successfully. + + + + Are you sure you want to delete all data from table(s): %1? + Are you sure you want to delete all data from table(s): %1? + + + + An error occurred while trying to delete data from table '%1': %2 + An error occurred while trying to delete data from table '%1': %2 + + + + All data has been deleted for table '%1'. + All data has been deleted for table '%1'. + + + + Following objects will be deleted: %1. + Following objects will be deleted: %1. + + + + Following databases will be removed from list: %1. + Following databases will be removed from list: %1. + + + + Remainig objects from deleted group will be moved in place where the group used to be. + Remainig objects from deleted group will be moved in place where the group used to be. + + + + %1<br><br>Are you sure you want to continue? + %1<br><br>Are you sure you want to continue? + + + + Delete objects + Delete objects + + + + DbTreeItemDelegate + + + error + dbtree labels + error + + + + (system table) + database tree label + (system table) + + + + (virtual) + virtual table label + (virtual) + + + + (system index) + database tree label + (system index) + + + + DbTreeModel + + + Database: %1 + dbtree tooltip + Database: %1 + + + + URI: + dbtree tooltip + URI: + + + + Version: + dbtree tooltip + Version: + + + + File size: + dbtree tooltip + File size: + + + + Encoding: + dbtree tooltip + Encoding: + + + + Error: + dbtree tooltip + Error: + + + + Table : %1 + dbtree tooltip + Table : %1 + + + + Columns (%1): + dbtree tooltip + Columns (%1): + + + + Indexes (%1): + dbtree tooltip + Indexes (%1): + + + + Triggers (%1): + dbtree tooltip + Triggers (%1): + + + + Copy + Copy + + + + Move + Move + + + + Include data + Include data + + + + Include indexes + Include indexes + + + + Include triggers + Include triggers + + + + Abort + Abort + + + + Could not add dropped database file '%1' automatically. Manual setup is necessary. + Could not add dropped database file '%1' automatically. Manual setup is necessary. + + + + Referenced tables + Referenced tables + + + + Do you want to include following referenced tables as well: +%1 + Do you want to include following referenced tables as well: +%1 + + + + Name conflict + Name conflict + + + + Following object already exists in the target database. +Please enter new, unique name, or press '%1' to abort the operation: + Following object already exists in the target database. +Please enter new, unique name, or press '%1' to abort the operation: + + + + SQL statements conversion + SQL statements conversion + + + + Following error occurred while converting SQL statements to the target SQLite version: + Following error occurred while converting SQL statements to the target SQLite version: + + + + Would you like to ignore those errors and proceed? + Would you like to ignore those errors and proceed? + + + + DdlHistoryWindow + + + Filter by database: + Filter by database: + + + + Clear entire history + Clear entire history + + + + -- Queries executed on database %1 (%2) +-- Date and time of execution: %3 +%4 + -- Queries executed on database %1 (%2) +-- Date and time of execution: %3 +%4 + + + + Clear history + Clear history + + + + Are you sure you want to erase entire DDL history? + Are you sure you want to erase entire DDL history? + + + + DDL history + DDL history + + + + DdlPreviewDialog + + + Queries to be executed + Queries to be executed + + + + Don't show again + Don't show again + + + + DebugConsole + + + SQLiteStudio Debug Console + SQLiteStudio Debug Console + + + + EditorWindow + + + SQL editor + SQL editor + + + + Query + Query + + + + History + History + + + + Results in the separate tab + Results in the separate tab + + + + Results below the query + Results below the query + + + + + SQL editor %1 + SQL editor %1 + + + + + Results + Results + + + + Execute query + Execute query + + + + Explain query + Explain query + + + + Clear execution history + sql editor + Clear execution history + + + + Export results + sql editor + Export results + + + + Create view from query + sql editor + Create view from query + + + + Previous database + Previous database + + + + Next database + Next database + + + + Show next tab + sql editor + Show next tab + + + + Show previous tab + sql editor + Show previous tab + + + + Focus results below + sql editor + Focus results below + + + + Focus SQL editor above + sql editor + Focus SQL editor above + + + + Delete selected SQL history entries + sql editor + Delete selected SQL history entries + + + + Execute single query under cursor + Execute single query under cursor + + + + Execute all queries in editor + Execute all queries in editor + + + + Active database (%1/%2) + Active database (%1/%2) + + + + Query finished in %1 second(s). Rows affected: %2 + Query finished in %1 second(s). Rows affected: %2 + + + + Query finished in %1 second(s). + Query finished in %1 second(s). + + + + Clear execution history + Clear execution history + + + + Are you sure you want to erase the entire SQL execution history? This cannot be undone. + Are you sure you want to erase the entire SQL execution history? This cannot be undone. + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + No database selected in the SQL editor. Cannot create a view for unknown database. + No database selected in the SQL editor. Cannot create a view for unknown database. + + + + Editor window "%1" has uncommitted data. + Editor window "%1" has uncommitted data. + + + + ErrorsConfirmDialog + + + Errors + Errors + + + + Following errors occured: + Following errors occured: + + + + Would you like to proceed? + Would you like to proceed? + + + + ExecFromFileDialog + + + Execute SQL from file + Execute SQL from file + + + + Input file + Input file + + + + Path to file + Path to file + + + + Browse for file + Browse for file + + + + Options + Options + + + + File encoding + File encoding + + + + Skip failing SQL statements + Skip failing SQL statements + + + + SQL scripts (*.sql);;All files (*) + SQL scripts (*.sql);;All files (*) + + + + Execute SQL file + Execute SQL file + + + + Please provide file to be executed. + Please provide file to be executed. + + + + Provided file does not exist or cannot be read. + Provided file does not exist or cannot be read. + + + + ExportDialog + + + Export + Export + + + + What do you want to export? + What do you want to export? + + + + A database + A database + + + + A single table + A single table + + + + Query results + Query results + + + + Table to export + Table to export + + + + Database + Database + + + + Table + Table + + + + Options + Options + + + + When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. + When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. + + + + Export table data + Export table data + + + + Export table indexes + Export table indexes + + + + Export table triggers + Export table triggers + + + + Note, that exporting table indexes and triggers may be unsupported by some output formats. + Note, that exporting table indexes and triggers may be unsupported by some output formats. + + + + Select database objects to export + Select database objects to export + + + + Export data from tables + Export data from tables + + + + Select all + Select all + + + + Deselect all + Deselect all + + + + + Database: + Database: + + + + Query to export results for + Query to export results for + + + + Query to be executed for results: + Query to be executed for results: + + + + Export format and options + Export format and options + + + + Export format + Export format + + + + Output + Output + + + + Exported file path + Exported file path + + + + Clipboard + Clipboard + + + + File + File + + + + Exported text encoding: + Exported text encoding: + + + + Export format options + Export format options + + + + Cancel + Cancel + + + + + + Select database to export. + Select database to export. + + + + Select table to export. + Select table to export. + + + + Enter valid query to export. + Enter valid query to export. + + + + Select at least one object to export. + Select at least one object to export. + + + + You must provide a file name to export to. + You must provide a file name to export to. + + + + Path you provided is an existing directory. You cannot overwrite it. + Path you provided is an existing directory. You cannot overwrite it. + + + + The directory '%1' does not exist. + The directory '%1' does not exist. + + + + The file '%1' exists and will be overwritten. + The file '%1' exists and will be overwritten. + + + + All files (*) + All files (*) + + + + Pick file to export to + Pick file to export to + + + + Internal error during export. This is a bug. Please report it. + Internal error during export. This is a bug. Please report it. + + + + FileExecErrorsDialog + + + Execution errors + Execution errors + + + + Following errors were encountered during execution of SQL statements from the file: + Following errors were encountered during execution of SQL statements from the file: + + + + SQL + SQL + + + + Error + Error + + + + Statements that were executed successfully were commited. + Statements that were executed successfully were commited. + + + + Statements that were executed successfully were rolled back. + Statements that were executed successfully were rolled back. + + + + FkComboBox + + + Cannot edit this cell. Details: %1 + Cannot edit this cell. Details: %1 + + + + FontEdit + + + Choose font + font configuration + Choose font + + + + Form + + + Active SQL formatter plugin + Active SQL formatter plugin + + + + FormView + + + Commit row + form view + Commit row + + + + Rollback row + form view + Rollback row + + + + First row + form view + First row + + + + Previous row + form view + Previous row + + + + Next row + form view + Next row + + + + Last row + form view + Last row + + + + Insert new row + form view + Insert new row + + + + Delete current row + form view + Delete current row + + + + FunctionsEditor + + + Filter functions + Filter functions + + + + Input arguments + Input arguments + + + + Undefined + Undefined + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Type: + Type: + + + + Function name: + Function name: + + + + Implementation language: + Implementation language: + + + + Deterministic + Deterministic + + + + Initialization code: + Initialization code: + + + + + Function implementation code: + Function implementation code: + + + + Final step implementation code: + Final step implementation code: + + + + SQL functions editor + SQL functions editor + + + + Commit all function changes + Commit all function changes + + + + Rollback all function changes + Rollback all function changes + + + + Create new function + Create new function + + + + Delete selected function + Delete selected function + + + + Custom SQL functions manual + Custom SQL functions manual + + + + Add function argument + Add function argument + + + + Rename function argument + Rename function argument + + + + Delete function argument + Delete function argument + + + + Move function argument up + Move function argument up + + + + Move function argument down + Move function argument down + + + + Scalar + Scalar + + + + Aggregate + Aggregate + + + + Enter a non-empty, unique name of the function. + Enter a non-empty, unique name of the function. + + + + Pick the implementation language. + Pick the implementation language. + + + + Per step code: + Per step code: + + + + Enter a non-empty implementation code. + Enter a non-empty implementation code. + + + + argument + new function argument name in function editor window + argument + + + + Functions editor window has uncommitted modifications. + Functions editor window has uncommitted modifications. + + + + ImportDialog + + + Import data + Import data + + + + Table to import to + Table to import to + + + + Table + Table + + + + Database + Database + + + + Data source to import from + Data source to import from + + + + Data source type + Data source type + + + + Options + Options + + + + Text encoding: + Text encoding: + + + + Input file: + Input file: + + + + <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> + <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> + + + + Ignore errors + Ignore errors + + + + Data source options + Data source options + + + + Cancel + Cancel + + + + If you type table name that doesn't exist, it will be created. + If you type table name that doesn't exist, it will be created. + + + + Enter the table name + Enter the table name + + + + Select import plugin. + Select import plugin. + + + + You must provide a file to import from. + You must provide a file to import from. + + + + The file '%1' does not exist. + The file '%1' does not exist. + + + + Path you provided is a directory. A regular file is required. + Path you provided is a directory. A regular file is required. + + + + Pick file to import from + Pick file to import from + + + + IndexDialog + + + + Index + Index + + + + Column + Column + + + + Sort + Sort + + + + Collation + Collation + + + + On table: + On table: + + + + Delete selected indexed expression + Delete selected indexed expression + + + + Moves selected index column up in the order, making it more significant in the index. + Moves selected index column up in the order, making it more significant in the index. + + + + Moves selected index column down in the order, making it less significant in the index. + Moves selected index column down in the order, making it less significant in the index. + + + + Partial index condition + Partial index condition + + + + Unique index + Unique index + + + + Index name: + Index name: + + + + Edit selected indexed expression + Edit selected indexed expression + + + + Add indexed expression + Add indexed expression + + + + DDL + DDL + + + + Tried to open index dialog for closed or inexisting database. + Tried to open index dialog for closed or inexisting database. + + + + Could not process index %1 correctly. Unable to open an index dialog. + Could not process index %1 correctly. Unable to open an index dialog. + + + + Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. + Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. + + + + Pick the table for the index. + Pick the table for the index. + + + + Select at least one column. + Select at least one column. + + + + Enter a valid condition. + Enter a valid condition. + + + + default + index dialog + default + + + + Sort order + table constraints + Sort order + + + + + Error + index dialog + Error + + + + Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? + Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? + + + + An error occurred while executing SQL statements: +%1 + An error occurred while executing SQL statements: +%1 + + + + IndexExprColumnDialog + + + Indexed expression + Indexed expression + + + + Expression to index + Expression to index + + + + This expression is already indexed by the index. + This expression is already indexed by the index. + + + + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. + + + + Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. + Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. + + + + It's forbidden to use 'SELECT' statements in indexed expressions. + It's forbidden to use 'SELECT' statements in indexed expressions. + + + + Enter an indexed expression. + Enter an indexed expression. + + + + Invalid expression. + Invalid expression. + + + + LanguageDialog + + + Language + Language + + + + Please choose language: + Please choose language: + + + + MainWindow + + + Database toolbar + Database toolbar + + + + Structure toolbar + Structure toolbar + + + + Tools + Tools + + + + Window list + Window list + + + + View toolbar + View toolbar + + + + Configuration widgets + Configuration widgets + + + + Syntax highlighting engines + Syntax highlighting engines + + + + Data editors + Data editors + + + + Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. + Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. + + + + Running in debug mode. Debug messages are printed to the standard output. + Running in debug mode. Debug messages are printed to the standard output. + + + + You need to restart application to make the language change take effect. + You need to restart application to make the language change take effect. + + + + Open SQL &editor + Open SQL &editor + + + + Open DDL &history + Open DDL &history + + + + Open SQL &functions editor + Open SQL &functions editor + + + + Open code &snippets editor + Open code &snippets editor + + + + Open &collations editor + Open &collations editor + + + + Open ex&tension manager + Open ex&tension manager + + + + &Import + &Import + + + + E&xport + E&xport + + + + Open confi&guration dialog + Open confi&guration dialog + + + + &Tile windows + &Tile windows + + + + Tile windows &horizontally + Tile windows &horizontally + + + + Tile windows &vertically + Tile windows &vertically + + + + &Cascade windows + &Cascade windows + + + + Next window + Next window + + + + Previous window + Previous window + + + + Hide status field + Hide status field + + + + Close &all windows + Close &all windows + + + + Re&store recently closed window + Re&store recently closed window + + + + Close current &window + Close current &window + + + + Close &other windows + Close &other windows + + + + Close windows on the &left + Close windows on the &left + + + + Close windows on the &right + Close windows on the &right + + + + Re&name selected window + Re&name selected window + + + + Open Debug Console + Open Debug Console + + + + Open CSS Console + Open CSS Console + + + + Report a &bug + Report a &bug + + + + D&onate + D&onate + + + + Propose a new &feature + Propose a new &feature + + + + &About + &About + + + + &Licenses + &Licenses + + + + Open home &page + Open home &page + + + + User &Manual + User &Manual + + + + SQLite &documentation + SQLite &documentation + + + + Bugs and feature &requests + Bugs and feature &requests + + + + Quit + Quit + + + + Check for &updates + Check for &updates + + + + &Database + menubar + &Database + + + + &Structure + menubar + &Structure + + + + &View + menubar + &View + + + + Window list + menubar view menu + Window list + + + + &Tools + menubar + &Tools + + + + &Help + &Help + + + + Could not set style: %1 + main window + Could not set style: %1 + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + Rename window + Rename window + + + + Enter new name for the window: + Enter new name for the window: + + + + New updates are available. <a href="%1">Click here for details</a>. + New updates are available. <a href="%1">Click here for details</a>. + + + + You're running the most recent version. No updates are available. + You're running the most recent version. No updates are available. + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + Database passed in command line parameters (%1) was already on the list under name: %2 + + + + Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 + Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + MdiWindow + + + Uncommitted changes + Uncommitted changes + + + + Close anyway + Close anyway + + + + Don't close + Don't close + + + + MultiEditor + + + Null value + multieditor + Null value + + + + Configure editors for this data type + Configure editors for this data type + + + + Open another tab + Open another tab + + + + Foreign Key + Foreign Key + + + + Data editor plugin '%1' not loaded, while it is defined for editing '%2' data type. + Data editor plugin '%1' not loaded, while it is defined for editing '%1' data type. {1'?} {2'?} {1' or 2'?} + + + + Deleted + multieditor + Deleted + + + + Read only + multieditor + Read only + + + + MultiEditorBoolPlugin + + + Boolean + Boolean + + + + MultiEditorDatePlugin + + + Date + Date + + + + MultiEditorDateTimePlugin + + + Date & time + Date & time + + + + MultiEditorHexPlugin + + + Hex + Hex + + + + MultiEditorNumericPlugin + + + Number + numeric multi editor tab name + Number + + + + MultiEditorText + + + Tab changes focus + Tab changes focus + + + + Cut + Cut + + + + Copy + Copy + + + + Paste + Paste + + + + Delete + Delete + + + + Undo + Undo + + + + Redo + Redo + + + + MultiEditorTextPlugin + + + Text + Text + + + + MultiEditorTimePlugin + + + Time + Time + + + + NewConstraintDialog + + + New constraint + New constraint + + + + + Primary Key + new constraint dialog + Primary Key + + + + + Foreign Key + new constraint dialog + Foreign Key + + + + + Unique + new constraint dialog + Unique + + + + + Check + new constraint dialog + Check + + + + Not NULL + new constraint dialog + Not NULL + + + + Collate + new constraint dialog + Collate + + + + Generated + new constraint dialog + Generated + + + + Default + new constraint dialog + Default + + + + NewVersionDialog + + + SQLiteStudio updates + SQLiteStudio updates + + + + New version is available! + New version is available! + + + + Download new version! + Download new version! + + + + New version package will be downloaded. It will be up to you to install it whenever you're ready. + New version package will be downloaded. It will be up to you to install it whenever you're ready. + + + + Open SQLiteStudio home page. + Open SQLiteStudio home page. + + + + Read release notes && download package yourself. + Read release notes && download package yourself. + + + + Just close this window. + Just close this window. + + + + Check for updates on startup + Check for updates on startup + + + + Not now. + Not now. + + + + PopulateConfigDialog + + + Populating configuration + Populating configuration + + + + Configuring <b>%1</b> for column <b>%2</b> + Configuring <b>%1</b> for column <b>%2</b> + + + + PopulateDialog + + + Populate table + Populate table + + + + Database + Database + + + + Table + Table + + + + Columns + Columns + + + + Number of rows to populate: + Number of rows to populate: + + + + Populate + populate dialog button + Populate + + + + Abort + Abort + + + + Configure + Configure + + + + Populating configuration for this column is invalid or incomplete. + Populating configuration for this column is invalid or incomplete. + + + + Select database with table to populate + Select database with table to populate + + + + Select table to populate + Select table to populate + + + + You have to select at least one column. + You have to select at least one column. + + + + QObject + + + Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). + Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). + + + + The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. + The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. + + + + Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. + Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. + + + + Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. + Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. + + + + Cannot edit results of query other than %1. + Cannot edit results of query other than %1. + + + + Cannot edit columns that are result of aggregated %1 statements. + Cannot edit columns that are result of aggregated %1 statements. + + + + Cannot edit columns that are result of %1 statement. + Cannot edit columns that are result of %1 statement. + + + + Cannot edit columns that are result of common table expression statement (%1). + Cannot edit columns that are result of common table expression statement (%1). + + + + Cannot edit table generated columns. + Cannot edit table generated columns. + + + + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). + + + + + + + on conflict: %1 + data view tooltip + on conflict: %1 + + + + references table %1, column %2 + data view tooltip + references table %1, column %2 + + + + condition: %1 + data view tooltip + condition: %1 + + + + collation name: %1 + data view tooltip + collation name: %1 + + + + Data grid view + Data grid view + + + + Edit current cell inline + Edit current cell inline + + + + Copy cell(s) contents to clipboard + Copy cell(s) contents to clipboard + + + + Copy cell(s) contents together with header to clipboard + Copy cell(s) contents together with header to clipboard + + + + Paste cell(s) contents from clipboard + Paste cell(s) contents from clipboard + + + + Set empty value to selected cell(s) + Set empty value to selected cell(s) + + + + Set NULL value to selected cell(s) + Set NULL value to selected cell(s) + + + + Commit changes to cell(s) contents + Commit changes to cell(s) contents + + + + Rollback changes to cell(s) contents + Rollback changes to cell(s) contents + + + + Delete selected data row + Delete selected data row + + + + Insert new data row + Insert new data row + + + + Open contents of selected cell in a separate editor + Open contents of selected cell in a separate editor + + + + Toggle the height adjustment of rows + Toggle the height adjustment of rows + + + + Increase font size + data view + Increase font size + + + + Decrease font size + data view + Decrease font size + + + + Total pages available: %1 + Total pages available: %1 + + + + Total rows loaded: %1 + Total rows loaded: %1 + + + + Data view (both grid and form) + Data view (both grid and form) + + + + Refresh data + Refresh data + + + + Switch to grid view of the data + Switch to grid view of the data + + + + Switch to form view of the data + Switch to form view of the data + + + + Database list + Database list + + + + Delete selected item + Delete selected item + + + + Clear filter contents + Clear filter contents + + + + Refresh schema + Refresh schema + + + + Refresh all schemas + Refresh all schemas + + + + Add database + Add database + + + + Select all items + Select all items + + + + Copy selected item(s) + Copy selected item(s) + + + + + + Paste from clipboard + Paste from clipboard + + + + Increase font size + database list + Increase font size + + + + Decrease font size + database list + Decrease font size + + + + Tables + Tables + + + + Indexes + Indexes + + + + Triggers + Triggers + + + + Views + Views + + + + Columns + Columns + + + + Data form view + Data form view + + + + Commit changes for current row + Commit changes for current row + + + + Rollback changes for current row + Rollback changes for current row + + + + Go to first row on current page + Go to first row on current page + + + + Go to next row + Go to next row + + + + Go to previous row + Go to previous row + + + + Go to last row on current page + Go to last row on current page + + + + Insert new row + Insert new row + + + + Delete current row + Delete current row + + + + Main window + Main window + + + + Open SQL editor + Open SQL editor + + + + Open DDL history window + Open DDL history window + + + + Open snippets editor window + Open snippets editor window + + + + Open function editor window + Open function editor window + + + + Open collation editor window + Open collation editor window + + + + Open extension manager window + Open extension manager window + + + + Previous window + Previous window + + + + Next window + Next window + + + + Hide status area + Hide status area + + + + Open user manual + Open user manual + + + + Open configuration dialog + Open configuration dialog + + + + Open Debug Console + Open Debug Console + + + + Open CSS Console + Open CSS Console + + + + Open the About dialog + Open the About dialog + + + + Quit the application + Quit the application + + + + Cell text value editor + Cell text value editor + + + + + Cut selected text + Cut selected text + + + + + Copy selected text + Copy selected text + + + + + Delete selected text + Delete selected text + + + + + Undo + Undo + + + + + Redo + Redo + + + + SQL editor input field + SQL editor input field + + + + Select whole editor contents + Select whole editor contents + + + + Save contents into a file + Save contents into a file + + + + Load contents from a file + Load contents from a file + + + + Find in text + Find in text + + + + Find next + Find next + + + + Find previous + Find previous + + + + Replace in text + Replace in text + + + + Delete current line + Delete current line + + + + Request code assistant + Request code assistant + + + + Format contents + Format contents + + + + Move selected block of text one line down + Move selected block of text one line down + + + + Move selected block of text one line up + Move selected block of text one line up + + + + Copy selected block of text and paste it a line below + Copy selected block of text and paste it a line below + + + + Copy selected block of text and paste it a line above + Copy selected block of text and paste it a line above + + + + Toggle comment + Toggle comment + + + + Increase font size + sql editor + Increase font size + + + + Decrease font size + sql editor + Decrease font size + + + + All SQLite databases + All SQLite databases + + + + All files + All files + + + + Select database file + Select database file + + + + Select + Select + + + + File type + File type + + + + SQL editor window + SQL editor window + + + + Execute query + Execute query + + + + Execute single query under cursor + Execute single query under cursor + + + + Execute all queries in editor + Execute all queries in editor + + + + Execute "%1" query + Execute "%1" query + + + + Switch current working database to previous on the list + Switch current working database to previous on the list + + + + Switch current working database to next on the list + Switch current working database to next on the list + + + + Go to next editor tab + Go to next editor tab + + + + Go to previous editor tab + Go to previous editor tab + + + + Move keyboard input focus to the results view below + Move keyboard input focus to the results view below + + + + Move keyboard input focus to the SQL editor above + Move keyboard input focus to the SQL editor above + + + + Delete selected SQL history entries + Delete selected SQL history entries + + + + Table window + Table window + + + + Commit the table structure + Commit the table structure + + + + Rollback pending changes in the table structure + Rollback pending changes in the table structure + + + + Refresh table structure + Refresh table structure + + + + Add new column + Add new column + + + + Edit selected column + Edit selected column + + + + Delete selected column + Delete selected column + + + + Export table data + Export table data + + + + Import data to the table + Import data to the table + + + + Add new table constraint + Add new table constraint + + + + Edit selected table constraint + Edit selected table constraint + + + + Delete selected table constraint + Delete selected table constraint + + + + Refresh table index list + Refresh table index list + + + + Add new index + Add new index + + + + Edit selected index + Edit selected index + + + + Delete selected index + Delete selected index + + + + Refresh table trigger list + Refresh table trigger list + + + + + Add new trigger + Add new trigger + + + + + Edit selected trigger + Edit selected trigger + + + + + Delete selected trigger + Delete selected trigger + + + + + Go to next tab + Go to next tab + + + + + Go to previous tab + Go to previous tab + + + + A view window + A view window + + + + Commit the view's query + Commit the view's query + + + + Rollback pending changes in the view's query + Rollback pending changes in the view's query + + + + Refresh view trigger list + Refresh view trigger list + + + + Execute the view's query + Execute the view's query + + + + A code snippets editor window + A code snippets editor window + + + + + + + Commit the pending changes + Commit the pending changes + + + + + + + Rollback the pending changes + Rollback the pending changes + + + + A collation editor window + A collation editor window + + + + A function editor window + A function editor window + + + + A SQLite extension editor window + A SQLite extension editor window + + + + QuitConfirmDialog + + + Uncommitted changes + Uncommitted changes + + + + Are you sure you want to quit the application? + +Following items are pending: + Are you sure you want to quit the application? + +Following items are pending: + + + + SearchTextDialog + + + Find or replace + Find or replace + + + + Find: + Find: + + + + Case sensitive + Case sensitive + + + + Search backwards + Search backwards + + + + Regular expression matching + Regular expression matching + + + + Replace && +find next + Replace && +find next + + + + Replace with: + Replace with: + + + + Replace all + Replace all + + + + Find + Find + + + + SortDialog + + + Sort by columns + Sort by columns + + + + + Column + Column + + + + + Order + Order + + + + Sort by: %1 + Sort by: %1 + + + + Move column up + Move column up + + + + Move column down + Move column down + + + + SqlEditor + + + Wrap words + sql editor + Wrap words + + + + Cut + sql editor + Cut + + + + Copy + sql editor + Copy + + + + Paste + sql editor + Paste + + + + Delete + sql editor + Delete + + + + Select all + sql editor + Select all + + + + Undo + sql editor + Undo + + + + Redo + sql editor + Redo + + + + Complete + sql editor + Complete + + + + Format SQL + sql editor + Format SQL + + + + Save SQL to file + sql editor + Save SQL to file + + + + Select file to save SQL + sql editor + Select file to save SQL + + + + Load SQL from file + sql editor + Load SQL from file + + + + Delete line + sql editor + Delete line + + + + Move block down + sql editor + Move block down + + + + Move block up + sql editor + Move block up + + + + Copy block down + sql editor + Copy block down + + + + Copy up down + sql editor + Copy up down + + + + Find + sql editor + Find + + + + Find next + sql editor + Find next + + + + Find previous + sql editor + Find previous + + + + Replace + sql editor + Replace + + + + Toggle comment + sql editor + Toggle comment + + + + Increase font size + sql editor + Increase font size + + + + Decrease font size + sql editor + Decrease font size + + + + Could not open file '%1' for writing: %2 + Could not open file '%1' for writing: %2 + + + + Saved SQL contents to file: %1 + Saved SQL contents to file: %1 + + + + Syntax completion can be used only when a valid database is set for the SQL editor. + Syntax completion can be used only when a valid database is set for the SQL editor. + + + + Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. + Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. + + + + Save to file + Save to file + + + + SQL scripts (*.sql);;All files (*) + SQL scripts (*.sql);;All files (*) + + + + Open file + Open file + + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Reached the end of document. Hit the find again to restart the search. + Reached the end of document. Hit the find again to restart the search. + + + + SqlQueryItem + + + Committing error: + data view tooltip + Committing error: + + + + Column: + data view tooltip + Column: + + + + Data type: + data view + Data type: + + + + Table: + data view tooltip + Table: + + + + Constraints: + data view tooltip + Constraints: + + + + SqlQueryItemDelegate + + + + + + Cannot edit this cell. Details: %1 + Cannot edit this cell. Details: %1 + + + + The row is marked for deletion. + The row is marked for deletion. + + + + + Structure of this table has changed since last data was loaded. Reload the data to proceed. + Structure of this table has changed since last data was loaded. Reload the data to proceed. + + + + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). + + + + Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. + Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. + + + + SqlQueryModel + + + + Only one query can be executed simultaneously. + Only one query can be executed simultaneously. + + + + Cannot execute query on undefined or invalid database. + Cannot execute query on undefined or invalid database. + + + + Cannot execute empty query. + Cannot execute empty query. + + + + Uncommitted data + Uncommitted data + + + + There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. + There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. + + + + Cannot commit the data for a cell that refers to the already closed database. + Cannot commit the data for a cell that refers to the already closed database. + + + + Could not begin transaction on the database. Details: %1 + Could not begin transaction on the database. Details: %1 + + + + An error occurred while committing the transaction: %1 + An error occurred while committing the transaction: %1 + + + + An error occurred while rolling back the transaction: %1 + An error occurred while rolling back the transaction: %1 + + + + Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. + Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. + + + + An error occurred while committing the data: %1 + An error occurred while committing the data: %1 + + + + Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. + Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. + + + + + Error while executing SQL query on database '%1': %2 + Error while executing SQL query on database '%1': %2 + + + + Error while loading query results: %1 + Error while loading query results: %1 + + + + Insert multiple rows + Insert multiple rows + + + + Number of rows to insert: + Number of rows to insert: + + + + Delete rows + Delete rows + + + + You're about to delete newly inserted rows that are not committed yet. Row numbers: %1 +Such deletion will be permanent. Are you sure you want to delete them? + You're about to delete newly inserted rows that are not committed yet. Row numbers: %1 +Such deletion will be permanent. Are you sure you want to delete them? + + + + SqlQueryView + + + Go to referenced row in... + Go to referenced row in... + + + + Copy + Copy + + + + Copy with headers + Copy with headers + + + + Copy as... + Copy as... + + + + Paste + Paste + + + + Paste as... + Paste as... + + + + Set NULL values + Set NULL values + + + + Erase values + Erase values + + + + Commit + Commit + + + + Rollback + Rollback + + + + Commit selected cells + Commit selected cells + + + + Rollback selected cells + Rollback selected cells + + + + Edit current cell inline + Edit current cell inline + + + + Define columns to sort by + Define columns to sort by + + + + Remove custom sorting + Remove custom sorting + + + + Insert row + Insert row + + + + Insert multiple rows + Insert multiple rows + + + + Delete selected row + Delete selected row + + + + Adjust height of rows + Adjust height of rows + + + + Increase font size + data view + Increase font size + + + + Decrease font size + data view + Decrease font size + + + + Invert selection + data view + Invert selection + + + + Edit value in editor + Edit value in editor + + + + Show value in a viewer + Show value in a viewer + + + + Generate query for selected cells + Generate query for selected cells + + + + No items selected to paste clipboard contents to. + No items selected to paste clipboard contents to. + + + + Cannot paste data. Details: %1 + Cannot paste data. Details: %1 + + + + Structure of at least one table used has changed since last data was loaded. Reload the data to proceed. + Structure of at least one table used has changed since last data was loaded. Reload the data to proceed. + + + + Cannot paste to a cell. Details: %1 + Cannot paste to a cell. Details: %1 + + + + The row is marked for deletion. + The row is marked for deletion. + + + + Cannot paste to column %1. Details: %2 + Cannot paste to column %1. Details: %2 + + + + Go to referenced row in table '%1' + Go to referenced row in table '%1' + + + + table '%1' + table '%1' + + + + Referenced row (%1) + Referenced row (%1) + + + + Trim pasted text? + Trim pasted text? + + + + The pasted text contains leading or trailing white space. Trim it automatically? + The pasted text contains leading or trailing white space. Trim it automatically? + + + + Paste "NULL" as null value? + Paste "NULL" as null value? + + + + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + + + + Edit value + Edit value + + + + SqlTableModel + + + Error while committing new row: %1 + Error while committing new row: %1 + + + + Error while deleting row from table %1: %2 + Error while deleting row from table %1: %2 + + + + SqliteExtensionEditor + + + Filter extensions + Filter extensions + + + + Leave empty to use default function + Leave empty to use default function + + + + Extension file + Extension file + + + + Initialization function + Initialization function + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Extension manager window has uncommitted modifications. + Extension manager window has uncommitted modifications. + + + + Extension manager + Extension manager + + + + Commit all extension changes + Commit all extension changes + + + + Rollback all extension changes + Rollback all extension changes + + + + Add new extension + Add new extension + + + + Remove selected extension + Remove selected extension + + + + Editing extensions manual + Editing extensions manual + + + + File with given path does not exist or is not readable. + File with given path does not exist or is not readable. + + + + Unable to load extension: %1 + Unable to load extension: %1 + + + + Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. + Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. + + + + Dynamic link libraries (*.dll);;All files (*) + Dynamic link libraries (*.dll);;All files (*) + + + + Shared objects (*.so);;All files (*) + Shared objects (*.so);;All files (*) + + + + Dynamic libraries (*.dylib);;All files (*) + Dynamic libraries (*.dylib);;All files (*) + + + + All files (*) + All files (*) + + + + Open file + Open file + + + + StatusField + + + Status + Status + + + + Copy + Copy + + + + Clear + Clear + + + + TableConstraintsModel + + + Type + table constraints + Type + + + + Details + table constraints + Details + + + + Name + table constraints + Name + + + + TableForeignKeyPanel + + + Foreign table: + Foreign table: + + + + Columns + Columns + + + + Local column + Local column + + + + Foreign column + Foreign column + + + + Reactions + Reactions + + + + Deferred foreign key + Deferred foreign key + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + Pick the foreign column. + Pick the foreign column. + + + + Pick the foreign table. + Pick the foreign table. + + + + Select at least one foreign column. + Select at least one foreign column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + Foreign column + table constraints + Foreign column + + + + TablePrimaryKeyAndUniquePanel + + + Columns + Columns + + + + Column + Column + + + + Collation + Collation + + + + Sort + Sort + + + + Valid only for a single column with INTEGER data type + Valid only for a single column with INTEGER data type + + + + Autoincrement + Autoincrement + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + On conflict + On conflict + + + + Collate + table constraints + Collate + + + + Sort order + table constraints + Sort order + + + + Select at least one column. + Select at least one column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + TableStructureModel + + + Name + table structure columns + Name + + + + Data type + table structure columns + Data type + + + + Primary +Key + table structure columns + Primary +Key + + + + Foreign +Key + table structure columns + Foreign +Key + + + + Unique + table structure columns + Unique + + + + Check + table structure columns + Check + + + + Not +NULL + table structure columns + Not +NULL + + + + Collate + table structure columns + Collate + + + + Generated + table structure columns + Generated + + + + Default value + table structure columns + Default value + + + + TableWindow + + + Structure + Structure + + + + Table name: + Table name: + + + + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + + + + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + + + + + Data + Data + + + + Constraints + Constraints + + + + Indexes + Indexes + + + + Triggers + Triggers + + + + DDL + DDL + + + + Export table + table window + Export table + + + + Import data to table + table window + Import data to table + + + + Populate table + table window + Populate table + + + + Refresh structure + table window + Refresh structure + + + + Commit structure changes + table window + Commit structure changes + + + + Rollback structure changes + table window + Rollback structure changes + + + + Add column + table window + Add column + + + + Edit column + table window + Edit column + + + + + Delete column + table window + Delete column + + + + Move column up + table window + Move column up + + + + Move column down + table window + Move column down + + + + Create similar table + table window + Create similar table + + + + Reset autoincrement value + table window + Reset autoincrement value + + + + Add table constraint + table window + Add table constraint + + + + Edit table constraint + table window + Edit table constraint + + + + Delete table constraint + table window + Delete table constraint + + + + Move table constraint up + table window + Move table constraint up + + + + Move table constraint down + table window + Move table constraint down + + + + Add table primary key + table window + Add table primary key + + + + Add table foreign key + table window + Add table foreign key + + + + Add table unique constraint + table window + Add table unique constraint + + + + Add table check constraint + table window + Add table check constraint + + + + Refresh index list + table window + Refresh index list + + + + + Create index + table window + Create index + + + + Edit index + table window + Edit index + + + + Delete index + table window + Delete index + + + + Refresh trigger list + table window + Refresh trigger list + + + + + Create trigger + table window + Create trigger + + + + Edit trigger + table window + Edit trigger + + + + Delete trigger + table window + Delete trigger + + + + Are you sure you want to delete column '%1'? + table window + Are you sure you want to delete column '%1'? + + + + Following problems will take place while modifying the table. +Would you like to proceed? + table window + Following problems will take place while modifying the table. +Would you like to proceed? + + + + Table modification + table window + Table modification + + + + Could not load data for table %1. Error details: %2 + Could not load data for table %1. Error details: %2 + + + + Could not process the %1 table correctly. Unable to open a table window. + Could not process the %1 table correctly. Unable to open a table window. + + + + Database + Database + + + + Could not restore window %1, because no database or table was stored in session for this window. + Could not restore window %1, because no database or table was stored in session for this window. + + + + Could not restore window '%1', because no database or table was stored in session for this window. + Could not restore window '%1', because no database or table was stored in session for this window. + + + + Could not restore window '%1', because database %2 could not be resolved. + Could not restore window '%1', because database %2 could not be resolved. + + + + Could not restore window '%1', because the table %2 doesn't exist in the database %3. + Could not restore window '%1', because the table %2 doesn't exist in the database %3. + + + + + New table %1 + New table %1 + + + + Committed changes for table '%1' successfully. + Committed changes for table '%1' successfully. + + + + Committed changes for table '%1' (named before '%2') successfully. + Committed changes for table '%1' (named before '%2') successfully. + + + + Could not commit table structure. Error message: %1 + table window + Could not commit table structure. Error message: %1 + + + + Reset autoincrement + Reset autoincrement + + + + Are you sure you want to reset autoincrement value for table '%1'? + Are you sure you want to reset autoincrement value for table '%1'? + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + An error occurred while trying to reset autoincrement value for table '%1': %2 + + + + Autoincrement value for table '%1' has been reset successfully. + Autoincrement value for table '%1' has been reset successfully. + + + + Empty name + Empty name + + + + A blank name for the table is allowed in SQLite, but it is not recommended. +Are you sure you want to create a table with blank name? + A blank name for the table is allowed in SQLite, but it is not recommended. +Are you sure you want to create a table with blank name? + + + + Cannot create a table without at least one column. + Cannot create a table without at least one column. + + + + Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. + Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. + + + + Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. + Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. + + + + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 + + + + Are you sure you want to delete table constraint '%1'? + table window + Are you sure you want to delete table constraint '%1'? + + + + Delete constraint + table window + Delete constraint + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + Uncommitted changes + Uncommitted changes + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + + + + Go back to structure tab + Go back to structure tab + + + + Commit modifications and browse data. + Commit modifications and browse data. + + + + Name + table window indexes + Name + + + + Unique + table window indexes + Unique + + + + Columns + table window indexes + Columns + + + + Partial index condition + table window indexes + Partial index condition + + + + Name + table window triggers + Name + + + + Event + table window triggers + Event + + + + Condition + table window triggers + Condition + + + + Details + table window triggers + Details + + + + Table window "%1" has uncommitted structure modifications and data. + Table window "%1" has uncommitted structure modifications and data. + + + + Table window "%1" has uncommitted data. + Table window "%1" has uncommitted data. + + + + Table window "%1" has uncommitted structure modifications. + Table window "%1" has uncommitted structure modifications. + + + + TriggerColumnsDialog + + + Trigger columns + Trigger columns + + + + Triggering columns: + Triggering columns: + + + + Select all + Select all + + + + Deselect all + Deselect all + + + + TriggerDialog + + + + Trigger + Trigger + + + + On table: + On table: + + + + Action: + Action: + + + + + <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> + <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> + + + + Pre-condition: + Pre-condition: + + + + The scope is still not fully supported by the SQLite database. + The scope is still not fully supported by the SQLite database. + + + + Trigger name: + Trigger name: + + + + When: + When: + + + + List of columns for UPDATE OF action. + List of columns for UPDATE OF action. + + + + Scope: + Scope: + + + + Code: + Code: + + + + Trigger statements to be executed. + Trigger statements to be executed. + + + + DDL + DDL + + + + On view: + On view: + + + + Could not process trigger %1 correctly. Unable to open a trigger dialog. + Could not process trigger %1 correctly. Unable to open a trigger dialog. + + + + Enter a valid condition. + Enter a valid condition. + + + + Enter a valid trigger code. + Enter a valid trigger code. + + + + Error + trigger dialog + Error + + + + An error occurred while executing SQL statements: +%1 + An error occurred while executing SQL statements: +%1 + + + + VersionConvertSummaryDialog + + + Database version convert + Database version convert + + + + Following changes to the SQL statements will be made: + Following changes to the SQL statements will be made: + + + + Before + Before + + + + After + After + + + + ViewWindow + + + Query + Query + + + + View name: + View name: + + + + Output column names + Output column names + + + + + Data + Data + + + + Triggers + Triggers + + + + DDL + DDL + + + + + Could not restore window '%1', because no database or view was stored in session for this window. + Could not restore window '%1', because no database or view was stored in session for this window. + + + + Could not restore window '%1', because database %2 could not be resolved. + Could not restore window '%1', because database %2 could not be resolved. + + + + Could not restore window '%1', because database %2 could not be open. + Could not restore window '%1', because database %2 could not be open. + + + + Could not restore window '%1', because the view %2 doesn't exist in the database %3. + Could not restore window '%1', because the view %2 doesn't exist in the database %3. + + + + + New view %1 + New view %1 + + + + Database + Database + + + + Refresh the view + view window + Refresh the view + + + + Commit the view changes + view window + Commit the view changes + + + + Rollback the view changes + view window + Rollback the view changes + + + + Explicit column names + Explicit column names + + + + Generate output column names automatically basing on result columns of the view. + Generate output column names automatically basing on result columns of the view. + + + + Add column + view window + Add column + + + + Edit column + view window + Edit column + + + + Delete column + view window + Delete column + + + + Move column up + view window + Move column up + + + + Move column down + view window + Move column down + + + + Refresh trigger list + view window + Refresh trigger list + + + + Create new trigger + view window + Create new trigger + + + + Edit selected trigger + view window + Edit selected trigger + + + + Delete selected trigger + view window + Delete selected trigger + + + + View window "%1" has uncommitted structure modifications and data. + View window "%1" has uncommitted structure modifications and data. + + + + View window "%1" has uncommitted data. + View window "%1" has uncommitted data. + + + + View window "%1" has uncommitted structure modifications. + View window "%1" has uncommitted structure modifications. + + + + Could not load data for view %1. Error details: %2 + Could not load data for view %1. Error details: %2 + + + + Uncommitted changes + Uncommitted changes + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + + + + Go back to structure tab + Go back to structure tab + + + + Commit modifications and browse data. + Commit modifications and browse data. + + + + View '%1' was committed successfully. + View '%1' was committed successfully. + + + + Committed changes for view '%1' successfully. + Committed changes for view '%1' successfully. + + + + Committed changes for view '%1' (named before '%2') successfully. + Committed changes for view '%1' (named before '%2') successfully. + + + + Could not commit view changes. Error message: %1 + view window + Could not commit view changes. Error message: %1 + + + + Override columns + Override columns + + + + Currently defined columns will be overriden. Do you want to continue? + Currently defined columns will be overriden. Do you want to continue? + + + + Could not determinate columns returned from the view. The query is problably incomplete or contains errors. + Could not determinate columns returned from the view. The query is problably incomplete or contains errors. + + + + Name + view window triggers + Name + + + + Instead of + view window triggers + Instead of + + + + Condition + view window triggers + Condition + + + + Details + table window triggers + Details + + + + Could not process the %1 view correctly. Unable to open a view window. + Could not process the %1 view correctly. Unable to open a view window. + + + + Empty name + Empty name + + + + A blank name for the view is allowed in SQLite, but it is not recommended. +Are you sure you want to create a view with blank name? + A blank name for the view is allowed in SQLite, but it is not recommended. +Are you sure you want to create a view with blank name? + + + + The SELECT statement could not be parsed. Please correct the query and retry. +Details: %1 + The SELECT statement could not be parsed. Please correct the query and retry. +Details: %1 + + + + The view could not be modified due to internal SQLiteStudio error. Please report this! + The view could not be modified due to internal SQLiteStudio error. Please report this! + + + + The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. + The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. + + + + Following problems will take place while modifying the view. +Would you like to proceed? + view window + Following problems will take place while modifying the view. +Would you like to proceed? + + + + View modification + view window + View modification + + + + WidgetCover + + + Interrupt + Interrupt + + + diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_ro_RO.qm b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_ro_RO.qm deleted file mode 100644 index 2856eb9..0000000 Binary files a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_ro_RO.qm and /dev/null differ diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_ro_RO.ts b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_ro_RO.ts index 5df742d..81a96ec 100644 --- a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_ro_RO.ts +++ b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_ro_RO.ts @@ -1,6612 +1,7111 @@ - - + + AboutDialog - - About SQLiteStudio and licenses - + + About SQLiteStudio and licenses + About SQLiteStudio and licenses - - About - + + About + About - - <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> - + + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> - - Licenses - + + Licenses + Licenses - - Environment - + + Environment + Environment - - Icon directories - + + Icon directories + Icon directories - - Form directories - + + Form directories + Form directories - - Plugin directories - + + SQLite extension directories + SQLite extension directories - - Configuration directory - + + Plugin directories + Plugin directories - - Application directory - + + Configuration directory + Configuration directory - - Qt version: - + + Application directory + Application directory - - SQLite 3 version: - + + Qt version: + Qt version: - - Portable distribution. - + + SQLite 3 version: + SQLite 3 version: - - MacOS X application boundle distribution. - + + Portable distribution. + Portable distribution. - - Operating system managed distribution. - + + MacOS X application bundle distribution. + MacOS X application bundle distribution. - - Copy - + + Operating system managed distribution. + Operating system managed distribution. - - <h3>Table of contents:</h3><ol>%2</ol> - + + <h3>Table of contents:</h3><ol>%2</ol> + <h3>Table of contents:</h3><ol>%2</ol> - - + + BindParamsDialog - - Query parameters - + + Query parameters + Query parameters - - Please provide values for query parameters - + + Please provide values for query parameters + Please provide values for query parameters - - + + + CodeSnippetEditor + + + Filter snippets + Filter snippets + + + + + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + + + + + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + + + + Snippet name + Snippet name + + + + Code assistant shortcut + Code assistant shortcut + + + + Snippet code + Snippet code + + + + Code Snippets editor window has uncommitted modifications. + Code Snippets editor window has uncommitted modifications. + + + + Code Snippets editor + Code Snippets editor + + + + Commit all snippet changes + Commit all snippet changes + + + + Rollback all snippet changes + Rollback all snippet changes + + + + Create new snippet + Create new snippet + + + + Delete selected snippet + Delete selected snippet + + + + Move the snippet up + Move the snippet up + + + + Move the snippet down + Move the snippet down + + + + Code snippets manual + Code snippets manual + + + + Enter a non-empty, unique name of the snippet. + Enter a non-empty, unique name of the snippet. + + + + Enter a non-empty snippet content. + Enter a non-empty snippet content. + + + + This hotkey is not unique in context of a code assistant. + This hotkey is not unique in context of a code assistant. + + + CollationsEditor - - Filter collations - + + Filter collations + Filter collations - - Databases - + + Databases + Databases - - Register in all databases - + + Register in all databases + Register in all databases - - Register in following databases: - + + Register in following databases: + Register in following databases: - - Implementation code: - + + Implementation code: + Implementation code: - - Collation name: - + + Collation name: + Collation name: - - Implementation language: - + + Implementation language: + Implementation language: - - Collations editor - + + Collations editor + Collations editor - - Commit all collation changes - + + Commit all collation changes + Commit all collation changes - - Rollback all collation changes - + + Rollback all collation changes + Rollback all collation changes - - Create new collation - + + Create new collation + Create new collation - - Delete selected collation - + + Delete selected collation + Delete selected collation - - Editing collations manual - + + Editing collations manual + Editing collations manual - - Enter a non-empty, unique name of the collation. - + + Enter a non-empty, unique name of the collation. + Enter a non-empty, unique name of the collation. - - Pick the implementation language. - + + Pick the implementation language. + Pick the implementation language. - - Enter a non-empty implementation code. - + + Enter a non-empty implementation code. + Enter a non-empty implementation code. - - Collations editor window has uncommitted modifications. - + + Collations editor window has uncommitted modifications. + Collations editor window has uncommitted modifications. - - + + ColorButton - - Pick a color - + + Pick a color + Pick a color - - + + ColumnCollatePanel - - Collation name: - + + Collation name: + Collation name: - - Named constraint: - + + Named constraint: + Named constraint: - - Enter a name of the constraint. - + + Enter a name of the constraint. + Enter a name of the constraint. - - Enter a collation name. - + + Enter a collation name. + Enter a collation name. - - + + ColumnDefaultPanel - - Default value: - + + Default value: + Default value: - - Named constraint: - + + Named constraint: + Named constraint: - - Enter a default value expression. - + + Enter a default value expression. + Enter a default value expression. - - Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. - + + Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. + Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. - - Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. - + + Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. + Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. - - Enter a name of the constraint. - + + Enter a name of the constraint. + Enter a name of the constraint. - - + + ColumnDialog - - Column - + + Column + Column + + + + Name and type + Name and type - - Name and type - + + Scale + Scale - - Scale - + + Precision + Precision - - Precision - + + Data type: + Data type: - - Data type: - + + Column name: + Column name: - - Column name: - + + Size: + Size: - - Size: - + + Constraints + Constraints - - Constraints - + + Generated value + Generated value - - Unique - + + Unique + Unique - - - - - - - - Configure - + + + + + + + + + Configure + Configure - - Foreign Key - + + Foreign Key + Foreign Key - - Collate - + + Collate + Collate - - Not NULL - + + Not NULL + Not NULL - - Check condition - + + Check condition + Check condition - - Primary Key - + + Primary Key + Primary Key - - Default - + + Default + Default - - Advanced mode - + + Advanced mode + Advanced mode - - Add constraint - column dialog - + + Add constraint + column dialog + Add constraint - - Edit constraint - column dialog - + + Edit constraint + column dialog + Edit constraint - - - Delete constraint - column dialog - + + + Delete constraint + column dialog + Delete constraint - - Move constraint up - column dialog - + + Move constraint up + column dialog + Move constraint up - - Move constraint down - column dialog - + + Move constraint down + column dialog + Move constraint down - - Add a primary key - column dialog - + + Add a primary key + column dialog + Add a primary key - - Add a foreign key - column dialog - + + Add a foreign key + column dialog + Add a foreign key - - Add an unique constraint - column dialog - + + Add an unique constraint + column dialog + Add an unique constraint - - Add a check constraint - column dialog - + + Add a check constraint + column dialog + Add a check constraint - - Add a not null constraint - column dialog - + + Add a not null constraint + column dialog + Add a not null constraint - - Add a collate constraint - column dialog - + + Add a collate constraint + column dialog + Add a collate constraint - - Add a default constraint - column dialog - + + Add a generated value constraint + column dialog + Add a generated value constraint - - Are you sure you want to delete constraint '%1'? - column dialog - + + Add a default constraint + column dialog + Add a default constraint - - Correct the constraint's configuration. - + + Are you sure you want to delete constraint '%1'? + column dialog + Are you sure you want to delete constraint '%1'? - - This constraint is not officially supported by SQLite 2, -but it's okay to use it. - + + Correct the constraint's configuration. + Correct the constraint's configuration. - - Scale is not allowed for INTEGER PRIMARY KEY columns. - + + Scale is not allowed for INTEGER PRIMARY KEY columns. + Scale is not allowed for INTEGER PRIMARY KEY columns. - - Precision cannot be defined without the scale. - + + Precision cannot be defined without the scale. + Precision cannot be defined without the scale. - - Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. - + + Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. + Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. - - INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. - + + INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. + INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. - - Precision is not allowed for INTEGER PRIMARY KEY columns. - + + Precision is not allowed for INTEGER PRIMARY KEY columns. + Precision is not allowed for INTEGER PRIMARY KEY columns. - - + + + Could not match valid STRICT table datatype from declared type: %1. + Could not match valid STRICT table datatype from declared type: %1. + + + ColumnDialogConstraintsModel - - Type - column dialog constraints - + + Type + column dialog constraints + Type - - Name - column dialog constraints - + + Name + column dialog constraints + Name - - Details - column dialog constraints - + + Details + column dialog constraints + Details - - + + ColumnForeignKeyPanel - - Foreign table: - + + Foreign table: + Foreign table: - - Foreign column: - + + Foreign column: + Foreign column: - - Reactions - + + Reactions + Reactions - - Deferred foreign key - + + Deferred foreign key + Deferred foreign key - - Named constraint - + + Named constraint + Named constraint - - Constraint name - + + Constraint name + Constraint name - - Pick the foreign table. - + + Pick the foreign table. + Pick the foreign table. - - Pick the foreign column. - + + Pick the foreign column. + Pick the foreign column. - - Enter a name of the constraint. - + + Enter a name of the constraint. + Enter a name of the constraint. - - - ColumnPrimaryKeyPanel + + + ColumnGeneratedPanel - - Autoincrement - + + Generating code: + Generating code: - - Sort order: - + + Explicit type: + Explicit type: - - Named constraint: - + + Use "GENERATED ALWAYS" keywords + Use "GENERATED ALWAYS" keywords - - On conflict: - + + Named constraint: + Named constraint: - - Enter a name of the constraint. - + + Enter the column value generating expression. + Enter the column value generating expression. - - - ColumnUniqueAndNotNullPanel - - Named constraint: - + + Invalid value generating expression: %1. + Invalid value generating expression: %1. - - On conflict: - + + Invalid value generating expression. + Invalid value generating expression. - - Enter a name of the constraint. - + + Enter a name of the constraint. + Enter a name of the constraint. - - - CompleterWindow + + + ColumnPrimaryKeyPanel - - Column: %1 - completer statusbar - + + Autoincrement + Autoincrement - - Table: %1 - completer statusbar - + + Sort order: + Sort order: - - Index: %1 - completer statusbar - + + Named constraint: + Named constraint: - - Trigger: %1 - completer statusbar - + + On conflict: + On conflict: - - View: %1 - completer statusbar - + + Enter a name of the constraint. + Enter a name of the constraint. - - Database: %1 - completer statusbar - + + Descending order is not allowed with AUTOINCREMENT. + Descending order is not allowed with AUTOINCREMENT. + + + ColumnUniqueAndNotNullPanel - - Keyword: %1 - completer statusbar - + + Named constraint: + Named constraint: - - Function: %1 - completer statusbar - + + On conflict: + On conflict: - - Operator: %1 - completer statusbar - + + Enter a name of the constraint. + Enter a name of the constraint. + + + CompleterWindow - - String - completer statusbar - + + Column: %1 + completer statusbar + Column: %1 - - Number - completer statusbar - + + Table: %1 + completer statusbar + Table: %1 - - Binary data - completer statusbar - + + Index: %1 + completer statusbar + Index: %1 - - Collation: %1 - completer statusbar - + + Trigger: %1 + completer statusbar + Trigger: %1 - - Pragma function: %1 - completer statusbar - + + View: %1 + completer statusbar + View: %1 - - - ConfigDialog - - - Configuration - + + Database: %1 + completer statusbar + Database: %1 - - Search - + + Keyword: %1 + completer statusbar + Keyword: %1 - - General - + + Function: %1 + completer statusbar + Function: %1 - - Keyboard shortcuts - + + Operator: %1 + completer statusbar + Operator: %1 - - Look & feel - + + String + completer statusbar + String - - Style - + + Number + completer statusbar + Number - - Fonts - + + Binary data + completer statusbar + Binary data - - Colors - + + Collation: %1 + completer statusbar + Collation: %1 - - - Database list - + + Pragma function: %1 + completer statusbar + Pragma function: %1 - - Data browsing - + + Insert a code snippet + Insert a code snippet + + + ConfigDialog - - Data editors - + + + Configuration + Configuration - - Plugins - + + Search + Search - - Code formatters - + + General + General - - If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. - + + Keyboard shortcuts + Keyboard shortcuts - - Sort table columns alphabetically - + + Look & feel + Look & feel - - Expand tables node when connected to a database - + + Style + Style - - <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> - + + Fonts + Fonts - - Display additional labels on the list - + + Code colors + Code colors - - For regular tables labels will show number of columns, indexes and triggers for each of tables. - + + + Database list + Database list - - Display labels for regular tables - + + Code assistant + Code assistant - - Virtual tables will be marked with a 'virtual' label. - + + Data browsing + Data browsing - - Display labels for virtual tables - + + Data editors + Data editors - - Expand views node when connected to a database - + + Plugins + Plugins - - If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) - + + Code formatters + Code formatters - - Sort objects (tables, indexes, triggers and views) alphabetically - + + If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. + If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. - - Display system tables and indexes on the list - + + Sort table columns alphabetically + Sort table columns alphabetically - - Database dialog window - + + Expand tables node when connected to a database + Expand tables node when connected to a database - - <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> - + + <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> + <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> - - Do not mark database to be "permanent" by default - + + Display additional labels on the list + Display additional labels on the list - - <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> - + + For regular tables labels will show number of columns, indexes and triggers for each of tables. + For regular tables labels will show number of columns, indexes and triggers for each of tables. - - Try to bypass dialog completly when dropping database file onto the list - + + Display labels for regular tables + Display labels for regular tables - - Data browsing and editing - + + Virtual tables will be marked with a 'virtual' label. + Virtual tables will be marked with a 'virtual' label. - - - <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> - + + Display labels for virtual tables + Display labels for virtual tables - - Limit initial data column width to (in pixels): - + + Expand views node when connected to a database + Expand views node when connected to a database - - <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> - + + If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) + If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) - - Show column and row details tooltip in data view - + + Sort objects (tables, indexes, triggers and views) alphabetically + Sort objects (tables, indexes, triggers and views) alphabetically - - Number of data rows per page: - + + Display system tables and indexes on the list + Display system tables and indexes on the list - - - <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> - + + Database dialog window + Database dialog window - - Number of memorized table populating configurations - + + <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> + <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> - - <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> - + + Do not mark database to be "permanent" by default + Do not mark database to be "permanent" by default - - Keep NULL value when entering empty value - + + <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> + <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> - - <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> - + + Try to bypass dialog completly when dropping database file onto the list + Try to bypass dialog completly when dropping database file onto the list - - Use DEFAULT value (if defined), when committing NULL value - + + Data browsing and editing + Data browsing and editing - - Inserting new row in data grid - + + + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> - - Before currently selected row - + + Number of memorized table populating configurations + Number of memorized table populating configurations - - After currently selected row - + + Data column width + Data column width - - At the end of data view - + + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> - - Table windows - + + Enlarge column when entering value longer than current width + Enlarge column when entering value longer than current width - - <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> - + + <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> + <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> - - Open Table Windows with the data tab for start - + + Number of data rows per page: + Number of data rows per page: - - <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> - + + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> - - Place data tab as first tab in a Table Window - + + Show column and row details tooltip in data view + Show column and row details tooltip in data view - - View windows - + + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> - - <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> - + + Keep NULL value when entering empty value + Keep NULL value when entering empty value - - Open View Windows with the data tab for start - + + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> - - <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> - + + Use DEFAULT value (if defined), when committing NULL value + Use DEFAULT value (if defined), when committing NULL value - - Place data tab as first tab in a View Window - + + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> - - Data types - + + Limit number of rows for in case of dozens of columns + Limit number of rows for in case of dozens of columns - - Available editors: - + + Inserting new row in data grid + Inserting new row in data grid - - Editors selected for this data type: - + + Before currently selected row + Before currently selected row - - Schema editing - + + After currently selected row + After currently selected row - - Number of DDL changes kept in history. - + + At the end of data view + At the end of data view - - DDL history size: - + + Table windows + Table windows - - Don't show DDL preview dialog when committing schema changes - + + <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> + <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> - - SQL queries - + + Open Table Windows with the data tab for start + Open Table Windows with the data tab for start - - - Number of queries kept in the history. - + + <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> + <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> - - History size: - + + Place data tab as first tab in a Table Window + Place data tab as first tab in a Table Window - - - <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> - + + View windows + View windows - - <p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute.</p> - + + <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> + <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> - - Execute only the query under the cursor - + + Open View Windows with the data tab for start + Open View Windows with the data tab for start - - Number of memorized query parameters - + + <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> + <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> - - Updates - + + Place data tab as first tab in a View Window + Place data tab as first tab in a View Window - - Automatically check for updates at startup - + + Data types + Data types - - Session - + + Available editors: + Available editors: - - Restore last session (active MDI windows) after startup - + + Editors selected for this data type: + Editors selected for this data type: - - Status Field - + + Schema editing + Schema editing - - <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> - + + Number of DDL changes kept in history. + Number of DDL changes kept in history. - - Always open Status panel when new message is printed - + + DDL history size: + DDL history size: - - Filter shortcuts by name or key combination - + + Don't show DDL preview dialog when committing schema changes + Don't show DDL preview dialog when committing schema changes - - Action - + + SQL queries + SQL queries - - Key combination - + + + Number of queries kept in the history. + Number of queries kept in the history. - - - Language - + + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> - - Changing language requires application restart to take effect. - + + History size: + History size: - - Compact layout - + + + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> - - <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> - + + Execute only the query under the cursor + Execute only the query under the cursor - - Use compact layout - + + Number of memorized query parameters + Number of memorized query parameters - - Main window dock areas - + + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> - - Left and right areas occupy corners - + + Use scientific notation for real numbers in the grid view + Use scientific notation for real numbers in the grid view - - Top and bottom areas occupy corners - + + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> - - Hide built-in plugins - + + Limit automatic data column width to (in pixels): + Limit automatic data column width to (in pixels): - - Current style: - + + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> - - Preview - + + Keep at least the width to show complete column name + Keep at least the width to show complete column name - - Enabled - + + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> - - Disabled - + + Wrap lines in SQL editor + Wrap lines in SQL editor - - Active formatter plugin - + + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> - - SQL editor font - + + Highlight current query + Highlight current query - - Database list font - + + Updates + Updates - - Database list additional label font - + + Automatically check for updates at startup + Automatically check for updates at startup - - Data view font - + + Session + Session - - Status field font - + + Restore last session (active MDI windows) after startup + Restore last session (active MDI windows) after startup - - SQL editor colors - + + Allow multiple instances of the application at the same time + Allow multiple instances of the application at the same time - - Current line background - + + Status Field + Status Field - - <p>SQL strings are enclosed with single quote characters.</p> - + + <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> + <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> - - String foreground - + + Always open Status panel when new message is printed + Always open Status panel when new message is printed - - <p>Bind parameters are placeholders for values yet to be provided by the user. They have one of the forms:</p><ul><li>:param_name</li><li>$param_name</li><li>@param_name</li><li>?</li></ul> - + + Code syntax colors + Code syntax colors - - Bind parameter foreground - + + Keyword foreground + Keyword foreground - - Highlighted parenthesis background - + + Regular foreground + Regular foreground - - <p>BLOB values are binary values represented as hexadecimal numbers, like:</p><ul><li>X'12B4'</li><li>x'46A2F4'</li></ul> - + + String foreground + String foreground - - BLOB value foreground - + + Comment foreground + Comment foreground - - Regular foreground - + + Valid objects foreground + Valid objects foreground - - Line numbers area background - + + Current query background + Current query background - - Keyword foreground - + + Bind parameter foreground + Bind parameter foreground - - Number foreground - + + Current line background + Current line background - - Comment foreground - + + Matched parenthesis background + Matched parenthesis background - - <p>Valid objects are name of tables, indexes, triggers, or views that exist in the SQLite database.</p> - + + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> - - Valid objects foreground - + + Number foreground + Number foreground - - Data view colors - + + BLOB value foreground + BLOB value foreground - - <p>Any data changes will be outlined with this color, until they're committed to the database.</p> - + + Matched parenthesis foreground + Matched parenthesis foreground - - Uncommitted data outline color - + + Reset to defaults + Reset to defaults - - <p>In case of error while committing data changes, the problematic cell will be outlined with this color.</p> - + + Filter shortcuts by name or key combination + Filter shortcuts by name or key combination - - Commit error outline color - + + Action + Action - - NULL value foreground - + + Key combination + Key combination - - Deleted row background - + + + Language + Language - - Database list colors - + + Changing language requires application restart to take effect. + Changing language requires application restart to take effect. - - <p>Additional labels are those which tell you SQLite version, number of objects deeper in the tree, etc.</p> - + + Compact layout + Compact layout - - Additional labels foreground - + + <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> + <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> - - Status field colors - + + Use compact layout + Use compact layout - - Information message foreground - + + Main window dock areas + Main window dock areas - - Warning message foreground - + + Left and right areas occupy corners + Left and right areas occupy corners - - Error message foreground - + + Top and bottom areas occupy corners + Top and bottom areas occupy corners - - Description: - plugin details - + + Hide built-in plugins + Hide built-in plugins - - Category: - plugin details - + + Current style: + Current style: - - Version: - plugin details - + + Preview + Preview - - Author: - plugin details - + + Enabled + Enabled - - Internal name: - plugin details - + + Disabled + Disabled - - Dependencies: - plugin details - + + Active formatter plugin + Active formatter plugin - - Conflicts: - plugin details - + + SQL editor font + SQL editor font - - Plugin details - + + Database list font + Database list font - - Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. - + + Database list additional label font + Database list additional label font - - %1 (built-in) - plugins manager in configuration dialog - + + Data view font + Data view font - - Details - + + Status field font + Status field font - - No plugins in this category. - + + Code assistant settings + Code assistant settings - - Add new data type - + + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> - - Rename selected data type - + + Automatically trigger the assistant after a dot is typed after an object name + Automatically trigger the assistant after a dot is typed after an object name - - Delete selected data type - + + Description: + plugin details + Description: - - Help for configuring data type editors - + + Category: + plugin details + Category: - - - ConstraintCheckPanel - - The condition - + + Version: + plugin details + Version: - - Named constraint: - + + Author: + plugin details + Author: - - On conflict - + + Internal name: + plugin details + Internal name: - - Enter a valid condition. - + + Dependencies: + plugin details + Dependencies: - - Enter a name of the constraint. - + + Conflicts: + plugin details + Conflicts: - - - ConstraintDialog - - New constraint - constraint dialog - + + Plugin details + Plugin details - - Create - constraint dialog - + + Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. + Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. - - Edit constraint - dialog window - + + %1 (built-in) + plugins manager in configuration dialog + %1 (built-in) - - Apply - constraint dialog - + + Details + Details - - Primary key - table constraints - + + No plugins in this category. + No plugins in this category. - - Foreign key - table constraints - + + Add new data type + Add new data type - - Unique - table constraints - + + Rename selected data type + Rename selected data type - - Not NULL - table constraints - + + Delete selected data type + Delete selected data type - - Check - table constraints - + + Help for configuring data type editors + Help for configuring data type editors - - Collate - table constraints - + + Clear hotkey for this action + Clear hotkey for this action - - Default - table constraints - + + Restore original hotkey for this action + Restore original hotkey for this action - - - ConstraintTabModel - - Table - table constraints - + + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + + + ConstraintCheckPanel - - Column (%1) - table constraints - + + The condition + The condition - - Scope - table constraints - + + Named constraint: + Named constraint: - - Type - table constraints - + + On conflict + On conflict - - Details - table constraints - + + Enter a valid condition. + Enter a valid condition. - - Name - table constraints - + + Enter a name of the constraint. + Enter a name of the constraint. - - - CssDebugDialog + + + ConstraintDialog - - SQLiteStudio CSS console - + + New constraint + constraint dialog + New constraint - - - DataView - - Filter data - data view - + + Create + constraint dialog + Create - - Grid view - + + Edit constraint + dialog window + Edit constraint - - Form view - + + Apply + constraint dialog + Apply - - Refresh table data - data view - + + Primary key + table constraints + Primary key - - First page - data view - + + Foreign key + table constraints + Foreign key - - Previous page - data view - + + Unique + table constraints + Unique - - Next page - data view - + + Not NULL + table constraints + Not NULL - - Last page - data view - + + Check + table constraints + Check - - Filter - + + Generated + table constraints + Generated - - Hit Enter key or press "Apply filter" button on toolbar to apply new value. - + + Collate + table constraints + Collate - - Show filter inputs per column - data view - + + Default + table constraints + Default + + + ConstraintTabModel - - Apply filter - data view - + + Table + table constraints + Table - - Commit changes for selected cells - data view - + + Column (%1) + table constraints + Column (%1) - - Rollback changes for selected cells - data view - + + Scope + table constraints + Scope - - Show grid view of results - sql editor - + + Type + table constraints + Type - - Show form view of results - sql editor - + + Details + table constraints + Details - - Filter by text - data view - + + Name + table constraints + Name + + + CssDebugDialog - - Filter by the Regular Expression - data view - + + SQLiteStudio CSS console + SQLiteStudio CSS console + + + DataView - - Filter by SQL expression - data view - + + Filter data + data view + Filter data - - Tabs on top - data view - + + Grid view + Grid view - - Tabs at bottom - data view - + + Form view + Form view - - Place new rows above selected row - data view - + + Refresh table data + data view + Refresh table data - - Place new rows below selected row - data view - + + First page + data view + First page - - Place new rows at the end of the data view - data view - + + Previous page + data view + Previous page - - Total number of rows is being counted. -Browsing other pages will be possible after the row counting is done. - + + Next page + data view + Next page - - Row: %1 - + + Last page + data view + Last page - - - DbConverterDialog - - Convert database - + + Commit changes for selected cells + data view + Commit changes for selected cells - - Source database - + + Rollback changes for selected cells + data view + Rollback changes for selected cells - - Source database version: - + + Show grid view of results + data view + Show grid view of results - - Target database - + + Show form view of results + data view + Show form view of results - - Target version: - + + Filter by text (if contains) + data view + Filter by text (if contains) - - This is the file that will be created as a result of the conversion. - + + Filter strictly by text (if equals) + data view + Filter strictly by text (if equals) - - Target file: - + + Tabs on top + data view + Tabs on top - - Name of the new database: - + + Tabs at bottom + data view + Tabs at bottom - - This is the name that the converted database will be added to SQLiteStudio with. - + + Place new rows above selected row + data view + Place new rows above selected row - - Select source database - + + Place new rows below selected row + data view + Place new rows below selected row - - Enter valid and writable file path. - + + Place new rows at the end of the data view + data view + Place new rows at the end of the data view - - Entered file exists and will be overwritten. - + + Total number of rows is being counted. +Browsing other pages will be possible after the row counting is done. + Total number of rows is being counted. +Browsing other pages will be possible after the row counting is done. - - Enter a not empty, unique name (as in the list of databases on the left). - + + Row: %1 + Row: %1 - - No valid target dialect available. Conversion not possible. - + + Filter + Filter - - Select valid target dialect. - + + Hit Enter key or press "Apply filter" button on toolbar to apply new value. + Hit Enter key or press "Apply filter" button on toolbar to apply new value. - - Database %1 has been successfully converted and now is available under new name: %2 - + + Filter by the Regular Expression + data view + Filter by the Regular Expression - - SQL statements conversion - + + Filter by SQL expression + data view + Filter by SQL expression - - Following error occurred while converting SQL statements to the target SQLite version: - + + Show filter inputs per column + data view + Show filter inputs per column - - Would you like to ignore those errors and proceed? - + + Apply filter + data view + Apply filter - - + + DbDialog - - Database - + + Database + Database - - Database type - + + Database type + Database type - - Database driver - + + Database driver + Database driver - - - File - + + + File + File - - Create new database file - + + Name (on the list) + Name (on the list) - - Name (on the list) - + + Options + Options - - Options - + + <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> + aasfd + <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> - - <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> - aasfd - + + Permanent (keep it in configuration) + Permanent (keep it in configuration) - - Permanent (keep it in configuration) - + + Test connection + Test connection - - Test connection - + + Select new or existing file on local computer + Select new or existing file on local computer - - Browse for existing database file on local computer - + + Browse + Browse - - Browse - + + Database type not selected. + Database type not selected. - - Enter an unique database name. - + + Database path not specified. + Database path not specified. - - This name is already in use. Please enter unique name. - + + Enter an unique database name. + Enter an unique database name. - - <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> - + + This name is already in use. Please enter unique name. + This name is already in use. Please enter unique name. - - Enter a database file path. - + + <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> + <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> - - This database is already on the list under name: %1 - + + Enter a database file path. + Enter a database file path. - - Select a database type. - + + This database is already on the list under name: %1 + This database is already on the list under name: %1 - - + + + Select a database type. + Select a database type. + + + DbObjectDialogs - - Delete table - + + Delete table + Delete table - - Are you sure you want to delete table %1? - + + Are you sure you want to delete table %1? + Are you sure you want to delete table %1? - - Delete index - + + Delete index + Delete index - - Are you sure you want to delete index %1? - + + Are you sure you want to delete index %1? + Are you sure you want to delete index %1? - - Delete trigger - + + Delete trigger + Delete trigger - - Are you sure you want to delete trigger %1? - + + Are you sure you want to delete trigger %1? + Are you sure you want to delete trigger %1? - - Delete view - + + Delete view + Delete view - - Are you sure you want to delete view %1? - + + Are you sure you want to delete view %1? + Are you sure you want to delete view %1? - - - Error while dropping %1: %2 - + + + Error while dropping %1: %2 + Error while dropping %1: %2 - - Delete objects - + + Delete objects + Delete objects - - Are you sure you want to delete following objects: + + Are you sure you want to delete following objects: %1 - + Are you sure you want to delete following objects: +%1 - - Cannot start transaction. Details: %1 - + + Cannot start transaction. Details: %1 + Cannot start transaction. Details: %1 - - Cannot commit transaction. Details: %1 - + + Cannot commit transaction. Details: %1 + Cannot commit transaction. Details: %1 - - + + DbTree - - Databases - + + Databases + Databases - - Filter by name - + + Filter by name + Filter by name - - Copy - + + Copy + Copy - - Paste - + + Paste + Paste - - Select all - + + Select all + Select all - - Create a group - + + Create a group + Create a group - - Delete the group - + + Delete the group + Delete the group - - Rename the group - + + Rename the group + Rename the group - - Import - + + &Add a database + &Add a database - - Export the table - + + &Edit the database + &Edit the database - - Import into the table - + + &Remove the database + &Remove the database - - Populate table - + + &Connect to the database + &Connect to the database - - Create similar table - + + &Disconnect from the database + &Disconnect from the database - - Reset autoincrement sequence - + + Import + Import - - Add a column - + + &Export the database + &Export the database - - Edit the column - + + Vac&uum + Vac&uum - - Delete the column - + + &Integrity check + &Integrity check - - Delete selected items - + + Create a &table + Create a &table - - Clear filter - + + Edit the t&able + Edit the t&able - - &Add a database - + + Delete the ta&ble + Delete the ta&ble - - Execution from file cancelled. Any queries executed so far have been rolled back. - + + Export the table + Export the table - - &Edit the database - + + Import into the table + Import into the table - - &Remove the database - + + Populate table + Populate table - - &Connect to the database - + + Create similar table + Create similar table - - &Disconnect from the database - + + Reset autoincrement sequence + Reset autoincrement sequence - - &Export the database - + + Create an &index + Create an &index - - Con&vert database type - + + Edit the i&ndex + Edit the i&ndex - - Vac&uum - + + Delete the in&dex + Delete the in&dex - - &Integrity check - + + Create a trig&ger + Create a trig&ger - - Create a &table - + + Edit the trigg&er + Edit the trigg&er - - Edit the t&able - + + Delete the trigge&r + Delete the trigge&r - - Delete the ta&ble - + + Create a &view + Create a &view - - Create an &index - + + Edit the v&iew + Edit the v&iew - - Edit the i&ndex - + + Delete the vi&ew + Delete the vi&ew - - Delete the in&dex - + + Add a column + Add a column - - Create a trig&ger - + + Edit the column + Edit the column - - Edit the trigg&er - + + Delete the column + Delete the column - - Delete the trigge&r - + + Delete selected items + Delete selected items - - Create a &view - + + Clear filter + Clear filter - - Edit the v&iew - + + &Refresh all database schemas + &Refresh all database schemas - - Delete the vi&ew - + + Re&fresh selected database schema + Re&fresh selected database schema - - &Refresh all database schemas - + + + Erase table data + Erase table data - - Re&fresh selected database schema - + + Open file's directory + Open file's directory - - - Erase table data - + + Execute SQL from file + Execute SQL from file - - Open file's directory - + + Increase font size + database list + Increase font size - - Execute SQL from file - + + Decrease font size + database list + Decrease font size - - - Database - + + + Database + Database - - Grouping - + + Grouping + Grouping - - Generate query for table - + + Generate query for table + Generate query for table - - - Create group - + + + Create group + Create group - - Group name - + + Group name + Group name - - Entry with name %1 already exists in group %2. - + + Entry with name %1 already exists in group %2. + Entry with name %1 already exists in group %2. - - Delete group - + + Delete group + Delete group - - Are you sure you want to delete group %1? + + Are you sure you want to delete group %1? All objects from this group will be moved to parent group. - + Are you sure you want to delete group %1? +All objects from this group will be moved to parent group. - - Are you sure you want to remove database '%1' from the list? - + + Are you sure you want to remove database '%1' from the list? + Are you sure you want to remove database '%1' from the list? - - Are you sure you want to remove following databases from the list: + + Are you sure you want to remove following databases from the list: %1 - + Are you sure you want to remove following databases from the list: +%1 - - Remove database - + + Remove database + Remove database - - - Cannot import, because no import plugin is loaded. - + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. - - - Cannot export, because no export plugin is loaded. - + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. - - Vacuum (%1) - + + Vacuum (%1) + Vacuum (%1) - - Integrity check (%1) - + + Integrity check (%1) + Integrity check (%1) - - Reset autoincrement - + + Reset autoincrement + Reset autoincrement - - Are you sure you want to reset autoincrement value for table '%1'? - + + Are you sure you want to reset autoincrement value for table '%1'? + Are you sure you want to reset autoincrement value for table '%1'? - - An error occurred while trying to reset autoincrement value for table '%1': %2 - + + An error occurred while trying to reset autoincrement value for table '%1': %2 + An error occurred while trying to reset autoincrement value for table '%1': %2 - - Autoincrement value for table '%1' has been reset successfully. - + + Autoincrement value for table '%1' has been reset successfully. + Autoincrement value for table '%1' has been reset successfully. - - Are you sure you want to delete all data from table(s): %1? - + + Are you sure you want to delete all data from table(s): %1? + Are you sure you want to delete all data from table(s): %1? - - An error occurred while trying to delete data from table '%1': %2 - + + An error occurred while trying to delete data from table '%1': %2 + An error occurred while trying to delete data from table '%1': %2 - - All data has been deleted for table '%1'. - + + All data has been deleted for table '%1'. + All data has been deleted for table '%1'. - - Following objects will be deleted: %1. - + + Following objects will be deleted: %1. + Following objects will be deleted: %1. - - Following databases will be removed from list: %1. - + + Following databases will be removed from list: %1. + Following databases will be removed from list: %1. - - Remainig objects from deleted group will be moved in place where the group used to be. - + + Remainig objects from deleted group will be moved in place where the group used to be. + Remainig objects from deleted group will be moved in place where the group used to be. - - %1<br><br>Are you sure you want to continue? - + + %1<br><br>Are you sure you want to continue? + %1<br><br>Are you sure you want to continue? - - Delete objects - + + Delete objects + Delete objects + + + DbTreeItemDelegate - - Could not execute SQL, because application has failed to start transaction: %1 - + + error + dbtree labels + error - - Could not open file '%1' for reading: %2 - + + (system table) + database tree label + (system table) - - Could not execute SQL, because application has failed to commit the transaction: %1 - + + (virtual) + virtual table label + (virtual) - - Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. - + + (system index) + database tree label + (system index) + + + DbTreeModel - - Finished executing %1 queries in %2 seconds. - + + Database: %1 + dbtree tooltip + Database: %1 - - Could not execute SQL due to error. - + + URI: + dbtree tooltip + URI: - - - DbTreeItemDelegate - - error - dbtree labels - + + Version: + dbtree tooltip + Version: - - (system table) - database tree label - + + File size: + dbtree tooltip + File size: - - (virtual) - virtual table label - + + Encoding: + dbtree tooltip + Encoding: - - (system index) - database tree label - + + Error: + dbtree tooltip + Error: - - - DbTreeModel - - Database: %1 - dbtree tooltip - + + Table : %1 + dbtree tooltip + Table : %1 - - Version: - dbtree tooltip - + + Columns (%1): + dbtree tooltip + Columns (%1): - - File size: - dbtree tooltip - + + Indexes (%1): + dbtree tooltip + Indexes (%1): - - Encoding: - dbtree tooltip - + + Triggers (%1): + dbtree tooltip + Triggers (%1): - - Error: - dbtree tooltip - + + Copy + Copy - - Table : %1 - dbtree tooltip - + + Move + Move - - Columns (%1): - dbtree tooltip - + + Include data + Include data - - Indexes (%1): - dbtree tooltip - + + Include indexes + Include indexes - - Triggers (%1): - dbtree tooltip - + + Include triggers + Include triggers - - Copy - + + Abort + Abort - - Move - + + Could not add dropped database file '%1' automatically. Manual setup is necessary. + Could not add dropped database file '%1' automatically. Manual setup is necessary. - - Include data - + + Referenced tables + Referenced tables - - Include indexes - + + Do you want to include following referenced tables as well: +%1 + Do you want to include following referenced tables as well: +%1 - - Include triggers - + + Name conflict + Name conflict - - Abort - + + Following object already exists in the target database. +Please enter new, unique name, or press '%1' to abort the operation: + Following object already exists in the target database. +Please enter new, unique name, or press '%1' to abort the operation: - - Could not add dropped database file '%1' automatically. Manual setup is necessary. - + + SQL statements conversion + SQL statements conversion - - Referenced tables - + + Following error occurred while converting SQL statements to the target SQLite version: + Following error occurred while converting SQL statements to the target SQLite version: - - Do you want to include following referenced tables as well: -%1 - + + Would you like to ignore those errors and proceed? + Would you like to ignore those errors and proceed? + + + DdlHistoryWindow - - Name conflict - + + Filter by database: + Filter by database: - - Following object already exists in the target database. -Please enter new, unique name, or press '%1' to abort the operation: - + + Clear entire history + Clear entire history - - SQL statements conversion - + + -- Queries executed on database %1 (%2) +-- Date and time of execution: %3 +%4 + -- Queries executed on database %1 (%2) +-- Date and time of execution: %3 +%4 - - Following error occurred while converting SQL statements to the target SQLite version: - + + Clear history + Clear history - - Would you like to ignore those errors and proceed? - + + Are you sure you want to erase entire DDL history? + Are you sure you want to erase entire DDL history? - - - DdlHistoryWindow - - Filter by database: - + + DDL history + DDL history + + + DdlPreviewDialog - - -- Queries executed on database %1 (%2) --- Date and time of execution: %3 -%4 - + + Queries to be executed + Queries to be executed - - DDL history - + + Don't show again + Don't show again - - - DdlPreviewDialog + + + DebugConsole - - Queries to be executed - + + SQLiteStudio Debug Console + SQLiteStudio Debug Console + + + EditorWindow - - Don't show again - + + SQL editor + SQL editor - - - DebugConsole - - SQLiteStudio Debug Console - + + Query + Query - - - EditorWindow - - Query - + + History + History - - History - + + Results in the separate tab + Results in the separate tab - - Results in the separate tab - + + Results below the query + Results below the query - - Results below the query - + + + SQL editor %1 + SQL editor %1 - - - SQL editor %1 - + + + Results + Results - - Results - + + Execute query + Execute query - - Execute query - + + Explain query + Explain query - - Explain query - + + Clear execution history + sql editor + Clear execution history - - Clear execution history - sql editor - + + Export results + sql editor + Export results - - Export results - sql editor - + + Create view from query + sql editor + Create view from query - - Create view from query - sql editor - + + Previous database + Previous database - - Previous database - + + Next database + Next database - - Next database - + + Show next tab + sql editor + Show next tab - - Show next tab - sql editor - + + Show previous tab + sql editor + Show previous tab - - Show previous tab - sql editor - + + Focus results below + sql editor + Focus results below - - Focus results below - sql editor - + + Focus SQL editor above + sql editor + Focus SQL editor above - - Focus SQL editor above - sql editor - + + Delete selected SQL history entries + sql editor + Delete selected SQL history entries - - Delete selected SQL history entries - sql editor - + + Execute single query under cursor + Execute single query under cursor - - Active database (%1/%2) - + + Execute all queries in editor + Execute all queries in editor - - Query finished in %1 second(s). Rows affected: %2 - + + Active database (%1/%2) + Active database (%1/%2) - - Query finished in %1 second(s). - + + Query finished in %1 second(s). Rows affected: %2 + Query finished in %1 second(s). Rows affected: %2 - - Clear execution history - + + Query finished in %1 second(s). + Query finished in %1 second(s). - - Are you sure you want to erase the entire SQL execution history? This cannot be undone. - + + Clear execution history + Clear execution history - - Cannot export, because no export plugin is loaded. - + + Are you sure you want to erase the entire SQL execution history? This cannot be undone. + Are you sure you want to erase the entire SQL execution history? This cannot be undone. - - No database selected in the SQL editor. Cannot create a view for unknown database. - + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. - - Editor window "%1" has uncommitted data. - + + No database selected in the SQL editor. Cannot create a view for unknown database. + No database selected in the SQL editor. Cannot create a view for unknown database. - - + + + Editor window "%1" has uncommitted data. + Editor window "%1" has uncommitted data. + + + ErrorsConfirmDialog - - Errors - + + Errors + Errors - - Following errors occured: - + + Following errors occured: + Following errors occured: - - Would you like to proceed? - + + Would you like to proceed? + Would you like to proceed? - - + + ExecFromFileDialog - - Execute SQL from file - + + Execute SQL from file + Execute SQL from file - - Input file - + + Input file + Input file - - Path to file - + + Path to file + Path to file - - Browse for file - + + Browse for file + Browse for file - - Options - + + Options + Options - - File encoding - + + File encoding + File encoding - - Skip failing SQL statements - + + Skip failing SQL statements + Skip failing SQL statements - - SQL scripts (*.sql);;All files (*) - + + SQL scripts (*.sql);;All files (*) + SQL scripts (*.sql);;All files (*) - - Execute SQL file - + + Execute SQL file + Execute SQL file - - Please provide file to be executed. - + + Please provide file to be executed. + Please provide file to be executed. - - Provided file does not exist or cannot be read. - + + Provided file does not exist or cannot be read. + Provided file does not exist or cannot be read. - - + + ExportDialog - - Export - + + Export + Export - - What do you want to export? - + + What do you want to export? + What do you want to export? - - A database - + + A database + A database - - A single table - + + A single table + A single table - - Query results - + + Query results + Query results - - Table to export - + + Table to export + Table to export - - Database - + + Database + Database - - Table - + + Table + Table - - Options - + + Options + Options - - When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. - + + When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. + When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. - - Export table data - + + Export table data + Export table data - - Export table indexes - + + Export table indexes + Export table indexes - - Export table triggers - + + Export table triggers + Export table triggers - - Note, that exporting table indexes and triggers may be unsupported by some output formats. - + + Note, that exporting table indexes and triggers may be unsupported by some output formats. + Note, that exporting table indexes and triggers may be unsupported by some output formats. - - Select database objects to export - + + Select database objects to export + Select database objects to export - - Export data from tables - + + Export data from tables + Export data from tables - - Select all - + + Select all + Select all - - Deselect all - + + Deselect all + Deselect all - - - Database: - + + + Database: + Database: - - Query to export results for - + + Query to export results for + Query to export results for - - Query to be executed for results: - + + Query to be executed for results: + Query to be executed for results: - - Export format and options - + + Export format and options + Export format and options - - Export format - + + Export format + Export format - - Output - + + Output + Output - - Exported file path - + + Exported file path + Exported file path - - Clipboard - + + Clipboard + Clipboard - - File - + + File + File - - Exported text encoding: - + + Exported text encoding: + Exported text encoding: - - Export format options - + + Export format options + Export format options - - Cancel - + + Cancel + Cancel - - - - Select database to export. - + + + + Select database to export. + Select database to export. - - Select table to export. - + + Select table to export. + Select table to export. - - Enter valid query to export. - + + Enter valid query to export. + Enter valid query to export. - - Select at least one object to export. - + + Select at least one object to export. + Select at least one object to export. - - You must provide a file name to export to. - + + You must provide a file name to export to. + You must provide a file name to export to. - - Path you provided is an existing directory. You cannot overwrite it. - + + Path you provided is an existing directory. You cannot overwrite it. + Path you provided is an existing directory. You cannot overwrite it. - - The directory '%1' does not exist. - + + The directory '%1' does not exist. + The directory '%1' does not exist. - - The file '%1' exists and will be overwritten. - + + The file '%1' exists and will be overwritten. + The file '%1' exists and will be overwritten. - - All files (*) - + + All files (*) + All files (*) - - Pick file to export to - + + Pick file to export to + Pick file to export to - - Internal error during export. This is a bug. Please report it. - + + Internal error during export. This is a bug. Please report it. + Internal error during export. This is a bug. Please report it. - - + + FileExecErrorsDialog - - Execution errors - + + Execution errors + Execution errors + + + + Following errors were encountered during execution of SQL statements from the file: + Following errors were encountered during execution of SQL statements from the file: - - Following errors were encountered during execution of SQL statements from the file: - + + SQL + SQL - - SQL - + + Error + Error - - Error - + + Statements that were executed successfully were commited. + Statements that were executed successfully were commited. - - Statements that were executed successfully were commited. - + + Statements that were executed successfully were rolled back. + Statements that were executed successfully were rolled back. + + + FkComboBox - - Statements that were executed successfully were rolled back. - + + Cannot edit this cell. Details: %1 + Cannot edit this cell. Details: %1 - - + + FontEdit - - Choose font - font configuration - + + Choose font + font configuration + Choose font - - + + Form - - Active SQL formatter plugin - + + Active SQL formatter plugin + Active SQL formatter plugin - - + + FormView - - Commit row - form view - + + Commit row + form view + Commit row - - Rollback row - form view - + + Rollback row + form view + Rollback row - - First row - form view - + + First row + form view + First row - - Previous row - form view - + + Previous row + form view + Previous row - - Next row - form view - + + Next row + form view + Next row - - Last row - form view - + + Last row + form view + Last row - - Insert new row - form view - + + Insert new row + form view + Insert new row - - Delete current row - form view - + + Delete current row + form view + Delete current row - - + + FunctionsEditor - - Filter funtions - + + Filter functions + Filter functions - - Input arguments - + + Input arguments + Input arguments - - Undefined - + + Undefined + Undefined - - Databases - + + Databases + Databases - - Register in all databases - + + Register in all databases + Register in all databases - - Register in following databases: - + + Register in following databases: + Register in following databases: - - Type: - + + Type: + Type: - - Function name: - + + Function name: + Function name: - - Implementation language: - + + Implementation language: + Implementation language: - - Initialization code: - + + Deterministic + Deterministic - - - Function implementation code: - + + Initialization code: + Initialization code: - - Final step implementation code: - + + + Function implementation code: + Function implementation code: - - SQL function editor - + + Final step implementation code: + Final step implementation code: - - Commit all function changes - + + SQL functions editor + SQL functions editor - - Rollback all function changes - + + Commit all function changes + Commit all function changes - - Create new function - + + Rollback all function changes + Rollback all function changes - - Delete selected function - + + Create new function + Create new function - - Custom SQL functions manual - + + Delete selected function + Delete selected function - - Add function argument - + + Custom SQL functions manual + Custom SQL functions manual - - Rename function argument - + + Add function argument + Add function argument - - Delete function argument - + + Rename function argument + Rename function argument - - Move function argument up - + + Delete function argument + Delete function argument - - Move function argument down - + + Move function argument up + Move function argument up - - Scalar - + + Move function argument down + Move function argument down - - Aggregate - + + Scalar + Scalar - - Enter a non-empty, unique name of the function. - + + Aggregate + Aggregate - - Pick the implementation language. - + + Enter a non-empty, unique name of the function. + Enter a non-empty, unique name of the function. - - Per step code: - + + Pick the implementation language. + Pick the implementation language. - - Enter a non-empty implementation code. - + + Per step code: + Per step code: - - argument - new function argument name in function editor window - + + Enter a non-empty implementation code. + Enter a non-empty implementation code. - - Functions editor window has uncommitted modifications. - + + argument + new function argument name in function editor window + argument - - + + + Functions editor window has uncommitted modifications. + Functions editor window has uncommitted modifications. + + + ImportDialog - - Import data - + + Import data + Import data - - Table to import to - + + Table to import to + Table to import to - - Table - + + Table + Table - - Database - + + Database + Database - - Data source to import from - + + Data source to import from + Data source to import from - - Data source type - + + Data source type + Data source type - - Options - + + Options + Options - - Text encoding: - + + Text encoding: + Text encoding: - - Input file: - + + Input file: + Input file: - - <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> - + + <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> + <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> - - Ignore errors - + + Ignore errors + Ignore errors - - Data source options - + + Data source options + Data source options - - Cancel - + + Cancel + Cancel - - If you type table name that doesn't exist, it will be created. - + + If you type table name that doesn't exist, it will be created. + If you type table name that doesn't exist, it will be created. - - Enter the table name - + + Enter the table name + Enter the table name - - Select import plugin. - + + Select import plugin. + Select import plugin. - - You must provide a file to import from. - + + You must provide a file to import from. + You must provide a file to import from. - - The file '%1' does not exist. - + + The file '%1' does not exist. + The file '%1' does not exist. - - Path you provided is a directory. A regular file is required. - + + Path you provided is a directory. A regular file is required. + Path you provided is a directory. A regular file is required. - - Pick file to import from - + + Pick file to import from + Pick file to import from - - + + IndexDialog - - - Index - + + + Index + Index - - Column - + + Column + Column - - Collation - + + Sort + Sort - - Sort - + + Collation + Collation - - On table: - + + On table: + On table: - - Delete selected indexed expression - + + Delete selected indexed expression + Delete selected indexed expression - - Moves selected index column up in the order, making it more significant in the index. - + + Moves selected index column up in the order, making it more significant in the index. + Moves selected index column up in the order, making it more significant in the index. - - Moves selected index column down in the order, making it less significant in the index. - + + Moves selected index column down in the order, making it less significant in the index. + Moves selected index column down in the order, making it less significant in the index. - - Partial index condition - + + Partial index condition + Partial index condition - - Unique index - + + Unique index + Unique index - - Index name: - + + Index name: + Index name: - - Edit selected indexed expression - + + Edit selected indexed expression + Edit selected indexed expression - - Add indexed expression - + + Add indexed expression + Add indexed expression - - DDL - + + DDL + DDL - - Tried to open index dialog for closed or inexisting database. - + + Tried to open index dialog for closed or inexisting database. + Tried to open index dialog for closed or inexisting database. - - Could not process index %1 correctly. Unable to open an index dialog. - + + Could not process index %1 correctly. Unable to open an index dialog. + Could not process index %1 correctly. Unable to open an index dialog. - - Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. - + + Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. + Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. - - Pick the table for the index. - + + Pick the table for the index. + Pick the table for the index. - - Select at least one column. - + + Select at least one column. + Select at least one column. - - Enter a valid condition. - + + Enter a valid condition. + Enter a valid condition. - - default - index dialog - + + default + index dialog + default - - Sort order - table constraints - + + Sort order + table constraints + Sort order - - - Error - index dialog - + + + Error + index dialog + Error - - Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? - + + Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? + Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? - - An error occurred while executing SQL statements: + + An error occurred while executing SQL statements: %1 - + An error occurred while executing SQL statements: +%1 - - + + IndexExprColumnDialog - - Indexed expression - + + Indexed expression + Indexed expression - - Expression to index - + + Expression to index + Expression to index - - This expression is already indexed by the index. - + + This expression is already indexed by the index. + This expression is already indexed by the index. - - Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. - + + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. - - Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. - + + Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. + Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. - - It's forbidden to use 'SELECT' statements in indexed expressions. - + + It's forbidden to use 'SELECT' statements in indexed expressions. + It's forbidden to use 'SELECT' statements in indexed expressions. - - Enter an indexed expression. - + + Enter an indexed expression. + Enter an indexed expression. - - Invalid expression. - + + Invalid expression. + Invalid expression. - - + + LanguageDialog - - Language - + + Language + Language - - Please choose language: - + + Please choose language: + Please choose language: - - + + MainWindow - - Database toolbar - + + Database toolbar + Database toolbar + + + + Structure toolbar + Structure toolbar - - Structure toolbar - + + Tools + Tools - - Tools - + + Window list + Window list - - Window list - + + View toolbar + View toolbar - - View toolbar - + + Configuration widgets + Configuration widgets - - Configuration widgets - + + Syntax highlighting engines + Syntax highlighting engines - - Syntax highlighting engines - + + Data editors + Data editors - - Data editors - + + Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. + Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. - - Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. - + + Running in debug mode. Debug messages are printed to the standard output. + Running in debug mode. Debug messages are printed to the standard output. - - Running in debug mode. Debug messages are printed to the standard output. - + + You need to restart application to make the language change take effect. + You need to restart application to make the language change take effect. - - You need to restart application to make the language change take effect. - + + Open SQL &editor + Open SQL &editor - - Next window - + + Open DDL &history + Open DDL &history - - Previous window - + + Open SQL &functions editor + Open SQL &functions editor - - Hide status field - + + Open code &snippets editor + Open code &snippets editor - - Open Debug Console - + + Open &collations editor + Open &collations editor - - Open CSS Console - + + Open ex&tension manager + Open ex&tension manager - - Bugs and feature &requests - + + &Import + &Import - - Window list - menubar view menu - + + E&xport + E&xport - - Open SQL &editor - + + Open confi&guration dialog + Open confi&guration dialog - - Open DDL &history - + + &Tile windows + &Tile windows - - Open SQL &functions editor - + + Tile windows &horizontally + Tile windows &horizontally - - Open &collations editor - + + Tile windows &vertically + Tile windows &vertically - - Open ex&tension manager - + + &Cascade windows + &Cascade windows - - &Import - + + Next window + Next window - - E&xport - + + Previous window + Previous window - - Open confi&guration dialog - + + Hide status field + Hide status field - - &Tile windows - + + Close &all windows + Close &all windows - - Tile windows &horizontally - + + Re&store recently closed window + Re&store recently closed window - - Tile windows &vertically - + + Close current &window + Close current &window - - &Cascade windows - + + Close &other windows + Close &other windows - - Close selected &window - + + Close windows on the &left + Close windows on the &left - - Close all windows &but selected - + + Close windows on the &right + Close windows on the &right - - Close &all windows - + + Re&name selected window + Re&name selected window - - Re&store recently closed window - + + Open Debug Console + Open Debug Console - - &Rename selected window - + + Open CSS Console + Open CSS Console - - Report a &bug - + + Report a &bug + Report a &bug - - Propose a new &feature - + + D&onate + D&onate - - &About - + + Propose a new &feature + Propose a new &feature - - &Licenses - + + &About + &About - - Open home &page - + + &Licenses + &Licenses - - Open fo&rum page - + + Open home &page + Open home &page - - User &Manual - + + User &Manual + User &Manual - - SQLite &documentation - + + SQLite &documentation + SQLite &documentation - - Check for &updates - + + Bugs and feature &requests + Bugs and feature &requests - - &Database - menubar - + + Quit + Quit - - &Structure - menubar - + + Check for &updates + Check for &updates - - &View - menubar - + + &Database + menubar + &Database - - &Tools - menubar - + + &Structure + menubar + &Structure - - &Help - + + &View + menubar + &View - - Could not set style: %1 - main window - + + Window list + menubar view menu + Window list - - Cannot export, because no export plugin is loaded. - + + &Tools + menubar + &Tools - - Cannot import, because no import plugin is loaded. - + + &Help + &Help - - Rename window - + + Could not set style: %1 + main window + Could not set style: %1 - - Enter new name for the window: - + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. - - New updates are available. <a href="%1">Click here for details</a>. - + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. - - You're running the most recent version. No updates are available. - + + Rename window + Rename window - - Database passed in command line parameters (%1) was already on the list under name: %2 - + + Enter new name for the window: + Enter new name for the window: - - Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 - + + New updates are available. <a href="%1">Click here for details</a>. + New updates are available. <a href="%1">Click here for details</a>. - - Could not add database %1 to list. - + + You're running the most recent version. No updates are available. + You're running the most recent version. No updates are available. - - + + + Database passed in command line parameters (%1) was already on the list under name: %2 + Database passed in command line parameters (%1) was already on the list under name: %2 + + + + Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 + Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + MdiWindow - - Uncommitted changes - + + Uncommitted changes + Uncommitted changes - - Close anyway - + + Close anyway + Close anyway - - Don't close - + + Don't close + Don't close - - + + MultiEditor - - Null value - multieditor - + + Null value + multieditor + Null value - - Configure editors for this data type - + + Configure editors for this data type + Configure editors for this data type - - Open another tab - + + Open another tab + Open another tab - - Data editor plugin '%1' not loaded, while it is defined for editing '%1' data type. - + + Foreign Key + Foreign Key - - Deleted - multieditor - + + Data editor plugin '%1' not loaded, while it is defined for editing '%2' data type. + Data editor plugin '%1' not loaded, while it is defined for editing '%1' data type. {1'?} {2'?} {1' or 2'?} - - Read only - multieditor - + + Deleted + multieditor + Deleted - - + + + Read only + multieditor + Read only + + + MultiEditorBoolPlugin - - Boolean - + + Boolean + Boolean - - + + MultiEditorDatePlugin - - Date - + + Date + Date - - + + MultiEditorDateTimePlugin - - Date & time - + + Date & time + Date & time - - + + MultiEditorHexPlugin - - Hex - + + Hex + Hex - - + + MultiEditorNumericPlugin - - Number - numeric multi editor tab name - + + Number + numeric multi editor tab name + Number - - + + MultiEditorText - - Tab changes focus - + + Tab changes focus + Tab changes focus - - Cut - + + Cut + Cut - - Copy - + + Copy + Copy - - Paste - + + Paste + Paste - - Delete - + + Delete + Delete - - Undo - + + Undo + Undo - - Redo - + + Redo + Redo - - + + MultiEditorTextPlugin - - Text - + + Text + Text - - + + MultiEditorTimePlugin - - Time - + + Time + Time - - + + NewConstraintDialog - - New constraint - + + New constraint + New constraint + + + + + Primary Key + new constraint dialog + Primary Key - - - Primary Key - new constraint dialog - + + + Foreign Key + new constraint dialog + Foreign Key - - - Foreign Key - new constraint dialog - + + + Unique + new constraint dialog + Unique - - - Unique - new constraint dialog - + + + Check + new constraint dialog + Check - - - Check - new constraint dialog - + + Not NULL + new constraint dialog + Not NULL - - Not NULL - new constraint dialog - + + Collate + new constraint dialog + Collate - - Collate - new constraint dialog - + + Generated + new constraint dialog + Generated - - Default - new constraint dialog - + + Default + new constraint dialog + Default - - + + NewVersionDialog - - SQLiteStudio updates - + + SQLiteStudio updates + SQLiteStudio updates - - New updates are available! - + + New version is available! + New version is available! - - Component - + + Download new version! + Download new version! - - This application will be closed and the update installer will start to download and install all the updates. - + + New version package will be downloaded. It will be up to you to install it whenever you're ready. + New version package will be downloaded. It will be up to you to install it whenever you're ready. - - Update version - + + Open SQLiteStudio home page. + Open SQLiteStudio home page. - - Check for updates on startup - + + Read release notes && download package yourself. + Read release notes && download package yourself. - - Update to new version! - + + Just close this window. + Just close this window. - - Not now. - + + Check for updates on startup + Check for updates on startup - - Don't install the update and close this window. - + + Not now. + Not now. - - + + PopulateConfigDialog - - Populating configuration - + + Populating configuration + Populating configuration - - Configuring <b>%1</b> for column <b>%2</b> - + + Configuring <b>%1</b> for column <b>%2</b> + Configuring <b>%1</b> for column <b>%2</b> - - + + PopulateDialog - - Populate table - + + Populate table + Populate table - - Database - + + Database + Database - - Table - + + Table + Table - - Columns - + + Columns + Columns - - Number of rows to populate: - + + Number of rows to populate: + Number of rows to populate: - - Populate - populate dialog button - + + Populate + populate dialog button + Populate - - Abort - + + Abort + Abort - - Configure - + + Configure + Configure - - Populating configuration for this column is invalid or incomplete. - + + Populating configuration for this column is invalid or incomplete. + Populating configuration for this column is invalid or incomplete. - - Select database with table to populate - + + Select database with table to populate + Select database with table to populate - - Select table to populate - + + Select table to populate + Select table to populate - - You have to select at least one column. - + + You have to select at least one column. + You have to select at least one column. - - + + QObject - - Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). - + + Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). + Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). + + + + The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. + The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. + + + + Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. + Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. + + + + Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. + Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. + + + + Cannot edit results of query other than %1. + Cannot edit results of query other than %1. + + + + Cannot edit columns that are result of aggregated %1 statements. + Cannot edit columns that are result of aggregated %1 statements. - - The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. - + + Cannot edit columns that are result of %1 statement. + Cannot edit columns that are result of %1 statement. - - Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. - + + Cannot edit columns that are result of common table expression statement (%1). + Cannot edit columns that are result of common table expression statement (%1). - - Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. - + + Cannot edit table generated columns. + Cannot edit table generated columns. - - Cannot edit results of query other than %1. - + + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). - - Cannot edit columns that are result of aggregated %1 statements. - + + + + + on conflict: %1 + data view tooltip + on conflict: %1 - - Cannot edit columns that are result of %1 statement. - + + references table %1, column %2 + data view tooltip + references table %1, column %2 - - Cannot edit columns that are result of common table expression statement (%1). - + + condition: %1 + data view tooltip + condition: %1 - - - - - on conflict: %1 - data view tooltip - + + collation name: %1 + data view tooltip + collation name: %1 - - references table %1, column %2 - data view tooltip - + + Data grid view + Data grid view - - condition: %1 - data view tooltip - + + Edit current cell inline + Edit current cell inline - - collation name: %1 - data view tooltip - + + Copy cell(s) contents to clipboard + Copy cell(s) contents to clipboard - - Data grid view - + + Copy cell(s) contents together with header to clipboard + Copy cell(s) contents together with header to clipboard - - Copy cell(s) contents to clipboard - + + Paste cell(s) contents from clipboard + Paste cell(s) contents from clipboard - - Copy cell(s) contents together with header to clipboard - + + Set empty value to selected cell(s) + Set empty value to selected cell(s) - - Paste cell(s) contents from clipboard - + + Set NULL value to selected cell(s) + Set NULL value to selected cell(s) - - Set empty value to selected cell(s) - + + Commit changes to cell(s) contents + Commit changes to cell(s) contents - - Set NULL value to selected cell(s) - + + Rollback changes to cell(s) contents + Rollback changes to cell(s) contents - - Commit changes to cell(s) contents - + + Delete selected data row + Delete selected data row - - Rollback changes to cell(s) contents - + + Insert new data row + Insert new data row - - Delete selected data row - + + Open contents of selected cell in a separate editor + Open contents of selected cell in a separate editor - - Insert new data row - + + Toggle the height adjustment of rows + Toggle the height adjustment of rows - - Open contents of selected cell in a separate editor - + + Increase font size + data view + Increase font size - - Total pages available: %1 - + + Decrease font size + data view + Decrease font size - - Total rows loaded: %1 - + + Total pages available: %1 + Total pages available: %1 - - Data view (both grid and form) - + + Total rows loaded: %1 + Total rows loaded: %1 - - Refresh data - + + Data view (both grid and form) + Data view (both grid and form) - - Switch to grid view of the data - + + Refresh data + Refresh data - - Switch to form view of the data - + + Switch to grid view of the data + Switch to grid view of the data - - Database list - + + Switch to form view of the data + Switch to form view of the data - - Delete selected item - + + Database list + Database list - - Clear filter contents - + + Delete selected item + Delete selected item - - Refresh schema - + + Clear filter contents + Clear filter contents - - Refresh all schemas - + + Refresh schema + Refresh schema - - Add database - + + Refresh all schemas + Refresh all schemas - - Select all items - + + Add database + Add database - - Copy selected item(s) - + + Select all items + Select all items - - - - Paste from clipboard - + + Copy selected item(s) + Copy selected item(s) - - Tables - + + + + Paste from clipboard + Paste from clipboard - - Indexes - + + Increase font size + database list + Increase font size - - Triggers - + + Decrease font size + database list + Decrease font size - - Views - + + Tables + Tables - - Columns - + + Indexes + Indexes - - Data form view - + + Triggers + Triggers - - Commit changes for current row - + + Views + Views - - Rollback changes for current row - + + Columns + Columns - - Go to first row on current page - + + Data form view + Data form view - - Go to next row - + + Commit changes for current row + Commit changes for current row - - Go to previous row - + + Rollback changes for current row + Rollback changes for current row - - Go to last row on current page - + + Go to first row on current page + Go to first row on current page - - Insert new row - + + Go to next row + Go to next row - - Delete current row - + + Go to previous row + Go to previous row - - Main window - + + Go to last row on current page + Go to last row on current page - - Open SQL editor - + + Insert new row + Insert new row - - Previous window - + + Delete current row + Delete current row - - Next window - + + Main window + Main window - - Hide status area - + + Open SQL editor + Open SQL editor - - Open configuration dialog - + + Open DDL history window + Open DDL history window - - Open Debug Console - + + Open snippets editor window + Open snippets editor window - - Open CSS Console - + + Open function editor window + Open function editor window - - Cell text value editor - + + Open collation editor window + Open collation editor window - - - Cut selected text - + + Open extension manager window + Open extension manager window - - - Copy selected text - + + Previous window + Previous window - - - Delete selected text - + + Next window + Next window - - - Undo - + + Hide status area + Hide status area - - - Redo - + + Open user manual + Open user manual - - SQL editor input field - + + Open configuration dialog + Open configuration dialog - - Select whole editor contents - + + Open Debug Console + Open Debug Console - - Save contents into a file - + + Open CSS Console + Open CSS Console - - Load contents from a file - + + Open the About dialog + Open the About dialog - - Find in text - + + Quit the application + Quit the application - - Find next - + + Cell text value editor + Cell text value editor - - Find previous - + + + Cut selected text + Cut selected text - - Replace in text - + + + Copy selected text + Copy selected text - - Delete current line - + + + Delete selected text + Delete selected text - - Request code assistant - + + + Undo + Undo - - Format contents - + + + Redo + Redo - - Move selected block of text one line down - + + SQL editor input field + SQL editor input field - - Move selected block of text one line up - + + Select whole editor contents + Select whole editor contents - - Copy selected block of text and paste it a line below - + + Save contents into a file + Save contents into a file - - Copy selected block of text and paste it a line above - + + Load contents from a file + Load contents from a file - - Toggle comment - + + Find in text + Find in text - - All SQLite databases - + + Find next + Find next - - All files - + + Find previous + Find previous - - - Database file - + + Replace in text + Replace in text - - SQL editor window - + + Delete current line + Delete current line - - Execute query - + + Request code assistant + Request code assistant - - Execute "%1" query - + + Format contents + Format contents - - Switch current working database to previous on the list - + + Move selected block of text one line down + Move selected block of text one line down - - Switch current working database to next on the list - + + Move selected block of text one line up + Move selected block of text one line up - - Go to next editor tab - + + Copy selected block of text and paste it a line below + Copy selected block of text and paste it a line below - - Go to previous editor tab - + + Copy selected block of text and paste it a line above + Copy selected block of text and paste it a line above - - Move keyboard input focus to the results view below - + + Toggle comment + Toggle comment - - Move keyboard input focus to the SQL editor above - + + Increase font size + sql editor + Increase font size - - Delete selected SQL history entries - + + Decrease font size + sql editor + Decrease font size - - Table window - + + All SQLite databases + All SQLite databases - - Refresh table structure - + + All files + All files - - Add new column - + + Select database file + Select database file - - Edit selected column - + + Select + Select - - Delete selected column - + + File type + File type - - Export table data - + + SQL editor window + SQL editor window - - Import data to the table - + + Execute query + Execute query - - Add new table constraint - + + Execute single query under cursor + Execute single query under cursor - - Edit selected table constraint - + + Execute all queries in editor + Execute all queries in editor - - Delete selected table constraint - + + Execute "%1" query + Execute "%1" query - - Refresh table index list - + + Switch current working database to previous on the list + Switch current working database to previous on the list - - Add new index - + + Switch current working database to next on the list + Switch current working database to next on the list - - Edit selected index - + + Go to next editor tab + Go to next editor tab - - Delete selected index - + + Go to previous editor tab + Go to previous editor tab - - Refresh table trigger list - + + Move keyboard input focus to the results view below + Move keyboard input focus to the results view below - - - Add new trigger - + + Move keyboard input focus to the SQL editor above + Move keyboard input focus to the SQL editor above - - - Edit selected trigger - + + Delete selected SQL history entries + Delete selected SQL history entries - - - Delete selected trigger - + + Table window + Table window - - - Go to next tab - + + Commit the table structure + Commit the table structure - - - Go to previous tab - + + Rollback pending changes in the table structure + Rollback pending changes in the table structure - - A view window - + + Refresh table structure + Refresh table structure - - Refresh view trigger list - + + Add new column + Add new column - - + + + Edit selected column + Edit selected column + + + + Delete selected column + Delete selected column + + + + Export table data + Export table data + + + + Import data to the table + Import data to the table + + + + Add new table constraint + Add new table constraint + + + + Edit selected table constraint + Edit selected table constraint + + + + Delete selected table constraint + Delete selected table constraint + + + + Refresh table index list + Refresh table index list + + + + Add new index + Add new index + + + + Edit selected index + Edit selected index + + + + Delete selected index + Delete selected index + + + + Refresh table trigger list + Refresh table trigger list + + + + + Add new trigger + Add new trigger + + + + + Edit selected trigger + Edit selected trigger + + + + + Delete selected trigger + Delete selected trigger + + + + + Go to next tab + Go to next tab + + + + + Go to previous tab + Go to previous tab + + + + A view window + A view window + + + + Commit the view's query + Commit the view's query + + + + Rollback pending changes in the view's query + Rollback pending changes in the view's query + + + + Refresh view trigger list + Refresh view trigger list + + + + Execute the view's query + Execute the view's query + + + + A code snippets editor window + A code snippets editor window + + + + + + + Commit the pending changes + Commit the pending changes + + + + + + + Rollback the pending changes + Rollback the pending changes + + + + A collation editor window + A collation editor window + + + + A function editor window + A function editor window + + + + A SQLite extension editor window + A SQLite extension editor window + + + QuitConfirmDialog - - Uncommitted changes - + + Uncommitted changes + Uncommitted changes - - Are you sure you want to quit the application? + + Are you sure you want to quit the application? Following items are pending: - + Are you sure you want to quit the application? + +Following items are pending: - - + + SearchTextDialog - - Find or replace - + + Find or replace + Find or replace - - Find: - + + Find: + Find: - - Case sensitive - + + Case sensitive + Case sensitive - - Search backwards - + + Search backwards + Search backwards - - Regular expression matching - + + Regular expression matching + Regular expression matching - - Replace && + + Replace && find next - + Replace && +find next - - Replace with: - + + Replace with: + Replace with: - - Replace all - + + Replace all + Replace all - - Find - + + Find + Find - - + + SortDialog - - Sort by columns - + + Sort by columns + Sort by columns - - - Column - + + + Column + Column - - - Order - + + + Order + Order - - Sort by: %1 - + + Sort by: %1 + Sort by: %1 - - Move column up - + + Move column up + Move column up - - Move column down - + + Move column down + Move column down - - + + SqlEditor - - Cut - sql editor - + + Wrap words + sql editor + Wrap words + + + + Cut + sql editor + Cut + + + + Copy + sql editor + Copy + + + + Paste + sql editor + Paste - - Copy - sql editor - + + Delete + sql editor + Delete - - Paste - sql editor - + + Select all + sql editor + Select all - - Delete - sql editor - + + Undo + sql editor + Undo - - Select all - sql editor - + + Redo + sql editor + Redo - - Undo - sql editor - + + Complete + sql editor + Complete - - Redo - sql editor - + + Format SQL + sql editor + Format SQL - - Complete - sql editor - + + Save SQL to file + sql editor + Save SQL to file - - Format SQL - sql editor - + + Select file to save SQL + sql editor + Select file to save SQL - - Save SQL to file - sql editor - + + Load SQL from file + sql editor + Load SQL from file - - Select file to save SQL - sql editor - + + Delete line + sql editor + Delete line - - Load SQL from file - sql editor - + + Move block down + sql editor + Move block down - - Delete line - sql editor - + + Move block up + sql editor + Move block up - - Move block down - sql editor - + + Copy block down + sql editor + Copy block down - - Move block up - sql editor - + + Copy up down + sql editor + Copy up down - - Copy block down - sql editor - + + Find + sql editor + Find - - Copy up down - sql editor - + + Find next + sql editor + Find next - - Find - sql editor - + + Find previous + sql editor + Find previous - - Find next - sql editor - + + Replace + sql editor + Replace - - Find previous - sql editor - + + Toggle comment + sql editor + Toggle comment - - Replace - sql editor - + + Increase font size + sql editor + Increase font size - - Toggle comment - sql editor - + + Decrease font size + sql editor + Decrease font size - - Could not open file '%1' for writing: %2 - + + Could not open file '%1' for writing: %2 + Could not open file '%1' for writing: %2 - - Saved SQL contents to file: %1 - + + Saved SQL contents to file: %1 + Saved SQL contents to file: %1 - - Syntax completion can be used only when a valid database is set for the SQL editor. - + + Syntax completion can be used only when a valid database is set for the SQL editor. + Syntax completion can be used only when a valid database is set for the SQL editor. - - Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. - + + Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. + Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. - - Save to file - + + Save to file + Save to file - - SQL scripts (*.sql);;All files (*) - + + SQL scripts (*.sql);;All files (*) + SQL scripts (*.sql);;All files (*) - - Open file - + + Open file + Open file - - Could not open file '%1' for reading: %2 - + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 - - Reached the end of document. Hit the find again to restart the search. - + + Reached the end of document. Hit the find again to restart the search. + Reached the end of document. Hit the find again to restart the search. - - + + SqlQueryItem - - Column: - data view tooltip - + + Committing error: + data view tooltip + Committing error: - - Data type: - data view - + + Column: + data view tooltip + Column: - - Table: - data view tooltip - + + Data type: + data view + Data type: - - Constraints: - data view tooltip - + + Table: + data view tooltip + Table: - - Cannot load the data for a cell that refers to the already closed database. - + + Constraints: + data view tooltip + Constraints: - - + + SqlQueryItemDelegate - - - - - - Cannot edit this cell. Details: %1 - + + + + + Cannot edit this cell. Details: %1 + Cannot edit this cell. Details: %1 - - The row is marked for deletion. - + + The row is marked for deletion. + The row is marked for deletion. - - - Structure of this table has changed since last data was loaded. Reload the data to proceed. - + + + Structure of this table has changed since last data was loaded. Reload the data to proceed. + Structure of this table has changed since last data was loaded. Reload the data to proceed. - - Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). - + + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). - - Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. - + + Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. + Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. - - + + SqlQueryModel - - - Only one query can be executed simultaneously. - + + + Only one query can be executed simultaneously. + Only one query can be executed simultaneously. + + + + Cannot execute query on undefined or invalid database. + Cannot execute query on undefined or invalid database. + + + + Cannot execute empty query. + Cannot execute empty query. + + + + Uncommitted data + Uncommitted data + + + + There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. + There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. - - Uncommitted data - + + Cannot commit the data for a cell that refers to the already closed database. + Cannot commit the data for a cell that refers to the already closed database. - - There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. - + + Could not begin transaction on the database. Details: %1 + Could not begin transaction on the database. Details: %1 - - Cannot commit the data for a cell that refers to the already closed database. - + + An error occurred while committing the transaction: %1 + An error occurred while committing the transaction: %1 - - Could not begin transaction on the database. Details: %1 - + + An error occurred while rolling back the transaction: %1 + An error occurred while rolling back the transaction: %1 - - An error occurred while committing the transaction: %1 - + + Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. + Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. - - An error occurred while rolling back the transaction: %1 - + + An error occurred while committing the data: %1 + An error occurred while committing the data: %1 - - Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. - + + Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. + Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. - - An error occurred while committing the data: %1 - + + + Error while executing SQL query on database '%1': %2 + Error while executing SQL query on database '%1': %2 - - Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. - + + Error while loading query results: %1 + Error while loading query results: %1 - - - Error while executing SQL query on database '%1': %2 - + + Insert multiple rows + Insert multiple rows - - Error while loading query results: %1 - + + Number of rows to insert: + Number of rows to insert: - - Insert multiple rows - + + Delete rows + Delete rows - - Number of rows to insert: - + + You're about to delete newly inserted rows that are not committed yet. Row numbers: %1 +Such deletion will be permanent. Are you sure you want to delete them? + You're about to delete newly inserted rows that are not committed yet. Row numbers: %1 +Such deletion will be permanent. Are you sure you want to delete them? - - + + SqlQueryView - - Go to referenced row in... - + + Go to referenced row in... + Go to referenced row in... + + + + Copy + Copy + + + + Copy with headers + Copy with headers + + + + Copy as... + Copy as... - - Copy - + + Paste + Paste - - Copy as... - + + Paste as... + Paste as... - - Paste - + + Set NULL values + Set NULL values - - Paste as... - + + Erase values + Erase values - - Set NULL values - + + Commit + Commit - - Erase values - + + Rollback + Rollback - - Edit value in editor - + + Commit selected cells + Commit selected cells - - Commit - + + Rollback selected cells + Rollback selected cells - - Copy with headers - + + Edit current cell inline + Edit current cell inline - - Rollback - + + Define columns to sort by + Define columns to sort by - - Commit selected cells - + + Remove custom sorting + Remove custom sorting - - Rollback selected cells - + + Insert row + Insert row - - Define columns to sort by - + + Insert multiple rows + Insert multiple rows - - Remove custom sorting - + + Delete selected row + Delete selected row - - Insert row - + + Adjust height of rows + Adjust height of rows - - Insert multiple rows - + + Increase font size + data view + Increase font size - - Delete selected row - + + Decrease font size + data view + Decrease font size - - Show value in a viewer - + + Invert selection + data view + Invert selection - - Generate query for selected cells - + + Edit value in editor + Edit value in editor - - No items selected to paste clipboard contents to. - + + Show value in a viewer + Show value in a viewer - - Go to referenced row in table '%1' - + + Generate query for selected cells + Generate query for selected cells - - table '%1' - + + No items selected to paste clipboard contents to. + No items selected to paste clipboard contents to. - - Referenced row (%1) - + + Cannot paste data. Details: %1 + Cannot paste data. Details: %1 - - Trim pasted text? - + + Structure of at least one table used has changed since last data was loaded. Reload the data to proceed. + Structure of at least one table used has changed since last data was loaded. Reload the data to proceed. - - The pasted text contains leading or trailing white space. Trim it automatically? - + + Cannot paste to a cell. Details: %1 + Cannot paste to a cell. Details: %1 - - Edit value - + + The row is marked for deletion. + The row is marked for deletion. - - + + + Cannot paste to column %1. Details: %2 + Cannot paste to column %1. Details: %2 + + + + Go to referenced row in table '%1' + Go to referenced row in table '%1' + + + + table '%1' + table '%1' + + + + Referenced row (%1) + Referenced row (%1) + + + + Trim pasted text? + Trim pasted text? + + + + The pasted text contains leading or trailing white space. Trim it automatically? + The pasted text contains leading or trailing white space. Trim it automatically? + + + + Paste "NULL" as null value? + Paste "NULL" as null value? + + + + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + + + + Edit value + Edit value + + + SqlTableModel - - Error while committing new row: %1 - + + Error while committing new row: %1 + Error while committing new row: %1 - - Error while deleting row from table %1: %2 - + + Error while deleting row from table %1: %2 + Error while deleting row from table %1: %2 - - + + SqliteExtensionEditor - - Filter extensions - + + Filter extensions + Filter extensions - - Leave empty to use default function - + + Leave empty to use default function + Leave empty to use default function - - Extension file - + + Extension file + Extension file - - Initialization function - + + Initialization function + Initialization function - - Databases - + + Databases + Databases - - Register in all databases - + + Register in all databases + Register in all databases - - Register in following databases: - + + Register in following databases: + Register in following databases: - - Extension manager window has uncommitted modifications. - + + Extension manager window has uncommitted modifications. + Extension manager window has uncommitted modifications. - - Extension manager - + + Extension manager + Extension manager - - Commit all extension changes - + + Commit all extension changes + Commit all extension changes - - Rollback all extension changes - + + Rollback all extension changes + Rollback all extension changes - - Add new extension - + + Add new extension + Add new extension - - Remove selected extension - + + Remove selected extension + Remove selected extension - - Editing extensions manual - + + Editing extensions manual + Editing extensions manual - - File with given path does not exist or is not readable. - + + File with given path does not exist or is not readable. + File with given path does not exist or is not readable. - - Unable to load extension: %1 - + + Unable to load extension: %1 + Unable to load extension: %1 - - Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. - + + Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. + Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. - - Dynamic link libraries (*.dll);;All files (*) - + + Dynamic link libraries (*.dll);;All files (*) + Dynamic link libraries (*.dll);;All files (*) - - Shared objects (*.so);;All files (*) - + + Shared objects (*.so);;All files (*) + Shared objects (*.so);;All files (*) - - Dynamic libraries (*.dylib);;All files (*) - + + Dynamic libraries (*.dylib);;All files (*) + Dynamic libraries (*.dylib);;All files (*) - - All files (*) - + + All files (*) + All files (*) - - Open file - + + Open file + Open file - - + + StatusField - - Status - + + Status + Status - - Copy - + + Copy + Copy - - Clear - + + Clear + Clear - - + + TableConstraintsModel - - Type - table constraints - + + Type + table constraints + Type - - Details - table constraints - + + Details + table constraints + Details - - Name - table constraints - + + Name + table constraints + Name - - + + TableForeignKeyPanel - - Foreign table: - + + Foreign table: + Foreign table: - - SQLite 2 does not support foreign keys officially, -but it's okay to use them anyway. - + + Columns + Columns - - Columns - + + Local column + Local column - - Local column - + + Foreign column + Foreign column - - Foreign column - + + Reactions + Reactions - - Reactions - + + Deferred foreign key + Deferred foreign key - - Deferred foreign key - + + Named constraint + Named constraint - - Named constraint - + + Constraint name + Constraint name - - Constraint name - + + Pick the foreign column. + Pick the foreign column. - - Pick the foreign column. - + + Pick the foreign table. + Pick the foreign table. - - Pick the foreign table. - + + Select at least one foreign column. + Select at least one foreign column. - - Select at least one foreign column. - + + Enter a name of the constraint. + Enter a name of the constraint. - - Enter a name of the constraint. - + + Foreign column + table constraints + Foreign column - - - Foreign column - table constraints - - - - + + TablePrimaryKeyAndUniquePanel - - Columns - + + Columns + Columns - - Column - + + Column + Column - - Collation - + + Collation + Collation - - Sort - + + Sort + Sort - - Valid only for a single column with INTEGER data type - + + Valid only for a single column with INTEGER data type + Valid only for a single column with INTEGER data type - - Autoincrement - + + Autoincrement + Autoincrement - - Named constraint - + + Named constraint + Named constraint - - Constraint name - + + Constraint name + Constraint name - - On conflict - + + On conflict + On conflict - - Collate - table constraints - + + Collate + table constraints + Collate - - Sort order - table constraints - + + Sort order + table constraints + Sort order - - Select at least one column. - + + Select at least one column. + Select at least one column. - - Enter a name of the constraint. - + + Enter a name of the constraint. + Enter a name of the constraint. - - + + TableStructureModel - - Name - table structure columns - + + Name + table structure columns + Name - - Data type - table structure columns - + + Data type + table structure columns + Data type - - Primary + + Primary Key - table structure columns - + table structure columns + Primary +Key - - Foreign + + Foreign Key - table structure columns - + table structure columns + Foreign +Key - - Unique - table structure columns - + + Unique + table structure columns + Unique - - Check - table structure columns - + + Check + table structure columns + Check - - Not + + Not NULL - table structure columns - + table structure columns + Not +NULL - - Collate - table structure columns - + + Collate + table structure columns + Collate - - Default value - table structure columns - + + Generated + table structure columns + Generated - - + + + Default value + table structure columns + Default value + + + TableWindow - - Structure - + + Structure + Structure + + + + Table name: + Table name: - - Table name: - + + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> - - - Data - + + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> - - Constraints - + + + Data + Data - - Indexes - + + Constraints + Constraints - - Triggers - + + Indexes + Indexes - - DDL - + + Triggers + Triggers - - Export table - table window - + + DDL + DDL - - Import data to table - table window - + + Export table + table window + Export table - - Populate table - table window - + + Import data to table + table window + Import data to table - - Refresh structure - table window - + + Populate table + table window + Populate table - - Commit structure changes - table window - + + Refresh structure + table window + Refresh structure - - Rollback structure changes - table window - + + Commit structure changes + table window + Commit structure changes - - Add column - table window - + + Rollback structure changes + table window + Rollback structure changes - - Edit column - table window - + + Add column + table window + Add column - - - Delete column - table window - + + Edit column + table window + Edit column - - Move column up - table window - + + + Delete column + table window + Delete column - - Move column down - table window - + + Move column up + table window + Move column up - - Create similar table - table window - + + Move column down + table window + Move column down - - Reset autoincrement value - table window - + + Create similar table + table window + Create similar table - - Add table constraint - table window - + + Reset autoincrement value + table window + Reset autoincrement value - - Edit table constraint - table window - + + Add table constraint + table window + Add table constraint - - Delete table constraint - table window - + + Edit table constraint + table window + Edit table constraint - - Move table constraint up - table window - + + Delete table constraint + table window + Delete table constraint - - Move table constraint down - table window - + + Move table constraint up + table window + Move table constraint up - - Add table primary key - table window - + + Move table constraint down + table window + Move table constraint down - - Add table foreign key - table window - + + Add table primary key + table window + Add table primary key - - Add table unique constraint - table window - + + Add table foreign key + table window + Add table foreign key - - Add table check constraint - table window - + + Add table unique constraint + table window + Add table unique constraint - - Refresh index list - table window - + + Add table check constraint + table window + Add table check constraint - - Create index - table window - + + Refresh index list + table window + Refresh index list - - Edit index - table window - + + + Create index + table window + Create index - - Delete index - table window - + + Edit index + table window + Edit index - - Refresh trigger list - table window - + + Delete index + table window + Delete index - - Create trigger - table window - + + Refresh trigger list + table window + Refresh trigger list - - Edit trigger - table window - + + + Create trigger + table window + Create trigger - - Delete trigger - table window - + + Edit trigger + table window + Edit trigger - - Are you sure you want to delete column '%1'? - table window - + + Delete trigger + table window + Delete trigger - - Following problems will take place while modifying the table. + + Are you sure you want to delete column '%1'? + table window + Are you sure you want to delete column '%1'? + + + + Following problems will take place while modifying the table. Would you like to proceed? - table window - + table window + Following problems will take place while modifying the table. +Would you like to proceed? + + + + Table modification + table window + Table modification - - Table modification - table window - + + Could not load data for table %1. Error details: %2 + Could not load data for table %1. Error details: %2 - - Could not load data for table %1. Error details: %2 - + + Could not process the %1 table correctly. Unable to open a table window. + Could not process the %1 table correctly. Unable to open a table window. - - Could not process the %1 table correctly. Unable to open a table window. - + + Database + Database - - Could not restore window %1, because no database or table was stored in session for this window. - + + Could not restore window %1, because no database or table was stored in session for this window. + Could not restore window %1, because no database or table was stored in session for this window. - - Could not restore window '%1', because no database or table was stored in session for this window. - + + Could not restore window '%1', because no database or table was stored in session for this window. + Could not restore window '%1', because no database or table was stored in session for this window. - - Could not restore window '%1', because database %2 could not be resolved. - + + Could not restore window '%1', because database %2 could not be resolved. + Could not restore window '%1', because database %2 could not be resolved. - - Could not restore window '%1'', because the table %2 doesn't exist in the database %3. - + + Could not restore window '%1', because the table %2 doesn't exist in the database %3. + Could not restore window '%1', because the table %2 doesn't exist in the database %3. - - - New table %1 - + + + New table %1 + New table %1 - - Committed changes for table '%1' successfully. - + + Committed changes for table '%1' successfully. + Committed changes for table '%1' successfully. - - Committed changes for table '%1' (named before '%2') successfully. - + + Committed changes for table '%1' (named before '%2') successfully. + Committed changes for table '%1' (named before '%2') successfully. - - Could not commit table structure. Error message: %1 - table window - + + Could not commit table structure. Error message: %1 + table window + Could not commit table structure. Error message: %1 - - Reset autoincrement - + + Reset autoincrement + Reset autoincrement - - Are you sure you want to reset autoincrement value for table '%1'? - + + Are you sure you want to reset autoincrement value for table '%1'? + Are you sure you want to reset autoincrement value for table '%1'? - - An error occurred while trying to reset autoincrement value for table '%1': %2 - + + An error occurred while trying to reset autoincrement value for table '%1': %2 + An error occurred while trying to reset autoincrement value for table '%1': %2 - - Autoincrement value for table '%1' has been reset successfully. - + + Autoincrement value for table '%1' has been reset successfully. + Autoincrement value for table '%1' has been reset successfully. - - Empty name - + + Empty name + Empty name - - A blank name for the table is allowed in SQLite, but it is not recommended. + + A blank name for the table is allowed in SQLite, but it is not recommended. Are you sure you want to create a table with blank name? - + A blank name for the table is allowed in SQLite, but it is not recommended. +Are you sure you want to create a table with blank name? - - Cannot create a table without at least one column. - + + Cannot create a table without at least one column. + Cannot create a table without at least one column. - - Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. - + + Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. + Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. - - Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. - + + Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. + Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. - - Are you sure you want to delete table constraint '%1'? - table window - + + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 - - Delete constraint - table window - + + Are you sure you want to delete table constraint '%1'? + table window + Are you sure you want to delete table constraint '%1'? - - Cannot export, because no export plugin is loaded. - + + Delete constraint + table window + Delete constraint - - Cannot import, because no import plugin is loaded. - + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. - - Uncommitted changes - + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. - - There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. + + Uncommitted changes + Uncommitted changes + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. Do you want to commit the structure, or do you want to go back to the structure tab? - + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? - - Go back to structure tab - + + Go back to structure tab + Go back to structure tab - - Commit modifications and browse data. - + + Commit modifications and browse data. + Commit modifications and browse data. - - Name - table window indexes - + + Name + table window indexes + Name - - Unique - table window indexes - + + Unique + table window indexes + Unique - - Columns - table window indexes - + + Columns + table window indexes + Columns - - Partial index condition - table window indexes - + + Partial index condition + table window indexes + Partial index condition - - Name - table window triggers - + + Name + table window triggers + Name - - Event - table window triggers - + + Event + table window triggers + Event - - Condition - table window triggers - + + Condition + table window triggers + Condition - - Details - table window triggers - + + Details + table window triggers + Details - - Table window "%1" has uncommitted structure modifications and data. - + + Table window "%1" has uncommitted structure modifications and data. + Table window "%1" has uncommitted structure modifications and data. - - Table window "%1" has uncommitted data. - + + Table window "%1" has uncommitted data. + Table window "%1" has uncommitted data. - - Table window "%1" has uncommitted structure modifications. - + + Table window "%1" has uncommitted structure modifications. + Table window "%1" has uncommitted structure modifications. - - + + TriggerColumnsDialog - - Trigger columns - + + Trigger columns + Trigger columns - - Triggering columns: - + + Triggering columns: + Triggering columns: - - Select all - + + Select all + Select all - - Deselect all - + + Deselect all + Deselect all - - + + TriggerDialog - - - Trigger - + + + Trigger + Trigger - - On table: - + + On table: + On table: - - Action: - + + Action: + Action: - - - <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> - + + + <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> + <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> - - Pre-condition: - + + Pre-condition: + Pre-condition: - - The scope is still not fully supported by the SQLite database. - + + The scope is still not fully supported by the SQLite database. + The scope is still not fully supported by the SQLite database. - - Trigger name: - + + Trigger name: + Trigger name: - - When: - + + When: + When: - - List of columns for UPDATE OF action. - + + List of columns for UPDATE OF action. + List of columns for UPDATE OF action. - - Scope: - + + Scope: + Scope: - - Code: - + + Code: + Code: - - Trigger statements to be executed. - + + Trigger statements to be executed. + Trigger statements to be executed. - - DDL - + + DDL + DDL - - On view: - + + On view: + On view: - - Could not process trigger %1 correctly. Unable to open a trigger dialog. - + + Could not process trigger %1 correctly. Unable to open a trigger dialog. + Could not process trigger %1 correctly. Unable to open a trigger dialog. - - Enter a valid condition. - + + Enter a valid condition. + Enter a valid condition. - - Enter a valid trigger code. - + + Enter a valid trigger code. + Enter a valid trigger code. - - Error - trigger dialog - + + Error + trigger dialog + Error - - An error occurred while executing SQL statements: + + An error occurred while executing SQL statements: %1 - + An error occurred while executing SQL statements: +%1 - - + + VersionConvertSummaryDialog - - Database version convert - + + Database version convert + Database version convert - - Following changes to the SQL statements will be made: - + + Following changes to the SQL statements will be made: + Following changes to the SQL statements will be made: - - Before - + + Before + Before - - After - + + After + After - - + + ViewWindow - - Query - + + Query + Query + + + + View name: + View name: - - View name: - + + Output column names + Output column names - - Output column names - + + + Data + Data - - - Data - + + Triggers + Triggers - - Triggers - + + DDL + DDL - - DDL - + + + Could not restore window '%1', because no database or view was stored in session for this window. + Could not restore window '%1', because no database or view was stored in session for this window. - - - Could not restore window '%1', because no database or view was stored in session for this window. - + + Could not restore window '%1', because database %2 could not be resolved. + Could not restore window '%1', because database %2 could not be resolved. - - Could not restore window '%1', because database %2 could not be resolved. - + + Could not restore window '%1', because database %2 could not be open. + Could not restore window '%1', because database %2 could not be open. - - Could not restore window '%1', because database %2 could not be open. - + + Could not restore window '%1', because the view %2 doesn't exist in the database %3. + Could not restore window '%1', because the view %2 doesn't exist in the database %3. - - Could not restore window '%1', because the view %2 doesn't exist in the database %3. - + + + New view %1 + New view %1 - - - New view %1 - + + Database + Database - - Refresh the view - view window - + + Refresh the view + view window + Refresh the view - - Commit the view changes - view window - + + Commit the view changes + view window + Commit the view changes - - Rollback the view changes - view window - + + Rollback the view changes + view window + Rollback the view changes - - Explicit column names - + + Explicit column names + Explicit column names - - Generate output column names automatically basing on result columns of the view. - + + Generate output column names automatically basing on result columns of the view. + Generate output column names automatically basing on result columns of the view. - - Add column - view window - + + Add column + view window + Add column - - Edit column - view window - + + Edit column + view window + Edit column - - Delete column - view window - + + Delete column + view window + Delete column - - Move column up - view window - + + Move column up + view window + Move column up - - Move column down - view window - + + Move column down + view window + Move column down - - Refresh trigger list - view window - + + Refresh trigger list + view window + Refresh trigger list - - Create new trigger - view window - + + Create new trigger + view window + Create new trigger - - Edit selected trigger - view window - + + Edit selected trigger + view window + Edit selected trigger - - Delete selected trigger - view window - + + Delete selected trigger + view window + Delete selected trigger - - View window "%1" has uncommitted structure modifications and data. - + + View window "%1" has uncommitted structure modifications and data. + View window "%1" has uncommitted structure modifications and data. - - View window "%1" has uncommitted data. - + + View window "%1" has uncommitted data. + View window "%1" has uncommitted data. - - View window "%1" has uncommitted structure modifications. - + + View window "%1" has uncommitted structure modifications. + View window "%1" has uncommitted structure modifications. - - Could not load data for view %1. Error details: %2 - + + Could not load data for view %1. Error details: %2 + Could not load data for view %1. Error details: %2 - - Uncommitted changes - + + Uncommitted changes + Uncommitted changes - - There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. + + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. Do you want to commit the structure, or do you want to go back to the structure tab? - + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + + + + Go back to structure tab + Go back to structure tab - - Go back to structure tab - + + Commit modifications and browse data. + Commit modifications and browse data. - - Commit modifications and browse data. - + + View '%1' was committed successfully. + View '%1' was committed successfully. - - Committed changes for view '%1' successfully. - + + Committed changes for view '%1' successfully. + Committed changes for view '%1' successfully. - - Committed changes for view '%1' (named before '%2') successfully. - + + Committed changes for view '%1' (named before '%2') successfully. + Committed changes for view '%1' (named before '%2') successfully. - - Could not commit view changes. Error message: %1 - view window - + + Could not commit view changes. Error message: %1 + view window + Could not commit view changes. Error message: %1 - - Override columns - + + Override columns + Override columns - - Currently defined columns will be overriden. Do you want to continue? - + + Currently defined columns will be overriden. Do you want to continue? + Currently defined columns will be overriden. Do you want to continue? - - Could not determinate columns returned from the view. The query is problably incomplete or contains errors. - + + Could not determinate columns returned from the view. The query is problably incomplete or contains errors. + Could not determinate columns returned from the view. The query is problably incomplete or contains errors. - - Name - view window triggers - + + Name + view window triggers + Name - - Instead of - view window triggers - + + Instead of + view window triggers + Instead of - - Condition - view window triggers - + + Condition + view window triggers + Condition - - Details - table window triggers - + + Details + table window triggers + Details - - Could not process the %1 view correctly. Unable to open a view window. - + + Could not process the %1 view correctly. Unable to open a view window. + Could not process the %1 view correctly. Unable to open a view window. - - Empty name - + + Empty name + Empty name - - A blank name for the view is allowed in SQLite, but it is not recommended. + + A blank name for the view is allowed in SQLite, but it is not recommended. Are you sure you want to create a view with blank name? - + A blank name for the view is allowed in SQLite, but it is not recommended. +Are you sure you want to create a view with blank name? - - The SELECT statement could not be parsed. Please correct the query and retry. + + The SELECT statement could not be parsed. Please correct the query and retry. Details: %1 - + The SELECT statement could not be parsed. Please correct the query and retry. +Details: %1 - - The view could not be modified due to internal SQLiteStudio error. Please report this! - + + The view could not be modified due to internal SQLiteStudio error. Please report this! + The view could not be modified due to internal SQLiteStudio error. Please report this! - - The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. - + + The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. + The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. - - Following problems will take place while modifying the view. + + Following problems will take place while modifying the view. Would you like to proceed? - view window - + view window + Following problems will take place while modifying the view. +Would you like to proceed? - - View modification - view window - + + View modification + view window + View modification - - + + WidgetCover - - Interrupt - + + Interrupt + Interrupt - + diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_ru.qm b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_ru.qm deleted file mode 100644 index 4a142a7..0000000 Binary files a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_ru.qm and /dev/null differ diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_ru.ts b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_ru.ts deleted file mode 100644 index 3962775..0000000 --- a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_ru.ts +++ /dev/null @@ -1,7379 +0,0 @@ - - - - - AboutDialog - - - About SQLiteStudio and licenses - О программе SQLiteStudio и лицензиях - - - - About - О программе - - - <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="http://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">http://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="http://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">http://salsoft.com.pl</span></a>)<br/></p></body></html> - <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Бесплатный кроссплатформенный менеджер баз данных SQLite с открытым исходным кодом.<br/><a href="http://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">http://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Автор и активный разработчик:<br/>SalSoft (<a href="http://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">http://salsoft.com.pl</span></a>)<br/></p></body></html> - - - - Licenses - Лицензии - - - - Environment - Системная среда - - - - Icon directories - Каталоги иконок - - - - Form directories - Каталоги форм - - - - Plugin directories - Каталоги модулей - - - - Application directory - Каталог программы - - - - SQLite 3 version: - Версия SQLite 3: - - - - Configuration directory - Каталог конфигурации - - - - <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> - <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio вер.%1</span></p><p align="center">Бесплатный кроссплатформенный менеджер баз данных SQLite с открытым исходным кодом.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Автор и активный разработчик:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> - - - - Qt version: - Версия Qt: - - - - Portable distribution. - Портабельная версия. - - - - MacOS X application boundle distribution. - Пакет приложения MacOS X. - - - - Operating system managed distribution. - Версия, управляемая операционной системой. - - - - Copy - Копировать - - - - <h3>Table of contents:</h3><ol>%2</ol> - <h3>Содержание:</h3><ol>%2</ol> - - - - BindParamsDialog - - - Query parameters - Параметры запроса - - - - Please provide values for query parameters - Пожалуйста укажите значения для параметров запроса - - - - BugDialog - - Bugs and ideas - Ошибки и предложения - - - Reporter - Отправитель - - - E-mail address - Адрес e-mail - - - Log in - Вход - - - Short description - Краткое описание - - - Detailed description - Подробное описание - - - Show more details - Показать дополнительную информацию - - - SQLiteStudio version - Версия SQLiteStudio - - - Operating system - Операционная система - - - Loaded plugins - Загруженные модули - - - Send - Отправить - - - You can see all your reported bugs and ideas by selecting menu '%1' and then '%2'. - Вы можете просмотреть все отправленные вами отчёты об ошибках и предложения, выбрав в меню '%1' пункт '%2'. - - - A bug report sent successfully. - Отчёт об ошибке успешно отправлен. - - - An error occurred while sending a bug report: %1 -%2 - При отправке отчёта об ошибке возникла проблема: %1 -%2 - - - You can retry sending. The contents will be restored when you open a report dialog after an error like this. - Вы можете повторить отправку. После такой ошибки содержимое полей окна отправки отчёта будет восстановлено при повторном открытии. - - - An idea proposal sent successfully. - Предложение по улучшению было успешно отправлено. - - - An error occurred while sending an idea proposal: %1 -%2 - При отправке предложения по улучшению возникла проблема: %1 -%2 - - - A bug report - Отчёт об ошибке - - - Describe problem in few words - Опишите проблему в нескольких словах - - - Describe problem and how to reproduce it - Опишите проблему и шаги для её воспроизведения - - - A new feature idea - Предложение по улучшению функционала - - - A title for your idea - Название для вашего предложения - - - Describe your idea in more details - Опишите ваше предложение более подробно - - - Reporting as an unregistered user, using e-mail address. - Отправка от незарегистрированного пользователя, используя адрес e-mail - - - Reporting as a registered user. - Отправка от зарегистрированного пользователя - - - Log out - Выход - - - Providing true email address will make it possible to contact you regarding your report. To learn more, press 'help' button on the right side. - Указание действительного адреса e-mail поможет связаться с вами касательно вашего отчёта. Для подробной информации нажмите кнопку Помощь справа. - - - Enter vaild e-mail address, or log in. - Введите действительный адрес e-mail либо выполните вход. - - - Short description requires at least 10 characters, but not more than 100. Longer description can be entered in the field below. - Краткое описание должно содержать от 10 до 100 символов. Более подробное описание можно ввести в поле ниже. - - - Long description requires at least 30 characters. - Детальное описание должно содержать как минимум 30 символов. - - - - BugReportHistoryWindow - - Title - Заголовок - - - Reported at - Дата отправки - - - URL - URL - - - Reports history - История отчётов - - - Clear reports history - Очистить историю отчётов - - - Delete selected entry - Удалить выбранную запись - - - Invalid response from server. - Некорректный ответ сервера. - - - - BugReportLoginDialog - - Log in - Вход - - - Credentials - Данные для входа - - - Login: - Имя пользователя: - - - Password: - Пароль: - - - Validation - Проверка - - - Validate - Проверить - - - Validation result message - Статус проверки - - - Abort - Прервать - - - A login must be at least 2 characters long. - Имя пользователя должно состоять как минимум из двух символов. - - - A password must be at least 5 characters long. - Пароль должен состоять как минимум из пяти символов. - - - Valid - Верно - - - - CollationsEditor - - - Filter collations - Отфильтровать сравнения - - - - Collation name: - Имя сравнения: - - - - Implementation language: - Язык реализации: - - - - Databases - Базы данных - - - - Register in all databases - Зарегистрировать во всех базах данных - - - - Register in following databases: - Зарегистрировать в следующих базах данных: - - - - Implementation code: - Код реализации: - - - - Collations editor - Редактор сравнений - - - - Commit all collation changes - Подтвердить все изменения сравнений - - - - Rollback all collation changes - Откатить все изменения сравнений - - - - Create new collation - Создать новое сравнение - - - - Delete selected collation - Удалить выбранное сравнение - - - - Editing collations manual - Руководство по редактированию сравнений - - - - Enter a non-empty, unique name of the collation. - Введите непустое уникальное имя сравнения. - - - - Pick the implementation language. - Выберите язык реализации. - - - - Enter a non-empty implementation code. - Введите непустой код реализации. - - - - Collations editor window has uncommitted modifications. - В редакторе сравнений имеются неподтверждённые изменения. - - - Collations editor window has uncommited modifications. - В редакторе сравнений имеются неподтверждённые изменения. - - - - ColorButton - - - Pick a color - Выберите цвет - - - - ColumnCollatePanel - - - Collation name: - Имя сравнения: - - - - Named constraint: - Именованное ограничение: - - - - Enter a name of the constraint. - Введите имя ограничения. - - - - Enter a collation name. - Введите имя сравнения. - - - - ColumnDefaultPanel - - - Default value: - Значение по умолчанию: - - - - Named constraint: - Именованное ограничение: - - - - Enter a default value expression. - Введите выражение для значения по умолчанию. - - - - Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. - Некорректное выражение для значения по умолчанию: %1. Если необходимо использовать простую строку как значение, не забудьте поместить её в кавычки. - - - - Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. - Некорректное выражение для значения по умолчанию. Если необходимо использовать простую строку как значение, не забудьте поместить её в кавычки. - - - Invalid default value expression: %1 - Некорректное выражение для значения по умолчанию: %1 - - - - Enter a name of the constraint. - Введите имя ограничения. - - - - ColumnDialog - - - Column - Столбец - - - - Name and type - Имя и тип - - - - Scale - Размер - - - - Precision - Точность - - - - Data type: - Тип данных: - - - - Column name: - Имя столбца: - - - - Size: - Размер: - - - - Constraints - Ограничения - - - - Unique - Уникальность - - - - - - - - - - Configure - Настроить - - - - Foreign Key - Внешний ключ - - - - Collate - Сравнение - - - - Not NULL - Не NULL - - - - Check condition - Проверка условия - - - - Primary Key - Первичный ключ - - - - Default - - - - - Advanced mode - Расширенный режим - - - - Add constraint - column dialog - Добавить ограничение - - - - Edit constraint - column dialog - Редактировать ограничение - - - - - Delete constraint - column dialog - - - - - Move constraint up - column dialog - Переместить ограничение вверх - - - - Move constraint down - column dialog - Переместить ограничение вниз - - - - Add a primary key - column dialog - Добавить первичный ключ - - - - Add a foreign key - column dialog - Добавить внешний ключ - - - - Add an unique constraint - column dialog - Добавить ограничение на уникальность - - - - Add a check constraint - column dialog - Добавить проверочное ограничение - - - - Add a not null constraint - column dialog - Добавить ограничение на не null - - - - Add a collate constraint - column dialog - Добавить ограничение на сравнение - - - - Add a default constraint - column dialog - Добавить ограничение на значение по умочанию - - - - Are you sure you want to delete constraint '%1'? - column dialog - Вы действительно хотите удалить ограничение '%1'? - - - - Correct the constraint's configuration. - Исправьте конфигурацию ограничения. - - - - This constraint is not officially supported by SQLite 2, -but it's okay to use it. - Это ограничение официально не поддерживается SQLite 2, но его использование допустимо. - - - - Scale is not allowed for INTEGER PRIMARY KEY columns. - Указание размера данных недопустимо для столбцов с типом INTEGER PRIMARY KEY. - - - - Precision cannot be defined without the scale. - Точность не может быть задана без указания размера данных. - - - - Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. - Невозможно использовать тип данных, отличный от INTEGER, если в первичном ключе установлен автоинкремент. - - - - INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. - В качестве типа данных был принудительно выбран INTEGER, так как в первичном ключе установлен автоинкремент. - - - - Precision is not allowed for INTEGER PRIMARY KEY columns. - Указание точности недопустимо для столбцов с типом INTEGER PRIMARY KEY. - - - - ColumnDialogConstraintsModel - - - Type - column dialog constraints - Тип - - - - Name - column dialog constraints - Имя - - - - Details - column dialog constraints - Подробности - - - - ColumnForeignKeyPanel - - - Foreign table: - Внешняя таблица: - - - - Foreign column: - Внешний столбец: - - - - Reactions - Действия - - - - Deferred foreign key - Отложенный внешний ключ - - - - Named constraint - Именованное ограничение - - - - Constraint name - Имя ограничения - - - - Pick the foreign table. - Выберите внешнюю таблицу. - - - - Pick the foreign column. - Выберите внешний столбец. - - - - Enter a name of the constraint. - Введите имя ограничения. - - - - ColumnPrimaryKeyPanel - - - Autoincrement - Автоинкремент - - - - Sort order: - Порядок сортировки: - - - - Named constraint: - Именованное ограничение: - - - - On conflict: - При конфликте: - - - - Enter a name of the constraint. - Введите имя ограничения. - - - Autoincrement (only for %1 type columns) - column primary key - Автоинкремент (только для столбцов типа %1) - - - - ColumnUniqueAndNotNullPanel - - - Named constraint: - Именованное ограничение: - - - - On conflict: - При конфликте: - - - - Enter a name of the constraint. - Введите имя ограничения. - - - - CompleterWindow - - - Column: %1 - completer statusbar - Столбец: %1 - - - - Table: %1 - completer statusbar - Таблица: %1 - - - - Index: %1 - completer statusbar - Индекс: %1 - - - - Trigger: %1 - completer statusbar - Триггер: %1 - - - - View: %1 - completer statusbar - Представление: %1 - - - - Database: %1 - completer statusbar - База данных: %1 - - - - Keyword: %1 - completer statusbar - Ключевое слово: %1 - - - - Function: %1 - completer statusbar - Функция: %1 - - - - Operator: %1 - completer statusbar - Оператор: %1 - - - - String - completer statusbar - Строка - - - - Number - completer statusbar - Число - - - - Binary data - completer statusbar - Двоичные данные - - - - Collation: %1 - completer statusbar - Сравнение: %1 - - - - Pragma function: %1 - completer statusbar - Функция pragma: %1 - - - - ConfigDialog - - - - Configuration - Конфигурация - - - - Search - Поиск - - - - General - Общие - - - - Keyboard shortcuts - Горячие клавиши - - - - Look & feel - Внешний вид - - - - Style - Стиль - - - - Fonts - Шрифты - - - - Colors - Цвета - - - - Plugins - Модули - - - - Code formatters - Средства форматирования кода - - - - Data browsing - Просмотр данных - - - - Data editors - Редакторы данных - - - - Database dialog window - Диалоговое окно добавления базы данных - - - - <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> - <p>По умолчанию при добавлении базы данных она отмечается как "постоянная" (т.е. сохраняется в конфигурацию). При установке данной опции все добавляемые базы данных по умолчанию НЕ будут отмечены как "постоянные".</p> - - - - Do not mark database to be "permanent" by default - Не отмечать базу данных как "постоянную" по умолчанию - - - - <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> - <p>При выборе данной опции все файлы, перетянутые в список баз данных из файлового менеджера, будут автоматически добавлены в список без отображения диалога добавления базы данных. Если по каким-либо причинам автоматическое добавление не получится, пользователю будет показан стандартный диалог добавления базы данных.</p> - - - - Try to bypass dialog completly when dropping database file onto the list - Не показывать диалог при перетягивании файла базы данных в список - - - - Data browsing and editing - Просмотр и редактирование данных - - - - Number of data rows per page: - Количество строк данных на странице: - - - - - <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> - <p>При загрузке даных в табличный вид ширина столбцов автоматически подстраивается. Этот параметр ограничивает начальную ширину для подстройки, при этом пользователь может вручную изменить ширину столбца сверх данного лимита.</p> - - - - Limit initial data column width to (in pixels): - Ограничить начальную ширину столбца данных (в пикселях): - - - <html><head/><body><p>&lt;p&gt;When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).&lt;/p&gt;</p></body></html> - <html><head/><body><p>&lt;p&gt;Если редактируется ячейка, содержащая NULL, и вводится пустая строка в качестве значения, то эта опция определяет, останется ли в качестве значения ячейки NULL (если опция активирована), или значение будет заменено на пустую строку (если эта опция деактивирована).&lt;/p&gt;</p></body></html> - - - - Keep NULL value when entering empty value - Сохранять значение NULL при вводе пустой тсроки - - - General.KeepNullWhenEmptyValue - General.KeepNullWhenEmptyValue - - - - <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> - <p>Если данная опция активирована и пользователь наводит указатель мыши на ячейку в любом режиме просмотра данных (результаты запроса, данные таблицы, данные представления), то будет отображена всплывающая подсказка с информацией о ячейке, в том числе информация о типе данных столбца, ограничениях, значение ROWID и прочее.</p> - - - - Show column and row details tooltip in data view - Показывать всплывающую подсказку с информацией о столбце и строке при просмотре данных - - - - Inserting new row in data grid - Вставка новой строки в таблице данных - - - - Before currently selected row - Перед текущей выделенной строкой - - - General.InsertRowPlacement - General.InsertRowPlacement - - - - After currently selected row - После текущей выделенной строки - - - - At the end of data view - В конец области просмотра данных - - - - <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> - <p>Если опция активирована, окна таблиц будут открываться на вкладке данных вместо вкладки со структурой.</p> - - - - <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> - <p>Если опция активирована, вкладка "Данные" в окнах таблиц будет первой, а не второй по порядку.</p> - - - - Place data tab as first tab in a Table Window - Помещать вкладку данных в окнах таблиц первой - - - - <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> - <p>Если опция активирована, окна представлений будут открываться на вкладке данных вместо вкладки со структурой.</p> - - - - <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> - <p>Если опция активирована, вкладка "Данные" в окнах представлений будет первой, а не второй по порядку.</p> - - - - Place data tab as first tab in a View Window - Помещать вкладку данных в окнах представлений первой - - - - Data types - Типы данных - - - - Available editors: - Доступные редакторы: - - - - Editors selected for this data type: - Выбранные редакторы для этого типа данных: - - - - Schema editing - Редактирование схемы - - - - Number of DDL changes kept in history. - Количество сохраняемых в истории изменений DDL. - - - - DDL history size: - Размер истории DDL: - - - Don't show DDL preview dialog when commiting schema changes - Не показывать диалог предпросмотра DDL при подтверждении изменений схемы - - - - SQL queries - SQL запросы - - - - - Number of queries kept in the history. - Количество сохраняемых в истории запросов. - - - - History size: - Размер истории: - - - - <p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute.</p> - <p>Если в окне редактора SQL введено более одного запроса, то (если данная опция активирована) будет выполнен лишь один запрос - тот, который находится под текстовым курсором. В противном случае будут исполнены все запросы. Вы можете ограничить выполняемые запросы, выделив их перед вызовом выполнения.</p> - - - - Execute only the query under the cursor - Выполнять только запрос под курсором - - - - Updates - Обновления - - - - Automatically check for updates at startup - Автоматически проверять обновления при запуске - - - - Session - Сессия - - - - Restore last session (active MDI windows) after startup - Восстановить предыдущую сессию (активные MDI окна) после запуска - - - - Status Field - Окно статуса - - - - <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> - <p>Если пользователь вручную закрыл окно статуса, включение данной опции гарантирует, что при появлении новых сообщений окно статуса будет автоматически открыто. Если опция отключена, окно статуса может быть заново открыто только пользователем вручную через меню "Вид".</p> - - - - Always open Status panel when new message is printed - Всегда открывать окно статуса при появлении нового сообщения - - - - Filter shortcuts by name or key combination - Фильтруйте горячие клавиши по имени или комбинации клавиш - - - - Action - Действие - - - - Key combination - Комбинация клавиш - - - - - Language - Язык - - - - Changing language requires application restart to take effect. - Для смены языка потребуется перезапустить приложение. - - - - Compact layout - Компактный режим - - - - <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> - <p>В компактном режиме все поля и отступы в интерфейсе минимизированы для отображения большего количества данных. Интерфейс станет чуть менее эстетичным, однако это позволит уместить больше данных на экране.</p> - - - - Use compact layout - Включить компактный режим - - - General.CompactLayout - General.CompactLayout - - - - - Database list - Список баз данных - - - - If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. - Если опция деактивирована, столбцы будут отсортированы в том порядке, в котором они были указаны в конструкции CREATE TABLE. - - - - Sort table columns alphabetically - Сортировать столбцы таблицы в алфавитном порядке - - - - Expand tables node when connected to a database - Развернуть список таблиц после подключения к базе данных - - - - <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> - <p>Дополнительные метки находятся справа от имён в списке баз данных (они отображаются синим цветом, если не выбран иной). При активации этой опции будут отображены метки у баз данных, некорректных баз данных и у групповых узлов (группа столбцов, группа индексов, группа триггеров). Для отображения дополнительных меток воспользуйтесь опциями ниже.<p> - - - - Display additional labels on the list - Отображать дополнительные метки в списке - - - - For regular tables labels will show number of columns, indexes and triggers for each of tables. - Для обычных таблиц метки будут показывать количество столбцов, индексов и триггеров у каждой таблицы. - - - - Display labels for regular tables - Отображать метки у обычных таблиц - - - - Virtual tables will be marked with a 'virtual' label. - Виртуальные таблицы будут помечены как 'вирутальные'. - - - - Display labels for virtual tables - Отображать метки у виртуальных таблиц - - - - Expand views node when connected to a database - Развернуть список представлений после подключения к базе данных - - - - If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) - Если опция деактивирована, объекты будут отсортированы в том порядке, в котором они указаны в таблице sqlite_master (т.е. в порядке создания) - - - - Sort objects (tables, indexes, triggers and views) alphabetically - Сортировать объекты (таблицы, индексы, триггеры и представления) в алфавитном порядке - - - - Display system tables and indexes on the list - Отображать в списке системные таблицы и индексы - - - - - <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> - <p>Макисмальное количество конфигураций окна Заполнения таблицы, сохраняемых в конфигурации программы. 100 конфигураций должно хватить.</p> - - - - Number of memorized table populating configurations - Количество запоминаемых конфигураций заполнения таблицы - - - - <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> - <p>Если редактируется ячейка, содержащая NULL, и вводится пустая строка в качестве значения, то эта опция определяет, останется ли в качестве значения ячейки NULL (если опция активирована), или значение будет заменено на пустую строку (если эта опция деактивирована).</p> - - - - <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> - <html><head/><body><p>Активируйте эту опцию, чтобы всегда подставлять значение DEFAULT (значение по умолчанию) при записи NULL в столбец, у которого определено значение DEFAULT, даже если столбец может содержать NULL.</p><p>Отключите эту опцию для подстановки значения DEFAULT только в случае записи NULL в столбец с ограничением NOT NULL.</p></body></html> - - - - Use DEFAULT value (if defined), when committing NULL value - Использовать значение DEFAULT (если оно определено) при записи NULL - - - - Table windows - Окна таблиц - - - When enabled, Table Windows will show up with the data tab, instead of the structure tab. - Если опция активирована, окно таблицы будет открыто на вкладке данных вместо вкладки структуры. - - - - Open Table Windows with the data tab for start - Открывать окна таблиц на вкладке данных - - - - View windows - Окна представлений - - - When enabled, View Windows will show up with the data tab, instead of the structure tab. - Если опция активирована, окно представления будет открыто на вкладке данных вместо вкладки структуры. - - - - Open View Windows with the data tab for start - Открывать окна представлений на вкладке данных - - - - Don't show DDL preview dialog when committing schema changes - Не показывать диалог предпросмотра DDL при подтверждении изменений схемы - - - - - <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> - <p>Максимальное количество параметров запроса (:param, @param, $param, ?), сохраняемых в истории. Когда вы повторно используете параметр с тем же именем/расположением, SQLiteStudio преварительно инициализирует его последним запомненным значением (которое затем можно изменить). 1000 параметров должно хватить.</p> - - - - Number of memorized query parameters - Количество запоминаемых параметров запроса - - - - Main window dock areas - Области прикрепления вокруг главного окна - - - - Left and right areas occupy corners - Углы занимают правая и левая области - - - - Top and bottom areas occupy corners - Углы занимают верхняя и нижняя области - - - - Hide built-in plugins - Скрыть встроенные модули - - - - Current style: - Текущий стиль: - - - - Preview - Предпросмотр - - - - Enabled - Активно - - - - Disabled - Неактивно - - - - Active formatter plugin - Активный модуль форматирования - - - - SQL editor font - Шрифт редактора SQL - - - - Database list font - Шрифт списка баз данных - - - - Database list additional label font - Шрифт дополнительных меток в списке баз данных - - - - Data view font - Шрифт просмотра данных - - - - Status field font - Шрифт окна статуса - - - - SQL editor colors - Цвета редактора SQL - - - - Current line background - Фон текущей строки - - - - <p>SQL strings are enclosed with single quote characters.</p> - <p>Строки SQL обрамляются в одинарные кавычки.</p> - - - - String foreground - Цвет строки - - - - <p>Bind parameters are placeholders for values yet to be provided by the user. They have one of the forms:</p><ul><li>:param_name</li><li>$param_name</li><li>@param_name</li><li>?</li></ul> - <p>Подстановочные параметры предназначены для значений, которые будут в дальнейшем указаны пользователем. Они определяются одним из следующих способов:</p><ul><li>:имя_параметра</li><li>$имя_параметра</li><li>@имя_параметра</li><li>?</li></ul> - - - - Bind parameter foreground - Цвет подстановочных параметров - - - - Highlighted parenthesis background - Фон подсвечиваемых скобок - - - - <p>BLOB values are binary values represented as hexadecimal numbers, like:</p><ul><li>X'12B4'</li><li>x'46A2F4'</li></ul> - <p>Данные типа BLOB — это бинарные данные, представляемые в виде шестнадцатеричных чисел, например:</p><ul><li>X'12B4'</li><li>x'46A2F4'</li></ul> - - - - BLOB value foreground - Цвет данных типа BLOB - - - - Regular foreground - Стандартный цвет - - - - Line numbers area background - Фон области нумерации строк - - - - Keyword foreground - Цвет ключевого слова - - - - Number foreground - Цвет числа - - - - Comment foreground - Цвет комментария - - - - <p>Valid objects are name of tables, indexes, triggers, or views that exist in the SQLite database.</p> - <p>Распознаваемыми объектами являются имена талиц, индексов, триггеров и представлений, существующих в базе данных SQLite.</p> - - - - Valid objects foreground - Цвет распознанных объектов - - - - Data view colors - Цвета в окне просмотра данных - - - - <p>Any data changes will be outlined with this color, until they're committed to the database.</p> - <p>Все изменения данных будут обрамлены этим цветом, пока не будут записаны в базу данных.</p> - - - - Uncommitted data outline color - Цвет обрамления неподтверждённых изменений - - - - <p>In case of error while committing data changes, the problematic cell will be outlined with this color.</p> - <p>В случае ошибки при подтверждении изменений данных, этим цветом будут обрамлены проблемные ячейки.</p> - - - <p>Any data changes will be outlined with this color, until they're commited to the database.</p> - <p>Все изменения данных будут обрамлены этим цветом, пока не будут записаны в базу данных.</p> - - - Uncommited data outline color - Цвет обрамления неподтверждённых изменений - - - <p>In case of error while commiting data changes, the problematic cell will be outlined with this color.</p> - <p>В случае ошибки при подтверждении изменений данных, этим цветом будут обрамлены проблемные ячейки.</p> - - - - Commit error outline color - Цвет обрамления ошибочных ячеек - - - - NULL value foreground - Цвет значений NULL - - - - Deleted row background - Фон удалённых строк - - - - Database list colors - Цвета списка баз данных - - - - <p>Additional labels are those which tell you SQLite version, number of objects deeper in the tree, etc.</p> - <p>Дополнительные метки содержат информацию о версии SQLite, о количестве объектов в глубине дерева и т.д.</p> - - - - Additional labels foreground - Цвет дополнительных меток - - - - Status field colors - Цвета в окне Статуса - - - - Information message foreground - Цвет информационного сообщения - - - - Warning message foreground - Цвет предупреждения - - - - Error message foreground - Цвет ошибки - - - - Description: - plugin details - Описание: - - - - Category: - plugin details - Категория: - - - - Version: - plugin details - Версия: - - - - Author: - plugin details - Автор: - - - - Internal name: - plugin details - Внутреннее имя: - - - - Dependencies: - plugin details - Зависимости: - - - - Conflicts: - plugin details - Конфликты: - - - - Plugin details - Сведения о модуле - - - - Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. - Модули загружаются и выгружаются сразу после активации/деактивации, однако изменения в списке загружаемых при старте модулей не будут сохранены пока вы не примените изменения в окне конфигурации. - - - - %1 (built-in) - plugins manager in configuration dialog - %1 (встроенный) - - - - Details - Сведения - - - - No plugins in this category. - В этой категории модулей нет. - - - - Add new data type - Добавить новый тип данных - - - - Rename selected data type - Переименовать выбранный тип данных - - - - Delete selected data type - Удалить выбранный тип данных - - - - Help for configuring data type editors - Справка по настройке редакторов типов данных - - - - ConstraintCheckPanel - - - The condition - Условие - - - - Named constraint: - Именованное ограничение: - - - - On conflict - При конфликте - - - - Enter a valid condition. - Введите корректное условие - - - - Enter a name of the constraint. - Введите имя ограничения. - - - - ConstraintDialog - - - New constraint - constraint dialog - Новое ограничение - - - - Create - constraint dialog - Создать - - - - Edit constraint - dialog window - Редактировать ограничение - - - - Apply - constraint dialog - Применить - - - - Primary key - table constraints - Первичный ключ - - - - Foreign key - table constraints - Внешний ключ - - - - Unique - table constraints - Уникальность - - - - Not NULL - table constraints - Не NULL - - - - Check - table constraints - Проверка - - - - Collate - table constraints - Сравнение - - - - Default - table constraints - Значение по умолчанию - - - - ConstraintTabModel - - - Table - table constraints - Таблица - - - - Column (%1) - table constraints - Столбец (%1) - - - - Scope - table constraints - Область применения - - - - Type - table constraints - Тип - - - - Details - table constraints - Подробности - - - - Name - table constraints - Имя - - - - CssDebugDialog - - - SQLiteStudio CSS console - Консоль CSS SQLiteStudio - - - - DataView - - - Filter data - data view - Отфильтровать данные - - - - Grid view - Табличный вид - - - - Form view - Форма - - - - Refresh table data - data view - Обновить данные таблицы - - - - First page - data view - Первая страница - - - - Previous page - data view - Предыдущая страница - - - - Next page - data view - Следующая страница - - - - Last page - data view - Последняя страница - - - - Filter - Фильтр - - - - Hit Enter key or press "Apply filter" button on toolbar to apply new value. - Нажмите Enter или кнопку "Применить фильтр" на панели инструментов чтобы применить новое значение - - - - Show filter inputs per column - data view - Показывать поле ввода для фильтра в каждом столбце - - - - Apply filter - data view - Применить фильтр - - - - Commit changes for selected cells - data view - Подтвердить изменения для выбранных ячеек - - - - Rollback changes for selected cells - data view - Откатить изменения для выбранных ячеек - - - - Show grid view of results - sql editor - Показать результаты в виде таблицы - - - - Show form view of results - sql editor - Показать результаты в виде формы - - - - Filter by text - data view - Текстовый фильтр - - - - Filter by the Regular Expression - data view - Фильтр по регулярному выражению - - - - Filter by SQL expression - data view - Фильтр по выражению SQL - - - - Tabs on top - data view - Вкладки сверху - - - - Tabs at bottom - data view - Вкладки снизу - - - - Place new rows above selected row - data view - Поместить новые строки перед выделенной строкой - - - - Place new rows below selected row - data view - Поместить новые строки после выделенной строки - - - - Place new rows at the end of the data view - data view - Поместить новые строки в конец области просмотра данных - - - - Total number of rows is being counted. -Browsing other pages will be possible after the row counting is done. - Идёт подсчёт общего числа строк. -Переключение на другие страницы станет возможным после окончания подсчёта. - - - - Row: %1 - Строка: %1 - - - - DbConverterDialog - - - Convert database - Преобразовать базу данных - - - - Source database - Исходная база данных - - - - Source database version: - Версия исходной базы данных: - - - - Target database - Целевая база данных - - - - Target version: - Целевая версия: - - - - This is the file that will be created as a result of the conversion. - Это файл, который будет создан в результате конвертации. - - - - Target file: - Целевой файл: - - - - Name of the new database: - Имя новой базы данных: - - - - This is the name that the converted database will be added to SQLiteStudio with. - Это имя, под которым сконвертированная база данных будет добавлена в SQLiteStudio. - - - - Select source database - Выберите исходную базу данных - - - - Enter valid and writable file path. - Введите корректный путь к файлу, доступному для записи. - - - - Entered file exists and will be overwritten. - Указанный файл существует и будет перезаписан. - - - - Enter a not empty, unique name (as in the list of databases on the left). - Введите непустое уникальное имя (как в списке баз данных слева). - - - - No valid target dialect available. Conversion not possible. - Отсутствует корректный целевой диалект. Конвертация невозможна. - - - - Select valid target dialect. - Выберите корректный целевой диалект. - - - - Database %1 has been successfully converted and now is available under new name: %2 - База данных %1 была успешно сконвертирована и теперь доступна под новым именем: %2 - - - - SQL statements conversion - Конвертация конструкций SQL - - - - Following error occurred while converting SQL statements to the target SQLite version: - При конвертации конструкций SQL в новую версию SQLite произошла ошибка: - - - - Would you like to ignore those errors and proceed? - Вы хотите проигнорировать эти ошибки и продолжить? - - - - DbDialog - - - Database - База данных - - - - Database type - Тип базы данных - - - - Database driver - Драйвер базы данных - - - Generate automatically - Сгенерировать автоматически - - - - Options - Опции - - - - Permanent (keep it in configuration) - Постоянная (сохранить базу в конфигурационном файле) - - - - Test connection - Тест соединения - - - Name - Имя - - - Type - Тип - - - Browse for database file on local computer - Указать файл базы данных на локальном компьютере - - - - Create new database file - Создать новый файл базы данных - - - - - File - Файл - - - - Name (on the list) - Имя (в списке) - - - Generate name basing on file path - Генерировать имя на основе пути к файлу - - - Permanent - Запомнить - - - - <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> - aasfd - <p>Активируйте эту опцию для сохранения базы данных в конфигурационном файле и добавления её в список при каждом запуске SQLiteStudio.</p> - - - Test database connection - Тест соединения с базой данных - - - - Browse for existing database file on local computer - Указать существующий файл базы данных на локальном компьютере - - - - Browse - Обзор - - - - Enter an unique database name. - Введите уникальное имя базы данных. - - - - This name is already in use. Please enter unique name. - Данное имя уже используется. Пожалуйста, укажите уникальное имя. - - - - <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> - <p>Автоматическая генерация имени отключена, так как имя было задано вручную. Для автоматической генерации необходимо удалить содержимое из поля имени.</p> - - - <p>Automatic name generation was disabled, becuase the name was edited manually. To restore automatic generation please erase contents of the name field.</p> - <p>Автоматическая генерация имени отключена, так как имя было задано вручную. Для автоматической генерации необходимо удалить содержимое из поля имени.</p> - - - - Enter a database file path. - Введите путь к базе данных. - - - - This database is already on the list under name: %1 - Указанная база данных уже находится в списке под именем %1 - - - - Select a database type. - Выберите тип базы данных. - - - Auto-generated - Автоматически сгенерировано - - - The name will be auto-generated - Имя будет сгенерировано автоматически - - - Type the name - Введите имя - - - - DbObjectDialogs - - - Delete table - Удалить таблицу - - - - Are you sure you want to delete table %1? - Вы действительно хотите удалить таблицу %1? - - - - Delete index - Удалить индекс - - - - Are you sure you want to delete index %1? - Вы действительно хотите удалить индекс %1? - - - - Delete trigger - Удалить триггер - - - - Are you sure you want to delete trigger %1? - Вы действительно хотите удалить триггер %1? - - - - Delete view - Удалить представление - - - - Are you sure you want to delete view %1? - Вы действительно хотите удалить представление %1? - - - - - Error while dropping %1: %2 - Ошибка при удалении %1: %2 - - - - Delete objects - Удалить объекты - - - - Are you sure you want to delete following objects: -%1 - Вы действительно хотите удалить следующие объекты: -%1 - - - - Cannot start transaction. Details: %1 - Невозможно начать транзакцию. Подробности: %1 - - - - Cannot commit transaction. Details: %1 - Невозможно подтвердить транзакцию. Подробности: %1 - - - - DbTree - - - Databases - Базы данных - - - - Filter by name - Фильтр по имени - - - - Copy - Копировать - - - - Paste - Вставить - - - - Select all - Выделить всё - - - - Create a group - Создать группу - - - - Delete the group - Удалить группу - - - - Rename the group - Переименовать группу - - - Add a database - Добавить базу данных - - - Edit the database - Редактировать базу данных - - - Remove the database - Удалить базу данных - - - Connect to the database - Подключиться к базе данных - - - Disconnect from the database - Отключиться от базы данных - - - - Import - Импорт - - - Export the database - Экспортировать базу данных - - - Convert database type - Измениить тип базы данных - - - Vacuum - Выполнить VACUUM - - - Integrity check - Проверить целостность - - - Create a table - Создать таблицу - - - Edit the table - Редактировать таблицу - - - Delete the table - Удалить таблицу - - - - Export the table - Экспортировать таблицу - - - - Import into the table - Импортировать данные в таблицу - - - - Populate table - Заполнить таблицу - - - - Create similar table - Создать подобную таблицу - - - - Reset autoincrement sequence - Сбросить счётчик автоинкремента - - - Create an index - Создать индекс - - - Edit the index - Редактировать индекс - - - Delete the index - Удалить индекс - - - Create a trigger - Создать триггер - - - Edit the trigger - Редактировать триггер - - - Delete the trigger - Удалить триггер - - - Create a view - Создать представление - - - Edit the view - Редактировать представление - - - Delete the view - Удалить представление - - - - Add a column - Добавить столбец - - - - Edit the column - Редактировать столбец - - - - Delete the column - Удалить столбец - - - - Delete selected items - Удалить выбранные элементы - - - - Clear filter - Сбросить фильтр - - - Refresh all database schemas - Обновить структуры всех баз данных - - - Refresh selected database schema - Обновить структуру выбранной базы данных - - - - Execution from file cancelled. Any queries executed so far have been rolled back. - Выполнение запросов из файла отменено. Все выполненные ранее из него запросы откачены. - - - - &Add a database - &Добавить базу данных - - - - &Edit the database - &Редактировать базу данных - - - - &Remove the database - &Удалить базу данных - - - - &Connect to the database - &Подключиться к базе данных - - - - &Disconnect from the database - &Отключиться от базы данных - - - - &Export the database - &Экспортировать базу данных - - - - Con&vert database type - И&зменить тип базы данных - - - - Vac&uum - Оп&ерация VACUUM - - - - &Integrity check - Проверить &целостность - - - - Create a &table - Создать &таблицу - - - - Edit the t&able - Редактировать т&аблицу - - - - Delete the ta&ble - Удалить та&блицу - - - - Create an &index - Создать &индекс - - - - Edit the i&ndex - Редактировать и&ндекс - - - - Delete the in&dex - Удалить инде&кс - - - - Create a trig&ger - Создать три&ггер - - - - Edit the trigg&er - Редактиро&вать триггер - - - - Delete the trigge&r - Уда&лить триггер - - - - Create a &view - &Создать представление - - - - Edit the v&iew - Редактироват&ь представление - - - - Delete the vi&ew - Удалить &представление - - - - &Refresh all database schemas - Обновить структуры всех баз данн&ых - - - - Re&fresh selected database schema - Обновить структуру выбранной базы данны&х - - - - - Erase table data - Удалить данные из таблицы - - - - Open file's directory - Открыть папку с этим файлом - - - - Execute SQL from file - Выполнить SQL-запросы из файла - - - - - Database - База данных - - - - Grouping - Группировка - - - - Generate query for table - Сгенерировать запрос для этой таблицы - - - - - Create group - Создать группу - - - - Group name - Имя группы - - - - Entry with name %1 already exists in group %2. - Элемент с именем %1 уже входит в группу %2. - - - - Delete group - Удалить группу - - - - Are you sure you want to delete group %1? -All objects from this group will be moved to parent group. - Вы действительно хотите удалить группу %1? Все объекты из данной группы будут перемещены в родительскую группу. - - - - Are you sure you want to remove database '%1' from the list? - Вы действительно хотите удалить базу данных '%1' из списка? - - - - Are you sure you want to remove following databases from the list: -%1 - Вы действительно хотите удалить следующие базы данных из списка: %1 - - - - Remove database - Удалить базу данных - - - - Vacuum (%1) - Операция VACUUM (%1) - - - - Autoincrement value for table '%1' has been reset successfully. - Сброс счётчика автоинкремента у таблицы '%1' успешно выполнен. - - - - Are you sure you want to delete all data from table(s): %1? - Вы действительно хотите удалить все данные из таблицы (таблиц): '%1'? - - - - Could not execute SQL, because application has failed to start transaction: %1 - Невозможно выполнить SQL-запрос, так как приложению не удалось начать транзакцию: %1 - - - - Could not open file '%1' for reading: %2 - Невозможно открыть файл '%1' для чтения: %2 - - - - Could not execute SQL, because application has failed to commit the transaction: %1 - Невозможно выполнить SQL-запрос, так как приложению не удалось завершить транзакцию: %1 - - - - Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. - Завершено выполнение %1 запросов за %2 секунд. %3 запросов не было выполнено из-за ошибок. - - - - Finished executing %1 queries in %2 seconds. - Завершено выполнение %1 запросов за %2 секунд. - - - - Could not execute SQL due to error. - Невозможно выполнить SQL-запрос из-за ошибки. - - - Delete database - Удалить базу данных - - - Are you sure you want to delete database '%1'? - Вы действительно хотите удалить базу данных '%1'? - - - - - Cannot import, because no import plugin is loaded. - Невозможно произвести импорт, т.к. не загружено ни одного модуля импорта. - - - - - Cannot export, because no export plugin is loaded. - Невозможно произвести экспорт, т.к. не загружено ни одного модуля экспорта. - - - Error while executing VACUUM on the database %1: %2 - Ошибка при выполнении команды VACUUM для базы данных %1: %2 - - - VACUUM execution finished successfully. - Выполнение команды VACUUM успешно завершено. - - - - Integrity check (%1) - Проверка целостности (%1) - - - - Reset autoincrement - Сброс счётчика автоинкремента - - - - Are you sure you want to reset autoincrement value for table '%1'? - Вы действительно хотите сбросить счётчик автоинкремента у таблицы '%1'? - - - - An error occurred while trying to reset autoincrement value for table '%1': %2 - При попытке сброса счётчика автоинкремента у таблицы '%1' произошла ошибка: %2 - - - Autoincrement value for table '%1' has been reset successfly. - Сброс счётчика автоинкремента у таблицы '%1' успешно выполнен. - - - Are you sure you want to delete all data from table '%1'? - Вы действительно хотите удалить все данные из таблицы '%1'? - - - - An error occurred while trying to delete data from table '%1': %2 - При попытке удаления данных из таблицы '%1' произошла ошибка: %2 - - - - All data has been deleted for table '%1'. - Из таблицы '%1' были удалены все данные. - - - - Following objects will be deleted: %1. - Будут удалены следующие объекты: %1. - - - - Following databases will be removed from list: %1. - Из списка будут удалены следующие базы данных: %1. - - - - Remainig objects from deleted group will be moved in place where the group used to be. - Оставшиеся после удаления группы объекты будут перемещены туда, где ранее располагалась группа. - - - - %1<br><br>Are you sure you want to continue? - %11<br><br>Вы действительно хотите продолжить? - - - - Delete objects - Удалить объекты - - - - DbTreeItemDelegate - - - error - dbtree labels - ошибка - - - - (system table) - database tree label - (системная таблица) - - - - (virtual) - virtual table label - (виртуальная) - - - - (system index) - database tree label - (системный индекс) - - - - DbTreeModel - - - Database: %1 - dbtree tooltip - База данных: %1 - - - - Version: - dbtree tooltip - Версия: - - - - File size: - dbtree tooltip - Размер файла: - - - - Encoding: - dbtree tooltip - Кодировка: - - - Error details: - dbtree tooltip - Подробности ошибки: - - - - Error: - dbtree tooltip - Ошибка: - - - - Table : %1 - dbtree tooltip - Таблица: %1 - - - - Columns (%1): - dbtree tooltip - Столбцы (%1): - - - - Indexes (%1): - dbtree tooltip - Индексы (%1): - - - - Triggers (%1): - dbtree tooltip - Триггеры (%1): - - - - Copy - Копировать - - - - Move - Переместить - - - - Include data - Включая данные - - - - Include indexes - Включая индексы - - - - Include triggers - Включая триггеры - - - - Abort - Прервать - - - - Could not add dropped database file '%1' automatically. Manual setup is necessary. - Невозможно автоматически добавить перетянутый файл базы данных '%1'. Необходима ручная настройка. - - - - Referenced tables - Связанные таблицы - - - - Do you want to include following referenced tables as well: -%1 - Вы хотите также включить следующие связанные таблицы: -%1 - - - - Name conflict - Конфликт имён - - - - Following object already exists in the target database. -Please enter new, unique name, or press '%1' to abort the operation: - Данный объект уже существует в целевой базе данных. -Пожалуйста введите новое уникальное имя или нажмите %1 для прерывания операции: - - - - SQL statements conversion - Конвертация конструкций SQL - - - - Following error occurred while converting SQL statements to the target SQLite version: - При конвертации конструкций SQL в новую версию SQLite произошла ошибка: - - - - Would you like to ignore those errors and proceed? - Вы хотите проигнорировать эти ошибки и продолжить? - - - - DdlHistoryWindow - - - Filter by database: - Фильтр по базе данных: - - - - -- Queries executed on database %1 (%2) --- Date and time of execution: %3 -%4 - -- Запросы, выполненные к базе данных %1 (%2) --- Дата и время выполнения: %3 -%4 - - - - DDL history - История DDL - - - - DdlPreviewDialog - - - Queries to be executed - Запросы, которые будут выполнены - - - - Don't show again - Больше не показывать - - - - DebugConsole - - - SQLiteStudio Debug Console - Отладочная консоль SQLiteStudio - - - - EditorWindow - - - Query - Запрос - - - - History - История - - - - Results in the separate tab - Результаты в отдельной вкладке - - - - Results below the query - Результаты под запросом - - - - - SQL editor %1 - Редактор SQL %1 - - - - Results - Результаты - - - - Execute query - Выполнить запрос - - - - Explain query - План запроса - - - - Clear execution history - sql editor - Очистить историю запросов - - - - Export results - sql editor - Экспортировать результаты - - - - Create view from query - sql editor - Создать представление из запроса - - - - Previous database - Предыдущая база данных - - - - Next database - Следующая база данных - - - - Show next tab - sql editor - Открыть следующую вкладку - - - - Show previous tab - sql editor - Открыть предыдущую вкладку - - - - Focus results below - sql editor - Фокус на результатах внизу - - - - Focus SQL editor above - sql editor - Фокус на редакторе SQL сверху - - - - Delete selected SQL history entries - sql editor - Удалить выбранные записи из истории SQL-запросов - - - - Active database (%1/%2) - Текущая база данных (%1/%2) - - - - Query finished in %1 second(s). Rows affected: %2 - Запрос выполнен за %1 секунд. Затронуто строк: %2 - - - - Query finished in %1 second(s). - Запрос выполнен за %1 секунд. - - - - Clear execution history - Очистка истории запросов - - - - Are you sure you want to erase the entire SQL execution history? This cannot be undone. - Вы действительно хотите удалить всю историю выполнения SQL запросов? Операцию невозможно отменить. - - - - Cannot export, because no export plugin is loaded. - Невозможно произвести экспорт, т.к. не загружено ни одного модуля экспорта. - - - - No database selected in the SQL editor. Cannot create a view for unknown database. - В редакторе SQL не выбрана база данных. Невозможно создать представление в неизвестной базе данных. - - - - Editor window "%1" has uncommitted data. - В окне редактора "%1" имеются неподтверждённые данные. - - - Editor window "%1" has uncommited data. - В окне редактора "%1" имеются неподтверждённые данные. - - - - ErrorsConfirmDialog - - - Errors - Ошибки - - - - Following errors occured: - Возникли следующие ошибки: - - - - Would you like to proceed? - Вы хотите продолжить? - - - - ExecFromFileDialog - - - Execute SQL from file - Выполнение SQL-запросов из файла - - - - Input file - Файл-источник - - - - Path to file - Путь к файлу - - - - Browse for file - Выбрать файл - - - - Options - Опции - - - - File encoding - Кодировка файла - - - - Skip failing SQL statements - Пропуск неудавшихся SQL-запросов - - - - SQL scripts (*.sql);;All files (*) - Скрипты SQL (*.sql);;Все файлы (*) - - - - Execute SQL file - Выполнить SQL-запросы из файла - - - - Please provide file to be executed. - Пожалуйста укажите файл с SQL-запросами - - - - Provided file does not exist or cannot be read. - Указанный файл не существует или не может быть прочитан. - - - - ExportDialog - - - Export - Экспорт - - - - What do you want to export? - Что вы хотите экспортировать? - - - - A database - Базу данных - - - - A single table - Одну таблицу - - - - Query results - Результаты запроса - - - - Table to export - Экспортируемая таблица - - - - Database - База данных - - - - Table - Таблица - - - - Options - Опции - - - - When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. - Если данная опция деактивирована, будет экспортирован только DDL таблицы (конструкция CREATE TABLE). - - - - Export table data - Экспортировать данные таблицы - - - - Export table indexes - Экспортировать индексы таблицы - - - - Export table triggers - Экспортировать триггеры таблицы - - - - Note, that exporting table indexes and triggers may be unsupported by some output formats. - Учтите, что экспорт индексов и триггеров таблицы может не поддерживаться некоторыми выходными форматами. - - - - Select database objects to export - Выберите объекты базы данных для экспорта - - - - Export data from tables - Экспортировать данные таблиц - - - - Select all - Выбрать всё - - - - Deselect all - Снять выделение - - - - - Database: - База данных: - - - - Query to export results for - Запрос для экспорта результатов - - - - Query to be executed for results: - Выполняемый запрос для получения данных - - - - Export format and options - Формат экспорта и опции - - - - Export format - Формат экспорта - - - - Output - Вывод - - - - Exported file path - Путь к результирующему файлу - - - - Clipboard - Буфер обмена - - - - File - Файл - - - - Exported text encoding: - Кодировка экспорта - - - - Export format options - Опции формата экспорта - - - - Cancel - Отмена - - - - - - Select database to export. - Выберите базу данных для экспорта. - - - - Select table to export. - Выберите таблицу для экспорта. - - - - Enter valid query to export. - Введи корректный запрос для экспорта. - - - - Select at least one object to export. - Выберите хотя бы один объект для экспорта. - - - - You must provide a file name to export to. - Необходимо указать имя файла, в который будет произведён экспорт. - - - - Path you provided is an existing directory. You cannot overwrite it. - Указанный путь является существующим каталогом. Его невозможно перезаписать. - - - - The directory '%1' does not exist. - Каталог '%1' не существует. - - - - The file '%1' exists and will be overwritten. - Файл '%1' существует и будет перезаписан. - - - - All files (*) - Все файлы (*) - - - - Pick file to export to - Выберите файл для экспорта - - - - Internal error during export. This is a bug. Please report it. - Внутренняя ошибка во время экспорта. Пожалуйста, вышлите отчёт об этой ошибке. - - - - FileExecErrorsDialog - - - Execution errors - Ошибки выполнения - - - - Following errors were encountered during execution of SQL statements from the file: - При выполнении SQL-запросов из файла возникли следующие ошибки: - - - - SQL - SQL-запрос - - - - Error - Ошибка - - - - Statements that were executed successfully were commited. - Успешно выполненные запросы были записаны в базу. - - - - Statements that were executed successfully were rolled back. - Успешно выполненные запросы были откачены. - - - - FontEdit - - - Choose font - font configuration - Выберите шрифт - - - - Form - - - Active SQL formatter plugin - Активный модуль форматирования SQL - - - - FormView - - - Commit row - form view - Подтвердить строку - - - - Rollback row - form view - Откатить строку - - - - First row - form view - Первая строка - - - - Previous row - form view - Предыдущая строка - - - - Next row - form view - Следующая строка - - - - Last row - form view - Последняя строка - - - - Insert new row - form view - Вставить новую строку - - - - Delete current row - form view - Удалить текущую строку - - - - FunctionsEditor - - - Filter funtions - Отфильтровать функции - - - - Function name: - Имя функции: - - - - Implementation language: - Язык реализации: - - - - Type: - Тип: - - - - Input arguments - Передаваемые аргументы - - - - Undefined - Не определено - - - - Databases - Базы данных - - - - Register in all databases - Зарегистрировать во всех базах данных - - - - Register in following databases: - Зарегистрировать в следующих базах данных: - - - - Initialization code: - Код инициализации: - - - - - Function implementation code: - Код реализации функции: - - - - Final step implementation code: - Код реализации последнего шага: - - - - SQL function editor - Редактор функций SQL - - - - Commit all function changes - Подтвердить все изменения функций - - - - Rollback all function changes - Откатить все изменения функций - - - - Create new function - Создать новую функцию - - - - Delete selected function - Удалить выбранную функцию - - - - Custom SQL functions manual - Руководство по созданию произвольных функций SQL - - - - Add function argument - Добавить аргумент функции - - - - Rename function argument - Переименовать аргумент функции - - - - Delete function argument - Удалить аргумент функции - - - - Move function argument up - Переместить аргумент функции вверх - - - - Move function argument down - Переместить аргумент функции вниз - - - - Scalar - Скалярная - - - - Aggregate - Агрегирующая - - - - Enter a non-empty, unique name of the function. - Введите непустое уникальное имя функции. - - - - Pick the implementation language. - Выберите язык реализации. - - - - Per step code: - Код на каждом шаге: - - - - Enter a non-empty implementation code. - Введите непустой код реализации. - - - - argument - new function argument name in function editor window - аргумент - - - - Functions editor window has uncommitted modifications. - В окне редактора функций имеются неподтверждённые изменения. - - - Functions editor window has uncommited modifications. - В окне редактора функций имеются неподтверждённые изменения. - - - - ImportDialog - - - Import data - Импорт данных - - - - Table to import to - Таблица для импорта - - - - Table - Таблица - - - - Database - База данных - - - - Data source to import from - Источник данных для импорта - - - - Data source type - Тип источника данных - - - - Options - Опции - - - - Input file: - Файл-источник: - - - - Text encoding: - Кодировка текста: - - - - <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> - <p>Если опция активирована, все нарушения ограничений, неправильный формат данных (неверное количество столбцов) и любые другие проблемы, возникшие при осуществлении импорта, будут проигнорированы и импорт будет продолжен.</p> - - - - Ignore errors - Игнорировать ошибки - - - - Data source options - Опции источника данных - - - - Cancel - Отмена - - - - If you type table name that doesn't exist, it will be created. - Если вы введёте несуществующее имя таблицы, она будет создана. - - - - Enter the table name - Введите имя таблицы - - - - Select import plugin. - Выберите модуль импорта. - - - - You must provide a file to import from. - Необходимо указать файл, из которого осуществляется импорт. - - - - The file '%1' does not exist. - Файл '%1' не существует. - - - - Path you provided is a directory. A regular file is required. - Указанный путь является каталогом. Необходимо указать файл. - - - - Pick file to import from - Выберите файл для импорта - - - - IndexDialog - - - - Index - Индекс - - - - On table: - Для таблицы: - - - - Index name: - Имя индекса: - - - - Partial index condition - Условие для частичного индекса - - - - Unique index - Уникальный индекс - - - - Column - Столбец - - - - Collation - Сравнение - - - - Sort - Сортировка - - - - Delete selected indexed expression - Удалить выбранное индексируемое выражение - - - - Moves selected index column up in the order, making it more significant in the index. - Переместить индексируемый столбец выше по списку, увеличивая его значимость в индексе. - - - - Moves selected index column down in the order, making it less significant in the index. - Переместить индексируемый столбец ниже по списку, снижая его значимость в индексе. - - - - Edit selected indexed expression - Редактировать выбранное индексируемое выражение - - - - Add indexed expression - Добавить индексируемое выражение - - - - DDL - DDL - - - - Tried to open index dialog for closed or inexisting database. - Попытка вызвать диалог создания индекса для закрытой или несуществующей базы данных. - - - - Could not process index %1 correctly. Unable to open an index dialog. - Не удалось корректно обработать индекс %1. Невозможно открыть окно индекса. - - - - Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. - Уникальный индекс не может содержать индексируемые выражения. Либо удалите выражения из списка ниже, либо отключите эту опцию. - - - - Pick the table for the index. - Выберите таблицу для индекса. - - - - Select at least one column. - Выберите хотя бы один столбец. - - - - Enter a valid condition. - Введите корректное условие. - - - - default - index dialog - по умолчанию - - - - Sort order - table constraints - Порядок сортировки - - - - - Error - index dialog - Ошибка - - - - Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? - Невозможно создать уникальный индекс, т.к. данные в выбранных столбцах неуникальны. Вы хотите выполнить запрос SELECT для просмотра проблемных данных? - - - - An error occurred while executing SQL statements: -%1 - При выполнении конструкций SQL произошла ошибка: -%1 - - - - IndexExprColumnDialog - - - Indexed expression - Индексируемое выражение - - - - Expression to index - Выражение для добавления в индекс - - - - This expression is already indexed by the index. - Такое выражение уже присутствует в индексе. - - - - Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. - Столбец необходимо индексировать напрямую, а не выражением. Либо добавьте в выражение что-либо кроме имени столбца, либо отмените изменения и отметьте столбец непосредственно в окне индекса. - - - - Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. - Столбец '%1' не принадлежит к индексируемой таблице. Индексируемые выражения могут ссылаться только на столбцы индексируемой таблицы. - - - - It's forbidden to use 'SELECT' statements in indexed expressions. - Запрещено использовать конструкции SELECT в индексируемых выражениях. - - - - Enter an indexed expression. - Введите индексируемое выражение. - - - - Invalid expression. - Некорректное выражение. - - - - LanguageDialog - - - Language - Язык - - - - Please choose language: - Пожалйуста, выберите язык: - - - - MainWindow - - - Database toolbar - Панель базы данных - - - - Structure toolbar - Панель структуры - - - - Tools - Инструменты - - - - Window list - Список окон - - - - View toolbar - Панель отображения - - - - Configuration widgets - Виджеты конфигурации - - - - Syntax highlighting engines - Движки синтаксической подсветки - - - - Data editors - Редакторы данных - - - - Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. - Отладочный режим. Нажмите %1 или воспользуйтесь пунктом меню 'Справка / Открыть отладочную консоль' для открытия отладочной консоли. - - - - Running in debug mode. Debug messages are printed to the standard output. - Отладочный режим. Отладочные сообщения выводятся в стандартный выходной поток. - - - - You need to restart application to make the language change take effect. - Для смены языка необходимо перезапустить приложение. - - - Open SQL editor - Открыть редактор SQL - - - Open DDL history - Открыть историю DDL - - - Open SQL functions editor - Открыть редактор функций SQL - - - Open collations editor - Открыть редактор сравнений - - - Import - Импорт - - - Export - Экспорт - - - Open configuration dialog - Открыть диалог конфигурации - - - Tile windows - Расположить окна плиткой - - - Tile windows horizontally - Расположить окна по горизонтали - - - Tile windows vertically - Расположить окна по вертикали - - - Cascade windows - Расположить окна каскадом - - - - Next window - Следующее окно - - - - Previous window - Предыдущее окно - - - - Hide status field - Скрыть окно статуса - - - Close selected window - Закрыть выбранное окно - - - Close all windows but selected - Закрыть все окна, кроме выбранного - - - Close all windows - Закрыть все окна - - - Restore recently closed window - Восстановить недавно закрытые окна - - - Rename selected window - Переименовать выбранное окно - - - - Open Debug Console - Открыть отладочную консоль - - - - Open CSS Console - Открыть консоль CSS - - - Report a bug - Сообщить об ошибке - - - Propose a new feature - Предложить новый функционал - - - About - О программе - - - Licenses - Лицензии - - - Open home page - Открыть домашнюю страницу - - - Open forum page - Открыть страницу форума - - - User Manual - Руководство пользователя - - - SQLite documentation - Документация по SQLite - - - Report history - История отчётов - - - Check for updates - Проверить обновления - - - Database - menubar - База данных - - - Structure - menubar - Структура - - - View - menubar - Вид - - - - Window list - menubar view menu - Окна - - - Tools - menubar - Инструменты - - - Help - Справка - - - - Open SQL &editor - &Открыть редактор SQL - - - - Open DDL &history - О&ткрыть историю DDL - - - - Open SQL &functions editor - От&крыть редактор функций SQL - - - - Open &collations editor - Отк&рыть редактор сравнений - - - - Open ex&tension manager - Откр&ыть менеджер расширений - - - - &Import - &Импорт - - - - E&xport - &Экспорт - - - - Open confi&guration dialog - Открыт&ь диалог конфигурации - - - - &Tile windows - Р&асположить окна плиткой - - - - Tile windows &horizontally - Распо&ложить окна по горизонтали - - - - Tile windows &vertically - Располо&жить окна по вертикали - - - - &Cascade windows - Ра&сположить окна каскадом - - - - Close selected &window - &Закрыть выбранное окно - - - - Close all windows &but selected - Закрыть &все окна, кроме выбранного - - - - Close &all windows - Закрыть вс&е окна - - - - Re&store recently closed window - Восста&новить последнее закрытое окно - - - - &Rename selected window - Переи&меновать выбранное окно - - - - Report a &bug - Сообщить об о&шибке - - - - Propose a new &feature - Предложить новую &функцию - - - - &About - О про&грамме - - - - &Licenses - Ли&цензии - - - - Open home &page - Открыть домашн&юю страницу - - - - Open fo&rum page - Открыть страниц&у форума - - - - User &Manual - Руководство пользовател&я - - - - SQLite &documentation - &Документация по SQLite - - - - Bugs and feature &requests - Оши&бки и предложения - - - - Check for &updates - &Проверить обновления - - - - &Database - menubar - &База данных - - - - &Structure - menubar - &Структура - - - - &View - menubar - &Вид - - - - &Tools - menubar - &Инструменты - - - - &Help - С&правка - - - - Could not set style: %1 - main window - Невозможно применить стиль: %1 - - - - Cannot export, because no export plugin is loaded. - Невозможно произвести экспорт, т.к. не загружено ни одного модуля экспорта. - - - - Cannot import, because no import plugin is loaded. - Невозможно произвести импорт, т.к. не загружено ни одного модуля импорта. - - - - Rename window - Переименовать окно - - - - Enter new name for the window: - Введите новое имя для окна: - - - - New updates are available. <a href="%1">Click here for details</a>. - Доступны обновления. <a href="%1">Нажмите здесь для подробностей</a>. - - - - You're running the most recent version. No updates are available. - Установлена последняя версия. Обновлений нет. - - - - Database passed in command line parameters (%1) was already on the list under name: %2 - База данных, переданная через аргументы командной строки (%1), уже находится в списке под именем %2 - - - - Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 - База данных, переданная через аргументы командной строки (%1), была временно добавлена в список под именем %2 - - - - Could not add database %1 to list. - Невозможно добавить базу данных %1 в список. - - - - MdiWindow - - Uncommited changes - Неподтверждённые изменения - - - - Uncommitted changes - Неподтверждённые изменения - - - - Close anyway - Всё равно закрыть - - - - Don't close - Не закрывать - - - - MultiEditor - - - Null value - multieditor - Значение Null - - - - Configure editors for this data type - Настройте редакторы для этого типа данных - - - - Open another tab - Открыть дополнительную вкладку - - - - Data editor plugin '%1' not loaded, while it is defined for editing '%1' data type. - Модуль редактора данных '%1' не загружен, хотя указан для редактирования типа данных '%1' - - - - Deleted - multieditor - Удалено - - - - Read only - multieditor - Только для чтения - - - - MultiEditorBool - - Boolean - Логическое - - - - MultiEditorBoolPlugin - - - Boolean - Логическое - - - - MultiEditorDate - - Date - Дата - - - - MultiEditorDatePlugin - - - Date - Дата - - - - MultiEditorDateTime - - Date & time - Дата и время - - - - MultiEditorDateTimePlugin - - - Date & time - Дата и время - - - - MultiEditorHex - - Hex - Шестнадцатеричное - - - - MultiEditorHexPlugin - - - Hex - Шестнадцатеричное - - - - MultiEditorNumeric - - Number - numeric multi editor tab name - Число - - - - MultiEditorNumericPlugin - - - Number - numeric multi editor tab name - Число - - - - MultiEditorText - - Text - Текст - - - - Tab changes focus - Tab перемещает фокус - - - - Cut - Вырезать - - - - Copy - Копировать - - - - Paste - Вставить - - - - Delete - Удалить - - - - Undo - Отменить - - - - Redo - Повторить - - - - MultiEditorTextPlugin - - - Text - Текст - - - - MultiEditorTime - - Time - Время - - - - MultiEditorTimePlugin - - - Time - Время - - - - NewConstraintDialog - - - New constraint - Новое ограничение - - - - - Primary Key - new constraint dialog - Первичный ключ - - - - - Foreign Key - new constraint dialog - Внешний ключ - - - - - Unique - new constraint dialog - Уникальность - - - - - Check - new constraint dialog - Проверка - - - - Not NULL - new constraint dialog - Не NULL - - - - Collate - new constraint dialog - Сравнение - - - - Default - new constraint dialog - Значение по умолчанию - - - - NewVersionDialog - - - SQLiteStudio updates - Обновления SQLiteStudio - - - - New updates are available! - Доступны обновления! - - - - Component - Компонент - - - - This application will be closed and the update installer will start to download and install all the updates. - Приложение будет закрыто, и установщик обновлений начнёт загрузку и установку обновлений. - - - Current version - Текущая версия - - - - Update version - Новая версия - - - - Check for updates on startup - Проверять обновления при запуске - - - - Update to new version! - Обновить до новой версии! - - - The update will be automatically downloaded and installed. This will also restart application at the end. - Обновление будет автоматически загружено и установлено. В конце процесса приложение будет перезапущено. - - - - Not now. - Не сейчас. - - - - Don't install the update and close this window. - Не устанавливать обновление и закрыть данное окно. - - - - PopulateConfigDialog - - - Populating configuration - Настройка заполнения - - - - Configuring <b>%1</b> for column <b>%2</b> - Настройка <b>%1</b> для столбца <b>%2</b> - - - - PopulateDialog - - - Populate table - Заполнить таблицу - - - - Database - База данных - - - - Table - Таблица - - - - Columns - Столбцы - - - - Number of rows to populate: - Количество заполняемых строк: - - - - Populate - populate dialog button - Заполнить - - - - Abort - Прервать - - - - Configure - Настроить - - - - Populating configuration for this column is invalid or incomplete. - Настройка заполнения для данного столбца некорректна или незавершена. - - - - Select database with table to populate - Выберите базу данных с таблицей для заполнения - - - - Select table to populate - Выберите таблицу для заполнения - - - - You have to select at least one column. - Необходимо выбрать хотя бы один столбец. - - - - QObject - - - Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). - Невозможно редактировать столцбы, являющиеся результатом составных конструкций %1 (те, которые включают ключевые слова %2, %3 и %4). - - - - The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. - В механизме выполнения запросов возникли проблемы при корректном извлечении значений ROWID. Предположительно это ошибка в приложении. Возможно стоит отправить отчёт об ошибке. - - - - Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. - Запрошенный столбец является результатом SQL выражения, а не просто выбором столбца. Такие столбцы не могут быть отредактированы. - - - - Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. - Запрошенный столбец принадлежит служебной таблице SQLite. Эти таблицы нельзя редактировать напрямую. - - - - Cannot edit results of query other than %1. - Невозможно редактировать результаты запросов, отличных от %1. - - - - Cannot edit columns that are result of aggregated %1 statements. - Невозможно редактировать столцбы, являющиеся результатом агрегирующих конструкций %1. - - - - Cannot edit columns that are result of %1 statement. - Невозможно редактировать столцбы, являющиеся результатом конструкции %1. - - - - Cannot edit columns that are result of common table expression statement (%1). - Невозможно редактировать столцбы, являющиеся результатом обобщённого табличного выражения (%1). - - - - - - - on conflict: %1 - data view tooltip - при конфликте: %1 - - - - references table %1, column %2 - data view tooltip - ссылается на таблицу %1, столбец %2 - - - - condition: %1 - data view tooltip - условие: %1 - - - - collation name: %1 - data view tooltip - имя сравнения: %1 - - - - Data grid view - Табличный вид данных - - - - Copy cell(s) contents to clipboard - Копировать содержимое ячеек в буфер обмена - - - - Copy cell(s) contents together with header to clipboard - Копировать имя столбца и содержимое ячеек в буфер обмена - - - - Paste cell(s) contents from clipboard - Вставить содержимое ячеек из буфера обмена - - - - Set empty value to selected cell(s) - Установить пустое значение для выбранных ячеек - - - - Set NULL value to selected cell(s) - Установить для выбранных ячеек значение NULL - - - - Commit changes to cell(s) contents - Подтвердить изменение содержимого ячеек - - - - Rollback changes to cell(s) contents - Откатить изменения содержимого ячеек - - - - Delete selected data row - Удалить выбранную строку данных - - - - Insert new data row - Вставить новую строку данных - - - - Open contents of selected cell in a separate editor - Открыть содержимое выбранной ячейки в отдельном редакторе - - - - Total pages available: %1 - Всего доступно страниц: %1 - - - - Total rows loaded: %1 - Всего загружено строк: %1 - - - - Data view (both grid and form) - Окно данных (и табличный вид, и форма) - - - - Refresh data - Обновить данные - - - - Switch to grid view of the data - Переключиться с табличного вида на форму - - - - Switch to form view of the data - Переключиться из формы на табличный вид - - - - Database list - Список баз данных - - - - Delete selected item - Удалить выбранный элемент - - - - Clear filter contents - Сбросить содержимое фильтра - - - - Refresh schema - Обновить структуру - - - - Refresh all schemas - Обновить структуры всех баз данных - - - - Add database - Добавить базу данных - - - - Select all items - Выделить все элементы - - - - Copy selected item(s) - Копировать выбранные элементы - - - - - - Paste from clipboard - Вставить из буфера обмена - - - - Tables - Таблицы - - - - Indexes - Индексы - - - - Triggers - Триггеры - - - - Views - Представления - - - - Columns - Столбцы - - - - Data form view - Форма - - - - Commit changes for current row - Подтвердить изменения для текущей строки - - - - Rollback changes for current row - Откатить изменения для текущей строки - - - - Go to first row on current page - Перейти к первой строке текущей страницы - - - - Go to next row - Перейти к следующей строке - - - - Go to previous row - Перейти к предыдущей строке - - - - Go to last row on current page - Перейти к последней строке текущей страницы - - - - Insert new row - Вставить новую строку - - - - Delete current row - Удалить текущую строку - - - - Main window - Главное окно - - - - Open SQL editor - Открыть редактор SQL - - - - Previous window - Предыдущее окно - - - - Next window - Следующее окно - - - - Hide status area - Скрыть область статуса - - - - Open configuration dialog - Открыть диалог конфигурации - - - - Open Debug Console - Открыть отладочную консоль - - - - Open CSS Console - Открыть консоль CSS - - - - Cell text value editor - Редактор текстового значения чейки - - - - - Cut selected text - Вырезать выбранный текст - - - - - Copy selected text - Копировать выбранный текст - - - - - Delete selected text - Удалить выбранный текст - - - - - Undo - Отменить - - - - - Redo - Повторить - - - - SQL editor input field - Поле ввода редактора SQL - - - - Select whole editor contents - Выбрать всё содержимое редактора - - - - Save contents into a file - Сохранить содержимое в файл - - - - Load contents from a file - Загрузить содержимое из файла - - - - Find in text - Найти в тексте - - - - Find next - Найти далее - - - - Find previous - Найти предыдущее - - - - Replace in text - Замена в тексте - - - - Delete current line - Удалить текущую строчку - - - - Request code assistant - Вызвать автодополнение - - - - Format contents - Форматировать содержимое - - - - Move selected block of text one line down - Переместить выбранный блок текста на строчку вниз - - - - Move selected block of text one line up - Переместить выбранный блок текста на строчку вверх - - - - Copy selected block of text and paste it a line below - Скопировать блок текста и вставить его строчкой ниже - - - - Copy selected block of text and paste it a line above - Скопировать блок текста и вставить его строчкой выше - - - - Toggle comment - Комментировать/раскомментировать - - - - All SQLite databases - Все базы данных SQLite - - - - All files - Все файлы - - - - - Database file - Файл баз данных - - - Reports history window - Окно истории отчётов - - - Delete selected entry - Удалить выбранную запись - - - - SQL editor window - Окно редактора SQL - - - - Execute query - Выполнить запрос - - - - Execute "%1" query - Выполнить запрос "%1" - - - - Switch current working database to previous on the list - Переключить текущую базу данных на предыдущую в списке - - - - Switch current working database to next on the list - Переключить текущую базу данных на следующую в списке - - - - Go to next editor tab - Перейти на следующую вкладку редактора - - - - Go to previous editor tab - Перейти на предыдущую вкладку редактора - - - - Move keyboard input focus to the results view below - Переместить фокус ввода в окно результатов внизу - - - - Move keyboard input focus to the SQL editor above - Переместить фокус ввода в окно редактора SQL вверху - - - - Delete selected SQL history entries - Удалить выбранные записи из истории SQL-запросов - - - - Table window - Окно таблицы - - - - Refresh table structure - Обновить структуру таблицы - - - - Add new column - Добавить новый столбец - - - - Edit selected column - Редактировать выбранный столбец - - - - Delete selected column - Удалить выбранный столбец - - - - Export table data - Экспортировать данные таблицы - - - - Import data to the table - Импортировать данные в таблицу - - - - Add new table constraint - Добавить новое ограничение на таблицу - - - - Edit selected table constraint - Редактировать выбранное ограничение на таблицу - - - - Delete selected table constraint - Удалить выбранное ограничение на таблицу - - - - Refresh table index list - Обновить список индексов таблицы - - - - Add new index - Добавить новый индекс - - - - Edit selected index - Редактировать выбранный индекс - - - - Delete selected index - Удалить выбранный индекс - - - - Refresh table trigger list - Обновить список триггеров таблицы - - - - - Add new trigger - Добавить новый триггер - - - - - Edit selected trigger - Редактировать выбранный триггер - - - - - Delete selected trigger - Удалить выбранный триггер - - - - - Go to next tab - Перейти к следующей вкладке - - - - - Go to previous tab - Перейти к предыдущей вкладке - - - - A view window - Окно представления - - - - Refresh view trigger list - Обновить список индексов представления - - - - QuitConfirmDialog - - Uncommited changes - Неподтверждённые изменения - - - - Uncommitted changes - Неподтверждённые изменения - - - - Are you sure you want to quit the application? - -Following items are pending: - Вы действительно хотите выйти из приложения? - -Следующие элементы ожидают подтверждения: - - - - SearchTextDialog - - - Find or replace - Найти и заменить - - - - Find: - Найти: - - - - Case sensitive - Учитывать регистр - - - - Search backwards - Поиск в обратном направлении - - - - Regular expression matching - Использовать регулярное выражение - - - - Replace && -find next - Заменить и найти далее - - - - Replace with: - Заменить на: - - - - Replace all - Заменить всё - - - - Find - Найти - - - - SortDialog - - - Sort by columns - Сортировка по столбцам - - - - - Column - Столбец - - - - - Order - Порядок - - - - Sort by: %1 - Сортировка по: %1 - - - - Move column up - Переместить столбец вверх - - - - Move column down - Переместить столбец вниз - - - - SqlEditor - - - Cut - sql editor - Вырезать - - - - Copy - sql editor - Копировать - - - - Paste - sql editor - Вставить - - - - Delete - sql editor - Удалить - - - - Select all - sql editor - Выделить всё - - - - Undo - sql editor - Отменить - - - - Redo - sql editor - Повторить - - - - Complete - sql editor - Завершить - - - - Format SQL - sql editor - Форматировать SQL - - - - Save SQL to file - sql editor - Сохранить SQL в файл - - - - Select file to save SQL - sql editor - Выбрать файл для сохранения SQL - - - - Load SQL from file - sql editor - Загрузить SQL из файла - - - - Delete line - sql editor - Удалить строчку - - - - Move block down - sql editor - Переместить блок вниз - - - - Move block up - sql editor - Переместить блок вверх - - - - Copy block down - sql editor - Копировать блок вниз - - - - Copy up down - sql editor - Копировать блок вверх - - - - Find - sql editor - Найти - - - - Find next - sql editor - Найти далее - - - - Find previous - sql editor - Найти предыдущее - - - - Replace - sql editor - Заменить - - - - Toggle comment - sql editor - Комментировать/раскомментировать - - - - Saved SQL contents to file: %1 - SQL-код сохранён в файле %1 - - - - Syntax completion can be used only when a valid database is set for the SQL editor. - Дополнение синтаксиса может быть использовано только после назначения корректной базы данных редактору SQL. - - - - Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. - Размер содержимого редактора SQL слишком велико, поэтому обнаружение ошибок и подсветка существующих объектов временно отключена. - - - - Save to file - Сохранить в файл - - - - Could not open file '%1' for writing: %2 - Невозможно открыть файл '%1' для записи: %2 - - - - SQL scripts (*.sql);;All files (*) - Скрипты SQL (*.sql);;Все файлы (*) - - - - Open file - Открыть файл - - - - Could not open file '%1' for reading: %2 - Невозможно открыть файл '%1' для чтения: %2 - - - - Reached the end of document. Hit the find again to restart the search. - Достигнут конец документа. Нажмите Найти снова для перезапуска поиска. - - - - SqlQueryItem - - - Column: - data view tooltip - Столбец: - - - - Data type: - data view - Тип данных: - - - - Table: - data view tooltip - Таблица: - - - - Constraints: - data view tooltip - Ограничения: - - - This cell is not editable, because: %1 - Эта ячейка нередактируема, причина: %1 - - - - Cannot load the data for a cell that refers to the already closed database. - Невозможно загрузить данные ячейки, которая ссылается на уже закрытую базу данных. - - - - SqlQueryItemDelegate - - Cannot edit this cell. Details: %2 - Невозможно редактировать данную ячейку. Подробности: %2 - - - - The row is marked for deletion. - Строка помечена для удаления. - - - - - - - - Cannot edit this cell. Details: %1 - Невозможно редактировать данную ячейку. Подробности: %1 - - - - - Structure of this table has changed since last data was loaded. Reload the data to proceed. - Структура этой таблицы изменилась с момента последней загрузки данных. Перезагрузите данные для продолжения. - - - - Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). - Редактирование значений большой длины непосредственно в табличном режиме не рекомендуется. Возможны проблемы с производительностью и удобством работы. Для работы с такими большими значениями рекомендуется использовать режим формы либо отдельное окно редактирования значения (доступно в контекстном меню по щелчку правой кнопкой мыши). - - - - Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. - Внешний ключ для столбца %2 имеет более чем %1 возможных значений. Это слишком много для отображения в выпадающем списке. Вам необходимо ввести значение вручную. - - - - SqlQueryModel - - - - Only one query can be executed simultaneously. - Одновременно может быть выполнен только один запрос. - - - Uncommited data - Неподтверждённые данные - - - There are uncommited data changes. Do you want to proceed anyway? All uncommited changes will be lost. - Имеются неподтверждённые изменения данных. Вы действительно хотите продолжить? Все неподтверждённые изменения будут утеряны. - - - - Cannot commit the data for a cell that refers to the already closed database. - Невозможно подтвердить данные для ячейки, которая ссылается на уже закрытую базу данных. - - - - Could not begin transaction on the database. Details: %1 - Невозможно начать транзакцию в базе данных. Подробности: %1 - - - An error occurred while commiting the transaction: %1 - При завершении транзакции возникла ошибка: %1 - - - - An error occurred while rolling back the transaction: %1 - При отмене транзакции возникла ошибка: %1 - - - - Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. - Попытка подтверждения данных для нередактируемой ячейки (которая тем не менее была изменена и ожидает подтверждения). Это программная ошибка. Пожалуйста, отправьте о ней отчёт. - - - An error occurred while commiting the data: %1 - При подтверждении данных произошла ошибка: %1 - - - - Uncommitted data - Неподтверждённые данные - - - - There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. - Имеются неподтверждённые изменения данных. Вы действительно хотите продолжить? Все неподтверждённые изменения будут утеряны. - - - - An error occurred while committing the transaction: %1 - При завершении транзакции возникла ошибка: %1 - - - - An error occurred while committing the data: %1 - При подтверждении данных произошла ошибка: %1 - - - - Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. - Количество строк на странице было уменьшено до %1 из-за большого количества столбцов (%2) в окне данных. - - - - - Error while executing SQL query on database '%1': %2 - Ошибка при выполнении SQL запроса к базе данных '%1': %2 - - - - Error while loading query results: %1 - Ошибка при загрузке результатов запроса: %1 - - - - Insert multiple rows - Вставить несколько строк - - - - Number of rows to insert: - Количество вставляемых строк: - - - - SqlQueryView - - - Go to referenced row in... - Перейти к связанной строке в... - - - - Copy - Копировать - - - - Copy as... - Копировать как... - - - - Paste - Вставить - - - - Paste as... - Вставить как... - - - - Set NULL values - Установить значения на NULL - - - - Erase values - Стереть содержимое - - - - Edit value in editor - Править содержимое в редакторе - - - - Commit - Подтвердить - - - - Copy with headers - Копировать с именами столбцов - - - - Rollback - Откатить - - - - Commit selected cells - Подтвердить выбранные ячейки - - - - Rollback selected cells - Откатить выбранные ячейки - - - - Define columns to sort by - Определить столбцы для сортировки - - - - Remove custom sorting - Сбросить указанную сортировку - - - - Insert row - Вставить строку - - - - Insert multiple rows - Вставить несколько строк - - - - Delete selected row - Удалить выбранную строку - - - - Show value in a viewer - Показать значение в просмотрщике - - - - Generate query for selected cells - Сгенерировать запрос для выбранных ячеек - - - - No items selected to paste clipboard contents to. - Не выбраны элементы для вставки в них содержимого буфера обмена. - - - - Go to referenced row in table '%1' - Перейти к связанной строке в таблице '%1' - - - - table '%1' - таблица '%1' - - - - Referenced row (%1) - Связанная строка (%1) - - - - Trim pasted text? - Обрезать вставленный текст? - - - - The pasted text contains leading or trailing white space. Trim it automatically? - В начале либо конце вставленного текста находятся непечатаемые символы. Обрезать их автоматически? - - - - Edit value - Править содержимое - - - - SqlTableModel - - Error while commiting new row: %1 - Ошибка при подтверждении новой строки: %1 - - - - Error while committing new row: %1 - Ошибка при подтверждении новой строки: %1 - - - - Error while deleting row from table %1: %2 - Ошибка при удалении строки из таблицы %1: %2 - - - - SqliteExtensionEditor - - - Filter extensions - Фильтр расширений - - - - Leave empty to use default function - Оставьте пустым для использования функции по умолчанию - - - - Extension file - Файл расширения - - - - Initialization function - Инициализирующая функция - - - - Databases - Базы данных - - - - Register in all databases - Зарегистрировать во всех базах данных - - - - Register in following databases: - Зарегистрировать в следующих базах данных: - - - - Extension manager window has uncommitted modifications. - В менеджере расширений имеются неподтверждённые изменения. - - - - Extension manager - Менеджер расширений - - - - Commit all extension changes - Подтвердить все изменения расширений - - - - Rollback all extension changes - Откатить все изменения расширений - - - - Add new extension - Добавить новое расширение - - - - Remove selected extension - Удалить выбранное расширение - - - - Editing extensions manual - Руководство по редактированию расширений - - - - File with given path does not exist or is not readable. - Файл по указанному пути не существует или не читается. - - - - Unable to load extension: %1 - Невозможно загрузить расширение: %1 - - - - Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. - Некорректное имя инициализирующей функции. Имя функции может состоять только из английских букв, цифр и подчёркивания. - - - - Dynamic link libraries (*.dll);;All files (*) - Динамически подключаемые библиотеки (*.dll);;Все файлы (*) - - - - Shared objects (*.so);;All files (*) - Общие объекты (*.so);;Все файлы (*) - - - - Dynamic libraries (*.dylib);;All files (*) - Динамические библиотеки (*.dylib);;Все файлы (*) - - - - All files (*) - Все файлы (*) - - - - Open file - Открыть файл - - - - StatusField - - - Status - Статус - - - - Copy - Копировать - - - - Clear - Очистить - - - - TableConstraintsModel - - - Type - table constraints - Тип - - - - Details - table constraints - Подробности - - - - Name - table constraints - Имя - - - - TableForeignKeyPanel - - - Foreign table: - Внешняя таблица: - - - - SQLite 2 does not support foreign keys officially, -but it's okay to use them anyway. - SQLite 2 официально не поддерживает внешние ключи, -но тем не менее их можно использовать. - - - - Columns - Столбцы - - - - Local column - Локальный столбец - - - - Foreign column - Внешний столбец - - - - Reactions - Действия - - - - Deferred foreign key - Отложенный внешний ключ - - - - Named constraint - Именованное ограничение - - - - Constraint name - Имя ограничения - - - - Pick the foreign column. - Выберите внешний столбец. - - - - Pick the foreign table. - Выберите внешнюю таблицу. - - - - Select at least one foreign column. - Выберите хотя бы один внешний столбец. - - - - Enter a name of the constraint. - Введите имя ограничения. - - - - Foreign column - table constraints - Внешний столбец - - - - TablePrimaryKeyAndUniquePanel - - - Columns - Столбцы - - - - Column - Столбец - - - - Collation - Сравнение - - - - Sort - Сортировка - - - - Valid only for a single column with INTEGER data type - Применимо только к одному столбцу типа INTEGER - - - - Autoincrement - Автоинкремент - - - - Named constraint - Именованное ограничение - - - - Constraint name - Имя ограничения - - - - On conflict - При конфликте - - - - Collate - table constraints - Сравнение - - - - Sort order - table constraints - Порядок сортировки - - - - Select at least one column. - Выберите хотя бы один столбец. - - - - Enter a name of the constraint. - Введите имя ограничения. - - - - TableStructureModel - - - Name - table structure columns - Имя - - - - Data type - table structure columns - Тип данных - - - - Primary -Key - table structure columns - Первичный -ключ - - - - Foreign -Key - table structure columns - Внешний -ключ - - - - Unique - table structure columns - Уникальность - - - - Check - table structure columns - Проверка - - - - Not -NULL - table structure columns - Не -NULL - - - - Collate - table structure columns - Сравнение - - - - Default value - table structure columns - Значение по умолчанию - - - - TableWindow - - - Structure - Структура - - - - Table name: - Имя таблицы: - - - - - Data - Данные - - - - Constraints - Ограничения - - - - Indexes - Индексы - - - - Triggers - Триггеры - - - - DDL - DDL - - - - Export table - table window - Экспортировать таблицу - - - - Import data to table - table window - Импортировать данные в таблицу - - - - Populate table - table window - Заполнить таблицу - - - - Refresh structure - table window - Обновить структуру - - - - Commit structure changes - table window - Подтвердить изменения структуры - - - - Rollback structure changes - table window - Откатить изменения структуры - - - - Add column - table window - Добавить столбец - - - - Edit column - table window - Редактировать столбец - - - - - Delete column - table window - Удалить столбец - - - - Move column up - table window - Переместить столбец вверх - - - - Move column down - table window - Переместить столбец вниз - - - - Create similar table - table window - Создать подобную таблицу - - - - Reset autoincrement value - table window - Сбросить счётчик автоинкремента - - - - Add table constraint - table window - Добавить ограничение на таблицу - - - - Edit table constraint - table window - Редактировать ограничение на таблицу - - - - Delete table constraint - table window - Удалить ограничение на таблицу - - - - Move table constraint up - table window - Переместить ограничение на таблицу вверх - - - - Move table constraint down - table window - Переместить ограничение на таблицу вниз - - - - Add table primary key - table window - Добавить первичный ключ таблицы - - - - Add table foreign key - table window - Добавить внешний ключ таблицы - - - - Add table unique constraint - table window - Добавить табличное ограничение на уникальность - - - - Add table check constraint - table window - Добавить проверочное ограничение на таблицу - - - - Refresh index list - table window - Обновить список индексов - - - - Create index - table window - Создать индекс - - - - Edit index - table window - Редактировать индекс - - - - Delete index - table window - Удалить индекс - - - - Refresh trigger list - table window - Обновить список триггеров - - - - Create trigger - table window - Создать триггер - - - - Edit trigger - table window - Редактировать триггер - - - - Delete trigger - table window - Удалить триггер - - - - Are you sure you want to delete column '%1'? - table window - Вы действительно хотите удалить столбец '%1'? - - - - Following problems will take place while modifying the table. -Would you like to proceed? - table window - При изменении таблицы возникнут нижеуказанные проблемы. -Вы хотите продолжить? - - - - Table modification - table window - Изменение таблицы - - - - Could not load data for table %1. Error details: %2 - Невозможно загрузить данные таблицы %1. Подробности ошибки: %2 - - - - Could not process the %1 table correctly. Unable to open a table window. - Не удалось корректно обработать таблицу %1. Невозможно открыть окно таблицы. - - - - Could not restore window %1, because no database or table was stored in session for this window. - Невозможно восстановить окно %1, так как в сессии для этого окна не была сохранена база данных или таблица. - - - - Could not restore window '%1', because no database or table was stored in session for this window. - Невозможно восстановить окно '%1', так как в сессии для этого окна не была сохранена база данных или таблица. - - - - Could not restore window '%1', because database %2 could not be resolved. - Невозможно восстановить окно '%1', так как невозможно определить базу данных %2 - - - - Could not restore window '%1'', because the table %2 doesn't exist in the database %3. - Невозможно восстановить окно '%1', так как таблица %2 не существует в базе данных %3. - - - - Committed changes for table '%1' successfully. - Изменения в таблицу '%1' внесены успешно. - - - - Committed changes for table '%1' (named before '%2') successfully. - Изменения в таблицу '%1' (предыдущее название '%2') внесены успешно. - - - - Autoincrement value for table '%1' has been reset successfully. - Сброс счётчика автоинкремента у таблицы '%1' успешно выполнен. - - - - Uncommitted changes - Неподтверждённые изменения - - - - There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. -Do you want to commit the structure, or do you want to go back to the structure tab? - Имеются неподтверждённые изменения структуры. Невозможно просматривать или редактировать данные, пока структура таблицы не подтверждена. -Подтвердить структуру таблицы или вернуться на вкладку структуры? - - - - Table window "%1" has uncommitted structure modifications and data. - В окне таблицы "%1" имеются неподтверждённые изменения структуры и данных. - - - - Table window "%1" has uncommitted data. - В окне таблицы "%1" имеются неподтверждённые изменения данных. - - - - Table window "%1" has uncommitted structure modifications. - В окне таблицы "%1" имеются неподтверждённые изменения структуры. - - - Could not restore window, because database %1 could not be resolved. - Невозможно восстановить окно, так как невозможно определить базу данных %1 - - - Could not restore window, because the table %1 doesn't exist in the database %2. - Невозможно восстановить окно, так как таблица %1 не существует в базе данных %2. - - - - - New table %1 - Новая таблица %1 - - - Commited changes for table '%1' successfly. - Изменения в таблицу '%1' внесены успешно. - - - Commited changes for table '%1' (named before '%2') successfly. - Изменения в таблицу '%1' (предыдущее название '%2') внесены успешно. - - - - Could not commit table structure. Error message: %1 - table window - Невозможно подтвердить структуру таблицы. Сообщение об ошибке: %1 - - - - Reset autoincrement - Сброс счётчика автоинкремента - - - - Are you sure you want to reset autoincrement value for table '%1'? - Вы действительно хотите сбросить счётчик автоинкремента у таблицы '%1'? - - - - An error occurred while trying to reset autoincrement value for table '%1': %2 - При попытке сброса счётчика автоинкремента у таблицы '%1' произошла ошибка: %2 - - - Autoincrement value for table '%1' has been reset successfly. - Сброс счётчика автоинкремента у таблицы '%1' успешно выполнен. - - - - Empty name - Пустое имя - - - - A blank name for the table is allowed in SQLite, but it is not recommended. -Are you sure you want to create a table with blank name? - SQLite позволяет таблице иметь пустое имя, хотя это не рекомендуется. -Вы действительно хотите создать таблицу с пустым именем? - - - - Cannot create a table without at least one column. - Невозможно создать таблицу без хотя бы одного столбца. - - - - Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. - Невозможно создать таблицу %1, если не определён первичный ключ. Отключите %2, либо определите первичный ключ. - - - - Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. - Невозможно использовать автоинкремент первичного ключа при использовании оператора %1. Отключите либо %2, либо автоинкремент первичного ключа. - - - - Are you sure you want to delete table constraint '%1'? - table window - Вы действительно хотите удалить ограничение на таблицу '%1'? - - - - Delete constraint - table window - Удалить ограничение - - - - Cannot export, because no export plugin is loaded. - Невозможно произвести экспорт, т.к. не загружено ни одного модуля экспорта. - - - - Cannot import, because no import plugin is loaded. - Невозможно произвести импорт, т.к. не загружено ни одного модуля импорта. - - - Uncommited changes - Неподтверждённые изменения - - - There are uncommited structure modifications. You cannot browse or edit data until you have table structure settled. -Do you want to commit the structure, or do you want to go back to the structure tab? - Имеются неподтверждённые изменения структуры. Невозможно просматривать или редактировать данные, пока структура таблицы не подтверждена. -Подтвердить структуру таблицы или вернуться на вкладку структуры? - - - - Go back to structure tab - Вернуться на вкладку структуры - - - - Commit modifications and browse data. - Подтвердить изменения и перейти к данным. - - - - Name - table window indexes - Имя - - - - Unique - table window indexes - Уникальность - - - - Columns - table window indexes - Столбцы - - - - Partial index condition - table window indexes - Условие для частичного индекса - - - - Name - table window triggers - Имя - - - - Event - table window triggers - Событие - - - - Condition - table window triggers - Условие - - - - Details - table window triggers - Подробности - - - Table window "%1" has uncommited structure modifications and data. - В окне таблицы "%1" имеются неподтверждённые изменения структуры и данных. - - - Table window "%1" has uncommited data. - В окне таблицы "%1" имеются неподтверждённые изменения данных. - - - Table window "%1" has uncommited structure modifications. - В окне таблицы "%1" имеются неподтверждённые изменения структуры. - - - - TriggerColumnsDialog - - - Trigger columns - Столбцы триггера - - - - Triggering columns: - Столбцы, вызывающие триггер: - - - - Select all - Выделить всё - - - - Deselect all - Снять выделение - - - - TriggerDialog - - - - Trigger - Триггер - - - - On table: - Для таблицы: - - - - Action: - Действие: - - - - - <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> - <p>SQL-условие для проверки перед запуском кода триггера. Если условие не выполнено, для текущей строки триггер вызван не будет.</p> - - - - Pre-condition: - Предварительное условие: - - - - The scope is still not fully supported by the SQLite database. - База данных SQLite пока не полностью поддерживает область действия. - - - - Trigger name: - Имя триггера: - - - - When: - Когда: - - - - List of columns for UPDATE OF action. - Список столбцов для действия UPDATE OF. - - - - Scope: - Область действия: - - - - Code: - Код: - - - - Trigger statements to be executed. - Выполняемые конструкции триггера. - - - - DDL - DDL - - - - On view: - Для представления: - - - - Could not process trigger %1 correctly. Unable to open a trigger dialog. - Не удалось корректно обработать триггер %1. Невозможно открыть окно триггера. - - - - Enter a valid condition. - Введите корректное условие. - - - - Enter a valid trigger code. - Введите корректный код триггера. - - - - Error - trigger dialog - Ошибка - - - - An error occurred while executing SQL statements: -%1 - При выполнении конструкций SQL произошла ошибка: -%1 - - - - VersionConvertSummaryDialog - - - Database version convert - Конвертация версии базы данных - - - - Following changes to the SQL statements will be made: - В конструкции SQL будут внесены следующие изменения: - - - - Before - До - - - - After - После - - - - ViewWindow - - - Query - Запрос - - - - View name: - Имя представления: - - - - Output column names - Отображаемые имена столбцов - - - - - Data - Данные - - - - Triggers - Триггеры - - - - DDL - DDL - - - Could not restore window, because database %1 could not be resolved. - Невозможно восстановить окно, так как невозможно определить базу данных %1. - - - Could not restore window, because database %1 could not be open. - Невозможно восстановить окно, так как невозможно открыть базу данных %1. - - - Could not restore window, because the view %1 doesn't exist in the database %2. - Невозможно восстановить окно, так как представление %1 не существует в базе данных %2. - - - - - Could not restore window '%1', because no database or view was stored in session for this window. - Невозможно восстановить окно '%1', так как в сессии для этого окна не была сохранена база данных или представление. - - - - Could not restore window '%1', because database %2 could not be resolved. - Невозможно восстановить окно '%1', так как невозможно определить базу данных %2. - - - - Could not restore window '%1', because database %2 could not be open. - Невозможно восстановить окно '%1', так как невозможно открыть базу данных %2. - - - - Could not restore window '%1', because the view %2 doesn't exist in the database %3. - Невозможно восстановить окно '%1', так как представление %2 не существует в базе данных %3. - - - - - New view %1 - Новое представление %1 - - - - Refresh the view - view window - Обновить представление - - - - Commit the view changes - view window - Подтвердить изменения представления - - - - Rollback the view changes - view window - Откатить изменения представления - - - - Explicit column names - Явные имена столбцов - - - - Generate output column names automatically basing on result columns of the view. - Сгенерировать отображаемые имена столбцов на основе результирующих столбцов представления. - - - - Add column - view window - Добавить столбец - - - - Edit column - view window - Редактировать столбец - - - - Delete column - view window - Удалить столбец - - - - Move column up - view window - Переместить столбец вверх - - - - Move column down - view window - Переместить столбец вниз - - - - Refresh trigger list - view window - Обновить список триггеров - - - - Create new trigger - view window - Создать новый триггер - - - - Edit selected trigger - view window - Редактировать выбранный триггер - - - - Delete selected trigger - view window - Удалить выбранный триггер - - - - View window "%1" has uncommitted structure modifications and data. - В окне представления "%1" имеются неподтверждённые изменения структуры и данных. - - - - View window "%1" has uncommitted data. - В окне представления "%1" имеются неподтверждённые изменения данных. - - - - View window "%1" has uncommitted structure modifications. - В окне представления "%1" имеются неподтверждённые изменения структуры. - - - - Uncommitted changes - Неподтверждённые изменения - - - - There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. -Do you want to commit the structure, or do you want to go back to the structure tab? - Имеются неподтверждённые изменения структуры. Невозможно просматривать или редактировать данные, пока структура представления не подтверждена. -Подтвердить структуру представления или вернуться на вкладку структуры? - - - - Committed changes for view '%1' successfully. - Изменения в представление '%1' внесены успешно. - - - - Committed changes for view '%1' (named before '%2') successfully. - Изменения в таблицу '%1' (предыдущее название '%2') внесены успешно. - - - View window "%1" has uncommited structure modifications and data. - В окне представления "%1" имеются неподтверждённые изменения структуры и данных. - - - View window "%1" has uncommited data. - В окне представления "%1" имеются неподтверждённые изменения данных. - - - View window "%1" has uncommited structure modifications. - В окне представления "%1" имеются неподтверждённые изменения структуры. - - - - Could not load data for view %1. Error details: %2 - Невозможно загрузить данные представления %1. Подробности ошибки: %2 - - - Uncommited changes - Неподтверждённые изменения - - - There are uncommited structure modifications. You cannot browse or edit data until you have the view structure settled. -Do you want to commit the structure, or do you want to go back to the structure tab? - Имеются неподтверждённые изменения структуры. Невозможно просматривать или редактировать данные, пока структура представления не подтверждена. -Подтвердить структуру представления или вернуться на вкладку структуры? - - - - Go back to structure tab - Вернуться на вкладку структуры - - - - Commit modifications and browse data. - Подтвердить изменения и перейти к данным. - - - Commited changes for view '%1' successfly. - Изменения в представление '%1' внесены успешно. - - - Commited changes for view '%1' (named before '%2') successfly. - Изменения в представление '%1' (предыдущее название '%2') внесены успешно. - - - - Could not commit view changes. Error message: %1 - view window - Невозможно подтвердить изменения представления. Сообщение об ошибке: %1 - - - - Override columns - Перезапись столбцов - - - - Currently defined columns will be overriden. Do you want to continue? - Заданные столбцы будут перезаписаны. Вы хотите продолжить? - - - - Could not determinate columns returned from the view. The query is problably incomplete or contains errors. - Невозможно определить столбцы, возвращаемые представлением. Вероятно запрос неполон или содержит ошибки. - - - - Name - view window triggers - Имя - - - - Instead of - view window triggers - Вместо - - - - Condition - view window triggers - Условие - - - - Details - table window triggers - Подробности - - - - Could not process the %1 view correctly. Unable to open a view window. - Не удалось корректно обработать представление %1. Невозможно открыть окно представления. - - - - Empty name - Пустое имя - - - - A blank name for the view is allowed in SQLite, but it is not recommended. -Are you sure you want to create a view with blank name? - SQLite позволяет представлению иметь пустое имя, хотя это не рекомендуется. -Вы действительно хотите создать представление с пустым именем? - - - - The SELECT statement could not be parsed. Please correct the query and retry. -Details: %1 - Невозможно проанализировать структуру конструкции SELECT. Пожалуйста, исправьте запрос и повторите попытку. -Подробности: %1 - - - - The view could not be modified due to internal SQLiteStudio error. Please report this! - Невозможно изменить представление из-за внутренней ошибки SQLiteStudio. Пожалуйста, сообщите о ней! - - - - The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. - Невозможно корректно проанализировать структуру представления для выполнения. Это ошибка SQLiteStudio. Пожалуйста, сообщите о ней. - - - - Following problems will take place while modifying the view. -Would you like to proceed? - view window - При изменении представления возникнут нижеуказанные проблемы. -Вы хотите продолжить? - - - - View modification - view window - Изменение представления - - - - WidgetCover - - - Interrupt - Прервать - - - diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_ru_RU.ts b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_ru_RU.ts new file mode 100644 index 0000000..1917ba5 --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_ru_RU.ts @@ -0,0 +1,7108 @@ + + + + + AboutDialog + + + About SQLiteStudio and licenses + О программе SQLiteStudio и лицензиях + + + + About + О программе + + + + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio вер.%1</span></p><p align="center">Бесплатный кроссплатформенный менеджер баз данных SQLite с открытым исходным кодом.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Автор и активный разработчик:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + + + + Licenses + Лицензии + + + + Environment + Системная среда + + + + Icon directories + Каталоги иконок + + + + Form directories + Каталоги форм + + + + SQLite extension directories + Каталоги расширений SQLite + + + + Plugin directories + Каталоги модулей + + + + Configuration directory + Каталог конфигурации + + + + Application directory + Каталог программы + + + + Qt version: + Версия Qt: + + + + SQLite 3 version: + Версия SQLite 3: + + + + Portable distribution. + Портабельная версия. + + + + MacOS X application bundle distribution. + MacOS X application bundle distribution. + + + + Operating system managed distribution. + Версия, управляемая операционной системой. + + + + <h3>Table of contents:</h3><ol>%2</ol> + <h3>Содержание:</h3><ol>%2</ol> + + + + BindParamsDialog + + + Query parameters + Параметры запроса + + + + Please provide values for query parameters + Пожалуйста укажите значения для параметров запроса + + + + CodeSnippetEditor + + + Filter snippets + Фильтр сниппетов + + + + + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + <html><head/><body><p>Опциональное сочетание клавиш, которое будет работать только в контексте активного окна автодополнения. Позволяет пользователю использовать комбинации клавиш, которые иначе конфликтовали бы с общими горячими клавишами. Наличие окна автодополнения в качестве требуемого контекста делает выбор сочетания клавиш более универсальным.</p></body></html> + + + + + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + <html><head/><body><p>Название сниппета будет отображено в окне автодополнения. Для доступа к списку сниппетов пользователь должен нажать сочетание клавиш для вызова автодополнения дважды.</p></body></html> + + + + Snippet name + Название сниппета + + + + Code assistant shortcut + Сочетание клавиш в окне автодополнения + + + + Snippet code + Код сниппета + + + + Code Snippets editor window has uncommitted modifications. + В окне редактора сниппетов имеются неподтверждённые изменения. + + + + Code Snippets editor + Редактор сниппетов + + + + Commit all snippet changes + Commit all snippet changes + + + + Rollback all snippet changes + Rollback all snippet changes + + + + Create new snippet + Create new snippet + + + + Delete selected snippet + Delete selected snippet + + + + Move the snippet up + Переместить сниппет вверх + + + + Move the snippet down + Переместить сниппет вниз + + + + Code snippets manual + Руководство по использованию сниппетов + + + + Enter a non-empty, unique name of the snippet. + Введите непустое уникальное название сниппета. + + + + Enter a non-empty snippet content. + Введите непустое содержимое сниппета. + + + + This hotkey is not unique in context of a code assistant. + Это сочетание клавиш уже используется в контексте автодополнения. + + + + CollationsEditor + + + Filter collations + Отфильтровать сравнения + + + + Databases + Базы данных + + + + Register in all databases + Зарегистрировать во всех базах данных + + + + Register in following databases: + Зарегистрировать в следующих базах данных: + + + + Implementation code: + Код реализации: + + + + Collation name: + Имя сравнения: + + + + Implementation language: + Язык реализации: + + + + Collations editor + Редактор сравнений + + + + Commit all collation changes + Подтвердить все изменения сравнений + + + + Rollback all collation changes + Откатить все изменения сравнений + + + + Create new collation + Создать новое сравнение + + + + Delete selected collation + Удалить выбранное сравнение + + + + Editing collations manual + Руководство по редактированию сравнений + + + + Enter a non-empty, unique name of the collation. + Введите непустое уникальное имя сравнения. + + + + Pick the implementation language. + Выберите язык реализации. + + + + Enter a non-empty implementation code. + Введите непустой код реализации. + + + + Collations editor window has uncommitted modifications. + В редакторе сравнений имеются неподтверждённые изменения. + + + + ColorButton + + + Pick a color + Выберите цвет + + + + ColumnCollatePanel + + + Collation name: + Имя сравнения: + + + + Named constraint: + Именованное ограничение: + + + + Enter a name of the constraint. + Введите имя ограничения. + + + + Enter a collation name. + Введите имя сравнения. + + + + ColumnDefaultPanel + + + Default value: + Значение по умолчанию: + + + + Named constraint: + Именованное ограничение: + + + + Enter a default value expression. + Введите выражение для значения по умолчанию. + + + + Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. + Некорректное выражение для значения по умолчанию: %1. Если необходимо использовать простую строку как значение, не забудьте поместить её в кавычки. + + + + Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. + Некорректное выражение для значения по умолчанию. Если необходимо использовать простую строку как значение, не забудьте поместить её в кавычки. + + + + Enter a name of the constraint. + Введите имя ограничения. + + + + ColumnDialog + + + Column + Столбец + + + + Name and type + Имя и тип + + + + Scale + Размер + + + + Precision + Точность + + + + Data type: + Тип данных: + + + + Column name: + Имя столбца: + + + + Size: + Размер: + + + + Constraints + Ограничения + + + + Generated value + Сгенерированное значение + + + + Unique + Уникальность + + + + + + + + + + + Configure + Настроить + + + + Foreign Key + Внешний ключ + + + + Collate + Сравнение + + + + Not NULL + Не NULL + + + + Check condition + Проверка условия + + + + Primary Key + Первичный ключ + + + + Default + По умолчанию + + + + Advanced mode + Расширенный режим + + + + Add constraint + column dialog + Добавить ограничение + + + + Edit constraint + column dialog + Редактировать ограничение + + + + + Delete constraint + column dialog + Удалить ограничение + + + + Move constraint up + column dialog + Переместить ограничение вверх + + + + Move constraint down + column dialog + Переместить ограничение вниз + + + + Add a primary key + column dialog + Добавить первичный ключ + + + + Add a foreign key + column dialog + Добавить внешний ключ + + + + Add an unique constraint + column dialog + Добавить ограничение на уникальность + + + + Add a check constraint + column dialog + Добавить проверочное ограничение + + + + Add a not null constraint + column dialog + Добавить ограничение на не null + + + + Add a collate constraint + column dialog + Добавить ограничение на сравнение + + + + Add a generated value constraint + column dialog + Добавить ограничение на сгенерированное значение + + + + Add a default constraint + column dialog + Добавить ограничение на значение по умолчанию + + + + Are you sure you want to delete constraint '%1'? + column dialog + Вы действительно хотите удалить ограничение '%1'? + + + + Correct the constraint's configuration. + Исправьте конфигурацию ограничения. + + + + Scale is not allowed for INTEGER PRIMARY KEY columns. + Указание размера данных недопустимо для столбцов с типом INTEGER PRIMARY KEY. + + + + Precision cannot be defined without the scale. + Точность не может быть задана без указания размера данных. + + + + Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. + Невозможно использовать тип данных, отличный от INTEGER, если в первичном ключе установлен автоинкремент. + + + + INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. + В качестве типа данных был принудительно выбран INTEGER, так как в первичном ключе установлен автоинкремент. + + + + Precision is not allowed for INTEGER PRIMARY KEY columns. + Указание точности недопустимо для столбцов с типом INTEGER PRIMARY KEY. + + + + Could not match valid STRICT table datatype from declared type: %1. + Не удалось найти допустимый для STRICT-таблиц тип данных, соответствующий указанному типу: %1. + + + + ColumnDialogConstraintsModel + + + Type + column dialog constraints + Тип + + + + Name + column dialog constraints + Имя + + + + Details + column dialog constraints + Подробности + + + + ColumnForeignKeyPanel + + + Foreign table: + Внешняя таблица: + + + + Foreign column: + Внешний столбец: + + + + Reactions + Действия + + + + Deferred foreign key + Отложенный внешний ключ + + + + Named constraint + Именованное ограничение + + + + Constraint name + Имя ограничения + + + + Pick the foreign table. + Выберите внешнюю таблицу. + + + + Pick the foreign column. + Выберите внешний столбец. + + + + Enter a name of the constraint. + Введите имя ограничения. + + + + ColumnGeneratedPanel + + + Generating code: + Генерирующий код: + + + + Explicit type: + Заданный тип: + + + + Use "GENERATED ALWAYS" keywords + Использовать ключевые слова "GENERATED ALWAYS" + + + + Named constraint: + Именованное ограничение: + + + + Enter the column value generating expression. + Введите выражение для генерации значений столбца. + + + + Invalid value generating expression: %1. + Некорректное выражение для генерации значений: %1. + + + + Invalid value generating expression. + Некорректное выражение для генерации значений. + + + + Enter a name of the constraint. + Введите имя ограничения. + + + + ColumnPrimaryKeyPanel + + + Autoincrement + Автоинкремент + + + + Sort order: + Порядок сортировки: + + + + Named constraint: + Именованное ограничение: + + + + On conflict: + При конфликте: + + + + Enter a name of the constraint. + Введите имя ограничения. + + + + Descending order is not allowed with AUTOINCREMENT. + Сортировка по убыванию недопустима при использовании AUTOINCREMENT. + + + + ColumnUniqueAndNotNullPanel + + + Named constraint: + Именованное ограничение: + + + + On conflict: + При конфликте: + + + + Enter a name of the constraint. + Введите имя ограничения. + + + + CompleterWindow + + + Column: %1 + completer statusbar + Столбец: %1 + + + + Table: %1 + completer statusbar + Таблица: %1 + + + + Index: %1 + completer statusbar + Индекс: %1 + + + + Trigger: %1 + completer statusbar + Триггер: %1 + + + + View: %1 + completer statusbar + Представление: %1 + + + + Database: %1 + completer statusbar + База данных: %1 + + + + Keyword: %1 + completer statusbar + Ключевое слово: %1 + + + + Function: %1 + completer statusbar + Функция: %1 + + + + Operator: %1 + completer statusbar + Оператор: %1 + + + + String + completer statusbar + Строка + + + + Number + completer statusbar + Число + + + + Binary data + completer statusbar + Двоичные данные + + + + Collation: %1 + completer statusbar + Сравнение: %1 + + + + Pragma function: %1 + completer statusbar + Функция pragma: %1 + + + + Insert a code snippet + Вставить сниппет + + + + ConfigDialog + + + + Configuration + Конфигурация + + + + Search + Поиск + + + + General + Общие + + + + Keyboard shortcuts + Горячие клавиши + + + + Look & feel + Внешний вид + + + + Style + Стиль + + + + Fonts + Шрифты + + + + Code colors + Цвета кода + + + + + Database list + Список баз данных + + + + Code assistant + Автодополнение + + + + Data browsing + Просмотр данных + + + + Data editors + Редакторы данных + + + + Plugins + Модули + + + + Code formatters + Средства форматирования кода + + + + If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. + Если опция деактивирована, столбцы будут отсортированы в том порядке, в котором они были указаны в конструкции CREATE TABLE. + + + + Sort table columns alphabetically + Сортировать столбцы таблицы в алфавитном порядке + + + + Expand tables node when connected to a database + Развернуть список таблиц после подключения к базе данных + + + + <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> + <p>Дополнительные метки находятся справа от имён в списке баз данных (они отображаются синим цветом, если не выбран иной). При активации этой опции будут отображены метки у баз данных, некорректных баз данных и у групповых узлов (группа столбцов, группа индексов, группа триггеров). Для отображения дополнительных меток воспользуйтесь опциями ниже.<p> + + + + Display additional labels on the list + Отображать дополнительные метки в списке + + + + For regular tables labels will show number of columns, indexes and triggers for each of tables. + Для обычных таблиц метки будут показывать количество столбцов, индексов и триггеров у каждой таблицы. + + + + Display labels for regular tables + Отображать метки у обычных таблиц + + + + Virtual tables will be marked with a 'virtual' label. + Виртуальные таблицы будут помечены как 'виртуальные'. + + + + Display labels for virtual tables + Отображать метки у виртуальных таблиц + + + + Expand views node when connected to a database + Развернуть список представлений после подключения к базе данных + + + + If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) + Если опция деактивирована, объекты будут отсортированы в том порядке, в котором они указаны в таблице sqlite_master (т. е. в порядке создания) + + + + Sort objects (tables, indexes, triggers and views) alphabetically + Сортировать объекты (таблицы, индексы, триггеры и представления) в алфавитном порядке + + + + Display system tables and indexes on the list + Отображать в списке системные таблицы и индексы + + + + Database dialog window + Диалоговое окно добавления базы данных + + + + <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> + <p>По умолчанию при добавлении базы данных она отмечается как "постоянная" (т.е. сохраняется в конфигурацию). При установке данной опции все добавляемые базы данных по умолчанию НЕ будут отмечены как "постоянные".</p> + + + + Do not mark database to be "permanent" by default + Не отмечать базу данных как "постоянную" по умолчанию + + + + <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> + <p>При выборе данной опции все файлы, перетянутые в список баз данных из файлового менеджера, будут автоматически добавлены в список без отображения диалога добавления базы данных. Если по каким-либо причинам автоматическое добавление не получится, пользователю будет показан стандартный диалог добавления базы данных.</p> + + + + Try to bypass dialog completly when dropping database file onto the list + Не показывать диалог при перетягивании файла базы данных в список + + + + Data browsing and editing + Просмотр и редактирование данных + + + + + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + <p>Максимальное количество конфигураций окна Заполнения таблицы, сохраняемых в конфигурации программы. 100 конфигураций должно хватить.</p> + + + + Number of memorized table populating configurations + Количество запоминаемых конфигураций заполнения таблицы + + + + Data column width + Ширина столбца данных + + + + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + <html><head/><body><p>Когда пользователь вводит новое значение в столбец, и оно не умещается в ячейке при текущей ширине столбца, приложение расширит столбец, чтобы уместить новое значение, но не превышая лимит, указанный в опции выше.</p></body></html> + + + + Enlarge column when entering value longer than current width + Расширить столбец при вводе значения длиннее текущей ширины + + + + <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> + <p>При загрузке данных в табличный вид ширина столбцов автоматически подстраивается. Этот параметр ограничивает начальную ширину для подстройки, при этом пользователь может вручную изменить ширину столбца сверх данного лимита.</p> + + + + Number of data rows per page: + Количество строк данных на странице: + + + + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> + <p>Если данная опция активирована и пользователь наводит указатель мыши на ячейку в любом режиме просмотра данных (результаты запроса, данные таблицы, данные представления), то будет отображена всплывающая подсказка с информацией о ячейке, в том числе информация о типе данных столбца, ограничениях, значение ROWID и прочее.</p> + + + + Show column and row details tooltip in data view + Показывать всплывающую подсказку с информацией о столбце и строке при просмотре данных + + + + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + <p>Если редактируется ячейка, содержащая NULL, и вводится пустая строка в качестве значения, то эта опция определяет, останется ли в качестве значения ячейки NULL (если опция активирована), или значение будет заменено на пустую строку (если эта опция деактивирована).</p> + + + + Keep NULL value when entering empty value + Сохранять значение NULL при вводе пустой строки + + + + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> + <html><head/><body><p>Активируйте эту опцию, чтобы всегда подставлять значение DEFAULT (значение по умолчанию) при записи NULL в столбец, у которого определено значение DEFAULT, даже если столбец может содержать NULL.</p><p>Отключите эту опцию для подстановки значения DEFAULT только в случае записи NULL в столбец с ограничением NOT NULL.</p></body></html> + + + + Use DEFAULT value (if defined), when committing NULL value + Использовать значение DEFAULT (если оно определено) при записи NULL + + + + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + <html><head/><body><p>Если результаты запроса содержат десятки (или сотни) столбцов, они вполне вероятно могут исчерпать всю свободную память компьютера, одномоментно загрузив несколько гигабайт данных. В таких случаях, для защиты компьютера SQLiteStudio может попытаться ограничить количество результатов, отображаемых на одной странице. Если вы уверены, что не работаете с большими объемами в базе данных, то можете отключить это ограничение и всегда видеть заданное в настройках количество строк на странице.</p></body></html> + + + + Limit number of rows for in case of dozens of columns + Ограничить число строк в случае десятков столбцов + + + + Inserting new row in data grid + Вставка новой строки в таблице данных + + + + Before currently selected row + Перед текущей выделенной строкой + + + + After currently selected row + После текущей выделенной строки + + + + At the end of data view + В конец области просмотра данных + + + + Table windows + Окна таблиц + + + + <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> + <p>Если опция активирована, окна таблиц будут открываться на вкладке данных вместо вкладки со структурой.</p> + + + + Open Table Windows with the data tab for start + Открывать окна таблиц на вкладке данных + + + + <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> + <p>Если опция активирована, вкладка "Данные" в окнах таблиц будет первой, а не второй по порядку.</p> + + + + Place data tab as first tab in a Table Window + Помещать вкладку данных в окнах таблиц первой + + + + View windows + Окна представлений + + + + <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> + <p>Если опция активирована, окна представлений будут открываться на вкладке данных вместо вкладки со структурой.</p> + + + + Open View Windows with the data tab for start + Открывать окна представлений на вкладке данных + + + + <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> + <p>Если опция активирована, вкладка "Данные" в окнах представлений будет первой, а не второй по порядку.</p> + + + + Place data tab as first tab in a View Window + Помещать вкладку данных в окнах представлений первой + + + + Data types + Типы данных + + + + Available editors: + Доступные редакторы: + + + + Editors selected for this data type: + Выбранные редакторы для этого типа данных: + + + + Schema editing + Редактирование схемы + + + + Number of DDL changes kept in history. + Количество сохраняемых в истории изменений DDL. + + + + DDL history size: + Размер истории DDL: + + + + Don't show DDL preview dialog when committing schema changes + Не показывать диалог предпросмотра DDL при подтверждении изменений схемы + + + + SQL queries + SQL запросы + + + + + Number of queries kept in the history. + Количество сохраняемых в истории запросов. + + + + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> + <html><head/><body><p>Если в окне редактора SQL более одного запроса, то (если эта опция включена) будет выполняться только один запрос - тот, на котором стоит курсор клавиатуры. В противном случае будут выполнены все запросы. Вы всегда можете указать запросы, подлежащие выполнению, выделив эти запросы перед запуском. Вы также можете использовать специальные сочетания клавиш для выполнения запросов в том или ином режиме (сейчас настроено на %1 для выполнения одного запроса и %2 для выполнения всех запросов).</p></body></html> + + + + History size: + Размер истории: + + + + + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> + <p>Максимальное количество параметров запроса (:param, @param, $param, ?), сохраняемых в истории. Когда вы повторно используете параметр с тем же именем/расположением, SQLiteStudio предварительно инициализирует его последним запомненным значением (которое затем можно изменить). 1000 параметров должно хватить.</p> + + + + Execute only the query under the cursor + Выполнять только запрос под курсором + + + + Number of memorized query parameters + Количество запоминаемых параметров запроса + + + + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + <html><head/><body><p>По умолчанию (когда эта опция отключена) вещественное число отображается в виде десятичных цифр с разделителем дробной части. В некоторых случаях, когда число очень маленькое (несколько нулей после разделителя), такое представление может привести к неточности его отображения. В таком случае вы можете включить эту опцию для использования экспоненциальной записи чисел (например <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + + + + Use scientific notation for real numbers in the grid view + Использовать экспоненциальную запись вещественных чисел в табличном виде + + + + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + <html><head/><body><p>При загрузке данных в табличном виде ширина столбцов автоматически подстраивается. Это значение ограничивает ширину для автоподстройки, но пользователь может вручную расширить столбец сверх этого лимита. Этот лимит также используется при расширении столбца после ввода нового, более длинного значения пользователем (см. опцию ниже).</p></body></html> + + + + Limit automatic data column width to (in pixels): + Ограничить автоматическую ширину столбца данных (в пикселях): + + + + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + <html><head/><body><p>Исходная ширина столбцов будет установлена так, чтобы как минимум уместилось полное имя столбца в заголовке. При этом учитывается ограничение на автоматическую ширину столбца, указанное в пикселях (опция выше).</p></body></html> + + + + Keep at least the width to show complete column name + Как минимум уместить полное имя столбца в ширину + + + + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + <html><head/><body><p>Если опция включена, строки длиннее ширины окна редактора будут перенесены и горизонтальная прокрутка не потребуется.</p></body></html> + + + + Wrap lines in SQL editor + Переносить строки в редакторе SQL + + + + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + <html><head/><body><p>Подсвечивать весь запрос, на котором стоит курсор клавиатуры. Это запрос, который будет выполнен при нажатии кнопки или сочетания клавиш &quot;Выполнить запрос&quot; (если не настроено иначе).</p></body></html> + + + + Highlight current query + Подсвечивать текущий запрос + + + + Updates + Обновления + + + + Automatically check for updates at startup + Автоматически проверять обновления при запуске + + + + Session + Сессия + + + + Restore last session (active MDI windows) after startup + Восстановить предыдущую сессию (активные MDI окна) после запуска + + + + Allow multiple instances of the application at the same time + Разрешить одновременную работу нескольких экземпляров приложения + + + + Status Field + Окно статуса + + + + <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> + <p>Если пользователь вручную закрыл окно статуса, включение данной опции гарантирует, что при появлении новых сообщений окно статуса будет автоматически открыто. Если опция отключена, окно статуса может быть заново открыто только пользователем вручную через меню "Вид".</p> + + + + Always open Status panel when new message is printed + Всегда открывать окно статуса при появлении нового сообщения + + + + Code syntax colors + Синтаксическая расцветка кода + + + + Keyword foreground + Цвет ключевого слова + + + + Regular foreground + Стандартный цвет + + + + String foreground + Цвет строки + + + + Comment foreground + Цвет комментария + + + + Valid objects foreground + Цвет распознанных объектов + + + + Current query background + Фон текущего запроса + + + + Bind parameter foreground + Цвет подстановочных параметров + + + + Current line background + Фон текущей строки + + + + Matched parenthesis background + Фон парных скобок + + + + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + <html><head/><body><p>Вы можете полностью отключить подсветку текущего запроса на странице Общих настроек.</p></body></html> + + + + Number foreground + Цвет числа + + + + BLOB value foreground + Цвет данных типа BLOB + + + + Matched parenthesis foreground + Цвет парных скобок + + + + Reset to defaults + Сбросить к исходным + + + + Filter shortcuts by name or key combination + Фильтр горячих клавиш по имени или комбинации клавиш + + + + Action + Действие + + + + Key combination + Комбинация клавиш + + + + + Language + Язык + + + + Changing language requires application restart to take effect. + Для смены языка потребуется перезапустить приложение. + + + + Compact layout + Компактный режим + + + + <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> + <p>В компактном режиме все поля и отступы в интерфейсе минимизированы для отображения большего количества данных. Интерфейс станет чуть менее эстетичным, однако это позволит уместить больше данных на экране.</p> + + + + Use compact layout + Включить компактный режим + + + + Main window dock areas + Области прикрепления вокруг главного окна + + + + Left and right areas occupy corners + Углы занимают правая и левая области + + + + Top and bottom areas occupy corners + Углы занимают верхняя и нижняя области + + + + Hide built-in plugins + Скрыть встроенные модули + + + + Current style: + Текущий стиль: + + + + Preview + Предпросмотр + + + + Enabled + Активно + + + + Disabled + Неактивно + + + + Active formatter plugin + Активный модуль форматирования + + + + SQL editor font + Шрифт редактора SQL + + + + Database list font + Шрифт списка баз данных + + + + Database list additional label font + Шрифт дополнительных меток в списке баз данных + + + + Data view font + Шрифт просмотра данных + + + + Status field font + Шрифт окна статуса + + + + Code assistant settings + Настройки автодополнения + + + + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + <html><head/><body><p>Если эта опция включена, окно автодополнения будет вызываться в случае, когда пользователь например набирает <span style=" font-weight:700;">tableName.</span> чтобы предложить вставить имя столбца. Если опция отключена, пользователь должен нажать комбинацию клавиш для вызова автодополнения.</p></body></html> + + + + Automatically trigger the assistant after a dot is typed after an object name + Автоматически показывать окно автодополнения когда вводится точка после имени объекта + + + + Description: + plugin details + Описание: + + + + Category: + plugin details + Категория: + + + + Version: + plugin details + Версия: + + + + Author: + plugin details + Автор: + + + + Internal name: + plugin details + Внутреннее имя: + + + + Dependencies: + plugin details + Зависимости: + + + + Conflicts: + plugin details + Конфликты: + + + + Plugin details + Сведения о модуле + + + + Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. + Модули загружаются и выгружаются сразу после активации/деактивации, однако изменения в списке загружаемых при старте модулей не будут сохранены пока вы не примените изменения в окне конфигурации. + + + + %1 (built-in) + plugins manager in configuration dialog + %1 (встроенный) + + + + Details + Сведения + + + + No plugins in this category. + В этой категории модулей нет. + + + + Add new data type + Добавить новый тип данных + + + + Rename selected data type + Переименовать выбранный тип данных + + + + Delete selected data type + Удалить выбранный тип данных + + + + Help for configuring data type editors + Справка по настройке редакторов типов данных + + + + Clear hotkey for this action + Clear hotkey for this action + + + + Restore original hotkey for this action + Restore original hotkey for this action + + + + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + + + + ConstraintCheckPanel + + + The condition + Условие + + + + Named constraint: + Именованное ограничение: + + + + On conflict + При конфликте + + + + Enter a valid condition. + Введите корректное условие. + + + + Enter a name of the constraint. + Введите имя ограничения. + + + + ConstraintDialog + + + New constraint + constraint dialog + Новое ограничение + + + + Create + constraint dialog + Создать + + + + Edit constraint + dialog window + Редактировать ограничение + + + + Apply + constraint dialog + Применить + + + + Primary key + table constraints + Первичный ключ + + + + Foreign key + table constraints + Внешний ключ + + + + Unique + table constraints + Уникальность + + + + Not NULL + table constraints + Не NULL + + + + Check + table constraints + Проверка + + + + Generated + table constraints + Сгенерированное + + + + Collate + table constraints + Сравнение + + + + Default + table constraints + Значение по умолчанию + + + + ConstraintTabModel + + + Table + table constraints + Таблица + + + + Column (%1) + table constraints + Столбец (%1) + + + + Scope + table constraints + Область применения + + + + Type + table constraints + Тип + + + + Details + table constraints + Подробности + + + + Name + table constraints + Имя + + + + CssDebugDialog + + + SQLiteStudio CSS console + Консоль CSS SQLiteStudio + + + + DataView + + + Filter data + data view + Отфильтровать данные + + + + Grid view + Табличный вид + + + + Form view + Форма + + + + Refresh table data + data view + Обновить данные таблицы + + + + First page + data view + Первая страница + + + + Previous page + data view + Предыдущая страница + + + + Next page + data view + Следующая страница + + + + Last page + data view + Последняя страница + + + + Commit changes for selected cells + data view + Подтвердить изменения для выбранных ячеек + + + + Rollback changes for selected cells + data view + Откатить изменения для выбранных ячеек + + + + Show grid view of results + data view + Показать результаты в виде таблицы + + + + Show form view of results + data view + Показать результаты в виде формы + + + + Filter by text (if contains) + data view + Текстовый фильтр (если содержит) + + + + Filter strictly by text (if equals) + data view + Строгий текстовый фильтр (если равно) + + + + Tabs on top + data view + Вкладки сверху + + + + Tabs at bottom + data view + Вкладки снизу + + + + Place new rows above selected row + data view + Поместить новые строки перед выделенной строкой + + + + Place new rows below selected row + data view + Поместить новые строки после выделенной строки + + + + Place new rows at the end of the data view + data view + Поместить новые строки в конец области просмотра данных + + + + Total number of rows is being counted. +Browsing other pages will be possible after the row counting is done. + Идёт подсчёт общего числа строк. +Переключение на другие страницы станет возможным после окончания подсчёта. + + + + Row: %1 + Строка: %1 + + + + Filter + Фильтр + + + + Hit Enter key or press "Apply filter" button on toolbar to apply new value. + Нажмите Enter или кнопку "Применить фильтр" на панели инструментов чтобы применить новое значение. + + + + Filter by the Regular Expression + data view + Фильтр по регулярному выражению + + + + Filter by SQL expression + data view + Фильтр по выражению SQL + + + + Show filter inputs per column + data view + Показывать поле ввода для фильтра в каждом столбце + + + + Apply filter + data view + Применить фильтр + + + + DbDialog + + + Database + База данных + + + + Database type + Тип базы данных + + + + Database driver + Драйвер базы данных + + + + + File + Файл + + + + Name (on the list) + Имя (в списке) + + + + Options + Опции + + + + <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> + aasfd + <p>Активируйте эту опцию для сохранения базы данных в конфигурационном файле и добавления её в список при каждом запуске SQLiteStudio.</p> + + + + Permanent (keep it in configuration) + Постоянная (сохранить базу в конфигурационном файле) + + + + Test connection + Тест соединения + + + + Select new or existing file on local computer + Выберите новый или существующий файл на локальном компьютере + + + + Browse + Обзор + + + + Database type not selected. + Тип базы данных не выбран. + + + + Database path not specified. + Путь к базе данных не указан. + + + + Enter an unique database name. + Введите уникальное имя базы данных. + + + + This name is already in use. Please enter unique name. + Данное имя уже используется. Пожалуйста, укажите уникальное имя. + + + + <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> + <p>Автоматическая генерация имени отключена, так как имя было задано вручную. Для автоматической генерации необходимо удалить содержимое из поля имени.</p> + + + + Enter a database file path. + Введите путь к базе данных. + + + + This database is already on the list under name: %1 + Указанная база данных уже находится в списке под именем %1 + + + + Select a database type. + Выберите тип базы данных. + + + + DbObjectDialogs + + + Delete table + Удалить таблицу + + + + Are you sure you want to delete table %1? + Вы действительно хотите удалить таблицу %1? + + + + Delete index + Удалить индекс + + + + Are you sure you want to delete index %1? + Вы действительно хотите удалить индекс %1? + + + + Delete trigger + Удалить триггер + + + + Are you sure you want to delete trigger %1? + Вы действительно хотите удалить триггер %1? + + + + Delete view + Удалить представление + + + + Are you sure you want to delete view %1? + Вы действительно хотите удалить представление %1? + + + + + Error while dropping %1: %2 + Ошибка при удалении %1: %2 + + + + Delete objects + Удалить объекты + + + + Are you sure you want to delete following objects: +%1 + Вы действительно хотите удалить следующие объекты: +%1 + + + + Cannot start transaction. Details: %1 + Невозможно начать транзакцию. Подробности: %1 + + + + Cannot commit transaction. Details: %1 + Невозможно подтвердить транзакцию. Подробности: %1 + + + + DbTree + + + Databases + Базы данных + + + + Filter by name + Фильтр по имени + + + + Copy + Копировать + + + + Paste + Вставить + + + + Select all + Выделить всё + + + + Create a group + Создать группу + + + + Delete the group + Удалить группу + + + + Rename the group + Переименовать группу + + + + &Add a database + &Добавить базу данных + + + + &Edit the database + &Редактировать базу данных + + + + &Remove the database + &Удалить базу данных + + + + &Connect to the database + &Подключиться к базе данных + + + + &Disconnect from the database + &Отключиться от базы данных + + + + Import + Импорт + + + + &Export the database + &Экспортировать базу данных + + + + Vac&uum + Оп&ерация VACUUM + + + + &Integrity check + Проверить &целостность + + + + Create a &table + Создать &таблицу + + + + Edit the t&able + Редактировать т&аблицу + + + + Delete the ta&ble + Удалить та&блицу + + + + Export the table + Экспортировать таблицу + + + + Import into the table + Импортировать данные в таблицу + + + + Populate table + Заполнить таблицу + + + + Create similar table + Создать подобную таблицу + + + + Reset autoincrement sequence + Сбросить счётчик автоинкремента + + + + Create an &index + Создать &индекс + + + + Edit the i&ndex + Редактировать и&ндекс + + + + Delete the in&dex + Удалить инде&кс + + + + Create a trig&ger + Создать три&ггер + + + + Edit the trigg&er + Редактиро&вать триггер + + + + Delete the trigge&r + Уда&лить триггер + + + + Create a &view + &Создать представление + + + + Edit the v&iew + Редактироват&ь представление + + + + Delete the vi&ew + Удалить &представление + + + + Add a column + Добавить столбец + + + + Edit the column + Редактировать столбец + + + + Delete the column + Удалить столбец + + + + Delete selected items + Удалить выбранные элементы + + + + Clear filter + Сбросить фильтр + + + + &Refresh all database schemas + Обновить структуры всех баз данн&ых + + + + Re&fresh selected database schema + Обновить структуру выбранной базы данны&х + + + + + Erase table data + Удалить данные из таблицы + + + + Open file's directory + Открыть папку с этим файлом + + + + Execute SQL from file + Выполнить SQL-запросы из файла + + + + Increase font size + database list + Увеличить размер шрифта + + + + Decrease font size + database list + Уменьшить размер шрифта + + + + + Database + База данных + + + + Grouping + Группировка + + + + Generate query for table + Сгенерировать запрос для этой таблицы + + + + + Create group + Создать группу + + + + Group name + Имя группы + + + + Entry with name %1 already exists in group %2. + Элемент с именем %1 уже входит в группу %2. + + + + Delete group + Удалить группу + + + + Are you sure you want to delete group %1? +All objects from this group will be moved to parent group. + Вы действительно хотите удалить группу %1? Все объекты из данной группы будут перемещены в родительскую группу. + + + + Are you sure you want to remove database '%1' from the list? + Вы действительно хотите удалить базу данных '%1' из списка? + + + + Are you sure you want to remove following databases from the list: +%1 + Вы действительно хотите удалить следующие базы данных из списка: %1 + + + + Remove database + Удалить базу данных + + + + + Cannot import, because no import plugin is loaded. + Невозможно произвести импорт, т. к. не загружено ни одного модуля импорта. + + + + + Cannot export, because no export plugin is loaded. + Невозможно произвести экспорт, т.к. не загружено ни одного модуля экспорта. + + + + Vacuum (%1) + Операция VACUUM (%1) + + + + Integrity check (%1) + Проверка целостности (%1) + + + + Reset autoincrement + Сброс счётчика автоинкремента + + + + Are you sure you want to reset autoincrement value for table '%1'? + Вы действительно хотите сбросить счётчик автоинкремента у таблицы '%1'? + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + При попытке сброса счётчика автоинкремента у таблицы '%1' произошла ошибка: %2 + + + + Autoincrement value for table '%1' has been reset successfully. + Сброс счётчика автоинкремента у таблицы '%1' успешно выполнен. + + + + Are you sure you want to delete all data from table(s): %1? + Вы действительно хотите удалить все данные из таблицы (таблиц): %1? + + + + An error occurred while trying to delete data from table '%1': %2 + При попытке удаления данных из таблицы '%1' произошла ошибка: %2 + + + + All data has been deleted for table '%1'. + Из таблицы '%1' были удалены все данные. + + + + Following objects will be deleted: %1. + Будут удалены следующие объекты: %1. + + + + Following databases will be removed from list: %1. + Из списка будут удалены следующие базы данных: %1. + + + + Remainig objects from deleted group will be moved in place where the group used to be. + Оставшиеся после удаления группы объекты будут перемещены туда, где ранее располагалась группа. + + + + %1<br><br>Are you sure you want to continue? + %1<br><br>Вы действительно хотите продолжить? + + + + Delete objects + Удалить объекты + + + + DbTreeItemDelegate + + + error + dbtree labels + ошибка + + + + (system table) + database tree label + (системная таблица) + + + + (virtual) + virtual table label + (виртуальная) + + + + (system index) + database tree label + (системный индекс) + + + + DbTreeModel + + + Database: %1 + dbtree tooltip + База данных: %1 + + + + URI: + dbtree tooltip + URI: + + + + Version: + dbtree tooltip + Версия: + + + + File size: + dbtree tooltip + Размер файла: + + + + Encoding: + dbtree tooltip + Кодировка: + + + + Error: + dbtree tooltip + Ошибка: + + + + Table : %1 + dbtree tooltip + Таблица: %1 + + + + Columns (%1): + dbtree tooltip + Столбцы (%1): + + + + Indexes (%1): + dbtree tooltip + Индексы (%1): + + + + Triggers (%1): + dbtree tooltip + Триггеры (%1): + + + + Copy + Копировать + + + + Move + Переместить + + + + Include data + Включая данные + + + + Include indexes + Включая индексы + + + + Include triggers + Включая триггеры + + + + Abort + Прервать + + + + Could not add dropped database file '%1' automatically. Manual setup is necessary. + Невозможно автоматически добавить перетянутый файл базы данных '%1'. Необходима ручная настройка. + + + + Referenced tables + Связанные таблицы + + + + Do you want to include following referenced tables as well: +%1 + Вы хотите также включить следующие связанные таблицы: +%1 + + + + Name conflict + Конфликт имён + + + + Following object already exists in the target database. +Please enter new, unique name, or press '%1' to abort the operation: + Данный объект уже существует в целевой базе данных. +Пожалуйста введите новое уникальное имя или нажмите '%1' для прерывания операции: + + + + SQL statements conversion + Конвертация конструкций SQL + + + + Following error occurred while converting SQL statements to the target SQLite version: + При конвертации конструкций SQL в новую версию SQLite произошла ошибка: + + + + Would you like to ignore those errors and proceed? + Вы хотите проигнорировать эти ошибки и продолжить? + + + + DdlHistoryWindow + + + Filter by database: + Фильтр по базе данных: + + + + Clear entire history + Очистить всю историю + + + + -- Queries executed on database %1 (%2) +-- Date and time of execution: %3 +%4 + -- Запросы, выполненные к базе данных %1 (%2) +-- Дата и время выполнения: %3 +%4 + + + + Clear history + Очистить историю + + + + Are you sure you want to erase entire DDL history? + Вы уверены, что хотите стереть всю историю DDL? + + + + DDL history + История DDL + + + + DdlPreviewDialog + + + Queries to be executed + Запросы, которые будут выполнены + + + + Don't show again + Больше не показывать + + + + DebugConsole + + + SQLiteStudio Debug Console + Отладочная консоль SQLiteStudio + + + + EditorWindow + + + SQL editor + Редактор SQL + + + + Query + Запрос + + + + History + История + + + + Results in the separate tab + Результаты в отдельной вкладке + + + + Results below the query + Результаты под запросом + + + + + SQL editor %1 + Редактор SQL %1 + + + + + Results + Результаты + + + + Execute query + Выполнить запрос + + + + Explain query + План запроса + + + + Clear execution history + sql editor + Очистить историю запросов + + + + Export results + sql editor + Экспортировать результаты + + + + Create view from query + sql editor + Создать представление из запроса + + + + Previous database + Предыдущая база данных + + + + Next database + Следующая база данных + + + + Show next tab + sql editor + Открыть следующую вкладку + + + + Show previous tab + sql editor + Открыть предыдущую вкладку + + + + Focus results below + sql editor + Фокус на результатах внизу + + + + Focus SQL editor above + sql editor + Фокус на редакторе SQL сверху + + + + Delete selected SQL history entries + sql editor + Удалить выбранные записи из истории SQL-запросов + + + + Execute single query under cursor + Выполнить одиночный запрос под курсором + + + + Execute all queries in editor + Выполнить все запросы в редакторе + + + + Active database (%1/%2) + Текущая база данных (%1/%2) + + + + Query finished in %1 second(s). Rows affected: %2 + Запрос выполнен за %1 секунд. Затронуто строк: %2 + + + + Query finished in %1 second(s). + Запрос выполнен за %1 секунд. + + + + Clear execution history + Очистка истории запросов + + + + Are you sure you want to erase the entire SQL execution history? This cannot be undone. + Вы действительно хотите удалить всю историю выполнения SQL запросов? Операцию невозможно отменить. + + + + Cannot export, because no export plugin is loaded. + Невозможно произвести экспорт, т. к. не загружено ни одного модуля экспорта. + + + + No database selected in the SQL editor. Cannot create a view for unknown database. + В редакторе SQL не выбрана база данных. Невозможно создать представление в неизвестной базе данных. + + + + Editor window "%1" has uncommitted data. + В окне редактора "%1" имеются неподтверждённые данные. + + + + ErrorsConfirmDialog + + + Errors + Ошибки + + + + Following errors occured: + Возникли следующие ошибки: + + + + Would you like to proceed? + Вы хотите продолжить? + + + + ExecFromFileDialog + + + Execute SQL from file + Выполнение SQL-запросов из файла + + + + Input file + Файл-источник + + + + Path to file + Путь к файлу + + + + Browse for file + Выбрать файл + + + + Options + Опции + + + + File encoding + Кодировка файла + + + + Skip failing SQL statements + Пропуск неудавшихся SQL-запросов + + + + SQL scripts (*.sql);;All files (*) + Скрипты SQL (*.sql);;Все файлы (*) + + + + Execute SQL file + Выполнить SQL-запросы из файла + + + + Please provide file to be executed. + Пожалуйста укажите файл с SQL-запросами. + + + + Provided file does not exist or cannot be read. + Указанный файл не существует или не может быть прочитан. + + + + ExportDialog + + + Export + Экспорт + + + + What do you want to export? + Что вы хотите экспортировать? + + + + A database + Базу данных + + + + A single table + Одну таблицу + + + + Query results + Результаты запроса + + + + Table to export + Экспортируемая таблица + + + + Database + База данных + + + + Table + Таблица + + + + Options + Опции + + + + When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. + Если данная опция деактивирована, будет экспортирован только DDL таблицы (конструкция CREATE TABLE). + + + + Export table data + Экспортировать данные таблицы + + + + Export table indexes + Экспортировать индексы таблицы + + + + Export table triggers + Экспортировать триггеры таблицы + + + + Note, that exporting table indexes and triggers may be unsupported by some output formats. + Учтите, что экспорт индексов и триггеров таблицы может не поддерживаться некоторыми выходными форматами. + + + + Select database objects to export + Выберите объекты базы данных для экспорта + + + + Export data from tables + Экспортировать данные таблиц + + + + Select all + Выбрать всё + + + + Deselect all + Снять выделение + + + + + Database: + База данных: + + + + Query to export results for + Запрос для экспорта результатов + + + + Query to be executed for results: + Выполняемый запрос для получения данных: + + + + Export format and options + Формат экспорта и опции + + + + Export format + Формат экспорта + + + + Output + Вывод + + + + Exported file path + Путь к результирующему файлу + + + + Clipboard + Буфер обмена + + + + File + Файл + + + + Exported text encoding: + Кодировка экспорта: + + + + Export format options + Опции формата экспорта + + + + Cancel + Отмена + + + + + + Select database to export. + Выберите базу данных для экспорта. + + + + Select table to export. + Выберите таблицу для экспорта. + + + + Enter valid query to export. + Введи корректный запрос для экспорта. + + + + Select at least one object to export. + Выберите хотя бы один объект для экспорта. + + + + You must provide a file name to export to. + Необходимо указать имя файла, в который будет произведён экспорт. + + + + Path you provided is an existing directory. You cannot overwrite it. + Указанный путь является существующим каталогом. Его невозможно перезаписать. + + + + The directory '%1' does not exist. + Каталог '%1' не существует. + + + + The file '%1' exists and will be overwritten. + Файл '%1' существует и будет перезаписан. + + + + All files (*) + Все файлы (*) + + + + Pick file to export to + Выберите файл для экспорта + + + + Internal error during export. This is a bug. Please report it. + Внутренняя ошибка во время экспорта. Пожалуйста, вышлите отчёт об этой ошибке. + + + + FileExecErrorsDialog + + + Execution errors + Ошибки выполнения + + + + Following errors were encountered during execution of SQL statements from the file: + При выполнении SQL-запросов из файла возникли следующие ошибки: + + + + SQL + SQL-запрос + + + + Error + Ошибка + + + + Statements that were executed successfully were commited. + Успешно выполненные запросы были записаны в базу. + + + + Statements that were executed successfully were rolled back. + Успешно выполненные запросы были откачены. + + + + FkComboBox + + + Cannot edit this cell. Details: %1 + Невозможно редактировать данную ячейку. Подробности: %1 + + + + FontEdit + + + Choose font + font configuration + Выберите шрифт + + + + Form + + + Active SQL formatter plugin + Активный модуль форматирования SQL + + + + FormView + + + Commit row + form view + Подтвердить строку + + + + Rollback row + form view + Откатить строку + + + + First row + form view + Первая строка + + + + Previous row + form view + Предыдущая строка + + + + Next row + form view + Следующая строка + + + + Last row + form view + Последняя строка + + + + Insert new row + form view + Вставить новую строку + + + + Delete current row + form view + Удалить текущую строку + + + + FunctionsEditor + + + Filter functions + Фильтр функций + + + + Input arguments + Передаваемые аргументы + + + + Undefined + Не определено + + + + Databases + Базы данных + + + + Register in all databases + Зарегистрировать во всех базах данных + + + + Register in following databases: + Зарегистрировать в следующих базах данных: + + + + Type: + Тип: + + + + Function name: + Имя функции: + + + + Implementation language: + Язык реализации: + + + + Deterministic + Детерминированная + + + + Initialization code: + Код инициализации: + + + + + Function implementation code: + Код реализации функции: + + + + Final step implementation code: + Код реализации последнего шага: + + + + SQL functions editor + Редактор функций SQL + + + + Commit all function changes + Подтвердить все изменения функций + + + + Rollback all function changes + Откатить все изменения функций + + + + Create new function + Создать новую функцию + + + + Delete selected function + Удалить выбранную функцию + + + + Custom SQL functions manual + Руководство по созданию произвольных функций SQL + + + + Add function argument + Добавить аргумент функции + + + + Rename function argument + Переименовать аргумент функции + + + + Delete function argument + Удалить аргумент функции + + + + Move function argument up + Переместить аргумент функции вверх + + + + Move function argument down + Переместить аргумент функции вниз + + + + Scalar + Скалярная + + + + Aggregate + Агрегирующая + + + + Enter a non-empty, unique name of the function. + Введите непустое уникальное имя функции. + + + + Pick the implementation language. + Выберите язык реализации. + + + + Per step code: + Код на каждом шаге: + + + + Enter a non-empty implementation code. + Введите непустой код реализации. + + + + argument + new function argument name in function editor window + аргумент + + + + Functions editor window has uncommitted modifications. + В окне редактора функций имеются неподтверждённые изменения. + + + + ImportDialog + + + Import data + Импорт данных + + + + Table to import to + Таблица для импорта + + + + Table + Таблица + + + + Database + База данных + + + + Data source to import from + Источник данных для импорта + + + + Data source type + Тип источника данных + + + + Options + Опции + + + + Text encoding: + Кодировка текста: + + + + Input file: + Файл-источник: + + + + <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> + <p>Если опция активирована, все нарушения ограничений, неправильный формат данных (неверное количество столбцов) и любые другие проблемы, возникшие при осуществлении импорта, будут проигнорированы и импорт будет продолжен.</p> + + + + Ignore errors + Игнорировать ошибки + + + + Data source options + Опции источника данных + + + + Cancel + Отмена + + + + If you type table name that doesn't exist, it will be created. + Если вы введёте несуществующее имя таблицы, она будет создана. + + + + Enter the table name + Введите имя таблицы + + + + Select import plugin. + Выберите модуль импорта. + + + + You must provide a file to import from. + Необходимо указать файл, из которого осуществляется импорт. + + + + The file '%1' does not exist. + Файл '%1' не существует. + + + + Path you provided is a directory. A regular file is required. + Указанный путь является каталогом. Необходимо указать файл. + + + + Pick file to import from + Выберите файл для импорта + + + + IndexDialog + + + + Index + Индекс + + + + Column + Столбец + + + + Sort + Сортировка + + + + Collation + Сравнение + + + + On table: + Для таблицы: + + + + Delete selected indexed expression + Удалить выбранное индексируемое выражение + + + + Moves selected index column up in the order, making it more significant in the index. + Переместить индексируемый столбец выше по списку, увеличивая его значимость в индексе. + + + + Moves selected index column down in the order, making it less significant in the index. + Переместить индексируемый столбец ниже по списку, снижая его значимость в индексе. + + + + Partial index condition + Условие для частичного индекса + + + + Unique index + Уникальный индекс + + + + Index name: + Имя индекса: + + + + Edit selected indexed expression + Редактировать выбранное индексируемое выражение + + + + Add indexed expression + Добавить индексируемое выражение + + + + DDL + DDL + + + + Tried to open index dialog for closed or inexisting database. + Попытка вызвать диалог создания индекса для закрытой или несуществующей базы данных. + + + + Could not process index %1 correctly. Unable to open an index dialog. + Не удалось корректно обработать индекс %1. Невозможно открыть окно индекса. + + + + Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. + Уникальный индекс не может содержать индексируемые выражения. Либо удалите выражения из списка ниже, либо отключите эту опцию. + + + + Pick the table for the index. + Выберите таблицу для индекса. + + + + Select at least one column. + Выберите хотя бы один столбец. + + + + Enter a valid condition. + Введите корректное условие. + + + + default + index dialog + по умолчанию + + + + Sort order + table constraints + Порядок сортировки + + + + + Error + index dialog + Ошибка + + + + Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? + Невозможно создать уникальный индекс, т. к. данные в выбранных столбцах неуникальны. Вы хотите выполнить запрос SELECT для просмотра проблемных данных? + + + + An error occurred while executing SQL statements: +%1 + При выполнении конструкций SQL произошла ошибка: +%1 + + + + IndexExprColumnDialog + + + Indexed expression + Индексируемое выражение + + + + Expression to index + Выражение для добавления в индекс + + + + This expression is already indexed by the index. + Такое выражение уже присутствует в индексе. + + + + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. + Столбец необходимо индексировать напрямую, а не выражением. Либо добавьте в выражение что-либо кроме имени столбца, либо отмените изменения и отметьте столбец непосредственно в окне индекса. + + + + Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. + Столбец '%1' не принадлежит к индексируемой таблице. Индексируемые выражения могут ссылаться только на столбцы индексируемой таблицы. + + + + It's forbidden to use 'SELECT' statements in indexed expressions. + Запрещено использовать конструкции SELECT в индексируемых выражениях. + + + + Enter an indexed expression. + Введите индексируемое выражение. + + + + Invalid expression. + Некорректное выражение. + + + + LanguageDialog + + + Language + Язык + + + + Please choose language: + Пожалуйста, выберите язык: + + + + MainWindow + + + Database toolbar + Панель базы данных + + + + Structure toolbar + Панель структуры + + + + Tools + Инструменты + + + + Window list + Список окон + + + + View toolbar + Панель отображения + + + + Configuration widgets + Виджеты конфигурации + + + + Syntax highlighting engines + Движки синтаксической подсветки + + + + Data editors + Редакторы данных + + + + Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. + Отладочный режим. Нажмите %1 или воспользуйтесь пунктом меню 'Справка / Открыть отладочную консоль' для открытия отладочной консоли. + + + + Running in debug mode. Debug messages are printed to the standard output. + Отладочный режим. Отладочные сообщения выводятся в стандартный выходной поток. + + + + You need to restart application to make the language change take effect. + Для смены языка необходимо перезапустить приложение. + + + + Open SQL &editor + &Открыть редактор SQL + + + + Open DDL &history + О&ткрыть историю DDL + + + + Open SQL &functions editor + От&крыть редактор функций SQL + + + + Open code &snippets editor + Открыть редактор &сниппетов + + + + Open &collations editor + Отк&рыть редактор сравнений + + + + Open ex&tension manager + Откр&ыть менеджер расширений + + + + &Import + &Импорт + + + + E&xport + &Экспорт + + + + Open confi&guration dialog + Открыт&ь диалог конфигурации + + + + &Tile windows + Р&асположить окна плиткой + + + + Tile windows &horizontally + Распо&ложить окна по горизонтали + + + + Tile windows &vertically + Располо&жить окна по вертикали + + + + &Cascade windows + Ра&сположить окна каскадом + + + + Next window + Следующее окно + + + + Previous window + Предыдущее окно + + + + Hide status field + Скрыть окно статуса + + + + Close &all windows + Закрыть вс&е окна + + + + Re&store recently closed window + Восста&новить последнее закрытое окно + + + + Close current &window + Закрыть текущее &окно + + + + Close &other windows + Закрыть &другие окна + + + + Close windows on the &left + Закрыть окна с&лева + + + + Close windows on the &right + Закрыть окна с&права + + + + Re&name selected window + Переи&меновать выбранное окно + + + + Open Debug Console + Открыть отладочную консоль + + + + Open CSS Console + Открыть консоль CSS + + + + Report a &bug + Сообщить об о&шибке + + + + D&onate + По&жертвование + + + + Propose a new &feature + Предложить новую &функцию + + + + &About + О про&грамме + + + + &Licenses + Ли&цензии + + + + Open home &page + Открыть домашн&юю страницу + + + + User &Manual + Руководство пользовател&я + + + + SQLite &documentation + &Документация по SQLite + + + + Bugs and feature &requests + Оши&бки и предложения + + + + Quit + Выход + + + + Check for &updates + &Проверить обновления + + + + &Database + menubar + &База данных + + + + &Structure + menubar + &Структура + + + + &View + menubar + &Вид + + + + Window list + menubar view menu + Окна + + + + &Tools + menubar + &Инструменты + + + + &Help + С&правка + + + + Could not set style: %1 + main window + Невозможно применить стиль: %1 + + + + Cannot export, because no export plugin is loaded. + Невозможно произвести экспорт, т. к. не загружено ни одного модуля экспорта. + + + + Cannot import, because no import plugin is loaded. + Невозможно произвести импорт, т. к. не загружено ни одного модуля импорта. + + + + Rename window + Переименовать окно + + + + Enter new name for the window: + Введите новое имя для окна: + + + + New updates are available. <a href="%1">Click here for details</a>. + Доступны обновления. <a href="%1">Нажмите здесь для подробностей</a>. + + + + You're running the most recent version. No updates are available. + Установлена последняя версия. Обновлений нет. + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + База данных, переданная через аргументы командной строки (%1), уже находится в списке под именем %2 + + + + Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 + База данных, переданная через аргументы командной строки (%1), была временно добавлена в список под именем %2 + + + + Could not add database %1 to list. + Невозможно добавить базу данных %1 в список. + + + + MdiWindow + + + Uncommitted changes + Неподтверждённые изменения + + + + Close anyway + Всё равно закрыть + + + + Don't close + Не закрывать + + + + MultiEditor + + + Null value + multieditor + Значение Null + + + + Configure editors for this data type + Настройте редакторы для этого типа данных + + + + Open another tab + Открыть дополнительную вкладку + + + + Foreign Key + Внешний ключ + + + + Data editor plugin '%1' not loaded, while it is defined for editing '%2' data type. + Модуль редактора данных '%1' не загружен, хотя указан для редактирования типа данных '%1'. {1'?} {2'?} {1' or 2'?} + + + + Deleted + multieditor + Удалено + + + + Read only + multieditor + Только для чтения + + + + MultiEditorBoolPlugin + + + Boolean + Логическое + + + + MultiEditorDatePlugin + + + Date + Дата + + + + MultiEditorDateTimePlugin + + + Date & time + Дата & время + + + + MultiEditorHexPlugin + + + Hex + Шестнадцатеричное + + + + MultiEditorNumericPlugin + + + Number + numeric multi editor tab name + Число + + + + MultiEditorText + + + Tab changes focus + Tab перемещает фокус + + + + Cut + Вырезать + + + + Copy + Копировать + + + + Paste + Вставить + + + + Delete + Удалить + + + + Undo + Отменить + + + + Redo + Повторить + + + + MultiEditorTextPlugin + + + Text + Текст + + + + MultiEditorTimePlugin + + + Time + Время + + + + NewConstraintDialog + + + New constraint + Новое ограничение + + + + + Primary Key + new constraint dialog + Первичный ключ + + + + + Foreign Key + new constraint dialog + Внешний ключ + + + + + Unique + new constraint dialog + Уникальность + + + + + Check + new constraint dialog + Проверка + + + + Not NULL + new constraint dialog + Не NULL + + + + Collate + new constraint dialog + Сравнение + + + + Generated + new constraint dialog + Сгенерированное + + + + Default + new constraint dialog + Значение по умолчанию + + + + NewVersionDialog + + + SQLiteStudio updates + Обновления SQLiteStudio + + + + New version is available! + Доступна новая версия! + + + + Download new version! + Загрузить новую версию! + + + + New version package will be downloaded. It will be up to you to install it whenever you're ready. + Будет загружен установщик новой версии. Вы сможете начать установку когда будете готовы. + + + + Open SQLiteStudio home page. + Посетить домашнюю страницу SQLiteStudio. + + + + Read release notes && download package yourself. + Прочитать примечания к выпуску и загрузить установщик самостоятельно. + + + + Just close this window. + Просто закрыть это окно. + + + + Check for updates on startup + Проверять обновления при запуске + + + + Not now. + Не сейчас. + + + + PopulateConfigDialog + + + Populating configuration + Настройка заполнения + + + + Configuring <b>%1</b> for column <b>%2</b> + Настройка <b>%1</b> для столбца <b>%2</b> + + + + PopulateDialog + + + Populate table + Заполнить таблицу + + + + Database + База данных + + + + Table + Таблица + + + + Columns + Столбцы + + + + Number of rows to populate: + Количество заполняемых строк: + + + + Populate + populate dialog button + Заполнить + + + + Abort + Прервать + + + + Configure + Настроить + + + + Populating configuration for this column is invalid or incomplete. + Настройка заполнения для данного столбца некорректна или не завершена. + + + + Select database with table to populate + Выберите базу данных с таблицей для заполнения + + + + Select table to populate + Выберите таблицу для заполнения + + + + You have to select at least one column. + Необходимо выбрать хотя бы один столбец. + + + + QObject + + + Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). + Невозможно редактировать столбцы, являющиеся результатом составных конструкций %1 (те, которые включают ключевые слова %2, %3 и %4). + + + + The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. + В механизме выполнения запросов возникли проблемы при корректном извлечении значений ROWID. Предположительно это ошибка в приложении. Возможно стоит отправить отчёт об ошибке. + + + + Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. + Запрошенный столбец является результатом SQL выражения, а не просто выбором столбца. Такие столбцы не могут быть отредактированы. + + + + Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. + Запрошенный столбец принадлежит служебной таблице SQLite. Эти таблицы нельзя редактировать напрямую. + + + + Cannot edit results of query other than %1. + Невозможно редактировать результаты запросов, отличных от %1. + + + + Cannot edit columns that are result of aggregated %1 statements. + Невозможно редактировать столбцы, являющиеся результатом агрегирующих конструкций %1. + + + + Cannot edit columns that are result of %1 statement. + Невозможно редактировать столбцы, являющиеся результатом конструкции %1. + + + + Cannot edit columns that are result of common table expression statement (%1). + Невозможно редактировать столбцы, являющиеся результатом обобщённого табличного выражения (%1). + + + + Cannot edit table generated columns. + Невозможно редактировать сгенерированные таблицей столбцы. + + + + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). + Невозможно редактировать столбцы в результатах представления, если выполняемый запрос выбирает данные из любых многоуровневых представлений (т.е. представлений, в которых запрашиваются другие представления). + + + + + + + on conflict: %1 + data view tooltip + при конфликте: %1 + + + + references table %1, column %2 + data view tooltip + ссылается на таблицу %1, столбец %2 + + + + condition: %1 + data view tooltip + условие: %1 + + + + collation name: %1 + data view tooltip + имя сравнения: %1 + + + + Data grid view + Табличный вид данных + + + + Edit current cell inline + Редактировать текущую ячейку + + + + Copy cell(s) contents to clipboard + Копировать содержимое ячеек в буфер обмена + + + + Copy cell(s) contents together with header to clipboard + Копировать имя столбца и содержимое ячеек в буфер обмена + + + + Paste cell(s) contents from clipboard + Вставить содержимое ячеек из буфера обмена + + + + Set empty value to selected cell(s) + Установить пустое значение для выбранных ячеек + + + + Set NULL value to selected cell(s) + Установить для выбранных ячеек значение NULL + + + + Commit changes to cell(s) contents + Подтвердить изменение содержимого ячеек + + + + Rollback changes to cell(s) contents + Откатить изменения содержимого ячеек + + + + Delete selected data row + Удалить выбранную строку данных + + + + Insert new data row + Вставить новую строку данных + + + + Open contents of selected cell in a separate editor + Открыть содержимое выбранной ячейки в отдельном редакторе + + + + Toggle the height adjustment of rows + Переключить регулировку высоты строк + + + + Increase font size + data view + Увеличить размер шрифта + + + + Decrease font size + data view + Уменьшить размер шрифта + + + + Total pages available: %1 + Всего доступно страниц: %1 + + + + Total rows loaded: %1 + Всего загружено строк: %1 + + + + Data view (both grid and form) + Окно данных (и табличный вид, и форма) + + + + Refresh data + Обновить данные + + + + Switch to grid view of the data + Переключиться с табличного вида на форму + + + + Switch to form view of the data + Переключиться из формы на табличный вид + + + + Database list + Список баз данных + + + + Delete selected item + Удалить выбранный элемент + + + + Clear filter contents + Сбросить содержимое фильтра + + + + Refresh schema + Обновить структуру + + + + Refresh all schemas + Обновить структуры всех баз данных + + + + Add database + Добавить базу данных + + + + Select all items + Выделить все элементы + + + + Copy selected item(s) + Копировать выбранные элементы + + + + + + Paste from clipboard + Вставить из буфера обмена + + + + Increase font size + database list + Увеличить размер шрифта + + + + Decrease font size + database list + Уменьшить размер шрифта + + + + Tables + Таблицы + + + + Indexes + Индексы + + + + Triggers + Триггеры + + + + Views + Представления + + + + Columns + Столбцы + + + + Data form view + Форма + + + + Commit changes for current row + Подтвердить изменения для текущей строки + + + + Rollback changes for current row + Откатить изменения для текущей строки + + + + Go to first row on current page + Перейти к первой строке текущей страницы + + + + Go to next row + Перейти к следующей строке + + + + Go to previous row + Перейти к предыдущей строке + + + + Go to last row on current page + Перейти к последней строке текущей страницы + + + + Insert new row + Вставить новую строку + + + + Delete current row + Удалить текущую строку + + + + Main window + Главное окно + + + + Open SQL editor + Открыть редактор SQL + + + + Open DDL history window + Открыть окно истории DDL + + + + Open snippets editor window + Открыть окно редактора сниппетов + + + + Open function editor window + Открыть окно редактора функций + + + + Open collation editor window + Открыть окно редактора сравнений + + + + Open extension manager window + Открыть окно менеджера расширений + + + + Previous window + Предыдущее окно + + + + Next window + Следующее окно + + + + Hide status area + Скрыть область статуса + + + + Open user manual + Открыть руководство пользователя + + + + Open configuration dialog + Открыть диалог конфигурации + + + + Open Debug Console + Открыть отладочную консоль + + + + Open CSS Console + Открыть консоль CSS + + + + Open the About dialog + Открыть диалог "О программе" + + + + Quit the application + Выход из приложения + + + + Cell text value editor + Редактор текстового значения ячейки + + + + + Cut selected text + Вырезать выбранный текст + + + + + Copy selected text + Копировать выбранный текст + + + + + Delete selected text + Удалить выбранный текст + + + + + Undo + Отменить + + + + + Redo + Повторить + + + + SQL editor input field + Поле ввода редактора SQL + + + + Select whole editor contents + Выбрать всё содержимое редактора + + + + Save contents into a file + Сохранить содержимое в файл + + + + Load contents from a file + Загрузить содержимое из файла + + + + Find in text + Найти в тексте + + + + Find next + Найти далее + + + + Find previous + Найти предыдущее + + + + Replace in text + Замена в тексте + + + + Delete current line + Удалить текущую строчку + + + + Request code assistant + Вызвать автодополнение + + + + Format contents + Форматировать содержимое + + + + Move selected block of text one line down + Переместить выбранный блок текста на строчку вниз + + + + Move selected block of text one line up + Переместить выбранный блок текста на строчку вверх + + + + Copy selected block of text and paste it a line below + Скопировать блок текста и вставить его строчкой ниже + + + + Copy selected block of text and paste it a line above + Скопировать блок текста и вставить его строчкой выше + + + + Toggle comment + Комментировать/раскомментировать + + + + Increase font size + sql editor + Увеличить размер шрифта + + + + Decrease font size + sql editor + Уменьшить размер шрифта + + + + All SQLite databases + Все базы данных SQLite + + + + All files + Все файлы + + + + Select database file + Выберите файл базы данных + + + + Select + Выбрать + + + + File type + Тип файла + + + + SQL editor window + Окно редактора SQL + + + + Execute query + Выполнить запрос + + + + Execute single query under cursor + Выполнить одиночный запрос под курсором + + + + Execute all queries in editor + Выполнить все запросы в редакторе + + + + Execute "%1" query + Выполнить запрос "%1" + + + + Switch current working database to previous on the list + Переключить текущую базу данных на предыдущую в списке + + + + Switch current working database to next on the list + Переключить текущую базу данных на следующую в списке + + + + Go to next editor tab + Перейти на следующую вкладку редактора + + + + Go to previous editor tab + Перейти на предыдущую вкладку редактора + + + + Move keyboard input focus to the results view below + Переместить фокус ввода в окно результатов внизу + + + + Move keyboard input focus to the SQL editor above + Переместить фокус ввода в окно редактора SQL вверху + + + + Delete selected SQL history entries + Удалить выбранные записи из истории SQL-запросов + + + + Table window + Окно таблицы + + + + Commit the table structure + Подтвердить изменение структуры таблицы + + + + Rollback pending changes in the table structure + Откатить изменения в структуре таблицы + + + + Refresh table structure + Обновить структуру таблицы + + + + Add new column + Добавить новый столбец + + + + Edit selected column + Редактировать выбранный столбец + + + + Delete selected column + Удалить выбранный столбец + + + + Export table data + Экспортировать данные таблицы + + + + Import data to the table + Импортировать данные в таблицу + + + + Add new table constraint + Добавить новое ограничение на таблицу + + + + Edit selected table constraint + Редактировать выбранное ограничение на таблицу + + + + Delete selected table constraint + Удалить выбранное ограничение на таблицу + + + + Refresh table index list + Обновить список индексов таблицы + + + + Add new index + Добавить новый индекс + + + + Edit selected index + Редактировать выбранный индекс + + + + Delete selected index + Удалить выбранный индекс + + + + Refresh table trigger list + Обновить список триггеров таблицы + + + + + Add new trigger + Добавить новый триггер + + + + + Edit selected trigger + Редактировать выбранный триггер + + + + + Delete selected trigger + Удалить выбранный триггер + + + + + Go to next tab + Перейти к следующей вкладке + + + + + Go to previous tab + Перейти к предыдущей вкладке + + + + A view window + Окно представления + + + + Commit the view's query + Подтвердить изменение запроса в представлении + + + + Rollback pending changes in the view's query + Откатить изменение запроса в представлении + + + + Refresh view trigger list + Обновить список индексов представления + + + + Execute the view's query + Выполнить запрос в представлении + + + + A code snippets editor window + Окно редактора сниппетов + + + + + + + Commit the pending changes + Подтвердить изменения + + + + + + + Rollback the pending changes + Откатить изменения + + + + A collation editor window + Окно редактора сравнений + + + + A function editor window + Окно редактора функций + + + + A SQLite extension editor window + Окно редактора расширения SQLite + + + + QuitConfirmDialog + + + Uncommitted changes + Неподтверждённые изменения + + + + Are you sure you want to quit the application? + +Following items are pending: + Вы действительно хотите выйти из приложения? + +Следующие элементы ожидают подтверждения: + + + + SearchTextDialog + + + Find or replace + Найти и заменить + + + + Find: + Найти: + + + + Case sensitive + Учитывать регистр + + + + Search backwards + Поиск в обратном направлении + + + + Regular expression matching + Использовать регулярное выражение + + + + Replace && +find next + Заменить и найти далее + + + + Replace with: + Заменить на: + + + + Replace all + Заменить всё + + + + Find + Найти + + + + SortDialog + + + Sort by columns + Сортировка по столбцам + + + + + Column + Столбец + + + + + Order + Порядок + + + + Sort by: %1 + Сортировка по: %1 + + + + Move column up + Переместить столбец вверх + + + + Move column down + Переместить столбец вниз + + + + SqlEditor + + + Wrap words + sql editor + Перенос по словам + + + + Cut + sql editor + Вырезать + + + + Copy + sql editor + Копировать + + + + Paste + sql editor + Вставить + + + + Delete + sql editor + Удалить + + + + Select all + sql editor + Выделить всё + + + + Undo + sql editor + Отменить + + + + Redo + sql editor + Повторить + + + + Complete + sql editor + Завершить + + + + Format SQL + sql editor + Форматировать SQL + + + + Save SQL to file + sql editor + Сохранить SQL в файл + + + + Select file to save SQL + sql editor + Выбрать файл для сохранения SQL + + + + Load SQL from file + sql editor + Загрузить SQL из файла + + + + Delete line + sql editor + Удалить строчку + + + + Move block down + sql editor + Переместить блок вниз + + + + Move block up + sql editor + Переместить блок вверх + + + + Copy block down + sql editor + Копировать блок вниз + + + + Copy up down + sql editor + Копировать блок вверх + + + + Find + sql editor + Найти + + + + Find next + sql editor + Найти далее + + + + Find previous + sql editor + Найти предыдущее + + + + Replace + sql editor + Заменить + + + + Toggle comment + sql editor + Комментировать/раскомментировать + + + + Increase font size + sql editor + Увеличить размер шрифта + + + + Decrease font size + sql editor + Уменьшить размер шрифта + + + + Could not open file '%1' for writing: %2 + Невозможно открыть файл '%1' для записи: %2 + + + + Saved SQL contents to file: %1 + SQL-код сохранён в файле %1 + + + + Syntax completion can be used only when a valid database is set for the SQL editor. + Дополнение синтаксиса может быть использовано только после назначения корректной базы данных редактору SQL. + + + + Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. + Размер содержимого редактора SQL слишком велико, поэтому обнаружение ошибок и подсветка существующих объектов временно отключена. + + + + Save to file + Сохранить в файл + + + + SQL scripts (*.sql);;All files (*) + Скрипты SQL (*.sql);;Все файлы (*) + + + + Open file + Открыть файл + + + + Could not open file '%1' for reading: %2 + Невозможно открыть файл '%1' для чтения: %2 + + + + Reached the end of document. Hit the find again to restart the search. + Достигнут конец документа. Нажмите Найти снова для перезапуска поиска. + + + + SqlQueryItem + + + Committing error: + data view tooltip + Ошибка при подтверждении изменений: + + + + Column: + data view tooltip + Столбец: + + + + Data type: + data view + Тип данных: + + + + Table: + data view tooltip + Таблица: + + + + Constraints: + data view tooltip + Ограничения: + + + + SqlQueryItemDelegate + + + + + + Cannot edit this cell. Details: %1 + Невозможно редактировать данную ячейку. Подробности: %1 + + + + The row is marked for deletion. + Строка помечена для удаления. + + + + + Structure of this table has changed since last data was loaded. Reload the data to proceed. + Структура этой таблицы изменилась с момента последней загрузки данных. Перезагрузите данные для продолжения. + + + + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). + Редактирование значений большой длины непосредственно в табличном режиме не рекомендуется. Возможны проблемы с производительностью и удобством работы. Для работы с такими большими значениями рекомендуется использовать режим формы либо отдельное окно редактирования значения (доступно в контекстном меню по щелчку правой кнопкой мыши). + + + + Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. + Внешний ключ для столбца %2 имеет более чем %1 возможных значений. Это слишком много для отображения в выпадающем списке. Вам необходимо ввести значение вручную. + + + + SqlQueryModel + + + + Only one query can be executed simultaneously. + Одновременно может быть выполнен только один запрос. + + + + Cannot execute query on undefined or invalid database. + Невозможно выполнить запрос к неопознанной или некорректной базе данных. + + + + Cannot execute empty query. + Невозможно выполнить пустой запрос. + + + + Uncommitted data + Неподтверждённые данные + + + + There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. + Имеются неподтверждённые изменения данных. Вы действительно хотите продолжить? Все неподтверждённые изменения будут утеряны. + + + + Cannot commit the data for a cell that refers to the already closed database. + Невозможно подтвердить данные для ячейки, которая ссылается на уже закрытую базу данных. + + + + Could not begin transaction on the database. Details: %1 + Невозможно начать транзакцию в базе данных. Подробности: %1 + + + + An error occurred while committing the transaction: %1 + При завершении транзакции возникла ошибка: %1 + + + + An error occurred while rolling back the transaction: %1 + При отмене транзакции возникла ошибка: %1 + + + + Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. + Попытка подтверждения данных для нередактируемой ячейки (которая тем не менее была изменена и ожидает подтверждения). Это программная ошибка. Пожалуйста, отправьте о ней отчёт. + + + + An error occurred while committing the data: %1 + При подтверждении данных произошла ошибка: %1 + + + + Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. + Количество строк на странице было уменьшено до %1 из-за большого количества столбцов (%2) в окне данных. + + + + + Error while executing SQL query on database '%1': %2 + Ошибка при выполнении SQL запроса к базе данных '%1': %2 + + + + Error while loading query results: %1 + Ошибка при загрузке результатов запроса: %1 + + + + Insert multiple rows + Вставить несколько строк + + + + Number of rows to insert: + Количество вставляемых строк: + + + + Delete rows + Удалить строки + + + + You're about to delete newly inserted rows that are not committed yet. Row numbers: %1 +Such deletion will be permanent. Are you sure you want to delete them? + Вы собираетесь удалить недавно вставленные строки, которые ещё не были подтверждены. Номера строк: %1 +Такое удаление необратимо. Вы действительно хотите удалить их? + + + + SqlQueryView + + + Go to referenced row in... + Перейти к связанной строке в... + + + + Copy + Копировать + + + + Copy with headers + Копировать с именами столбцов + + + + Copy as... + Копировать как... + + + + Paste + Вставить + + + + Paste as... + Вставить как... + + + + Set NULL values + Установить значения на NULL + + + + Erase values + Стереть содержимое + + + + Commit + Подтвердить + + + + Rollback + Откатить + + + + Commit selected cells + Подтвердить выбранные ячейки + + + + Rollback selected cells + Откатить выбранные ячейки + + + + Edit current cell inline + Редактировать текущую ячейку + + + + Define columns to sort by + Определить столбцы для сортировки + + + + Remove custom sorting + Сбросить указанную сортировку + + + + Insert row + Вставить строку + + + + Insert multiple rows + Вставить несколько строк + + + + Delete selected row + Удалить выбранную строку + + + + Adjust height of rows + Подстроить высоту строк + + + + Increase font size + data view + Увеличить размер шрифта + + + + Decrease font size + data view + Уменьшить размер шрифта + + + + Invert selection + data view + Обратить выделение + + + + Edit value in editor + Править содержимое в редакторе + + + + Show value in a viewer + Показать значение в просмотрщике + + + + Generate query for selected cells + Сгенерировать запрос для выбранных ячеек + + + + No items selected to paste clipboard contents to. + Не выбраны элементы для вставки в них содержимого буфера обмена. + + + + Cannot paste data. Details: %1 + Невозможно вставить данные. Подробности: %1 + + + + Structure of at least one table used has changed since last data was loaded. Reload the data to proceed. + Структура по крайней мере одной используемой таблицы изменилась с момента последней загрузки данных. Перезагрузите данные, чтобы продолжить работу. + + + + Cannot paste to a cell. Details: %1 + Невозможно вставить в ячейку. Подробности: %1 + + + + The row is marked for deletion. + Строка помечена для удаления. + + + + Cannot paste to column %1. Details: %2 + Невозможно вставить в столбец %1. Подробности: %2 + + + + Go to referenced row in table '%1' + Перейти к связанной строке в таблице '%1' + + + + table '%1' + таблица '%1' + + + + Referenced row (%1) + Связанная строка (%1) + + + + Trim pasted text? + Обрезать вставленный текст? + + + + The pasted text contains leading or trailing white space. Trim it automatically? + В начале либо конце вставленного текста находятся непечатаемые символы. Обрезать их автоматически? + + + + Paste "NULL" as null value? + Вставить "NULL" в качестве значения NULL? + + + + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + Вставленный текст содержит строки "NULL". Вы хотите чтобы они были вставлены как значения NULL? + + + + Edit value + Править содержимое + + + + SqlTableModel + + + Error while committing new row: %1 + Ошибка при подтверждении новой строки: %1 + + + + Error while deleting row from table %1: %2 + Ошибка при удалении строки из таблицы %1: %2 + + + + SqliteExtensionEditor + + + Filter extensions + Фильтр расширений + + + + Leave empty to use default function + Оставьте пустым для использования функции по умолчанию + + + + Extension file + Файл расширения + + + + Initialization function + Инициализирующая функция + + + + Databases + Базы данных + + + + Register in all databases + Зарегистрировать во всех базах данных + + + + Register in following databases: + Зарегистрировать в следующих базах данных: + + + + Extension manager window has uncommitted modifications. + В менеджере расширений имеются неподтверждённые изменения. + + + + Extension manager + Менеджер расширений + + + + Commit all extension changes + Подтвердить все изменения расширений + + + + Rollback all extension changes + Откатить все изменения расширений + + + + Add new extension + Добавить новое расширение + + + + Remove selected extension + Удалить выбранное расширение + + + + Editing extensions manual + Руководство по редактированию расширений + + + + File with given path does not exist or is not readable. + Файл по указанному пути не существует или не читается. + + + + Unable to load extension: %1 + Невозможно загрузить расширение: %1 + + + + Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. + Некорректное имя инициализирующей функции. Имя функции может состоять только из английских букв, цифр и подчёркивания. + + + + Dynamic link libraries (*.dll);;All files (*) + Динамически подключаемые библиотеки (*.dll);;Все файлы (*) + + + + Shared objects (*.so);;All files (*) + Общие объекты (*.so);;Все файлы (*) + + + + Dynamic libraries (*.dylib);;All files (*) + Динамические библиотеки (*.dylib);;Все файлы (*) + + + + All files (*) + Все файлы (*) + + + + Open file + Открыть файл + + + + StatusField + + + Status + Статус + + + + Copy + Копировать + + + + Clear + Очистить + + + + TableConstraintsModel + + + Type + table constraints + Тип + + + + Details + table constraints + Подробности + + + + Name + table constraints + Имя + + + + TableForeignKeyPanel + + + Foreign table: + Внешняя таблица: + + + + Columns + Столбцы + + + + Local column + Локальный столбец + + + + Foreign column + Внешний столбец + + + + Reactions + Действия + + + + Deferred foreign key + Отложенный внешний ключ + + + + Named constraint + Именованное ограничение + + + + Constraint name + Имя ограничения + + + + Pick the foreign column. + Выберите внешний столбец. + + + + Pick the foreign table. + Выберите внешнюю таблицу. + + + + Select at least one foreign column. + Выберите хотя бы один внешний столбец. + + + + Enter a name of the constraint. + Введите имя ограничения. + + + + Foreign column + table constraints + Внешний столбец + + + + TablePrimaryKeyAndUniquePanel + + + Columns + Столбцы + + + + Column + Столбец + + + + Collation + Сравнение + + + + Sort + Сортировка + + + + Valid only for a single column with INTEGER data type + Применимо только к одному столбцу типа INTEGER + + + + Autoincrement + Автоинкремент + + + + Named constraint + Именованное ограничение + + + + Constraint name + Имя ограничения + + + + On conflict + При конфликте + + + + Collate + table constraints + Сравнение + + + + Sort order + table constraints + Порядок сортировки + + + + Select at least one column. + Выберите хотя бы один столбец. + + + + Enter a name of the constraint. + Введите имя ограничения. + + + + TableStructureModel + + + Name + table structure columns + Имя + + + + Data type + table structure columns + Тип данных + + + + Primary +Key + table structure columns + Первичный +ключ + + + + Foreign +Key + table structure columns + Внешний +ключ + + + + Unique + table structure columns + Уникальность + + + + Check + table structure columns + Проверка + + + + Not +NULL + table structure columns + Не +NULL + + + + Collate + table structure columns + Сравнение + + + + Generated + table structure columns + Сгенерированное + + + + Default value + table structure columns + Значение по умолчанию + + + + TableWindow + + + Structure + Структура + + + + Table name: + Имя таблицы: + + + + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + <html><head/><body><p>Добавляет/удаляет признак WITHOUT ROWID у таблицы. Такая таблица больше не будет содержать скрытый столбец &quot;rowid&quot;. Для такой таблицы обязательно наличие столбца с признаком PRIMARY KEY. Подробности можно узнать в официальной документации по SQLite.</p></body></html> + + + + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + <html><head/><body><p>Добавляет/удаляет признак STRICT у таблицы. В такой таблице строго соблюдается соответствие типа данных, хранимых в столбцах, и указанного для этих столбцов типа. Такой подход обычно применяется в большинстве других движков баз данных. Отключите этот признак для классического поведения SQLite (т.е. без строгой типизации данных). Подробности можно узнать в официальной документации по SQLite.</p></body></html> + + + + + Data + Данные + + + + Constraints + Ограничения + + + + Indexes + Индексы + + + + Triggers + Триггеры + + + + DDL + DDL + + + + Export table + table window + Экспортировать таблицу + + + + Import data to table + table window + Импортировать данные в таблицу + + + + Populate table + table window + Заполнить таблицу + + + + Refresh structure + table window + Обновить структуру + + + + Commit structure changes + table window + Подтвердить изменения структуры + + + + Rollback structure changes + table window + Откатить изменения структуры + + + + Add column + table window + Добавить столбец + + + + Edit column + table window + Редактировать столбец + + + + + Delete column + table window + Удалить столбец + + + + Move column up + table window + Переместить столбец вверх + + + + Move column down + table window + Переместить столбец вниз + + + + Create similar table + table window + Создать подобную таблицу + + + + Reset autoincrement value + table window + Сбросить счётчик автоинкремента + + + + Add table constraint + table window + Добавить ограничение на таблицу + + + + Edit table constraint + table window + Редактировать ограничение на таблицу + + + + Delete table constraint + table window + Удалить ограничение на таблицу + + + + Move table constraint up + table window + Переместить ограничение на таблицу вверх + + + + Move table constraint down + table window + Переместить ограничение на таблицу вниз + + + + Add table primary key + table window + Добавить первичный ключ таблицы + + + + Add table foreign key + table window + Добавить внешний ключ таблицы + + + + Add table unique constraint + table window + Добавить табличное ограничение на уникальность + + + + Add table check constraint + table window + Добавить проверочное ограничение на таблицу + + + + Refresh index list + table window + Обновить список индексов + + + + + Create index + table window + Создать индекс + + + + Edit index + table window + Редактировать индекс + + + + Delete index + table window + Удалить индекс + + + + Refresh trigger list + table window + Обновить список триггеров + + + + + Create trigger + table window + Создать триггер + + + + Edit trigger + table window + Редактировать триггер + + + + Delete trigger + table window + Удалить триггер + + + + Are you sure you want to delete column '%1'? + table window + Вы действительно хотите удалить столбец '%1'? + + + + Following problems will take place while modifying the table. +Would you like to proceed? + table window + При изменении таблицы возникнут нижеуказанные проблемы. +Вы хотите продолжить? + + + + Table modification + table window + Изменение таблицы + + + + Could not load data for table %1. Error details: %2 + Невозможно загрузить данные таблицы %1. Подробности ошибки: %2 + + + + Could not process the %1 table correctly. Unable to open a table window. + Не удалось корректно обработать таблицу %1. Невозможно открыть окно таблицы. + + + + Database + База данных + + + + Could not restore window %1, because no database or table was stored in session for this window. + Невозможно восстановить окно %1, так как в сессии для этого окна не была сохранена база данных или таблица. + + + + Could not restore window '%1', because no database or table was stored in session for this window. + Невозможно восстановить окно '%1', так как в сессии для этого окна не была сохранена база данных или таблица. + + + + Could not restore window '%1', because database %2 could not be resolved. + Невозможно восстановить окно '%1', так как невозможно определить базу данных %2. + + + + Could not restore window '%1', because the table %2 doesn't exist in the database %3. + Невозможно восстановить окно '%1', так как таблица %2 не существует в базе данных %3. + + + + + New table %1 + Новая таблица %1 + + + + Committed changes for table '%1' successfully. + Изменения в таблицу '%1' внесены успешно. + + + + Committed changes for table '%1' (named before '%2') successfully. + Изменения в таблицу '%1' (предыдущее название '%2') внесены успешно. + + + + Could not commit table structure. Error message: %1 + table window + Невозможно подтвердить структуру таблицы. Сообщение об ошибке: %1 + + + + Reset autoincrement + Сброс счётчика автоинкремента + + + + Are you sure you want to reset autoincrement value for table '%1'? + Вы действительно хотите сбросить счётчик автоинкремента у таблицы '%1'? + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + При попытке сброса счётчика автоинкремента у таблицы '%1' произошла ошибка: %2 + + + + Autoincrement value for table '%1' has been reset successfully. + Сброс счётчика автоинкремента у таблицы '%1' успешно выполнен. + + + + Empty name + Пустое имя + + + + A blank name for the table is allowed in SQLite, but it is not recommended. +Are you sure you want to create a table with blank name? + SQLite позволяет таблице иметь пустое имя, хотя это не рекомендуется. +Вы действительно хотите создать таблицу с пустым именем? + + + + Cannot create a table without at least one column. + Невозможно создать таблицу без хотя бы одного столбца. + + + + Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. + Невозможно создать таблицу %1, если не определён первичный ключ. Отключите %2, либо определите первичный ключ. + + + + Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. + Невозможно использовать автоинкремент первичного ключа при использовании оператора %1. Отключите либо %2, либо автоинкремент первичного ключа. + + + + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 + Следующие столбцы имеют нестрогий тип данных: %1. Либо отключите строгий режим у таблицы, либо исправьте типы данных столбцов. Допустимы следующие строгие типы данных: %2 + + + + Are you sure you want to delete table constraint '%1'? + table window + Вы действительно хотите удалить ограничение на таблицу '%1'? + + + + Delete constraint + table window + Удалить ограничение + + + + Cannot export, because no export plugin is loaded. + Невозможно произвести экспорт, т. к. не загружено ни одного модуля экспорта. + + + + Cannot import, because no import plugin is loaded. + Невозможно произвести импорт, т. к. не загружено ни одного модуля импорта. + + + + Uncommitted changes + Неподтверждённые изменения + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + Имеются неподтверждённые изменения структуры. Невозможно просматривать или редактировать данные, пока структура таблицы не подтверждена. +Подтвердить структуру таблицы или вернуться на вкладку структуры? + + + + Go back to structure tab + Вернуться на вкладку структуры + + + + Commit modifications and browse data. + Подтвердить изменения и перейти к данным. + + + + Name + table window indexes + Имя + + + + Unique + table window indexes + Уникальность + + + + Columns + table window indexes + Столбцы + + + + Partial index condition + table window indexes + Условие для частичного индекса + + + + Name + table window triggers + Имя + + + + Event + table window triggers + Событие + + + + Condition + table window triggers + Условие + + + + Details + table window triggers + Подробности + + + + Table window "%1" has uncommitted structure modifications and data. + В окне таблицы "%1" имеются неподтверждённые изменения структуры и данных. + + + + Table window "%1" has uncommitted data. + В окне таблицы "%1" имеются неподтверждённые изменения данных. + + + + Table window "%1" has uncommitted structure modifications. + В окне таблицы "%1" имеются неподтверждённые изменения структуры. + + + + TriggerColumnsDialog + + + Trigger columns + Столбцы триггера + + + + Triggering columns: + Столбцы, вызывающие триггер: + + + + Select all + Выделить всё + + + + Deselect all + Снять выделение + + + + TriggerDialog + + + + Trigger + Триггер + + + + On table: + Для таблицы: + + + + Action: + Действие: + + + + + <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> + <p>SQL-условие для проверки перед запуском кода триггера. Если условие не выполнено, для текущей строки триггер вызван не будет.</p> + + + + Pre-condition: + Предварительное условие: + + + + The scope is still not fully supported by the SQLite database. + База данных SQLite пока не полностью поддерживает область действия. + + + + Trigger name: + Имя триггера: + + + + When: + Когда: + + + + List of columns for UPDATE OF action. + Список столбцов для действия UPDATE OF. + + + + Scope: + Область действия: + + + + Code: + Код: + + + + Trigger statements to be executed. + Выполняемые конструкции триггера. + + + + DDL + DDL + + + + On view: + Для представления: + + + + Could not process trigger %1 correctly. Unable to open a trigger dialog. + Не удалось корректно обработать триггер %1. Невозможно открыть окно триггера. + + + + Enter a valid condition. + Введите корректное условие. + + + + Enter a valid trigger code. + Введите корректный код триггера. + + + + Error + trigger dialog + Ошибка + + + + An error occurred while executing SQL statements: +%1 + При выполнении конструкций SQL произошла ошибка: +%1 + + + + VersionConvertSummaryDialog + + + Database version convert + Конвертация версии базы данных + + + + Following changes to the SQL statements will be made: + В конструкции SQL будут внесены следующие изменения: + + + + Before + До + + + + After + После + + + + ViewWindow + + + Query + Запрос + + + + View name: + Имя представления: + + + + Output column names + Отображаемые имена столбцов + + + + + Data + Данные + + + + Triggers + Триггеры + + + + DDL + DDL + + + + + Could not restore window '%1', because no database or view was stored in session for this window. + Невозможно восстановить окно '%1', так как в сессии для этого окна не была сохранена база данных или представление. + + + + Could not restore window '%1', because database %2 could not be resolved. + Невозможно восстановить окно '%1', так как невозможно определить базу данных %2. + + + + Could not restore window '%1', because database %2 could not be open. + Невозможно восстановить окно '%1', так как невозможно открыть базу данных %2. + + + + Could not restore window '%1', because the view %2 doesn't exist in the database %3. + Невозможно восстановить окно '%1', так как представление %2 не существует в базе данных %3. + + + + + New view %1 + Новое представление %1 + + + + Database + База данных + + + + Refresh the view + view window + Обновить представление + + + + Commit the view changes + view window + Подтвердить изменения представления + + + + Rollback the view changes + view window + Откатить изменения представления + + + + Explicit column names + Явные имена столбцов + + + + Generate output column names automatically basing on result columns of the view. + Сгенерировать отображаемые имена столбцов на основе результирующих столбцов представления. + + + + Add column + view window + Добавить столбец + + + + Edit column + view window + Редактировать столбец + + + + Delete column + view window + Удалить столбец + + + + Move column up + view window + Переместить столбец вверх + + + + Move column down + view window + Переместить столбец вниз + + + + Refresh trigger list + view window + Обновить список триггеров + + + + Create new trigger + view window + Создать новый триггер + + + + Edit selected trigger + view window + Редактировать выбранный триггер + + + + Delete selected trigger + view window + Удалить выбранный триггер + + + + View window "%1" has uncommitted structure modifications and data. + В окне представления "%1" имеются неподтверждённые изменения структуры и данных. + + + + View window "%1" has uncommitted data. + В окне представления "%1" имеются неподтверждённые изменения данных. + + + + View window "%1" has uncommitted structure modifications. + В окне представления "%1" имеются неподтверждённые изменения структуры. + + + + Could not load data for view %1. Error details: %2 + Невозможно загрузить данные представления %1. Подробности ошибки: %2 + + + + Uncommitted changes + Неподтверждённые изменения + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + Имеются неподтверждённые изменения структуры. Невозможно просматривать или редактировать данные, пока структура представления не подтверждена. +Подтвердить структуру представления или вернуться на вкладку структуры? + + + + Go back to structure tab + Вернуться на вкладку структуры + + + + Commit modifications and browse data. + Подтвердить изменения и перейти к данным. + + + + View '%1' was committed successfully. + Представление '%1' успешно подтверждено. + + + + Committed changes for view '%1' successfully. + Изменения в представление '%1' внесены успешно. + + + + Committed changes for view '%1' (named before '%2') successfully. + Изменения в таблицу '%1' (предыдущее название '%2') внесены успешно. + + + + Could not commit view changes. Error message: %1 + view window + Невозможно подтвердить изменения представления. Сообщение об ошибке: %1 + + + + Override columns + Перезапись столбцов + + + + Currently defined columns will be overriden. Do you want to continue? + Заданные столбцы будут перезаписаны. Вы хотите продолжить? + + + + Could not determinate columns returned from the view. The query is problably incomplete or contains errors. + Невозможно определить столбцы, возвращаемые представлением. Вероятно запрос неполон или содержит ошибки. + + + + Name + view window triggers + Имя + + + + Instead of + view window triggers + Вместо + + + + Condition + view window triggers + Условие + + + + Details + table window triggers + Подробности + + + + Could not process the %1 view correctly. Unable to open a view window. + Не удалось корректно обработать представление %1. Невозможно открыть окно представления. + + + + Empty name + Пустое имя + + + + A blank name for the view is allowed in SQLite, but it is not recommended. +Are you sure you want to create a view with blank name? + SQLite позволяет представлению иметь пустое имя, хотя это не рекомендуется. +Вы действительно хотите создать представление с пустым именем? + + + + The SELECT statement could not be parsed. Please correct the query and retry. +Details: %1 + Невозможно проанализировать структуру конструкции SELECT. Пожалуйста, исправьте запрос и повторите попытку. +Подробности: %1 + + + + The view could not be modified due to internal SQLiteStudio error. Please report this! + Невозможно изменить представление из-за внутренней ошибки SQLiteStudio. Пожалуйста, сообщите о ней! + + + + The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. + Невозможно корректно проанализировать структуру представления для выполнения. Это ошибка SQLiteStudio. Пожалуйста, сообщите о ней. + + + + Following problems will take place while modifying the view. +Would you like to proceed? + view window + При изменении представления возникнут нижеуказанные проблемы. +Вы хотите продолжить? + + + + View modification + view window + Изменение представления + + + + WidgetCover + + + Interrupt + Прервать + + + diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_sk.qm b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_sk.qm deleted file mode 100644 index c3c6d5f..0000000 Binary files a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_sk.qm and /dev/null differ diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_sk.ts b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_sk.ts deleted file mode 100644 index aeb372d..0000000 --- a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_sk.ts +++ /dev/null @@ -1,7262 +0,0 @@ - - - - - AboutDialog - - - About SQLiteStudio and licenses - O programe SQLiteStudio a licenciách - - - - About - O programe - - - <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="http://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">http://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="http://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">http://salsoft.com.pl</span></a>)<br/></p></body></html> - <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Slobodný, open-source, multi-platformový SQLite databázový manažér.<br/><a href="http://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">http://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Autor a aktívny správca:<br/>SalSoft (<a href="http://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">http://salsoft.com.pl</span></a>)<br/></p></body></html> - - - - Licenses - Licencie - - - - Environment - Prostredie - - - - Icon directories - Adresáre s ikonami - - - - Form directories - Adresáre so štýlmi - - - - Plugin directories - Adresáre s pluginmi - - - - Application directory - Adresár aplikácie - - - - SQLite 3 version: - Verzia SQLite3: - - - - Configuration directory - Adresár s konfiguráciou - - - - <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> - - - - - Qt version: - Verzia Qt: - - - - Portable distribution. - Prenosná distribúcia. - - - - MacOS X application boundle distribution. - MacOS X aplikačná distribúcia. - - - - Operating system managed distribution. - Distribúcia spravovaná operačným systémom. - - - - Copy - Kopírovať - - - - <h3>Table of contents:</h3><ol>%2</ol> - <h3>Tabuľka obsahu:</h3><ol>%2</ol> - - - - BindParamsDialog - - - Query parameters - - - - - Please provide values for query parameters - - - - - BugDialog - - Bugs and ideas - Chyby a nápady - - - Reporter - Reportér - - - E-mail address - emailová adresa - - - Log in - Prihlásenie - - - Short description - Krátky popis - - - Detailed description - Detailný popis - - - Show more details - Zobraziť viacej detailov - - - SQLiteStudio version - Verzia SQLiteStudio - - - Operating system - Operačný systém - - - Loaded plugins - Načítané pluginy - - - Send - Odoslať - - - You can see all your reported bugs and ideas by selecting menu '%1' and then '%2'. - Všetky svoje nahlásené chyby a nápady môžte vidieť výberom '%1' a následne '%2'. - - - A bug report sent successfully. - Správa o chybe bola úspešne odoslaná. - - - An error occurred while sending a bug report: %1 -%2 - Vyskytol sa problém pri posielaní správy o chybe: %1 -%2 - - - You can retry sending. The contents will be restored when you open a report dialog after an error like this. - Môžte zopakovať odoslanie. Keď otvoríte nahlasovacie okno po takejto chybe, obsah bude obnovený. - - - An idea proposal sent successfully. - Nahlásenie prebehlo úspešne. - - - An error occurred while sending an idea proposal: %1 -%2 - Vyskytla sa chyba pri odoslieaní: %1 -%2 - - - A bug report - Nahlásenie chyby - - - Describe problem in few words - Popíšte problém niekoľkými slovami - - - Describe problem and how to reproduce it - Popíšte problém a spôsob ako ho reprodukovať - - - A new feature idea - Nová funkcia - - - A title for your idea - Titulok novej funkcie - - - Describe your idea in more details - Detailnejšie popíšte svoj návrh na funkciu - - - Reporting as an unregistered user, using e-mail address. - Nahlásenie ako neregistrovaný používateľ pomocou emailovej adresy. - - - Reporting as a registered user. - Nahlásenie ako registrovaný používateľ. - - - Log out - Odhlásiť sa - - - Providing true email address will make it possible to contact you regarding your report. To learn more, press 'help' button on the right side. - Zadaním reálnej emailovej adresy umožníte kontaktovať vás ohľadom vášho nahlásenia. Pre zistenie bližších detailov, kliknite na tlačitko 'i' na pravej strane okna. - - - Enter vaild e-mail address, or log in. - Zadajte platný email alebo sa prihláste. - - - Short description requires at least 10 characters, but not more than 100. Longer description can be entered in the field below. - Krátky popis by mal obsahovať minimálne 10 znakov ale nie viacej ako 100. Dlhší popis môžte zadať v poli nižšie. - - - Long description requires at least 30 characters. - Dlhší popis by mal obsahovať minimálne 30 znakov. - - - - BugReportHistoryWindow - - Title - Titulok - - - Reported at - Nahlásené - - - URL - URL - - - Reports history - História hlásení - - - Clear reports history - Vymazať históriu hlásení - - - Delete selected entry - Vymazať vybranú položku - - - Invalid response from server. - Neplatná odpoveď zo servera. - - - - BugReportLoginDialog - - Log in - Prihlásenie - - - Credentials - Prihlasovacie údaje - - - Login: - Meno: - - - Password: - Heslo: - - - Validation - Overenie - - - Validate - Overiť - - - Validation result message - Výsledok overenia - - - Abort - Zrušiť - - - A login must be at least 2 characters long. - meno musí mať dĺžku minimálne 2 znaky. - - - A password must be at least 5 characters long. - Heslo musí mať dĺžku minimálne 5 znakov. - - - Valid - Úspešné overenie - - - - CollationsEditor - - - Filter collations - Filtrovať porovnávania - - - - Collation name: - Názov porovnánavania: - - - - Implementation language: - Implementačný jazyk: - - - - Databases - Databázy - - - - Register in all databases - Registrovať vo všetkých databázach - - - - Register in following databases: - Registrovať v nasledujúcich databázach: - - - - Implementation code: - Implementačný kód: - - - - Collations editor - Editor porovnávaní - - - - Commit all collation changes - Potvrdiť všetky zmeny v porovnávaní - - - - Rollback all collation changes - Vrátiť späť všetky zmeny v porovnávaní - - - - Create new collation - Vytvoriť nové porovnávanie - - - - Delete selected collation - Vymazať vybrané porovnávanie - - - - Editing collations manual - Manuál úpravy porovnávaní - - - - Enter a non-empty, unique name of the collation. - Zadajte jedinečný názov porovnávania. - - - - Pick the implementation language. - Vyberte implementačný jazyk. - - - - Enter a non-empty implementation code. - Zadajte implementačný kód. - - - - Collations editor window has uncommitted modifications. - - - - Collations editor window has uncommited modifications. - Okno editora porovnávaní obsahuje nepotvrdené zmeny. - - - - ColorButton - - - Pick a color - Vyberte farbu - - - - ColumnCollatePanel - - - Collation name: - Názov porovnánavania: - - - - Named constraint: - Pomenovanie obmedzenia: - - - - Enter a name of the constraint. - Zadajte názov obmedzenia. - - - - Enter a collation name. - Zadajte názov porovnávania. - - - - ColumnDefaultPanel - - - Default value: - Prednastavená hodnota: - - - - Named constraint: - Pomenovanie obmedzenia: - - - - Enter a default value expression. - - - - - Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. - - - - - Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. - - - - - Enter a name of the constraint. - Zadajte názov obmedzenia. - - - - ColumnDialog - - - Column - Stĺpec - - - - Name and type - Názov a typ - - - - Scale - Rozsah - - - - Precision - Presnosť - - - - Data type: - Datový typ: - - - - Column name: - Názov stĺpca: - - - - Size: - Veľkosť: - - - - Constraints - Obmedzenia - - - - Unique - Jedinečný - - - - - - - - - - Configure - Konfigurovať - - - - Foreign Key - Cudzí klúč - - - - Collate - Porovnanie - - - - Not NULL - Nie NULL - - - - Check condition - - - - - Primary Key - Primárny klúč - - - - Default - Prednastavená hodnota - - - - Advanced mode - Rozšírený mód - - - - Add constraint - column dialog - Pridať obmedzenie - - - - Edit constraint - column dialog - Upraviť obmedzenie - - - - - Delete constraint - column dialog - Vymazať obmedzenie - - - - Move constraint up - column dialog - Posunúť obmedzenie hore - - - - Move constraint down - column dialog - Posunúť obmedzenie dole - - - - Add a primary key - column dialog - Pridať primárny kľúč - - - - Add a foreign key - column dialog - Pridať cudzí kľúč - - - - Add an unique constraint - column dialog - Pridať jedinečné obmedzenie - - - - Add a check constraint - column dialog - - - - - Add a not null constraint - column dialog - - - - - Add a collate constraint - column dialog - - - - - Add a default constraint - column dialog - - - - - Are you sure you want to delete constraint '%1'? - column dialog - Ste si istý, že chcete vymazať obmedzenie '%1'? - - - - Correct the constraint's configuration. - - - - - This constraint is not officially supported by SQLite 2, -but it's okay to use it. - - - - - Scale is not allowed for INTEGER PRIMARY KEY columns. - - - - - Precision cannot be defined without the scale. - - - - - Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. - - - - - INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. - - - - - Precision is not allowed for INTEGER PRIMARY KEY columns. - - - - - ColumnDialogConstraintsModel - - - Type - column dialog constraints - Typ - - - - Name - column dialog constraints - Názov - - - - Details - column dialog constraints - Detaily - - - - ColumnForeignKeyPanel - - - Foreign table: - Cudzia tabuľka: - - - - Foreign column: - Cudzí stĺpec: - - - - Reactions - Reakcie - - - - Deferred foreign key - - - - - Named constraint - Pomenovanie obmedzenia - - - - Constraint name - Názov obmedzenia - - - - Pick the foreign table. - Vyberte cudziu tabuľku. - - - - Pick the foreign column. - Vyberte cudzí stĺpec. - - - - Enter a name of the constraint. - Zadajte názov obmedzenia. - - - - ColumnPrimaryKeyPanel - - - Autoincrement - Autoikrement - - - - Sort order: - Zoradiť: - - - - Named constraint: - Pomenovanie obmedzenia: - - - - On conflict: - Pri konflikte: - - - - Enter a name of the constraint. - Zadajte názov obmedzenia. - - - Autoincrement (only for %1 type columns) - column primary key - Autoinkrement (iba pre stĺpec typu %1) - - - - ColumnUniqueAndNotNullPanel - - - Named constraint: - Pomenovanie obmedzenia: - - - - On conflict: - Pri konflikte: - - - - Enter a name of the constraint. - Zadajte názov obmedzenia. - - - - CompleterWindow - - - Column: %1 - completer statusbar - Stĺpec: %1 - - - - Table: %1 - completer statusbar - Tabuľka: %1 - - - - Index: %1 - completer statusbar - Index: %1 - - - - Trigger: %1 - completer statusbar - Spúšťač: %1 - - - - View: %1 - completer statusbar - Pohľad: %1 - - - - Database: %1 - completer statusbar - Databáza: %1 - - - - Keyword: %1 - completer statusbar - Kľúčové slovo: %1 - - - - Function: %1 - completer statusbar - Funkcia: %1 - - - - Operator: %1 - completer statusbar - Operátor: %1 - - - - String - completer statusbar - Reťazec - - - - Number - completer statusbar - Číslo - - - - Binary data - completer statusbar - Binárne dáta - - - - Collation: %1 - completer statusbar - Porovnávanie: %1 - - - - Pragma function: %1 - completer statusbar - Pragma funkcia : %1 - - - - ConfigDialog - - - - Configuration - Konfigurácia - - - - Search - Hľadať - - - - General - Všeobecné - - - - Keyboard shortcuts - Klávesové skratky - - - - Look & feel - Vzhľad - - - - Style - Štýl - - - - Fonts - Fonty - - - - Colors - Farby - - - - Plugins - Pluginy - - - - Code formatters - Formát kódu - - - - Data browsing - Prezeranie dát - - - - Data editors - Editory dát - - - - Database dialog window - Databázové dialógové okno - - - - <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> - <p>Označením tejto možnosti sa vypne voľba "Zapamätať si databázu" v okne pridávania novej databázy</p> - - - - Do not mark database to be "permanent" by default - Nepamätať si databázu - - - - <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> - - - - - Try to bypass dialog completly when dropping database file onto the list - - - - - Data browsing and editing - Prezeranie a úprava dát - - - - Number of data rows per page: - Počet data riadkov na stranu: - - - - - <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> - - - - - Limit initial data column width to (in pixels): - - - - - Keep NULL value when entering empty value - - - - - <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> - - - - - - <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> - - - - - Number of memorized table populating configurations - - - - - Show column and row details tooltip in data view - - - - - <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> - - - - - <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> - - - - - Use DEFAULT value (if defined), when committing NULL value - - - - - Inserting new row in data grid - - - - - Before currently selected row - - - - - After currently selected row - - - - - At the end of data view - - - - - <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> - - - - - <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> - - - - - Place data tab as first tab in a Table Window - - - - - <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> - - - - - <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> - - - - - Place data tab as first tab in a View Window - - - - - Data types - Datové typy - - - - Available editors: - Dostupné editory: - - - - Editors selected for this data type: - - - - - Schema editing - Úprava schémy - - - - Number of DDL changes kept in history. - Počet DDL zmien uchovávaných v histórii. - - - - DDL history size: - Veľkosť DDL histórie: - - - Don't show DDL preview dialog when commiting schema changes - Nezobrazovať náhľad DDL pri potvrdzovaní zmien v schéme - - - - SQL queries - SQL dotazy - - - - - Number of queries kept in the history. - Počet dotazov uchovávaných v histórii. - - - - History size: - Veľkosť SQL histórie: - - - - <p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute.</p> - <p>Ak je v SQL editore viacej ako jeden dotaz, potom(ak je táto voľba zapnutá) bude vykonaný iba jeden dotaz - ten, na ktorom je kurzor. Ináč budú vykonané všetky dotazy. Vždy si viete vybrať ktoré dotazy budú vykonané a to ich výberom\označením.</p> - - - - Execute only the query under the cursor - Vykonať len dotaz, na ktorom stojí kurzor - - - - Updates - Aktualizácie - - - - Automatically check for updates at startup - Kontrolovať aktualizácie pri štarte - - - - Session - Sedenie - - - - Restore last session (active MDI windows) after startup - Obnoviť posledné sedenie (aktívne okná) pri štarte - - - - Status Field - - - - - <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> - - - - - Always open Status panel when new message is printed - - - - - Filter shortcuts by name or key combination - Filtrovať podľa názvu alebo klávesovej skratky - - - - Action - Akcia - - - - Key combination - Klávesová skratka - - - - - Language - Jazyk - - - - Changing language requires application restart to take effect. - Je potrebné reštartovať aplikáciu aby sa zmena jazyka prejavila. - - - - Compact layout - - - - - <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> - - - - - Use compact layout - - - - - - Database list - Zoznam databáz - - - - If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. - - - - - Sort table columns alphabetically - Zoradiť stĺpce tabuľky abecedne - - - - Expand tables node when connected to a database - Rozbaliť zoznam tabuliek po pripojení k databáze - - - - <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> - - - - - Display additional labels on the list - Zobraziť doplnkové popisky v zozname - - - - For regular tables labels will show number of columns, indexes and triggers for each of tables. - - - - - Display labels for regular tables - Zobraziť popisky pre regulárne tabuľky - - - - Virtual tables will be marked with a 'virtual' label. - - - - - Display labels for virtual tables - Zobraziť popisky pre virtuálne tabuľky - - - - Expand views node when connected to a database - Rozbaliť zoznam pohľadov po pripojení k databáze - - - - If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) - - - - - Sort objects (tables, indexes, triggers and views) alphabetically - Zoradiť objekty (tabuľky, indexy, spúšťače a pohľady) abecedne - - - - Display system tables and indexes on the list - Zobraziť systémové tabuľky a indexy v zozname - - - - Table windows - Okná tabuľky - - - When enabled, Table Windows will show up with the data tab, instead of the structure tab. - Ak je táto možnosť zaškrtnutá, tak sa v okne zobrazia dáta a nie štruktúra tabuľky. - - - - Open Table Windows with the data tab for start - Zobraziť dáta po otvorení tabuľky - - - - View windows - Okná pohľadov - - - When enabled, View Windows will show up with the data tab, instead of the structure tab. - Ak je táto možnosť zaškrtnutá, tak sa v okne zobrazia dáta a nie SQL dotaz. - - - - Open View Windows with the data tab for start - Zobraziť dáta po otvorení pohľadu - - - - Don't show DDL preview dialog when committing schema changes - - - - - - <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> - - - - - Number of memorized query parameters - - - - - Main window dock areas - - - - - Left and right areas occupy corners - - - - - Top and bottom areas occupy corners - - - - - Hide built-in plugins - Nezobrazovať interné pluginy - - - - Current style: - Aktuálny štýl: - - - - Preview - Náhľad - - - - Enabled - Zapnutý - - - - Disabled - Vypnutý - - - - Active formatter plugin - Aktívny formátovací plugin - - - - SQL editor font - Písmo SQL editora - - - - Database list font - Font zoznamu databáz - - - - Database list additional label font - Font doplnkového popisku - - - - Data view font - Font dát - - - - Status field font - Font status okna - - - - SQL editor colors - Farby SQL editora - - - - Current line background - - - - - <p>SQL strings are enclosed with single quote characters.</p> - - - - - String foreground - - - - - <p>Bind parameters are placeholders for values yet to be provided by the user. They have one of the forms:</p><ul><li>:param_name</li><li>$param_name</li><li>@param_name</li><li>?</li></ul> - - - - - Bind parameter foreground - - - - - Highlighted parenthesis background - - - - - <p>BLOB values are binary values represented as hexadecimal numbers, like:</p><ul><li>X'12B4'</li><li>x'46A2F4'</li></ul> - - - - - BLOB value foreground - Farba BLOB hodnoty - - - - Regular foreground - - - - - Line numbers area background - - - - - Keyword foreground - - - - - Number foreground - - - - - Comment foreground - - - - - <p>Valid objects are name of tables, indexes, triggers, or views that exist in the SQLite database.</p> - - - - - Valid objects foreground - - - - - Data view colors - Farby dát - - - - <p>Any data changes will be outlined with this color, until they're committed to the database.</p> - - - - - Uncommitted data outline color - - - - - <p>In case of error while committing data changes, the problematic cell will be outlined with this color.</p> - - - - <p>Any data changes will be outlined with this color, until they're commited to the database.</p> - <p>Všetky zmeny dát budú ohraničené touto farbou, dokiaľ nebudú potvrdené.</p> - - - Uncommited data outline color - Farba rámčeka nepotvrdených dát - - - <p>In case of error while commiting data changes, the problematic cell will be outlined with this color.</p> - <p>V prípade chyby pri potvrdzovaní zmien dát, budú problematické bunky ohraničené touto farbou.</p> - - - - Commit error outline color - Farba rámčeka s chybou potvrdenia dát - - - - NULL value foreground - Farba NULL hodnoty - - - - Deleted row background - Pozadie vymazaného riadka - - - - Database list colors - Farby zoznamu databáz - - - - <p>Additional labels are those which tell you SQLite version, number of objects deeper in the tree, etc.</p> - - - - - Additional labels foreground - Farba doplnkového popisku - - - - Status field colors - Farby status okna - - - - Information message foreground - Farba informačnej správy - - - - Warning message foreground - Farba upozornenia - - - - Error message foreground - Farba chybovej správy - - - - Description: - plugin details - Popis: - - - - Category: - plugin details - Kategória: - - - - Version: - plugin details - Verzia: - - - - Author: - plugin details - Autor: - - - - Internal name: - plugin details - Interný názov: - - - - Dependencies: - plugin details - Závislosti: - - - - Conflicts: - plugin details - Konflikty: - - - - Plugin details - Detaily pluginu - - - - Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. - Pluginy sú načítané/uvoľnené okamžite pri zaškrtnutí/odškrtnutí ale midifikovaný zoznam pluginov načítaných pri štarte nieje uložený až kým nepotvrdíte celý konfiguračný dialóg. - - - - %1 (built-in) - plugins manager in configuration dialog - %1 (interný) - - - - Details - Detaily - - - - No plugins in this category. - - - - - Add new data type - Pridať nový datový typ - - - - Rename selected data type - Premenovať vybraný datový typ - - - - Delete selected data type - Vymazať vybraný datový typ - - - - Help for configuring data type editors - - - - - ConstraintCheckPanel - - - The condition - Podmienka - - - - Named constraint: - Pomenovanie obmedzenia: - - - - On conflict - Pri konflikte - - - - Enter a valid condition. - Zadajte platnú podmienku. - - - - Enter a name of the constraint. - Zadajte názov obmedzenia. - - - - ConstraintDialog - - - New constraint - constraint dialog - Nové obmedzenie - - - - Create - constraint dialog - Vytvoriť - - - - Edit constraint - dialog window - Upraviť obmedzenie - - - - Apply - constraint dialog - Aplikovať - - - - Primary key - table constraints - Primárny klúč - - - - Foreign key - table constraints - Cudzí klúč - - - - Unique - table constraints - Jedinečnosť - - - - Not NULL - table constraints - Nie NULL - - - - Check - table constraints - - - - - Collate - table constraints - Porovnanie - - - - Default - table constraints - Prednastavená hodnota - - - - ConstraintTabModel - - - Table - table constraints - Tabuľka - - - - Column (%1) - table constraints - Stĺpec (%1) - - - - Scope - table constraints - - - - - Type - table constraints - Typ - - - - Details - table constraints - Detaily - - - - Name - table constraints - Názov - - - - CssDebugDialog - - - SQLiteStudio CSS console - - - - - DataView - - - Filter data - data view - Filtrovať - - - - Grid view - Tabuľkové zobrazenie - - - - Form view - Formulárové zobrazenie - - - - Refresh table data - data view - Obnoviť dáta v tabuľke - - - - First page - data view - Prvá strana - - - - Previous page - data view - Predchádzajúca strana - - - - Next page - data view - Nasledujúca strana - - - - Last page - data view - Posledná strana - - - - Filter - - - - - Hit Enter key or press "Apply filter" button on toolbar to apply new value. - - - - - Show filter inputs per column - data view - - - - - Apply filter - data view - Aplikovať filter - - - - Commit changes for selected cells - data view - Potvrdiť zmeny pre vybrané bunky - - - - Rollback changes for selected cells - data view - Vrátiť späť zmeny pre vybrané bunky - - - - Show grid view of results - sql editor - Výsledky zobraziť v tabuľke - - - - Show form view of results - sql editor - Výsledky zobraziť vo formulári - - - - Filter by text - data view - Filtrovať pomocou textu - - - - Filter by the Regular Expression - data view - Filtrovať pomocou regulárneho výrazu - - - - Filter by SQL expression - data view - Filtrovať pomocou SQL výrazu - - - - Tabs on top - data view - Záložky hore - - - - Tabs at bottom - data view - Záložky dole - - - - Place new rows above selected row - data view - - - - - Place new rows below selected row - data view - - - - - Place new rows at the end of the data view - data view - - - - - Total number of rows is being counted. -Browsing other pages will be possible after the row counting is done. - Spočítava sa celkový počet riadkov. -Prezeranie ďalších strán bude možné až po dokončení spočítavania. - - - - Row: %1 - Riadok:%1 - - - - DbConverterDialog - - - Convert database - Konvertovať databázu - - - - Source database - Zdrojová databáza - - - - Source database version: - Verzia zdrojovej databázy: - - - - Target database - Cieľová databáza - - - - Target version: - Cieľová databáza: - - - - This is the file that will be created as a result of the conversion. - - - - - Target file: - Cieľový súbor: - - - - Name of the new database: - Názov novej databázy: - - - - This is the name that the converted database will be added to SQLiteStudio with. - - - - - Select source database - - - - - Enter valid and writable file path. - - - - - Entered file exists and will be overwritten. - - - - - Enter a not empty, unique name (as in the list of databases on the left). - Zadajte jedinečný názov. - - - - No valid target dialect available. Conversion not possible. - - - - - Select valid target dialect. - - - - - Database %1 has been successfully converted and now is available under new name: %2 - - - - - SQL statements conversion - - - - - Following error occurred while converting SQL statements to the target SQLite version: - - - - - Would you like to ignore those errors and proceed? - - - - - DbDialog - - - Database - Databáza - - - - Database type - Typ databázy - - - - Database driver - Databázový ovládač - - - Generate automatically - Generovať automaticky - - - - Options - Voľby - - - - Permanent (keep it in configuration) - Zapamätať si databázu - - - - Test connection - Test spojenia - - - Name - Názov - - - Type - Typ - - - Browse for database file on local computer - Hľadať databázový súbor na lokálnom počítači - - - - Create new database file - Vytvoriť nový databázový súbor - - - - - File - Súbor - - - - Name (on the list) - Názov (v zozname) - - - Generate name basing on file path - Generovať názov na základe cesty k súboru - - - Permanent - Uložiť natrvalo - - - - <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> - aasfd - <p>Databáza sa uloží do konfiguračného súboru a bude obnovená pri každom spustení SQLiteStudia.</p> - - - Test database connection - Otestovať spojenie s databázou - - - - Browse for existing database file on local computer - Hľadať databázový súbor na lokálnom počítači - - - - Browse - Prehľadávať - - - - Enter an unique database name. - Zadajte názov databázy. - - - - This name is already in use. Please enter unique name. - Tento názov už existuje. Prosím zadajte iný názov. - - - - <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> - - - - - Enter a database file path. - Zadajte cestu k databázovému súboru. - - - - This database is already on the list under name: %1 - Táto databáza už je v zozname pod názvom: %1 - - - - Select a database type. - Vyberte typ databázy. - - - Auto-generated - Automaticky vygenerovaný - - - The name will be auto-generated - Názov bude vygenerovaný automaticky - - - Type the name - Zadajte meno - - - - DbObjectDialogs - - - Delete table - Vymazať tabuľku - - - - Are you sure you want to delete table %1? - Ste si istý, že chcete vymazať tabuľku %1? - - - - Delete index - Vymazať index - - - - Are you sure you want to delete index %1? - Ste si istý, že chcete vymazať index %1? - - - - Delete trigger - Vymazať spúšťač - - - - Are you sure you want to delete trigger %1? - Ste si istý, že chcete vymazať spúšťač %1? - - - - Delete view - Vymazať pohľad - - - - Are you sure you want to delete view %1? - Ste si istý, že chcete vymazať pohľad %1? - - - - - - Error while dropping %1: %2 - Vyskystla sa chyba počas mazania %1: %2 - - - - Delete objects - Odstránenie objektov - - - - Are you sure you want to delete following objects: -%1 - - - - - Cannot start transaction. Details: %1 - - - - - Cannot commit transaction. Details: %1 - - - - - DbTree - - - Databases - Databázy - - - - Filter by name - Filtrovať podľa názvu - - - - Copy - Kopírovať - - - - Paste - Vložiť - - - - Select all - Vybrať všetko - - - - Create a group - Vytvoriť skupinu - - - - Delete the group - Vymazať skupinu - - - - Rename the group - Premenovať skupinu - - - Add a database - Pridať databázu - - - Edit the database - Upraviť databázu - - - Remove the database - Odstrániť databázu - - - Connect to the database - Pripojiť sa k databáze - - - Disconnect from the database - Odpojiť sa od databázy - - - - Import - Importovať - - - Export the database - Exportovať databázu - - - Convert database type - Konvertovať databázu - - - Vacuum - Vacuum - - - Integrity check - Kontrola integrity - - - Create a table - Vytvoriť tabuľku - - - Edit the table - Upraviť tabuľku - - - Delete the table - Vymazať tabuľku - - - - Export the table - Exportovať tabuľku - - - - Import into the table - Importovať do tabuľky - - - - Populate table - Naplniť tabuľku - - - - Create similar table - Vytvoriť rovnakú tabuľku - - - - Reset autoincrement sequence - Resetovať sekvenciu autoinkrementu - - - Create an index - Vytvoriť index - - - Edit the index - Upraviť index - - - Delete the index - Vymazať index - - - Create a trigger - Vytvoriť spúšťač - - - Edit the trigger - Upraviť spúšťač - - - Delete the trigger - Vymazať spúšťač - - - Create a view - Vytvoriť pohľad - - - Edit the view - Upraviť pohľad - - - Delete the view - Vymazať pohľad - - - - Add a column - Pridať stĺpec - - - - Edit the column - Upraviť stĺpec - - - - Delete the column - Vymazať stĺpec - - - - Delete selected items - Vymazať vybrané položky - - - - Clear filter - Zrušiť filter - - - Refresh all database schemas - Obnoviť všetky databázové schémy - - - Refresh selected database schema - Obnoviť vybranú databázovú schému - - - - Execution from file cancelled. Any queries executed so far have been rolled back. - - - - - &Add a database - - - - - &Edit the database - - - - - &Remove the database - - - - - &Connect to the database - - - - - &Disconnect from the database - - - - - &Export the database - - - - - Con&vert database type - - - - - Vac&uum - - - - - &Integrity check - - - - - Create a &table - - - - - Edit the t&able - - - - - Delete the ta&ble - - - - - Create an &index - - - - - Edit the i&ndex - - - - - Delete the in&dex - - - - - Create a trig&ger - - - - - Edit the trigg&er - - - - - Delete the trigge&r - - - - - Create a &view - - - - - Edit the v&iew - - - - - Delete the vi&ew - - - - - &Refresh all database schemas - - - - - Re&fresh selected database schema - - - - - - Erase table data - Vymazať dáta z tabuľky - - - - Open file's directory - - - - - Execute SQL from file - - - - - - Database - Databáza - - - - Grouping - Zoskupovanie - - - - Generate query for table - - - - - - Create group - Vytvoriť skupinu - - - - Group name - Názov skupiny - - - - Entry with name %1 already exists in group %2. - Položka s názvom %1 už existuje v skupine %2. - - - - Delete group - Vymazať skupinu - - - - Are you sure you want to delete group %1? -All objects from this group will be moved to parent group. - Ste si istý, že chcete vymazať skupinu %1? -Všetky objekty z tejto skupiny budú presunuté do nadradenej skupiny. - - - - Are you sure you want to remove database '%1' from the list? - - - - - Are you sure you want to remove following databases from the list: -%1 - - - - - Remove database - - - - - Vacuum (%1) - - - - - Autoincrement value for table '%1' has been reset successfully. - - - - - Are you sure you want to delete all data from table(s): %1? - - - - - Could not execute SQL, because application has failed to start transaction: %1 - - - - - Could not open file '%1' for reading: %2 - Nemôžem otvoriť súbor '%1' na čítanie: %2 - - - - Could not execute SQL, because application has failed to commit the transaction: %1 - - - - - Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. - - - - - Finished executing %1 queries in %2 seconds. - - - - - Could not execute SQL due to error. - - - - Delete database - Odstrániť databázu - - - Are you sure you want to delete database '%1'? - Ste si istý, že chcete odstrániť databázu '%1'? - - - - - Cannot import, because no import plugin is loaded. - Nemôžem importovať, lebo nebol načítaný žiaden plugin na import. - - - - - Cannot export, because no export plugin is loaded. - Nemôžem exportovať, lebo nebol načítaný žiaden plugin na export. - - - Error while executing VACUUM on the database %1: %2 - Vyskytla sa chyba počas vykonávania príkazu VACUUM na databáze %1: %2 - - - VACUUM execution finished successfully. - VACUUM úspešne skončilo. - - - - Integrity check (%1) - Kontrola integrity (%1) - - - - Reset autoincrement - Resetovať autoinkrement - - - - Are you sure you want to reset autoincrement value for table '%1'? - Ste si istý, že chcete zresetovať hodnotu autoinkrementu pre tabuľku %1 ? - - - - An error occurred while trying to reset autoincrement value for table '%1': %2 - Vyskytla sa chyba pri pokuse o zresetovanie hodnoty autoinkrementu pre tebuľku '%1': %2 - - - Are you sure you want to delete all data from table '%1'? - Ste si istý, že chcete vymazať všetky dáta z tabuľky '%1'? - - - - An error occurred while trying to delete data from table '%1': %2 - Vyskytla sa chyba pri pokuse vymazať dáta z tabuľky '%1': %2 - - - - All data has been deleted for table '%1'. - Všetky dáta z tabuľky '%1' boli vymazané. - - - - Following objects will be deleted: %1. - Nasledujúce objekty budú odstránené: %1. - - - - Following databases will be removed from list: %1. - Nasledujúce databázy budú odstránené zo zoznamu: %1. - - - - Remainig objects from deleted group will be moved in place where the group used to be. - - - - - %1<br><br>Are you sure you want to continue? - %1<br><br>Ste si istý, že chcete pokračovať? - - - - Delete objects - Odstránenie objektov - - - - DbTreeItemDelegate - - - error - dbtree labels - - - - - (system table) - database tree label - - - - - (virtual) - virtual table label - - - - - (system index) - database tree label - - - - - DbTreeModel - - - Database: %1 - dbtree tooltip - Databáza: %1 - - - - Version: - dbtree tooltip - Verzia: - - - - File size: - dbtree tooltip - Veľkosť súboru: - - - - Encoding: - dbtree tooltip - Kódovanie: - - - Error details: - dbtree tooltip - Detaily chyby: - - - - Error: - dbtree tooltip - - - - - Table : %1 - dbtree tooltip - Tabuľka : %1 - - - - Columns (%1): - dbtree tooltip - Stĺpce (%1): - - - - Indexes (%1): - dbtree tooltip - Indexy (%1): - - - - Triggers (%1): - dbtree tooltip - Spúšťače (%1): - - - - Copy - Kopírovať - - - - Move - - - - - Include data - - - - - Include indexes - - - - - Include triggers - - - - - Abort - Zrušiť - - - - Could not add dropped database file '%1' automatically. Manual setup is necessary. - - - - - Referenced tables - - - - - Do you want to include following referenced tables as well: -%1 - - - - - Name conflict - - - - - Following object already exists in the target database. -Please enter new, unique name, or press '%1' to abort the operation: - - - - - SQL statements conversion - - - - - Following error occurred while converting SQL statements to the target SQLite version: - - - - - Would you like to ignore those errors and proceed? - - - - - DdlHistoryWindow - - - Filter by database: - - - - - -- Queries executed on database %1 (%2) --- Date and time of execution: %3 -%4 - - - - - DDL history - DDL história - - - - DdlPreviewDialog - - - Queries to be executed - Dotazy, ktoré budú vykonané - - - - Don't show again - Znovu nezobrazovať - - - - DebugConsole - - - SQLiteStudio Debug Console - - - - - EditorWindow - - - Query - Dotaz - - - - History - História - - - - Results in the separate tab - Výsledky zobraziť v samostatnej záložke - - - - Results below the query - Výsledky zobraziť pod dotaz - - - - - SQL editor %1 - SQL editor %1 - - - - Results - Výsledky - - - - Execute query - Vykonať dotaz - - - - Explain query - Vysvetliť dotaz - - - - Clear execution history - sql editor - Vymazať históriu dotazov - - - - Export results - sql editor - Vyexportovať výsledky - - - - Create view from query - sql editor - Vytvoriť pohľad z dotazu - - - - Previous database - Predchádzajúca databáza - - - - Next database - Nasledujúca databáza - - - - Show next tab - sql editor - Zobraziť nasledujúcu záložku - - - - Show previous tab - sql editor - Zobraziť predchádzajúcu záložku - - - - Focus results below - sql editor - - - - - Focus SQL editor above - sql editor - - - - - Delete selected SQL history entries - sql editor - - - - - Active database (%1/%2) - Aktívna databáza (%1/%2) - - - - Query finished in %1 second(s). Rows affected: %2 - Dotaz trval %1 sekúnd. Počet dotknutých riadkov: %2 - - - - Query finished in %1 second(s). - Dotaz trval %1 sekúnd. - - - - Clear execution history - Vymazať históriu dotazov - - - - Are you sure you want to erase the entire SQL execution history? This cannot be undone. - Ste si istý, že chete vymazať celú históriu SQL dotazov? Túto operáciu nieje možné vrátiť späť. - - - - Cannot export, because no export plugin is loaded. - Nemôžem exportovať, lebo nebol načítaný žiaden plugin na export. - - - - No database selected in the SQL editor. Cannot create a view for unknown database. - Nebola vybraná žiadna databáza v SQL editore. Nemôžem vytvoriť view pre neznámu databázu. - - - - Editor window "%1" has uncommitted data. - - - - Editor window "%1" has uncommited data. - Okno editora "%1" obsahuje nepotrdené dáta. - - - - ErrorsConfirmDialog - - - Errors - - - - - Following errors occured: - - - - - Would you like to proceed? - - - - - ExecFromFileDialog - - - Execute SQL from file - - - - - Input file - - - - - Path to file - - - - - Browse for file - - - - - Options - Voľby - - - - File encoding - - - - - Skip failing SQL statements - - - - - SQL scripts (*.sql);;All files (*) - - - - - Execute SQL file - - - - - Please provide file to be executed. - - - - - Provided file does not exist or cannot be read. - - - - - ExportDialog - - - Export - Export - - - - What do you want to export? - Čo chcete exportovať? - - - - A database - Databáza - - - - A single table - Jednotlivá tabuľka - - - - Query results - Výsledky dotazu - - - - Table to export - Tabuľka na export - - - - Database - Databáza - - - - Table - Tabuľka - - - - Options - Voľby - - - - When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. - Ak táto voľba nebude označená, tak sa vyexportuje len DDL tabuľky(príkaz CREATE TABLE). - - - - Export table data - Exportovať dáta tabuľky - - - - Export table indexes - Exportovať indexy tabuľky - - - - Export table triggers - Exportovať spúšťače tabuľky - - - - Note, that exporting table indexes and triggers may be unsupported by some output formats. - Poznámka. Niektoré exportné formáty nemusia podporovať export indexov a spúšťačov. - - - - Select database objects to export - Vyberte databázové objekty, ktoré chcete exportovať - - - - Export data from tables - Exportovať dáta z tabuliek - - - - Select all - Vybrať všetko - - - - Deselect all - Zrušiť výber - - - - - Database: - Databáza: - - - - Query to export results for - Dotaz pre export výsledkov pre - - - - Query to be executed for results: - Dotaz, ktorý bude vykonaný pre získanie dát: - - - - Export format and options - Formát exportu a možnosti - - - - Export format - Formát exportu - - - - Output - Výstup - - - - Exported file path - Cesta k výstupnému súboru - - - - Clipboard - Schránka - - - - File - Súbor - - - - Exported text encoding: - Kódovanie vyexportovaného textu: - - - - Export format options - Možnosti formátu exportu - - - - Cancel - Zrušiť - - - - - - Select database to export. - Vyberte databázu, ktorú chcete exportovať. - - - - Select table to export. - Vyberte tabuľku, ktorú chcete exportovať. - - - - Enter valid query to export. - Zadajte platný dotaz pre export. - - - - Select at least one object to export. - Vyberte aspoň jeden objekt pre export. - - - - You must provide a file name to export to. - Musíte zadať názov súboru, do ktorého sa budú exportovať dáta. - - - - Path you provided is an existing directory. You cannot overwrite it. - Cesta, ktorú ste zadali je existujúci adresár. Nemôžte ho prepísať. - - - - The directory '%1' does not exist. - Adresár %1 neexistuje. - - - - The file '%1' exists and will be overwritten. - Súbor %1 už existuje a bude prepísaný. - - - - All files (*) - Všetky súbory (*) - - - - Pick file to export to - Výber súboru do ktorého sa budú exportovať dáta - - - - Internal error during export. This is a bug. Please report it. - Počas exportu sa vyskytla interná chyba. Toto je chyba v programe. Prosím nahláste ju. - - - - FileExecErrorsDialog - - - Execution errors - - - - - Following errors were encountered during execution of SQL statements from the file: - - - - - SQL - - - - - Error - Chyba - - - - Statements that were executed successfully were commited. - - - - - Statements that were executed successfully were rolled back. - - - - - FontEdit - - - Choose font - font configuration - - - - - Form - - - Active SQL formatter plugin - - - - - FormView - - - Commit row - form view - Potvrdiť riadok - - - - Rollback row - form view - Vrátiť späť riadok - - - - First row - form view - Prvý riadok - - - - Previous row - form view - Predchádzajúci riadok - - - - Next row - form view - Nasledujúci riadok - - - - Last row - form view - Posledný riadok - - - - Insert new row - form view - Vložiť nový riadok - - - - Delete current row - form view - Vymazať aktuálny riadok - - - - FunctionsEditor - - - Filter funtions - - - - - Function name: - - - - - Implementation language: - Implementačný jazyk: - - - - Type: - Typ: - - - - Input arguments - - - - - Undefined - - - - - Databases - Databázy - - - - Register in all databases - Registrovať vo všetkých databázach - - - - Register in following databases: - Registrovať v nasledujúcich databázach: - - - - Initialization code: - - - - - - Function implementation code: - - - - - Final step implementation code: - - - - - SQL function editor - - - - - Commit all function changes - - - - - Rollback all function changes - - - - - Create new function - - - - - Delete selected function - - - - - Custom SQL functions manual - - - - - Add function argument - - - - - Rename function argument - - - - - Delete function argument - - - - - Move function argument up - - - - - Move function argument down - - - - - Scalar - - - - - Aggregate - - - - - Enter a non-empty, unique name of the function. - - - - - Pick the implementation language. - Vyberte implementačný jazyk. - - - - Per step code: - - - - - Enter a non-empty implementation code. - Zadajte implementačný kód. - - - - argument - new function argument name in function editor window - - - - - Functions editor window has uncommitted modifications. - - - - - ImportDialog - - - Import data - Import dát - - - - Table to import to - Tabuľka na import - - - - Table - Tabuľka - - - - Database - Databáza - - - - Data source to import from - Dátový zdroj na import - - - - Data source type - Typ dátového zdroja - - - - Options - Voľby - - - - Input file: - Vstupný súbor: - - - - Text encoding: - Kódovanie textu: - - - - <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> - - - - - Ignore errors - Ignorovať chyby - - - - Data source options - Nastavenia dátového zdroja - - - - Cancel - Zrušiť - - - - If you type table name that doesn't exist, it will be created. - Ak zadáte názov neexistujúcej tabuľky, tak bude vytvorená. - - - - Enter the table name - Zadajte názov tabuľky - - - - Select import plugin. - Vyberte importný plugin. - - - - You must provide a file to import from. - Musíte zadať súbor, z ktorého sa budú importovať dáta. - - - - The file '%1' does not exist. - Súbor %1 neexistuje. - - - - Path you provided is a directory. A regular file is required. - Cesta, ktorú ste zadali je adresár. Prosím zadajte celú cestu. - - - - Pick file to import from - Výber súboru, z ktorého sa budú importovať dáta - - - - IndexDialog - - - - Index - Index - - - - On table: - Na tabuľke: - - - - Index name: - Názov indexu: - - - - Partial index condition - - - - - Unique index - Jedinečný index - - - - Column - Stĺpec - - - - Collation - Porovnávanie - - - - Sort - Zoradiť - - - - Delete selected indexed expression - - - - - Moves selected index column up in the order, making it more significant in the index. - - - - - Moves selected index column down in the order, making it less significant in the index. - - - - - Edit selected indexed expression - - - - - Add indexed expression - - - - - DDL - DDL - - - - Tried to open index dialog for closed or inexisting database. - - - - - Could not process index %1 correctly. Unable to open an index dialog. - - - - - Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. - - - - - Pick the table for the index. - - - - - Select at least one column. - Vyberte minimálne jeden stĺpec. - - - - Enter a valid condition. - Zadajte platnú podmienku. - - - - default - index dialog - - - - - Sort order - table constraints - Zoradiť - - - - - Error - index dialog - Chyba - - - - Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? - Nemôžem vytvoriť jedinečný index, pretože hodnoty vo vybraných stĺpcoch nie sú jedinečné. Chcete spustiť dotaz SELECT na zobrazenie problematických hodnôt? - - - - An error occurred while executing SQL statements: -%1 - - - - - IndexExprColumnDialog - - - Indexed expression - - - - - Expression to index - - - - - This expression is already indexed by the index. - - - - - Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. - - - - - Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. - - - - - It's forbidden to use 'SELECT' statements in indexed expressions. - - - - - Enter an indexed expression. - - - - - Invalid expression. - - - - - LanguageDialog - - - Language - Jazyk - - - - Please choose language: - Prosím vyberte si jazyk: - - - - MainWindow - - - Database toolbar - Databázová lišta - - - - Structure toolbar - Lišta štruktúr - - - - Tools - Nástroje - - - - Window list - Lišta okien - - - - View toolbar - Lišta pohľadov - - - - Configuration widgets - - - - - Syntax highlighting engines - - - - - Data editors - Editory dát - - - - Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. - - - - - Running in debug mode. Debug messages are printed to the standard output. - Beží v ladiacom móde. Ladiace správy sú vypisované na štandardný výstup. - - - - You need to restart application to make the language change take effect. - Je potrebné reštartovať aplikáciu aby sa zmena jazyka prejavila. - - - Open SQL editor - Otvoriť SQL editor - - - Open DDL history - Otvoriť DDL históriu - - - Open SQL functions editor - Otvoriť editor SQL funkcií - - - Open collations editor - Otvoriť editor porovnávaní - - - Import - Import - - - Export - Export - - - Open configuration dialog - Konfigurácia - - - Tile windows - Oddeliť okná - - - Tile windows horizontally - Oddeliť okná horizontálne - - - Tile windows vertically - Oddeliť okná vertikálne - - - Cascade windows - Okná kaskádovito - - - - Next window - Nasledujúce okno - - - - Previous window - Predchádzajúce okno - - - - Hide status field - - - - Close selected window - Zatvoriť vybrané okno - - - Close all windows but selected - Zatvoriť všetky okná okrem vybraného - - - Close all windows - Zatvoriť všetky okná - - - Restore recently closed window - Obnoviť posledné zatvorené okno - - - Rename selected window - Premenovať vybrané okno - - - - Open Debug Console - Otvoriť ladiacu konzolu - - - - Open CSS Console - Otvoriť CSS konzolu - - - Report a bug - Nahlásiť chybu - - - Propose a new feature - Navrhnúť novú funkciu - - - About - O programe - - - Licenses - Licencie - - - Open home page - Otvoriť domovskú stránku - - - Open forum page - Otvoriť fórum - - - User Manual - Používateľský manuál - - - SQLite documentation - Dokumentácia SQLite - - - Report history - História hlásení - - - Check for updates - Skontrolovať akutalizácie - - - Database - menubar - Databázy - - - Structure - menubar - Štruktúry - - - View - menubar - Zobrazenie - - - - Window list - menubar view menu - Lišta okien - - - Tools - menubar - Nástroje - - - Help - Pomoc - - - - Open SQL &editor - - - - - Open DDL &history - - - - - Open SQL &functions editor - - - - - Open &collations editor - - - - - Open ex&tension manager - - - - - &Import - - - - - E&xport - - - - - Open confi&guration dialog - - - - - &Tile windows - - - - - Tile windows &horizontally - - - - - Tile windows &vertically - - - - - &Cascade windows - - - - - Close selected &window - - - - - Close all windows &but selected - - - - - Close &all windows - - - - - Re&store recently closed window - - - - - &Rename selected window - - - - - Report a &bug - - - - - Propose a new &feature - - - - - &About - - - - - &Licenses - - - - - Open home &page - - - - - Open fo&rum page - - - - - User &Manual - - - - - SQLite &documentation - - - - - Bugs and feature &requests - - - - - Check for &updates - - - - - &Database - menubar - - - - - &Structure - menubar - - - - - &View - menubar - - - - - &Tools - menubar - - - - - &Help - - - - - Could not set style: %1 - main window - Nemôžem nastaviť štýl: %1 - - - - Cannot export, because no export plugin is loaded. - Nemôžem exportovať, lebo nebol načítaný žiaden plugin na export. - - - - Cannot import, because no import plugin is loaded. - Nemôžem importovať, lebo nebol načítaný žiaden plugin na import. - - - - Rename window - Premenovať okno - - - - Enter new name for the window: - Zadajte nový názov pre okno: - - - - New updates are available. <a href="%1">Click here for details</a>. - Nové aktualizácie sú dostupné. <a href="%1">Kliknite sem pre zobrazenie detailov</a>. - - - - You're running the most recent version. No updates are available. - Niesú dostupné žiadne aktualizácie. Používate aktuálnu verziu. - - - - Database passed in command line parameters (%1) was already on the list under name: %2 - Databáza prebratá z príkazového riadka (%1) už je v zozname pod názvom: %2 - - - - Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 - Databáza prebratá z príkazového riadka (%1) bola dočasne pridaná do zoznamu pod názvom: %2 - - - - Could not add database %1 to list. - Nemôžem pridať databázu %1 do zoznamu. - - - - MdiWindow - - Uncommited changes - Nepotvrdené zmeny - - - - Uncommitted changes - - - - - Close anyway - Zatvoriť aj napriek tomu - - - - Don't close - Nezatvárať - - - - MultiEditor - - - Null value - multieditor - Hodnota null - - - - Configure editors for this data type - - - - - Open another tab - - - - - Data editor plugin '%1' not loaded, while it is defined for editing '%1' data type. - - - - - Deleted - multieditor - - - - - Read only - multieditor - Iba na čítanie - - - - MultiEditorBoolPlugin - - - Boolean - - - - - MultiEditorDate - - Date - Dátum - - - - MultiEditorDatePlugin - - - Date - Dátum - - - - MultiEditorDateTime - - Date & time - Dátum a čas - - - - MultiEditorDateTimePlugin - - - Date & time - Dátum a čas - - - - MultiEditorHexPlugin - - - Hex - - - - - MultiEditorNumeric - - Number - numeric multi editor tab name - Číslo - - - - MultiEditorNumericPlugin - - - Number - numeric multi editor tab name - Číslo - - - - MultiEditorText - - - Tab changes focus - - - - - Cut - Vystrihnúť - - - - Copy - Kopírovať - - - - Paste - Vložiť - - - - Delete - Vymazať - - - - Undo - - - - - Redo - - - - - MultiEditorTextPlugin - - - Text - - - - - MultiEditorTimePlugin - - - Time - - - - - NewConstraintDialog - - - New constraint - Nové obmedzenie - - - - - Primary Key - new constraint dialog - Primárny klúč - - - - - Foreign Key - new constraint dialog - Cudzí klúč - - - - - Unique - new constraint dialog - Jedinečnosť - - - - - Check - new constraint dialog - - - - - Not NULL - new constraint dialog - Nie NULL - - - - Collate - new constraint dialog - Porovnanie - - - - Default - new constraint dialog - Prednastavená hodnota - - - - NewVersionDialog - - - SQLiteStudio updates - Aktualizácie SQLiteStudia - - - - New updates are available! - Nové aktualizácie sú dostupné! - - - - Component - Komponenta - - - - This application will be closed and the update installer will start to download and install all the updates. - - - - Current version - Nainštalovaná verzia - - - - Update version - Dostupná verzia - - - - Check for updates on startup - Kontrolovať aktualizácie pri štarte - - - - Update to new version! - Aktualizovať na novú verziu! - - - The update will be automatically downloaded and installed. This will also restart application at the end. - Aktualizácie budú automaticky stiahnuté a nainštalované. Na konci sa aplikácia reštartuje. - - - - Not now. - Nie teraz. - - - - Don't install the update and close this window. - Neinštalovať aktializácie a zatvoriť toto okno. - - - - PopulateConfigDialog - - - Populating configuration - - - - - Configuring <b>%1</b> for column <b>%2</b> - - - - - PopulateDialog - - - Populate table - Naplniť tabuľku - - - - Database - Databáza - - - - Table - Tabuľka - - - - Columns - Stĺpce - - - - Number of rows to populate: - Počet riadkov na naplnenie: - - - - Populate - populate dialog button - Naplniť - - - - Abort - Zrušiť - - - - Configure - Konfigurovať - - - - Populating configuration for this column is invalid or incomplete. - - - - - Select database with table to populate - Vyberte databázu s tabuľkou na naplnenie - - - - Select table to populate - Vyberte tabuľku na naplnenie - - - - You have to select at least one column. - Musíte vybrať minimálne jeden stĺpec. - - - - QObject - - - Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). - - - - - The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. - - - - - Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. - - - - - Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. - - - - - Cannot edit results of query other than %1. - - - - - Cannot edit columns that are result of aggregated %1 statements. - - - - - Cannot edit columns that are result of %1 statement. - - - - - Cannot edit columns that are result of common table expression statement (%1). - - - - - - - - on conflict: %1 - data view tooltip - Pri konflikte: %1 - - - - references table %1, column %2 - data view tooltip - - - - - condition: %1 - data view tooltip - - - - - collation name: %1 - data view tooltip - Názov porovnánavania: %1 - - - - Data grid view - Tabuľkové zobrazenie dát - - - - Copy cell(s) contents to clipboard - Kopírovať obsah buniek do schránky - - - - Copy cell(s) contents together with header to clipboard - - - - - Paste cell(s) contents from clipboard - Vložiť obsah buniek zo schránky - - - - Set empty value to selected cell(s) - Vymazať hodnoty z vybraných buniek - - - - Set NULL value to selected cell(s) - Nastaviť NULL hodnotu vo vybraných bunkách - - - - Commit changes to cell(s) contents - Potvrdiť zmeny v bunkách - - - - Rollback changes to cell(s) contents - Vrátiť späť zmeny v bunkách - - - - Delete selected data row - Vymazať vybraný riadok - - - - Insert new data row - Vložiť nový riadok - - - - Open contents of selected cell in a separate editor - Otvoriť obsah vybranej bunky v samostatnom editore - - - - Total pages available: %1 - Celkový počet strán: %1 - - - - Total rows loaded: %1 - Celkový počet riadkov: %1 - - - - Data view (both grid and form) - Zobrazenie dát (tabuľka a formulár) - - - - Refresh data - Obnoviť dáta - - - - Switch to grid view of the data - Prepnúť na tabuľkové zobrazenie dát - - - - Switch to form view of the data - Prepnúť na formulárové zobrazenie dát - - - - Database list - Zoznam databáz - - - - Delete selected item - Vymazať vybranú položku - - - - Clear filter contents - Vymazať filter - - - - Refresh schema - Obnoviť schému - - - - Refresh all schemas - Obnoviť všetky schémy - - - - Add database - Pridať databázu - - - - Select all items - Vybrať všetky položky - - - - Copy selected item(s) - Kopírovať vybrané položky - - - - - - Paste from clipboard - Vložiť zo schránky - - - - Tables - Tabuľky - - - - Indexes - Indexy - - - - Triggers - Spúšťače - - - - Views - Pohľady - - - - Columns - Stĺpce - - - - Data form view - Formulárové zobrazenie dát - - - - Commit changes for current row - Potvrdiť zmeny pre aktuálny riadok - - - - Rollback changes for current row - Vrátiť späť zmeny na aktuálnom riadku - - - - Go to first row on current page - Prejsť na prvý riadok na aktuálnej strane - - - - Go to next row - Prejsť na nasledujúci riadok - - - - Go to previous row - Prejsť na predchádzajúci riadok - - - - Go to last row on current page - Prejsť na posledný riadok na aktuálnej strane - - - - Insert new row - Vložiť nový riadok - - - - Delete current row - Vymazať aktuálny riadok - - - - Main window - Hlavné okno - - - - Open SQL editor - Otvoriť SQL editor - - - - Previous window - Predchádzajúce okno - - - - Next window - Nasledujúce okno - - - - Hide status area - Skryť status okno - - - - Open configuration dialog - Otvoriť konfiguračné okno - - - - Open Debug Console - Otvoriť ladiacu konzolu - - - - Open CSS Console - Otvoriť CSS konzolu - - - - Cell text value editor - Úprava hodnôt v bunkách - - - - - Cut selected text - Vystrihnúť vybraný text - - - - - Copy selected text - Kopírovať vybraný text - - - - - Delete selected text - Vymazať vybraný text - - - - - Undo - - - - - - Redo - - - - - SQL editor input field - - - - - Select whole editor contents - Označiť všetko - - - - Save contents into a file - Uložiť SQL do súboru - - - - Load contents from a file - Načítať SQL zo súboru - - - - Find in text - Nájsť v SQL - - - - Find next - Nájsť ďalší - - - - Find previous - Nájsť predchádzajúci - - - - Replace in text - Nahradiť v SQL - - - - Delete current line - Vymazať aktuálny riadok - - - - Request code assistant - Otvoriť SQL pomocníka - - - - Format contents - Formátovať SQL - - - - Move selected block of text one line down - Presunúť blok kódu o riadok nižšie - - - - Move selected block of text one line up - Presunúť blok kódu o riadok vyššie - - - - Copy selected block of text and paste it a line below - Kopírovať blok kódu a vložiť ho na riadok nižšie - - - - Copy selected block of text and paste it a line above - Kopírovať blok kódu a vložiť ho na riadok vyššie - - - - Toggle comment - - - - - All SQLite databases - Všetky SQLite databázy - - - - All files - Všetky súbory - - - - - Database file - Databázový súbor - - - Reports history window - Okno histórie hlásení - - - Delete selected entry - Vymazať vybranú položku - - - - SQL editor window - Okno SQL editora - - - - Execute query - Vykonať dotaz - - - - Execute "%1" query - Vykonať "%1" dotaz - - - - Switch current working database to previous on the list - Prepnúť sa na predchádzajúcu databázu v zozname - - - - Switch current working database to next on the list - Prepnúť sa na nasledujúcu databázu v zozname - - - - Go to next editor tab - Prechod na nasledujúcu záložku editora - - - - Go to previous editor tab - Prechod na predchádzajúcu záložku editora - - - - Move keyboard input focus to the results view below - Prepnúť kurzor na výsledky - - - - Move keyboard input focus to the SQL editor above - Prepnúť kurzor do editora - - - - Delete selected SQL history entries - - - - - Table window - Okno tabuľky - - - - Refresh table structure - Obnoviť štruktúru tabuľky - - - - Add new column - Pridať nový stĺpec - - - - Edit selected column - Upraviť vybraný stĺpec - - - - Delete selected column - Vymazať vybraný stĺpec - - - - Export table data - Exportovať dáta z tabuľky - - - - Import data to the table - Importovať dáta do tabuľky - - - - Add new table constraint - Pridať nové obmedzenie - - - - Edit selected table constraint - Upraviť vybrané obmedzenie - - - - Delete selected table constraint - Vymazať vybrané obmedzenie - - - - Refresh table index list - Obnoviť zoznam indexov - - - - Add new index - Pridať nový index - - - - Edit selected index - Upraviť vybraný index - - - - Delete selected index - Vymazať vybraný index - - - - Refresh table trigger list - Obnoviť zoznam spúšťačov - - - - - Add new trigger - Pridať nový spúšťač - - - - - Edit selected trigger - Upraviť vybraný spúšťač - - - - - Delete selected trigger - Vymazať vybraný spúšťač - - - - - Go to next tab - Prechod na nasledujúcu záložku - - - - - Go to previous tab - Prechod na predchádzajúcu záložku - - - - A view window - Okno pohľadu - - - - Refresh view trigger list - - - - - QuitConfirmDialog - - Uncommited changes - Nepotvrdené zmeny - - - - Uncommitted changes - - - - - Are you sure you want to quit the application? - -Following items are pending: - - - - - SearchTextDialog - - - Find or replace - Nájsť alebo nahradiť - - - - Find: - Nájsť: - - - - Case sensitive - Rozlišovať veľké písmená - - - - Search backwards - Hľadať spätne - - - - Regular expression matching - - - - - Replace && -find next - Nahradiť a -nájsť ďalší - - - - Replace with: - Nahradiť s: - - - - Replace all - Nahradiť všetko - - - - Find - Nájsť - - - - SortDialog - - - Sort by columns - Zoradiť podľa stĺpcov - - - - - Column - Stĺpec - - - - - Order - Usporiadanie - - - - Sort by: %1 - Zoradiť podľa : %1 - - - - Move column up - Posunúť stĺpec hore - - - - Move column down - Posunúť stĺpec dole - - - - SqlEditor - - - Cut - sql editor - Vystrihnúť - - - - Copy - sql editor - Kopírovať - - - - Paste - sql editor - Vložiť - - - - Delete - sql editor - Vymazať - - - - Select all - sql editor - Vybrať všetko - - - - Undo - sql editor - - - - - Redo - sql editor - - - - - Complete - sql editor - - - - - Format SQL - sql editor - Formátovať SQL - - - - Save SQL to file - sql editor - Uložiť SQL do súboru - - - - Select file to save SQL - sql editor - - - - - Load SQL from file - sql editor - Načítať SQL zo súboru - - - - Delete line - sql editor - Vymazať riadok - - - - Move block down - sql editor - - - - - Move block up - sql editor - - - - - Copy block down - sql editor - - - - - Copy up down - sql editor - - - - - Find - sql editor - Nájsť - - - - Find next - sql editor - Nájsť ďalší - - - - Find previous - sql editor - Nájsť predchádzajúci - - - - Replace - sql editor - Nahradiť - - - - Toggle comment - sql editor - - - - - Saved SQL contents to file: %1 - - - - - Syntax completion can be used only when a valid database is set for the SQL editor. - - - - - Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. - - - - - Save to file - Uložiť do súboru - - - - Could not open file '%1' for writing: %2 - Nemôžem otvoriť súbor '%1' pre zápis: %2 - - - - SQL scripts (*.sql);;All files (*) - - - - - Open file - Otvoriť súbor - - - - Could not open file '%1' for reading: %2 - Nemôžem otvoriť súbor '%1' na čítanie: %2 - - - - Reached the end of document. Hit the find again to restart the search. - Dosiahnutý koniec súboru. Kliknite na tlačidlo Nájsť pre hľadanie od začiatku súboru. - - - - SqlQueryItem - - - Column: - data view tooltip - Stĺpec: - - - - Data type: - data view - Datový typ: - - - - Table: - data view tooltip - Tabuľka: - - - - Constraints: - data view tooltip - Obmedzenia: - - - This cell is not editable, because: %1 - Táto bunka nieje editovateľná, pretože: %1 - - - - Cannot load the data for a cell that refers to the already closed database. - - - - - SqlQueryItemDelegate - - - The row is marked for deletion. - - - - - - - - - Cannot edit this cell. Details: %1 - - - - - - Structure of this table has changed since last data was loaded. Reload the data to proceed. - - - - - Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). - - - - - Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. - - - - - SqlQueryModel - - - - Only one query can be executed simultaneously. - Nemôže byť spustených viacero dotazov súčasne. - - - Uncommited data - Nepotvrdené dáta - - - There are uncommited data changes. Do you want to proceed anyway? All uncommited changes will be lost. - Sú tu nepotvrdené zmeny. Chcete aj napriek tomu pokračovať? Všetky nepotvrdené zmeny budú stratené. - - - - Cannot commit the data for a cell that refers to the already closed database. - Nemôžem potrdiť dáta bunky, ktorá odkazuje na už uzatvorenú databázu. - - - - Could not begin transaction on the database. Details: %1 - Nemôžem začať tranzakciu na databáze. Detaily: %1 - - - An error occurred while commiting the transaction: %1 - Vyskytla sa chyba počas potvrdzovania tranzakcie: %1 - - - - An error occurred while rolling back the transaction: %1 - Vyskytla sa chyba počas vracania späť tranzakcie: %1 - - - - Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. - Nastal pokus o potvrdenie zmien v bunke, ktorú nieje možné upravovať (napriek tomu bola upravená a čaká na potvrdenie)! Toto je chyba. Prosím nahláste ju. - - - An error occurred while commiting the data: %1 - Vyskytla sa chyba počas potvrdzovania dát: %1 - - - - Uncommitted data - - - - - There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. - - - - - An error occurred while committing the transaction: %1 - - - - - An error occurred while committing the data: %1 - - - - - Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. - - - - - - Error while executing SQL query on database '%1': %2 - Vyskytla sa chyba počas vykonávania SQL dotazu na databáze '%1': %2 - - - - Error while loading query results: %1 - Vyskytla sa chyba počas načítavania výsledkov dotazu: %1 - - - - Insert multiple rows - Vložiť viacero riadkov - - - - Number of rows to insert: - Počet vkládaných riadkov: - - - - SqlQueryView - - - Go to referenced row in... - - - - - Copy - Kopírovať - - - - Copy as... - Kopírovať ako... - - - - Paste - Vložiť - - - - Paste as... - Vložiť ako... - - - - Set NULL values - Nastaviť null hodnoty - - - - Erase values - Vymazať hodnoty - - - - Edit value in editor - Upraviť hodnotu v editory - - - - Commit - Potvrdiť - - - - Copy with headers - - - - - Rollback - Vrátiť späť - - - - Commit selected cells - Potvrdiť vybrané bunky - - - - Rollback selected cells - Vrátiť späť vybrané bunky - - - - Define columns to sort by - Vybrať stĺpce na zoradenie podľa - - - - Remove custom sorting - Odstrániť užívateľské triedenie - - - - Insert row - Vložiť riadok - - - - Insert multiple rows - Vložiť viacero riadkov - - - - Delete selected row - Vymazať viacero riadkov - - - - Show value in a viewer - - - - - Generate query for selected cells - - - - - No items selected to paste clipboard contents to. - Neboli vybrané žiadne položky na vloženie obsahu schránky. - - - - Go to referenced row in table '%1' - - - - - table '%1' - - - - - Referenced row (%1) - - - - - Trim pasted text? - - - - - The pasted text contains leading or trailing white space. Trim it automatically? - - - - - Edit value - Upraviť hodnotu - - - - SqlTableModel - - Error while commiting new row: %1 - Vyskytla sa chyba počas potvrdzovania nového riadka: %1 - - - - Error while committing new row: %1 - - - - - Error while deleting row from table %1: %2 - Vyskytla sa chyba počas mazania riadka z tabuľky %1: %2 - - - - SqliteExtensionEditor - - - Filter extensions - - - - - Leave empty to use default function - - - - - Extension file - - - - - Initialization function - - - - - Databases - Databázy - - - - Register in all databases - Registrovať vo všetkých databázach - - - - Register in following databases: - Registrovať v nasledujúcich databázach: - - - - Extension manager window has uncommitted modifications. - - - - - Extension manager - - - - - Commit all extension changes - - - - - Rollback all extension changes - - - - - Add new extension - - - - - Remove selected extension - - - - - Editing extensions manual - - - - - File with given path does not exist or is not readable. - - - - - Unable to load extension: %1 - - - - - Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. - - - - - Dynamic link libraries (*.dll);;All files (*) - - - - - Shared objects (*.so);;All files (*) - - - - - Dynamic libraries (*.dylib);;All files (*) - - - - - All files (*) - Všetky súbory (*) - - - - Open file - Otvoriť súbor - - - - StatusField - - - Status - Status - - - - Copy - Kopírovať - - - - Clear - Vymazať - - - - TableConstraintsModel - - - Type - table constraints - Typ - - - - Details - table constraints - Detaily - - - - Name - table constraints - Názov - - - - TableForeignKeyPanel - - - Foreign table: - Cudzia tabuľka: - - - - SQLite 2 does not support foreign keys officially, -but it's okay to use them anyway. - - - - - Columns - Stĺpce - - - - Local column - Lokálny stĺpec - - - - Foreign column - Cudzí stĺpec - - - - Reactions - Reakcie - - - - Deferred foreign key - - - - - Named constraint - Pomenovanie obmedzenia - - - - Constraint name - Názov obmedzenia - - - - Pick the foreign column. - Vyberte cudzí stĺpec. - - - - Pick the foreign table. - Vyberte cudziu tabuľku. - - - - Select at least one foreign column. - Vyberte aspoň jeden cudzí stĺpec. - - - - Enter a name of the constraint. - Zadajte názov obmedzenia. - - - - Foreign column - table constraints - Cudzí stĺpec - - - - TablePrimaryKeyAndUniquePanel - - - Columns - Stĺpce - - - - Column - Stĺpec - - - - Collation - Porovnávanie - - - - Sort - Zoradiť - - - - Valid only for a single column with INTEGER data type - Platné len pre jeden stĺpec s datovým typom INTEGER - - - - Autoincrement - Autoinkrement - - - - Named constraint - Pomenovanie obmedzenia - - - - Constraint name - Názov obmedzenia - - - - On conflict - Pri konflikte - - - - Collate - table constraints - Porovnať - - - - Sort order - table constraints - Zoradiť - - - - Select at least one column. - Vyberte minimálne jeden stĺpec. - - - - Enter a name of the constraint. - Zadajte názov obmedzenia. - - - - TableStructureModel - - - Name - table structure columns - Názov - - - - Data type - table structure columns - Datový typ - - - - Primary -Key - table structure columns - - - - - Foreign -Key - table structure columns - - - - - Unique - table structure columns - - - - - Check - table structure columns - - - - - Not -NULL - table structure columns - - - - - Collate - table structure columns - - - - - Default value - table structure columns - Prednastavená hodnota - - - - TableWindow - - - Structure - Štruktúra - - - - Table name: - Názov tabuľky: - - - - - Data - Dáta - - - - Constraints - Obmedzovače - - - - Indexes - Indexy - - - - Triggers - Spúšťače - - - - DDL - DDL - - - - Export table - table window - Exportovať tabuľku - - - - Import data to table - table window - Importovať dáta do tabuľky - - - - Populate table - table window - Naplniť tabuľku - - - - Refresh structure - table window - Obnoviť štruktúru - - - - Commit structure changes - table window - Potvrdiť zmeny štruktúr - - - - Rollback structure changes - table window - Vrátiť späť zmeny štruktúr - - - - Add column - table window - Pridať stĺpec - - - - Edit column - table window - Upraviť stĺpec - - - - - Delete column - table window - Vymazať stĺpec - - - - Move column up - table window - Posunúť stĺpec hore - - - - Move column down - table window - Posunúť stĺpec dole - - - - Create similar table - table window - Vytvoriť rovnakú tabuľku - - - - Reset autoincrement value - table window - Resetovať hodnotu autoinkrementu - - - - Add table constraint - table window - Pridať obmedzenie - - - - Edit table constraint - table window - Upraviť obmedzenie - - - - Delete table constraint - table window - Vymazať obmedzenie - - - - Move table constraint up - table window - Posunúť obmedzenie hore - - - - Move table constraint down - table window - Posunúť obmedzenie dole - - - - Add table primary key - table window - Pridať primárny kľúč - - - - Add table foreign key - table window - Pridať cudzí kľúč - - - - Add table unique constraint - table window - Pridať jedinečné obmedzenie - - - - Add table check constraint - table window - - - - - Refresh index list - table window - Obnoviť zoznam indexov - - - - Create index - table window - Vytvoriť index - - - - Edit index - table window - Upraviť index - - - - Delete index - table window - Vymazať index - - - - Refresh trigger list - table window - Obnoviť zoznam spúšťačov - - - - Create trigger - table window - Vytvoriť spúšťač - - - - Edit trigger - table window - Upraviť spúšťač - - - - Delete trigger - table window - Vymazať spúšťač - - - - Are you sure you want to delete column '%1'? - table window - Ste si istý, že chcete vymazať stĺpec '%1' ? - - - - Following problems will take place while modifying the table. -Would you like to proceed? - table window - - - - - Table modification - table window - - - - - Could not load data for table %1. Error details: %2 - - - - - Could not process the %1 table correctly. Unable to open a table window. - - - - - Could not restore window %1, because no database or table was stored in session for this window. - - - - - Could not restore window '%1', because no database or table was stored in session for this window. - - - - - Could not restore window '%1', because database %2 could not be resolved. - - - - - Could not restore window '%1'', because the table %2 doesn't exist in the database %3. - - - - - - New table %1 - - - - - Committed changes for table '%1' successfully. - - - - - Committed changes for table '%1' (named before '%2') successfully. - - - - - Autoincrement value for table '%1' has been reset successfully. - - - - - Uncommitted changes - - - - - There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. -Do you want to commit the structure, or do you want to go back to the structure tab? - - - - - Table window "%1" has uncommitted structure modifications and data. - - - - - Table window "%1" has uncommitted data. - - - - - Table window "%1" has uncommitted structure modifications. - - - - - Could not commit table structure. Error message: %1 - table window - - - - - Reset autoincrement - Resetovať autoinkrement - - - - Are you sure you want to reset autoincrement value for table '%1'? - Ste si istý, že chcete zresetovať hodnotu autoinkrementu pre tabuľku %1 ? - - - - An error occurred while trying to reset autoincrement value for table '%1': %2 - Vyskytla sa chyba pri pokuse o zresetovanie hodnoty autoinkrementu pre tebuľku '%1': %2 - - - - Empty name - - - - - A blank name for the table is allowed in SQLite, but it is not recommended. -Are you sure you want to create a table with blank name? - - - - - Cannot create a table without at least one column. - - - - - Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. - - - - - Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. - - - - - Are you sure you want to delete table constraint '%1'? - table window - Ste si istý, že chcete vymazať obmedzenie '%1'? - - - - Delete constraint - table window - Vymazať obmedzenie - - - - Cannot export, because no export plugin is loaded. - Nemôžem exportovať, lebo nebol načítaný žiaden plugin na export. - - - - Cannot import, because no import plugin is loaded. - Nemôžem importovať, lebo nebol načítaný žiaden plugin na import. - - - Uncommited changes - Nepotvrdené zmeny - - - There are uncommited structure modifications. You cannot browse or edit data until you have table structure settled. -Do you want to commit the structure, or do you want to go back to the structure tab? - Sú tu nepotvrdené zmeny štruktúr. Nemôžte prezerať alebo editovať dáta dokiaľ nebude štruktúra tabuľky jasná. -Chcete potvrdiť štruktúru alebo sa chcete vrátiť do záložky štruktúr? - - - - Go back to structure tab - Choď späť na záložku štruktúr - - - - Commit modifications and browse data. - Potvrdiť zmeny a prezerať dáta. - - - - Name - table window indexes - Názov - - - - Unique - table window indexes - Jedinečný - - - - Columns - table window indexes - Stĺpce - - - - Partial index condition - table window indexes - - - - - Name - table window triggers - Názov - - - - Event - table window triggers - Udalosť - - - - Condition - table window triggers - Podmienka - - - - Details - table window triggers - Detaily - - - Table window "%1" has uncommited structure modifications and data. - V okne tabuľky %1 sú nepotvrdené zmeny štruktúry a dáta. - - - Table window "%1" has uncommited data. - V okne tabuľky %1 sú nepotvrdené dáta. - - - Table window "%1" has uncommited structure modifications. - V okne tabuľky %1 sú nepotvrdené zmeny štruktúry. - - - - TriggerColumnsDialog - - - Trigger columns - - - - - Triggering columns: - - - - - Select all - Vybrať všetko - - - - Deselect all - Zrušiť výber - - - - TriggerDialog - - - - Trigger - Spúšťač - - - - On table: - Na tabuľke: - - - - Action: - Akcia: - - - - - <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> - - - - - Pre-condition: - - - - - The scope is still not fully supported by the SQLite database. - - - - - Trigger name: - Názov spúšťača: - - - - When: - Kedy: - - - - List of columns for UPDATE OF action. - - - - - Scope: - - - - - Code: - Kód: - - - - Trigger statements to be executed. - - - - - DDL - DDL - - - - On view: - - - - - Could not process trigger %1 correctly. Unable to open a trigger dialog. - - - - - Enter a valid condition. - Zadajte platnú podmienku. - - - - Enter a valid trigger code. - Zadajte validný kód spúšťača. - - - - Error - trigger dialog - Chyba - - - - An error occurred while executing SQL statements: -%1 - - - - - VersionConvertSummaryDialog - - - Database version convert - - - - - Following changes to the SQL statements will be made: - - - - - Before - - - - - After - - - - - ViewWindow - - - Query - Dotaz - - - - View name: - Názov pohľadu: - - - - Output column names - - - - - - Data - Dáta - - - - Triggers - Spúšťače - - - - DDL - DDL - - - - - Could not restore window '%1', because no database or view was stored in session for this window. - - - - - Could not restore window '%1', because database %2 could not be resolved. - - - - - Could not restore window '%1', because database %2 could not be open. - - - - - Could not restore window '%1', because the view %2 doesn't exist in the database %3. - - - - - - New view %1 - Nový pohľad %1 - - - - Refresh the view - view window - Obnoviť pohľad - - - - Commit the view changes - view window - Potvrdiť zmeny v pohľade - - - - Rollback the view changes - view window - Vrátiť späť zmeny v pohľade - - - - Explicit column names - - - - - Generate output column names automatically basing on result columns of the view. - - - - - Add column - view window - Pridať stĺpec - - - - Edit column - view window - Upraviť stĺpec - - - - Delete column - view window - Vymazať stĺpec - - - - Move column up - view window - Posunúť stĺpec hore - - - - Move column down - view window - Posunúť stĺpec dole - - - - Refresh trigger list - view window - Obnoviť zoznam spúšťačov - - - - Create new trigger - view window - Vytvoriť nový spúšťač - - - - Edit selected trigger - view window - Upraviť vybraný spúšťač - - - - Delete selected trigger - view window - Vymazať vybraný spúšťač - - - - View window "%1" has uncommitted structure modifications and data. - - - - - View window "%1" has uncommitted data. - - - - - View window "%1" has uncommitted structure modifications. - - - - - Uncommitted changes - - - - - There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. -Do you want to commit the structure, or do you want to go back to the structure tab? - - - - - Committed changes for view '%1' successfully. - - - - - Committed changes for view '%1' (named before '%2') successfully. - - - - View window "%1" has uncommited structure modifications and data. - Okno pohľadu "%1" obsahuje nepotrdené zmeny štruktúr a dát. - - - View window "%1" has uncommited data. - Okno pohľadu "%1" obsahuje nepotrdené dáta. - - - View window "%1" has uncommited structure modifications. - Okno pohľadu "%1" obsahuje nepotrdené zmeny štruktúr. - - - - Could not load data for view %1. Error details: %2 - Nemôžem načítať dáta z pohľadu %1. Detaily chyby: %2 - - - Uncommited changes - Nepotvrdené zmeny - - - There are uncommited structure modifications. You cannot browse or edit data until you have the view structure settled. -Do you want to commit the structure, or do you want to go back to the structure tab? - Sú tu nepotvrdené zmeny štruktúr. Nemôžte prezerať alebo editovať dáta dokiaľ nebude štruktúra tabuľky jasná. -Chcete potvrdiť štruktúru alebo sa chcete vrátiť do záložky štruktúr? - - - - Go back to structure tab - Choď späť na záložku štruktúr - - - - Commit modifications and browse data. - Potvrdiť zmeny a prezerať dáta. - - - - Could not commit view changes. Error message: %1 - view window - Nemôžem potvrdiť zmeny v pohľade. Chyba: %1 - - - - Override columns - - - - - Currently defined columns will be overriden. Do you want to continue? - - - - - Could not determinate columns returned from the view. The query is problably incomplete or contains errors. - - - - - Name - view window triggers - Názov - - - - Instead of - view window triggers - - - - - Condition - view window triggers - Podmienka - - - - Details - table window triggers - Detaily - - - - Could not process the %1 view correctly. Unable to open a view window. - - - - - Empty name - - - - - A blank name for the view is allowed in SQLite, but it is not recommended. -Are you sure you want to create a view with blank name? - - - - - The SELECT statement could not be parsed. Please correct the query and retry. -Details: %1 - SELECT nemôže byť analyzovaný. Prosím opravte dotaz a skúste to znovu. -Detaily: %1 - - - - The view could not be modified due to internal SQLiteStudio error. Please report this! - - - - - The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. - - - - - Following problems will take place while modifying the view. -Would you like to proceed? - view window - - - - - View modification - view window - - - - - WidgetCover - - - Interrupt - - - - diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_sk_SK.ts b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_sk_SK.ts new file mode 100644 index 0000000..e7800f4 --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_sk_SK.ts @@ -0,0 +1,7111 @@ + + + + + AboutDialog + + + About SQLiteStudio and licenses + O programe SQLiteStudio a licenciách + + + + About + O programe + + + + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + + + + Licenses + Licencie + + + + Environment + Prostredie + + + + Icon directories + Adresáre s ikonami + + + + Form directories + Adresáre so štýlmi + + + + SQLite extension directories + SQLite extension directories + + + + Plugin directories + Adresáre s pluginmi + + + + Configuration directory + Adresár s konfiguráciou + + + + Application directory + Adresár aplikácie + + + + Qt version: + Verzia Qt: + + + + SQLite 3 version: + Verzia SQLite3: + + + + Portable distribution. + Prenosná distribúcia. + + + + MacOS X application bundle distribution. + MacOS X application bundle distribution. + + + + Operating system managed distribution. + Distribúcia spravovaná operačným systémom. + + + + <h3>Table of contents:</h3><ol>%2</ol> + <h3>Tabuľka obsahu:</h3><ol>%2</ol> + + + + BindParamsDialog + + + Query parameters + Query parameters + + + + Please provide values for query parameters + Please provide values for query parameters + + + + CodeSnippetEditor + + + Filter snippets + Filter snippets + + + + + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + + + + + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + + + + Snippet name + Snippet name + + + + Code assistant shortcut + Code assistant shortcut + + + + Snippet code + Snippet code + + + + Code Snippets editor window has uncommitted modifications. + Code Snippets editor window has uncommitted modifications. + + + + Code Snippets editor + Code Snippets editor + + + + Commit all snippet changes + Commit all snippet changes + + + + Rollback all snippet changes + Rollback all snippet changes + + + + Create new snippet + Create new snippet + + + + Delete selected snippet + Delete selected snippet + + + + Move the snippet up + Move the snippet up + + + + Move the snippet down + Move the snippet down + + + + Code snippets manual + Code snippets manual + + + + Enter a non-empty, unique name of the snippet. + Enter a non-empty, unique name of the snippet. + + + + Enter a non-empty snippet content. + Enter a non-empty snippet content. + + + + This hotkey is not unique in context of a code assistant. + This hotkey is not unique in context of a code assistant. + + + + CollationsEditor + + + Filter collations + Filtrovať porovnávania + + + + Databases + Databázy + + + + Register in all databases + Registrovať vo všetkých databázach + + + + Register in following databases: + Registrovať v nasledujúcich databázach: + + + + Implementation code: + Implementačný kód: + + + + Collation name: + Názov porovnánavania: + + + + Implementation language: + Implementačný jazyk: + + + + Collations editor + Editor porovnávaní + + + + Commit all collation changes + Potvrdiť všetky zmeny v porovnávaní + + + + Rollback all collation changes + Vrátiť späť všetky zmeny v porovnávaní + + + + Create new collation + Vytvoriť nové porovnávanie + + + + Delete selected collation + Vymazať vybrané porovnávanie + + + + Editing collations manual + Manuál úpravy porovnávaní + + + + Enter a non-empty, unique name of the collation. + Zadajte jedinečný názov porovnávania. + + + + Pick the implementation language. + Vyberte implementačný jazyk. + + + + Enter a non-empty implementation code. + Zadajte implementačný kód. + + + + Collations editor window has uncommitted modifications. + Collations editor window has uncommitted modifications. + + + + ColorButton + + + Pick a color + Vyberte farbu + + + + ColumnCollatePanel + + + Collation name: + Názov porovnánavania: + + + + Named constraint: + Pomenovanie obmedzenia: + + + + Enter a name of the constraint. + Zadajte názov obmedzenia. + + + + Enter a collation name. + Zadajte názov porovnávania. + + + + ColumnDefaultPanel + + + Default value: + Prednastavená hodnota: + + + + Named constraint: + Pomenovanie obmedzenia: + + + + Enter a default value expression. + Enter a default value expression. + + + + Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. + Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. + + + + Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. + Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. + + + + Enter a name of the constraint. + Zadajte názov obmedzenia. + + + + ColumnDialog + + + Column + Stĺpec + + + + Name and type + Názov a typ + + + + Scale + Rozsah + + + + Precision + Presnosť + + + + Data type: + Datový typ: + + + + Column name: + Názov stĺpca: + + + + Size: + Veľkosť: + + + + Constraints + Obmedzenia + + + + Generated value + Generated value + + + + Unique + Jedinečný + + + + + + + + + + + Configure + Konfigurovať + + + + Foreign Key + Cudzí klúč + + + + Collate + Porovnanie + + + + Not NULL + Nie NULL + + + + Check condition + Check condition + + + + Primary Key + Primárny klúč + + + + Default + Prednastavená hodnota + + + + Advanced mode + Rozšírený mód + + + + Add constraint + column dialog + Pridať obmedzenie + + + + Edit constraint + column dialog + Upraviť obmedzenie + + + + + Delete constraint + column dialog + Vymazať obmedzenie + + + + Move constraint up + column dialog + Posunúť obmedzenie hore + + + + Move constraint down + column dialog + Posunúť obmedzenie dole + + + + Add a primary key + column dialog + Pridať primárny kľúč + + + + Add a foreign key + column dialog + Pridať cudzí kľúč + + + + Add an unique constraint + column dialog + Pridať jedinečné obmedzenie + + + + Add a check constraint + column dialog + Add a check constraint + + + + Add a not null constraint + column dialog + Add a not null constraint + + + + Add a collate constraint + column dialog + Add a collate constraint + + + + Add a generated value constraint + column dialog + Add a generated value constraint + + + + Add a default constraint + column dialog + Add a default constraint + + + + Are you sure you want to delete constraint '%1'? + column dialog + Ste si istý, že chcete vymazať obmedzenie '%1'? + + + + Correct the constraint's configuration. + Correct the constraint's configuration. + + + + Scale is not allowed for INTEGER PRIMARY KEY columns. + Scale is not allowed for INTEGER PRIMARY KEY columns. + + + + Precision cannot be defined without the scale. + Precision cannot be defined without the scale. + + + + Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. + Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. + + + + INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. + INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. + + + + Precision is not allowed for INTEGER PRIMARY KEY columns. + Precision is not allowed for INTEGER PRIMARY KEY columns. + + + + Could not match valid STRICT table datatype from declared type: %1. + Could not match valid STRICT table datatype from declared type: %1. + + + + ColumnDialogConstraintsModel + + + Type + column dialog constraints + Typ + + + + Name + column dialog constraints + Názov + + + + Details + column dialog constraints + Detaily + + + + ColumnForeignKeyPanel + + + Foreign table: + Cudzia tabuľka: + + + + Foreign column: + Cudzí stĺpec: + + + + Reactions + Reakcie + + + + Deferred foreign key + Deferred foreign key + + + + Named constraint + Pomenovanie obmedzenia + + + + Constraint name + Názov obmedzenia + + + + Pick the foreign table. + Vyberte cudziu tabuľku. + + + + Pick the foreign column. + Vyberte cudzí stĺpec. + + + + Enter a name of the constraint. + Zadajte názov obmedzenia. + + + + ColumnGeneratedPanel + + + Generating code: + Generating code: + + + + Explicit type: + Explicit type: + + + + Use "GENERATED ALWAYS" keywords + Use "GENERATED ALWAYS" keywords + + + + Named constraint: + Named constraint: + + + + Enter the column value generating expression. + Enter the column value generating expression. + + + + Invalid value generating expression: %1. + Invalid value generating expression: %1. + + + + Invalid value generating expression. + Invalid value generating expression. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ColumnPrimaryKeyPanel + + + Autoincrement + Autoikrement + + + + Sort order: + Zoradiť: + + + + Named constraint: + Pomenovanie obmedzenia: + + + + On conflict: + Pri konflikte: + + + + Enter a name of the constraint. + Zadajte názov obmedzenia. + + + + Descending order is not allowed with AUTOINCREMENT. + Descending order is not allowed with AUTOINCREMENT. + + + + ColumnUniqueAndNotNullPanel + + + Named constraint: + Pomenovanie obmedzenia: + + + + On conflict: + Pri konflikte: + + + + Enter a name of the constraint. + Zadajte názov obmedzenia. + + + + CompleterWindow + + + Column: %1 + completer statusbar + Stĺpec: %1 + + + + Table: %1 + completer statusbar + Tabuľka: %1 + + + + Index: %1 + completer statusbar + Index: %1 + + + + Trigger: %1 + completer statusbar + Spúšťač: %1 + + + + View: %1 + completer statusbar + Pohľad: %1 + + + + Database: %1 + completer statusbar + Databáza: %1 + + + + Keyword: %1 + completer statusbar + Kľúčové slovo: %1 + + + + Function: %1 + completer statusbar + Funkcia: %1 + + + + Operator: %1 + completer statusbar + Operátor: %1 + + + + String + completer statusbar + Reťazec + + + + Number + completer statusbar + Číslo + + + + Binary data + completer statusbar + Binárne dáta + + + + Collation: %1 + completer statusbar + Porovnávanie: %1 + + + + Pragma function: %1 + completer statusbar + Pragma funkcia : %1 + + + + Insert a code snippet + Insert a code snippet + + + + ConfigDialog + + + + Configuration + Konfigurácia + + + + Search + Hľadať + + + + General + Všeobecné + + + + Keyboard shortcuts + Klávesové skratky + + + + Look & feel + Vzhľad + + + + Style + Štýl + + + + Fonts + Fonty + + + + Code colors + Code colors + + + + + Database list + Zoznam databáz + + + + Code assistant + Code assistant + + + + Data browsing + Prezeranie dát + + + + Data editors + Editory dát + + + + Plugins + Pluginy + + + + Code formatters + Formát kódu + + + + If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. + If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. + + + + Sort table columns alphabetically + Zoradiť stĺpce tabuľky abecedne + + + + Expand tables node when connected to a database + Rozbaliť zoznam tabuliek po pripojení k databáze + + + + <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> + <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> + + + + Display additional labels on the list + Zobraziť doplnkové popisky v zozname + + + + For regular tables labels will show number of columns, indexes and triggers for each of tables. + For regular tables labels will show number of columns, indexes and triggers for each of tables. + + + + Display labels for regular tables + Zobraziť popisky pre regulárne tabuľky + + + + Virtual tables will be marked with a 'virtual' label. + Virtual tables will be marked with a 'virtual' label. + + + + Display labels for virtual tables + Zobraziť popisky pre virtuálne tabuľky + + + + Expand views node when connected to a database + Rozbaliť zoznam pohľadov po pripojení k databáze + + + + If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) + If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) + + + + Sort objects (tables, indexes, triggers and views) alphabetically + Zoradiť objekty (tabuľky, indexy, spúšťače a pohľady) abecedne + + + + Display system tables and indexes on the list + Zobraziť systémové tabuľky a indexy v zozname + + + + Database dialog window + Databázové dialógové okno + + + + <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> + <p>Označením tejto možnosti sa vypne voľba "Zapamätať si databázu" v okne pridávania novej databázy</p> + + + + Do not mark database to be "permanent" by default + Nepamätať si databázu + + + + <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> + <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> + + + + Try to bypass dialog completly when dropping database file onto the list + Try to bypass dialog completly when dropping database file onto the list + + + + Data browsing and editing + Prezeranie a úprava dát + + + + + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + + + + Number of memorized table populating configurations + Number of memorized table populating configurations + + + + Data column width + Data column width + + + + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + + + + Enlarge column when entering value longer than current width + Enlarge column when entering value longer than current width + + + + <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> + <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> + + + + Number of data rows per page: + Počet data riadkov na stranu: + + + + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> + + + + Show column and row details tooltip in data view + Show column and row details tooltip in data view + + + + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + + + + Keep NULL value when entering empty value + Keep NULL value when entering empty value + + + + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> + + + + Use DEFAULT value (if defined), when committing NULL value + Use DEFAULT value (if defined), when committing NULL value + + + + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + + + + Limit number of rows for in case of dozens of columns + Limit number of rows for in case of dozens of columns + + + + Inserting new row in data grid + Inserting new row in data grid + + + + Before currently selected row + Before currently selected row + + + + After currently selected row + After currently selected row + + + + At the end of data view + At the end of data view + + + + Table windows + Okná tabuľky + + + + <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> + <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> + + + + Open Table Windows with the data tab for start + Zobraziť dáta po otvorení tabuľky + + + + <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> + <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> + + + + Place data tab as first tab in a Table Window + Place data tab as first tab in a Table Window + + + + View windows + Okná pohľadov + + + + <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> + <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> + + + + Open View Windows with the data tab for start + Zobraziť dáta po otvorení pohľadu + + + + <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> + <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> + + + + Place data tab as first tab in a View Window + Place data tab as first tab in a View Window + + + + Data types + Datové typy + + + + Available editors: + Dostupné editory: + + + + Editors selected for this data type: + Editors selected for this data type: + + + + Schema editing + Úprava schémy + + + + Number of DDL changes kept in history. + Počet DDL zmien uchovávaných v histórii. + + + + DDL history size: + Veľkosť DDL histórie: + + + + Don't show DDL preview dialog when committing schema changes + Don't show DDL preview dialog when committing schema changes + + + + SQL queries + SQL dotazy + + + + + Number of queries kept in the history. + Počet dotazov uchovávaných v histórii. + + + + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> + + + + History size: + Veľkosť SQL histórie: + + + + + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> + + + + Execute only the query under the cursor + Vykonať len dotaz, na ktorom stojí kurzor + + + + Number of memorized query parameters + Number of memorized query parameters + + + + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + + + + Use scientific notation for real numbers in the grid view + Use scientific notation for real numbers in the grid view + + + + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + + + + Limit automatic data column width to (in pixels): + Limit automatic data column width to (in pixels): + + + + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + + + + Keep at least the width to show complete column name + Keep at least the width to show complete column name + + + + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + + + + Wrap lines in SQL editor + Wrap lines in SQL editor + + + + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + + + + Highlight current query + Highlight current query + + + + Updates + Aktualizácie + + + + Automatically check for updates at startup + Kontrolovať aktualizácie pri štarte + + + + Session + Sedenie + + + + Restore last session (active MDI windows) after startup + Obnoviť posledné sedenie (aktívne okná) pri štarte + + + + Allow multiple instances of the application at the same time + Allow multiple instances of the application at the same time + + + + Status Field + Status Field + + + + <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> + <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> + + + + Always open Status panel when new message is printed + Always open Status panel when new message is printed + + + + Code syntax colors + Code syntax colors + + + + Keyword foreground + Keyword foreground + + + + Regular foreground + Regular foreground + + + + String foreground + String foreground + + + + Comment foreground + Comment foreground + + + + Valid objects foreground + Valid objects foreground + + + + Current query background + Current query background + + + + Bind parameter foreground + Bind parameter foreground + + + + Current line background + Current line background + + + + Matched parenthesis background + Matched parenthesis background + + + + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + + + + Number foreground + Number foreground + + + + BLOB value foreground + BLOB value foreground + + + + Matched parenthesis foreground + Matched parenthesis foreground + + + + Reset to defaults + Reset to defaults + + + + Filter shortcuts by name or key combination + Filtrovať podľa názvu alebo klávesovej skratky + + + + Action + Akcia + + + + Key combination + Klávesová skratka + + + + + Language + Jazyk + + + + Changing language requires application restart to take effect. + Je potrebné reštartovať aplikáciu aby sa zmena jazyka prejavila. + + + + Compact layout + Compact layout + + + + <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> + <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> + + + + Use compact layout + Use compact layout + + + + Main window dock areas + Main window dock areas + + + + Left and right areas occupy corners + Left and right areas occupy corners + + + + Top and bottom areas occupy corners + Top and bottom areas occupy corners + + + + Hide built-in plugins + Nezobrazovať interné pluginy + + + + Current style: + Aktuálny štýl: + + + + Preview + Náhľad + + + + Enabled + Zapnutý + + + + Disabled + Vypnutý + + + + Active formatter plugin + Aktívny formátovací plugin + + + + SQL editor font + Písmo SQL editora + + + + Database list font + Font zoznamu databáz + + + + Database list additional label font + Font doplnkového popisku + + + + Data view font + Font dát + + + + Status field font + Font status okna + + + + Code assistant settings + Code assistant settings + + + + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + + + + Automatically trigger the assistant after a dot is typed after an object name + Automatically trigger the assistant after a dot is typed after an object name + + + + Description: + plugin details + Popis: + + + + Category: + plugin details + Kategória: + + + + Version: + plugin details + Verzia: + + + + Author: + plugin details + Autor: + + + + Internal name: + plugin details + Interný názov: + + + + Dependencies: + plugin details + Závislosti: + + + + Conflicts: + plugin details + Konflikty: + + + + Plugin details + Detaily pluginu + + + + Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. + Pluginy sú načítané/uvoľnené okamžite pri zaškrtnutí/odškrtnutí ale midifikovaný zoznam pluginov načítaných pri štarte nieje uložený až kým nepotvrdíte celý konfiguračný dialóg. + + + + %1 (built-in) + plugins manager in configuration dialog + %1 (interný) + + + + Details + Detaily + + + + No plugins in this category. + No plugins in this category. + + + + Add new data type + Pridať nový datový typ + + + + Rename selected data type + Premenovať vybraný datový typ + + + + Delete selected data type + Vymazať vybraný datový typ + + + + Help for configuring data type editors + Help for configuring data type editors + + + + Clear hotkey for this action + Clear hotkey for this action + + + + Restore original hotkey for this action + Restore original hotkey for this action + + + + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + + + + ConstraintCheckPanel + + + The condition + Podmienka + + + + Named constraint: + Pomenovanie obmedzenia: + + + + On conflict + Pri konflikte + + + + Enter a valid condition. + Zadajte platnú podmienku. + + + + Enter a name of the constraint. + Zadajte názov obmedzenia. + + + + ConstraintDialog + + + New constraint + constraint dialog + Nové obmedzenie + + + + Create + constraint dialog + Vytvoriť + + + + Edit constraint + dialog window + Upraviť obmedzenie + + + + Apply + constraint dialog + Aplikovať + + + + Primary key + table constraints + Primárny klúč + + + + Foreign key + table constraints + Cudzí klúč + + + + Unique + table constraints + Jedinečnosť + + + + Not NULL + table constraints + Nie NULL + + + + Check + table constraints + Check + + + + Generated + table constraints + Generated + + + + Collate + table constraints + Porovnanie + + + + Default + table constraints + Prednastavená hodnota + + + + ConstraintTabModel + + + Table + table constraints + Tabuľka + + + + Column (%1) + table constraints + Stĺpec (%1) + + + + Scope + table constraints + Scope + + + + Type + table constraints + Typ + + + + Details + table constraints + Detaily + + + + Name + table constraints + Názov + + + + CssDebugDialog + + + SQLiteStudio CSS console + SQLiteStudio CSS console + + + + DataView + + + Filter data + data view + Filtrovať + + + + Grid view + Tabuľkové zobrazenie + + + + Form view + Formulárové zobrazenie + + + + Refresh table data + data view + Obnoviť dáta v tabuľke + + + + First page + data view + Prvá strana + + + + Previous page + data view + Predchádzajúca strana + + + + Next page + data view + Nasledujúca strana + + + + Last page + data view + Posledná strana + + + + Commit changes for selected cells + data view + Potvrdiť zmeny pre vybrané bunky + + + + Rollback changes for selected cells + data view + Vrátiť späť zmeny pre vybrané bunky + + + + Show grid view of results + data view + Výsledky zobraziť v tabuľke + + + + Show form view of results + data view + Výsledky zobraziť vo formulári + + + + Filter by text (if contains) + data view + Filter by text (if contains) + + + + Filter strictly by text (if equals) + data view + Filter strictly by text (if equals) + + + + Tabs on top + data view + Záložky hore + + + + Tabs at bottom + data view + Záložky dole + + + + Place new rows above selected row + data view + Place new rows above selected row + + + + Place new rows below selected row + data view + Place new rows below selected row + + + + Place new rows at the end of the data view + data view + Place new rows at the end of the data view + + + + Total number of rows is being counted. +Browsing other pages will be possible after the row counting is done. + Spočítava sa celkový počet riadkov. +Prezeranie ďalších strán bude možné až po dokončení spočítavania. + + + + Row: %1 + Riadok:%1 + + + + Filter + Filter + + + + Hit Enter key or press "Apply filter" button on toolbar to apply new value. + Hit Enter key or press "Apply filter" button on toolbar to apply new value. + + + + Filter by the Regular Expression + data view + Filtrovať pomocou regulárneho výrazu + + + + Filter by SQL expression + data view + Filtrovať pomocou SQL výrazu + + + + Show filter inputs per column + data view + Show filter inputs per column + + + + Apply filter + data view + Aplikovať filter + + + + DbDialog + + + Database + Databáza + + + + Database type + Typ databázy + + + + Database driver + Databázový ovládač + + + + + File + Súbor + + + + Name (on the list) + Názov (v zozname) + + + + Options + Voľby + + + + <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> + aasfd + <p>Databáza sa uloží do konfiguračného súboru a bude obnovená pri každom spustení SQLiteStudia.</p> + + + + Permanent (keep it in configuration) + Zapamätať si databázu + + + + Test connection + Test spojenia + + + + Select new or existing file on local computer + Select new or existing file on local computer + + + + Browse + Prehľadávať + + + + Database type not selected. + Database type not selected. + + + + Database path not specified. + Database path not specified. + + + + Enter an unique database name. + Zadajte názov databázy. + + + + This name is already in use. Please enter unique name. + Tento názov už existuje. Prosím zadajte iný názov. + + + + <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> + <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> + + + + Enter a database file path. + Zadajte cestu k databázovému súboru. + + + + This database is already on the list under name: %1 + Táto databáza už je v zozname pod názvom: %1 + + + + Select a database type. + Vyberte typ databázy. + + + + DbObjectDialogs + + + Delete table + Vymazať tabuľku + + + + Are you sure you want to delete table %1? + Ste si istý, že chcete vymazať tabuľku %1? + + + + Delete index + Vymazať index + + + + Are you sure you want to delete index %1? + Ste si istý, že chcete vymazať index %1? + + + + Delete trigger + Vymazať spúšťač + + + + Are you sure you want to delete trigger %1? + Ste si istý, že chcete vymazať spúšťač %1? + + + + Delete view + Vymazať pohľad + + + + Are you sure you want to delete view %1? + Are you sure you want to delete view %1? + + + + + Error while dropping %1: %2 + Vyskystla sa chyba počas mazania %1: %2 + + + + Delete objects + Odstránenie objektov + + + + Are you sure you want to delete following objects: +%1 + Are you sure you want to delete following objects: +%1 + + + + Cannot start transaction. Details: %1 + Cannot start transaction. Details: %1 + + + + Cannot commit transaction. Details: %1 + Cannot commit transaction. Details: %1 + + + + DbTree + + + Databases + Databázy + + + + Filter by name + Filtrovať podľa názvu + + + + Copy + Kopírovať + + + + Paste + Vložiť + + + + Select all + Vybrať všetko + + + + Create a group + Vytvoriť skupinu + + + + Delete the group + Vymazať skupinu + + + + Rename the group + Premenovať skupinu + + + + &Add a database + &Add a database + + + + &Edit the database + &Edit the database + + + + &Remove the database + &Remove the database + + + + &Connect to the database + &Connect to the database + + + + &Disconnect from the database + &Disconnect from the database + + + + Import + Importovať + + + + &Export the database + &Export the database + + + + Vac&uum + Vac&uum + + + + &Integrity check + &Integrity check + + + + Create a &table + Create a &table + + + + Edit the t&able + Edit the t&able + + + + Delete the ta&ble + Delete the ta&ble + + + + Export the table + Exportovať tabuľku + + + + Import into the table + Importovať do tabuľky + + + + Populate table + Naplniť tabuľku + + + + Create similar table + Vytvoriť rovnakú tabuľku + + + + Reset autoincrement sequence + Resetovať sekvenciu autoinkrementu + + + + Create an &index + Create an &index + + + + Edit the i&ndex + Edit the i&ndex + + + + Delete the in&dex + Delete the in&dex + + + + Create a trig&ger + Create a trig&ger + + + + Edit the trigg&er + Edit the trigg&er + + + + Delete the trigge&r + Delete the trigge&r + + + + Create a &view + Create a &view + + + + Edit the v&iew + Edit the v&iew + + + + Delete the vi&ew + Delete the vi&ew + + + + Add a column + Pridať stĺpec + + + + Edit the column + Upraviť stĺpec + + + + Delete the column + Vymazať stĺpec + + + + Delete selected items + Vymazať vybrané položky + + + + Clear filter + Zrušiť filter + + + + &Refresh all database schemas + &Refresh all database schemas + + + + Re&fresh selected database schema + Re&fresh selected database schema + + + + + Erase table data + Vymazať dáta z tabuľky + + + + Open file's directory + Open file's directory + + + + Execute SQL from file + Execute SQL from file + + + + Increase font size + database list + Increase font size + + + + Decrease font size + database list + Decrease font size + + + + + Database + Databáza + + + + Grouping + Zoskupovanie + + + + Generate query for table + Generate query for table + + + + + Create group + Vytvoriť skupinu + + + + Group name + Názov skupiny + + + + Entry with name %1 already exists in group %2. + Položka s názvom %1 už existuje v skupine %2. + + + + Delete group + Vymazať skupinu + + + + Are you sure you want to delete group %1? +All objects from this group will be moved to parent group. + Ste si istý, že chcete vymazať skupinu %1? +Všetky objekty z tejto skupiny budú presunuté do nadradenej skupiny. + + + + Are you sure you want to remove database '%1' from the list? + Are you sure you want to remove database '%1' from the list? + + + + Are you sure you want to remove following databases from the list: +%1 + Are you sure you want to remove following databases from the list: +%1 + + + + Remove database + Remove database + + + + + Cannot import, because no import plugin is loaded. + Nemôžem importovať, lebo nebol načítaný žiaden plugin na import. + + + + + Cannot export, because no export plugin is loaded. + Nemôžem exportovať, lebo nebol načítaný žiaden plugin na export. + + + + Vacuum (%1) + Vacuum (%1) + + + + Integrity check (%1) + Kontrola integrity (%1) + + + + Reset autoincrement + Resetovať autoinkrement + + + + Are you sure you want to reset autoincrement value for table '%1'? + Ste si istý, že chcete zresetovať hodnotu autoinkrementu pre tabuľku %1 ? + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + Vyskytla sa chyba pri pokuse o zresetovanie hodnoty autoinkrementu pre tebuľku '%1': %2 + + + + Autoincrement value for table '%1' has been reset successfully. + Autoincrement value for table '%1' has been reset successfully. + + + + Are you sure you want to delete all data from table(s): %1? + Are you sure you want to delete all data from table(s): %1? + + + + An error occurred while trying to delete data from table '%1': %2 + Vyskytla sa chyba pri pokuse vymazať dáta z tabuľky '%1': %2 + + + + All data has been deleted for table '%1'. + Všetky dáta z tabuľky '%1' boli vymazané. + + + + Following objects will be deleted: %1. + Nasledujúce objekty budú odstránené: %1. + + + + Following databases will be removed from list: %1. + Nasledujúce databázy budú odstránené zo zoznamu: %1. + + + + Remainig objects from deleted group will be moved in place where the group used to be. + Remainig objects from deleted group will be moved in place where the group used to be. + + + + %1<br><br>Are you sure you want to continue? + %1<br><br>Ste si istý, že chcete pokračovať? + + + + Delete objects + Odstránenie objektov + + + + DbTreeItemDelegate + + + error + dbtree labels + error + + + + (system table) + database tree label + (system table) + + + + (virtual) + virtual table label + (virtual) + + + + (system index) + database tree label + (system index) + + + + DbTreeModel + + + Database: %1 + dbtree tooltip + Databáza: %1 + + + + URI: + dbtree tooltip + URI: + + + + Version: + dbtree tooltip + Verzia: + + + + File size: + dbtree tooltip + Veľkosť súboru: + + + + Encoding: + dbtree tooltip + Kódovanie: + + + + Error: + dbtree tooltip + Error: + + + + Table : %1 + dbtree tooltip + Tabuľka : %1 + + + + Columns (%1): + dbtree tooltip + Stĺpce (%1): + + + + Indexes (%1): + dbtree tooltip + Indexy (%1): + + + + Triggers (%1): + dbtree tooltip + Spúšťače (%1): + + + + Copy + Kopírovať + + + + Move + Move + + + + Include data + Include data + + + + Include indexes + Include indexes + + + + Include triggers + Include triggers + + + + Abort + Zrušiť + + + + Could not add dropped database file '%1' automatically. Manual setup is necessary. + Could not add dropped database file '%1' automatically. Manual setup is necessary. + + + + Referenced tables + Referenced tables + + + + Do you want to include following referenced tables as well: +%1 + Do you want to include following referenced tables as well: +%1 + + + + Name conflict + Name conflict + + + + Following object already exists in the target database. +Please enter new, unique name, or press '%1' to abort the operation: + Following object already exists in the target database. +Please enter new, unique name, or press '%1' to abort the operation: + + + + SQL statements conversion + SQL statements conversion + + + + Following error occurred while converting SQL statements to the target SQLite version: + Following error occurred while converting SQL statements to the target SQLite version: + + + + Would you like to ignore those errors and proceed? + Would you like to ignore those errors and proceed? + + + + DdlHistoryWindow + + + Filter by database: + Filter by database: + + + + Clear entire history + Clear entire history + + + + -- Queries executed on database %1 (%2) +-- Date and time of execution: %3 +%4 + -- Queries executed on database %1 (%2) +-- Date and time of execution: %3 +%4 + + + + Clear history + Clear history + + + + Are you sure you want to erase entire DDL history? + Are you sure you want to erase entire DDL history? + + + + DDL history + DDL história + + + + DdlPreviewDialog + + + Queries to be executed + Dotazy, ktoré budú vykonané + + + + Don't show again + Znovu nezobrazovať + + + + DebugConsole + + + SQLiteStudio Debug Console + SQLiteStudio Debug Console + + + + EditorWindow + + + SQL editor + SQL editor + + + + Query + Dotaz + + + + History + História + + + + Results in the separate tab + Výsledky zobraziť v samostatnej záložke + + + + Results below the query + Výsledky zobraziť pod dotaz + + + + + SQL editor %1 + SQL editor %1 + + + + + Results + Výsledky + + + + Execute query + Vykonať dotaz + + + + Explain query + Vysvetliť dotaz + + + + Clear execution history + sql editor + Vymazať históriu dotazov + + + + Export results + sql editor + Vyexportovať výsledky + + + + Create view from query + sql editor + Vytvoriť pohľad z dotazu + + + + Previous database + Predchádzajúca databáza + + + + Next database + Nasledujúca databáza + + + + Show next tab + sql editor + Zobraziť nasledujúcu záložku + + + + Show previous tab + sql editor + Zobraziť predchádzajúcu záložku + + + + Focus results below + sql editor + Focus results below + + + + Focus SQL editor above + sql editor + Focus SQL editor above + + + + Delete selected SQL history entries + sql editor + Delete selected SQL history entries + + + + Execute single query under cursor + Execute single query under cursor + + + + Execute all queries in editor + Execute all queries in editor + + + + Active database (%1/%2) + Aktívna databáza (%1/%2) + + + + Query finished in %1 second(s). Rows affected: %2 + Dotaz trval %1 sekúnd. Počet dotknutých riadkov: %2 + + + + Query finished in %1 second(s). + Dotaz trval %1 sekúnd. + + + + Clear execution history + Vymazať históriu dotazov + + + + Are you sure you want to erase the entire SQL execution history? This cannot be undone. + Ste si istý, že chete vymazať celú históriu SQL dotazov? Túto operáciu nieje možné vrátiť späť. + + + + Cannot export, because no export plugin is loaded. + Nemôžem exportovať, lebo nebol načítaný žiaden plugin na export. + + + + No database selected in the SQL editor. Cannot create a view for unknown database. + Nebola vybraná žiadna databáza v SQL editore. Nemôžem vytvoriť view pre neznámu databázu. + + + + Editor window "%1" has uncommitted data. + Editor window "%1" has uncommitted data. + + + + ErrorsConfirmDialog + + + Errors + Errors + + + + Following errors occured: + Following errors occured: + + + + Would you like to proceed? + Would you like to proceed? + + + + ExecFromFileDialog + + + Execute SQL from file + Execute SQL from file + + + + Input file + Input file + + + + Path to file + Path to file + + + + Browse for file + Browse for file + + + + Options + Voľby + + + + File encoding + File encoding + + + + Skip failing SQL statements + Skip failing SQL statements + + + + SQL scripts (*.sql);;All files (*) + SQL scripts (*.sql);;All files (*) + + + + Execute SQL file + Execute SQL file + + + + Please provide file to be executed. + Please provide file to be executed. + + + + Provided file does not exist or cannot be read. + Provided file does not exist or cannot be read. + + + + ExportDialog + + + Export + Export + + + + What do you want to export? + Čo chcete exportovať? + + + + A database + Databáza + + + + A single table + Jednotlivá tabuľka + + + + Query results + Výsledky dotazu + + + + Table to export + Tabuľka na export + + + + Database + Databáza + + + + Table + Tabuľka + + + + Options + Voľby + + + + When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. + Ak táto voľba nebude označená, tak sa vyexportuje len DDL tabuľky(príkaz CREATE TABLE). + + + + Export table data + Exportovať dáta tabuľky + + + + Export table indexes + Exportovať indexy tabuľky + + + + Export table triggers + Exportovať spúšťače tabuľky + + + + Note, that exporting table indexes and triggers may be unsupported by some output formats. + Poznámka. Niektoré exportné formáty nemusia podporovať export indexov a spúšťačov. + + + + Select database objects to export + Vyberte databázové objekty, ktoré chcete exportovať + + + + Export data from tables + Exportovať dáta z tabuliek + + + + Select all + Vybrať všetko + + + + Deselect all + Zrušiť výber + + + + + Database: + Databáza: + + + + Query to export results for + Dotaz pre export výsledkov pre + + + + Query to be executed for results: + Dotaz, ktorý bude vykonaný pre získanie dát: + + + + Export format and options + Formát exportu a možnosti + + + + Export format + Formát exportu + + + + Output + Výstup + + + + Exported file path + Cesta k výstupnému súboru + + + + Clipboard + Schránka + + + + File + Súbor + + + + Exported text encoding: + Kódovanie vyexportovaného textu: + + + + Export format options + Možnosti formátu exportu + + + + Cancel + Zrušiť + + + + + + Select database to export. + Vyberte databázu, ktorú chcete exportovať. + + + + Select table to export. + Vyberte tabuľku, ktorú chcete exportovať. + + + + Enter valid query to export. + Zadajte platný dotaz pre export. + + + + Select at least one object to export. + Vyberte aspoň jeden objekt pre export. + + + + You must provide a file name to export to. + Musíte zadať názov súboru, do ktorého sa budú exportovať dáta. + + + + Path you provided is an existing directory. You cannot overwrite it. + Cesta, ktorú ste zadali je existujúci adresár. Nemôžte ho prepísať. + + + + The directory '%1' does not exist. + Adresár %1 neexistuje. + + + + The file '%1' exists and will be overwritten. + Súbor %1 už existuje a bude prepísaný. + + + + All files (*) + Všetky súbory (*) + + + + Pick file to export to + Výber súboru do ktorého sa budú exportovať dáta + + + + Internal error during export. This is a bug. Please report it. + Počas exportu sa vyskytla interná chyba. Toto je chyba v programe. Prosím nahláste ju. + + + + FileExecErrorsDialog + + + Execution errors + Execution errors + + + + Following errors were encountered during execution of SQL statements from the file: + Following errors were encountered during execution of SQL statements from the file: + + + + SQL + SQL + + + + Error + Chyba + + + + Statements that were executed successfully were commited. + Statements that were executed successfully were commited. + + + + Statements that were executed successfully were rolled back. + Statements that were executed successfully were rolled back. + + + + FkComboBox + + + Cannot edit this cell. Details: %1 + Cannot edit this cell. Details: %1 + + + + FontEdit + + + Choose font + font configuration + Choose font + + + + Form + + + Active SQL formatter plugin + Active SQL formatter plugin + + + + FormView + + + Commit row + form view + Potvrdiť riadok + + + + Rollback row + form view + Vrátiť späť riadok + + + + First row + form view + Prvý riadok + + + + Previous row + form view + Predchádzajúci riadok + + + + Next row + form view + Nasledujúci riadok + + + + Last row + form view + Posledný riadok + + + + Insert new row + form view + Vložiť nový riadok + + + + Delete current row + form view + Vymazať aktuálny riadok + + + + FunctionsEditor + + + Filter functions + Filter functions + + + + Input arguments + Input arguments + + + + Undefined + Undefined + + + + Databases + Databázy + + + + Register in all databases + Registrovať vo všetkých databázach + + + + Register in following databases: + Registrovať v nasledujúcich databázach: + + + + Type: + Typ: + + + + Function name: + Function name: + + + + Implementation language: + Implementačný jazyk: + + + + Deterministic + Deterministic + + + + Initialization code: + Initialization code: + + + + + Function implementation code: + Function implementation code: + + + + Final step implementation code: + Final step implementation code: + + + + SQL functions editor + SQL functions editor + + + + Commit all function changes + Commit all function changes + + + + Rollback all function changes + Rollback all function changes + + + + Create new function + Create new function + + + + Delete selected function + Delete selected function + + + + Custom SQL functions manual + Custom SQL functions manual + + + + Add function argument + Add function argument + + + + Rename function argument + Rename function argument + + + + Delete function argument + Delete function argument + + + + Move function argument up + Move function argument up + + + + Move function argument down + Move function argument down + + + + Scalar + Scalar + + + + Aggregate + Aggregate + + + + Enter a non-empty, unique name of the function. + Enter a non-empty, unique name of the function. + + + + Pick the implementation language. + Vyberte implementačný jazyk. + + + + Per step code: + Per step code: + + + + Enter a non-empty implementation code. + Zadajte implementačný kód. + + + + argument + new function argument name in function editor window + argument + + + + Functions editor window has uncommitted modifications. + Functions editor window has uncommitted modifications. + + + + ImportDialog + + + Import data + Import dát + + + + Table to import to + Tabuľka na import + + + + Table + Tabuľka + + + + Database + Databáza + + + + Data source to import from + Dátový zdroj na import + + + + Data source type + Typ dátového zdroja + + + + Options + Voľby + + + + Text encoding: + Kódovanie textu: + + + + Input file: + Vstupný súbor: + + + + <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> + <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> + + + + Ignore errors + Ignorovať chyby + + + + Data source options + Nastavenia dátového zdroja + + + + Cancel + Zrušiť + + + + If you type table name that doesn't exist, it will be created. + Ak zadáte názov neexistujúcej tabuľky, tak bude vytvorená. + + + + Enter the table name + Zadajte názov tabuľky + + + + Select import plugin. + Vyberte importný plugin. + + + + You must provide a file to import from. + Musíte zadať súbor, z ktorého sa budú importovať dáta. + + + + The file '%1' does not exist. + Súbor %1 neexistuje. + + + + Path you provided is a directory. A regular file is required. + Cesta, ktorú ste zadali je adresár. Prosím zadajte celú cestu. + + + + Pick file to import from + Výber súboru, z ktorého sa budú importovať dáta + + + + IndexDialog + + + + Index + Index + + + + Column + Stĺpec + + + + Sort + Zoradiť + + + + Collation + Porovnávanie + + + + On table: + Na tabuľke: + + + + Delete selected indexed expression + Delete selected indexed expression + + + + Moves selected index column up in the order, making it more significant in the index. + Moves selected index column up in the order, making it more significant in the index. + + + + Moves selected index column down in the order, making it less significant in the index. + Moves selected index column down in the order, making it less significant in the index. + + + + Partial index condition + Partial index condition + + + + Unique index + Jedinečný index + + + + Index name: + Názov indexu: + + + + Edit selected indexed expression + Edit selected indexed expression + + + + Add indexed expression + Add indexed expression + + + + DDL + DDL + + + + Tried to open index dialog for closed or inexisting database. + Tried to open index dialog for closed or inexisting database. + + + + Could not process index %1 correctly. Unable to open an index dialog. + Could not process index %1 correctly. Unable to open an index dialog. + + + + Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. + Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. + + + + Pick the table for the index. + Pick the table for the index. + + + + Select at least one column. + Vyberte minimálne jeden stĺpec. + + + + Enter a valid condition. + Zadajte platnú podmienku. + + + + default + index dialog + default + + + + Sort order + table constraints + Zoradiť + + + + + Error + index dialog + Chyba + + + + Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? + Nemôžem vytvoriť jedinečný index, pretože hodnoty vo vybraných stĺpcoch nie sú jedinečné. Chcete spustiť dotaz SELECT na zobrazenie problematických hodnôt? + + + + An error occurred while executing SQL statements: +%1 + An error occurred while executing SQL statements: +%1 + + + + IndexExprColumnDialog + + + Indexed expression + Indexed expression + + + + Expression to index + Expression to index + + + + This expression is already indexed by the index. + This expression is already indexed by the index. + + + + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. + + + + Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. + Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. + + + + It's forbidden to use 'SELECT' statements in indexed expressions. + It's forbidden to use 'SELECT' statements in indexed expressions. + + + + Enter an indexed expression. + Enter an indexed expression. + + + + Invalid expression. + Invalid expression. + + + + LanguageDialog + + + Language + Jazyk + + + + Please choose language: + Prosím vyberte si jazyk: + + + + MainWindow + + + Database toolbar + Databázová lišta + + + + Structure toolbar + Lišta štruktúr + + + + Tools + Nástroje + + + + Window list + Lišta okien + + + + View toolbar + Lišta pohľadov + + + + Configuration widgets + Configuration widgets + + + + Syntax highlighting engines + Syntax highlighting engines + + + + Data editors + Editory dát + + + + Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. + Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. + + + + Running in debug mode. Debug messages are printed to the standard output. + Beží v ladiacom móde. Ladiace správy sú vypisované na štandardný výstup. + + + + You need to restart application to make the language change take effect. + Je potrebné reštartovať aplikáciu aby sa zmena jazyka prejavila. + + + + Open SQL &editor + Open SQL &editor + + + + Open DDL &history + Open DDL &history + + + + Open SQL &functions editor + Open SQL &functions editor + + + + Open code &snippets editor + Open code &snippets editor + + + + Open &collations editor + Open &collations editor + + + + Open ex&tension manager + Open ex&tension manager + + + + &Import + &Import + + + + E&xport + E&xport + + + + Open confi&guration dialog + Open confi&guration dialog + + + + &Tile windows + &Tile windows + + + + Tile windows &horizontally + Tile windows &horizontally + + + + Tile windows &vertically + Tile windows &vertically + + + + &Cascade windows + &Cascade windows + + + + Next window + Nasledujúce okno + + + + Previous window + Predchádzajúce okno + + + + Hide status field + Hide status field + + + + Close &all windows + Close &all windows + + + + Re&store recently closed window + Re&store recently closed window + + + + Close current &window + Close current &window + + + + Close &other windows + Close &other windows + + + + Close windows on the &left + Close windows on the &left + + + + Close windows on the &right + Close windows on the &right + + + + Re&name selected window + Re&name selected window + + + + Open Debug Console + Otvoriť ladiacu konzolu + + + + Open CSS Console + Otvoriť CSS konzolu + + + + Report a &bug + Report a &bug + + + + D&onate + D&onate + + + + Propose a new &feature + Propose a new &feature + + + + &About + &About + + + + &Licenses + &Licenses + + + + Open home &page + Open home &page + + + + User &Manual + User &Manual + + + + SQLite &documentation + SQLite &documentation + + + + Bugs and feature &requests + Bugs and feature &requests + + + + Quit + Quit + + + + Check for &updates + Check for &updates + + + + &Database + menubar + &Database + + + + &Structure + menubar + &Structure + + + + &View + menubar + &View + + + + Window list + menubar view menu + Lišta okien + + + + &Tools + menubar + &Tools + + + + &Help + &Help + + + + Could not set style: %1 + main window + Nemôžem nastaviť štýl: %1 + + + + Cannot export, because no export plugin is loaded. + Nemôžem exportovať, lebo nebol načítaný žiaden plugin na export. + + + + Cannot import, because no import plugin is loaded. + Nemôžem importovať, lebo nebol načítaný žiaden plugin na import. + + + + Rename window + Premenovať okno + + + + Enter new name for the window: + Zadajte nový názov pre okno: + + + + New updates are available. <a href="%1">Click here for details</a>. + Nové aktualizácie sú dostupné. <a href="%1">Kliknite sem pre zobrazenie detailov</a>. + + + + You're running the most recent version. No updates are available. + Niesú dostupné žiadne aktualizácie. Používate aktuálnu verziu. + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + Databáza prebratá z príkazového riadka (%1) už je v zozname pod názvom: %2 + + + + Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 + Databáza prebratá z príkazového riadka (%1) bola dočasne pridaná do zoznamu pod názvom: %2 + + + + Could not add database %1 to list. + Nemôžem pridať databázu %1 do zoznamu. + + + + MdiWindow + + + Uncommitted changes + Uncommitted changes + + + + Close anyway + Zatvoriť aj napriek tomu + + + + Don't close + Nezatvárať + + + + MultiEditor + + + Null value + multieditor + Hodnota null + + + + Configure editors for this data type + Configure editors for this data type + + + + Open another tab + Open another tab + + + + Foreign Key + Cudzí klúč + + + + Data editor plugin '%1' not loaded, while it is defined for editing '%2' data type. + Data editor plugin '%1' not loaded, while it is defined for editing '%1' data type. {1'?} {2'?} {1' or 2'?} + + + + Deleted + multieditor + Deleted + + + + Read only + multieditor + Iba na čítanie + + + + MultiEditorBoolPlugin + + + Boolean + Boolean + + + + MultiEditorDatePlugin + + + Date + Dátum + + + + MultiEditorDateTimePlugin + + + Date & time + Dátum a čas + + + + MultiEditorHexPlugin + + + Hex + Hex + + + + MultiEditorNumericPlugin + + + Number + numeric multi editor tab name + Číslo + + + + MultiEditorText + + + Tab changes focus + Tab changes focus + + + + Cut + Vystrihnúť + + + + Copy + Kopírovať + + + + Paste + Vložiť + + + + Delete + Vymazať + + + + Undo + Undo + + + + Redo + Redo + + + + MultiEditorTextPlugin + + + Text + Text + + + + MultiEditorTimePlugin + + + Time + Time + + + + NewConstraintDialog + + + New constraint + Nové obmedzenie + + + + + Primary Key + new constraint dialog + Primárny klúč + + + + + Foreign Key + new constraint dialog + Cudzí klúč + + + + + Unique + new constraint dialog + Jedinečnosť + + + + + Check + new constraint dialog + Check + + + + Not NULL + new constraint dialog + Nie NULL + + + + Collate + new constraint dialog + Porovnanie + + + + Generated + new constraint dialog + Generated + + + + Default + new constraint dialog + Prednastavená hodnota + + + + NewVersionDialog + + + SQLiteStudio updates + Aktualizácie SQLiteStudia + + + + New version is available! + New version is available! + + + + Download new version! + Download new version! + + + + New version package will be downloaded. It will be up to you to install it whenever you're ready. + New version package will be downloaded. It will be up to you to install it whenever you're ready. + + + + Open SQLiteStudio home page. + Open SQLiteStudio home page. + + + + Read release notes && download package yourself. + Read release notes && download package yourself. + + + + Just close this window. + Just close this window. + + + + Check for updates on startup + Kontrolovať aktualizácie pri štarte + + + + Not now. + Nie teraz. + + + + PopulateConfigDialog + + + Populating configuration + Populating configuration + + + + Configuring <b>%1</b> for column <b>%2</b> + Configuring <b>%1</b> for column <b>%2</b> + + + + PopulateDialog + + + Populate table + Naplniť tabuľku + + + + Database + Databáza + + + + Table + Tabuľka + + + + Columns + Stĺpce + + + + Number of rows to populate: + Počet riadkov na naplnenie: + + + + Populate + populate dialog button + Naplniť + + + + Abort + Zrušiť + + + + Configure + Konfigurovať + + + + Populating configuration for this column is invalid or incomplete. + Populating configuration for this column is invalid or incomplete. + + + + Select database with table to populate + Vyberte databázu s tabuľkou na naplnenie + + + + Select table to populate + Vyberte tabuľku na naplnenie + + + + You have to select at least one column. + Musíte vybrať minimálne jeden stĺpec. + + + + QObject + + + Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). + Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). + + + + The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. + The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. + + + + Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. + Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. + + + + Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. + Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. + + + + Cannot edit results of query other than %1. + Cannot edit results of query other than %1. + + + + Cannot edit columns that are result of aggregated %1 statements. + Cannot edit columns that are result of aggregated %1 statements. + + + + Cannot edit columns that are result of %1 statement. + Cannot edit columns that are result of %1 statement. + + + + Cannot edit columns that are result of common table expression statement (%1). + Cannot edit columns that are result of common table expression statement (%1). + + + + Cannot edit table generated columns. + Cannot edit table generated columns. + + + + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). + + + + + + + on conflict: %1 + data view tooltip + Pri konflikte: %1 + + + + references table %1, column %2 + data view tooltip + references table %1, column %2 + + + + condition: %1 + data view tooltip + condition: %1 + + + + collation name: %1 + data view tooltip + Názov porovnánavania: %1 + + + + Data grid view + Tabuľkové zobrazenie dát + + + + Edit current cell inline + Edit current cell inline + + + + Copy cell(s) contents to clipboard + Kopírovať obsah buniek do schránky + + + + Copy cell(s) contents together with header to clipboard + Copy cell(s) contents together with header to clipboard + + + + Paste cell(s) contents from clipboard + Vložiť obsah buniek zo schránky + + + + Set empty value to selected cell(s) + Vymazať hodnoty z vybraných buniek + + + + Set NULL value to selected cell(s) + Nastaviť NULL hodnotu vo vybraných bunkách + + + + Commit changes to cell(s) contents + Potvrdiť zmeny v bunkách + + + + Rollback changes to cell(s) contents + Vrátiť späť zmeny v bunkách + + + + Delete selected data row + Vymazať vybraný riadok + + + + Insert new data row + Vložiť nový riadok + + + + Open contents of selected cell in a separate editor + Otvoriť obsah vybranej bunky v samostatnom editore + + + + Toggle the height adjustment of rows + Toggle the height adjustment of rows + + + + Increase font size + data view + Increase font size + + + + Decrease font size + data view + Decrease font size + + + + Total pages available: %1 + Celkový počet strán: %1 + + + + Total rows loaded: %1 + Celkový počet riadkov: %1 + + + + Data view (both grid and form) + Zobrazenie dát (tabuľka a formulár) + + + + Refresh data + Obnoviť dáta + + + + Switch to grid view of the data + Prepnúť na tabuľkové zobrazenie dát + + + + Switch to form view of the data + Prepnúť na formulárové zobrazenie dát + + + + Database list + Zoznam databáz + + + + Delete selected item + Vymazať vybranú položku + + + + Clear filter contents + Vymazať filter + + + + Refresh schema + Obnoviť schému + + + + Refresh all schemas + Obnoviť všetky schémy + + + + Add database + Pridať databázu + + + + Select all items + Vybrať všetky položky + + + + Copy selected item(s) + Kopírovať vybrané položky + + + + + + Paste from clipboard + Vložiť zo schránky + + + + Increase font size + database list + Increase font size + + + + Decrease font size + database list + Decrease font size + + + + Tables + Tabuľky + + + + Indexes + Indexy + + + + Triggers + Spúšťače + + + + Views + Pohľady + + + + Columns + Stĺpce + + + + Data form view + Formulárové zobrazenie dát + + + + Commit changes for current row + Potvrdiť zmeny pre aktuálny riadok + + + + Rollback changes for current row + Vrátiť späť zmeny na aktuálnom riadku + + + + Go to first row on current page + Prejsť na prvý riadok na aktuálnej strane + + + + Go to next row + Prejsť na nasledujúci riadok + + + + Go to previous row + Prejsť na predchádzajúci riadok + + + + Go to last row on current page + Prejsť na posledný riadok na aktuálnej strane + + + + Insert new row + Vložiť nový riadok + + + + Delete current row + Vymazať aktuálny riadok + + + + Main window + Hlavné okno + + + + Open SQL editor + Otvoriť SQL editor + + + + Open DDL history window + Open DDL history window + + + + Open snippets editor window + Open snippets editor window + + + + Open function editor window + Open function editor window + + + + Open collation editor window + Open collation editor window + + + + Open extension manager window + Open extension manager window + + + + Previous window + Predchádzajúce okno + + + + Next window + Nasledujúce okno + + + + Hide status area + Skryť status okno + + + + Open user manual + Open user manual + + + + Open configuration dialog + Otvoriť konfiguračné okno + + + + Open Debug Console + Otvoriť ladiacu konzolu + + + + Open CSS Console + Otvoriť CSS konzolu + + + + Open the About dialog + Open the About dialog + + + + Quit the application + Quit the application + + + + Cell text value editor + Úprava hodnôt v bunkách + + + + + Cut selected text + Vystrihnúť vybraný text + + + + + Copy selected text + Kopírovať vybraný text + + + + + Delete selected text + Vymazať vybraný text + + + + + Undo + Undo + + + + + Redo + Redo + + + + SQL editor input field + SQL editor input field + + + + Select whole editor contents + Označiť všetko + + + + Save contents into a file + Uložiť SQL do súboru + + + + Load contents from a file + Načítať SQL zo súboru + + + + Find in text + Nájsť v SQL + + + + Find next + Nájsť ďalší + + + + Find previous + Nájsť predchádzajúci + + + + Replace in text + Nahradiť v SQL + + + + Delete current line + Vymazať aktuálny riadok + + + + Request code assistant + Otvoriť SQL pomocníka + + + + Format contents + Formátovať SQL + + + + Move selected block of text one line down + Presunúť blok kódu o riadok nižšie + + + + Move selected block of text one line up + Presunúť blok kódu o riadok vyššie + + + + Copy selected block of text and paste it a line below + Kopírovať blok kódu a vložiť ho na riadok nižšie + + + + Copy selected block of text and paste it a line above + Kopírovať blok kódu a vložiť ho na riadok vyššie + + + + Toggle comment + Toggle comment + + + + Increase font size + sql editor + Increase font size + + + + Decrease font size + sql editor + Decrease font size + + + + All SQLite databases + Všetky SQLite databázy + + + + All files + Všetky súbory + + + + Select database file + Select database file + + + + Select + Select + + + + File type + File type + + + + SQL editor window + Okno SQL editora + + + + Execute query + Vykonať dotaz + + + + Execute single query under cursor + Execute single query under cursor + + + + Execute all queries in editor + Execute all queries in editor + + + + Execute "%1" query + Vykonať "%1" dotaz + + + + Switch current working database to previous on the list + Prepnúť sa na predchádzajúcu databázu v zozname + + + + Switch current working database to next on the list + Prepnúť sa na nasledujúcu databázu v zozname + + + + Go to next editor tab + Prechod na nasledujúcu záložku editora + + + + Go to previous editor tab + Prechod na predchádzajúcu záložku editora + + + + Move keyboard input focus to the results view below + Prepnúť kurzor na výsledky + + + + Move keyboard input focus to the SQL editor above + Prepnúť kurzor do editora + + + + Delete selected SQL history entries + Delete selected SQL history entries + + + + Table window + Okno tabuľky + + + + Commit the table structure + Commit the table structure + + + + Rollback pending changes in the table structure + Rollback pending changes in the table structure + + + + Refresh table structure + Obnoviť štruktúru tabuľky + + + + Add new column + Pridať nový stĺpec + + + + Edit selected column + Upraviť vybraný stĺpec + + + + Delete selected column + Vymazať vybraný stĺpec + + + + Export table data + Exportovať dáta z tabuľky + + + + Import data to the table + Importovať dáta do tabuľky + + + + Add new table constraint + Pridať nové obmedzenie + + + + Edit selected table constraint + Upraviť vybrané obmedzenie + + + + Delete selected table constraint + Vymazať vybrané obmedzenie + + + + Refresh table index list + Obnoviť zoznam indexov + + + + Add new index + Pridať nový index + + + + Edit selected index + Upraviť vybraný index + + + + Delete selected index + Vymazať vybraný index + + + + Refresh table trigger list + Obnoviť zoznam spúšťačov + + + + + Add new trigger + Pridať nový spúšťač + + + + + Edit selected trigger + Upraviť vybraný spúšťač + + + + + Delete selected trigger + Vymazať vybraný spúšťač + + + + + Go to next tab + Prechod na nasledujúcu záložku + + + + + Go to previous tab + Prechod na predchádzajúcu záložku + + + + A view window + Okno pohľadu + + + + Commit the view's query + Commit the view's query + + + + Rollback pending changes in the view's query + Rollback pending changes in the view's query + + + + Refresh view trigger list + Refresh view trigger list + + + + Execute the view's query + Execute the view's query + + + + A code snippets editor window + A code snippets editor window + + + + + + + Commit the pending changes + Commit the pending changes + + + + + + + Rollback the pending changes + Rollback the pending changes + + + + A collation editor window + A collation editor window + + + + A function editor window + A function editor window + + + + A SQLite extension editor window + A SQLite extension editor window + + + + QuitConfirmDialog + + + Uncommitted changes + Uncommitted changes + + + + Are you sure you want to quit the application? + +Following items are pending: + Are you sure you want to quit the application? + +Following items are pending: + + + + SearchTextDialog + + + Find or replace + Nájsť alebo nahradiť + + + + Find: + Nájsť: + + + + Case sensitive + Rozlišovať veľké písmená + + + + Search backwards + Hľadať spätne + + + + Regular expression matching + Regular expression matching + + + + Replace && +find next + Nahradiť a +nájsť ďalší + + + + Replace with: + Nahradiť s: + + + + Replace all + Nahradiť všetko + + + + Find + Nájsť + + + + SortDialog + + + Sort by columns + Zoradiť podľa stĺpcov + + + + + Column + Stĺpec + + + + + Order + Usporiadanie + + + + Sort by: %1 + Zoradiť podľa : %1 + + + + Move column up + Posunúť stĺpec hore + + + + Move column down + Posunúť stĺpec dole + + + + SqlEditor + + + Wrap words + sql editor + Wrap words + + + + Cut + sql editor + Vystrihnúť + + + + Copy + sql editor + Kopírovať + + + + Paste + sql editor + Vložiť + + + + Delete + sql editor + Vymazať + + + + Select all + sql editor + Vybrať všetko + + + + Undo + sql editor + Undo + + + + Redo + sql editor + Redo + + + + Complete + sql editor + Complete + + + + Format SQL + sql editor + Formátovať SQL + + + + Save SQL to file + sql editor + Uložiť SQL do súboru + + + + Select file to save SQL + sql editor + Select file to save SQL + + + + Load SQL from file + sql editor + Načítať SQL zo súboru + + + + Delete line + sql editor + Vymazať riadok + + + + Move block down + sql editor + Move block down + + + + Move block up + sql editor + Move block up + + + + Copy block down + sql editor + Copy block down + + + + Copy up down + sql editor + Copy up down + + + + Find + sql editor + Nájsť + + + + Find next + sql editor + Nájsť ďalší + + + + Find previous + sql editor + Nájsť predchádzajúci + + + + Replace + sql editor + Nahradiť + + + + Toggle comment + sql editor + Toggle comment + + + + Increase font size + sql editor + Increase font size + + + + Decrease font size + sql editor + Decrease font size + + + + Could not open file '%1' for writing: %2 + Nemôžem otvoriť súbor '%1' pre zápis: %2 + + + + Saved SQL contents to file: %1 + Saved SQL contents to file: %1 + + + + Syntax completion can be used only when a valid database is set for the SQL editor. + Syntax completion can be used only when a valid database is set for the SQL editor. + + + + Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. + Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. + + + + Save to file + Uložiť do súboru + + + + SQL scripts (*.sql);;All files (*) + SQL scripts (*.sql);;All files (*) + + + + Open file + Otvoriť súbor + + + + Could not open file '%1' for reading: %2 + Nemôžem otvoriť súbor '%1' na čítanie: %2 + + + + Reached the end of document. Hit the find again to restart the search. + Dosiahnutý koniec súboru. Kliknite na tlačidlo Nájsť pre hľadanie od začiatku súboru. + + + + SqlQueryItem + + + Committing error: + data view tooltip + Committing error: + + + + Column: + data view tooltip + Stĺpec: + + + + Data type: + data view + Datový typ: + + + + Table: + data view tooltip + Tabuľka: + + + + Constraints: + data view tooltip + Obmedzenia: + + + + SqlQueryItemDelegate + + + + + + Cannot edit this cell. Details: %1 + Cannot edit this cell. Details: %1 + + + + The row is marked for deletion. + The row is marked for deletion. + + + + + Structure of this table has changed since last data was loaded. Reload the data to proceed. + Structure of this table has changed since last data was loaded. Reload the data to proceed. + + + + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). + + + + Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. + Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. + + + + SqlQueryModel + + + + Only one query can be executed simultaneously. + Nemôže byť spustených viacero dotazov súčasne. + + + + Cannot execute query on undefined or invalid database. + Cannot execute query on undefined or invalid database. + + + + Cannot execute empty query. + Cannot execute empty query. + + + + Uncommitted data + Uncommitted data + + + + There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. + There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. + + + + Cannot commit the data for a cell that refers to the already closed database. + Nemôžem potrdiť dáta bunky, ktorá odkazuje na už uzatvorenú databázu. + + + + Could not begin transaction on the database. Details: %1 + Nemôžem začať tranzakciu na databáze. Detaily: %1 + + + + An error occurred while committing the transaction: %1 + An error occurred while committing the transaction: %1 + + + + An error occurred while rolling back the transaction: %1 + Vyskytla sa chyba počas vracania späť tranzakcie: %1 + + + + Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. + Nastal pokus o potvrdenie zmien v bunke, ktorú nieje možné upravovať (napriek tomu bola upravená a čaká na potvrdenie)! Toto je chyba. Prosím nahláste ju. + + + + An error occurred while committing the data: %1 + An error occurred while committing the data: %1 + + + + Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. + Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. + + + + + Error while executing SQL query on database '%1': %2 + Vyskytla sa chyba počas vykonávania SQL dotazu na databáze '%1': %2 + + + + Error while loading query results: %1 + Vyskytla sa chyba počas načítavania výsledkov dotazu: %1 + + + + Insert multiple rows + Vložiť viacero riadkov + + + + Number of rows to insert: + Počet vkládaných riadkov: + + + + Delete rows + Delete rows + + + + You're about to delete newly inserted rows that are not committed yet. Row numbers: %1 +Such deletion will be permanent. Are you sure you want to delete them? + You're about to delete newly inserted rows that are not committed yet. Row numbers: %1 +Such deletion will be permanent. Are you sure you want to delete them? + + + + SqlQueryView + + + Go to referenced row in... + Go to referenced row in... + + + + Copy + Kopírovať + + + + Copy with headers + Copy with headers + + + + Copy as... + Kopírovať ako... + + + + Paste + Vložiť + + + + Paste as... + Vložiť ako... + + + + Set NULL values + Nastaviť null hodnoty + + + + Erase values + Vymazať hodnoty + + + + Commit + Potvrdiť + + + + Rollback + Vrátiť späť + + + + Commit selected cells + Potvrdiť vybrané bunky + + + + Rollback selected cells + Vrátiť späť vybrané bunky + + + + Edit current cell inline + Edit current cell inline + + + + Define columns to sort by + Vybrať stĺpce na zoradenie podľa + + + + Remove custom sorting + Odstrániť užívateľské triedenie + + + + Insert row + Vložiť riadok + + + + Insert multiple rows + Vložiť viacero riadkov + + + + Delete selected row + Vymazať viacero riadkov + + + + Adjust height of rows + Adjust height of rows + + + + Increase font size + data view + Increase font size + + + + Decrease font size + data view + Decrease font size + + + + Invert selection + data view + Invert selection + + + + Edit value in editor + Upraviť hodnotu v editory + + + + Show value in a viewer + Show value in a viewer + + + + Generate query for selected cells + Generate query for selected cells + + + + No items selected to paste clipboard contents to. + Neboli vybrané žiadne položky na vloženie obsahu schránky. + + + + Cannot paste data. Details: %1 + Cannot paste data. Details: %1 + + + + Structure of at least one table used has changed since last data was loaded. Reload the data to proceed. + Structure of at least one table used has changed since last data was loaded. Reload the data to proceed. + + + + Cannot paste to a cell. Details: %1 + Cannot paste to a cell. Details: %1 + + + + The row is marked for deletion. + The row is marked for deletion. + + + + Cannot paste to column %1. Details: %2 + Cannot paste to column %1. Details: %2 + + + + Go to referenced row in table '%1' + Go to referenced row in table '%1' + + + + table '%1' + table '%1' + + + + Referenced row (%1) + Referenced row (%1) + + + + Trim pasted text? + Trim pasted text? + + + + The pasted text contains leading or trailing white space. Trim it automatically? + The pasted text contains leading or trailing white space. Trim it automatically? + + + + Paste "NULL" as null value? + Paste "NULL" as null value? + + + + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + + + + Edit value + Upraviť hodnotu + + + + SqlTableModel + + + Error while committing new row: %1 + Error while committing new row: %1 + + + + Error while deleting row from table %1: %2 + Vyskytla sa chyba počas mazania riadka z tabuľky %1: %2 + + + + SqliteExtensionEditor + + + Filter extensions + Filter extensions + + + + Leave empty to use default function + Leave empty to use default function + + + + Extension file + Extension file + + + + Initialization function + Initialization function + + + + Databases + Databázy + + + + Register in all databases + Registrovať vo všetkých databázach + + + + Register in following databases: + Registrovať v nasledujúcich databázach: + + + + Extension manager window has uncommitted modifications. + Extension manager window has uncommitted modifications. + + + + Extension manager + Extension manager + + + + Commit all extension changes + Commit all extension changes + + + + Rollback all extension changes + Rollback all extension changes + + + + Add new extension + Add new extension + + + + Remove selected extension + Remove selected extension + + + + Editing extensions manual + Editing extensions manual + + + + File with given path does not exist or is not readable. + File with given path does not exist or is not readable. + + + + Unable to load extension: %1 + Unable to load extension: %1 + + + + Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. + Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. + + + + Dynamic link libraries (*.dll);;All files (*) + Dynamic link libraries (*.dll);;All files (*) + + + + Shared objects (*.so);;All files (*) + Shared objects (*.so);;All files (*) + + + + Dynamic libraries (*.dylib);;All files (*) + Dynamic libraries (*.dylib);;All files (*) + + + + All files (*) + Všetky súbory (*) + + + + Open file + Otvoriť súbor + + + + StatusField + + + Status + Status + + + + Copy + Kopírovať + + + + Clear + Vymazať + + + + TableConstraintsModel + + + Type + table constraints + Typ + + + + Details + table constraints + Detaily + + + + Name + table constraints + Názov + + + + TableForeignKeyPanel + + + Foreign table: + Cudzia tabuľka: + + + + Columns + Stĺpce + + + + Local column + Lokálny stĺpec + + + + Foreign column + Cudzí stĺpec + + + + Reactions + Reakcie + + + + Deferred foreign key + Deferred foreign key + + + + Named constraint + Pomenovanie obmedzenia + + + + Constraint name + Názov obmedzenia + + + + Pick the foreign column. + Vyberte cudzí stĺpec. + + + + Pick the foreign table. + Vyberte cudziu tabuľku. + + + + Select at least one foreign column. + Vyberte aspoň jeden cudzí stĺpec. + + + + Enter a name of the constraint. + Zadajte názov obmedzenia. + + + + Foreign column + table constraints + Cudzí stĺpec + + + + TablePrimaryKeyAndUniquePanel + + + Columns + Stĺpce + + + + Column + Stĺpec + + + + Collation + Porovnávanie + + + + Sort + Zoradiť + + + + Valid only for a single column with INTEGER data type + Platné len pre jeden stĺpec s datovým typom INTEGER + + + + Autoincrement + Autoinkrement + + + + Named constraint + Pomenovanie obmedzenia + + + + Constraint name + Názov obmedzenia + + + + On conflict + Pri konflikte + + + + Collate + table constraints + Porovnať + + + + Sort order + table constraints + Zoradiť + + + + Select at least one column. + Vyberte minimálne jeden stĺpec. + + + + Enter a name of the constraint. + Zadajte názov obmedzenia. + + + + TableStructureModel + + + Name + table structure columns + Názov + + + + Data type + table structure columns + Datový typ + + + + Primary +Key + table structure columns + Primary +Key + + + + Foreign +Key + table structure columns + Foreign +Key + + + + Unique + table structure columns + Unique + + + + Check + table structure columns + Check + + + + Not +NULL + table structure columns + Not +NULL + + + + Collate + table structure columns + Collate + + + + Generated + table structure columns + Generated + + + + Default value + table structure columns + Prednastavená hodnota + + + + TableWindow + + + Structure + Štruktúra + + + + Table name: + Názov tabuľky: + + + + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + + + + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + + + + + Data + Dáta + + + + Constraints + Obmedzovače + + + + Indexes + Indexy + + + + Triggers + Spúšťače + + + + DDL + DDL + + + + Export table + table window + Exportovať tabuľku + + + + Import data to table + table window + Importovať dáta do tabuľky + + + + Populate table + table window + Naplniť tabuľku + + + + Refresh structure + table window + Obnoviť štruktúru + + + + Commit structure changes + table window + Potvrdiť zmeny štruktúr + + + + Rollback structure changes + table window + Vrátiť späť zmeny štruktúr + + + + Add column + table window + Pridať stĺpec + + + + Edit column + table window + Upraviť stĺpec + + + + + Delete column + table window + Vymazať stĺpec + + + + Move column up + table window + Posunúť stĺpec hore + + + + Move column down + table window + Posunúť stĺpec dole + + + + Create similar table + table window + Vytvoriť rovnakú tabuľku + + + + Reset autoincrement value + table window + Resetovať hodnotu autoinkrementu + + + + Add table constraint + table window + Pridať obmedzenie + + + + Edit table constraint + table window + Upraviť obmedzenie + + + + Delete table constraint + table window + Vymazať obmedzenie + + + + Move table constraint up + table window + Posunúť obmedzenie hore + + + + Move table constraint down + table window + Posunúť obmedzenie dole + + + + Add table primary key + table window + Pridať primárny kľúč + + + + Add table foreign key + table window + Pridať cudzí kľúč + + + + Add table unique constraint + table window + Pridať jedinečné obmedzenie + + + + Add table check constraint + table window + Add table check constraint + + + + Refresh index list + table window + Obnoviť zoznam indexov + + + + + Create index + table window + Vytvoriť index + + + + Edit index + table window + Upraviť index + + + + Delete index + table window + Vymazať index + + + + Refresh trigger list + table window + Obnoviť zoznam spúšťačov + + + + + Create trigger + table window + Vytvoriť spúšťač + + + + Edit trigger + table window + Upraviť spúšťač + + + + Delete trigger + table window + Vymazať spúšťač + + + + Are you sure you want to delete column '%1'? + table window + Ste si istý, že chcete vymazať stĺpec '%1' ? + + + + Following problems will take place while modifying the table. +Would you like to proceed? + table window + Following problems will take place while modifying the table. +Would you like to proceed? + + + + Table modification + table window + Table modification + + + + Could not load data for table %1. Error details: %2 + Could not load data for table %1. Error details: %2 + + + + Could not process the %1 table correctly. Unable to open a table window. + Could not process the %1 table correctly. Unable to open a table window. + + + + Database + Database + + + + Could not restore window %1, because no database or table was stored in session for this window. + Could not restore window %1, because no database or table was stored in session for this window. + + + + Could not restore window '%1', because no database or table was stored in session for this window. + Could not restore window '%1', because no database or table was stored in session for this window. + + + + Could not restore window '%1', because database %2 could not be resolved. + Could not restore window '%1', because database %2 could not be resolved. + + + + Could not restore window '%1', because the table %2 doesn't exist in the database %3. + Could not restore window '%1', because the table %2 doesn't exist in the database %3. + + + + + New table %1 + New table %1 + + + + Committed changes for table '%1' successfully. + Committed changes for table '%1' successfully. + + + + Committed changes for table '%1' (named before '%2') successfully. + Committed changes for table '%1' (named before '%2') successfully. + + + + Could not commit table structure. Error message: %1 + table window + Could not commit table structure. Error message: %1 + + + + Reset autoincrement + Resetovať autoinkrement + + + + Are you sure you want to reset autoincrement value for table '%1'? + Ste si istý, že chcete zresetovať hodnotu autoinkrementu pre tabuľku %1 ? + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + Vyskytla sa chyba pri pokuse o zresetovanie hodnoty autoinkrementu pre tebuľku '%1': %2 + + + + Autoincrement value for table '%1' has been reset successfully. + Autoincrement value for table '%1' has been reset successfully. + + + + Empty name + Empty name + + + + A blank name for the table is allowed in SQLite, but it is not recommended. +Are you sure you want to create a table with blank name? + A blank name for the table is allowed in SQLite, but it is not recommended. +Are you sure you want to create a table with blank name? + + + + Cannot create a table without at least one column. + Cannot create a table without at least one column. + + + + Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. + Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. + + + + Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. + Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. + + + + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 + + + + Are you sure you want to delete table constraint '%1'? + table window + Ste si istý, že chcete vymazať obmedzenie '%1'? + + + + Delete constraint + table window + Vymazať obmedzenie + + + + Cannot export, because no export plugin is loaded. + Nemôžem exportovať, lebo nebol načítaný žiaden plugin na export. + + + + Cannot import, because no import plugin is loaded. + Nemôžem importovať, lebo nebol načítaný žiaden plugin na import. + + + + Uncommitted changes + Uncommitted changes + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + + + + Go back to structure tab + Choď späť na záložku štruktúr + + + + Commit modifications and browse data. + Potvrdiť zmeny a prezerať dáta. + + + + Name + table window indexes + Názov + + + + Unique + table window indexes + Jedinečný + + + + Columns + table window indexes + Stĺpce + + + + Partial index condition + table window indexes + Partial index condition + + + + Name + table window triggers + Názov + + + + Event + table window triggers + Udalosť + + + + Condition + table window triggers + Podmienka + + + + Details + table window triggers + Detaily + + + + Table window "%1" has uncommitted structure modifications and data. + Table window "%1" has uncommitted structure modifications and data. + + + + Table window "%1" has uncommitted data. + Table window "%1" has uncommitted data. + + + + Table window "%1" has uncommitted structure modifications. + Table window "%1" has uncommitted structure modifications. + + + + TriggerColumnsDialog + + + Trigger columns + Trigger columns + + + + Triggering columns: + Triggering columns: + + + + Select all + Vybrať všetko + + + + Deselect all + Zrušiť výber + + + + TriggerDialog + + + + Trigger + Spúšťač + + + + On table: + Na tabuľke: + + + + Action: + Akcia: + + + + + <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> + <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> + + + + Pre-condition: + Pre-condition: + + + + The scope is still not fully supported by the SQLite database. + The scope is still not fully supported by the SQLite database. + + + + Trigger name: + Názov spúšťača: + + + + When: + Kedy: + + + + List of columns for UPDATE OF action. + List of columns for UPDATE OF action. + + + + Scope: + Scope: + + + + Code: + Kód: + + + + Trigger statements to be executed. + Trigger statements to be executed. + + + + DDL + DDL + + + + On view: + On view: + + + + Could not process trigger %1 correctly. Unable to open a trigger dialog. + Could not process trigger %1 correctly. Unable to open a trigger dialog. + + + + Enter a valid condition. + Zadajte platnú podmienku. + + + + Enter a valid trigger code. + Zadajte validný kód spúšťača. + + + + Error + trigger dialog + Chyba + + + + An error occurred while executing SQL statements: +%1 + An error occurred while executing SQL statements: +%1 + + + + VersionConvertSummaryDialog + + + Database version convert + Database version convert + + + + Following changes to the SQL statements will be made: + Following changes to the SQL statements will be made: + + + + Before + Before + + + + After + After + + + + ViewWindow + + + Query + Dotaz + + + + View name: + Názov pohľadu: + + + + Output column names + Output column names + + + + + Data + Dáta + + + + Triggers + Spúšťače + + + + DDL + DDL + + + + + Could not restore window '%1', because no database or view was stored in session for this window. + Could not restore window '%1', because no database or view was stored in session for this window. + + + + Could not restore window '%1', because database %2 could not be resolved. + Could not restore window '%1', because database %2 could not be resolved. + + + + Could not restore window '%1', because database %2 could not be open. + Could not restore window '%1', because database %2 could not be open. + + + + Could not restore window '%1', because the view %2 doesn't exist in the database %3. + Could not restore window '%1', because the view %2 doesn't exist in the database %3. + + + + + New view %1 + Nový pohľad %1 + + + + Database + Database + + + + Refresh the view + view window + Obnoviť pohľad + + + + Commit the view changes + view window + Potvrdiť zmeny v pohľade + + + + Rollback the view changes + view window + Vrátiť späť zmeny v pohľade + + + + Explicit column names + Explicit column names + + + + Generate output column names automatically basing on result columns of the view. + Generate output column names automatically basing on result columns of the view. + + + + Add column + view window + Pridať stĺpec + + + + Edit column + view window + Upraviť stĺpec + + + + Delete column + view window + Vymazať stĺpec + + + + Move column up + view window + Posunúť stĺpec hore + + + + Move column down + view window + Posunúť stĺpec dole + + + + Refresh trigger list + view window + Obnoviť zoznam spúšťačov + + + + Create new trigger + view window + Vytvoriť nový spúšťač + + + + Edit selected trigger + view window + Upraviť vybraný spúšťač + + + + Delete selected trigger + view window + Vymazať vybraný spúšťač + + + + View window "%1" has uncommitted structure modifications and data. + View window "%1" has uncommitted structure modifications and data. + + + + View window "%1" has uncommitted data. + View window "%1" has uncommitted data. + + + + View window "%1" has uncommitted structure modifications. + View window "%1" has uncommitted structure modifications. + + + + Could not load data for view %1. Error details: %2 + Nemôžem načítať dáta z pohľadu %1. Detaily chyby: %2 + + + + Uncommitted changes + Uncommitted changes + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + + + + Go back to structure tab + Choď späť na záložku štruktúr + + + + Commit modifications and browse data. + Potvrdiť zmeny a prezerať dáta. + + + + View '%1' was committed successfully. + View '%1' was committed successfully. + + + + Committed changes for view '%1' successfully. + Committed changes for view '%1' successfully. + + + + Committed changes for view '%1' (named before '%2') successfully. + Committed changes for view '%1' (named before '%2') successfully. + + + + Could not commit view changes. Error message: %1 + view window + Nemôžem potvrdiť zmeny v pohľade. Chyba: %1 + + + + Override columns + Override columns + + + + Currently defined columns will be overriden. Do you want to continue? + Currently defined columns will be overriden. Do you want to continue? + + + + Could not determinate columns returned from the view. The query is problably incomplete or contains errors. + Could not determinate columns returned from the view. The query is problably incomplete or contains errors. + + + + Name + view window triggers + Názov + + + + Instead of + view window triggers + Instead of + + + + Condition + view window triggers + Podmienka + + + + Details + table window triggers + Detaily + + + + Could not process the %1 view correctly. Unable to open a view window. + Could not process the %1 view correctly. Unable to open a view window. + + + + Empty name + Empty name + + + + A blank name for the view is allowed in SQLite, but it is not recommended. +Are you sure you want to create a view with blank name? + A blank name for the view is allowed in SQLite, but it is not recommended. +Are you sure you want to create a view with blank name? + + + + The SELECT statement could not be parsed. Please correct the query and retry. +Details: %1 + SELECT nemôže byť analyzovaný. Prosím opravte dotaz a skúste to znovu. +Detaily: %1 + + + + The view could not be modified due to internal SQLiteStudio error. Please report this! + The view could not be modified due to internal SQLiteStudio error. Please report this! + + + + The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. + The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. + + + + Following problems will take place while modifying the view. +Would you like to proceed? + view window + Following problems will take place while modifying the view. +Would you like to proceed? + + + + View modification + view window + View modification + + + + WidgetCover + + + Interrupt + Interrupt + + + diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_sr_SP.ts b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_sr_SP.ts new file mode 100644 index 0000000..316dbbb --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_sr_SP.ts @@ -0,0 +1,7111 @@ + + + + + AboutDialog + + + About SQLiteStudio and licenses + About SQLiteStudio and licenses + + + + About + About + + + + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + + + + Licenses + Licenses + + + + Environment + Environment + + + + Icon directories + Icon directories + + + + Form directories + Form directories + + + + SQLite extension directories + SQLite extension directories + + + + Plugin directories + Plugin directories + + + + Configuration directory + Configuration directory + + + + Application directory + Application directory + + + + Qt version: + Qt version: + + + + SQLite 3 version: + SQLite 3 version: + + + + Portable distribution. + Portable distribution. + + + + MacOS X application bundle distribution. + MacOS X application bundle distribution. + + + + Operating system managed distribution. + Operating system managed distribution. + + + + <h3>Table of contents:</h3><ol>%2</ol> + <h3>Table of contents:</h3><ol>%2</ol> + + + + BindParamsDialog + + + Query parameters + Query parameters + + + + Please provide values for query parameters + Please provide values for query parameters + + + + CodeSnippetEditor + + + Filter snippets + Filter snippets + + + + + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + + + + + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + + + + Snippet name + Snippet name + + + + Code assistant shortcut + Code assistant shortcut + + + + Snippet code + Snippet code + + + + Code Snippets editor window has uncommitted modifications. + Code Snippets editor window has uncommitted modifications. + + + + Code Snippets editor + Code Snippets editor + + + + Commit all snippet changes + Commit all snippet changes + + + + Rollback all snippet changes + Rollback all snippet changes + + + + Create new snippet + Create new snippet + + + + Delete selected snippet + Delete selected snippet + + + + Move the snippet up + Move the snippet up + + + + Move the snippet down + Move the snippet down + + + + Code snippets manual + Code snippets manual + + + + Enter a non-empty, unique name of the snippet. + Enter a non-empty, unique name of the snippet. + + + + Enter a non-empty snippet content. + Enter a non-empty snippet content. + + + + This hotkey is not unique in context of a code assistant. + This hotkey is not unique in context of a code assistant. + + + + CollationsEditor + + + Filter collations + Filter collations + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Implementation code: + Implementation code: + + + + Collation name: + Collation name: + + + + Implementation language: + Implementation language: + + + + Collations editor + Collations editor + + + + Commit all collation changes + Commit all collation changes + + + + Rollback all collation changes + Rollback all collation changes + + + + Create new collation + Create new collation + + + + Delete selected collation + Delete selected collation + + + + Editing collations manual + Editing collations manual + + + + Enter a non-empty, unique name of the collation. + Enter a non-empty, unique name of the collation. + + + + Pick the implementation language. + Pick the implementation language. + + + + Enter a non-empty implementation code. + Enter a non-empty implementation code. + + + + Collations editor window has uncommitted modifications. + Collations editor window has uncommitted modifications. + + + + ColorButton + + + Pick a color + Pick a color + + + + ColumnCollatePanel + + + Collation name: + Collation name: + + + + Named constraint: + Named constraint: + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + Enter a collation name. + Enter a collation name. + + + + ColumnDefaultPanel + + + Default value: + Default value: + + + + Named constraint: + Named constraint: + + + + Enter a default value expression. + Enter a default value expression. + + + + Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. + Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. + + + + Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. + Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ColumnDialog + + + Column + Column + + + + Name and type + Name and type + + + + Scale + Scale + + + + Precision + Precision + + + + Data type: + Data type: + + + + Column name: + Column name: + + + + Size: + Size: + + + + Constraints + Constraints + + + + Generated value + Generated value + + + + Unique + Unique + + + + + + + + + + + Configure + Configure + + + + Foreign Key + Foreign Key + + + + Collate + Collate + + + + Not NULL + Not NULL + + + + Check condition + Check condition + + + + Primary Key + Primary Key + + + + Default + Default + + + + Advanced mode + Advanced mode + + + + Add constraint + column dialog + Add constraint + + + + Edit constraint + column dialog + Edit constraint + + + + + Delete constraint + column dialog + Delete constraint + + + + Move constraint up + column dialog + Move constraint up + + + + Move constraint down + column dialog + Move constraint down + + + + Add a primary key + column dialog + Add a primary key + + + + Add a foreign key + column dialog + Add a foreign key + + + + Add an unique constraint + column dialog + Add an unique constraint + + + + Add a check constraint + column dialog + Add a check constraint + + + + Add a not null constraint + column dialog + Add a not null constraint + + + + Add a collate constraint + column dialog + Add a collate constraint + + + + Add a generated value constraint + column dialog + Add a generated value constraint + + + + Add a default constraint + column dialog + Add a default constraint + + + + Are you sure you want to delete constraint '%1'? + column dialog + Are you sure you want to delete constraint '%1'? + + + + Correct the constraint's configuration. + Correct the constraint's configuration. + + + + Scale is not allowed for INTEGER PRIMARY KEY columns. + Scale is not allowed for INTEGER PRIMARY KEY columns. + + + + Precision cannot be defined without the scale. + Precision cannot be defined without the scale. + + + + Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. + Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. + + + + INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. + INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. + + + + Precision is not allowed for INTEGER PRIMARY KEY columns. + Precision is not allowed for INTEGER PRIMARY KEY columns. + + + + Could not match valid STRICT table datatype from declared type: %1. + Could not match valid STRICT table datatype from declared type: %1. + + + + ColumnDialogConstraintsModel + + + Type + column dialog constraints + Type + + + + Name + column dialog constraints + Name + + + + Details + column dialog constraints + Details + + + + ColumnForeignKeyPanel + + + Foreign table: + Foreign table: + + + + Foreign column: + Foreign column: + + + + Reactions + Reactions + + + + Deferred foreign key + Deferred foreign key + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + Pick the foreign table. + Pick the foreign table. + + + + Pick the foreign column. + Pick the foreign column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ColumnGeneratedPanel + + + Generating code: + Generating code: + + + + Explicit type: + Explicit type: + + + + Use "GENERATED ALWAYS" keywords + Use "GENERATED ALWAYS" keywords + + + + Named constraint: + Named constraint: + + + + Enter the column value generating expression. + Enter the column value generating expression. + + + + Invalid value generating expression: %1. + Invalid value generating expression: %1. + + + + Invalid value generating expression. + Invalid value generating expression. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ColumnPrimaryKeyPanel + + + Autoincrement + Autoincrement + + + + Sort order: + Sort order: + + + + Named constraint: + Named constraint: + + + + On conflict: + On conflict: + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + Descending order is not allowed with AUTOINCREMENT. + Descending order is not allowed with AUTOINCREMENT. + + + + ColumnUniqueAndNotNullPanel + + + Named constraint: + Named constraint: + + + + On conflict: + On conflict: + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + CompleterWindow + + + Column: %1 + completer statusbar + Column: %1 + + + + Table: %1 + completer statusbar + Table: %1 + + + + Index: %1 + completer statusbar + Index: %1 + + + + Trigger: %1 + completer statusbar + Trigger: %1 + + + + View: %1 + completer statusbar + View: %1 + + + + Database: %1 + completer statusbar + Database: %1 + + + + Keyword: %1 + completer statusbar + Keyword: %1 + + + + Function: %1 + completer statusbar + Function: %1 + + + + Operator: %1 + completer statusbar + Operator: %1 + + + + String + completer statusbar + String + + + + Number + completer statusbar + Number + + + + Binary data + completer statusbar + Binary data + + + + Collation: %1 + completer statusbar + Collation: %1 + + + + Pragma function: %1 + completer statusbar + Pragma function: %1 + + + + Insert a code snippet + Insert a code snippet + + + + ConfigDialog + + + + Configuration + Configuration + + + + Search + Search + + + + General + General + + + + Keyboard shortcuts + Keyboard shortcuts + + + + Look & feel + Look & feel + + + + Style + Style + + + + Fonts + Fonts + + + + Code colors + Code colors + + + + + Database list + Database list + + + + Code assistant + Code assistant + + + + Data browsing + Data browsing + + + + Data editors + Data editors + + + + Plugins + Plugins + + + + Code formatters + Code formatters + + + + If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. + If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. + + + + Sort table columns alphabetically + Sort table columns alphabetically + + + + Expand tables node when connected to a database + Expand tables node when connected to a database + + + + <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> + <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> + + + + Display additional labels on the list + Display additional labels on the list + + + + For regular tables labels will show number of columns, indexes and triggers for each of tables. + For regular tables labels will show number of columns, indexes and triggers for each of tables. + + + + Display labels for regular tables + Display labels for regular tables + + + + Virtual tables will be marked with a 'virtual' label. + Virtual tables will be marked with a 'virtual' label. + + + + Display labels for virtual tables + Display labels for virtual tables + + + + Expand views node when connected to a database + Expand views node when connected to a database + + + + If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) + If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) + + + + Sort objects (tables, indexes, triggers and views) alphabetically + Sort objects (tables, indexes, triggers and views) alphabetically + + + + Display system tables and indexes on the list + Display system tables and indexes on the list + + + + Database dialog window + Database dialog window + + + + <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> + <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> + + + + Do not mark database to be "permanent" by default + Do not mark database to be "permanent" by default + + + + <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> + <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> + + + + Try to bypass dialog completly when dropping database file onto the list + Try to bypass dialog completly when dropping database file onto the list + + + + Data browsing and editing + Data browsing and editing + + + + + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + + + + Number of memorized table populating configurations + Number of memorized table populating configurations + + + + Data column width + Data column width + + + + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + + + + Enlarge column when entering value longer than current width + Enlarge column when entering value longer than current width + + + + <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> + <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> + + + + Number of data rows per page: + Number of data rows per page: + + + + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> + + + + Show column and row details tooltip in data view + Show column and row details tooltip in data view + + + + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + + + + Keep NULL value when entering empty value + Keep NULL value when entering empty value + + + + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> + + + + Use DEFAULT value (if defined), when committing NULL value + Use DEFAULT value (if defined), when committing NULL value + + + + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + + + + Limit number of rows for in case of dozens of columns + Limit number of rows for in case of dozens of columns + + + + Inserting new row in data grid + Inserting new row in data grid + + + + Before currently selected row + Before currently selected row + + + + After currently selected row + After currently selected row + + + + At the end of data view + At the end of data view + + + + Table windows + Table windows + + + + <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> + <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> + + + + Open Table Windows with the data tab for start + Open Table Windows with the data tab for start + + + + <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> + <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> + + + + Place data tab as first tab in a Table Window + Place data tab as first tab in a Table Window + + + + View windows + View windows + + + + <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> + <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> + + + + Open View Windows with the data tab for start + Open View Windows with the data tab for start + + + + <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> + <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> + + + + Place data tab as first tab in a View Window + Place data tab as first tab in a View Window + + + + Data types + Data types + + + + Available editors: + Available editors: + + + + Editors selected for this data type: + Editors selected for this data type: + + + + Schema editing + Schema editing + + + + Number of DDL changes kept in history. + Number of DDL changes kept in history. + + + + DDL history size: + DDL history size: + + + + Don't show DDL preview dialog when committing schema changes + Don't show DDL preview dialog when committing schema changes + + + + SQL queries + SQL queries + + + + + Number of queries kept in the history. + Number of queries kept in the history. + + + + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> + + + + History size: + History size: + + + + + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> + + + + Execute only the query under the cursor + Execute only the query under the cursor + + + + Number of memorized query parameters + Number of memorized query parameters + + + + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + + + + Use scientific notation for real numbers in the grid view + Use scientific notation for real numbers in the grid view + + + + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + + + + Limit automatic data column width to (in pixels): + Limit automatic data column width to (in pixels): + + + + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + + + + Keep at least the width to show complete column name + Keep at least the width to show complete column name + + + + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + + + + Wrap lines in SQL editor + Wrap lines in SQL editor + + + + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + + + + Highlight current query + Highlight current query + + + + Updates + Updates + + + + Automatically check for updates at startup + Automatically check for updates at startup + + + + Session + Session + + + + Restore last session (active MDI windows) after startup + Restore last session (active MDI windows) after startup + + + + Allow multiple instances of the application at the same time + Allow multiple instances of the application at the same time + + + + Status Field + Status Field + + + + <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> + <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> + + + + Always open Status panel when new message is printed + Always open Status panel when new message is printed + + + + Code syntax colors + Code syntax colors + + + + Keyword foreground + Keyword foreground + + + + Regular foreground + Regular foreground + + + + String foreground + String foreground + + + + Comment foreground + Comment foreground + + + + Valid objects foreground + Valid objects foreground + + + + Current query background + Current query background + + + + Bind parameter foreground + Bind parameter foreground + + + + Current line background + Current line background + + + + Matched parenthesis background + Matched parenthesis background + + + + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + + + + Number foreground + Number foreground + + + + BLOB value foreground + BLOB value foreground + + + + Matched parenthesis foreground + Matched parenthesis foreground + + + + Reset to defaults + Reset to defaults + + + + Filter shortcuts by name or key combination + Filter shortcuts by name or key combination + + + + Action + Action + + + + Key combination + Key combination + + + + + Language + Language + + + + Changing language requires application restart to take effect. + Changing language requires application restart to take effect. + + + + Compact layout + Compact layout + + + + <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> + <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> + + + + Use compact layout + Use compact layout + + + + Main window dock areas + Main window dock areas + + + + Left and right areas occupy corners + Left and right areas occupy corners + + + + Top and bottom areas occupy corners + Top and bottom areas occupy corners + + + + Hide built-in plugins + Hide built-in plugins + + + + Current style: + Current style: + + + + Preview + Preview + + + + Enabled + Enabled + + + + Disabled + Disabled + + + + Active formatter plugin + Active formatter plugin + + + + SQL editor font + SQL editor font + + + + Database list font + Database list font + + + + Database list additional label font + Database list additional label font + + + + Data view font + Data view font + + + + Status field font + Status field font + + + + Code assistant settings + Code assistant settings + + + + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + + + + Automatically trigger the assistant after a dot is typed after an object name + Automatically trigger the assistant after a dot is typed after an object name + + + + Description: + plugin details + Description: + + + + Category: + plugin details + Category: + + + + Version: + plugin details + Version: + + + + Author: + plugin details + Author: + + + + Internal name: + plugin details + Internal name: + + + + Dependencies: + plugin details + Dependencies: + + + + Conflicts: + plugin details + Conflicts: + + + + Plugin details + Plugin details + + + + Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. + Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. + + + + %1 (built-in) + plugins manager in configuration dialog + %1 (built-in) + + + + Details + Details + + + + No plugins in this category. + No plugins in this category. + + + + Add new data type + Add new data type + + + + Rename selected data type + Rename selected data type + + + + Delete selected data type + Delete selected data type + + + + Help for configuring data type editors + Help for configuring data type editors + + + + Clear hotkey for this action + Clear hotkey for this action + + + + Restore original hotkey for this action + Restore original hotkey for this action + + + + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + + + + ConstraintCheckPanel + + + The condition + The condition + + + + Named constraint: + Named constraint: + + + + On conflict + On conflict + + + + Enter a valid condition. + Enter a valid condition. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ConstraintDialog + + + New constraint + constraint dialog + New constraint + + + + Create + constraint dialog + Create + + + + Edit constraint + dialog window + Edit constraint + + + + Apply + constraint dialog + Apply + + + + Primary key + table constraints + Primary key + + + + Foreign key + table constraints + Foreign key + + + + Unique + table constraints + Unique + + + + Not NULL + table constraints + Not NULL + + + + Check + table constraints + Check + + + + Generated + table constraints + Generated + + + + Collate + table constraints + Collate + + + + Default + table constraints + Default + + + + ConstraintTabModel + + + Table + table constraints + Table + + + + Column (%1) + table constraints + Column (%1) + + + + Scope + table constraints + Scope + + + + Type + table constraints + Type + + + + Details + table constraints + Details + + + + Name + table constraints + Name + + + + CssDebugDialog + + + SQLiteStudio CSS console + SQLiteStudio CSS console + + + + DataView + + + Filter data + data view + Filter data + + + + Grid view + Grid view + + + + Form view + Form view + + + + Refresh table data + data view + Refresh table data + + + + First page + data view + First page + + + + Previous page + data view + Previous page + + + + Next page + data view + Next page + + + + Last page + data view + Last page + + + + Commit changes for selected cells + data view + Commit changes for selected cells + + + + Rollback changes for selected cells + data view + Rollback changes for selected cells + + + + Show grid view of results + data view + Show grid view of results + + + + Show form view of results + data view + Show form view of results + + + + Filter by text (if contains) + data view + Filter by text (if contains) + + + + Filter strictly by text (if equals) + data view + Filter strictly by text (if equals) + + + + Tabs on top + data view + Tabs on top + + + + Tabs at bottom + data view + Tabs at bottom + + + + Place new rows above selected row + data view + Place new rows above selected row + + + + Place new rows below selected row + data view + Place new rows below selected row + + + + Place new rows at the end of the data view + data view + Place new rows at the end of the data view + + + + Total number of rows is being counted. +Browsing other pages will be possible after the row counting is done. + Total number of rows is being counted. +Browsing other pages will be possible after the row counting is done. + + + + Row: %1 + Row: %1 + + + + Filter + Filter + + + + Hit Enter key or press "Apply filter" button on toolbar to apply new value. + Hit Enter key or press "Apply filter" button on toolbar to apply new value. + + + + Filter by the Regular Expression + data view + Filter by the Regular Expression + + + + Filter by SQL expression + data view + Filter by SQL expression + + + + Show filter inputs per column + data view + Show filter inputs per column + + + + Apply filter + data view + Apply filter + + + + DbDialog + + + Database + Database + + + + Database type + Database type + + + + Database driver + Database driver + + + + + File + File + + + + Name (on the list) + Name (on the list) + + + + Options + Options + + + + <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> + aasfd + <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> + + + + Permanent (keep it in configuration) + Permanent (keep it in configuration) + + + + Test connection + Test connection + + + + Select new or existing file on local computer + Select new or existing file on local computer + + + + Browse + Browse + + + + Database type not selected. + Database type not selected. + + + + Database path not specified. + Database path not specified. + + + + Enter an unique database name. + Enter an unique database name. + + + + This name is already in use. Please enter unique name. + This name is already in use. Please enter unique name. + + + + <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> + <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> + + + + Enter a database file path. + Enter a database file path. + + + + This database is already on the list under name: %1 + This database is already on the list under name: %1 + + + + Select a database type. + Select a database type. + + + + DbObjectDialogs + + + Delete table + Delete table + + + + Are you sure you want to delete table %1? + Are you sure you want to delete table %1? + + + + Delete index + Delete index + + + + Are you sure you want to delete index %1? + Are you sure you want to delete index %1? + + + + Delete trigger + Delete trigger + + + + Are you sure you want to delete trigger %1? + Are you sure you want to delete trigger %1? + + + + Delete view + Delete view + + + + Are you sure you want to delete view %1? + Are you sure you want to delete view %1? + + + + + Error while dropping %1: %2 + Error while dropping %1: %2 + + + + Delete objects + Delete objects + + + + Are you sure you want to delete following objects: +%1 + Are you sure you want to delete following objects: +%1 + + + + Cannot start transaction. Details: %1 + Cannot start transaction. Details: %1 + + + + Cannot commit transaction. Details: %1 + Cannot commit transaction. Details: %1 + + + + DbTree + + + Databases + Databases + + + + Filter by name + Filter by name + + + + Copy + Copy + + + + Paste + Paste + + + + Select all + Select all + + + + Create a group + Create a group + + + + Delete the group + Delete the group + + + + Rename the group + Rename the group + + + + &Add a database + &Add a database + + + + &Edit the database + &Edit the database + + + + &Remove the database + &Remove the database + + + + &Connect to the database + &Connect to the database + + + + &Disconnect from the database + &Disconnect from the database + + + + Import + Import + + + + &Export the database + &Export the database + + + + Vac&uum + Vac&uum + + + + &Integrity check + &Integrity check + + + + Create a &table + Create a &table + + + + Edit the t&able + Edit the t&able + + + + Delete the ta&ble + Delete the ta&ble + + + + Export the table + Export the table + + + + Import into the table + Import into the table + + + + Populate table + Populate table + + + + Create similar table + Create similar table + + + + Reset autoincrement sequence + Reset autoincrement sequence + + + + Create an &index + Create an &index + + + + Edit the i&ndex + Edit the i&ndex + + + + Delete the in&dex + Delete the in&dex + + + + Create a trig&ger + Create a trig&ger + + + + Edit the trigg&er + Edit the trigg&er + + + + Delete the trigge&r + Delete the trigge&r + + + + Create a &view + Create a &view + + + + Edit the v&iew + Edit the v&iew + + + + Delete the vi&ew + Delete the vi&ew + + + + Add a column + Add a column + + + + Edit the column + Edit the column + + + + Delete the column + Delete the column + + + + Delete selected items + Delete selected items + + + + Clear filter + Clear filter + + + + &Refresh all database schemas + &Refresh all database schemas + + + + Re&fresh selected database schema + Re&fresh selected database schema + + + + + Erase table data + Erase table data + + + + Open file's directory + Open file's directory + + + + Execute SQL from file + Execute SQL from file + + + + Increase font size + database list + Increase font size + + + + Decrease font size + database list + Decrease font size + + + + + Database + Database + + + + Grouping + Grouping + + + + Generate query for table + Generate query for table + + + + + Create group + Create group + + + + Group name + Group name + + + + Entry with name %1 already exists in group %2. + Entry with name %1 already exists in group %2. + + + + Delete group + Delete group + + + + Are you sure you want to delete group %1? +All objects from this group will be moved to parent group. + Are you sure you want to delete group %1? +All objects from this group will be moved to parent group. + + + + Are you sure you want to remove database '%1' from the list? + Are you sure you want to remove database '%1' from the list? + + + + Are you sure you want to remove following databases from the list: +%1 + Are you sure you want to remove following databases from the list: +%1 + + + + Remove database + Remove database + + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Vacuum (%1) + Vacuum (%1) + + + + Integrity check (%1) + Integrity check (%1) + + + + Reset autoincrement + Reset autoincrement + + + + Are you sure you want to reset autoincrement value for table '%1'? + Are you sure you want to reset autoincrement value for table '%1'? + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + An error occurred while trying to reset autoincrement value for table '%1': %2 + + + + Autoincrement value for table '%1' has been reset successfully. + Autoincrement value for table '%1' has been reset successfully. + + + + Are you sure you want to delete all data from table(s): %1? + Are you sure you want to delete all data from table(s): %1? + + + + An error occurred while trying to delete data from table '%1': %2 + An error occurred while trying to delete data from table '%1': %2 + + + + All data has been deleted for table '%1'. + All data has been deleted for table '%1'. + + + + Following objects will be deleted: %1. + Following objects will be deleted: %1. + + + + Following databases will be removed from list: %1. + Following databases will be removed from list: %1. + + + + Remainig objects from deleted group will be moved in place where the group used to be. + Remainig objects from deleted group will be moved in place where the group used to be. + + + + %1<br><br>Are you sure you want to continue? + %1<br><br>Are you sure you want to continue? + + + + Delete objects + Delete objects + + + + DbTreeItemDelegate + + + error + dbtree labels + error + + + + (system table) + database tree label + (system table) + + + + (virtual) + virtual table label + (virtual) + + + + (system index) + database tree label + (system index) + + + + DbTreeModel + + + Database: %1 + dbtree tooltip + Database: %1 + + + + URI: + dbtree tooltip + URI: + + + + Version: + dbtree tooltip + Version: + + + + File size: + dbtree tooltip + File size: + + + + Encoding: + dbtree tooltip + Encoding: + + + + Error: + dbtree tooltip + Error: + + + + Table : %1 + dbtree tooltip + Table : %1 + + + + Columns (%1): + dbtree tooltip + Columns (%1): + + + + Indexes (%1): + dbtree tooltip + Indexes (%1): + + + + Triggers (%1): + dbtree tooltip + Triggers (%1): + + + + Copy + Copy + + + + Move + Move + + + + Include data + Include data + + + + Include indexes + Include indexes + + + + Include triggers + Include triggers + + + + Abort + Abort + + + + Could not add dropped database file '%1' automatically. Manual setup is necessary. + Could not add dropped database file '%1' automatically. Manual setup is necessary. + + + + Referenced tables + Referenced tables + + + + Do you want to include following referenced tables as well: +%1 + Do you want to include following referenced tables as well: +%1 + + + + Name conflict + Name conflict + + + + Following object already exists in the target database. +Please enter new, unique name, or press '%1' to abort the operation: + Following object already exists in the target database. +Please enter new, unique name, or press '%1' to abort the operation: + + + + SQL statements conversion + SQL statements conversion + + + + Following error occurred while converting SQL statements to the target SQLite version: + Following error occurred while converting SQL statements to the target SQLite version: + + + + Would you like to ignore those errors and proceed? + Would you like to ignore those errors and proceed? + + + + DdlHistoryWindow + + + Filter by database: + Filter by database: + + + + Clear entire history + Clear entire history + + + + -- Queries executed on database %1 (%2) +-- Date and time of execution: %3 +%4 + -- Queries executed on database %1 (%2) +-- Date and time of execution: %3 +%4 + + + + Clear history + Clear history + + + + Are you sure you want to erase entire DDL history? + Are you sure you want to erase entire DDL history? + + + + DDL history + DDL history + + + + DdlPreviewDialog + + + Queries to be executed + Queries to be executed + + + + Don't show again + Don't show again + + + + DebugConsole + + + SQLiteStudio Debug Console + SQLiteStudio Debug Console + + + + EditorWindow + + + SQL editor + SQL editor + + + + Query + Query + + + + History + History + + + + Results in the separate tab + Results in the separate tab + + + + Results below the query + Results below the query + + + + + SQL editor %1 + SQL editor %1 + + + + + Results + Results + + + + Execute query + Execute query + + + + Explain query + Explain query + + + + Clear execution history + sql editor + Clear execution history + + + + Export results + sql editor + Export results + + + + Create view from query + sql editor + Create view from query + + + + Previous database + Previous database + + + + Next database + Next database + + + + Show next tab + sql editor + Show next tab + + + + Show previous tab + sql editor + Show previous tab + + + + Focus results below + sql editor + Focus results below + + + + Focus SQL editor above + sql editor + Focus SQL editor above + + + + Delete selected SQL history entries + sql editor + Delete selected SQL history entries + + + + Execute single query under cursor + Execute single query under cursor + + + + Execute all queries in editor + Execute all queries in editor + + + + Active database (%1/%2) + Active database (%1/%2) + + + + Query finished in %1 second(s). Rows affected: %2 + Query finished in %1 second(s). Rows affected: %2 + + + + Query finished in %1 second(s). + Query finished in %1 second(s). + + + + Clear execution history + Clear execution history + + + + Are you sure you want to erase the entire SQL execution history? This cannot be undone. + Are you sure you want to erase the entire SQL execution history? This cannot be undone. + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + No database selected in the SQL editor. Cannot create a view for unknown database. + No database selected in the SQL editor. Cannot create a view for unknown database. + + + + Editor window "%1" has uncommitted data. + Editor window "%1" has uncommitted data. + + + + ErrorsConfirmDialog + + + Errors + Errors + + + + Following errors occured: + Following errors occured: + + + + Would you like to proceed? + Would you like to proceed? + + + + ExecFromFileDialog + + + Execute SQL from file + Execute SQL from file + + + + Input file + Input file + + + + Path to file + Path to file + + + + Browse for file + Browse for file + + + + Options + Options + + + + File encoding + File encoding + + + + Skip failing SQL statements + Skip failing SQL statements + + + + SQL scripts (*.sql);;All files (*) + SQL scripts (*.sql);;All files (*) + + + + Execute SQL file + Execute SQL file + + + + Please provide file to be executed. + Please provide file to be executed. + + + + Provided file does not exist or cannot be read. + Provided file does not exist or cannot be read. + + + + ExportDialog + + + Export + Export + + + + What do you want to export? + What do you want to export? + + + + A database + A database + + + + A single table + A single table + + + + Query results + Query results + + + + Table to export + Table to export + + + + Database + Database + + + + Table + Table + + + + Options + Options + + + + When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. + When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. + + + + Export table data + Export table data + + + + Export table indexes + Export table indexes + + + + Export table triggers + Export table triggers + + + + Note, that exporting table indexes and triggers may be unsupported by some output formats. + Note, that exporting table indexes and triggers may be unsupported by some output formats. + + + + Select database objects to export + Select database objects to export + + + + Export data from tables + Export data from tables + + + + Select all + Select all + + + + Deselect all + Deselect all + + + + + Database: + Database: + + + + Query to export results for + Query to export results for + + + + Query to be executed for results: + Query to be executed for results: + + + + Export format and options + Export format and options + + + + Export format + Export format + + + + Output + Output + + + + Exported file path + Exported file path + + + + Clipboard + Clipboard + + + + File + File + + + + Exported text encoding: + Exported text encoding: + + + + Export format options + Export format options + + + + Cancel + Cancel + + + + + + Select database to export. + Select database to export. + + + + Select table to export. + Select table to export. + + + + Enter valid query to export. + Enter valid query to export. + + + + Select at least one object to export. + Select at least one object to export. + + + + You must provide a file name to export to. + You must provide a file name to export to. + + + + Path you provided is an existing directory. You cannot overwrite it. + Path you provided is an existing directory. You cannot overwrite it. + + + + The directory '%1' does not exist. + The directory '%1' does not exist. + + + + The file '%1' exists and will be overwritten. + The file '%1' exists and will be overwritten. + + + + All files (*) + All files (*) + + + + Pick file to export to + Pick file to export to + + + + Internal error during export. This is a bug. Please report it. + Internal error during export. This is a bug. Please report it. + + + + FileExecErrorsDialog + + + Execution errors + Execution errors + + + + Following errors were encountered during execution of SQL statements from the file: + Following errors were encountered during execution of SQL statements from the file: + + + + SQL + SQL + + + + Error + Error + + + + Statements that were executed successfully were commited. + Statements that were executed successfully were commited. + + + + Statements that were executed successfully were rolled back. + Statements that were executed successfully were rolled back. + + + + FkComboBox + + + Cannot edit this cell. Details: %1 + Cannot edit this cell. Details: %1 + + + + FontEdit + + + Choose font + font configuration + Choose font + + + + Form + + + Active SQL formatter plugin + Active SQL formatter plugin + + + + FormView + + + Commit row + form view + Commit row + + + + Rollback row + form view + Rollback row + + + + First row + form view + First row + + + + Previous row + form view + Previous row + + + + Next row + form view + Next row + + + + Last row + form view + Last row + + + + Insert new row + form view + Insert new row + + + + Delete current row + form view + Delete current row + + + + FunctionsEditor + + + Filter functions + Filter functions + + + + Input arguments + Input arguments + + + + Undefined + Undefined + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Type: + Type: + + + + Function name: + Function name: + + + + Implementation language: + Implementation language: + + + + Deterministic + Deterministic + + + + Initialization code: + Initialization code: + + + + + Function implementation code: + Function implementation code: + + + + Final step implementation code: + Final step implementation code: + + + + SQL functions editor + SQL functions editor + + + + Commit all function changes + Commit all function changes + + + + Rollback all function changes + Rollback all function changes + + + + Create new function + Create new function + + + + Delete selected function + Delete selected function + + + + Custom SQL functions manual + Custom SQL functions manual + + + + Add function argument + Add function argument + + + + Rename function argument + Rename function argument + + + + Delete function argument + Delete function argument + + + + Move function argument up + Move function argument up + + + + Move function argument down + Move function argument down + + + + Scalar + Scalar + + + + Aggregate + Aggregate + + + + Enter a non-empty, unique name of the function. + Enter a non-empty, unique name of the function. + + + + Pick the implementation language. + Pick the implementation language. + + + + Per step code: + Per step code: + + + + Enter a non-empty implementation code. + Enter a non-empty implementation code. + + + + argument + new function argument name in function editor window + argument + + + + Functions editor window has uncommitted modifications. + Functions editor window has uncommitted modifications. + + + + ImportDialog + + + Import data + Import data + + + + Table to import to + Table to import to + + + + Table + Table + + + + Database + Database + + + + Data source to import from + Data source to import from + + + + Data source type + Data source type + + + + Options + Options + + + + Text encoding: + Text encoding: + + + + Input file: + Input file: + + + + <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> + <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> + + + + Ignore errors + Ignore errors + + + + Data source options + Data source options + + + + Cancel + Cancel + + + + If you type table name that doesn't exist, it will be created. + If you type table name that doesn't exist, it will be created. + + + + Enter the table name + Enter the table name + + + + Select import plugin. + Select import plugin. + + + + You must provide a file to import from. + You must provide a file to import from. + + + + The file '%1' does not exist. + The file '%1' does not exist. + + + + Path you provided is a directory. A regular file is required. + Path you provided is a directory. A regular file is required. + + + + Pick file to import from + Pick file to import from + + + + IndexDialog + + + + Index + Index + + + + Column + Column + + + + Sort + Sort + + + + Collation + Collation + + + + On table: + On table: + + + + Delete selected indexed expression + Delete selected indexed expression + + + + Moves selected index column up in the order, making it more significant in the index. + Moves selected index column up in the order, making it more significant in the index. + + + + Moves selected index column down in the order, making it less significant in the index. + Moves selected index column down in the order, making it less significant in the index. + + + + Partial index condition + Partial index condition + + + + Unique index + Unique index + + + + Index name: + Index name: + + + + Edit selected indexed expression + Edit selected indexed expression + + + + Add indexed expression + Add indexed expression + + + + DDL + DDL + + + + Tried to open index dialog for closed or inexisting database. + Tried to open index dialog for closed or inexisting database. + + + + Could not process index %1 correctly. Unable to open an index dialog. + Could not process index %1 correctly. Unable to open an index dialog. + + + + Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. + Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. + + + + Pick the table for the index. + Pick the table for the index. + + + + Select at least one column. + Select at least one column. + + + + Enter a valid condition. + Enter a valid condition. + + + + default + index dialog + default + + + + Sort order + table constraints + Sort order + + + + + Error + index dialog + Error + + + + Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? + Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? + + + + An error occurred while executing SQL statements: +%1 + An error occurred while executing SQL statements: +%1 + + + + IndexExprColumnDialog + + + Indexed expression + Indexed expression + + + + Expression to index + Expression to index + + + + This expression is already indexed by the index. + This expression is already indexed by the index. + + + + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. + + + + Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. + Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. + + + + It's forbidden to use 'SELECT' statements in indexed expressions. + It's forbidden to use 'SELECT' statements in indexed expressions. + + + + Enter an indexed expression. + Enter an indexed expression. + + + + Invalid expression. + Invalid expression. + + + + LanguageDialog + + + Language + Language + + + + Please choose language: + Please choose language: + + + + MainWindow + + + Database toolbar + Database toolbar + + + + Structure toolbar + Structure toolbar + + + + Tools + Tools + + + + Window list + Window list + + + + View toolbar + View toolbar + + + + Configuration widgets + Configuration widgets + + + + Syntax highlighting engines + Syntax highlighting engines + + + + Data editors + Data editors + + + + Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. + Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. + + + + Running in debug mode. Debug messages are printed to the standard output. + Running in debug mode. Debug messages are printed to the standard output. + + + + You need to restart application to make the language change take effect. + You need to restart application to make the language change take effect. + + + + Open SQL &editor + Open SQL &editor + + + + Open DDL &history + Open DDL &history + + + + Open SQL &functions editor + Open SQL &functions editor + + + + Open code &snippets editor + Open code &snippets editor + + + + Open &collations editor + Open &collations editor + + + + Open ex&tension manager + Open ex&tension manager + + + + &Import + &Import + + + + E&xport + E&xport + + + + Open confi&guration dialog + Open confi&guration dialog + + + + &Tile windows + &Tile windows + + + + Tile windows &horizontally + Tile windows &horizontally + + + + Tile windows &vertically + Tile windows &vertically + + + + &Cascade windows + &Cascade windows + + + + Next window + Next window + + + + Previous window + Previous window + + + + Hide status field + Hide status field + + + + Close &all windows + Close &all windows + + + + Re&store recently closed window + Re&store recently closed window + + + + Close current &window + Close current &window + + + + Close &other windows + Close &other windows + + + + Close windows on the &left + Close windows on the &left + + + + Close windows on the &right + Close windows on the &right + + + + Re&name selected window + Re&name selected window + + + + Open Debug Console + Open Debug Console + + + + Open CSS Console + Open CSS Console + + + + Report a &bug + Report a &bug + + + + D&onate + D&onate + + + + Propose a new &feature + Propose a new &feature + + + + &About + &About + + + + &Licenses + &Licenses + + + + Open home &page + Open home &page + + + + User &Manual + User &Manual + + + + SQLite &documentation + SQLite &documentation + + + + Bugs and feature &requests + Bugs and feature &requests + + + + Quit + Quit + + + + Check for &updates + Check for &updates + + + + &Database + menubar + &Database + + + + &Structure + menubar + &Structure + + + + &View + menubar + &View + + + + Window list + menubar view menu + Window list + + + + &Tools + menubar + &Tools + + + + &Help + &Help + + + + Could not set style: %1 + main window + Could not set style: %1 + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + Rename window + Rename window + + + + Enter new name for the window: + Enter new name for the window: + + + + New updates are available. <a href="%1">Click here for details</a>. + New updates are available. <a href="%1">Click here for details</a>. + + + + You're running the most recent version. No updates are available. + You're running the most recent version. No updates are available. + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + Database passed in command line parameters (%1) was already on the list under name: %2 + + + + Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 + Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + MdiWindow + + + Uncommitted changes + Uncommitted changes + + + + Close anyway + Close anyway + + + + Don't close + Don't close + + + + MultiEditor + + + Null value + multieditor + Null value + + + + Configure editors for this data type + Configure editors for this data type + + + + Open another tab + Open another tab + + + + Foreign Key + Foreign Key + + + + Data editor plugin '%1' not loaded, while it is defined for editing '%2' data type. + Data editor plugin '%1' not loaded, while it is defined for editing '%1' data type. {1'?} {2'?} {1' or 2'?} + + + + Deleted + multieditor + Deleted + + + + Read only + multieditor + Read only + + + + MultiEditorBoolPlugin + + + Boolean + Boolean + + + + MultiEditorDatePlugin + + + Date + Date + + + + MultiEditorDateTimePlugin + + + Date & time + Date & time + + + + MultiEditorHexPlugin + + + Hex + Hex + + + + MultiEditorNumericPlugin + + + Number + numeric multi editor tab name + Number + + + + MultiEditorText + + + Tab changes focus + Tab changes focus + + + + Cut + Cut + + + + Copy + Copy + + + + Paste + Paste + + + + Delete + Delete + + + + Undo + Undo + + + + Redo + Redo + + + + MultiEditorTextPlugin + + + Text + Text + + + + MultiEditorTimePlugin + + + Time + Time + + + + NewConstraintDialog + + + New constraint + New constraint + + + + + Primary Key + new constraint dialog + Primary Key + + + + + Foreign Key + new constraint dialog + Foreign Key + + + + + Unique + new constraint dialog + Unique + + + + + Check + new constraint dialog + Check + + + + Not NULL + new constraint dialog + Not NULL + + + + Collate + new constraint dialog + Collate + + + + Generated + new constraint dialog + Generated + + + + Default + new constraint dialog + Default + + + + NewVersionDialog + + + SQLiteStudio updates + SQLiteStudio updates + + + + New version is available! + New version is available! + + + + Download new version! + Download new version! + + + + New version package will be downloaded. It will be up to you to install it whenever you're ready. + New version package will be downloaded. It will be up to you to install it whenever you're ready. + + + + Open SQLiteStudio home page. + Open SQLiteStudio home page. + + + + Read release notes && download package yourself. + Read release notes && download package yourself. + + + + Just close this window. + Just close this window. + + + + Check for updates on startup + Check for updates on startup + + + + Not now. + Not now. + + + + PopulateConfigDialog + + + Populating configuration + Populating configuration + + + + Configuring <b>%1</b> for column <b>%2</b> + Configuring <b>%1</b> for column <b>%2</b> + + + + PopulateDialog + + + Populate table + Populate table + + + + Database + Database + + + + Table + Table + + + + Columns + Columns + + + + Number of rows to populate: + Number of rows to populate: + + + + Populate + populate dialog button + Populate + + + + Abort + Abort + + + + Configure + Configure + + + + Populating configuration for this column is invalid or incomplete. + Populating configuration for this column is invalid or incomplete. + + + + Select database with table to populate + Select database with table to populate + + + + Select table to populate + Select table to populate + + + + You have to select at least one column. + You have to select at least one column. + + + + QObject + + + Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). + Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). + + + + The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. + The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. + + + + Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. + Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. + + + + Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. + Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. + + + + Cannot edit results of query other than %1. + Cannot edit results of query other than %1. + + + + Cannot edit columns that are result of aggregated %1 statements. + Cannot edit columns that are result of aggregated %1 statements. + + + + Cannot edit columns that are result of %1 statement. + Cannot edit columns that are result of %1 statement. + + + + Cannot edit columns that are result of common table expression statement (%1). + Cannot edit columns that are result of common table expression statement (%1). + + + + Cannot edit table generated columns. + Cannot edit table generated columns. + + + + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). + + + + + + + on conflict: %1 + data view tooltip + on conflict: %1 + + + + references table %1, column %2 + data view tooltip + references table %1, column %2 + + + + condition: %1 + data view tooltip + condition: %1 + + + + collation name: %1 + data view tooltip + collation name: %1 + + + + Data grid view + Data grid view + + + + Edit current cell inline + Edit current cell inline + + + + Copy cell(s) contents to clipboard + Copy cell(s) contents to clipboard + + + + Copy cell(s) contents together with header to clipboard + Copy cell(s) contents together with header to clipboard + + + + Paste cell(s) contents from clipboard + Paste cell(s) contents from clipboard + + + + Set empty value to selected cell(s) + Set empty value to selected cell(s) + + + + Set NULL value to selected cell(s) + Set NULL value to selected cell(s) + + + + Commit changes to cell(s) contents + Commit changes to cell(s) contents + + + + Rollback changes to cell(s) contents + Rollback changes to cell(s) contents + + + + Delete selected data row + Delete selected data row + + + + Insert new data row + Insert new data row + + + + Open contents of selected cell in a separate editor + Open contents of selected cell in a separate editor + + + + Toggle the height adjustment of rows + Toggle the height adjustment of rows + + + + Increase font size + data view + Increase font size + + + + Decrease font size + data view + Decrease font size + + + + Total pages available: %1 + Total pages available: %1 + + + + Total rows loaded: %1 + Total rows loaded: %1 + + + + Data view (both grid and form) + Data view (both grid and form) + + + + Refresh data + Refresh data + + + + Switch to grid view of the data + Switch to grid view of the data + + + + Switch to form view of the data + Switch to form view of the data + + + + Database list + Database list + + + + Delete selected item + Delete selected item + + + + Clear filter contents + Clear filter contents + + + + Refresh schema + Refresh schema + + + + Refresh all schemas + Refresh all schemas + + + + Add database + Add database + + + + Select all items + Select all items + + + + Copy selected item(s) + Copy selected item(s) + + + + + + Paste from clipboard + Paste from clipboard + + + + Increase font size + database list + Increase font size + + + + Decrease font size + database list + Decrease font size + + + + Tables + Tables + + + + Indexes + Indexes + + + + Triggers + Triggers + + + + Views + Views + + + + Columns + Columns + + + + Data form view + Data form view + + + + Commit changes for current row + Commit changes for current row + + + + Rollback changes for current row + Rollback changes for current row + + + + Go to first row on current page + Go to first row on current page + + + + Go to next row + Go to next row + + + + Go to previous row + Go to previous row + + + + Go to last row on current page + Go to last row on current page + + + + Insert new row + Insert new row + + + + Delete current row + Delete current row + + + + Main window + Main window + + + + Open SQL editor + Open SQL editor + + + + Open DDL history window + Open DDL history window + + + + Open snippets editor window + Open snippets editor window + + + + Open function editor window + Open function editor window + + + + Open collation editor window + Open collation editor window + + + + Open extension manager window + Open extension manager window + + + + Previous window + Previous window + + + + Next window + Next window + + + + Hide status area + Hide status area + + + + Open user manual + Open user manual + + + + Open configuration dialog + Open configuration dialog + + + + Open Debug Console + Open Debug Console + + + + Open CSS Console + Open CSS Console + + + + Open the About dialog + Open the About dialog + + + + Quit the application + Quit the application + + + + Cell text value editor + Cell text value editor + + + + + Cut selected text + Cut selected text + + + + + Copy selected text + Copy selected text + + + + + Delete selected text + Delete selected text + + + + + Undo + Undo + + + + + Redo + Redo + + + + SQL editor input field + SQL editor input field + + + + Select whole editor contents + Select whole editor contents + + + + Save contents into a file + Save contents into a file + + + + Load contents from a file + Load contents from a file + + + + Find in text + Find in text + + + + Find next + Find next + + + + Find previous + Find previous + + + + Replace in text + Replace in text + + + + Delete current line + Delete current line + + + + Request code assistant + Request code assistant + + + + Format contents + Format contents + + + + Move selected block of text one line down + Move selected block of text one line down + + + + Move selected block of text one line up + Move selected block of text one line up + + + + Copy selected block of text and paste it a line below + Copy selected block of text and paste it a line below + + + + Copy selected block of text and paste it a line above + Copy selected block of text and paste it a line above + + + + Toggle comment + Toggle comment + + + + Increase font size + sql editor + Increase font size + + + + Decrease font size + sql editor + Decrease font size + + + + All SQLite databases + All SQLite databases + + + + All files + All files + + + + Select database file + Select database file + + + + Select + Select + + + + File type + File type + + + + SQL editor window + SQL editor window + + + + Execute query + Execute query + + + + Execute single query under cursor + Execute single query under cursor + + + + Execute all queries in editor + Execute all queries in editor + + + + Execute "%1" query + Execute "%1" query + + + + Switch current working database to previous on the list + Switch current working database to previous on the list + + + + Switch current working database to next on the list + Switch current working database to next on the list + + + + Go to next editor tab + Go to next editor tab + + + + Go to previous editor tab + Go to previous editor tab + + + + Move keyboard input focus to the results view below + Move keyboard input focus to the results view below + + + + Move keyboard input focus to the SQL editor above + Move keyboard input focus to the SQL editor above + + + + Delete selected SQL history entries + Delete selected SQL history entries + + + + Table window + Table window + + + + Commit the table structure + Commit the table structure + + + + Rollback pending changes in the table structure + Rollback pending changes in the table structure + + + + Refresh table structure + Refresh table structure + + + + Add new column + Add new column + + + + Edit selected column + Edit selected column + + + + Delete selected column + Delete selected column + + + + Export table data + Export table data + + + + Import data to the table + Import data to the table + + + + Add new table constraint + Add new table constraint + + + + Edit selected table constraint + Edit selected table constraint + + + + Delete selected table constraint + Delete selected table constraint + + + + Refresh table index list + Refresh table index list + + + + Add new index + Add new index + + + + Edit selected index + Edit selected index + + + + Delete selected index + Delete selected index + + + + Refresh table trigger list + Refresh table trigger list + + + + + Add new trigger + Add new trigger + + + + + Edit selected trigger + Edit selected trigger + + + + + Delete selected trigger + Delete selected trigger + + + + + Go to next tab + Go to next tab + + + + + Go to previous tab + Go to previous tab + + + + A view window + A view window + + + + Commit the view's query + Commit the view's query + + + + Rollback pending changes in the view's query + Rollback pending changes in the view's query + + + + Refresh view trigger list + Refresh view trigger list + + + + Execute the view's query + Execute the view's query + + + + A code snippets editor window + A code snippets editor window + + + + + + + Commit the pending changes + Commit the pending changes + + + + + + + Rollback the pending changes + Rollback the pending changes + + + + A collation editor window + A collation editor window + + + + A function editor window + A function editor window + + + + A SQLite extension editor window + A SQLite extension editor window + + + + QuitConfirmDialog + + + Uncommitted changes + Uncommitted changes + + + + Are you sure you want to quit the application? + +Following items are pending: + Are you sure you want to quit the application? + +Following items are pending: + + + + SearchTextDialog + + + Find or replace + Find or replace + + + + Find: + Find: + + + + Case sensitive + Case sensitive + + + + Search backwards + Search backwards + + + + Regular expression matching + Regular expression matching + + + + Replace && +find next + Replace && +find next + + + + Replace with: + Replace with: + + + + Replace all + Replace all + + + + Find + Find + + + + SortDialog + + + Sort by columns + Sort by columns + + + + + Column + Column + + + + + Order + Order + + + + Sort by: %1 + Sort by: %1 + + + + Move column up + Move column up + + + + Move column down + Move column down + + + + SqlEditor + + + Wrap words + sql editor + Wrap words + + + + Cut + sql editor + Cut + + + + Copy + sql editor + Copy + + + + Paste + sql editor + Paste + + + + Delete + sql editor + Delete + + + + Select all + sql editor + Select all + + + + Undo + sql editor + Undo + + + + Redo + sql editor + Redo + + + + Complete + sql editor + Complete + + + + Format SQL + sql editor + Format SQL + + + + Save SQL to file + sql editor + Save SQL to file + + + + Select file to save SQL + sql editor + Select file to save SQL + + + + Load SQL from file + sql editor + Load SQL from file + + + + Delete line + sql editor + Delete line + + + + Move block down + sql editor + Move block down + + + + Move block up + sql editor + Move block up + + + + Copy block down + sql editor + Copy block down + + + + Copy up down + sql editor + Copy up down + + + + Find + sql editor + Find + + + + Find next + sql editor + Find next + + + + Find previous + sql editor + Find previous + + + + Replace + sql editor + Replace + + + + Toggle comment + sql editor + Toggle comment + + + + Increase font size + sql editor + Increase font size + + + + Decrease font size + sql editor + Decrease font size + + + + Could not open file '%1' for writing: %2 + Could not open file '%1' for writing: %2 + + + + Saved SQL contents to file: %1 + Saved SQL contents to file: %1 + + + + Syntax completion can be used only when a valid database is set for the SQL editor. + Syntax completion can be used only when a valid database is set for the SQL editor. + + + + Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. + Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. + + + + Save to file + Save to file + + + + SQL scripts (*.sql);;All files (*) + SQL scripts (*.sql);;All files (*) + + + + Open file + Open file + + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Reached the end of document. Hit the find again to restart the search. + Reached the end of document. Hit the find again to restart the search. + + + + SqlQueryItem + + + Committing error: + data view tooltip + Committing error: + + + + Column: + data view tooltip + Column: + + + + Data type: + data view + Data type: + + + + Table: + data view tooltip + Table: + + + + Constraints: + data view tooltip + Constraints: + + + + SqlQueryItemDelegate + + + + + + Cannot edit this cell. Details: %1 + Cannot edit this cell. Details: %1 + + + + The row is marked for deletion. + The row is marked for deletion. + + + + + Structure of this table has changed since last data was loaded. Reload the data to proceed. + Structure of this table has changed since last data was loaded. Reload the data to proceed. + + + + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). + + + + Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. + Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. + + + + SqlQueryModel + + + + Only one query can be executed simultaneously. + Only one query can be executed simultaneously. + + + + Cannot execute query on undefined or invalid database. + Cannot execute query on undefined or invalid database. + + + + Cannot execute empty query. + Cannot execute empty query. + + + + Uncommitted data + Uncommitted data + + + + There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. + There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. + + + + Cannot commit the data for a cell that refers to the already closed database. + Cannot commit the data for a cell that refers to the already closed database. + + + + Could not begin transaction on the database. Details: %1 + Could not begin transaction on the database. Details: %1 + + + + An error occurred while committing the transaction: %1 + An error occurred while committing the transaction: %1 + + + + An error occurred while rolling back the transaction: %1 + An error occurred while rolling back the transaction: %1 + + + + Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. + Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. + + + + An error occurred while committing the data: %1 + An error occurred while committing the data: %1 + + + + Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. + Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. + + + + + Error while executing SQL query on database '%1': %2 + Error while executing SQL query on database '%1': %2 + + + + Error while loading query results: %1 + Error while loading query results: %1 + + + + Insert multiple rows + Insert multiple rows + + + + Number of rows to insert: + Number of rows to insert: + + + + Delete rows + Delete rows + + + + You're about to delete newly inserted rows that are not committed yet. Row numbers: %1 +Such deletion will be permanent. Are you sure you want to delete them? + You're about to delete newly inserted rows that are not committed yet. Row numbers: %1 +Such deletion will be permanent. Are you sure you want to delete them? + + + + SqlQueryView + + + Go to referenced row in... + Go to referenced row in... + + + + Copy + Copy + + + + Copy with headers + Copy with headers + + + + Copy as... + Copy as... + + + + Paste + Paste + + + + Paste as... + Paste as... + + + + Set NULL values + Set NULL values + + + + Erase values + Erase values + + + + Commit + Commit + + + + Rollback + Rollback + + + + Commit selected cells + Commit selected cells + + + + Rollback selected cells + Rollback selected cells + + + + Edit current cell inline + Edit current cell inline + + + + Define columns to sort by + Define columns to sort by + + + + Remove custom sorting + Remove custom sorting + + + + Insert row + Insert row + + + + Insert multiple rows + Insert multiple rows + + + + Delete selected row + Delete selected row + + + + Adjust height of rows + Adjust height of rows + + + + Increase font size + data view + Increase font size + + + + Decrease font size + data view + Decrease font size + + + + Invert selection + data view + Invert selection + + + + Edit value in editor + Edit value in editor + + + + Show value in a viewer + Show value in a viewer + + + + Generate query for selected cells + Generate query for selected cells + + + + No items selected to paste clipboard contents to. + No items selected to paste clipboard contents to. + + + + Cannot paste data. Details: %1 + Cannot paste data. Details: %1 + + + + Structure of at least one table used has changed since last data was loaded. Reload the data to proceed. + Structure of at least one table used has changed since last data was loaded. Reload the data to proceed. + + + + Cannot paste to a cell. Details: %1 + Cannot paste to a cell. Details: %1 + + + + The row is marked for deletion. + The row is marked for deletion. + + + + Cannot paste to column %1. Details: %2 + Cannot paste to column %1. Details: %2 + + + + Go to referenced row in table '%1' + Go to referenced row in table '%1' + + + + table '%1' + table '%1' + + + + Referenced row (%1) + Referenced row (%1) + + + + Trim pasted text? + Trim pasted text? + + + + The pasted text contains leading or trailing white space. Trim it automatically? + The pasted text contains leading or trailing white space. Trim it automatically? + + + + Paste "NULL" as null value? + Paste "NULL" as null value? + + + + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + + + + Edit value + Edit value + + + + SqlTableModel + + + Error while committing new row: %1 + Error while committing new row: %1 + + + + Error while deleting row from table %1: %2 + Error while deleting row from table %1: %2 + + + + SqliteExtensionEditor + + + Filter extensions + Filter extensions + + + + Leave empty to use default function + Leave empty to use default function + + + + Extension file + Extension file + + + + Initialization function + Initialization function + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Extension manager window has uncommitted modifications. + Extension manager window has uncommitted modifications. + + + + Extension manager + Extension manager + + + + Commit all extension changes + Commit all extension changes + + + + Rollback all extension changes + Rollback all extension changes + + + + Add new extension + Add new extension + + + + Remove selected extension + Remove selected extension + + + + Editing extensions manual + Editing extensions manual + + + + File with given path does not exist or is not readable. + File with given path does not exist or is not readable. + + + + Unable to load extension: %1 + Unable to load extension: %1 + + + + Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. + Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. + + + + Dynamic link libraries (*.dll);;All files (*) + Dynamic link libraries (*.dll);;All files (*) + + + + Shared objects (*.so);;All files (*) + Shared objects (*.so);;All files (*) + + + + Dynamic libraries (*.dylib);;All files (*) + Dynamic libraries (*.dylib);;All files (*) + + + + All files (*) + All files (*) + + + + Open file + Open file + + + + StatusField + + + Status + Status + + + + Copy + Copy + + + + Clear + Clear + + + + TableConstraintsModel + + + Type + table constraints + Type + + + + Details + table constraints + Details + + + + Name + table constraints + Name + + + + TableForeignKeyPanel + + + Foreign table: + Foreign table: + + + + Columns + Columns + + + + Local column + Local column + + + + Foreign column + Foreign column + + + + Reactions + Reactions + + + + Deferred foreign key + Deferred foreign key + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + Pick the foreign column. + Pick the foreign column. + + + + Pick the foreign table. + Pick the foreign table. + + + + Select at least one foreign column. + Select at least one foreign column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + Foreign column + table constraints + Foreign column + + + + TablePrimaryKeyAndUniquePanel + + + Columns + Columns + + + + Column + Column + + + + Collation + Collation + + + + Sort + Sort + + + + Valid only for a single column with INTEGER data type + Valid only for a single column with INTEGER data type + + + + Autoincrement + Autoincrement + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + On conflict + On conflict + + + + Collate + table constraints + Collate + + + + Sort order + table constraints + Sort order + + + + Select at least one column. + Select at least one column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + TableStructureModel + + + Name + table structure columns + Name + + + + Data type + table structure columns + Data type + + + + Primary +Key + table structure columns + Primary +Key + + + + Foreign +Key + table structure columns + Foreign +Key + + + + Unique + table structure columns + Unique + + + + Check + table structure columns + Check + + + + Not +NULL + table structure columns + Not +NULL + + + + Collate + table structure columns + Collate + + + + Generated + table structure columns + Generated + + + + Default value + table structure columns + Default value + + + + TableWindow + + + Structure + Structure + + + + Table name: + Table name: + + + + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + + + + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + + + + + Data + Data + + + + Constraints + Constraints + + + + Indexes + Indexes + + + + Triggers + Triggers + + + + DDL + DDL + + + + Export table + table window + Export table + + + + Import data to table + table window + Import data to table + + + + Populate table + table window + Populate table + + + + Refresh structure + table window + Refresh structure + + + + Commit structure changes + table window + Commit structure changes + + + + Rollback structure changes + table window + Rollback structure changes + + + + Add column + table window + Add column + + + + Edit column + table window + Edit column + + + + + Delete column + table window + Delete column + + + + Move column up + table window + Move column up + + + + Move column down + table window + Move column down + + + + Create similar table + table window + Create similar table + + + + Reset autoincrement value + table window + Reset autoincrement value + + + + Add table constraint + table window + Add table constraint + + + + Edit table constraint + table window + Edit table constraint + + + + Delete table constraint + table window + Delete table constraint + + + + Move table constraint up + table window + Move table constraint up + + + + Move table constraint down + table window + Move table constraint down + + + + Add table primary key + table window + Add table primary key + + + + Add table foreign key + table window + Add table foreign key + + + + Add table unique constraint + table window + Add table unique constraint + + + + Add table check constraint + table window + Add table check constraint + + + + Refresh index list + table window + Refresh index list + + + + + Create index + table window + Create index + + + + Edit index + table window + Edit index + + + + Delete index + table window + Delete index + + + + Refresh trigger list + table window + Refresh trigger list + + + + + Create trigger + table window + Create trigger + + + + Edit trigger + table window + Edit trigger + + + + Delete trigger + table window + Delete trigger + + + + Are you sure you want to delete column '%1'? + table window + Are you sure you want to delete column '%1'? + + + + Following problems will take place while modifying the table. +Would you like to proceed? + table window + Following problems will take place while modifying the table. +Would you like to proceed? + + + + Table modification + table window + Table modification + + + + Could not load data for table %1. Error details: %2 + Could not load data for table %1. Error details: %2 + + + + Could not process the %1 table correctly. Unable to open a table window. + Could not process the %1 table correctly. Unable to open a table window. + + + + Database + Database + + + + Could not restore window %1, because no database or table was stored in session for this window. + Could not restore window %1, because no database or table was stored in session for this window. + + + + Could not restore window '%1', because no database or table was stored in session for this window. + Could not restore window '%1', because no database or table was stored in session for this window. + + + + Could not restore window '%1', because database %2 could not be resolved. + Could not restore window '%1', because database %2 could not be resolved. + + + + Could not restore window '%1', because the table %2 doesn't exist in the database %3. + Could not restore window '%1', because the table %2 doesn't exist in the database %3. + + + + + New table %1 + New table %1 + + + + Committed changes for table '%1' successfully. + Committed changes for table '%1' successfully. + + + + Committed changes for table '%1' (named before '%2') successfully. + Committed changes for table '%1' (named before '%2') successfully. + + + + Could not commit table structure. Error message: %1 + table window + Could not commit table structure. Error message: %1 + + + + Reset autoincrement + Reset autoincrement + + + + Are you sure you want to reset autoincrement value for table '%1'? + Are you sure you want to reset autoincrement value for table '%1'? + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + An error occurred while trying to reset autoincrement value for table '%1': %2 + + + + Autoincrement value for table '%1' has been reset successfully. + Autoincrement value for table '%1' has been reset successfully. + + + + Empty name + Empty name + + + + A blank name for the table is allowed in SQLite, but it is not recommended. +Are you sure you want to create a table with blank name? + A blank name for the table is allowed in SQLite, but it is not recommended. +Are you sure you want to create a table with blank name? + + + + Cannot create a table without at least one column. + Cannot create a table without at least one column. + + + + Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. + Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. + + + + Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. + Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. + + + + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 + + + + Are you sure you want to delete table constraint '%1'? + table window + Are you sure you want to delete table constraint '%1'? + + + + Delete constraint + table window + Delete constraint + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + Uncommitted changes + Uncommitted changes + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + + + + Go back to structure tab + Go back to structure tab + + + + Commit modifications and browse data. + Commit modifications and browse data. + + + + Name + table window indexes + Name + + + + Unique + table window indexes + Unique + + + + Columns + table window indexes + Columns + + + + Partial index condition + table window indexes + Partial index condition + + + + Name + table window triggers + Name + + + + Event + table window triggers + Event + + + + Condition + table window triggers + Condition + + + + Details + table window triggers + Details + + + + Table window "%1" has uncommitted structure modifications and data. + Table window "%1" has uncommitted structure modifications and data. + + + + Table window "%1" has uncommitted data. + Table window "%1" has uncommitted data. + + + + Table window "%1" has uncommitted structure modifications. + Table window "%1" has uncommitted structure modifications. + + + + TriggerColumnsDialog + + + Trigger columns + Trigger columns + + + + Triggering columns: + Triggering columns: + + + + Select all + Select all + + + + Deselect all + Deselect all + + + + TriggerDialog + + + + Trigger + Trigger + + + + On table: + On table: + + + + Action: + Action: + + + + + <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> + <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> + + + + Pre-condition: + Pre-condition: + + + + The scope is still not fully supported by the SQLite database. + The scope is still not fully supported by the SQLite database. + + + + Trigger name: + Trigger name: + + + + When: + When: + + + + List of columns for UPDATE OF action. + List of columns for UPDATE OF action. + + + + Scope: + Scope: + + + + Code: + Code: + + + + Trigger statements to be executed. + Trigger statements to be executed. + + + + DDL + DDL + + + + On view: + On view: + + + + Could not process trigger %1 correctly. Unable to open a trigger dialog. + Could not process trigger %1 correctly. Unable to open a trigger dialog. + + + + Enter a valid condition. + Enter a valid condition. + + + + Enter a valid trigger code. + Enter a valid trigger code. + + + + Error + trigger dialog + Error + + + + An error occurred while executing SQL statements: +%1 + An error occurred while executing SQL statements: +%1 + + + + VersionConvertSummaryDialog + + + Database version convert + Database version convert + + + + Following changes to the SQL statements will be made: + Following changes to the SQL statements will be made: + + + + Before + Before + + + + After + After + + + + ViewWindow + + + Query + Query + + + + View name: + View name: + + + + Output column names + Output column names + + + + + Data + Data + + + + Triggers + Triggers + + + + DDL + DDL + + + + + Could not restore window '%1', because no database or view was stored in session for this window. + Could not restore window '%1', because no database or view was stored in session for this window. + + + + Could not restore window '%1', because database %2 could not be resolved. + Could not restore window '%1', because database %2 could not be resolved. + + + + Could not restore window '%1', because database %2 could not be open. + Could not restore window '%1', because database %2 could not be open. + + + + Could not restore window '%1', because the view %2 doesn't exist in the database %3. + Could not restore window '%1', because the view %2 doesn't exist in the database %3. + + + + + New view %1 + New view %1 + + + + Database + Database + + + + Refresh the view + view window + Refresh the view + + + + Commit the view changes + view window + Commit the view changes + + + + Rollback the view changes + view window + Rollback the view changes + + + + Explicit column names + Explicit column names + + + + Generate output column names automatically basing on result columns of the view. + Generate output column names automatically basing on result columns of the view. + + + + Add column + view window + Add column + + + + Edit column + view window + Edit column + + + + Delete column + view window + Delete column + + + + Move column up + view window + Move column up + + + + Move column down + view window + Move column down + + + + Refresh trigger list + view window + Refresh trigger list + + + + Create new trigger + view window + Create new trigger + + + + Edit selected trigger + view window + Edit selected trigger + + + + Delete selected trigger + view window + Delete selected trigger + + + + View window "%1" has uncommitted structure modifications and data. + View window "%1" has uncommitted structure modifications and data. + + + + View window "%1" has uncommitted data. + View window "%1" has uncommitted data. + + + + View window "%1" has uncommitted structure modifications. + View window "%1" has uncommitted structure modifications. + + + + Could not load data for view %1. Error details: %2 + Could not load data for view %1. Error details: %2 + + + + Uncommitted changes + Uncommitted changes + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + + + + Go back to structure tab + Go back to structure tab + + + + Commit modifications and browse data. + Commit modifications and browse data. + + + + View '%1' was committed successfully. + View '%1' was committed successfully. + + + + Committed changes for view '%1' successfully. + Committed changes for view '%1' successfully. + + + + Committed changes for view '%1' (named before '%2') successfully. + Committed changes for view '%1' (named before '%2') successfully. + + + + Could not commit view changes. Error message: %1 + view window + Could not commit view changes. Error message: %1 + + + + Override columns + Override columns + + + + Currently defined columns will be overriden. Do you want to continue? + Currently defined columns will be overriden. Do you want to continue? + + + + Could not determinate columns returned from the view. The query is problably incomplete or contains errors. + Could not determinate columns returned from the view. The query is problably incomplete or contains errors. + + + + Name + view window triggers + Name + + + + Instead of + view window triggers + Instead of + + + + Condition + view window triggers + Condition + + + + Details + table window triggers + Details + + + + Could not process the %1 view correctly. Unable to open a view window. + Could not process the %1 view correctly. Unable to open a view window. + + + + Empty name + Empty name + + + + A blank name for the view is allowed in SQLite, but it is not recommended. +Are you sure you want to create a view with blank name? + A blank name for the view is allowed in SQLite, but it is not recommended. +Are you sure you want to create a view with blank name? + + + + The SELECT statement could not be parsed. Please correct the query and retry. +Details: %1 + The SELECT statement could not be parsed. Please correct the query and retry. +Details: %1 + + + + The view could not be modified due to internal SQLiteStudio error. Please report this! + The view could not be modified due to internal SQLiteStudio error. Please report this! + + + + The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. + The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. + + + + Following problems will take place while modifying the view. +Would you like to proceed? + view window + Following problems will take place while modifying the view. +Would you like to proceed? + + + + View modification + view window + View modification + + + + WidgetCover + + + Interrupt + Interrupt + + + diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_sv_SE.ts b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_sv_SE.ts new file mode 100644 index 0000000..694d5ea --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_sv_SE.ts @@ -0,0 +1,7111 @@ + + + + + AboutDialog + + + About SQLiteStudio and licenses + About SQLiteStudio and licenses + + + + About + About + + + + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + + + + Licenses + Licenses + + + + Environment + Environment + + + + Icon directories + Icon directories + + + + Form directories + Form directories + + + + SQLite extension directories + SQLite extension directories + + + + Plugin directories + Plugin directories + + + + Configuration directory + Configuration directory + + + + Application directory + Application directory + + + + Qt version: + Qt version: + + + + SQLite 3 version: + SQLite 3 version: + + + + Portable distribution. + Portable distribution. + + + + MacOS X application bundle distribution. + MacOS X application bundle distribution. + + + + Operating system managed distribution. + Operating system managed distribution. + + + + <h3>Table of contents:</h3><ol>%2</ol> + <h3>Table of contents:</h3><ol>%2</ol> + + + + BindParamsDialog + + + Query parameters + Query parameters + + + + Please provide values for query parameters + Please provide values for query parameters + + + + CodeSnippetEditor + + + Filter snippets + Filter snippets + + + + + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + + + + + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + + + + Snippet name + Snippet name + + + + Code assistant shortcut + Code assistant shortcut + + + + Snippet code + Snippet code + + + + Code Snippets editor window has uncommitted modifications. + Code Snippets editor window has uncommitted modifications. + + + + Code Snippets editor + Code Snippets editor + + + + Commit all snippet changes + Commit all snippet changes + + + + Rollback all snippet changes + Rollback all snippet changes + + + + Create new snippet + Create new snippet + + + + Delete selected snippet + Delete selected snippet + + + + Move the snippet up + Move the snippet up + + + + Move the snippet down + Move the snippet down + + + + Code snippets manual + Code snippets manual + + + + Enter a non-empty, unique name of the snippet. + Enter a non-empty, unique name of the snippet. + + + + Enter a non-empty snippet content. + Enter a non-empty snippet content. + + + + This hotkey is not unique in context of a code assistant. + This hotkey is not unique in context of a code assistant. + + + + CollationsEditor + + + Filter collations + Filter collations + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Implementation code: + Implementation code: + + + + Collation name: + Collation name: + + + + Implementation language: + Implementation language: + + + + Collations editor + Collations editor + + + + Commit all collation changes + Commit all collation changes + + + + Rollback all collation changes + Rollback all collation changes + + + + Create new collation + Create new collation + + + + Delete selected collation + Delete selected collation + + + + Editing collations manual + Editing collations manual + + + + Enter a non-empty, unique name of the collation. + Enter a non-empty, unique name of the collation. + + + + Pick the implementation language. + Pick the implementation language. + + + + Enter a non-empty implementation code. + Enter a non-empty implementation code. + + + + Collations editor window has uncommitted modifications. + Collations editor window has uncommitted modifications. + + + + ColorButton + + + Pick a color + Pick a color + + + + ColumnCollatePanel + + + Collation name: + Collation name: + + + + Named constraint: + Named constraint: + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + Enter a collation name. + Enter a collation name. + + + + ColumnDefaultPanel + + + Default value: + Default value: + + + + Named constraint: + Named constraint: + + + + Enter a default value expression. + Enter a default value expression. + + + + Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. + Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. + + + + Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. + Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ColumnDialog + + + Column + Column + + + + Name and type + Name and type + + + + Scale + Scale + + + + Precision + Precision + + + + Data type: + Data type: + + + + Column name: + Column name: + + + + Size: + Size: + + + + Constraints + Constraints + + + + Generated value + Generated value + + + + Unique + Unique + + + + + + + + + + + Configure + Configure + + + + Foreign Key + Foreign Key + + + + Collate + Collate + + + + Not NULL + Not NULL + + + + Check condition + Check condition + + + + Primary Key + Primary Key + + + + Default + Default + + + + Advanced mode + Advanced mode + + + + Add constraint + column dialog + Add constraint + + + + Edit constraint + column dialog + Edit constraint + + + + + Delete constraint + column dialog + Delete constraint + + + + Move constraint up + column dialog + Move constraint up + + + + Move constraint down + column dialog + Move constraint down + + + + Add a primary key + column dialog + Add a primary key + + + + Add a foreign key + column dialog + Add a foreign key + + + + Add an unique constraint + column dialog + Add an unique constraint + + + + Add a check constraint + column dialog + Add a check constraint + + + + Add a not null constraint + column dialog + Add a not null constraint + + + + Add a collate constraint + column dialog + Add a collate constraint + + + + Add a generated value constraint + column dialog + Add a generated value constraint + + + + Add a default constraint + column dialog + Add a default constraint + + + + Are you sure you want to delete constraint '%1'? + column dialog + Are you sure you want to delete constraint '%1'? + + + + Correct the constraint's configuration. + Correct the constraint's configuration. + + + + Scale is not allowed for INTEGER PRIMARY KEY columns. + Scale is not allowed for INTEGER PRIMARY KEY columns. + + + + Precision cannot be defined without the scale. + Precision cannot be defined without the scale. + + + + Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. + Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. + + + + INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. + INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. + + + + Precision is not allowed for INTEGER PRIMARY KEY columns. + Precision is not allowed for INTEGER PRIMARY KEY columns. + + + + Could not match valid STRICT table datatype from declared type: %1. + Could not match valid STRICT table datatype from declared type: %1. + + + + ColumnDialogConstraintsModel + + + Type + column dialog constraints + Type + + + + Name + column dialog constraints + Name + + + + Details + column dialog constraints + Details + + + + ColumnForeignKeyPanel + + + Foreign table: + Foreign table: + + + + Foreign column: + Foreign column: + + + + Reactions + Reactions + + + + Deferred foreign key + Deferred foreign key + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + Pick the foreign table. + Pick the foreign table. + + + + Pick the foreign column. + Pick the foreign column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ColumnGeneratedPanel + + + Generating code: + Generating code: + + + + Explicit type: + Explicit type: + + + + Use "GENERATED ALWAYS" keywords + Use "GENERATED ALWAYS" keywords + + + + Named constraint: + Named constraint: + + + + Enter the column value generating expression. + Enter the column value generating expression. + + + + Invalid value generating expression: %1. + Invalid value generating expression: %1. + + + + Invalid value generating expression. + Invalid value generating expression. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ColumnPrimaryKeyPanel + + + Autoincrement + Autoincrement + + + + Sort order: + Sort order: + + + + Named constraint: + Named constraint: + + + + On conflict: + On conflict: + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + Descending order is not allowed with AUTOINCREMENT. + Descending order is not allowed with AUTOINCREMENT. + + + + ColumnUniqueAndNotNullPanel + + + Named constraint: + Named constraint: + + + + On conflict: + On conflict: + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + CompleterWindow + + + Column: %1 + completer statusbar + Column: %1 + + + + Table: %1 + completer statusbar + Table: %1 + + + + Index: %1 + completer statusbar + Index: %1 + + + + Trigger: %1 + completer statusbar + Trigger: %1 + + + + View: %1 + completer statusbar + View: %1 + + + + Database: %1 + completer statusbar + Database: %1 + + + + Keyword: %1 + completer statusbar + Keyword: %1 + + + + Function: %1 + completer statusbar + Function: %1 + + + + Operator: %1 + completer statusbar + Operator: %1 + + + + String + completer statusbar + String + + + + Number + completer statusbar + Number + + + + Binary data + completer statusbar + Binary data + + + + Collation: %1 + completer statusbar + Collation: %1 + + + + Pragma function: %1 + completer statusbar + Pragma function: %1 + + + + Insert a code snippet + Insert a code snippet + + + + ConfigDialog + + + + Configuration + Configuration + + + + Search + Search + + + + General + General + + + + Keyboard shortcuts + Keyboard shortcuts + + + + Look & feel + Look & feel + + + + Style + Style + + + + Fonts + Fonts + + + + Code colors + Code colors + + + + + Database list + Database list + + + + Code assistant + Code assistant + + + + Data browsing + Data browsing + + + + Data editors + Data editors + + + + Plugins + Plugins + + + + Code formatters + Code formatters + + + + If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. + If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. + + + + Sort table columns alphabetically + Sort table columns alphabetically + + + + Expand tables node when connected to a database + Expand tables node when connected to a database + + + + <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> + <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> + + + + Display additional labels on the list + Display additional labels on the list + + + + For regular tables labels will show number of columns, indexes and triggers for each of tables. + For regular tables labels will show number of columns, indexes and triggers for each of tables. + + + + Display labels for regular tables + Display labels for regular tables + + + + Virtual tables will be marked with a 'virtual' label. + Virtual tables will be marked with a 'virtual' label. + + + + Display labels for virtual tables + Display labels for virtual tables + + + + Expand views node when connected to a database + Expand views node when connected to a database + + + + If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) + If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) + + + + Sort objects (tables, indexes, triggers and views) alphabetically + Sort objects (tables, indexes, triggers and views) alphabetically + + + + Display system tables and indexes on the list + Display system tables and indexes on the list + + + + Database dialog window + Database dialog window + + + + <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> + <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> + + + + Do not mark database to be "permanent" by default + Do not mark database to be "permanent" by default + + + + <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> + <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> + + + + Try to bypass dialog completly when dropping database file onto the list + Try to bypass dialog completly when dropping database file onto the list + + + + Data browsing and editing + Data browsing and editing + + + + + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + + + + Number of memorized table populating configurations + Number of memorized table populating configurations + + + + Data column width + Data column width + + + + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + + + + Enlarge column when entering value longer than current width + Enlarge column when entering value longer than current width + + + + <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> + <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> + + + + Number of data rows per page: + Number of data rows per page: + + + + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> + + + + Show column and row details tooltip in data view + Show column and row details tooltip in data view + + + + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + + + + Keep NULL value when entering empty value + Keep NULL value when entering empty value + + + + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> + + + + Use DEFAULT value (if defined), when committing NULL value + Use DEFAULT value (if defined), when committing NULL value + + + + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + + + + Limit number of rows for in case of dozens of columns + Limit number of rows for in case of dozens of columns + + + + Inserting new row in data grid + Inserting new row in data grid + + + + Before currently selected row + Before currently selected row + + + + After currently selected row + After currently selected row + + + + At the end of data view + At the end of data view + + + + Table windows + Table windows + + + + <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> + <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> + + + + Open Table Windows with the data tab for start + Open Table Windows with the data tab for start + + + + <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> + <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> + + + + Place data tab as first tab in a Table Window + Place data tab as first tab in a Table Window + + + + View windows + View windows + + + + <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> + <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> + + + + Open View Windows with the data tab for start + Open View Windows with the data tab for start + + + + <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> + <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> + + + + Place data tab as first tab in a View Window + Place data tab as first tab in a View Window + + + + Data types + Data types + + + + Available editors: + Available editors: + + + + Editors selected for this data type: + Editors selected for this data type: + + + + Schema editing + Schema editing + + + + Number of DDL changes kept in history. + Number of DDL changes kept in history. + + + + DDL history size: + DDL history size: + + + + Don't show DDL preview dialog when committing schema changes + Don't show DDL preview dialog when committing schema changes + + + + SQL queries + SQL queries + + + + + Number of queries kept in the history. + Number of queries kept in the history. + + + + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> + + + + History size: + History size: + + + + + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> + + + + Execute only the query under the cursor + Execute only the query under the cursor + + + + Number of memorized query parameters + Number of memorized query parameters + + + + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + + + + Use scientific notation for real numbers in the grid view + Use scientific notation for real numbers in the grid view + + + + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + + + + Limit automatic data column width to (in pixels): + Limit automatic data column width to (in pixels): + + + + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + + + + Keep at least the width to show complete column name + Keep at least the width to show complete column name + + + + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + + + + Wrap lines in SQL editor + Wrap lines in SQL editor + + + + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + + + + Highlight current query + Highlight current query + + + + Updates + Updates + + + + Automatically check for updates at startup + Automatically check for updates at startup + + + + Session + Session + + + + Restore last session (active MDI windows) after startup + Restore last session (active MDI windows) after startup + + + + Allow multiple instances of the application at the same time + Allow multiple instances of the application at the same time + + + + Status Field + Status Field + + + + <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> + <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> + + + + Always open Status panel when new message is printed + Always open Status panel when new message is printed + + + + Code syntax colors + Code syntax colors + + + + Keyword foreground + Keyword foreground + + + + Regular foreground + Regular foreground + + + + String foreground + String foreground + + + + Comment foreground + Comment foreground + + + + Valid objects foreground + Valid objects foreground + + + + Current query background + Current query background + + + + Bind parameter foreground + Bind parameter foreground + + + + Current line background + Current line background + + + + Matched parenthesis background + Matched parenthesis background + + + + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + + + + Number foreground + Number foreground + + + + BLOB value foreground + BLOB value foreground + + + + Matched parenthesis foreground + Matched parenthesis foreground + + + + Reset to defaults + Reset to defaults + + + + Filter shortcuts by name or key combination + Filter shortcuts by name or key combination + + + + Action + Action + + + + Key combination + Key combination + + + + + Language + Language + + + + Changing language requires application restart to take effect. + Changing language requires application restart to take effect. + + + + Compact layout + Compact layout + + + + <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> + <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> + + + + Use compact layout + Use compact layout + + + + Main window dock areas + Main window dock areas + + + + Left and right areas occupy corners + Left and right areas occupy corners + + + + Top and bottom areas occupy corners + Top and bottom areas occupy corners + + + + Hide built-in plugins + Hide built-in plugins + + + + Current style: + Current style: + + + + Preview + Preview + + + + Enabled + Enabled + + + + Disabled + Disabled + + + + Active formatter plugin + Active formatter plugin + + + + SQL editor font + SQL editor font + + + + Database list font + Database list font + + + + Database list additional label font + Database list additional label font + + + + Data view font + Data view font + + + + Status field font + Status field font + + + + Code assistant settings + Code assistant settings + + + + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + + + + Automatically trigger the assistant after a dot is typed after an object name + Automatically trigger the assistant after a dot is typed after an object name + + + + Description: + plugin details + Description: + + + + Category: + plugin details + Category: + + + + Version: + plugin details + Version: + + + + Author: + plugin details + Author: + + + + Internal name: + plugin details + Internal name: + + + + Dependencies: + plugin details + Dependencies: + + + + Conflicts: + plugin details + Conflicts: + + + + Plugin details + Plugin details + + + + Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. + Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. + + + + %1 (built-in) + plugins manager in configuration dialog + %1 (built-in) + + + + Details + Details + + + + No plugins in this category. + No plugins in this category. + + + + Add new data type + Add new data type + + + + Rename selected data type + Rename selected data type + + + + Delete selected data type + Delete selected data type + + + + Help for configuring data type editors + Help for configuring data type editors + + + + Clear hotkey for this action + Clear hotkey for this action + + + + Restore original hotkey for this action + Restore original hotkey for this action + + + + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + + + + ConstraintCheckPanel + + + The condition + The condition + + + + Named constraint: + Named constraint: + + + + On conflict + On conflict + + + + Enter a valid condition. + Enter a valid condition. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ConstraintDialog + + + New constraint + constraint dialog + New constraint + + + + Create + constraint dialog + Create + + + + Edit constraint + dialog window + Edit constraint + + + + Apply + constraint dialog + Apply + + + + Primary key + table constraints + Primary key + + + + Foreign key + table constraints + Foreign key + + + + Unique + table constraints + Unique + + + + Not NULL + table constraints + Not NULL + + + + Check + table constraints + Check + + + + Generated + table constraints + Generated + + + + Collate + table constraints + Collate + + + + Default + table constraints + Default + + + + ConstraintTabModel + + + Table + table constraints + Table + + + + Column (%1) + table constraints + Column (%1) + + + + Scope + table constraints + Scope + + + + Type + table constraints + Type + + + + Details + table constraints + Details + + + + Name + table constraints + Name + + + + CssDebugDialog + + + SQLiteStudio CSS console + SQLiteStudio CSS console + + + + DataView + + + Filter data + data view + Filter data + + + + Grid view + Grid view + + + + Form view + Form view + + + + Refresh table data + data view + Refresh table data + + + + First page + data view + First page + + + + Previous page + data view + Previous page + + + + Next page + data view + Next page + + + + Last page + data view + Last page + + + + Commit changes for selected cells + data view + Commit changes for selected cells + + + + Rollback changes for selected cells + data view + Rollback changes for selected cells + + + + Show grid view of results + data view + Show grid view of results + + + + Show form view of results + data view + Show form view of results + + + + Filter by text (if contains) + data view + Filter by text (if contains) + + + + Filter strictly by text (if equals) + data view + Filter strictly by text (if equals) + + + + Tabs on top + data view + Tabs on top + + + + Tabs at bottom + data view + Tabs at bottom + + + + Place new rows above selected row + data view + Place new rows above selected row + + + + Place new rows below selected row + data view + Place new rows below selected row + + + + Place new rows at the end of the data view + data view + Place new rows at the end of the data view + + + + Total number of rows is being counted. +Browsing other pages will be possible after the row counting is done. + Total number of rows is being counted. +Browsing other pages will be possible after the row counting is done. + + + + Row: %1 + Row: %1 + + + + Filter + Filter + + + + Hit Enter key or press "Apply filter" button on toolbar to apply new value. + Hit Enter key or press "Apply filter" button on toolbar to apply new value. + + + + Filter by the Regular Expression + data view + Filter by the Regular Expression + + + + Filter by SQL expression + data view + Filter by SQL expression + + + + Show filter inputs per column + data view + Show filter inputs per column + + + + Apply filter + data view + Apply filter + + + + DbDialog + + + Database + Database + + + + Database type + Database type + + + + Database driver + Database driver + + + + + File + File + + + + Name (on the list) + Name (on the list) + + + + Options + Options + + + + <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> + aasfd + <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> + + + + Permanent (keep it in configuration) + Permanent (keep it in configuration) + + + + Test connection + Test connection + + + + Select new or existing file on local computer + Select new or existing file on local computer + + + + Browse + Browse + + + + Database type not selected. + Database type not selected. + + + + Database path not specified. + Database path not specified. + + + + Enter an unique database name. + Enter an unique database name. + + + + This name is already in use. Please enter unique name. + This name is already in use. Please enter unique name. + + + + <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> + <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> + + + + Enter a database file path. + Enter a database file path. + + + + This database is already on the list under name: %1 + This database is already on the list under name: %1 + + + + Select a database type. + Select a database type. + + + + DbObjectDialogs + + + Delete table + Delete table + + + + Are you sure you want to delete table %1? + Are you sure you want to delete table %1? + + + + Delete index + Delete index + + + + Are you sure you want to delete index %1? + Are you sure you want to delete index %1? + + + + Delete trigger + Delete trigger + + + + Are you sure you want to delete trigger %1? + Are you sure you want to delete trigger %1? + + + + Delete view + Delete view + + + + Are you sure you want to delete view %1? + Are you sure you want to delete view %1? + + + + + Error while dropping %1: %2 + Error while dropping %1: %2 + + + + Delete objects + Delete objects + + + + Are you sure you want to delete following objects: +%1 + Are you sure you want to delete following objects: +%1 + + + + Cannot start transaction. Details: %1 + Cannot start transaction. Details: %1 + + + + Cannot commit transaction. Details: %1 + Cannot commit transaction. Details: %1 + + + + DbTree + + + Databases + Databases + + + + Filter by name + Filter by name + + + + Copy + Copy + + + + Paste + Paste + + + + Select all + Select all + + + + Create a group + Create a group + + + + Delete the group + Delete the group + + + + Rename the group + Rename the group + + + + &Add a database + &Add a database + + + + &Edit the database + &Edit the database + + + + &Remove the database + &Remove the database + + + + &Connect to the database + &Connect to the database + + + + &Disconnect from the database + &Disconnect from the database + + + + Import + Import + + + + &Export the database + &Export the database + + + + Vac&uum + Vac&uum + + + + &Integrity check + &Integrity check + + + + Create a &table + Create a &table + + + + Edit the t&able + Edit the t&able + + + + Delete the ta&ble + Delete the ta&ble + + + + Export the table + Export the table + + + + Import into the table + Import into the table + + + + Populate table + Populate table + + + + Create similar table + Create similar table + + + + Reset autoincrement sequence + Reset autoincrement sequence + + + + Create an &index + Create an &index + + + + Edit the i&ndex + Edit the i&ndex + + + + Delete the in&dex + Delete the in&dex + + + + Create a trig&ger + Create a trig&ger + + + + Edit the trigg&er + Edit the trigg&er + + + + Delete the trigge&r + Delete the trigge&r + + + + Create a &view + Create a &view + + + + Edit the v&iew + Edit the v&iew + + + + Delete the vi&ew + Delete the vi&ew + + + + Add a column + Add a column + + + + Edit the column + Edit the column + + + + Delete the column + Delete the column + + + + Delete selected items + Delete selected items + + + + Clear filter + Clear filter + + + + &Refresh all database schemas + &Refresh all database schemas + + + + Re&fresh selected database schema + Re&fresh selected database schema + + + + + Erase table data + Erase table data + + + + Open file's directory + Open file's directory + + + + Execute SQL from file + Execute SQL from file + + + + Increase font size + database list + Increase font size + + + + Decrease font size + database list + Decrease font size + + + + + Database + Database + + + + Grouping + Grouping + + + + Generate query for table + Generate query for table + + + + + Create group + Create group + + + + Group name + Group name + + + + Entry with name %1 already exists in group %2. + Entry with name %1 already exists in group %2. + + + + Delete group + Delete group + + + + Are you sure you want to delete group %1? +All objects from this group will be moved to parent group. + Are you sure you want to delete group %1? +All objects from this group will be moved to parent group. + + + + Are you sure you want to remove database '%1' from the list? + Are you sure you want to remove database '%1' from the list? + + + + Are you sure you want to remove following databases from the list: +%1 + Are you sure you want to remove following databases from the list: +%1 + + + + Remove database + Remove database + + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Vacuum (%1) + Vacuum (%1) + + + + Integrity check (%1) + Integrity check (%1) + + + + Reset autoincrement + Reset autoincrement + + + + Are you sure you want to reset autoincrement value for table '%1'? + Are you sure you want to reset autoincrement value for table '%1'? + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + An error occurred while trying to reset autoincrement value for table '%1': %2 + + + + Autoincrement value for table '%1' has been reset successfully. + Autoincrement value for table '%1' has been reset successfully. + + + + Are you sure you want to delete all data from table(s): %1? + Are you sure you want to delete all data from table(s): %1? + + + + An error occurred while trying to delete data from table '%1': %2 + An error occurred while trying to delete data from table '%1': %2 + + + + All data has been deleted for table '%1'. + All data has been deleted for table '%1'. + + + + Following objects will be deleted: %1. + Following objects will be deleted: %1. + + + + Following databases will be removed from list: %1. + Following databases will be removed from list: %1. + + + + Remainig objects from deleted group will be moved in place where the group used to be. + Remainig objects from deleted group will be moved in place where the group used to be. + + + + %1<br><br>Are you sure you want to continue? + %1<br><br>Are you sure you want to continue? + + + + Delete objects + Delete objects + + + + DbTreeItemDelegate + + + error + dbtree labels + error + + + + (system table) + database tree label + (system table) + + + + (virtual) + virtual table label + (virtual) + + + + (system index) + database tree label + (system index) + + + + DbTreeModel + + + Database: %1 + dbtree tooltip + Database: %1 + + + + URI: + dbtree tooltip + URI: + + + + Version: + dbtree tooltip + Version: + + + + File size: + dbtree tooltip + File size: + + + + Encoding: + dbtree tooltip + Encoding: + + + + Error: + dbtree tooltip + Error: + + + + Table : %1 + dbtree tooltip + Table : %1 + + + + Columns (%1): + dbtree tooltip + Columns (%1): + + + + Indexes (%1): + dbtree tooltip + Indexes (%1): + + + + Triggers (%1): + dbtree tooltip + Triggers (%1): + + + + Copy + Copy + + + + Move + Move + + + + Include data + Include data + + + + Include indexes + Include indexes + + + + Include triggers + Include triggers + + + + Abort + Abort + + + + Could not add dropped database file '%1' automatically. Manual setup is necessary. + Could not add dropped database file '%1' automatically. Manual setup is necessary. + + + + Referenced tables + Referenced tables + + + + Do you want to include following referenced tables as well: +%1 + Do you want to include following referenced tables as well: +%1 + + + + Name conflict + Name conflict + + + + Following object already exists in the target database. +Please enter new, unique name, or press '%1' to abort the operation: + Following object already exists in the target database. +Please enter new, unique name, or press '%1' to abort the operation: + + + + SQL statements conversion + SQL statements conversion + + + + Following error occurred while converting SQL statements to the target SQLite version: + Following error occurred while converting SQL statements to the target SQLite version: + + + + Would you like to ignore those errors and proceed? + Would you like to ignore those errors and proceed? + + + + DdlHistoryWindow + + + Filter by database: + Filter by database: + + + + Clear entire history + Clear entire history + + + + -- Queries executed on database %1 (%2) +-- Date and time of execution: %3 +%4 + -- Queries executed on database %1 (%2) +-- Date and time of execution: %3 +%4 + + + + Clear history + Clear history + + + + Are you sure you want to erase entire DDL history? + Are you sure you want to erase entire DDL history? + + + + DDL history + DDL history + + + + DdlPreviewDialog + + + Queries to be executed + Queries to be executed + + + + Don't show again + Don't show again + + + + DebugConsole + + + SQLiteStudio Debug Console + SQLiteStudio Debug Console + + + + EditorWindow + + + SQL editor + SQL editor + + + + Query + Query + + + + History + History + + + + Results in the separate tab + Results in the separate tab + + + + Results below the query + Results below the query + + + + + SQL editor %1 + SQL editor %1 + + + + + Results + Results + + + + Execute query + Execute query + + + + Explain query + Explain query + + + + Clear execution history + sql editor + Clear execution history + + + + Export results + sql editor + Export results + + + + Create view from query + sql editor + Create view from query + + + + Previous database + Previous database + + + + Next database + Next database + + + + Show next tab + sql editor + Show next tab + + + + Show previous tab + sql editor + Show previous tab + + + + Focus results below + sql editor + Focus results below + + + + Focus SQL editor above + sql editor + Focus SQL editor above + + + + Delete selected SQL history entries + sql editor + Delete selected SQL history entries + + + + Execute single query under cursor + Execute single query under cursor + + + + Execute all queries in editor + Execute all queries in editor + + + + Active database (%1/%2) + Active database (%1/%2) + + + + Query finished in %1 second(s). Rows affected: %2 + Query finished in %1 second(s). Rows affected: %2 + + + + Query finished in %1 second(s). + Query finished in %1 second(s). + + + + Clear execution history + Clear execution history + + + + Are you sure you want to erase the entire SQL execution history? This cannot be undone. + Are you sure you want to erase the entire SQL execution history? This cannot be undone. + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + No database selected in the SQL editor. Cannot create a view for unknown database. + No database selected in the SQL editor. Cannot create a view for unknown database. + + + + Editor window "%1" has uncommitted data. + Editor window "%1" has uncommitted data. + + + + ErrorsConfirmDialog + + + Errors + Errors + + + + Following errors occured: + Following errors occured: + + + + Would you like to proceed? + Would you like to proceed? + + + + ExecFromFileDialog + + + Execute SQL from file + Execute SQL from file + + + + Input file + Input file + + + + Path to file + Path to file + + + + Browse for file + Browse for file + + + + Options + Options + + + + File encoding + File encoding + + + + Skip failing SQL statements + Skip failing SQL statements + + + + SQL scripts (*.sql);;All files (*) + SQL scripts (*.sql);;All files (*) + + + + Execute SQL file + Execute SQL file + + + + Please provide file to be executed. + Please provide file to be executed. + + + + Provided file does not exist or cannot be read. + Provided file does not exist or cannot be read. + + + + ExportDialog + + + Export + Export + + + + What do you want to export? + What do you want to export? + + + + A database + A database + + + + A single table + A single table + + + + Query results + Query results + + + + Table to export + Table to export + + + + Database + Database + + + + Table + Table + + + + Options + Options + + + + When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. + When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. + + + + Export table data + Export table data + + + + Export table indexes + Export table indexes + + + + Export table triggers + Export table triggers + + + + Note, that exporting table indexes and triggers may be unsupported by some output formats. + Note, that exporting table indexes and triggers may be unsupported by some output formats. + + + + Select database objects to export + Select database objects to export + + + + Export data from tables + Export data from tables + + + + Select all + Select all + + + + Deselect all + Deselect all + + + + + Database: + Database: + + + + Query to export results for + Query to export results for + + + + Query to be executed for results: + Query to be executed for results: + + + + Export format and options + Export format and options + + + + Export format + Export format + + + + Output + Output + + + + Exported file path + Exported file path + + + + Clipboard + Clipboard + + + + File + File + + + + Exported text encoding: + Exported text encoding: + + + + Export format options + Export format options + + + + Cancel + Cancel + + + + + + Select database to export. + Select database to export. + + + + Select table to export. + Select table to export. + + + + Enter valid query to export. + Enter valid query to export. + + + + Select at least one object to export. + Select at least one object to export. + + + + You must provide a file name to export to. + You must provide a file name to export to. + + + + Path you provided is an existing directory. You cannot overwrite it. + Path you provided is an existing directory. You cannot overwrite it. + + + + The directory '%1' does not exist. + The directory '%1' does not exist. + + + + The file '%1' exists and will be overwritten. + The file '%1' exists and will be overwritten. + + + + All files (*) + All files (*) + + + + Pick file to export to + Pick file to export to + + + + Internal error during export. This is a bug. Please report it. + Internal error during export. This is a bug. Please report it. + + + + FileExecErrorsDialog + + + Execution errors + Execution errors + + + + Following errors were encountered during execution of SQL statements from the file: + Following errors were encountered during execution of SQL statements from the file: + + + + SQL + SQL + + + + Error + Error + + + + Statements that were executed successfully were commited. + Statements that were executed successfully were commited. + + + + Statements that were executed successfully were rolled back. + Statements that were executed successfully were rolled back. + + + + FkComboBox + + + Cannot edit this cell. Details: %1 + Cannot edit this cell. Details: %1 + + + + FontEdit + + + Choose font + font configuration + Choose font + + + + Form + + + Active SQL formatter plugin + Active SQL formatter plugin + + + + FormView + + + Commit row + form view + Commit row + + + + Rollback row + form view + Rollback row + + + + First row + form view + First row + + + + Previous row + form view + Previous row + + + + Next row + form view + Next row + + + + Last row + form view + Last row + + + + Insert new row + form view + Insert new row + + + + Delete current row + form view + Delete current row + + + + FunctionsEditor + + + Filter functions + Filter functions + + + + Input arguments + Input arguments + + + + Undefined + Undefined + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Type: + Type: + + + + Function name: + Function name: + + + + Implementation language: + Implementation language: + + + + Deterministic + Deterministic + + + + Initialization code: + Initialization code: + + + + + Function implementation code: + Function implementation code: + + + + Final step implementation code: + Final step implementation code: + + + + SQL functions editor + SQL functions editor + + + + Commit all function changes + Commit all function changes + + + + Rollback all function changes + Rollback all function changes + + + + Create new function + Create new function + + + + Delete selected function + Delete selected function + + + + Custom SQL functions manual + Custom SQL functions manual + + + + Add function argument + Add function argument + + + + Rename function argument + Rename function argument + + + + Delete function argument + Delete function argument + + + + Move function argument up + Move function argument up + + + + Move function argument down + Move function argument down + + + + Scalar + Scalar + + + + Aggregate + Aggregate + + + + Enter a non-empty, unique name of the function. + Enter a non-empty, unique name of the function. + + + + Pick the implementation language. + Pick the implementation language. + + + + Per step code: + Per step code: + + + + Enter a non-empty implementation code. + Enter a non-empty implementation code. + + + + argument + new function argument name in function editor window + argument + + + + Functions editor window has uncommitted modifications. + Functions editor window has uncommitted modifications. + + + + ImportDialog + + + Import data + Import data + + + + Table to import to + Table to import to + + + + Table + Table + + + + Database + Database + + + + Data source to import from + Data source to import from + + + + Data source type + Data source type + + + + Options + Options + + + + Text encoding: + Text encoding: + + + + Input file: + Input file: + + + + <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> + <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> + + + + Ignore errors + Ignore errors + + + + Data source options + Data source options + + + + Cancel + Cancel + + + + If you type table name that doesn't exist, it will be created. + If you type table name that doesn't exist, it will be created. + + + + Enter the table name + Enter the table name + + + + Select import plugin. + Select import plugin. + + + + You must provide a file to import from. + You must provide a file to import from. + + + + The file '%1' does not exist. + The file '%1' does not exist. + + + + Path you provided is a directory. A regular file is required. + Path you provided is a directory. A regular file is required. + + + + Pick file to import from + Pick file to import from + + + + IndexDialog + + + + Index + Index + + + + Column + Column + + + + Sort + Sort + + + + Collation + Collation + + + + On table: + On table: + + + + Delete selected indexed expression + Delete selected indexed expression + + + + Moves selected index column up in the order, making it more significant in the index. + Moves selected index column up in the order, making it more significant in the index. + + + + Moves selected index column down in the order, making it less significant in the index. + Moves selected index column down in the order, making it less significant in the index. + + + + Partial index condition + Partial index condition + + + + Unique index + Unique index + + + + Index name: + Index name: + + + + Edit selected indexed expression + Edit selected indexed expression + + + + Add indexed expression + Add indexed expression + + + + DDL + DDL + + + + Tried to open index dialog for closed or inexisting database. + Tried to open index dialog for closed or inexisting database. + + + + Could not process index %1 correctly. Unable to open an index dialog. + Could not process index %1 correctly. Unable to open an index dialog. + + + + Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. + Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. + + + + Pick the table for the index. + Pick the table for the index. + + + + Select at least one column. + Select at least one column. + + + + Enter a valid condition. + Enter a valid condition. + + + + default + index dialog + default + + + + Sort order + table constraints + Sort order + + + + + Error + index dialog + Error + + + + Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? + Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? + + + + An error occurred while executing SQL statements: +%1 + An error occurred while executing SQL statements: +%1 + + + + IndexExprColumnDialog + + + Indexed expression + Indexed expression + + + + Expression to index + Expression to index + + + + This expression is already indexed by the index. + This expression is already indexed by the index. + + + + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. + + + + Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. + Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. + + + + It's forbidden to use 'SELECT' statements in indexed expressions. + It's forbidden to use 'SELECT' statements in indexed expressions. + + + + Enter an indexed expression. + Enter an indexed expression. + + + + Invalid expression. + Invalid expression. + + + + LanguageDialog + + + Language + Language + + + + Please choose language: + Please choose language: + + + + MainWindow + + + Database toolbar + Database toolbar + + + + Structure toolbar + Structure toolbar + + + + Tools + Tools + + + + Window list + Window list + + + + View toolbar + View toolbar + + + + Configuration widgets + Configuration widgets + + + + Syntax highlighting engines + Syntax highlighting engines + + + + Data editors + Data editors + + + + Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. + Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. + + + + Running in debug mode. Debug messages are printed to the standard output. + Running in debug mode. Debug messages are printed to the standard output. + + + + You need to restart application to make the language change take effect. + You need to restart application to make the language change take effect. + + + + Open SQL &editor + Open SQL &editor + + + + Open DDL &history + Open DDL &history + + + + Open SQL &functions editor + Open SQL &functions editor + + + + Open code &snippets editor + Open code &snippets editor + + + + Open &collations editor + Open &collations editor + + + + Open ex&tension manager + Open ex&tension manager + + + + &Import + &Import + + + + E&xport + E&xport + + + + Open confi&guration dialog + Open confi&guration dialog + + + + &Tile windows + &Tile windows + + + + Tile windows &horizontally + Tile windows &horizontally + + + + Tile windows &vertically + Tile windows &vertically + + + + &Cascade windows + &Cascade windows + + + + Next window + Next window + + + + Previous window + Previous window + + + + Hide status field + Hide status field + + + + Close &all windows + Close &all windows + + + + Re&store recently closed window + Re&store recently closed window + + + + Close current &window + Close current &window + + + + Close &other windows + Close &other windows + + + + Close windows on the &left + Close windows on the &left + + + + Close windows on the &right + Close windows on the &right + + + + Re&name selected window + Re&name selected window + + + + Open Debug Console + Open Debug Console + + + + Open CSS Console + Open CSS Console + + + + Report a &bug + Report a &bug + + + + D&onate + D&onate + + + + Propose a new &feature + Propose a new &feature + + + + &About + &About + + + + &Licenses + &Licenses + + + + Open home &page + Open home &page + + + + User &Manual + User &Manual + + + + SQLite &documentation + SQLite &documentation + + + + Bugs and feature &requests + Bugs and feature &requests + + + + Quit + Quit + + + + Check for &updates + Check for &updates + + + + &Database + menubar + &Database + + + + &Structure + menubar + &Structure + + + + &View + menubar + &View + + + + Window list + menubar view menu + Window list + + + + &Tools + menubar + &Tools + + + + &Help + &Help + + + + Could not set style: %1 + main window + Could not set style: %1 + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + Rename window + Rename window + + + + Enter new name for the window: + Enter new name for the window: + + + + New updates are available. <a href="%1">Click here for details</a>. + New updates are available. <a href="%1">Click here for details</a>. + + + + You're running the most recent version. No updates are available. + You're running the most recent version. No updates are available. + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + Database passed in command line parameters (%1) was already on the list under name: %2 + + + + Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 + Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + MdiWindow + + + Uncommitted changes + Uncommitted changes + + + + Close anyway + Close anyway + + + + Don't close + Don't close + + + + MultiEditor + + + Null value + multieditor + Null value + + + + Configure editors for this data type + Configure editors for this data type + + + + Open another tab + Open another tab + + + + Foreign Key + Foreign Key + + + + Data editor plugin '%1' not loaded, while it is defined for editing '%2' data type. + Data editor plugin '%1' not loaded, while it is defined for editing '%1' data type. {1'?} {2'?} {1' or 2'?} + + + + Deleted + multieditor + Deleted + + + + Read only + multieditor + Read only + + + + MultiEditorBoolPlugin + + + Boolean + Boolean + + + + MultiEditorDatePlugin + + + Date + Date + + + + MultiEditorDateTimePlugin + + + Date & time + Date & time + + + + MultiEditorHexPlugin + + + Hex + Hex + + + + MultiEditorNumericPlugin + + + Number + numeric multi editor tab name + Number + + + + MultiEditorText + + + Tab changes focus + Tab changes focus + + + + Cut + Cut + + + + Copy + Copy + + + + Paste + Paste + + + + Delete + Delete + + + + Undo + Undo + + + + Redo + Redo + + + + MultiEditorTextPlugin + + + Text + Text + + + + MultiEditorTimePlugin + + + Time + Time + + + + NewConstraintDialog + + + New constraint + New constraint + + + + + Primary Key + new constraint dialog + Primary Key + + + + + Foreign Key + new constraint dialog + Foreign Key + + + + + Unique + new constraint dialog + Unique + + + + + Check + new constraint dialog + Check + + + + Not NULL + new constraint dialog + Not NULL + + + + Collate + new constraint dialog + Collate + + + + Generated + new constraint dialog + Generated + + + + Default + new constraint dialog + Default + + + + NewVersionDialog + + + SQLiteStudio updates + SQLiteStudio updates + + + + New version is available! + New version is available! + + + + Download new version! + Download new version! + + + + New version package will be downloaded. It will be up to you to install it whenever you're ready. + New version package will be downloaded. It will be up to you to install it whenever you're ready. + + + + Open SQLiteStudio home page. + Open SQLiteStudio home page. + + + + Read release notes && download package yourself. + Read release notes && download package yourself. + + + + Just close this window. + Just close this window. + + + + Check for updates on startup + Check for updates on startup + + + + Not now. + Not now. + + + + PopulateConfigDialog + + + Populating configuration + Populating configuration + + + + Configuring <b>%1</b> for column <b>%2</b> + Configuring <b>%1</b> for column <b>%2</b> + + + + PopulateDialog + + + Populate table + Populate table + + + + Database + Database + + + + Table + Table + + + + Columns + Columns + + + + Number of rows to populate: + Number of rows to populate: + + + + Populate + populate dialog button + Populate + + + + Abort + Abort + + + + Configure + Configure + + + + Populating configuration for this column is invalid or incomplete. + Populating configuration for this column is invalid or incomplete. + + + + Select database with table to populate + Select database with table to populate + + + + Select table to populate + Select table to populate + + + + You have to select at least one column. + You have to select at least one column. + + + + QObject + + + Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). + Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). + + + + The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. + The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. + + + + Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. + Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. + + + + Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. + Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. + + + + Cannot edit results of query other than %1. + Cannot edit results of query other than %1. + + + + Cannot edit columns that are result of aggregated %1 statements. + Cannot edit columns that are result of aggregated %1 statements. + + + + Cannot edit columns that are result of %1 statement. + Cannot edit columns that are result of %1 statement. + + + + Cannot edit columns that are result of common table expression statement (%1). + Cannot edit columns that are result of common table expression statement (%1). + + + + Cannot edit table generated columns. + Cannot edit table generated columns. + + + + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). + + + + + + + on conflict: %1 + data view tooltip + on conflict: %1 + + + + references table %1, column %2 + data view tooltip + references table %1, column %2 + + + + condition: %1 + data view tooltip + condition: %1 + + + + collation name: %1 + data view tooltip + collation name: %1 + + + + Data grid view + Data grid view + + + + Edit current cell inline + Edit current cell inline + + + + Copy cell(s) contents to clipboard + Copy cell(s) contents to clipboard + + + + Copy cell(s) contents together with header to clipboard + Copy cell(s) contents together with header to clipboard + + + + Paste cell(s) contents from clipboard + Paste cell(s) contents from clipboard + + + + Set empty value to selected cell(s) + Set empty value to selected cell(s) + + + + Set NULL value to selected cell(s) + Set NULL value to selected cell(s) + + + + Commit changes to cell(s) contents + Commit changes to cell(s) contents + + + + Rollback changes to cell(s) contents + Rollback changes to cell(s) contents + + + + Delete selected data row + Delete selected data row + + + + Insert new data row + Insert new data row + + + + Open contents of selected cell in a separate editor + Open contents of selected cell in a separate editor + + + + Toggle the height adjustment of rows + Toggle the height adjustment of rows + + + + Increase font size + data view + Increase font size + + + + Decrease font size + data view + Decrease font size + + + + Total pages available: %1 + Total pages available: %1 + + + + Total rows loaded: %1 + Total rows loaded: %1 + + + + Data view (both grid and form) + Data view (both grid and form) + + + + Refresh data + Refresh data + + + + Switch to grid view of the data + Switch to grid view of the data + + + + Switch to form view of the data + Switch to form view of the data + + + + Database list + Database list + + + + Delete selected item + Delete selected item + + + + Clear filter contents + Clear filter contents + + + + Refresh schema + Refresh schema + + + + Refresh all schemas + Refresh all schemas + + + + Add database + Add database + + + + Select all items + Select all items + + + + Copy selected item(s) + Copy selected item(s) + + + + + + Paste from clipboard + Paste from clipboard + + + + Increase font size + database list + Increase font size + + + + Decrease font size + database list + Decrease font size + + + + Tables + Tables + + + + Indexes + Indexes + + + + Triggers + Triggers + + + + Views + Views + + + + Columns + Columns + + + + Data form view + Data form view + + + + Commit changes for current row + Commit changes for current row + + + + Rollback changes for current row + Rollback changes for current row + + + + Go to first row on current page + Go to first row on current page + + + + Go to next row + Go to next row + + + + Go to previous row + Go to previous row + + + + Go to last row on current page + Go to last row on current page + + + + Insert new row + Insert new row + + + + Delete current row + Delete current row + + + + Main window + Main window + + + + Open SQL editor + Open SQL editor + + + + Open DDL history window + Open DDL history window + + + + Open snippets editor window + Open snippets editor window + + + + Open function editor window + Open function editor window + + + + Open collation editor window + Open collation editor window + + + + Open extension manager window + Open extension manager window + + + + Previous window + Previous window + + + + Next window + Next window + + + + Hide status area + Hide status area + + + + Open user manual + Open user manual + + + + Open configuration dialog + Open configuration dialog + + + + Open Debug Console + Open Debug Console + + + + Open CSS Console + Open CSS Console + + + + Open the About dialog + Open the About dialog + + + + Quit the application + Quit the application + + + + Cell text value editor + Cell text value editor + + + + + Cut selected text + Cut selected text + + + + + Copy selected text + Copy selected text + + + + + Delete selected text + Delete selected text + + + + + Undo + Undo + + + + + Redo + Redo + + + + SQL editor input field + SQL editor input field + + + + Select whole editor contents + Select whole editor contents + + + + Save contents into a file + Save contents into a file + + + + Load contents from a file + Load contents from a file + + + + Find in text + Find in text + + + + Find next + Find next + + + + Find previous + Find previous + + + + Replace in text + Replace in text + + + + Delete current line + Delete current line + + + + Request code assistant + Request code assistant + + + + Format contents + Format contents + + + + Move selected block of text one line down + Move selected block of text one line down + + + + Move selected block of text one line up + Move selected block of text one line up + + + + Copy selected block of text and paste it a line below + Copy selected block of text and paste it a line below + + + + Copy selected block of text and paste it a line above + Copy selected block of text and paste it a line above + + + + Toggle comment + Toggle comment + + + + Increase font size + sql editor + Increase font size + + + + Decrease font size + sql editor + Decrease font size + + + + All SQLite databases + All SQLite databases + + + + All files + All files + + + + Select database file + Select database file + + + + Select + Select + + + + File type + File type + + + + SQL editor window + SQL editor window + + + + Execute query + Execute query + + + + Execute single query under cursor + Execute single query under cursor + + + + Execute all queries in editor + Execute all queries in editor + + + + Execute "%1" query + Execute "%1" query + + + + Switch current working database to previous on the list + Switch current working database to previous on the list + + + + Switch current working database to next on the list + Switch current working database to next on the list + + + + Go to next editor tab + Go to next editor tab + + + + Go to previous editor tab + Go to previous editor tab + + + + Move keyboard input focus to the results view below + Move keyboard input focus to the results view below + + + + Move keyboard input focus to the SQL editor above + Move keyboard input focus to the SQL editor above + + + + Delete selected SQL history entries + Delete selected SQL history entries + + + + Table window + Table window + + + + Commit the table structure + Commit the table structure + + + + Rollback pending changes in the table structure + Rollback pending changes in the table structure + + + + Refresh table structure + Refresh table structure + + + + Add new column + Add new column + + + + Edit selected column + Edit selected column + + + + Delete selected column + Delete selected column + + + + Export table data + Export table data + + + + Import data to the table + Import data to the table + + + + Add new table constraint + Add new table constraint + + + + Edit selected table constraint + Edit selected table constraint + + + + Delete selected table constraint + Delete selected table constraint + + + + Refresh table index list + Refresh table index list + + + + Add new index + Add new index + + + + Edit selected index + Edit selected index + + + + Delete selected index + Delete selected index + + + + Refresh table trigger list + Refresh table trigger list + + + + + Add new trigger + Add new trigger + + + + + Edit selected trigger + Edit selected trigger + + + + + Delete selected trigger + Delete selected trigger + + + + + Go to next tab + Go to next tab + + + + + Go to previous tab + Go to previous tab + + + + A view window + A view window + + + + Commit the view's query + Commit the view's query + + + + Rollback pending changes in the view's query + Rollback pending changes in the view's query + + + + Refresh view trigger list + Refresh view trigger list + + + + Execute the view's query + Execute the view's query + + + + A code snippets editor window + A code snippets editor window + + + + + + + Commit the pending changes + Commit the pending changes + + + + + + + Rollback the pending changes + Rollback the pending changes + + + + A collation editor window + A collation editor window + + + + A function editor window + A function editor window + + + + A SQLite extension editor window + A SQLite extension editor window + + + + QuitConfirmDialog + + + Uncommitted changes + Uncommitted changes + + + + Are you sure you want to quit the application? + +Following items are pending: + Are you sure you want to quit the application? + +Following items are pending: + + + + SearchTextDialog + + + Find or replace + Find or replace + + + + Find: + Find: + + + + Case sensitive + Case sensitive + + + + Search backwards + Search backwards + + + + Regular expression matching + Regular expression matching + + + + Replace && +find next + Replace && +find next + + + + Replace with: + Replace with: + + + + Replace all + Replace all + + + + Find + Find + + + + SortDialog + + + Sort by columns + Sort by columns + + + + + Column + Column + + + + + Order + Order + + + + Sort by: %1 + Sort by: %1 + + + + Move column up + Move column up + + + + Move column down + Move column down + + + + SqlEditor + + + Wrap words + sql editor + Wrap words + + + + Cut + sql editor + Cut + + + + Copy + sql editor + Copy + + + + Paste + sql editor + Paste + + + + Delete + sql editor + Delete + + + + Select all + sql editor + Select all + + + + Undo + sql editor + Undo + + + + Redo + sql editor + Redo + + + + Complete + sql editor + Complete + + + + Format SQL + sql editor + Format SQL + + + + Save SQL to file + sql editor + Save SQL to file + + + + Select file to save SQL + sql editor + Select file to save SQL + + + + Load SQL from file + sql editor + Load SQL from file + + + + Delete line + sql editor + Delete line + + + + Move block down + sql editor + Move block down + + + + Move block up + sql editor + Move block up + + + + Copy block down + sql editor + Copy block down + + + + Copy up down + sql editor + Copy up down + + + + Find + sql editor + Find + + + + Find next + sql editor + Find next + + + + Find previous + sql editor + Find previous + + + + Replace + sql editor + Replace + + + + Toggle comment + sql editor + Toggle comment + + + + Increase font size + sql editor + Increase font size + + + + Decrease font size + sql editor + Decrease font size + + + + Could not open file '%1' for writing: %2 + Could not open file '%1' for writing: %2 + + + + Saved SQL contents to file: %1 + Saved SQL contents to file: %1 + + + + Syntax completion can be used only when a valid database is set for the SQL editor. + Syntax completion can be used only when a valid database is set for the SQL editor. + + + + Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. + Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. + + + + Save to file + Save to file + + + + SQL scripts (*.sql);;All files (*) + SQL scripts (*.sql);;All files (*) + + + + Open file + Open file + + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Reached the end of document. Hit the find again to restart the search. + Reached the end of document. Hit the find again to restart the search. + + + + SqlQueryItem + + + Committing error: + data view tooltip + Committing error: + + + + Column: + data view tooltip + Column: + + + + Data type: + data view + Data type: + + + + Table: + data view tooltip + Table: + + + + Constraints: + data view tooltip + Constraints: + + + + SqlQueryItemDelegate + + + + + + Cannot edit this cell. Details: %1 + Cannot edit this cell. Details: %1 + + + + The row is marked for deletion. + The row is marked for deletion. + + + + + Structure of this table has changed since last data was loaded. Reload the data to proceed. + Structure of this table has changed since last data was loaded. Reload the data to proceed. + + + + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). + + + + Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. + Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. + + + + SqlQueryModel + + + + Only one query can be executed simultaneously. + Only one query can be executed simultaneously. + + + + Cannot execute query on undefined or invalid database. + Cannot execute query on undefined or invalid database. + + + + Cannot execute empty query. + Cannot execute empty query. + + + + Uncommitted data + Uncommitted data + + + + There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. + There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. + + + + Cannot commit the data for a cell that refers to the already closed database. + Cannot commit the data for a cell that refers to the already closed database. + + + + Could not begin transaction on the database. Details: %1 + Could not begin transaction on the database. Details: %1 + + + + An error occurred while committing the transaction: %1 + An error occurred while committing the transaction: %1 + + + + An error occurred while rolling back the transaction: %1 + An error occurred while rolling back the transaction: %1 + + + + Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. + Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. + + + + An error occurred while committing the data: %1 + An error occurred while committing the data: %1 + + + + Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. + Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. + + + + + Error while executing SQL query on database '%1': %2 + Error while executing SQL query on database '%1': %2 + + + + Error while loading query results: %1 + Error while loading query results: %1 + + + + Insert multiple rows + Insert multiple rows + + + + Number of rows to insert: + Number of rows to insert: + + + + Delete rows + Delete rows + + + + You're about to delete newly inserted rows that are not committed yet. Row numbers: %1 +Such deletion will be permanent. Are you sure you want to delete them? + You're about to delete newly inserted rows that are not committed yet. Row numbers: %1 +Such deletion will be permanent. Are you sure you want to delete them? + + + + SqlQueryView + + + Go to referenced row in... + Go to referenced row in... + + + + Copy + Copy + + + + Copy with headers + Copy with headers + + + + Copy as... + Copy as... + + + + Paste + Paste + + + + Paste as... + Paste as... + + + + Set NULL values + Set NULL values + + + + Erase values + Erase values + + + + Commit + Commit + + + + Rollback + Rollback + + + + Commit selected cells + Commit selected cells + + + + Rollback selected cells + Rollback selected cells + + + + Edit current cell inline + Edit current cell inline + + + + Define columns to sort by + Define columns to sort by + + + + Remove custom sorting + Remove custom sorting + + + + Insert row + Insert row + + + + Insert multiple rows + Insert multiple rows + + + + Delete selected row + Delete selected row + + + + Adjust height of rows + Adjust height of rows + + + + Increase font size + data view + Increase font size + + + + Decrease font size + data view + Decrease font size + + + + Invert selection + data view + Invert selection + + + + Edit value in editor + Edit value in editor + + + + Show value in a viewer + Show value in a viewer + + + + Generate query for selected cells + Generate query for selected cells + + + + No items selected to paste clipboard contents to. + No items selected to paste clipboard contents to. + + + + Cannot paste data. Details: %1 + Cannot paste data. Details: %1 + + + + Structure of at least one table used has changed since last data was loaded. Reload the data to proceed. + Structure of at least one table used has changed since last data was loaded. Reload the data to proceed. + + + + Cannot paste to a cell. Details: %1 + Cannot paste to a cell. Details: %1 + + + + The row is marked for deletion. + The row is marked for deletion. + + + + Cannot paste to column %1. Details: %2 + Cannot paste to column %1. Details: %2 + + + + Go to referenced row in table '%1' + Go to referenced row in table '%1' + + + + table '%1' + table '%1' + + + + Referenced row (%1) + Referenced row (%1) + + + + Trim pasted text? + Trim pasted text? + + + + The pasted text contains leading or trailing white space. Trim it automatically? + The pasted text contains leading or trailing white space. Trim it automatically? + + + + Paste "NULL" as null value? + Paste "NULL" as null value? + + + + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + + + + Edit value + Edit value + + + + SqlTableModel + + + Error while committing new row: %1 + Error while committing new row: %1 + + + + Error while deleting row from table %1: %2 + Error while deleting row from table %1: %2 + + + + SqliteExtensionEditor + + + Filter extensions + Filter extensions + + + + Leave empty to use default function + Leave empty to use default function + + + + Extension file + Extension file + + + + Initialization function + Initialization function + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Extension manager window has uncommitted modifications. + Extension manager window has uncommitted modifications. + + + + Extension manager + Extension manager + + + + Commit all extension changes + Commit all extension changes + + + + Rollback all extension changes + Rollback all extension changes + + + + Add new extension + Add new extension + + + + Remove selected extension + Remove selected extension + + + + Editing extensions manual + Editing extensions manual + + + + File with given path does not exist or is not readable. + File with given path does not exist or is not readable. + + + + Unable to load extension: %1 + Unable to load extension: %1 + + + + Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. + Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. + + + + Dynamic link libraries (*.dll);;All files (*) + Dynamic link libraries (*.dll);;All files (*) + + + + Shared objects (*.so);;All files (*) + Shared objects (*.so);;All files (*) + + + + Dynamic libraries (*.dylib);;All files (*) + Dynamic libraries (*.dylib);;All files (*) + + + + All files (*) + All files (*) + + + + Open file + Open file + + + + StatusField + + + Status + Status + + + + Copy + Copy + + + + Clear + Clear + + + + TableConstraintsModel + + + Type + table constraints + Type + + + + Details + table constraints + Details + + + + Name + table constraints + Name + + + + TableForeignKeyPanel + + + Foreign table: + Foreign table: + + + + Columns + Columns + + + + Local column + Local column + + + + Foreign column + Foreign column + + + + Reactions + Reactions + + + + Deferred foreign key + Deferred foreign key + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + Pick the foreign column. + Pick the foreign column. + + + + Pick the foreign table. + Pick the foreign table. + + + + Select at least one foreign column. + Select at least one foreign column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + Foreign column + table constraints + Foreign column + + + + TablePrimaryKeyAndUniquePanel + + + Columns + Columns + + + + Column + Column + + + + Collation + Collation + + + + Sort + Sort + + + + Valid only for a single column with INTEGER data type + Valid only for a single column with INTEGER data type + + + + Autoincrement + Autoincrement + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + On conflict + On conflict + + + + Collate + table constraints + Collate + + + + Sort order + table constraints + Sort order + + + + Select at least one column. + Select at least one column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + TableStructureModel + + + Name + table structure columns + Name + + + + Data type + table structure columns + Data type + + + + Primary +Key + table structure columns + Primary +Key + + + + Foreign +Key + table structure columns + Foreign +Key + + + + Unique + table structure columns + Unique + + + + Check + table structure columns + Check + + + + Not +NULL + table structure columns + Not +NULL + + + + Collate + table structure columns + Collate + + + + Generated + table structure columns + Generated + + + + Default value + table structure columns + Default value + + + + TableWindow + + + Structure + Structure + + + + Table name: + Table name: + + + + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + + + + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + + + + + Data + Data + + + + Constraints + Constraints + + + + Indexes + Indexes + + + + Triggers + Triggers + + + + DDL + DDL + + + + Export table + table window + Export table + + + + Import data to table + table window + Import data to table + + + + Populate table + table window + Populate table + + + + Refresh structure + table window + Refresh structure + + + + Commit structure changes + table window + Commit structure changes + + + + Rollback structure changes + table window + Rollback structure changes + + + + Add column + table window + Add column + + + + Edit column + table window + Edit column + + + + + Delete column + table window + Delete column + + + + Move column up + table window + Move column up + + + + Move column down + table window + Move column down + + + + Create similar table + table window + Create similar table + + + + Reset autoincrement value + table window + Reset autoincrement value + + + + Add table constraint + table window + Add table constraint + + + + Edit table constraint + table window + Edit table constraint + + + + Delete table constraint + table window + Delete table constraint + + + + Move table constraint up + table window + Move table constraint up + + + + Move table constraint down + table window + Move table constraint down + + + + Add table primary key + table window + Add table primary key + + + + Add table foreign key + table window + Add table foreign key + + + + Add table unique constraint + table window + Add table unique constraint + + + + Add table check constraint + table window + Add table check constraint + + + + Refresh index list + table window + Refresh index list + + + + + Create index + table window + Create index + + + + Edit index + table window + Edit index + + + + Delete index + table window + Delete index + + + + Refresh trigger list + table window + Refresh trigger list + + + + + Create trigger + table window + Create trigger + + + + Edit trigger + table window + Edit trigger + + + + Delete trigger + table window + Delete trigger + + + + Are you sure you want to delete column '%1'? + table window + Are you sure you want to delete column '%1'? + + + + Following problems will take place while modifying the table. +Would you like to proceed? + table window + Following problems will take place while modifying the table. +Would you like to proceed? + + + + Table modification + table window + Table modification + + + + Could not load data for table %1. Error details: %2 + Could not load data for table %1. Error details: %2 + + + + Could not process the %1 table correctly. Unable to open a table window. + Could not process the %1 table correctly. Unable to open a table window. + + + + Database + Database + + + + Could not restore window %1, because no database or table was stored in session for this window. + Could not restore window %1, because no database or table was stored in session for this window. + + + + Could not restore window '%1', because no database or table was stored in session for this window. + Could not restore window '%1', because no database or table was stored in session for this window. + + + + Could not restore window '%1', because database %2 could not be resolved. + Could not restore window '%1', because database %2 could not be resolved. + + + + Could not restore window '%1', because the table %2 doesn't exist in the database %3. + Could not restore window '%1', because the table %2 doesn't exist in the database %3. + + + + + New table %1 + New table %1 + + + + Committed changes for table '%1' successfully. + Committed changes for table '%1' successfully. + + + + Committed changes for table '%1' (named before '%2') successfully. + Committed changes for table '%1' (named before '%2') successfully. + + + + Could not commit table structure. Error message: %1 + table window + Could not commit table structure. Error message: %1 + + + + Reset autoincrement + Reset autoincrement + + + + Are you sure you want to reset autoincrement value for table '%1'? + Are you sure you want to reset autoincrement value for table '%1'? + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + An error occurred while trying to reset autoincrement value for table '%1': %2 + + + + Autoincrement value for table '%1' has been reset successfully. + Autoincrement value for table '%1' has been reset successfully. + + + + Empty name + Empty name + + + + A blank name for the table is allowed in SQLite, but it is not recommended. +Are you sure you want to create a table with blank name? + A blank name for the table is allowed in SQLite, but it is not recommended. +Are you sure you want to create a table with blank name? + + + + Cannot create a table without at least one column. + Cannot create a table without at least one column. + + + + Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. + Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. + + + + Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. + Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. + + + + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 + + + + Are you sure you want to delete table constraint '%1'? + table window + Are you sure you want to delete table constraint '%1'? + + + + Delete constraint + table window + Delete constraint + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + Uncommitted changes + Uncommitted changes + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + + + + Go back to structure tab + Go back to structure tab + + + + Commit modifications and browse data. + Commit modifications and browse data. + + + + Name + table window indexes + Name + + + + Unique + table window indexes + Unique + + + + Columns + table window indexes + Columns + + + + Partial index condition + table window indexes + Partial index condition + + + + Name + table window triggers + Name + + + + Event + table window triggers + Event + + + + Condition + table window triggers + Condition + + + + Details + table window triggers + Details + + + + Table window "%1" has uncommitted structure modifications and data. + Table window "%1" has uncommitted structure modifications and data. + + + + Table window "%1" has uncommitted data. + Table window "%1" has uncommitted data. + + + + Table window "%1" has uncommitted structure modifications. + Table window "%1" has uncommitted structure modifications. + + + + TriggerColumnsDialog + + + Trigger columns + Trigger columns + + + + Triggering columns: + Triggering columns: + + + + Select all + Select all + + + + Deselect all + Deselect all + + + + TriggerDialog + + + + Trigger + Trigger + + + + On table: + On table: + + + + Action: + Action: + + + + + <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> + <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> + + + + Pre-condition: + Pre-condition: + + + + The scope is still not fully supported by the SQLite database. + The scope is still not fully supported by the SQLite database. + + + + Trigger name: + Trigger name: + + + + When: + When: + + + + List of columns for UPDATE OF action. + List of columns for UPDATE OF action. + + + + Scope: + Scope: + + + + Code: + Code: + + + + Trigger statements to be executed. + Trigger statements to be executed. + + + + DDL + DDL + + + + On view: + On view: + + + + Could not process trigger %1 correctly. Unable to open a trigger dialog. + Could not process trigger %1 correctly. Unable to open a trigger dialog. + + + + Enter a valid condition. + Enter a valid condition. + + + + Enter a valid trigger code. + Enter a valid trigger code. + + + + Error + trigger dialog + Error + + + + An error occurred while executing SQL statements: +%1 + An error occurred while executing SQL statements: +%1 + + + + VersionConvertSummaryDialog + + + Database version convert + Database version convert + + + + Following changes to the SQL statements will be made: + Following changes to the SQL statements will be made: + + + + Before + Before + + + + After + After + + + + ViewWindow + + + Query + Query + + + + View name: + View name: + + + + Output column names + Output column names + + + + + Data + Data + + + + Triggers + Triggers + + + + DDL + DDL + + + + + Could not restore window '%1', because no database or view was stored in session for this window. + Could not restore window '%1', because no database or view was stored in session for this window. + + + + Could not restore window '%1', because database %2 could not be resolved. + Could not restore window '%1', because database %2 could not be resolved. + + + + Could not restore window '%1', because database %2 could not be open. + Could not restore window '%1', because database %2 could not be open. + + + + Could not restore window '%1', because the view %2 doesn't exist in the database %3. + Could not restore window '%1', because the view %2 doesn't exist in the database %3. + + + + + New view %1 + New view %1 + + + + Database + Database + + + + Refresh the view + view window + Refresh the view + + + + Commit the view changes + view window + Commit the view changes + + + + Rollback the view changes + view window + Rollback the view changes + + + + Explicit column names + Explicit column names + + + + Generate output column names automatically basing on result columns of the view. + Generate output column names automatically basing on result columns of the view. + + + + Add column + view window + Add column + + + + Edit column + view window + Edit column + + + + Delete column + view window + Delete column + + + + Move column up + view window + Move column up + + + + Move column down + view window + Move column down + + + + Refresh trigger list + view window + Refresh trigger list + + + + Create new trigger + view window + Create new trigger + + + + Edit selected trigger + view window + Edit selected trigger + + + + Delete selected trigger + view window + Delete selected trigger + + + + View window "%1" has uncommitted structure modifications and data. + View window "%1" has uncommitted structure modifications and data. + + + + View window "%1" has uncommitted data. + View window "%1" has uncommitted data. + + + + View window "%1" has uncommitted structure modifications. + View window "%1" has uncommitted structure modifications. + + + + Could not load data for view %1. Error details: %2 + Could not load data for view %1. Error details: %2 + + + + Uncommitted changes + Uncommitted changes + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + + + + Go back to structure tab + Go back to structure tab + + + + Commit modifications and browse data. + Commit modifications and browse data. + + + + View '%1' was committed successfully. + View '%1' was committed successfully. + + + + Committed changes for view '%1' successfully. + Committed changes for view '%1' successfully. + + + + Committed changes for view '%1' (named before '%2') successfully. + Committed changes for view '%1' (named before '%2') successfully. + + + + Could not commit view changes. Error message: %1 + view window + Could not commit view changes. Error message: %1 + + + + Override columns + Override columns + + + + Currently defined columns will be overriden. Do you want to continue? + Currently defined columns will be overriden. Do you want to continue? + + + + Could not determinate columns returned from the view. The query is problably incomplete or contains errors. + Could not determinate columns returned from the view. The query is problably incomplete or contains errors. + + + + Name + view window triggers + Name + + + + Instead of + view window triggers + Instead of + + + + Condition + view window triggers + Condition + + + + Details + table window triggers + Details + + + + Could not process the %1 view correctly. Unable to open a view window. + Could not process the %1 view correctly. Unable to open a view window. + + + + Empty name + Empty name + + + + A blank name for the view is allowed in SQLite, but it is not recommended. +Are you sure you want to create a view with blank name? + A blank name for the view is allowed in SQLite, but it is not recommended. +Are you sure you want to create a view with blank name? + + + + The SELECT statement could not be parsed. Please correct the query and retry. +Details: %1 + The SELECT statement could not be parsed. Please correct the query and retry. +Details: %1 + + + + The view could not be modified due to internal SQLiteStudio error. Please report this! + The view could not be modified due to internal SQLiteStudio error. Please report this! + + + + The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. + The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. + + + + Following problems will take place while modifying the view. +Would you like to proceed? + view window + Following problems will take place while modifying the view. +Would you like to proceed? + + + + View modification + view window + View modification + + + + WidgetCover + + + Interrupt + Interrupt + + + diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_tr_TR.ts b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_tr_TR.ts new file mode 100644 index 0000000..2decd12 --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_tr_TR.ts @@ -0,0 +1,7111 @@ + + + + + AboutDialog + + + About SQLiteStudio and licenses + SQLiteStudio hakkında ve lisanslar + + + + About + Hakkında + + + + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Ücretsiz, açık kaynaklı, platform bağımsız SQLite veritabanı yöneticisi.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Yazar ve aktif sorumlu:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + + + + Licenses + Lisanslar + + + + Environment + Ortam + + + + Icon directories + İkon dizinleri + + + + Form directories + Form dizinleri + + + + SQLite extension directories + SQLite extension directories + + + + Plugin directories + Eklenti dizinleri + + + + Configuration directory + Ayar dizini + + + + Application directory + Uygulama dizini + + + + Qt version: + Qt versiyonu: + + + + SQLite 3 version: + SQLite 3 versiyonu: + + + + Portable distribution. + Taşınabilir dağıtım. + + + + MacOS X application bundle distribution. + MacOS X application bundle distribution. + + + + Operating system managed distribution. + İşletim sistemi tarafından yönetilen dağıtım. + + + + <h3>Table of contents:</h3><ol>%2</ol> + <h3>İçindekiler:</h3><ol>%2</ol> + + + + BindParamsDialog + + + Query parameters + Sorgu parametreleri + + + + Please provide values for query parameters + Sorgu parametreleri için değerleri giriniz + + + + CodeSnippetEditor + + + Filter snippets + Filter snippets + + + + + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + + + + + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + + + + Snippet name + Snippet name + + + + Code assistant shortcut + Code assistant shortcut + + + + Snippet code + Snippet code + + + + Code Snippets editor window has uncommitted modifications. + Code Snippets editor window has uncommitted modifications. + + + + Code Snippets editor + Code Snippets editor + + + + Commit all snippet changes + Commit all snippet changes + + + + Rollback all snippet changes + Rollback all snippet changes + + + + Create new snippet + Create new snippet + + + + Delete selected snippet + Delete selected snippet + + + + Move the snippet up + Move the snippet up + + + + Move the snippet down + Move the snippet down + + + + Code snippets manual + Code snippets manual + + + + Enter a non-empty, unique name of the snippet. + Enter a non-empty, unique name of the snippet. + + + + Enter a non-empty snippet content. + Enter a non-empty snippet content. + + + + This hotkey is not unique in context of a code assistant. + This hotkey is not unique in context of a code assistant. + + + + CollationsEditor + + + Filter collations + Karşılaştırmaları filtrele + + + + Databases + Veritabanları + + + + Register in all databases + Bütün veritabanlarına kayıt ol + + + + Register in following databases: + Şu veritabanlarına kayıt ol: + + + + Implementation code: + Implementasyon kodu: + + + + Collation name: + Karşılaştırma adı: + + + + Implementation language: + Implementasyon dili: + + + + Collations editor + Karşılaştırma editörü + + + + Commit all collation changes + Bütün değişiklikleri işle + + + + Rollback all collation changes + Bütün karşılaştırma değişikliklerini geri al + + + + Create new collation + Yeni karşılaştırma yarat + + + + Delete selected collation + Seçili karşılaştırmayı sil + + + + Editing collations manual + Karşılaştırmaları düzenleme kılavuzu + + + + Enter a non-empty, unique name of the collation. + Yeni bir karşılaştırma adı giriniz. + + + + Pick the implementation language. + Uygulama dilini seçiniz. + + + + Enter a non-empty implementation code. + Implementasyon kodu giriniz. + + + + Collations editor window has uncommitted modifications. + Karşılaştırma editöründe kaydedilmemiş değişiklikler var. + + + + ColorButton + + + Pick a color + Renk seçin + + + + ColumnCollatePanel + + + Collation name: + Karşılaştırma adı: + + + + Named constraint: + Adlandırılmış constraint: + + + + Enter a name of the constraint. + Constraint adı girin. + + + + Enter a collation name. + Karşılaştırma adı giriniz. + + + + ColumnDefaultPanel + + + Default value: + Varsayılan değer: + + + + Named constraint: + Adlandırılmış constraint: + + + + Enter a default value expression. + Varsayılan değer girin. + + + + Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. + Geçersiz varsayılan değer: %1. Eğer basit metin değerini kullanmak istiyorsanız, tırnak içinde yazmayı unutmayınız. + + + + Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. + Geçersiz varsayılan değer. Eğer basit metin değerini kullanmak istiyorsanız, tırnak içinde yazmayı unutmayınız. + + + + Enter a name of the constraint. + Constraint adı girin. + + + + ColumnDialog + + + Column + Kolon + + + + Name and type + Adı ve tipi + + + + Scale + Ölçek + + + + Precision + Hassasiyet + + + + Data type: + Veri tipi: + + + + Column name: + Sütun ismi: + + + + Size: + Boyut: + + + + Constraints + Kısıtlamalar + + + + Generated value + Üretilen Değerler + + + + Unique + Benzersiz + + + + + + + + + + + Configure + Yapılandır + + + + Foreign Key + Yabancı Anahtar + + + + Collate + Harmanla + + + + Not NULL + Boş(null) olamaz + + + + Check condition + Durumu kontrol et + + + + Primary Key + Birincil Anahtar + + + + Default + Varsayılan + + + + Advanced mode + Gelişmiş biçim + + + + Add constraint + column dialog + Kısıtlama ekle + + + + Edit constraint + column dialog + Kısıtlmayı düzenle + + + + + Delete constraint + column dialog + Kısıtlamayı Sil + + + + Move constraint up + column dialog + Kısıtlamayı yukarı taşı + + + + Move constraint down + column dialog + Kısıtlamayı aşağı taşı + + + + Add a primary key + column dialog + Birincil anahtar ekle + + + + Add a foreign key + column dialog + Yabancı anahtar ekle + + + + Add an unique constraint + column dialog + Benzersiz kısıtlama ekle + + + + Add a check constraint + column dialog + Kontrol kısıtlaması ekle + + + + Add a not null constraint + column dialog + Boş olmayan kısıtlama ekle + + + + Add a collate constraint + column dialog + Harmanlama kısıtlaması ekle + + + + Add a generated value constraint + column dialog + Oluşturulan değer kısıtlaması ekle + + + + Add a default constraint + column dialog + Varsayılan kısıtlama ekle + + + + Are you sure you want to delete constraint '%1'? + column dialog + '%1' kısıtlamasını silmek istediğinizden emin misiniz? + + + + Correct the constraint's configuration. + ' kısıtlama yapılandırmasını düzeltin. + + + + Scale is not allowed for INTEGER PRIMARY KEY columns. + INTEGER PRIMARY KEY sütunları için ölçeğe izin verilmez. + + + + Precision cannot be defined without the scale. + Hassasiyet, ölçek olmadan tanımlanamaz. + + + + Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. + BİRİNCİL ANAHTAR içinde OTOMATİK ARTIRMA etkinleştirilmişse, INTEGER dışında bir tür kullanılamaz. + + + + INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. + BİRİNCİL ANAHTAR içinde OTOMATİK ARTIRMA etkinleştirildiğinden INTEGER türü uygulandı. + + + + Precision is not allowed for INTEGER PRIMARY KEY columns. + TAMSAYI BİRİNCİL anahtar sütunları için kesinliğe izin verilmez. + + + + Could not match valid STRICT table datatype from declared type: %1. + Could not match valid STRICT table datatype from declared type: %1. + + + + ColumnDialogConstraintsModel + + + Type + column dialog constraints + Tip + + + + Name + column dialog constraints + Ad + + + + Details + column dialog constraints + Detaylar + + + + ColumnForeignKeyPanel + + + Foreign table: + Yabancı tablo: + + + + Foreign column: + Yabancı sütun: + + + + Reactions + Tepkiler + + + + Deferred foreign key + Ertelenmiş yabancı anahtar + + + + Named constraint + Adlandırılmış kısıtlama + + + + Constraint name + Kısıtlama adı + + + + Pick the foreign table. + Yabancı tabloyu seç. + + + + Pick the foreign column. + Yabancı sütunu seç. + + + + Enter a name of the constraint. + Kısıtlamanın adını girin. + + + + ColumnGeneratedPanel + + + Generating code: + Kod oluşturma: + + + + Explicit type: + Açık tip: + + + + Use "GENERATED ALWAYS" keywords + Use "GENERATED ALWAYS" keywords + + + + Named constraint: + Adlandırılmış kısıtlama: + + + + Enter the column value generating expression. + Sütun değeri üreten ifadeyi girin. + + + + Invalid value generating expression: %1. + Geçersiz değer üreten ifade: %1. + + + + Invalid value generating expression. + Geçersiz değer üreten ifade. + + + + Enter a name of the constraint. + Kısıtlamanın adını girin. + + + + ColumnPrimaryKeyPanel + + + Autoincrement + Otomatik artış + + + + Sort order: + Sıralama düzeni: + + + + Named constraint: + Adlandırılmış kısıtlama: + + + + On conflict: + Uyuşmazlıkda: + + + + Enter a name of the constraint. + Kısıtlamanın adını girin. + + + + Descending order is not allowed with AUTOINCREMENT. + AUTOINCREMENT ile azalan sıraya izin verilmez. + + + + ColumnUniqueAndNotNullPanel + + + Named constraint: + Adlandırılmış kısıtlama: + + + + On conflict: + Uyuşmazlıkda: + + + + Enter a name of the constraint. + Kısıtlamanın adını girin. + + + + CompleterWindow + + + Column: %1 + completer statusbar + Sütun: %1 + + + + Table: %1 + completer statusbar + Tablo: %1 + + + + Index: %1 + completer statusbar + Dizin: %1 + + + + Trigger: %1 + completer statusbar + Tetikleyici: %1 + + + + View: %1 + completer statusbar + Görünüm: %1 + + + + Database: %1 + completer statusbar + Veritabanı: %1 + + + + Keyword: %1 + completer statusbar + Anahtar Kelime: %1 + + + + Function: %1 + completer statusbar + Fonksyion: %1 + + + + Operator: %1 + completer statusbar + Operatör: %1 + + + + String + completer statusbar + Yazı + + + + Number + completer statusbar + Sayı + + + + Binary data + completer statusbar + İkili veri + + + + Collation: %1 + completer statusbar + Karşılaştırma: %1 + + + + Pragma function: %1 + completer statusbar + Pragma işlevi: %1 + + + + Insert a code snippet + Insert a code snippet + + + + ConfigDialog + + + + Configuration + Yapılandırma + + + + Search + Ara + + + + General + Genel + + + + Keyboard shortcuts + Klavye kısayolları + + + + Look & feel + Görünüş & İzlenim + + + + Style + Biçim + + + + Fonts + Yazı tipi + + + + Code colors + Code colors + + + + + Database list + Veritabanı listesi + + + + Code assistant + Code assistant + + + + Data browsing + Veri tarama + + + + Data editors + Veri düzenleyicileri + + + + Plugins + Eklentiler + + + + Code formatters + Kod biçimleyici + + + + If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. + Kapatılırsa, sütunlar CREATE TABLE deyimine yazıldıkları sıraya göre sıralanır. + + + + Sort table columns alphabetically + Tablo sütunlarını alfabetik olarak sırala + + + + Expand tables node when connected to a database + Bir veritabanına bağlandığında tablolar düğümünü genişlet + + + + <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> + <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> + + + + Display additional labels on the list + Listede ek etiketleri görüntüle + + + + For regular tables labels will show number of columns, indexes and triggers for each of tables. + Düzenli tablolar için etiketler, her tablo için sütun, dizin ve tetikleyici sayısını gösterir. + + + + Display labels for regular tables + Normal tablolar için etiketleri görüntüle + + + + Virtual tables will be marked with a 'virtual' label. + Virtual tables will be marked with a 'virtual' label. + + + + Display labels for virtual tables + Sanal tablolar için etiketleri görüntüleme + + + + Expand views node when connected to a database + Expand views node when connected to a database + + + + If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) + If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) + + + + Sort objects (tables, indexes, triggers and views) alphabetically + Sort objects (tables, indexes, triggers and views) alphabetically + + + + Display system tables and indexes on the list + Display system tables and indexes on the list + + + + Database dialog window + Database dialog window + + + + <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> + <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> + + + + Do not mark database to be "permanent" by default + Do not mark database to be "permanent" by default + + + + <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> + <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> + + + + Try to bypass dialog completly when dropping database file onto the list + Try to bypass dialog completly when dropping database file onto the list + + + + Data browsing and editing + Data browsing and editing + + + + + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + + + + Number of memorized table populating configurations + Number of memorized table populating configurations + + + + Data column width + Data column width + + + + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + + + + Enlarge column when entering value longer than current width + Enlarge column when entering value longer than current width + + + + <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> + <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> + + + + Number of data rows per page: + Number of data rows per page: + + + + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> + + + + Show column and row details tooltip in data view + Show column and row details tooltip in data view + + + + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + + + + Keep NULL value when entering empty value + Keep NULL value when entering empty value + + + + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> + + + + Use DEFAULT value (if defined), when committing NULL value + Use DEFAULT value (if defined), when committing NULL value + + + + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + + + + Limit number of rows for in case of dozens of columns + Limit number of rows for in case of dozens of columns + + + + Inserting new row in data grid + Inserting new row in data grid + + + + Before currently selected row + Before currently selected row + + + + After currently selected row + After currently selected row + + + + At the end of data view + At the end of data view + + + + Table windows + Table windows + + + + <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> + <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> + + + + Open Table Windows with the data tab for start + Open Table Windows with the data tab for start + + + + <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> + <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> + + + + Place data tab as first tab in a Table Window + Place data tab as first tab in a Table Window + + + + View windows + View windows + + + + <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> + <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> + + + + Open View Windows with the data tab for start + Open View Windows with the data tab for start + + + + <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> + <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> + + + + Place data tab as first tab in a View Window + Place data tab as first tab in a View Window + + + + Data types + Data types + + + + Available editors: + Available editors: + + + + Editors selected for this data type: + Editors selected for this data type: + + + + Schema editing + Schema editing + + + + Number of DDL changes kept in history. + Number of DDL changes kept in history. + + + + DDL history size: + DDL history size: + + + + Don't show DDL preview dialog when committing schema changes + Don't show DDL preview dialog when committing schema changes + + + + SQL queries + SQL queries + + + + + Number of queries kept in the history. + Number of queries kept in the history. + + + + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> + + + + History size: + Geçmiş boyutu: + + + + + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> + + + + Execute only the query under the cursor + Execute only the query under the cursor + + + + Number of memorized query parameters + Number of memorized query parameters + + + + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + + + + Use scientific notation for real numbers in the grid view + Use scientific notation for real numbers in the grid view + + + + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + + + + Limit automatic data column width to (in pixels): + Limit automatic data column width to (in pixels): + + + + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + + + + Keep at least the width to show complete column name + Keep at least the width to show complete column name + + + + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + + + + Wrap lines in SQL editor + Wrap lines in SQL editor + + + + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + + + + Highlight current query + Highlight current query + + + + Updates + Güncellemeler + + + + Automatically check for updates at startup + Automatically check for updates at startup + + + + Session + Oturum + + + + Restore last session (active MDI windows) after startup + Restore last session (active MDI windows) after startup + + + + Allow multiple instances of the application at the same time + Allow multiple instances of the application at the same time + + + + Status Field + Status Field + + + + <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> + <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> + + + + Always open Status panel when new message is printed + Always open Status panel when new message is printed + + + + Code syntax colors + Code syntax colors + + + + Keyword foreground + Keyword foreground + + + + Regular foreground + Regular foreground + + + + String foreground + String foreground + + + + Comment foreground + Comment foreground + + + + Valid objects foreground + Valid objects foreground + + + + Current query background + Current query background + + + + Bind parameter foreground + Bind parameter foreground + + + + Current line background + Current line background + + + + Matched parenthesis background + Matched parenthesis background + + + + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + + + + Number foreground + Number foreground + + + + BLOB value foreground + BLOB value foreground + + + + Matched parenthesis foreground + Matched parenthesis foreground + + + + Reset to defaults + Reset to defaults + + + + Filter shortcuts by name or key combination + Filter shortcuts by name or key combination + + + + Action + Eylem + + + + Key combination + Anahtar Kombinasyonu + + + + + Language + Dil + + + + Changing language requires application restart to take effect. + Changing language requires application restart to take effect. + + + + Compact layout + Compact layout + + + + <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> + <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> + + + + Use compact layout + Use compact layout + + + + Main window dock areas + Main window dock areas + + + + Left and right areas occupy corners + Left and right areas occupy corners + + + + Top and bottom areas occupy corners + Top and bottom areas occupy corners + + + + Hide built-in plugins + Hide built-in plugins + + + + Current style: + Current style: + + + + Preview + Ön İzleme + + + + Enabled + Etkin + + + + Disabled + Devre dışı + + + + Active formatter plugin + Active formatter plugin + + + + SQL editor font + SQL düzenleyici yazı tipi + + + + Database list font + Veritabanı listesi yazı tipi + + + + Database list additional label font + Database list additional label font + + + + Data view font + Data view font + + + + Status field font + Status field font + + + + Code assistant settings + Code assistant settings + + + + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + + + + Automatically trigger the assistant after a dot is typed after an object name + Automatically trigger the assistant after a dot is typed after an object name + + + + Description: + plugin details + Açıklama: + + + + Category: + plugin details + Kategori: + + + + Version: + plugin details + Sürüm: + + + + Author: + plugin details + Yazar: + + + + Internal name: + plugin details + Dahili İsim: + + + + Dependencies: + plugin details + Gereksinimler: + + + + Conflicts: + plugin details + Çakışmalar: + + + + Plugin details + Eklenti Ayrıntıları + + + + Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. + Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. + + + + %1 (built-in) + plugins manager in configuration dialog + %1 (built-in) + + + + Details + Detaylar + + + + No plugins in this category. + Bu kategoride hiçbir eklenti yok. + + + + Add new data type + Yeni veri türü ekle + + + + Rename selected data type + Seçili veri türünü yeniden adlandır + + + + Delete selected data type + Delete selected data type + + + + Help for configuring data type editors + Help for configuring data type editors + + + + Clear hotkey for this action + Clear hotkey for this action + + + + Restore original hotkey for this action + Restore original hotkey for this action + + + + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + + + + ConstraintCheckPanel + + + The condition + The condition + + + + Named constraint: + Named constraint: + + + + On conflict + On conflict + + + + Enter a valid condition. + Enter a valid condition. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ConstraintDialog + + + New constraint + constraint dialog + New constraint + + + + Create + constraint dialog + Create + + + + Edit constraint + dialog window + Edit constraint + + + + Apply + constraint dialog + Apply + + + + Primary key + table constraints + Primary key + + + + Foreign key + table constraints + Foreign key + + + + Unique + table constraints + Unique + + + + Not NULL + table constraints + Not NULL + + + + Check + table constraints + Check + + + + Generated + table constraints + Generated + + + + Collate + table constraints + Collate + + + + Default + table constraints + Default + + + + ConstraintTabModel + + + Table + table constraints + Table + + + + Column (%1) + table constraints + Column (%1) + + + + Scope + table constraints + Scope + + + + Type + table constraints + Type + + + + Details + table constraints + Detaylar + + + + Name + table constraints + Ad + + + + CssDebugDialog + + + SQLiteStudio CSS console + SQLiteStudio CSS uç birimi + + + + DataView + + + Filter data + data view + Verilere filtrele + + + + Grid view + Izgara görünümü + + + + Form view + Form Görüntüsü + + + + Refresh table data + data view + Tablo verilerini Yenile + + + + First page + data view + İlk sayfa + + + + Previous page + data view + Önceki sayfa + + + + Next page + data view + Sonraki sayfa + + + + Last page + data view + Son sayfa + + + + Commit changes for selected cells + data view + Commit changes for selected cells + + + + Rollback changes for selected cells + data view + Rollback changes for selected cells + + + + Show grid view of results + data view + Show grid view of results + + + + Show form view of results + data view + Show form view of results + + + + Filter by text (if contains) + data view + Filter by text (if contains) + + + + Filter strictly by text (if equals) + data view + Filter strictly by text (if equals) + + + + Tabs on top + data view + Üstteki sekmeler + + + + Tabs at bottom + data view + Alttaki sekmeler + + + + Place new rows above selected row + data view + Place new rows above selected row + + + + Place new rows below selected row + data view + Place new rows below selected row + + + + Place new rows at the end of the data view + data view + Place new rows at the end of the data view + + + + Total number of rows is being counted. +Browsing other pages will be possible after the row counting is done. + Total number of rows is being counted. +Browsing other pages will be possible after the row counting is done. + + + + Row: %1 + Satır: %1 + + + + Filter + Filtre + + + + Hit Enter key or press "Apply filter" button on toolbar to apply new value. + Hit Enter key or press "Apply filter" button on toolbar to apply new value. + + + + Filter by the Regular Expression + data view + Düzenli ifadeleri filtrele + + + + Filter by SQL expression + data view + Filter by SQL expression + + + + Show filter inputs per column + data view + Show filter inputs per column + + + + Apply filter + data view + Filtreyi uygula + + + + DbDialog + + + Database + Veritabanı + + + + Database type + Veritabanı türü + + + + Database driver + Veritabanı Sürücüsü + + + + + File + Dosya + + + + Name (on the list) + Name (on the list) + + + + Options + Şeçenekler + + + + <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> + aasfd + <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> + + + + Permanent (keep it in configuration) + Permanent (keep it in configuration) + + + + Test connection + Test bağlantısı + + + + Select new or existing file on local computer + Select new or existing file on local computer + + + + Browse + Gözat + + + + Database type not selected. + Database type not selected. + + + + Database path not specified. + Database path not specified. + + + + Enter an unique database name. + Enter an unique database name. + + + + This name is already in use. Please enter unique name. + This name is already in use. Please enter unique name. + + + + <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> + <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> + + + + Enter a database file path. + Enter a database file path. + + + + This database is already on the list under name: %1 + This database is already on the list under name: %1 + + + + Select a database type. + Select a database type. + + + + DbObjectDialogs + + + Delete table + Tabloyu sil + + + + Are you sure you want to delete table %1? + %1 tabloyu silmek istediğinizden emin misiniz? + + + + Delete index + Dizini sil + + + + Are you sure you want to delete index %1? + Are you sure you want to delete index %1? + + + + Delete trigger + Delete trigger + + + + Are you sure you want to delete trigger %1? + Are you sure you want to delete trigger %1? + + + + Delete view + Delete view + + + + Are you sure you want to delete view %1? + Are you sure you want to delete view %1? + + + + + Error while dropping %1: %2 + Error while dropping %1: %2 + + + + Delete objects + Delete objects + + + + Are you sure you want to delete following objects: +%1 + Are you sure you want to delete following objects: +%1 + + + + Cannot start transaction. Details: %1 + Cannot start transaction. Details: %1 + + + + Cannot commit transaction. Details: %1 + Cannot commit transaction. Details: %1 + + + + DbTree + + + Databases + Databases + + + + Filter by name + Filter by name + + + + Copy + Copy + + + + Paste + Paste + + + + Select all + Select all + + + + Create a group + Create a group + + + + Delete the group + Delete the group + + + + Rename the group + Rename the group + + + + &Add a database + &Add a database + + + + &Edit the database + &Edit the database + + + + &Remove the database + &Remove the database + + + + &Connect to the database + &Connect to the database + + + + &Disconnect from the database + &Disconnect from the database + + + + Import + Import + + + + &Export the database + &Export the database + + + + Vac&uum + Vac&uum + + + + &Integrity check + &Integrity check + + + + Create a &table + Create a &table + + + + Edit the t&able + Edit the t&able + + + + Delete the ta&ble + Delete the ta&ble + + + + Export the table + Export the table + + + + Import into the table + Import into the table + + + + Populate table + Populate table + + + + Create similar table + Create similar table + + + + Reset autoincrement sequence + Reset autoincrement sequence + + + + Create an &index + Create an &index + + + + Edit the i&ndex + Edit the i&ndex + + + + Delete the in&dex + Delete the in&dex + + + + Create a trig&ger + Create a trig&ger + + + + Edit the trigg&er + Edit the trigg&er + + + + Delete the trigge&r + Delete the trigge&r + + + + Create a &view + Create a &view + + + + Edit the v&iew + Edit the v&iew + + + + Delete the vi&ew + Delete the vi&ew + + + + Add a column + Add a column + + + + Edit the column + Edit the column + + + + Delete the column + Delete the column + + + + Delete selected items + Delete selected items + + + + Clear filter + Clear filter + + + + &Refresh all database schemas + &Refresh all database schemas + + + + Re&fresh selected database schema + Re&fresh selected database schema + + + + + Erase table data + Erase table data + + + + Open file's directory + Open file's directory + + + + Execute SQL from file + Execute SQL from file + + + + Increase font size + database list + Increase font size + + + + Decrease font size + database list + Decrease font size + + + + + Database + Database + + + + Grouping + Grouping + + + + Generate query for table + Generate query for table + + + + + Create group + Create group + + + + Group name + Group name + + + + Entry with name %1 already exists in group %2. + Entry with name %1 already exists in group %2. + + + + Delete group + Delete group + + + + Are you sure you want to delete group %1? +All objects from this group will be moved to parent group. + Are you sure you want to delete group %1? +All objects from this group will be moved to parent group. + + + + Are you sure you want to remove database '%1' from the list? + Are you sure you want to remove database '%1' from the list? + + + + Are you sure you want to remove following databases from the list: +%1 + Are you sure you want to remove following databases from the list: +%1 + + + + Remove database + Remove database + + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Vacuum (%1) + Vacuum (%1) + + + + Integrity check (%1) + Integrity check (%1) + + + + Reset autoincrement + Reset autoincrement + + + + Are you sure you want to reset autoincrement value for table '%1'? + Are you sure you want to reset autoincrement value for table '%1'? + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + An error occurred while trying to reset autoincrement value for table '%1': %2 + + + + Autoincrement value for table '%1' has been reset successfully. + Autoincrement value for table '%1' has been reset successfully. + + + + Are you sure you want to delete all data from table(s): %1? + Are you sure you want to delete all data from table(s): %1? + + + + An error occurred while trying to delete data from table '%1': %2 + An error occurred while trying to delete data from table '%1': %2 + + + + All data has been deleted for table '%1'. + All data has been deleted for table '%1'. + + + + Following objects will be deleted: %1. + Following objects will be deleted: %1. + + + + Following databases will be removed from list: %1. + Following databases will be removed from list: %1. + + + + Remainig objects from deleted group will be moved in place where the group used to be. + Remainig objects from deleted group will be moved in place where the group used to be. + + + + %1<br><br>Are you sure you want to continue? + %1<br><br>Are you sure you want to continue? + + + + Delete objects + Delete objects + + + + DbTreeItemDelegate + + + error + dbtree labels + error + + + + (system table) + database tree label + (system table) + + + + (virtual) + virtual table label + (virtual) + + + + (system index) + database tree label + (system index) + + + + DbTreeModel + + + Database: %1 + dbtree tooltip + Database: %1 + + + + URI: + dbtree tooltip + URI: + + + + Version: + dbtree tooltip + Version: + + + + File size: + dbtree tooltip + File size: + + + + Encoding: + dbtree tooltip + Encoding: + + + + Error: + dbtree tooltip + Error: + + + + Table : %1 + dbtree tooltip + Table : %1 + + + + Columns (%1): + dbtree tooltip + Columns (%1): + + + + Indexes (%1): + dbtree tooltip + Indexes (%1): + + + + Triggers (%1): + dbtree tooltip + Triggers (%1): + + + + Copy + Copy + + + + Move + Move + + + + Include data + Include data + + + + Include indexes + Include indexes + + + + Include triggers + Include triggers + + + + Abort + Abort + + + + Could not add dropped database file '%1' automatically. Manual setup is necessary. + Could not add dropped database file '%1' automatically. Manual setup is necessary. + + + + Referenced tables + Referenced tables + + + + Do you want to include following referenced tables as well: +%1 + Do you want to include following referenced tables as well: +%1 + + + + Name conflict + Name conflict + + + + Following object already exists in the target database. +Please enter new, unique name, or press '%1' to abort the operation: + Following object already exists in the target database. +Please enter new, unique name, or press '%1' to abort the operation: + + + + SQL statements conversion + SQL statements conversion + + + + Following error occurred while converting SQL statements to the target SQLite version: + Following error occurred while converting SQL statements to the target SQLite version: + + + + Would you like to ignore those errors and proceed? + Would you like to ignore those errors and proceed? + + + + DdlHistoryWindow + + + Filter by database: + Filter by database: + + + + Clear entire history + Clear entire history + + + + -- Queries executed on database %1 (%2) +-- Date and time of execution: %3 +%4 + -- Queries executed on database %1 (%2) +-- Date and time of execution: %3 +%4 + + + + Clear history + Clear history + + + + Are you sure you want to erase entire DDL history? + Are you sure you want to erase entire DDL history? + + + + DDL history + DDL history + + + + DdlPreviewDialog + + + Queries to be executed + Queries to be executed + + + + Don't show again + Don't show again + + + + DebugConsole + + + SQLiteStudio Debug Console + SQLiteStudio Debug Console + + + + EditorWindow + + + SQL editor + SQL editor + + + + Query + Query + + + + History + History + + + + Results in the separate tab + Results in the separate tab + + + + Results below the query + Results below the query + + + + + SQL editor %1 + SQL editor %1 + + + + + Results + Results + + + + Execute query + Execute query + + + + Explain query + Explain query + + + + Clear execution history + sql editor + Clear execution history + + + + Export results + sql editor + Export results + + + + Create view from query + sql editor + Create view from query + + + + Previous database + Previous database + + + + Next database + Next database + + + + Show next tab + sql editor + Show next tab + + + + Show previous tab + sql editor + Show previous tab + + + + Focus results below + sql editor + Focus results below + + + + Focus SQL editor above + sql editor + Focus SQL editor above + + + + Delete selected SQL history entries + sql editor + Delete selected SQL history entries + + + + Execute single query under cursor + Execute single query under cursor + + + + Execute all queries in editor + Execute all queries in editor + + + + Active database (%1/%2) + Active database (%1/%2) + + + + Query finished in %1 second(s). Rows affected: %2 + Query finished in %1 second(s). Rows affected: %2 + + + + Query finished in %1 second(s). + Query finished in %1 second(s). + + + + Clear execution history + Clear execution history + + + + Are you sure you want to erase the entire SQL execution history? This cannot be undone. + Are you sure you want to erase the entire SQL execution history? This cannot be undone. + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + No database selected in the SQL editor. Cannot create a view for unknown database. + No database selected in the SQL editor. Cannot create a view for unknown database. + + + + Editor window "%1" has uncommitted data. + Editor window "%1" has uncommitted data. + + + + ErrorsConfirmDialog + + + Errors + Errors + + + + Following errors occured: + Following errors occured: + + + + Would you like to proceed? + Would you like to proceed? + + + + ExecFromFileDialog + + + Execute SQL from file + Execute SQL from file + + + + Input file + Input file + + + + Path to file + Path to file + + + + Browse for file + Browse for file + + + + Options + Options + + + + File encoding + File encoding + + + + Skip failing SQL statements + Skip failing SQL statements + + + + SQL scripts (*.sql);;All files (*) + SQL scripts (*.sql);;All files (*) + + + + Execute SQL file + Execute SQL file + + + + Please provide file to be executed. + Please provide file to be executed. + + + + Provided file does not exist or cannot be read. + Provided file does not exist or cannot be read. + + + + ExportDialog + + + Export + Export + + + + What do you want to export? + What do you want to export? + + + + A database + A database + + + + A single table + A single table + + + + Query results + Query results + + + + Table to export + Table to export + + + + Database + Database + + + + Table + Table + + + + Options + Options + + + + When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. + When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. + + + + Export table data + Export table data + + + + Export table indexes + Export table indexes + + + + Export table triggers + Export table triggers + + + + Note, that exporting table indexes and triggers may be unsupported by some output formats. + Note, that exporting table indexes and triggers may be unsupported by some output formats. + + + + Select database objects to export + Select database objects to export + + + + Export data from tables + Export data from tables + + + + Select all + Select all + + + + Deselect all + Deselect all + + + + + Database: + Database: + + + + Query to export results for + Query to export results for + + + + Query to be executed for results: + Query to be executed for results: + + + + Export format and options + Export format and options + + + + Export format + Export format + + + + Output + Output + + + + Exported file path + Exported file path + + + + Clipboard + Clipboard + + + + File + File + + + + Exported text encoding: + Exported text encoding: + + + + Export format options + Export format options + + + + Cancel + Cancel + + + + + + Select database to export. + Select database to export. + + + + Select table to export. + Select table to export. + + + + Enter valid query to export. + Enter valid query to export. + + + + Select at least one object to export. + Select at least one object to export. + + + + You must provide a file name to export to. + You must provide a file name to export to. + + + + Path you provided is an existing directory. You cannot overwrite it. + Path you provided is an existing directory. You cannot overwrite it. + + + + The directory '%1' does not exist. + The directory '%1' does not exist. + + + + The file '%1' exists and will be overwritten. + The file '%1' exists and will be overwritten. + + + + All files (*) + All files (*) + + + + Pick file to export to + Pick file to export to + + + + Internal error during export. This is a bug. Please report it. + Internal error during export. This is a bug. Please report it. + + + + FileExecErrorsDialog + + + Execution errors + Execution errors + + + + Following errors were encountered during execution of SQL statements from the file: + Following errors were encountered during execution of SQL statements from the file: + + + + SQL + SQL + + + + Error + Error + + + + Statements that were executed successfully were commited. + Statements that were executed successfully were commited. + + + + Statements that were executed successfully were rolled back. + Statements that were executed successfully were rolled back. + + + + FkComboBox + + + Cannot edit this cell. Details: %1 + Cannot edit this cell. Details: %1 + + + + FontEdit + + + Choose font + font configuration + Choose font + + + + Form + + + Active SQL formatter plugin + Active SQL formatter plugin + + + + FormView + + + Commit row + form view + Commit row + + + + Rollback row + form view + Rollback row + + + + First row + form view + First row + + + + Previous row + form view + Previous row + + + + Next row + form view + Next row + + + + Last row + form view + Last row + + + + Insert new row + form view + Insert new row + + + + Delete current row + form view + Delete current row + + + + FunctionsEditor + + + Filter functions + Filter functions + + + + Input arguments + Input arguments + + + + Undefined + Undefined + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Type: + Type: + + + + Function name: + Function name: + + + + Implementation language: + Implementation language: + + + + Deterministic + Deterministic + + + + Initialization code: + Initialization code: + + + + + Function implementation code: + Function implementation code: + + + + Final step implementation code: + Final step implementation code: + + + + SQL functions editor + SQL functions editor + + + + Commit all function changes + Commit all function changes + + + + Rollback all function changes + Rollback all function changes + + + + Create new function + Create new function + + + + Delete selected function + Delete selected function + + + + Custom SQL functions manual + Custom SQL functions manual + + + + Add function argument + Add function argument + + + + Rename function argument + Rename function argument + + + + Delete function argument + Delete function argument + + + + Move function argument up + Move function argument up + + + + Move function argument down + Move function argument down + + + + Scalar + Scalar + + + + Aggregate + Aggregate + + + + Enter a non-empty, unique name of the function. + Enter a non-empty, unique name of the function. + + + + Pick the implementation language. + Pick the implementation language. + + + + Per step code: + Per step code: + + + + Enter a non-empty implementation code. + Enter a non-empty implementation code. + + + + argument + new function argument name in function editor window + argument + + + + Functions editor window has uncommitted modifications. + Functions editor window has uncommitted modifications. + + + + ImportDialog + + + Import data + Import data + + + + Table to import to + Table to import to + + + + Table + Table + + + + Database + Database + + + + Data source to import from + Data source to import from + + + + Data source type + Data source type + + + + Options + Options + + + + Text encoding: + Text encoding: + + + + Input file: + Input file: + + + + <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> + <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> + + + + Ignore errors + Ignore errors + + + + Data source options + Data source options + + + + Cancel + Cancel + + + + If you type table name that doesn't exist, it will be created. + If you type table name that doesn't exist, it will be created. + + + + Enter the table name + Enter the table name + + + + Select import plugin. + Select import plugin. + + + + You must provide a file to import from. + You must provide a file to import from. + + + + The file '%1' does not exist. + The file '%1' does not exist. + + + + Path you provided is a directory. A regular file is required. + Path you provided is a directory. A regular file is required. + + + + Pick file to import from + Pick file to import from + + + + IndexDialog + + + + Index + Index + + + + Column + Column + + + + Sort + Sort + + + + Collation + Collation + + + + On table: + On table: + + + + Delete selected indexed expression + Delete selected indexed expression + + + + Moves selected index column up in the order, making it more significant in the index. + Moves selected index column up in the order, making it more significant in the index. + + + + Moves selected index column down in the order, making it less significant in the index. + Moves selected index column down in the order, making it less significant in the index. + + + + Partial index condition + Partial index condition + + + + Unique index + Unique index + + + + Index name: + Index name: + + + + Edit selected indexed expression + Edit selected indexed expression + + + + Add indexed expression + Add indexed expression + + + + DDL + DDL + + + + Tried to open index dialog for closed or inexisting database. + Tried to open index dialog for closed or inexisting database. + + + + Could not process index %1 correctly. Unable to open an index dialog. + Could not process index %1 correctly. Unable to open an index dialog. + + + + Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. + Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. + + + + Pick the table for the index. + Pick the table for the index. + + + + Select at least one column. + Select at least one column. + + + + Enter a valid condition. + Enter a valid condition. + + + + default + index dialog + default + + + + Sort order + table constraints + Sort order + + + + + Error + index dialog + Error + + + + Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? + Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? + + + + An error occurred while executing SQL statements: +%1 + An error occurred while executing SQL statements: +%1 + + + + IndexExprColumnDialog + + + Indexed expression + Indexed expression + + + + Expression to index + Expression to index + + + + This expression is already indexed by the index. + This expression is already indexed by the index. + + + + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. + + + + Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. + Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. + + + + It's forbidden to use 'SELECT' statements in indexed expressions. + It's forbidden to use 'SELECT' statements in indexed expressions. + + + + Enter an indexed expression. + Enter an indexed expression. + + + + Invalid expression. + Invalid expression. + + + + LanguageDialog + + + Language + Language + + + + Please choose language: + Please choose language: + + + + MainWindow + + + Database toolbar + Database toolbar + + + + Structure toolbar + Structure toolbar + + + + Tools + Tools + + + + Window list + Window list + + + + View toolbar + View toolbar + + + + Configuration widgets + Configuration widgets + + + + Syntax highlighting engines + Syntax highlighting engines + + + + Data editors + Data editors + + + + Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. + Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. + + + + Running in debug mode. Debug messages are printed to the standard output. + Running in debug mode. Debug messages are printed to the standard output. + + + + You need to restart application to make the language change take effect. + You need to restart application to make the language change take effect. + + + + Open SQL &editor + Open SQL &editor + + + + Open DDL &history + Open DDL &history + + + + Open SQL &functions editor + Open SQL &functions editor + + + + Open code &snippets editor + Open code &snippets editor + + + + Open &collations editor + Open &collations editor + + + + Open ex&tension manager + Open ex&tension manager + + + + &Import + &Import + + + + E&xport + E&xport + + + + Open confi&guration dialog + Open confi&guration dialog + + + + &Tile windows + &Tile windows + + + + Tile windows &horizontally + Tile windows &horizontally + + + + Tile windows &vertically + Tile windows &vertically + + + + &Cascade windows + &Cascade windows + + + + Next window + Next window + + + + Previous window + Previous window + + + + Hide status field + Hide status field + + + + Close &all windows + Close &all windows + + + + Re&store recently closed window + Re&store recently closed window + + + + Close current &window + Close current &window + + + + Close &other windows + Close &other windows + + + + Close windows on the &left + Close windows on the &left + + + + Close windows on the &right + Close windows on the &right + + + + Re&name selected window + Re&name selected window + + + + Open Debug Console + Open Debug Console + + + + Open CSS Console + Open CSS Console + + + + Report a &bug + Report a &bug + + + + D&onate + D&onate + + + + Propose a new &feature + Propose a new &feature + + + + &About + &About + + + + &Licenses + &Licenses + + + + Open home &page + Open home &page + + + + User &Manual + User &Manual + + + + SQLite &documentation + SQLite &documentation + + + + Bugs and feature &requests + Bugs and feature &requests + + + + Quit + Quit + + + + Check for &updates + Check for &updates + + + + &Database + menubar + &Database + + + + &Structure + menubar + &Structure + + + + &View + menubar + &View + + + + Window list + menubar view menu + Window list + + + + &Tools + menubar + &Tools + + + + &Help + &Help + + + + Could not set style: %1 + main window + Could not set style: %1 + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + Rename window + Rename window + + + + Enter new name for the window: + Enter new name for the window: + + + + New updates are available. <a href="%1">Click here for details</a>. + New updates are available. <a href="%1">Click here for details</a>. + + + + You're running the most recent version. No updates are available. + You're running the most recent version. No updates are available. + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + Database passed in command line parameters (%1) was already on the list under name: %2 + + + + Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 + Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + MdiWindow + + + Uncommitted changes + Uncommitted changes + + + + Close anyway + Close anyway + + + + Don't close + Don't close + + + + MultiEditor + + + Null value + multieditor + Null value + + + + Configure editors for this data type + Configure editors for this data type + + + + Open another tab + Open another tab + + + + Foreign Key + Foreign Key + + + + Data editor plugin '%1' not loaded, while it is defined for editing '%2' data type. + Data editor plugin '%1' not loaded, while it is defined for editing '%1' data type. {1'?} {2'?} {1' or 2'?} + + + + Deleted + multieditor + Deleted + + + + Read only + multieditor + Read only + + + + MultiEditorBoolPlugin + + + Boolean + Boolean + + + + MultiEditorDatePlugin + + + Date + Date + + + + MultiEditorDateTimePlugin + + + Date & time + Date & time + + + + MultiEditorHexPlugin + + + Hex + Hex + + + + MultiEditorNumericPlugin + + + Number + numeric multi editor tab name + Number + + + + MultiEditorText + + + Tab changes focus + Tab changes focus + + + + Cut + Cut + + + + Copy + Copy + + + + Paste + Paste + + + + Delete + Delete + + + + Undo + Undo + + + + Redo + Redo + + + + MultiEditorTextPlugin + + + Text + Text + + + + MultiEditorTimePlugin + + + Time + Time + + + + NewConstraintDialog + + + New constraint + New constraint + + + + + Primary Key + new constraint dialog + Primary Key + + + + + Foreign Key + new constraint dialog + Foreign Key + + + + + Unique + new constraint dialog + Unique + + + + + Check + new constraint dialog + Check + + + + Not NULL + new constraint dialog + Not NULL + + + + Collate + new constraint dialog + Collate + + + + Generated + new constraint dialog + Generated + + + + Default + new constraint dialog + Default + + + + NewVersionDialog + + + SQLiteStudio updates + SQLiteStudio updates + + + + New version is available! + New version is available! + + + + Download new version! + Download new version! + + + + New version package will be downloaded. It will be up to you to install it whenever you're ready. + New version package will be downloaded. It will be up to you to install it whenever you're ready. + + + + Open SQLiteStudio home page. + Open SQLiteStudio home page. + + + + Read release notes && download package yourself. + Read release notes && download package yourself. + + + + Just close this window. + Just close this window. + + + + Check for updates on startup + Check for updates on startup + + + + Not now. + Not now. + + + + PopulateConfigDialog + + + Populating configuration + Populating configuration + + + + Configuring <b>%1</b> for column <b>%2</b> + Configuring <b>%1</b> for column <b>%2</b> + + + + PopulateDialog + + + Populate table + Populate table + + + + Database + Database + + + + Table + Table + + + + Columns + Columns + + + + Number of rows to populate: + Number of rows to populate: + + + + Populate + populate dialog button + Populate + + + + Abort + Abort + + + + Configure + Configure + + + + Populating configuration for this column is invalid or incomplete. + Populating configuration for this column is invalid or incomplete. + + + + Select database with table to populate + Select database with table to populate + + + + Select table to populate + Select table to populate + + + + You have to select at least one column. + You have to select at least one column. + + + + QObject + + + Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). + Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). + + + + The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. + The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. + + + + Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. + Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. + + + + Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. + Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. + + + + Cannot edit results of query other than %1. + Cannot edit results of query other than %1. + + + + Cannot edit columns that are result of aggregated %1 statements. + Cannot edit columns that are result of aggregated %1 statements. + + + + Cannot edit columns that are result of %1 statement. + Cannot edit columns that are result of %1 statement. + + + + Cannot edit columns that are result of common table expression statement (%1). + Cannot edit columns that are result of common table expression statement (%1). + + + + Cannot edit table generated columns. + Cannot edit table generated columns. + + + + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). + + + + + + + on conflict: %1 + data view tooltip + on conflict: %1 + + + + references table %1, column %2 + data view tooltip + references table %1, column %2 + + + + condition: %1 + data view tooltip + condition: %1 + + + + collation name: %1 + data view tooltip + collation name: %1 + + + + Data grid view + Data grid view + + + + Edit current cell inline + Edit current cell inline + + + + Copy cell(s) contents to clipboard + Copy cell(s) contents to clipboard + + + + Copy cell(s) contents together with header to clipboard + Copy cell(s) contents together with header to clipboard + + + + Paste cell(s) contents from clipboard + Paste cell(s) contents from clipboard + + + + Set empty value to selected cell(s) + Set empty value to selected cell(s) + + + + Set NULL value to selected cell(s) + Set NULL value to selected cell(s) + + + + Commit changes to cell(s) contents + Commit changes to cell(s) contents + + + + Rollback changes to cell(s) contents + Rollback changes to cell(s) contents + + + + Delete selected data row + Delete selected data row + + + + Insert new data row + Insert new data row + + + + Open contents of selected cell in a separate editor + Open contents of selected cell in a separate editor + + + + Toggle the height adjustment of rows + Toggle the height adjustment of rows + + + + Increase font size + data view + Increase font size + + + + Decrease font size + data view + Decrease font size + + + + Total pages available: %1 + Total pages available: %1 + + + + Total rows loaded: %1 + Total rows loaded: %1 + + + + Data view (both grid and form) + Data view (both grid and form) + + + + Refresh data + Refresh data + + + + Switch to grid view of the data + Switch to grid view of the data + + + + Switch to form view of the data + Switch to form view of the data + + + + Database list + Database list + + + + Delete selected item + Delete selected item + + + + Clear filter contents + Clear filter contents + + + + Refresh schema + Refresh schema + + + + Refresh all schemas + Refresh all schemas + + + + Add database + Add database + + + + Select all items + Select all items + + + + Copy selected item(s) + Copy selected item(s) + + + + + + Paste from clipboard + Paste from clipboard + + + + Increase font size + database list + Increase font size + + + + Decrease font size + database list + Decrease font size + + + + Tables + Tables + + + + Indexes + Indexes + + + + Triggers + Triggers + + + + Views + Views + + + + Columns + Columns + + + + Data form view + Data form view + + + + Commit changes for current row + Commit changes for current row + + + + Rollback changes for current row + Rollback changes for current row + + + + Go to first row on current page + Go to first row on current page + + + + Go to next row + Go to next row + + + + Go to previous row + Go to previous row + + + + Go to last row on current page + Go to last row on current page + + + + Insert new row + Insert new row + + + + Delete current row + Delete current row + + + + Main window + Main window + + + + Open SQL editor + Open SQL editor + + + + Open DDL history window + Open DDL history window + + + + Open snippets editor window + Open snippets editor window + + + + Open function editor window + Open function editor window + + + + Open collation editor window + Open collation editor window + + + + Open extension manager window + Open extension manager window + + + + Previous window + Previous window + + + + Next window + Next window + + + + Hide status area + Hide status area + + + + Open user manual + Open user manual + + + + Open configuration dialog + Open configuration dialog + + + + Open Debug Console + Open Debug Console + + + + Open CSS Console + Open CSS Console + + + + Open the About dialog + Open the About dialog + + + + Quit the application + Quit the application + + + + Cell text value editor + Cell text value editor + + + + + Cut selected text + Cut selected text + + + + + Copy selected text + Copy selected text + + + + + Delete selected text + Delete selected text + + + + + Undo + Undo + + + + + Redo + Redo + + + + SQL editor input field + SQL editor input field + + + + Select whole editor contents + Select whole editor contents + + + + Save contents into a file + Save contents into a file + + + + Load contents from a file + Load contents from a file + + + + Find in text + Find in text + + + + Find next + Find next + + + + Find previous + Find previous + + + + Replace in text + Replace in text + + + + Delete current line + Delete current line + + + + Request code assistant + Request code assistant + + + + Format contents + Format contents + + + + Move selected block of text one line down + Move selected block of text one line down + + + + Move selected block of text one line up + Move selected block of text one line up + + + + Copy selected block of text and paste it a line below + Copy selected block of text and paste it a line below + + + + Copy selected block of text and paste it a line above + Copy selected block of text and paste it a line above + + + + Toggle comment + Toggle comment + + + + Increase font size + sql editor + Increase font size + + + + Decrease font size + sql editor + Decrease font size + + + + All SQLite databases + All SQLite databases + + + + All files + All files + + + + Select database file + Select database file + + + + Select + Select + + + + File type + File type + + + + SQL editor window + SQL editor window + + + + Execute query + Execute query + + + + Execute single query under cursor + Execute single query under cursor + + + + Execute all queries in editor + Execute all queries in editor + + + + Execute "%1" query + Execute "%1" query + + + + Switch current working database to previous on the list + Switch current working database to previous on the list + + + + Switch current working database to next on the list + Switch current working database to next on the list + + + + Go to next editor tab + Go to next editor tab + + + + Go to previous editor tab + Go to previous editor tab + + + + Move keyboard input focus to the results view below + Move keyboard input focus to the results view below + + + + Move keyboard input focus to the SQL editor above + Move keyboard input focus to the SQL editor above + + + + Delete selected SQL history entries + Delete selected SQL history entries + + + + Table window + Table window + + + + Commit the table structure + Commit the table structure + + + + Rollback pending changes in the table structure + Rollback pending changes in the table structure + + + + Refresh table structure + Refresh table structure + + + + Add new column + Add new column + + + + Edit selected column + Edit selected column + + + + Delete selected column + Delete selected column + + + + Export table data + Export table data + + + + Import data to the table + Import data to the table + + + + Add new table constraint + Add new table constraint + + + + Edit selected table constraint + Edit selected table constraint + + + + Delete selected table constraint + Delete selected table constraint + + + + Refresh table index list + Refresh table index list + + + + Add new index + Add new index + + + + Edit selected index + Edit selected index + + + + Delete selected index + Delete selected index + + + + Refresh table trigger list + Refresh table trigger list + + + + + Add new trigger + Add new trigger + + + + + Edit selected trigger + Edit selected trigger + + + + + Delete selected trigger + Delete selected trigger + + + + + Go to next tab + Go to next tab + + + + + Go to previous tab + Go to previous tab + + + + A view window + A view window + + + + Commit the view's query + Commit the view's query + + + + Rollback pending changes in the view's query + Rollback pending changes in the view's query + + + + Refresh view trigger list + Refresh view trigger list + + + + Execute the view's query + Execute the view's query + + + + A code snippets editor window + A code snippets editor window + + + + + + + Commit the pending changes + Commit the pending changes + + + + + + + Rollback the pending changes + Rollback the pending changes + + + + A collation editor window + A collation editor window + + + + A function editor window + A function editor window + + + + A SQLite extension editor window + A SQLite extension editor window + + + + QuitConfirmDialog + + + Uncommitted changes + Uncommitted changes + + + + Are you sure you want to quit the application? + +Following items are pending: + Are you sure you want to quit the application? + +Following items are pending: + + + + SearchTextDialog + + + Find or replace + Find or replace + + + + Find: + Find: + + + + Case sensitive + Case sensitive + + + + Search backwards + Search backwards + + + + Regular expression matching + Regular expression matching + + + + Replace && +find next + Replace && +find next + + + + Replace with: + Replace with: + + + + Replace all + Replace all + + + + Find + Find + + + + SortDialog + + + Sort by columns + Sort by columns + + + + + Column + Column + + + + + Order + Order + + + + Sort by: %1 + Sort by: %1 + + + + Move column up + Move column up + + + + Move column down + Move column down + + + + SqlEditor + + + Wrap words + sql editor + Wrap words + + + + Cut + sql editor + Cut + + + + Copy + sql editor + Copy + + + + Paste + sql editor + Paste + + + + Delete + sql editor + Delete + + + + Select all + sql editor + Select all + + + + Undo + sql editor + Undo + + + + Redo + sql editor + Redo + + + + Complete + sql editor + Complete + + + + Format SQL + sql editor + Format SQL + + + + Save SQL to file + sql editor + Save SQL to file + + + + Select file to save SQL + sql editor + Select file to save SQL + + + + Load SQL from file + sql editor + Load SQL from file + + + + Delete line + sql editor + Delete line + + + + Move block down + sql editor + Move block down + + + + Move block up + sql editor + Move block up + + + + Copy block down + sql editor + Copy block down + + + + Copy up down + sql editor + Copy up down + + + + Find + sql editor + Find + + + + Find next + sql editor + Find next + + + + Find previous + sql editor + Find previous + + + + Replace + sql editor + Replace + + + + Toggle comment + sql editor + Toggle comment + + + + Increase font size + sql editor + Increase font size + + + + Decrease font size + sql editor + Decrease font size + + + + Could not open file '%1' for writing: %2 + Could not open file '%1' for writing: %2 + + + + Saved SQL contents to file: %1 + Saved SQL contents to file: %1 + + + + Syntax completion can be used only when a valid database is set for the SQL editor. + Syntax completion can be used only when a valid database is set for the SQL editor. + + + + Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. + Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. + + + + Save to file + Save to file + + + + SQL scripts (*.sql);;All files (*) + SQL scripts (*.sql);;All files (*) + + + + Open file + Open file + + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Reached the end of document. Hit the find again to restart the search. + Reached the end of document. Hit the find again to restart the search. + + + + SqlQueryItem + + + Committing error: + data view tooltip + Committing error: + + + + Column: + data view tooltip + Column: + + + + Data type: + data view + Data type: + + + + Table: + data view tooltip + Table: + + + + Constraints: + data view tooltip + Constraints: + + + + SqlQueryItemDelegate + + + + + + Cannot edit this cell. Details: %1 + Cannot edit this cell. Details: %1 + + + + The row is marked for deletion. + The row is marked for deletion. + + + + + Structure of this table has changed since last data was loaded. Reload the data to proceed. + Structure of this table has changed since last data was loaded. Reload the data to proceed. + + + + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). + + + + Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. + Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. + + + + SqlQueryModel + + + + Only one query can be executed simultaneously. + Only one query can be executed simultaneously. + + + + Cannot execute query on undefined or invalid database. + Cannot execute query on undefined or invalid database. + + + + Cannot execute empty query. + Cannot execute empty query. + + + + Uncommitted data + Uncommitted data + + + + There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. + There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. + + + + Cannot commit the data for a cell that refers to the already closed database. + Cannot commit the data for a cell that refers to the already closed database. + + + + Could not begin transaction on the database. Details: %1 + Could not begin transaction on the database. Details: %1 + + + + An error occurred while committing the transaction: %1 + An error occurred while committing the transaction: %1 + + + + An error occurred while rolling back the transaction: %1 + An error occurred while rolling back the transaction: %1 + + + + Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. + Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. + + + + An error occurred while committing the data: %1 + An error occurred while committing the data: %1 + + + + Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. + Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. + + + + + Error while executing SQL query on database '%1': %2 + Error while executing SQL query on database '%1': %2 + + + + Error while loading query results: %1 + Error while loading query results: %1 + + + + Insert multiple rows + Insert multiple rows + + + + Number of rows to insert: + Number of rows to insert: + + + + Delete rows + Delete rows + + + + You're about to delete newly inserted rows that are not committed yet. Row numbers: %1 +Such deletion will be permanent. Are you sure you want to delete them? + You're about to delete newly inserted rows that are not committed yet. Row numbers: %1 +Such deletion will be permanent. Are you sure you want to delete them? + + + + SqlQueryView + + + Go to referenced row in... + Go to referenced row in... + + + + Copy + Copy + + + + Copy with headers + Copy with headers + + + + Copy as... + Copy as... + + + + Paste + Paste + + + + Paste as... + Paste as... + + + + Set NULL values + Set NULL values + + + + Erase values + Erase values + + + + Commit + Commit + + + + Rollback + Rollback + + + + Commit selected cells + Commit selected cells + + + + Rollback selected cells + Rollback selected cells + + + + Edit current cell inline + Edit current cell inline + + + + Define columns to sort by + Define columns to sort by + + + + Remove custom sorting + Remove custom sorting + + + + Insert row + Insert row + + + + Insert multiple rows + Insert multiple rows + + + + Delete selected row + Delete selected row + + + + Adjust height of rows + Adjust height of rows + + + + Increase font size + data view + Increase font size + + + + Decrease font size + data view + Decrease font size + + + + Invert selection + data view + Invert selection + + + + Edit value in editor + Edit value in editor + + + + Show value in a viewer + Show value in a viewer + + + + Generate query for selected cells + Generate query for selected cells + + + + No items selected to paste clipboard contents to. + No items selected to paste clipboard contents to. + + + + Cannot paste data. Details: %1 + Cannot paste data. Details: %1 + + + + Structure of at least one table used has changed since last data was loaded. Reload the data to proceed. + Structure of at least one table used has changed since last data was loaded. Reload the data to proceed. + + + + Cannot paste to a cell. Details: %1 + Cannot paste to a cell. Details: %1 + + + + The row is marked for deletion. + The row is marked for deletion. + + + + Cannot paste to column %1. Details: %2 + Cannot paste to column %1. Details: %2 + + + + Go to referenced row in table '%1' + Go to referenced row in table '%1' + + + + table '%1' + table '%1' + + + + Referenced row (%1) + Referenced row (%1) + + + + Trim pasted text? + Trim pasted text? + + + + The pasted text contains leading or trailing white space. Trim it automatically? + The pasted text contains leading or trailing white space. Trim it automatically? + + + + Paste "NULL" as null value? + Paste "NULL" as null value? + + + + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + + + + Edit value + Edit value + + + + SqlTableModel + + + Error while committing new row: %1 + Error while committing new row: %1 + + + + Error while deleting row from table %1: %2 + Error while deleting row from table %1: %2 + + + + SqliteExtensionEditor + + + Filter extensions + Filter extensions + + + + Leave empty to use default function + Leave empty to use default function + + + + Extension file + Extension file + + + + Initialization function + Initialization function + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Extension manager window has uncommitted modifications. + Extension manager window has uncommitted modifications. + + + + Extension manager + Extension manager + + + + Commit all extension changes + Commit all extension changes + + + + Rollback all extension changes + Rollback all extension changes + + + + Add new extension + Add new extension + + + + Remove selected extension + Remove selected extension + + + + Editing extensions manual + Editing extensions manual + + + + File with given path does not exist or is not readable. + File with given path does not exist or is not readable. + + + + Unable to load extension: %1 + Unable to load extension: %1 + + + + Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. + Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. + + + + Dynamic link libraries (*.dll);;All files (*) + Dynamic link libraries (*.dll);;All files (*) + + + + Shared objects (*.so);;All files (*) + Shared objects (*.so);;All files (*) + + + + Dynamic libraries (*.dylib);;All files (*) + Dynamic libraries (*.dylib);;All files (*) + + + + All files (*) + All files (*) + + + + Open file + Open file + + + + StatusField + + + Status + Status + + + + Copy + Copy + + + + Clear + Clear + + + + TableConstraintsModel + + + Type + table constraints + Type + + + + Details + table constraints + Details + + + + Name + table constraints + Name + + + + TableForeignKeyPanel + + + Foreign table: + Foreign table: + + + + Columns + Columns + + + + Local column + Local column + + + + Foreign column + Foreign column + + + + Reactions + Reactions + + + + Deferred foreign key + Deferred foreign key + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + Pick the foreign column. + Pick the foreign column. + + + + Pick the foreign table. + Pick the foreign table. + + + + Select at least one foreign column. + Select at least one foreign column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + Foreign column + table constraints + Foreign column + + + + TablePrimaryKeyAndUniquePanel + + + Columns + Columns + + + + Column + Column + + + + Collation + Collation + + + + Sort + Sort + + + + Valid only for a single column with INTEGER data type + Valid only for a single column with INTEGER data type + + + + Autoincrement + Autoincrement + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + On conflict + On conflict + + + + Collate + table constraints + Collate + + + + Sort order + table constraints + Sort order + + + + Select at least one column. + Select at least one column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + TableStructureModel + + + Name + table structure columns + Name + + + + Data type + table structure columns + Data type + + + + Primary +Key + table structure columns + Primary +Key + + + + Foreign +Key + table structure columns + Foreign +Key + + + + Unique + table structure columns + Unique + + + + Check + table structure columns + Check + + + + Not +NULL + table structure columns + Not +NULL + + + + Collate + table structure columns + Collate + + + + Generated + table structure columns + Generated + + + + Default value + table structure columns + Default value + + + + TableWindow + + + Structure + Structure + + + + Table name: + Table name: + + + + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + + + + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + + + + + Data + Data + + + + Constraints + Constraints + + + + Indexes + Indexes + + + + Triggers + Triggers + + + + DDL + DDL + + + + Export table + table window + Export table + + + + Import data to table + table window + Import data to table + + + + Populate table + table window + Populate table + + + + Refresh structure + table window + Refresh structure + + + + Commit structure changes + table window + Commit structure changes + + + + Rollback structure changes + table window + Rollback structure changes + + + + Add column + table window + Add column + + + + Edit column + table window + Edit column + + + + + Delete column + table window + Delete column + + + + Move column up + table window + Move column up + + + + Move column down + table window + Move column down + + + + Create similar table + table window + Create similar table + + + + Reset autoincrement value + table window + Reset autoincrement value + + + + Add table constraint + table window + Add table constraint + + + + Edit table constraint + table window + Edit table constraint + + + + Delete table constraint + table window + Delete table constraint + + + + Move table constraint up + table window + Move table constraint up + + + + Move table constraint down + table window + Move table constraint down + + + + Add table primary key + table window + Add table primary key + + + + Add table foreign key + table window + Add table foreign key + + + + Add table unique constraint + table window + Add table unique constraint + + + + Add table check constraint + table window + Add table check constraint + + + + Refresh index list + table window + Refresh index list + + + + + Create index + table window + Create index + + + + Edit index + table window + Edit index + + + + Delete index + table window + Delete index + + + + Refresh trigger list + table window + Refresh trigger list + + + + + Create trigger + table window + Create trigger + + + + Edit trigger + table window + Edit trigger + + + + Delete trigger + table window + Delete trigger + + + + Are you sure you want to delete column '%1'? + table window + Are you sure you want to delete column '%1'? + + + + Following problems will take place while modifying the table. +Would you like to proceed? + table window + Following problems will take place while modifying the table. +Would you like to proceed? + + + + Table modification + table window + Table modification + + + + Could not load data for table %1. Error details: %2 + Could not load data for table %1. Error details: %2 + + + + Could not process the %1 table correctly. Unable to open a table window. + Could not process the %1 table correctly. Unable to open a table window. + + + + Database + Database + + + + Could not restore window %1, because no database or table was stored in session for this window. + Could not restore window %1, because no database or table was stored in session for this window. + + + + Could not restore window '%1', because no database or table was stored in session for this window. + Could not restore window '%1', because no database or table was stored in session for this window. + + + + Could not restore window '%1', because database %2 could not be resolved. + Could not restore window '%1', because database %2 could not be resolved. + + + + Could not restore window '%1', because the table %2 doesn't exist in the database %3. + Could not restore window '%1', because the table %2 doesn't exist in the database %3. + + + + + New table %1 + New table %1 + + + + Committed changes for table '%1' successfully. + Committed changes for table '%1' successfully. + + + + Committed changes for table '%1' (named before '%2') successfully. + Committed changes for table '%1' (named before '%2') successfully. + + + + Could not commit table structure. Error message: %1 + table window + Could not commit table structure. Error message: %1 + + + + Reset autoincrement + Reset autoincrement + + + + Are you sure you want to reset autoincrement value for table '%1'? + Are you sure you want to reset autoincrement value for table '%1'? + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + An error occurred while trying to reset autoincrement value for table '%1': %2 + + + + Autoincrement value for table '%1' has been reset successfully. + Autoincrement value for table '%1' has been reset successfully. + + + + Empty name + Empty name + + + + A blank name for the table is allowed in SQLite, but it is not recommended. +Are you sure you want to create a table with blank name? + A blank name for the table is allowed in SQLite, but it is not recommended. +Are you sure you want to create a table with blank name? + + + + Cannot create a table without at least one column. + Cannot create a table without at least one column. + + + + Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. + Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. + + + + Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. + Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. + + + + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 + + + + Are you sure you want to delete table constraint '%1'? + table window + Are you sure you want to delete table constraint '%1'? + + + + Delete constraint + table window + Delete constraint + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + Uncommitted changes + Uncommitted changes + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + + + + Go back to structure tab + Go back to structure tab + + + + Commit modifications and browse data. + Commit modifications and browse data. + + + + Name + table window indexes + Name + + + + Unique + table window indexes + Unique + + + + Columns + table window indexes + Columns + + + + Partial index condition + table window indexes + Partial index condition + + + + Name + table window triggers + Name + + + + Event + table window triggers + Event + + + + Condition + table window triggers + Condition + + + + Details + table window triggers + Details + + + + Table window "%1" has uncommitted structure modifications and data. + Table window "%1" has uncommitted structure modifications and data. + + + + Table window "%1" has uncommitted data. + Table window "%1" has uncommitted data. + + + + Table window "%1" has uncommitted structure modifications. + Table window "%1" has uncommitted structure modifications. + + + + TriggerColumnsDialog + + + Trigger columns + Trigger columns + + + + Triggering columns: + Triggering columns: + + + + Select all + Select all + + + + Deselect all + Deselect all + + + + TriggerDialog + + + + Trigger + Trigger + + + + On table: + On table: + + + + Action: + Action: + + + + + <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> + <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> + + + + Pre-condition: + Pre-condition: + + + + The scope is still not fully supported by the SQLite database. + The scope is still not fully supported by the SQLite database. + + + + Trigger name: + Trigger name: + + + + When: + When: + + + + List of columns for UPDATE OF action. + List of columns for UPDATE OF action. + + + + Scope: + Scope: + + + + Code: + Code: + + + + Trigger statements to be executed. + Trigger statements to be executed. + + + + DDL + DDL + + + + On view: + On view: + + + + Could not process trigger %1 correctly. Unable to open a trigger dialog. + Could not process trigger %1 correctly. Unable to open a trigger dialog. + + + + Enter a valid condition. + Enter a valid condition. + + + + Enter a valid trigger code. + Enter a valid trigger code. + + + + Error + trigger dialog + Error + + + + An error occurred while executing SQL statements: +%1 + An error occurred while executing SQL statements: +%1 + + + + VersionConvertSummaryDialog + + + Database version convert + Database version convert + + + + Following changes to the SQL statements will be made: + Following changes to the SQL statements will be made: + + + + Before + Before + + + + After + After + + + + ViewWindow + + + Query + Query + + + + View name: + View name: + + + + Output column names + Output column names + + + + + Data + Data + + + + Triggers + Triggers + + + + DDL + DDL + + + + + Could not restore window '%1', because no database or view was stored in session for this window. + Could not restore window '%1', because no database or view was stored in session for this window. + + + + Could not restore window '%1', because database %2 could not be resolved. + Could not restore window '%1', because database %2 could not be resolved. + + + + Could not restore window '%1', because database %2 could not be open. + Could not restore window '%1', because database %2 could not be open. + + + + Could not restore window '%1', because the view %2 doesn't exist in the database %3. + Could not restore window '%1', because the view %2 doesn't exist in the database %3. + + + + + New view %1 + New view %1 + + + + Database + Database + + + + Refresh the view + view window + Refresh the view + + + + Commit the view changes + view window + Commit the view changes + + + + Rollback the view changes + view window + Rollback the view changes + + + + Explicit column names + Explicit column names + + + + Generate output column names automatically basing on result columns of the view. + Generate output column names automatically basing on result columns of the view. + + + + Add column + view window + Add column + + + + Edit column + view window + Edit column + + + + Delete column + view window + Delete column + + + + Move column up + view window + Move column up + + + + Move column down + view window + Move column down + + + + Refresh trigger list + view window + Refresh trigger list + + + + Create new trigger + view window + Create new trigger + + + + Edit selected trigger + view window + Edit selected trigger + + + + Delete selected trigger + view window + Delete selected trigger + + + + View window "%1" has uncommitted structure modifications and data. + View window "%1" has uncommitted structure modifications and data. + + + + View window "%1" has uncommitted data. + View window "%1" has uncommitted data. + + + + View window "%1" has uncommitted structure modifications. + View window "%1" has uncommitted structure modifications. + + + + Could not load data for view %1. Error details: %2 + Could not load data for view %1. Error details: %2 + + + + Uncommitted changes + Uncommitted changes + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + + + + Go back to structure tab + Go back to structure tab + + + + Commit modifications and browse data. + Commit modifications and browse data. + + + + View '%1' was committed successfully. + View '%1' was committed successfully. + + + + Committed changes for view '%1' successfully. + Committed changes for view '%1' successfully. + + + + Committed changes for view '%1' (named before '%2') successfully. + Committed changes for view '%1' (named before '%2') successfully. + + + + Could not commit view changes. Error message: %1 + view window + Could not commit view changes. Error message: %1 + + + + Override columns + Override columns + + + + Currently defined columns will be overriden. Do you want to continue? + Currently defined columns will be overriden. Do you want to continue? + + + + Could not determinate columns returned from the view. The query is problably incomplete or contains errors. + Could not determinate columns returned from the view. The query is problably incomplete or contains errors. + + + + Name + view window triggers + Name + + + + Instead of + view window triggers + Instead of + + + + Condition + view window triggers + Condition + + + + Details + table window triggers + Details + + + + Could not process the %1 view correctly. Unable to open a view window. + Could not process the %1 view correctly. Unable to open a view window. + + + + Empty name + Empty name + + + + A blank name for the view is allowed in SQLite, but it is not recommended. +Are you sure you want to create a view with blank name? + A blank name for the view is allowed in SQLite, but it is not recommended. +Are you sure you want to create a view with blank name? + + + + The SELECT statement could not be parsed. Please correct the query and retry. +Details: %1 + The SELECT statement could not be parsed. Please correct the query and retry. +Details: %1 + + + + The view could not be modified due to internal SQLiteStudio error. Please report this! + The view could not be modified due to internal SQLiteStudio error. Please report this! + + + + The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. + The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. + + + + Following problems will take place while modifying the view. +Would you like to proceed? + view window + Following problems will take place while modifying the view. +Would you like to proceed? + + + + View modification + view window + View modification + + + + WidgetCover + + + Interrupt + Interrupt + + + diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_uk_UA.ts b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_uk_UA.ts new file mode 100644 index 0000000..5ecb76a --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_uk_UA.ts @@ -0,0 +1,7111 @@ + + + + + AboutDialog + + + About SQLiteStudio and licenses + About SQLiteStudio and licenses + + + + About + About + + + + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + + + + Licenses + Licenses + + + + Environment + Environment + + + + Icon directories + Icon directories + + + + Form directories + Form directories + + + + SQLite extension directories + SQLite extension directories + + + + Plugin directories + Plugin directories + + + + Configuration directory + Configuration directory + + + + Application directory + Application directory + + + + Qt version: + Qt version: + + + + SQLite 3 version: + SQLite 3 version: + + + + Portable distribution. + Portable distribution. + + + + MacOS X application bundle distribution. + MacOS X application bundle distribution. + + + + Operating system managed distribution. + Operating system managed distribution. + + + + <h3>Table of contents:</h3><ol>%2</ol> + <h3>Table of contents:</h3><ol>%2</ol> + + + + BindParamsDialog + + + Query parameters + Query parameters + + + + Please provide values for query parameters + Please provide values for query parameters + + + + CodeSnippetEditor + + + Filter snippets + Filter snippets + + + + + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + + + + + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + + + + Snippet name + Snippet name + + + + Code assistant shortcut + Code assistant shortcut + + + + Snippet code + Snippet code + + + + Code Snippets editor window has uncommitted modifications. + Code Snippets editor window has uncommitted modifications. + + + + Code Snippets editor + Code Snippets editor + + + + Commit all snippet changes + Commit all snippet changes + + + + Rollback all snippet changes + Rollback all snippet changes + + + + Create new snippet + Create new snippet + + + + Delete selected snippet + Delete selected snippet + + + + Move the snippet up + Move the snippet up + + + + Move the snippet down + Move the snippet down + + + + Code snippets manual + Code snippets manual + + + + Enter a non-empty, unique name of the snippet. + Enter a non-empty, unique name of the snippet. + + + + Enter a non-empty snippet content. + Enter a non-empty snippet content. + + + + This hotkey is not unique in context of a code assistant. + This hotkey is not unique in context of a code assistant. + + + + CollationsEditor + + + Filter collations + Filter collations + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Implementation code: + Implementation code: + + + + Collation name: + Collation name: + + + + Implementation language: + Implementation language: + + + + Collations editor + Collations editor + + + + Commit all collation changes + Commit all collation changes + + + + Rollback all collation changes + Rollback all collation changes + + + + Create new collation + Create new collation + + + + Delete selected collation + Delete selected collation + + + + Editing collations manual + Editing collations manual + + + + Enter a non-empty, unique name of the collation. + Enter a non-empty, unique name of the collation. + + + + Pick the implementation language. + Pick the implementation language. + + + + Enter a non-empty implementation code. + Enter a non-empty implementation code. + + + + Collations editor window has uncommitted modifications. + Collations editor window has uncommitted modifications. + + + + ColorButton + + + Pick a color + Pick a color + + + + ColumnCollatePanel + + + Collation name: + Collation name: + + + + Named constraint: + Named constraint: + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + Enter a collation name. + Enter a collation name. + + + + ColumnDefaultPanel + + + Default value: + Default value: + + + + Named constraint: + Named constraint: + + + + Enter a default value expression. + Enter a default value expression. + + + + Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. + Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. + + + + Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. + Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ColumnDialog + + + Column + Column + + + + Name and type + Name and type + + + + Scale + Scale + + + + Precision + Precision + + + + Data type: + Data type: + + + + Column name: + Column name: + + + + Size: + Size: + + + + Constraints + Constraints + + + + Generated value + Generated value + + + + Unique + Unique + + + + + + + + + + + Configure + Configure + + + + Foreign Key + Foreign Key + + + + Collate + Collate + + + + Not NULL + Not NULL + + + + Check condition + Check condition + + + + Primary Key + Primary Key + + + + Default + Default + + + + Advanced mode + Advanced mode + + + + Add constraint + column dialog + Add constraint + + + + Edit constraint + column dialog + Edit constraint + + + + + Delete constraint + column dialog + Delete constraint + + + + Move constraint up + column dialog + Move constraint up + + + + Move constraint down + column dialog + Move constraint down + + + + Add a primary key + column dialog + Add a primary key + + + + Add a foreign key + column dialog + Add a foreign key + + + + Add an unique constraint + column dialog + Add an unique constraint + + + + Add a check constraint + column dialog + Add a check constraint + + + + Add a not null constraint + column dialog + Add a not null constraint + + + + Add a collate constraint + column dialog + Add a collate constraint + + + + Add a generated value constraint + column dialog + Add a generated value constraint + + + + Add a default constraint + column dialog + Add a default constraint + + + + Are you sure you want to delete constraint '%1'? + column dialog + Are you sure you want to delete constraint '%1'? + + + + Correct the constraint's configuration. + Correct the constraint's configuration. + + + + Scale is not allowed for INTEGER PRIMARY KEY columns. + Scale is not allowed for INTEGER PRIMARY KEY columns. + + + + Precision cannot be defined without the scale. + Precision cannot be defined without the scale. + + + + Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. + Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. + + + + INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. + INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. + + + + Precision is not allowed for INTEGER PRIMARY KEY columns. + Precision is not allowed for INTEGER PRIMARY KEY columns. + + + + Could not match valid STRICT table datatype from declared type: %1. + Could not match valid STRICT table datatype from declared type: %1. + + + + ColumnDialogConstraintsModel + + + Type + column dialog constraints + Type + + + + Name + column dialog constraints + Name + + + + Details + column dialog constraints + Details + + + + ColumnForeignKeyPanel + + + Foreign table: + Foreign table: + + + + Foreign column: + Foreign column: + + + + Reactions + Reactions + + + + Deferred foreign key + Deferred foreign key + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + Pick the foreign table. + Pick the foreign table. + + + + Pick the foreign column. + Pick the foreign column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ColumnGeneratedPanel + + + Generating code: + Generating code: + + + + Explicit type: + Explicit type: + + + + Use "GENERATED ALWAYS" keywords + Use "GENERATED ALWAYS" keywords + + + + Named constraint: + Named constraint: + + + + Enter the column value generating expression. + Enter the column value generating expression. + + + + Invalid value generating expression: %1. + Invalid value generating expression: %1. + + + + Invalid value generating expression. + Invalid value generating expression. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ColumnPrimaryKeyPanel + + + Autoincrement + Autoincrement + + + + Sort order: + Sort order: + + + + Named constraint: + Named constraint: + + + + On conflict: + On conflict: + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + Descending order is not allowed with AUTOINCREMENT. + Descending order is not allowed with AUTOINCREMENT. + + + + ColumnUniqueAndNotNullPanel + + + Named constraint: + Named constraint: + + + + On conflict: + On conflict: + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + CompleterWindow + + + Column: %1 + completer statusbar + Column: %1 + + + + Table: %1 + completer statusbar + Table: %1 + + + + Index: %1 + completer statusbar + Index: %1 + + + + Trigger: %1 + completer statusbar + Trigger: %1 + + + + View: %1 + completer statusbar + View: %1 + + + + Database: %1 + completer statusbar + Database: %1 + + + + Keyword: %1 + completer statusbar + Keyword: %1 + + + + Function: %1 + completer statusbar + Function: %1 + + + + Operator: %1 + completer statusbar + Operator: %1 + + + + String + completer statusbar + String + + + + Number + completer statusbar + Number + + + + Binary data + completer statusbar + Binary data + + + + Collation: %1 + completer statusbar + Collation: %1 + + + + Pragma function: %1 + completer statusbar + Pragma function: %1 + + + + Insert a code snippet + Insert a code snippet + + + + ConfigDialog + + + + Configuration + Configuration + + + + Search + Search + + + + General + General + + + + Keyboard shortcuts + Keyboard shortcuts + + + + Look & feel + Look & feel + + + + Style + Style + + + + Fonts + Fonts + + + + Code colors + Code colors + + + + + Database list + Database list + + + + Code assistant + Code assistant + + + + Data browsing + Data browsing + + + + Data editors + Data editors + + + + Plugins + Plugins + + + + Code formatters + Code formatters + + + + If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. + If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. + + + + Sort table columns alphabetically + Sort table columns alphabetically + + + + Expand tables node when connected to a database + Expand tables node when connected to a database + + + + <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> + <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> + + + + Display additional labels on the list + Display additional labels on the list + + + + For regular tables labels will show number of columns, indexes and triggers for each of tables. + For regular tables labels will show number of columns, indexes and triggers for each of tables. + + + + Display labels for regular tables + Display labels for regular tables + + + + Virtual tables will be marked with a 'virtual' label. + Virtual tables will be marked with a 'virtual' label. + + + + Display labels for virtual tables + Display labels for virtual tables + + + + Expand views node when connected to a database + Expand views node when connected to a database + + + + If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) + If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) + + + + Sort objects (tables, indexes, triggers and views) alphabetically + Sort objects (tables, indexes, triggers and views) alphabetically + + + + Display system tables and indexes on the list + Display system tables and indexes on the list + + + + Database dialog window + Database dialog window + + + + <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> + <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> + + + + Do not mark database to be "permanent" by default + Do not mark database to be "permanent" by default + + + + <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> + <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> + + + + Try to bypass dialog completly when dropping database file onto the list + Try to bypass dialog completly when dropping database file onto the list + + + + Data browsing and editing + Data browsing and editing + + + + + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + + + + Number of memorized table populating configurations + Number of memorized table populating configurations + + + + Data column width + Data column width + + + + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + + + + Enlarge column when entering value longer than current width + Enlarge column when entering value longer than current width + + + + <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> + <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> + + + + Number of data rows per page: + Number of data rows per page: + + + + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> + + + + Show column and row details tooltip in data view + Show column and row details tooltip in data view + + + + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + + + + Keep NULL value when entering empty value + Keep NULL value when entering empty value + + + + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> + + + + Use DEFAULT value (if defined), when committing NULL value + Use DEFAULT value (if defined), when committing NULL value + + + + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + + + + Limit number of rows for in case of dozens of columns + Limit number of rows for in case of dozens of columns + + + + Inserting new row in data grid + Inserting new row in data grid + + + + Before currently selected row + Before currently selected row + + + + After currently selected row + After currently selected row + + + + At the end of data view + At the end of data view + + + + Table windows + Table windows + + + + <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> + <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> + + + + Open Table Windows with the data tab for start + Open Table Windows with the data tab for start + + + + <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> + <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> + + + + Place data tab as first tab in a Table Window + Place data tab as first tab in a Table Window + + + + View windows + View windows + + + + <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> + <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> + + + + Open View Windows with the data tab for start + Open View Windows with the data tab for start + + + + <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> + <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> + + + + Place data tab as first tab in a View Window + Place data tab as first tab in a View Window + + + + Data types + Data types + + + + Available editors: + Available editors: + + + + Editors selected for this data type: + Editors selected for this data type: + + + + Schema editing + Schema editing + + + + Number of DDL changes kept in history. + Number of DDL changes kept in history. + + + + DDL history size: + DDL history size: + + + + Don't show DDL preview dialog when committing schema changes + Don't show DDL preview dialog when committing schema changes + + + + SQL queries + SQL queries + + + + + Number of queries kept in the history. + Number of queries kept in the history. + + + + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> + + + + History size: + History size: + + + + + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> + + + + Execute only the query under the cursor + Execute only the query under the cursor + + + + Number of memorized query parameters + Number of memorized query parameters + + + + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + + + + Use scientific notation for real numbers in the grid view + Use scientific notation for real numbers in the grid view + + + + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + + + + Limit automatic data column width to (in pixels): + Limit automatic data column width to (in pixels): + + + + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + + + + Keep at least the width to show complete column name + Keep at least the width to show complete column name + + + + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + + + + Wrap lines in SQL editor + Wrap lines in SQL editor + + + + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + + + + Highlight current query + Highlight current query + + + + Updates + Updates + + + + Automatically check for updates at startup + Automatically check for updates at startup + + + + Session + Session + + + + Restore last session (active MDI windows) after startup + Restore last session (active MDI windows) after startup + + + + Allow multiple instances of the application at the same time + Allow multiple instances of the application at the same time + + + + Status Field + Status Field + + + + <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> + <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> + + + + Always open Status panel when new message is printed + Always open Status panel when new message is printed + + + + Code syntax colors + Code syntax colors + + + + Keyword foreground + Keyword foreground + + + + Regular foreground + Regular foreground + + + + String foreground + String foreground + + + + Comment foreground + Comment foreground + + + + Valid objects foreground + Valid objects foreground + + + + Current query background + Current query background + + + + Bind parameter foreground + Bind parameter foreground + + + + Current line background + Current line background + + + + Matched parenthesis background + Matched parenthesis background + + + + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + + + + Number foreground + Number foreground + + + + BLOB value foreground + BLOB value foreground + + + + Matched parenthesis foreground + Matched parenthesis foreground + + + + Reset to defaults + Reset to defaults + + + + Filter shortcuts by name or key combination + Filter shortcuts by name or key combination + + + + Action + Action + + + + Key combination + Key combination + + + + + Language + Language + + + + Changing language requires application restart to take effect. + Changing language requires application restart to take effect. + + + + Compact layout + Compact layout + + + + <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> + <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> + + + + Use compact layout + Use compact layout + + + + Main window dock areas + Main window dock areas + + + + Left and right areas occupy corners + Left and right areas occupy corners + + + + Top and bottom areas occupy corners + Top and bottom areas occupy corners + + + + Hide built-in plugins + Hide built-in plugins + + + + Current style: + Current style: + + + + Preview + Preview + + + + Enabled + Enabled + + + + Disabled + Disabled + + + + Active formatter plugin + Active formatter plugin + + + + SQL editor font + SQL editor font + + + + Database list font + Database list font + + + + Database list additional label font + Database list additional label font + + + + Data view font + Data view font + + + + Status field font + Status field font + + + + Code assistant settings + Code assistant settings + + + + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + + + + Automatically trigger the assistant after a dot is typed after an object name + Automatically trigger the assistant after a dot is typed after an object name + + + + Description: + plugin details + Description: + + + + Category: + plugin details + Category: + + + + Version: + plugin details + Version: + + + + Author: + plugin details + Author: + + + + Internal name: + plugin details + Internal name: + + + + Dependencies: + plugin details + Dependencies: + + + + Conflicts: + plugin details + Conflicts: + + + + Plugin details + Plugin details + + + + Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. + Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. + + + + %1 (built-in) + plugins manager in configuration dialog + %1 (built-in) + + + + Details + Details + + + + No plugins in this category. + No plugins in this category. + + + + Add new data type + Add new data type + + + + Rename selected data type + Rename selected data type + + + + Delete selected data type + Delete selected data type + + + + Help for configuring data type editors + Help for configuring data type editors + + + + Clear hotkey for this action + Clear hotkey for this action + + + + Restore original hotkey for this action + Restore original hotkey for this action + + + + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + + + + ConstraintCheckPanel + + + The condition + The condition + + + + Named constraint: + Named constraint: + + + + On conflict + On conflict + + + + Enter a valid condition. + Enter a valid condition. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ConstraintDialog + + + New constraint + constraint dialog + New constraint + + + + Create + constraint dialog + Create + + + + Edit constraint + dialog window + Edit constraint + + + + Apply + constraint dialog + Apply + + + + Primary key + table constraints + Primary key + + + + Foreign key + table constraints + Foreign key + + + + Unique + table constraints + Unique + + + + Not NULL + table constraints + Not NULL + + + + Check + table constraints + Check + + + + Generated + table constraints + Generated + + + + Collate + table constraints + Collate + + + + Default + table constraints + Default + + + + ConstraintTabModel + + + Table + table constraints + Table + + + + Column (%1) + table constraints + Column (%1) + + + + Scope + table constraints + Scope + + + + Type + table constraints + Type + + + + Details + table constraints + Details + + + + Name + table constraints + Name + + + + CssDebugDialog + + + SQLiteStudio CSS console + SQLiteStudio CSS console + + + + DataView + + + Filter data + data view + Filter data + + + + Grid view + Grid view + + + + Form view + Form view + + + + Refresh table data + data view + Refresh table data + + + + First page + data view + First page + + + + Previous page + data view + Previous page + + + + Next page + data view + Next page + + + + Last page + data view + Last page + + + + Commit changes for selected cells + data view + Commit changes for selected cells + + + + Rollback changes for selected cells + data view + Rollback changes for selected cells + + + + Show grid view of results + data view + Show grid view of results + + + + Show form view of results + data view + Show form view of results + + + + Filter by text (if contains) + data view + Filter by text (if contains) + + + + Filter strictly by text (if equals) + data view + Filter strictly by text (if equals) + + + + Tabs on top + data view + Tabs on top + + + + Tabs at bottom + data view + Tabs at bottom + + + + Place new rows above selected row + data view + Place new rows above selected row + + + + Place new rows below selected row + data view + Place new rows below selected row + + + + Place new rows at the end of the data view + data view + Place new rows at the end of the data view + + + + Total number of rows is being counted. +Browsing other pages will be possible after the row counting is done. + Total number of rows is being counted. +Browsing other pages will be possible after the row counting is done. + + + + Row: %1 + Row: %1 + + + + Filter + Filter + + + + Hit Enter key or press "Apply filter" button on toolbar to apply new value. + Hit Enter key or press "Apply filter" button on toolbar to apply new value. + + + + Filter by the Regular Expression + data view + Filter by the Regular Expression + + + + Filter by SQL expression + data view + Filter by SQL expression + + + + Show filter inputs per column + data view + Show filter inputs per column + + + + Apply filter + data view + Apply filter + + + + DbDialog + + + Database + Database + + + + Database type + Database type + + + + Database driver + Database driver + + + + + File + File + + + + Name (on the list) + Name (on the list) + + + + Options + Options + + + + <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> + aasfd + <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> + + + + Permanent (keep it in configuration) + Permanent (keep it in configuration) + + + + Test connection + Test connection + + + + Select new or existing file on local computer + Select new or existing file on local computer + + + + Browse + Browse + + + + Database type not selected. + Database type not selected. + + + + Database path not specified. + Database path not specified. + + + + Enter an unique database name. + Enter an unique database name. + + + + This name is already in use. Please enter unique name. + This name is already in use. Please enter unique name. + + + + <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> + <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> + + + + Enter a database file path. + Enter a database file path. + + + + This database is already on the list under name: %1 + This database is already on the list under name: %1 + + + + Select a database type. + Select a database type. + + + + DbObjectDialogs + + + Delete table + Delete table + + + + Are you sure you want to delete table %1? + Are you sure you want to delete table %1? + + + + Delete index + Delete index + + + + Are you sure you want to delete index %1? + Are you sure you want to delete index %1? + + + + Delete trigger + Delete trigger + + + + Are you sure you want to delete trigger %1? + Are you sure you want to delete trigger %1? + + + + Delete view + Delete view + + + + Are you sure you want to delete view %1? + Are you sure you want to delete view %1? + + + + + Error while dropping %1: %2 + Error while dropping %1: %2 + + + + Delete objects + Delete objects + + + + Are you sure you want to delete following objects: +%1 + Are you sure you want to delete following objects: +%1 + + + + Cannot start transaction. Details: %1 + Cannot start transaction. Details: %1 + + + + Cannot commit transaction. Details: %1 + Cannot commit transaction. Details: %1 + + + + DbTree + + + Databases + Databases + + + + Filter by name + Filter by name + + + + Copy + Copy + + + + Paste + Paste + + + + Select all + Select all + + + + Create a group + Create a group + + + + Delete the group + Delete the group + + + + Rename the group + Rename the group + + + + &Add a database + &Add a database + + + + &Edit the database + &Edit the database + + + + &Remove the database + &Remove the database + + + + &Connect to the database + &Connect to the database + + + + &Disconnect from the database + &Disconnect from the database + + + + Import + Import + + + + &Export the database + &Export the database + + + + Vac&uum + Vac&uum + + + + &Integrity check + &Integrity check + + + + Create a &table + Create a &table + + + + Edit the t&able + Edit the t&able + + + + Delete the ta&ble + Delete the ta&ble + + + + Export the table + Export the table + + + + Import into the table + Import into the table + + + + Populate table + Populate table + + + + Create similar table + Create similar table + + + + Reset autoincrement sequence + Reset autoincrement sequence + + + + Create an &index + Create an &index + + + + Edit the i&ndex + Edit the i&ndex + + + + Delete the in&dex + Delete the in&dex + + + + Create a trig&ger + Create a trig&ger + + + + Edit the trigg&er + Edit the trigg&er + + + + Delete the trigge&r + Delete the trigge&r + + + + Create a &view + Create a &view + + + + Edit the v&iew + Edit the v&iew + + + + Delete the vi&ew + Delete the vi&ew + + + + Add a column + Add a column + + + + Edit the column + Edit the column + + + + Delete the column + Delete the column + + + + Delete selected items + Delete selected items + + + + Clear filter + Clear filter + + + + &Refresh all database schemas + &Refresh all database schemas + + + + Re&fresh selected database schema + Re&fresh selected database schema + + + + + Erase table data + Erase table data + + + + Open file's directory + Open file's directory + + + + Execute SQL from file + Execute SQL from file + + + + Increase font size + database list + Increase font size + + + + Decrease font size + database list + Decrease font size + + + + + Database + Database + + + + Grouping + Grouping + + + + Generate query for table + Generate query for table + + + + + Create group + Create group + + + + Group name + Group name + + + + Entry with name %1 already exists in group %2. + Entry with name %1 already exists in group %2. + + + + Delete group + Delete group + + + + Are you sure you want to delete group %1? +All objects from this group will be moved to parent group. + Are you sure you want to delete group %1? +All objects from this group will be moved to parent group. + + + + Are you sure you want to remove database '%1' from the list? + Are you sure you want to remove database '%1' from the list? + + + + Are you sure you want to remove following databases from the list: +%1 + Are you sure you want to remove following databases from the list: +%1 + + + + Remove database + Remove database + + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Vacuum (%1) + Vacuum (%1) + + + + Integrity check (%1) + Integrity check (%1) + + + + Reset autoincrement + Reset autoincrement + + + + Are you sure you want to reset autoincrement value for table '%1'? + Are you sure you want to reset autoincrement value for table '%1'? + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + An error occurred while trying to reset autoincrement value for table '%1': %2 + + + + Autoincrement value for table '%1' has been reset successfully. + Autoincrement value for table '%1' has been reset successfully. + + + + Are you sure you want to delete all data from table(s): %1? + Are you sure you want to delete all data from table(s): %1? + + + + An error occurred while trying to delete data from table '%1': %2 + An error occurred while trying to delete data from table '%1': %2 + + + + All data has been deleted for table '%1'. + All data has been deleted for table '%1'. + + + + Following objects will be deleted: %1. + Following objects will be deleted: %1. + + + + Following databases will be removed from list: %1. + Following databases will be removed from list: %1. + + + + Remainig objects from deleted group will be moved in place where the group used to be. + Remainig objects from deleted group will be moved in place where the group used to be. + + + + %1<br><br>Are you sure you want to continue? + %1<br><br>Are you sure you want to continue? + + + + Delete objects + Delete objects + + + + DbTreeItemDelegate + + + error + dbtree labels + error + + + + (system table) + database tree label + (system table) + + + + (virtual) + virtual table label + (virtual) + + + + (system index) + database tree label + (system index) + + + + DbTreeModel + + + Database: %1 + dbtree tooltip + Database: %1 + + + + URI: + dbtree tooltip + URI: + + + + Version: + dbtree tooltip + Version: + + + + File size: + dbtree tooltip + File size: + + + + Encoding: + dbtree tooltip + Encoding: + + + + Error: + dbtree tooltip + Error: + + + + Table : %1 + dbtree tooltip + Table : %1 + + + + Columns (%1): + dbtree tooltip + Columns (%1): + + + + Indexes (%1): + dbtree tooltip + Indexes (%1): + + + + Triggers (%1): + dbtree tooltip + Triggers (%1): + + + + Copy + Copy + + + + Move + Move + + + + Include data + Include data + + + + Include indexes + Include indexes + + + + Include triggers + Include triggers + + + + Abort + Abort + + + + Could not add dropped database file '%1' automatically. Manual setup is necessary. + Could not add dropped database file '%1' automatically. Manual setup is necessary. + + + + Referenced tables + Referenced tables + + + + Do you want to include following referenced tables as well: +%1 + Do you want to include following referenced tables as well: +%1 + + + + Name conflict + Name conflict + + + + Following object already exists in the target database. +Please enter new, unique name, or press '%1' to abort the operation: + Following object already exists in the target database. +Please enter new, unique name, or press '%1' to abort the operation: + + + + SQL statements conversion + SQL statements conversion + + + + Following error occurred while converting SQL statements to the target SQLite version: + Following error occurred while converting SQL statements to the target SQLite version: + + + + Would you like to ignore those errors and proceed? + Would you like to ignore those errors and proceed? + + + + DdlHistoryWindow + + + Filter by database: + Filter by database: + + + + Clear entire history + Clear entire history + + + + -- Queries executed on database %1 (%2) +-- Date and time of execution: %3 +%4 + -- Queries executed on database %1 (%2) +-- Date and time of execution: %3 +%4 + + + + Clear history + Clear history + + + + Are you sure you want to erase entire DDL history? + Are you sure you want to erase entire DDL history? + + + + DDL history + DDL history + + + + DdlPreviewDialog + + + Queries to be executed + Queries to be executed + + + + Don't show again + Don't show again + + + + DebugConsole + + + SQLiteStudio Debug Console + SQLiteStudio Debug Console + + + + EditorWindow + + + SQL editor + SQL editor + + + + Query + Query + + + + History + History + + + + Results in the separate tab + Results in the separate tab + + + + Results below the query + Results below the query + + + + + SQL editor %1 + SQL editor %1 + + + + + Results + Results + + + + Execute query + Execute query + + + + Explain query + Explain query + + + + Clear execution history + sql editor + Clear execution history + + + + Export results + sql editor + Export results + + + + Create view from query + sql editor + Create view from query + + + + Previous database + Previous database + + + + Next database + Next database + + + + Show next tab + sql editor + Show next tab + + + + Show previous tab + sql editor + Show previous tab + + + + Focus results below + sql editor + Focus results below + + + + Focus SQL editor above + sql editor + Focus SQL editor above + + + + Delete selected SQL history entries + sql editor + Delete selected SQL history entries + + + + Execute single query under cursor + Execute single query under cursor + + + + Execute all queries in editor + Execute all queries in editor + + + + Active database (%1/%2) + Active database (%1/%2) + + + + Query finished in %1 second(s). Rows affected: %2 + Query finished in %1 second(s). Rows affected: %2 + + + + Query finished in %1 second(s). + Query finished in %1 second(s). + + + + Clear execution history + Clear execution history + + + + Are you sure you want to erase the entire SQL execution history? This cannot be undone. + Are you sure you want to erase the entire SQL execution history? This cannot be undone. + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + No database selected in the SQL editor. Cannot create a view for unknown database. + No database selected in the SQL editor. Cannot create a view for unknown database. + + + + Editor window "%1" has uncommitted data. + Editor window "%1" has uncommitted data. + + + + ErrorsConfirmDialog + + + Errors + Errors + + + + Following errors occured: + Following errors occured: + + + + Would you like to proceed? + Would you like to proceed? + + + + ExecFromFileDialog + + + Execute SQL from file + Execute SQL from file + + + + Input file + Input file + + + + Path to file + Path to file + + + + Browse for file + Browse for file + + + + Options + Options + + + + File encoding + File encoding + + + + Skip failing SQL statements + Skip failing SQL statements + + + + SQL scripts (*.sql);;All files (*) + SQL scripts (*.sql);;All files (*) + + + + Execute SQL file + Execute SQL file + + + + Please provide file to be executed. + Please provide file to be executed. + + + + Provided file does not exist or cannot be read. + Provided file does not exist or cannot be read. + + + + ExportDialog + + + Export + Export + + + + What do you want to export? + What do you want to export? + + + + A database + A database + + + + A single table + A single table + + + + Query results + Query results + + + + Table to export + Table to export + + + + Database + Database + + + + Table + Table + + + + Options + Options + + + + When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. + When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. + + + + Export table data + Export table data + + + + Export table indexes + Export table indexes + + + + Export table triggers + Export table triggers + + + + Note, that exporting table indexes and triggers may be unsupported by some output formats. + Note, that exporting table indexes and triggers may be unsupported by some output formats. + + + + Select database objects to export + Select database objects to export + + + + Export data from tables + Export data from tables + + + + Select all + Select all + + + + Deselect all + Deselect all + + + + + Database: + Database: + + + + Query to export results for + Query to export results for + + + + Query to be executed for results: + Query to be executed for results: + + + + Export format and options + Export format and options + + + + Export format + Export format + + + + Output + Output + + + + Exported file path + Exported file path + + + + Clipboard + Clipboard + + + + File + File + + + + Exported text encoding: + Exported text encoding: + + + + Export format options + Export format options + + + + Cancel + Cancel + + + + + + Select database to export. + Select database to export. + + + + Select table to export. + Select table to export. + + + + Enter valid query to export. + Enter valid query to export. + + + + Select at least one object to export. + Select at least one object to export. + + + + You must provide a file name to export to. + You must provide a file name to export to. + + + + Path you provided is an existing directory. You cannot overwrite it. + Path you provided is an existing directory. You cannot overwrite it. + + + + The directory '%1' does not exist. + The directory '%1' does not exist. + + + + The file '%1' exists and will be overwritten. + The file '%1' exists and will be overwritten. + + + + All files (*) + All files (*) + + + + Pick file to export to + Pick file to export to + + + + Internal error during export. This is a bug. Please report it. + Internal error during export. This is a bug. Please report it. + + + + FileExecErrorsDialog + + + Execution errors + Execution errors + + + + Following errors were encountered during execution of SQL statements from the file: + Following errors were encountered during execution of SQL statements from the file: + + + + SQL + SQL + + + + Error + Error + + + + Statements that were executed successfully were commited. + Statements that were executed successfully were commited. + + + + Statements that were executed successfully were rolled back. + Statements that were executed successfully were rolled back. + + + + FkComboBox + + + Cannot edit this cell. Details: %1 + Cannot edit this cell. Details: %1 + + + + FontEdit + + + Choose font + font configuration + Choose font + + + + Form + + + Active SQL formatter plugin + Active SQL formatter plugin + + + + FormView + + + Commit row + form view + Commit row + + + + Rollback row + form view + Rollback row + + + + First row + form view + First row + + + + Previous row + form view + Previous row + + + + Next row + form view + Next row + + + + Last row + form view + Last row + + + + Insert new row + form view + Insert new row + + + + Delete current row + form view + Delete current row + + + + FunctionsEditor + + + Filter functions + Filter functions + + + + Input arguments + Input arguments + + + + Undefined + Undefined + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Type: + Type: + + + + Function name: + Function name: + + + + Implementation language: + Implementation language: + + + + Deterministic + Deterministic + + + + Initialization code: + Initialization code: + + + + + Function implementation code: + Function implementation code: + + + + Final step implementation code: + Final step implementation code: + + + + SQL functions editor + SQL functions editor + + + + Commit all function changes + Commit all function changes + + + + Rollback all function changes + Rollback all function changes + + + + Create new function + Create new function + + + + Delete selected function + Delete selected function + + + + Custom SQL functions manual + Custom SQL functions manual + + + + Add function argument + Add function argument + + + + Rename function argument + Rename function argument + + + + Delete function argument + Delete function argument + + + + Move function argument up + Move function argument up + + + + Move function argument down + Move function argument down + + + + Scalar + Scalar + + + + Aggregate + Aggregate + + + + Enter a non-empty, unique name of the function. + Enter a non-empty, unique name of the function. + + + + Pick the implementation language. + Pick the implementation language. + + + + Per step code: + Per step code: + + + + Enter a non-empty implementation code. + Enter a non-empty implementation code. + + + + argument + new function argument name in function editor window + argument + + + + Functions editor window has uncommitted modifications. + Functions editor window has uncommitted modifications. + + + + ImportDialog + + + Import data + Import data + + + + Table to import to + Table to import to + + + + Table + Table + + + + Database + Database + + + + Data source to import from + Data source to import from + + + + Data source type + Data source type + + + + Options + Options + + + + Text encoding: + Text encoding: + + + + Input file: + Input file: + + + + <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> + <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> + + + + Ignore errors + Ignore errors + + + + Data source options + Data source options + + + + Cancel + Cancel + + + + If you type table name that doesn't exist, it will be created. + If you type table name that doesn't exist, it will be created. + + + + Enter the table name + Enter the table name + + + + Select import plugin. + Select import plugin. + + + + You must provide a file to import from. + You must provide a file to import from. + + + + The file '%1' does not exist. + The file '%1' does not exist. + + + + Path you provided is a directory. A regular file is required. + Path you provided is a directory. A regular file is required. + + + + Pick file to import from + Pick file to import from + + + + IndexDialog + + + + Index + Index + + + + Column + Column + + + + Sort + Sort + + + + Collation + Collation + + + + On table: + On table: + + + + Delete selected indexed expression + Delete selected indexed expression + + + + Moves selected index column up in the order, making it more significant in the index. + Moves selected index column up in the order, making it more significant in the index. + + + + Moves selected index column down in the order, making it less significant in the index. + Moves selected index column down in the order, making it less significant in the index. + + + + Partial index condition + Partial index condition + + + + Unique index + Unique index + + + + Index name: + Index name: + + + + Edit selected indexed expression + Edit selected indexed expression + + + + Add indexed expression + Add indexed expression + + + + DDL + DDL + + + + Tried to open index dialog for closed or inexisting database. + Tried to open index dialog for closed or inexisting database. + + + + Could not process index %1 correctly. Unable to open an index dialog. + Could not process index %1 correctly. Unable to open an index dialog. + + + + Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. + Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. + + + + Pick the table for the index. + Pick the table for the index. + + + + Select at least one column. + Select at least one column. + + + + Enter a valid condition. + Enter a valid condition. + + + + default + index dialog + default + + + + Sort order + table constraints + Sort order + + + + + Error + index dialog + Error + + + + Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? + Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? + + + + An error occurred while executing SQL statements: +%1 + An error occurred while executing SQL statements: +%1 + + + + IndexExprColumnDialog + + + Indexed expression + Indexed expression + + + + Expression to index + Expression to index + + + + This expression is already indexed by the index. + This expression is already indexed by the index. + + + + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. + + + + Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. + Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. + + + + It's forbidden to use 'SELECT' statements in indexed expressions. + It's forbidden to use 'SELECT' statements in indexed expressions. + + + + Enter an indexed expression. + Enter an indexed expression. + + + + Invalid expression. + Invalid expression. + + + + LanguageDialog + + + Language + Language + + + + Please choose language: + Please choose language: + + + + MainWindow + + + Database toolbar + Database toolbar + + + + Structure toolbar + Structure toolbar + + + + Tools + Tools + + + + Window list + Window list + + + + View toolbar + View toolbar + + + + Configuration widgets + Configuration widgets + + + + Syntax highlighting engines + Syntax highlighting engines + + + + Data editors + Data editors + + + + Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. + Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. + + + + Running in debug mode. Debug messages are printed to the standard output. + Running in debug mode. Debug messages are printed to the standard output. + + + + You need to restart application to make the language change take effect. + You need to restart application to make the language change take effect. + + + + Open SQL &editor + Open SQL &editor + + + + Open DDL &history + Open DDL &history + + + + Open SQL &functions editor + Open SQL &functions editor + + + + Open code &snippets editor + Open code &snippets editor + + + + Open &collations editor + Open &collations editor + + + + Open ex&tension manager + Open ex&tension manager + + + + &Import + &Import + + + + E&xport + E&xport + + + + Open confi&guration dialog + Open confi&guration dialog + + + + &Tile windows + &Tile windows + + + + Tile windows &horizontally + Tile windows &horizontally + + + + Tile windows &vertically + Tile windows &vertically + + + + &Cascade windows + &Cascade windows + + + + Next window + Next window + + + + Previous window + Previous window + + + + Hide status field + Hide status field + + + + Close &all windows + Close &all windows + + + + Re&store recently closed window + Re&store recently closed window + + + + Close current &window + Close current &window + + + + Close &other windows + Close &other windows + + + + Close windows on the &left + Close windows on the &left + + + + Close windows on the &right + Close windows on the &right + + + + Re&name selected window + Re&name selected window + + + + Open Debug Console + Open Debug Console + + + + Open CSS Console + Open CSS Console + + + + Report a &bug + Report a &bug + + + + D&onate + D&onate + + + + Propose a new &feature + Propose a new &feature + + + + &About + &About + + + + &Licenses + &Licenses + + + + Open home &page + Open home &page + + + + User &Manual + User &Manual + + + + SQLite &documentation + SQLite &documentation + + + + Bugs and feature &requests + Bugs and feature &requests + + + + Quit + Quit + + + + Check for &updates + Check for &updates + + + + &Database + menubar + &Database + + + + &Structure + menubar + &Structure + + + + &View + menubar + &View + + + + Window list + menubar view menu + Window list + + + + &Tools + menubar + &Tools + + + + &Help + &Help + + + + Could not set style: %1 + main window + Could not set style: %1 + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + Rename window + Rename window + + + + Enter new name for the window: + Enter new name for the window: + + + + New updates are available. <a href="%1">Click here for details</a>. + New updates are available. <a href="%1">Click here for details</a>. + + + + You're running the most recent version. No updates are available. + You're running the most recent version. No updates are available. + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + Database passed in command line parameters (%1) was already on the list under name: %2 + + + + Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 + Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + MdiWindow + + + Uncommitted changes + Uncommitted changes + + + + Close anyway + Close anyway + + + + Don't close + Don't close + + + + MultiEditor + + + Null value + multieditor + Null value + + + + Configure editors for this data type + Configure editors for this data type + + + + Open another tab + Open another tab + + + + Foreign Key + Foreign Key + + + + Data editor plugin '%1' not loaded, while it is defined for editing '%2' data type. + Data editor plugin '%1' not loaded, while it is defined for editing '%1' data type. {1'?} {2'?} {1' or 2'?} + + + + Deleted + multieditor + Deleted + + + + Read only + multieditor + Read only + + + + MultiEditorBoolPlugin + + + Boolean + Boolean + + + + MultiEditorDatePlugin + + + Date + Date + + + + MultiEditorDateTimePlugin + + + Date & time + Date & time + + + + MultiEditorHexPlugin + + + Hex + Hex + + + + MultiEditorNumericPlugin + + + Number + numeric multi editor tab name + Number + + + + MultiEditorText + + + Tab changes focus + Tab changes focus + + + + Cut + Cut + + + + Copy + Copy + + + + Paste + Paste + + + + Delete + Delete + + + + Undo + Undo + + + + Redo + Redo + + + + MultiEditorTextPlugin + + + Text + Text + + + + MultiEditorTimePlugin + + + Time + Time + + + + NewConstraintDialog + + + New constraint + New constraint + + + + + Primary Key + new constraint dialog + Primary Key + + + + + Foreign Key + new constraint dialog + Foreign Key + + + + + Unique + new constraint dialog + Unique + + + + + Check + new constraint dialog + Check + + + + Not NULL + new constraint dialog + Not NULL + + + + Collate + new constraint dialog + Collate + + + + Generated + new constraint dialog + Generated + + + + Default + new constraint dialog + Default + + + + NewVersionDialog + + + SQLiteStudio updates + SQLiteStudio updates + + + + New version is available! + New version is available! + + + + Download new version! + Download new version! + + + + New version package will be downloaded. It will be up to you to install it whenever you're ready. + New version package will be downloaded. It will be up to you to install it whenever you're ready. + + + + Open SQLiteStudio home page. + Open SQLiteStudio home page. + + + + Read release notes && download package yourself. + Read release notes && download package yourself. + + + + Just close this window. + Just close this window. + + + + Check for updates on startup + Check for updates on startup + + + + Not now. + Not now. + + + + PopulateConfigDialog + + + Populating configuration + Populating configuration + + + + Configuring <b>%1</b> for column <b>%2</b> + Configuring <b>%1</b> for column <b>%2</b> + + + + PopulateDialog + + + Populate table + Populate table + + + + Database + Database + + + + Table + Table + + + + Columns + Columns + + + + Number of rows to populate: + Number of rows to populate: + + + + Populate + populate dialog button + Populate + + + + Abort + Abort + + + + Configure + Configure + + + + Populating configuration for this column is invalid or incomplete. + Populating configuration for this column is invalid or incomplete. + + + + Select database with table to populate + Select database with table to populate + + + + Select table to populate + Select table to populate + + + + You have to select at least one column. + You have to select at least one column. + + + + QObject + + + Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). + Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). + + + + The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. + The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. + + + + Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. + Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. + + + + Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. + Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. + + + + Cannot edit results of query other than %1. + Cannot edit results of query other than %1. + + + + Cannot edit columns that are result of aggregated %1 statements. + Cannot edit columns that are result of aggregated %1 statements. + + + + Cannot edit columns that are result of %1 statement. + Cannot edit columns that are result of %1 statement. + + + + Cannot edit columns that are result of common table expression statement (%1). + Cannot edit columns that are result of common table expression statement (%1). + + + + Cannot edit table generated columns. + Cannot edit table generated columns. + + + + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). + + + + + + + on conflict: %1 + data view tooltip + on conflict: %1 + + + + references table %1, column %2 + data view tooltip + references table %1, column %2 + + + + condition: %1 + data view tooltip + condition: %1 + + + + collation name: %1 + data view tooltip + collation name: %1 + + + + Data grid view + Data grid view + + + + Edit current cell inline + Edit current cell inline + + + + Copy cell(s) contents to clipboard + Copy cell(s) contents to clipboard + + + + Copy cell(s) contents together with header to clipboard + Copy cell(s) contents together with header to clipboard + + + + Paste cell(s) contents from clipboard + Paste cell(s) contents from clipboard + + + + Set empty value to selected cell(s) + Set empty value to selected cell(s) + + + + Set NULL value to selected cell(s) + Set NULL value to selected cell(s) + + + + Commit changes to cell(s) contents + Commit changes to cell(s) contents + + + + Rollback changes to cell(s) contents + Rollback changes to cell(s) contents + + + + Delete selected data row + Delete selected data row + + + + Insert new data row + Insert new data row + + + + Open contents of selected cell in a separate editor + Open contents of selected cell in a separate editor + + + + Toggle the height adjustment of rows + Toggle the height adjustment of rows + + + + Increase font size + data view + Increase font size + + + + Decrease font size + data view + Decrease font size + + + + Total pages available: %1 + Total pages available: %1 + + + + Total rows loaded: %1 + Total rows loaded: %1 + + + + Data view (both grid and form) + Data view (both grid and form) + + + + Refresh data + Refresh data + + + + Switch to grid view of the data + Switch to grid view of the data + + + + Switch to form view of the data + Switch to form view of the data + + + + Database list + Database list + + + + Delete selected item + Delete selected item + + + + Clear filter contents + Clear filter contents + + + + Refresh schema + Refresh schema + + + + Refresh all schemas + Refresh all schemas + + + + Add database + Add database + + + + Select all items + Select all items + + + + Copy selected item(s) + Copy selected item(s) + + + + + + Paste from clipboard + Paste from clipboard + + + + Increase font size + database list + Increase font size + + + + Decrease font size + database list + Decrease font size + + + + Tables + Tables + + + + Indexes + Indexes + + + + Triggers + Triggers + + + + Views + Views + + + + Columns + Columns + + + + Data form view + Data form view + + + + Commit changes for current row + Commit changes for current row + + + + Rollback changes for current row + Rollback changes for current row + + + + Go to first row on current page + Go to first row on current page + + + + Go to next row + Go to next row + + + + Go to previous row + Go to previous row + + + + Go to last row on current page + Go to last row on current page + + + + Insert new row + Insert new row + + + + Delete current row + Delete current row + + + + Main window + Main window + + + + Open SQL editor + Open SQL editor + + + + Open DDL history window + Open DDL history window + + + + Open snippets editor window + Open snippets editor window + + + + Open function editor window + Open function editor window + + + + Open collation editor window + Open collation editor window + + + + Open extension manager window + Open extension manager window + + + + Previous window + Previous window + + + + Next window + Next window + + + + Hide status area + Hide status area + + + + Open user manual + Open user manual + + + + Open configuration dialog + Open configuration dialog + + + + Open Debug Console + Open Debug Console + + + + Open CSS Console + Open CSS Console + + + + Open the About dialog + Open the About dialog + + + + Quit the application + Quit the application + + + + Cell text value editor + Cell text value editor + + + + + Cut selected text + Cut selected text + + + + + Copy selected text + Copy selected text + + + + + Delete selected text + Delete selected text + + + + + Undo + Undo + + + + + Redo + Redo + + + + SQL editor input field + SQL editor input field + + + + Select whole editor contents + Select whole editor contents + + + + Save contents into a file + Save contents into a file + + + + Load contents from a file + Load contents from a file + + + + Find in text + Find in text + + + + Find next + Find next + + + + Find previous + Find previous + + + + Replace in text + Replace in text + + + + Delete current line + Delete current line + + + + Request code assistant + Request code assistant + + + + Format contents + Format contents + + + + Move selected block of text one line down + Move selected block of text one line down + + + + Move selected block of text one line up + Move selected block of text one line up + + + + Copy selected block of text and paste it a line below + Copy selected block of text and paste it a line below + + + + Copy selected block of text and paste it a line above + Copy selected block of text and paste it a line above + + + + Toggle comment + Toggle comment + + + + Increase font size + sql editor + Increase font size + + + + Decrease font size + sql editor + Decrease font size + + + + All SQLite databases + All SQLite databases + + + + All files + All files + + + + Select database file + Select database file + + + + Select + Select + + + + File type + File type + + + + SQL editor window + SQL editor window + + + + Execute query + Execute query + + + + Execute single query under cursor + Execute single query under cursor + + + + Execute all queries in editor + Execute all queries in editor + + + + Execute "%1" query + Execute "%1" query + + + + Switch current working database to previous on the list + Switch current working database to previous on the list + + + + Switch current working database to next on the list + Switch current working database to next on the list + + + + Go to next editor tab + Go to next editor tab + + + + Go to previous editor tab + Go to previous editor tab + + + + Move keyboard input focus to the results view below + Move keyboard input focus to the results view below + + + + Move keyboard input focus to the SQL editor above + Move keyboard input focus to the SQL editor above + + + + Delete selected SQL history entries + Delete selected SQL history entries + + + + Table window + Table window + + + + Commit the table structure + Commit the table structure + + + + Rollback pending changes in the table structure + Rollback pending changes in the table structure + + + + Refresh table structure + Refresh table structure + + + + Add new column + Add new column + + + + Edit selected column + Edit selected column + + + + Delete selected column + Delete selected column + + + + Export table data + Export table data + + + + Import data to the table + Import data to the table + + + + Add new table constraint + Add new table constraint + + + + Edit selected table constraint + Edit selected table constraint + + + + Delete selected table constraint + Delete selected table constraint + + + + Refresh table index list + Refresh table index list + + + + Add new index + Add new index + + + + Edit selected index + Edit selected index + + + + Delete selected index + Delete selected index + + + + Refresh table trigger list + Refresh table trigger list + + + + + Add new trigger + Add new trigger + + + + + Edit selected trigger + Edit selected trigger + + + + + Delete selected trigger + Delete selected trigger + + + + + Go to next tab + Go to next tab + + + + + Go to previous tab + Go to previous tab + + + + A view window + A view window + + + + Commit the view's query + Commit the view's query + + + + Rollback pending changes in the view's query + Rollback pending changes in the view's query + + + + Refresh view trigger list + Refresh view trigger list + + + + Execute the view's query + Execute the view's query + + + + A code snippets editor window + A code snippets editor window + + + + + + + Commit the pending changes + Commit the pending changes + + + + + + + Rollback the pending changes + Rollback the pending changes + + + + A collation editor window + A collation editor window + + + + A function editor window + A function editor window + + + + A SQLite extension editor window + A SQLite extension editor window + + + + QuitConfirmDialog + + + Uncommitted changes + Uncommitted changes + + + + Are you sure you want to quit the application? + +Following items are pending: + Are you sure you want to quit the application? + +Following items are pending: + + + + SearchTextDialog + + + Find or replace + Find or replace + + + + Find: + Find: + + + + Case sensitive + Case sensitive + + + + Search backwards + Search backwards + + + + Regular expression matching + Regular expression matching + + + + Replace && +find next + Replace && +find next + + + + Replace with: + Replace with: + + + + Replace all + Replace all + + + + Find + Find + + + + SortDialog + + + Sort by columns + Sort by columns + + + + + Column + Column + + + + + Order + Order + + + + Sort by: %1 + Sort by: %1 + + + + Move column up + Move column up + + + + Move column down + Move column down + + + + SqlEditor + + + Wrap words + sql editor + Wrap words + + + + Cut + sql editor + Cut + + + + Copy + sql editor + Copy + + + + Paste + sql editor + Paste + + + + Delete + sql editor + Delete + + + + Select all + sql editor + Select all + + + + Undo + sql editor + Undo + + + + Redo + sql editor + Redo + + + + Complete + sql editor + Complete + + + + Format SQL + sql editor + Format SQL + + + + Save SQL to file + sql editor + Save SQL to file + + + + Select file to save SQL + sql editor + Select file to save SQL + + + + Load SQL from file + sql editor + Load SQL from file + + + + Delete line + sql editor + Delete line + + + + Move block down + sql editor + Move block down + + + + Move block up + sql editor + Move block up + + + + Copy block down + sql editor + Copy block down + + + + Copy up down + sql editor + Copy up down + + + + Find + sql editor + Find + + + + Find next + sql editor + Find next + + + + Find previous + sql editor + Find previous + + + + Replace + sql editor + Replace + + + + Toggle comment + sql editor + Toggle comment + + + + Increase font size + sql editor + Increase font size + + + + Decrease font size + sql editor + Decrease font size + + + + Could not open file '%1' for writing: %2 + Could not open file '%1' for writing: %2 + + + + Saved SQL contents to file: %1 + Saved SQL contents to file: %1 + + + + Syntax completion can be used only when a valid database is set for the SQL editor. + Syntax completion can be used only when a valid database is set for the SQL editor. + + + + Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. + Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. + + + + Save to file + Save to file + + + + SQL scripts (*.sql);;All files (*) + SQL scripts (*.sql);;All files (*) + + + + Open file + Open file + + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Reached the end of document. Hit the find again to restart the search. + Reached the end of document. Hit the find again to restart the search. + + + + SqlQueryItem + + + Committing error: + data view tooltip + Committing error: + + + + Column: + data view tooltip + Column: + + + + Data type: + data view + Data type: + + + + Table: + data view tooltip + Table: + + + + Constraints: + data view tooltip + Constraints: + + + + SqlQueryItemDelegate + + + + + + Cannot edit this cell. Details: %1 + Cannot edit this cell. Details: %1 + + + + The row is marked for deletion. + The row is marked for deletion. + + + + + Structure of this table has changed since last data was loaded. Reload the data to proceed. + Structure of this table has changed since last data was loaded. Reload the data to proceed. + + + + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). + + + + Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. + Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. + + + + SqlQueryModel + + + + Only one query can be executed simultaneously. + Only one query can be executed simultaneously. + + + + Cannot execute query on undefined or invalid database. + Cannot execute query on undefined or invalid database. + + + + Cannot execute empty query. + Cannot execute empty query. + + + + Uncommitted data + Uncommitted data + + + + There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. + There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. + + + + Cannot commit the data for a cell that refers to the already closed database. + Cannot commit the data for a cell that refers to the already closed database. + + + + Could not begin transaction on the database. Details: %1 + Could not begin transaction on the database. Details: %1 + + + + An error occurred while committing the transaction: %1 + An error occurred while committing the transaction: %1 + + + + An error occurred while rolling back the transaction: %1 + An error occurred while rolling back the transaction: %1 + + + + Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. + Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. + + + + An error occurred while committing the data: %1 + An error occurred while committing the data: %1 + + + + Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. + Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. + + + + + Error while executing SQL query on database '%1': %2 + Error while executing SQL query on database '%1': %2 + + + + Error while loading query results: %1 + Error while loading query results: %1 + + + + Insert multiple rows + Insert multiple rows + + + + Number of rows to insert: + Number of rows to insert: + + + + Delete rows + Delete rows + + + + You're about to delete newly inserted rows that are not committed yet. Row numbers: %1 +Such deletion will be permanent. Are you sure you want to delete them? + You're about to delete newly inserted rows that are not committed yet. Row numbers: %1 +Such deletion will be permanent. Are you sure you want to delete them? + + + + SqlQueryView + + + Go to referenced row in... + Go to referenced row in... + + + + Copy + Copy + + + + Copy with headers + Copy with headers + + + + Copy as... + Copy as... + + + + Paste + Paste + + + + Paste as... + Paste as... + + + + Set NULL values + Set NULL values + + + + Erase values + Erase values + + + + Commit + Commit + + + + Rollback + Rollback + + + + Commit selected cells + Commit selected cells + + + + Rollback selected cells + Rollback selected cells + + + + Edit current cell inline + Edit current cell inline + + + + Define columns to sort by + Define columns to sort by + + + + Remove custom sorting + Remove custom sorting + + + + Insert row + Insert row + + + + Insert multiple rows + Insert multiple rows + + + + Delete selected row + Delete selected row + + + + Adjust height of rows + Adjust height of rows + + + + Increase font size + data view + Increase font size + + + + Decrease font size + data view + Decrease font size + + + + Invert selection + data view + Invert selection + + + + Edit value in editor + Edit value in editor + + + + Show value in a viewer + Show value in a viewer + + + + Generate query for selected cells + Generate query for selected cells + + + + No items selected to paste clipboard contents to. + No items selected to paste clipboard contents to. + + + + Cannot paste data. Details: %1 + Cannot paste data. Details: %1 + + + + Structure of at least one table used has changed since last data was loaded. Reload the data to proceed. + Structure of at least one table used has changed since last data was loaded. Reload the data to proceed. + + + + Cannot paste to a cell. Details: %1 + Cannot paste to a cell. Details: %1 + + + + The row is marked for deletion. + The row is marked for deletion. + + + + Cannot paste to column %1. Details: %2 + Cannot paste to column %1. Details: %2 + + + + Go to referenced row in table '%1' + Go to referenced row in table '%1' + + + + table '%1' + table '%1' + + + + Referenced row (%1) + Referenced row (%1) + + + + Trim pasted text? + Trim pasted text? + + + + The pasted text contains leading or trailing white space. Trim it automatically? + The pasted text contains leading or trailing white space. Trim it automatically? + + + + Paste "NULL" as null value? + Paste "NULL" as null value? + + + + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + + + + Edit value + Edit value + + + + SqlTableModel + + + Error while committing new row: %1 + Error while committing new row: %1 + + + + Error while deleting row from table %1: %2 + Error while deleting row from table %1: %2 + + + + SqliteExtensionEditor + + + Filter extensions + Filter extensions + + + + Leave empty to use default function + Leave empty to use default function + + + + Extension file + Extension file + + + + Initialization function + Initialization function + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Extension manager window has uncommitted modifications. + Extension manager window has uncommitted modifications. + + + + Extension manager + Extension manager + + + + Commit all extension changes + Commit all extension changes + + + + Rollback all extension changes + Rollback all extension changes + + + + Add new extension + Add new extension + + + + Remove selected extension + Remove selected extension + + + + Editing extensions manual + Editing extensions manual + + + + File with given path does not exist or is not readable. + File with given path does not exist or is not readable. + + + + Unable to load extension: %1 + Unable to load extension: %1 + + + + Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. + Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. + + + + Dynamic link libraries (*.dll);;All files (*) + Dynamic link libraries (*.dll);;All files (*) + + + + Shared objects (*.so);;All files (*) + Shared objects (*.so);;All files (*) + + + + Dynamic libraries (*.dylib);;All files (*) + Dynamic libraries (*.dylib);;All files (*) + + + + All files (*) + All files (*) + + + + Open file + Open file + + + + StatusField + + + Status + Status + + + + Copy + Copy + + + + Clear + Clear + + + + TableConstraintsModel + + + Type + table constraints + Type + + + + Details + table constraints + Details + + + + Name + table constraints + Name + + + + TableForeignKeyPanel + + + Foreign table: + Foreign table: + + + + Columns + Columns + + + + Local column + Local column + + + + Foreign column + Foreign column + + + + Reactions + Reactions + + + + Deferred foreign key + Deferred foreign key + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + Pick the foreign column. + Pick the foreign column. + + + + Pick the foreign table. + Pick the foreign table. + + + + Select at least one foreign column. + Select at least one foreign column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + Foreign column + table constraints + Foreign column + + + + TablePrimaryKeyAndUniquePanel + + + Columns + Columns + + + + Column + Column + + + + Collation + Collation + + + + Sort + Sort + + + + Valid only for a single column with INTEGER data type + Valid only for a single column with INTEGER data type + + + + Autoincrement + Autoincrement + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + On conflict + On conflict + + + + Collate + table constraints + Collate + + + + Sort order + table constraints + Sort order + + + + Select at least one column. + Select at least one column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + TableStructureModel + + + Name + table structure columns + Name + + + + Data type + table structure columns + Data type + + + + Primary +Key + table structure columns + Primary +Key + + + + Foreign +Key + table structure columns + Foreign +Key + + + + Unique + table structure columns + Unique + + + + Check + table structure columns + Check + + + + Not +NULL + table structure columns + Not +NULL + + + + Collate + table structure columns + Collate + + + + Generated + table structure columns + Generated + + + + Default value + table structure columns + Default value + + + + TableWindow + + + Structure + Structure + + + + Table name: + Table name: + + + + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + + + + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + + + + + Data + Data + + + + Constraints + Constraints + + + + Indexes + Indexes + + + + Triggers + Triggers + + + + DDL + DDL + + + + Export table + table window + Export table + + + + Import data to table + table window + Import data to table + + + + Populate table + table window + Populate table + + + + Refresh structure + table window + Refresh structure + + + + Commit structure changes + table window + Commit structure changes + + + + Rollback structure changes + table window + Rollback structure changes + + + + Add column + table window + Add column + + + + Edit column + table window + Edit column + + + + + Delete column + table window + Delete column + + + + Move column up + table window + Move column up + + + + Move column down + table window + Move column down + + + + Create similar table + table window + Create similar table + + + + Reset autoincrement value + table window + Reset autoincrement value + + + + Add table constraint + table window + Add table constraint + + + + Edit table constraint + table window + Edit table constraint + + + + Delete table constraint + table window + Delete table constraint + + + + Move table constraint up + table window + Move table constraint up + + + + Move table constraint down + table window + Move table constraint down + + + + Add table primary key + table window + Add table primary key + + + + Add table foreign key + table window + Add table foreign key + + + + Add table unique constraint + table window + Add table unique constraint + + + + Add table check constraint + table window + Add table check constraint + + + + Refresh index list + table window + Refresh index list + + + + + Create index + table window + Create index + + + + Edit index + table window + Edit index + + + + Delete index + table window + Delete index + + + + Refresh trigger list + table window + Refresh trigger list + + + + + Create trigger + table window + Create trigger + + + + Edit trigger + table window + Edit trigger + + + + Delete trigger + table window + Delete trigger + + + + Are you sure you want to delete column '%1'? + table window + Are you sure you want to delete column '%1'? + + + + Following problems will take place while modifying the table. +Would you like to proceed? + table window + Following problems will take place while modifying the table. +Would you like to proceed? + + + + Table modification + table window + Table modification + + + + Could not load data for table %1. Error details: %2 + Could not load data for table %1. Error details: %2 + + + + Could not process the %1 table correctly. Unable to open a table window. + Could not process the %1 table correctly. Unable to open a table window. + + + + Database + Database + + + + Could not restore window %1, because no database or table was stored in session for this window. + Could not restore window %1, because no database or table was stored in session for this window. + + + + Could not restore window '%1', because no database or table was stored in session for this window. + Could not restore window '%1', because no database or table was stored in session for this window. + + + + Could not restore window '%1', because database %2 could not be resolved. + Could not restore window '%1', because database %2 could not be resolved. + + + + Could not restore window '%1', because the table %2 doesn't exist in the database %3. + Could not restore window '%1', because the table %2 doesn't exist in the database %3. + + + + + New table %1 + New table %1 + + + + Committed changes for table '%1' successfully. + Committed changes for table '%1' successfully. + + + + Committed changes for table '%1' (named before '%2') successfully. + Committed changes for table '%1' (named before '%2') successfully. + + + + Could not commit table structure. Error message: %1 + table window + Could not commit table structure. Error message: %1 + + + + Reset autoincrement + Reset autoincrement + + + + Are you sure you want to reset autoincrement value for table '%1'? + Are you sure you want to reset autoincrement value for table '%1'? + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + An error occurred while trying to reset autoincrement value for table '%1': %2 + + + + Autoincrement value for table '%1' has been reset successfully. + Autoincrement value for table '%1' has been reset successfully. + + + + Empty name + Empty name + + + + A blank name for the table is allowed in SQLite, but it is not recommended. +Are you sure you want to create a table with blank name? + A blank name for the table is allowed in SQLite, but it is not recommended. +Are you sure you want to create a table with blank name? + + + + Cannot create a table without at least one column. + Cannot create a table without at least one column. + + + + Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. + Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. + + + + Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. + Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. + + + + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 + + + + Are you sure you want to delete table constraint '%1'? + table window + Are you sure you want to delete table constraint '%1'? + + + + Delete constraint + table window + Delete constraint + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + Uncommitted changes + Uncommitted changes + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + + + + Go back to structure tab + Go back to structure tab + + + + Commit modifications and browse data. + Commit modifications and browse data. + + + + Name + table window indexes + Name + + + + Unique + table window indexes + Unique + + + + Columns + table window indexes + Columns + + + + Partial index condition + table window indexes + Partial index condition + + + + Name + table window triggers + Name + + + + Event + table window triggers + Event + + + + Condition + table window triggers + Condition + + + + Details + table window triggers + Details + + + + Table window "%1" has uncommitted structure modifications and data. + Table window "%1" has uncommitted structure modifications and data. + + + + Table window "%1" has uncommitted data. + Table window "%1" has uncommitted data. + + + + Table window "%1" has uncommitted structure modifications. + Table window "%1" has uncommitted structure modifications. + + + + TriggerColumnsDialog + + + Trigger columns + Trigger columns + + + + Triggering columns: + Triggering columns: + + + + Select all + Select all + + + + Deselect all + Deselect all + + + + TriggerDialog + + + + Trigger + Trigger + + + + On table: + On table: + + + + Action: + Action: + + + + + <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> + <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> + + + + Pre-condition: + Pre-condition: + + + + The scope is still not fully supported by the SQLite database. + The scope is still not fully supported by the SQLite database. + + + + Trigger name: + Trigger name: + + + + When: + When: + + + + List of columns for UPDATE OF action. + List of columns for UPDATE OF action. + + + + Scope: + Scope: + + + + Code: + Code: + + + + Trigger statements to be executed. + Trigger statements to be executed. + + + + DDL + DDL + + + + On view: + On view: + + + + Could not process trigger %1 correctly. Unable to open a trigger dialog. + Could not process trigger %1 correctly. Unable to open a trigger dialog. + + + + Enter a valid condition. + Enter a valid condition. + + + + Enter a valid trigger code. + Enter a valid trigger code. + + + + Error + trigger dialog + Error + + + + An error occurred while executing SQL statements: +%1 + An error occurred while executing SQL statements: +%1 + + + + VersionConvertSummaryDialog + + + Database version convert + Database version convert + + + + Following changes to the SQL statements will be made: + Following changes to the SQL statements will be made: + + + + Before + Before + + + + After + After + + + + ViewWindow + + + Query + Query + + + + View name: + View name: + + + + Output column names + Output column names + + + + + Data + Data + + + + Triggers + Triggers + + + + DDL + DDL + + + + + Could not restore window '%1', because no database or view was stored in session for this window. + Could not restore window '%1', because no database or view was stored in session for this window. + + + + Could not restore window '%1', because database %2 could not be resolved. + Could not restore window '%1', because database %2 could not be resolved. + + + + Could not restore window '%1', because database %2 could not be open. + Could not restore window '%1', because database %2 could not be open. + + + + Could not restore window '%1', because the view %2 doesn't exist in the database %3. + Could not restore window '%1', because the view %2 doesn't exist in the database %3. + + + + + New view %1 + New view %1 + + + + Database + Database + + + + Refresh the view + view window + Refresh the view + + + + Commit the view changes + view window + Commit the view changes + + + + Rollback the view changes + view window + Rollback the view changes + + + + Explicit column names + Explicit column names + + + + Generate output column names automatically basing on result columns of the view. + Generate output column names automatically basing on result columns of the view. + + + + Add column + view window + Add column + + + + Edit column + view window + Edit column + + + + Delete column + view window + Delete column + + + + Move column up + view window + Move column up + + + + Move column down + view window + Move column down + + + + Refresh trigger list + view window + Refresh trigger list + + + + Create new trigger + view window + Create new trigger + + + + Edit selected trigger + view window + Edit selected trigger + + + + Delete selected trigger + view window + Delete selected trigger + + + + View window "%1" has uncommitted structure modifications and data. + View window "%1" has uncommitted structure modifications and data. + + + + View window "%1" has uncommitted data. + View window "%1" has uncommitted data. + + + + View window "%1" has uncommitted structure modifications. + View window "%1" has uncommitted structure modifications. + + + + Could not load data for view %1. Error details: %2 + Could not load data for view %1. Error details: %2 + + + + Uncommitted changes + Uncommitted changes + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + + + + Go back to structure tab + Go back to structure tab + + + + Commit modifications and browse data. + Commit modifications and browse data. + + + + View '%1' was committed successfully. + View '%1' was committed successfully. + + + + Committed changes for view '%1' successfully. + Committed changes for view '%1' successfully. + + + + Committed changes for view '%1' (named before '%2') successfully. + Committed changes for view '%1' (named before '%2') successfully. + + + + Could not commit view changes. Error message: %1 + view window + Could not commit view changes. Error message: %1 + + + + Override columns + Override columns + + + + Currently defined columns will be overriden. Do you want to continue? + Currently defined columns will be overriden. Do you want to continue? + + + + Could not determinate columns returned from the view. The query is problably incomplete or contains errors. + Could not determinate columns returned from the view. The query is problably incomplete or contains errors. + + + + Name + view window triggers + Name + + + + Instead of + view window triggers + Instead of + + + + Condition + view window triggers + Condition + + + + Details + table window triggers + Details + + + + Could not process the %1 view correctly. Unable to open a view window. + Could not process the %1 view correctly. Unable to open a view window. + + + + Empty name + Empty name + + + + A blank name for the view is allowed in SQLite, but it is not recommended. +Are you sure you want to create a view with blank name? + A blank name for the view is allowed in SQLite, but it is not recommended. +Are you sure you want to create a view with blank name? + + + + The SELECT statement could not be parsed. Please correct the query and retry. +Details: %1 + The SELECT statement could not be parsed. Please correct the query and retry. +Details: %1 + + + + The view could not be modified due to internal SQLiteStudio error. Please report this! + The view could not be modified due to internal SQLiteStudio error. Please report this! + + + + The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. + The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. + + + + Following problems will take place while modifying the view. +Would you like to proceed? + view window + Following problems will take place while modifying the view. +Would you like to proceed? + + + + View modification + view window + View modification + + + + WidgetCover + + + Interrupt + Interrupt + + + diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_vi_VN.ts b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_vi_VN.ts new file mode 100644 index 0000000..d703c75 --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_vi_VN.ts @@ -0,0 +1,7111 @@ + + + + + AboutDialog + + + About SQLiteStudio and licenses + About SQLiteStudio and licenses + + + + About + About + + + + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + + + + Licenses + Licenses + + + + Environment + Environment + + + + Icon directories + Icon directories + + + + Form directories + Form directories + + + + SQLite extension directories + SQLite extension directories + + + + Plugin directories + Plugin directories + + + + Configuration directory + Configuration directory + + + + Application directory + Application directory + + + + Qt version: + Qt version: + + + + SQLite 3 version: + SQLite 3 version: + + + + Portable distribution. + Portable distribution. + + + + MacOS X application bundle distribution. + MacOS X application bundle distribution. + + + + Operating system managed distribution. + Operating system managed distribution. + + + + <h3>Table of contents:</h3><ol>%2</ol> + <h3>Table of contents:</h3><ol>%2</ol> + + + + BindParamsDialog + + + Query parameters + Query parameters + + + + Please provide values for query parameters + Please provide values for query parameters + + + + CodeSnippetEditor + + + Filter snippets + Filter snippets + + + + + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + + + + + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + + + + Snippet name + Snippet name + + + + Code assistant shortcut + Code assistant shortcut + + + + Snippet code + Snippet code + + + + Code Snippets editor window has uncommitted modifications. + Code Snippets editor window has uncommitted modifications. + + + + Code Snippets editor + Code Snippets editor + + + + Commit all snippet changes + Commit all snippet changes + + + + Rollback all snippet changes + Rollback all snippet changes + + + + Create new snippet + Create new snippet + + + + Delete selected snippet + Delete selected snippet + + + + Move the snippet up + Move the snippet up + + + + Move the snippet down + Move the snippet down + + + + Code snippets manual + Code snippets manual + + + + Enter a non-empty, unique name of the snippet. + Enter a non-empty, unique name of the snippet. + + + + Enter a non-empty snippet content. + Enter a non-empty snippet content. + + + + This hotkey is not unique in context of a code assistant. + This hotkey is not unique in context of a code assistant. + + + + CollationsEditor + + + Filter collations + Filter collations + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Implementation code: + Implementation code: + + + + Collation name: + Collation name: + + + + Implementation language: + Implementation language: + + + + Collations editor + Collations editor + + + + Commit all collation changes + Commit all collation changes + + + + Rollback all collation changes + Rollback all collation changes + + + + Create new collation + Create new collation + + + + Delete selected collation + Delete selected collation + + + + Editing collations manual + Editing collations manual + + + + Enter a non-empty, unique name of the collation. + Enter a non-empty, unique name of the collation. + + + + Pick the implementation language. + Pick the implementation language. + + + + Enter a non-empty implementation code. + Enter a non-empty implementation code. + + + + Collations editor window has uncommitted modifications. + Collations editor window has uncommitted modifications. + + + + ColorButton + + + Pick a color + Pick a color + + + + ColumnCollatePanel + + + Collation name: + Collation name: + + + + Named constraint: + Named constraint: + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + Enter a collation name. + Enter a collation name. + + + + ColumnDefaultPanel + + + Default value: + Default value: + + + + Named constraint: + Named constraint: + + + + Enter a default value expression. + Enter a default value expression. + + + + Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. + Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. + + + + Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. + Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ColumnDialog + + + Column + Column + + + + Name and type + Name and type + + + + Scale + Scale + + + + Precision + Precision + + + + Data type: + Data type: + + + + Column name: + Column name: + + + + Size: + Size: + + + + Constraints + Constraints + + + + Generated value + Generated value + + + + Unique + Unique + + + + + + + + + + + Configure + Configure + + + + Foreign Key + Foreign Key + + + + Collate + Collate + + + + Not NULL + Not NULL + + + + Check condition + Check condition + + + + Primary Key + Primary Key + + + + Default + Default + + + + Advanced mode + Advanced mode + + + + Add constraint + column dialog + Add constraint + + + + Edit constraint + column dialog + Edit constraint + + + + + Delete constraint + column dialog + Delete constraint + + + + Move constraint up + column dialog + Move constraint up + + + + Move constraint down + column dialog + Move constraint down + + + + Add a primary key + column dialog + Add a primary key + + + + Add a foreign key + column dialog + Add a foreign key + + + + Add an unique constraint + column dialog + Add an unique constraint + + + + Add a check constraint + column dialog + Add a check constraint + + + + Add a not null constraint + column dialog + Add a not null constraint + + + + Add a collate constraint + column dialog + Add a collate constraint + + + + Add a generated value constraint + column dialog + Add a generated value constraint + + + + Add a default constraint + column dialog + Add a default constraint + + + + Are you sure you want to delete constraint '%1'? + column dialog + Are you sure you want to delete constraint '%1'? + + + + Correct the constraint's configuration. + Correct the constraint's configuration. + + + + Scale is not allowed for INTEGER PRIMARY KEY columns. + Scale is not allowed for INTEGER PRIMARY KEY columns. + + + + Precision cannot be defined without the scale. + Precision cannot be defined without the scale. + + + + Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. + Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. + + + + INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. + INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. + + + + Precision is not allowed for INTEGER PRIMARY KEY columns. + Precision is not allowed for INTEGER PRIMARY KEY columns. + + + + Could not match valid STRICT table datatype from declared type: %1. + Could not match valid STRICT table datatype from declared type: %1. + + + + ColumnDialogConstraintsModel + + + Type + column dialog constraints + Type + + + + Name + column dialog constraints + Name + + + + Details + column dialog constraints + Details + + + + ColumnForeignKeyPanel + + + Foreign table: + Foreign table: + + + + Foreign column: + Foreign column: + + + + Reactions + Reactions + + + + Deferred foreign key + Deferred foreign key + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + Pick the foreign table. + Pick the foreign table. + + + + Pick the foreign column. + Pick the foreign column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ColumnGeneratedPanel + + + Generating code: + Generating code: + + + + Explicit type: + Explicit type: + + + + Use "GENERATED ALWAYS" keywords + Use "GENERATED ALWAYS" keywords + + + + Named constraint: + Named constraint: + + + + Enter the column value generating expression. + Enter the column value generating expression. + + + + Invalid value generating expression: %1. + Invalid value generating expression: %1. + + + + Invalid value generating expression. + Invalid value generating expression. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ColumnPrimaryKeyPanel + + + Autoincrement + Autoincrement + + + + Sort order: + Sort order: + + + + Named constraint: + Named constraint: + + + + On conflict: + On conflict: + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + Descending order is not allowed with AUTOINCREMENT. + Descending order is not allowed with AUTOINCREMENT. + + + + ColumnUniqueAndNotNullPanel + + + Named constraint: + Named constraint: + + + + On conflict: + On conflict: + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + CompleterWindow + + + Column: %1 + completer statusbar + Column: %1 + + + + Table: %1 + completer statusbar + Table: %1 + + + + Index: %1 + completer statusbar + Index: %1 + + + + Trigger: %1 + completer statusbar + Trigger: %1 + + + + View: %1 + completer statusbar + View: %1 + + + + Database: %1 + completer statusbar + Database: %1 + + + + Keyword: %1 + completer statusbar + Keyword: %1 + + + + Function: %1 + completer statusbar + Function: %1 + + + + Operator: %1 + completer statusbar + Operator: %1 + + + + String + completer statusbar + String + + + + Number + completer statusbar + Number + + + + Binary data + completer statusbar + Binary data + + + + Collation: %1 + completer statusbar + Collation: %1 + + + + Pragma function: %1 + completer statusbar + Pragma function: %1 + + + + Insert a code snippet + Insert a code snippet + + + + ConfigDialog + + + + Configuration + Configuration + + + + Search + Search + + + + General + General + + + + Keyboard shortcuts + Keyboard shortcuts + + + + Look & feel + Look & feel + + + + Style + Style + + + + Fonts + Fonts + + + + Code colors + Code colors + + + + + Database list + Database list + + + + Code assistant + Code assistant + + + + Data browsing + Data browsing + + + + Data editors + Data editors + + + + Plugins + Plugins + + + + Code formatters + Code formatters + + + + If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. + If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. + + + + Sort table columns alphabetically + Sort table columns alphabetically + + + + Expand tables node when connected to a database + Expand tables node when connected to a database + + + + <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> + <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> + + + + Display additional labels on the list + Display additional labels on the list + + + + For regular tables labels will show number of columns, indexes and triggers for each of tables. + For regular tables labels will show number of columns, indexes and triggers for each of tables. + + + + Display labels for regular tables + Display labels for regular tables + + + + Virtual tables will be marked with a 'virtual' label. + Virtual tables will be marked with a 'virtual' label. + + + + Display labels for virtual tables + Display labels for virtual tables + + + + Expand views node when connected to a database + Expand views node when connected to a database + + + + If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) + If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) + + + + Sort objects (tables, indexes, triggers and views) alphabetically + Sort objects (tables, indexes, triggers and views) alphabetically + + + + Display system tables and indexes on the list + Display system tables and indexes on the list + + + + Database dialog window + Database dialog window + + + + <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> + <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> + + + + Do not mark database to be "permanent" by default + Do not mark database to be "permanent" by default + + + + <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> + <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> + + + + Try to bypass dialog completly when dropping database file onto the list + Try to bypass dialog completly when dropping database file onto the list + + + + Data browsing and editing + Data browsing and editing + + + + + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + + + + Number of memorized table populating configurations + Number of memorized table populating configurations + + + + Data column width + Data column width + + + + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + + + + Enlarge column when entering value longer than current width + Enlarge column when entering value longer than current width + + + + <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> + <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> + + + + Number of data rows per page: + Number of data rows per page: + + + + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> + + + + Show column and row details tooltip in data view + Show column and row details tooltip in data view + + + + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + + + + Keep NULL value when entering empty value + Keep NULL value when entering empty value + + + + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> + + + + Use DEFAULT value (if defined), when committing NULL value + Use DEFAULT value (if defined), when committing NULL value + + + + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + + + + Limit number of rows for in case of dozens of columns + Limit number of rows for in case of dozens of columns + + + + Inserting new row in data grid + Inserting new row in data grid + + + + Before currently selected row + Before currently selected row + + + + After currently selected row + After currently selected row + + + + At the end of data view + At the end of data view + + + + Table windows + Table windows + + + + <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> + <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> + + + + Open Table Windows with the data tab for start + Open Table Windows with the data tab for start + + + + <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> + <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> + + + + Place data tab as first tab in a Table Window + Place data tab as first tab in a Table Window + + + + View windows + View windows + + + + <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> + <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> + + + + Open View Windows with the data tab for start + Open View Windows with the data tab for start + + + + <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> + <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> + + + + Place data tab as first tab in a View Window + Place data tab as first tab in a View Window + + + + Data types + Data types + + + + Available editors: + Available editors: + + + + Editors selected for this data type: + Editors selected for this data type: + + + + Schema editing + Schema editing + + + + Number of DDL changes kept in history. + Number of DDL changes kept in history. + + + + DDL history size: + DDL history size: + + + + Don't show DDL preview dialog when committing schema changes + Don't show DDL preview dialog when committing schema changes + + + + SQL queries + SQL queries + + + + + Number of queries kept in the history. + Number of queries kept in the history. + + + + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> + + + + History size: + History size: + + + + + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> + + + + Execute only the query under the cursor + Execute only the query under the cursor + + + + Number of memorized query parameters + Number of memorized query parameters + + + + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + + + + Use scientific notation for real numbers in the grid view + Use scientific notation for real numbers in the grid view + + + + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + + + + Limit automatic data column width to (in pixels): + Limit automatic data column width to (in pixels): + + + + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + + + + Keep at least the width to show complete column name + Keep at least the width to show complete column name + + + + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + + + + Wrap lines in SQL editor + Wrap lines in SQL editor + + + + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + + + + Highlight current query + Highlight current query + + + + Updates + Updates + + + + Automatically check for updates at startup + Automatically check for updates at startup + + + + Session + Session + + + + Restore last session (active MDI windows) after startup + Restore last session (active MDI windows) after startup + + + + Allow multiple instances of the application at the same time + Allow multiple instances of the application at the same time + + + + Status Field + Status Field + + + + <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> + <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> + + + + Always open Status panel when new message is printed + Always open Status panel when new message is printed + + + + Code syntax colors + Code syntax colors + + + + Keyword foreground + Keyword foreground + + + + Regular foreground + Regular foreground + + + + String foreground + String foreground + + + + Comment foreground + Comment foreground + + + + Valid objects foreground + Valid objects foreground + + + + Current query background + Current query background + + + + Bind parameter foreground + Bind parameter foreground + + + + Current line background + Current line background + + + + Matched parenthesis background + Matched parenthesis background + + + + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + + + + Number foreground + Number foreground + + + + BLOB value foreground + BLOB value foreground + + + + Matched parenthesis foreground + Matched parenthesis foreground + + + + Reset to defaults + Reset to defaults + + + + Filter shortcuts by name or key combination + Filter shortcuts by name or key combination + + + + Action + Action + + + + Key combination + Key combination + + + + + Language + Language + + + + Changing language requires application restart to take effect. + Changing language requires application restart to take effect. + + + + Compact layout + Compact layout + + + + <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> + <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> + + + + Use compact layout + Use compact layout + + + + Main window dock areas + Main window dock areas + + + + Left and right areas occupy corners + Left and right areas occupy corners + + + + Top and bottom areas occupy corners + Top and bottom areas occupy corners + + + + Hide built-in plugins + Hide built-in plugins + + + + Current style: + Current style: + + + + Preview + Preview + + + + Enabled + Enabled + + + + Disabled + Disabled + + + + Active formatter plugin + Active formatter plugin + + + + SQL editor font + SQL editor font + + + + Database list font + Database list font + + + + Database list additional label font + Database list additional label font + + + + Data view font + Data view font + + + + Status field font + Status field font + + + + Code assistant settings + Code assistant settings + + + + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + + + + Automatically trigger the assistant after a dot is typed after an object name + Automatically trigger the assistant after a dot is typed after an object name + + + + Description: + plugin details + Description: + + + + Category: + plugin details + Category: + + + + Version: + plugin details + Version: + + + + Author: + plugin details + Author: + + + + Internal name: + plugin details + Internal name: + + + + Dependencies: + plugin details + Dependencies: + + + + Conflicts: + plugin details + Conflicts: + + + + Plugin details + Plugin details + + + + Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. + Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. + + + + %1 (built-in) + plugins manager in configuration dialog + %1 (built-in) + + + + Details + Details + + + + No plugins in this category. + No plugins in this category. + + + + Add new data type + Add new data type + + + + Rename selected data type + Rename selected data type + + + + Delete selected data type + Delete selected data type + + + + Help for configuring data type editors + Help for configuring data type editors + + + + Clear hotkey for this action + Clear hotkey for this action + + + + Restore original hotkey for this action + Restore original hotkey for this action + + + + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + + + + ConstraintCheckPanel + + + The condition + The condition + + + + Named constraint: + Named constraint: + + + + On conflict + On conflict + + + + Enter a valid condition. + Enter a valid condition. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + ConstraintDialog + + + New constraint + constraint dialog + New constraint + + + + Create + constraint dialog + Create + + + + Edit constraint + dialog window + Edit constraint + + + + Apply + constraint dialog + Apply + + + + Primary key + table constraints + Primary key + + + + Foreign key + table constraints + Foreign key + + + + Unique + table constraints + Unique + + + + Not NULL + table constraints + Not NULL + + + + Check + table constraints + Check + + + + Generated + table constraints + Generated + + + + Collate + table constraints + Collate + + + + Default + table constraints + Default + + + + ConstraintTabModel + + + Table + table constraints + Table + + + + Column (%1) + table constraints + Column (%1) + + + + Scope + table constraints + Scope + + + + Type + table constraints + Type + + + + Details + table constraints + Details + + + + Name + table constraints + Name + + + + CssDebugDialog + + + SQLiteStudio CSS console + SQLiteStudio CSS console + + + + DataView + + + Filter data + data view + Filter data + + + + Grid view + Grid view + + + + Form view + Form view + + + + Refresh table data + data view + Refresh table data + + + + First page + data view + First page + + + + Previous page + data view + Previous page + + + + Next page + data view + Next page + + + + Last page + data view + Last page + + + + Commit changes for selected cells + data view + Commit changes for selected cells + + + + Rollback changes for selected cells + data view + Rollback changes for selected cells + + + + Show grid view of results + data view + Show grid view of results + + + + Show form view of results + data view + Show form view of results + + + + Filter by text (if contains) + data view + Filter by text (if contains) + + + + Filter strictly by text (if equals) + data view + Filter strictly by text (if equals) + + + + Tabs on top + data view + Tabs on top + + + + Tabs at bottom + data view + Tabs at bottom + + + + Place new rows above selected row + data view + Place new rows above selected row + + + + Place new rows below selected row + data view + Place new rows below selected row + + + + Place new rows at the end of the data view + data view + Place new rows at the end of the data view + + + + Total number of rows is being counted. +Browsing other pages will be possible after the row counting is done. + Total number of rows is being counted. +Browsing other pages will be possible after the row counting is done. + + + + Row: %1 + Row: %1 + + + + Filter + Filter + + + + Hit Enter key or press "Apply filter" button on toolbar to apply new value. + Hit Enter key or press "Apply filter" button on toolbar to apply new value. + + + + Filter by the Regular Expression + data view + Filter by the Regular Expression + + + + Filter by SQL expression + data view + Filter by SQL expression + + + + Show filter inputs per column + data view + Show filter inputs per column + + + + Apply filter + data view + Apply filter + + + + DbDialog + + + Database + Database + + + + Database type + Database type + + + + Database driver + Database driver + + + + + File + File + + + + Name (on the list) + Name (on the list) + + + + Options + Options + + + + <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> + aasfd + <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> + + + + Permanent (keep it in configuration) + Permanent (keep it in configuration) + + + + Test connection + Test connection + + + + Select new or existing file on local computer + Select new or existing file on local computer + + + + Browse + Browse + + + + Database type not selected. + Database type not selected. + + + + Database path not specified. + Database path not specified. + + + + Enter an unique database name. + Enter an unique database name. + + + + This name is already in use. Please enter unique name. + This name is already in use. Please enter unique name. + + + + <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> + <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> + + + + Enter a database file path. + Enter a database file path. + + + + This database is already on the list under name: %1 + This database is already on the list under name: %1 + + + + Select a database type. + Select a database type. + + + + DbObjectDialogs + + + Delete table + Delete table + + + + Are you sure you want to delete table %1? + Are you sure you want to delete table %1? + + + + Delete index + Delete index + + + + Are you sure you want to delete index %1? + Are you sure you want to delete index %1? + + + + Delete trigger + Delete trigger + + + + Are you sure you want to delete trigger %1? + Are you sure you want to delete trigger %1? + + + + Delete view + Delete view + + + + Are you sure you want to delete view %1? + Are you sure you want to delete view %1? + + + + + Error while dropping %1: %2 + Error while dropping %1: %2 + + + + Delete objects + Delete objects + + + + Are you sure you want to delete following objects: +%1 + Are you sure you want to delete following objects: +%1 + + + + Cannot start transaction. Details: %1 + Cannot start transaction. Details: %1 + + + + Cannot commit transaction. Details: %1 + Cannot commit transaction. Details: %1 + + + + DbTree + + + Databases + Databases + + + + Filter by name + Filter by name + + + + Copy + Copy + + + + Paste + Paste + + + + Select all + Select all + + + + Create a group + Create a group + + + + Delete the group + Delete the group + + + + Rename the group + Rename the group + + + + &Add a database + &Add a database + + + + &Edit the database + &Edit the database + + + + &Remove the database + &Remove the database + + + + &Connect to the database + &Connect to the database + + + + &Disconnect from the database + &Disconnect from the database + + + + Import + Import + + + + &Export the database + &Export the database + + + + Vac&uum + Vac&uum + + + + &Integrity check + &Integrity check + + + + Create a &table + Create a &table + + + + Edit the t&able + Edit the t&able + + + + Delete the ta&ble + Delete the ta&ble + + + + Export the table + Export the table + + + + Import into the table + Import into the table + + + + Populate table + Populate table + + + + Create similar table + Create similar table + + + + Reset autoincrement sequence + Reset autoincrement sequence + + + + Create an &index + Create an &index + + + + Edit the i&ndex + Edit the i&ndex + + + + Delete the in&dex + Delete the in&dex + + + + Create a trig&ger + Create a trig&ger + + + + Edit the trigg&er + Edit the trigg&er + + + + Delete the trigge&r + Delete the trigge&r + + + + Create a &view + Create a &view + + + + Edit the v&iew + Edit the v&iew + + + + Delete the vi&ew + Delete the vi&ew + + + + Add a column + Add a column + + + + Edit the column + Edit the column + + + + Delete the column + Delete the column + + + + Delete selected items + Delete selected items + + + + Clear filter + Clear filter + + + + &Refresh all database schemas + &Refresh all database schemas + + + + Re&fresh selected database schema + Re&fresh selected database schema + + + + + Erase table data + Erase table data + + + + Open file's directory + Open file's directory + + + + Execute SQL from file + Execute SQL from file + + + + Increase font size + database list + Increase font size + + + + Decrease font size + database list + Decrease font size + + + + + Database + Database + + + + Grouping + Grouping + + + + Generate query for table + Generate query for table + + + + + Create group + Create group + + + + Group name + Group name + + + + Entry with name %1 already exists in group %2. + Entry with name %1 already exists in group %2. + + + + Delete group + Delete group + + + + Are you sure you want to delete group %1? +All objects from this group will be moved to parent group. + Are you sure you want to delete group %1? +All objects from this group will be moved to parent group. + + + + Are you sure you want to remove database '%1' from the list? + Are you sure you want to remove database '%1' from the list? + + + + Are you sure you want to remove following databases from the list: +%1 + Are you sure you want to remove following databases from the list: +%1 + + + + Remove database + Remove database + + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Vacuum (%1) + Vacuum (%1) + + + + Integrity check (%1) + Integrity check (%1) + + + + Reset autoincrement + Reset autoincrement + + + + Are you sure you want to reset autoincrement value for table '%1'? + Are you sure you want to reset autoincrement value for table '%1'? + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + An error occurred while trying to reset autoincrement value for table '%1': %2 + + + + Autoincrement value for table '%1' has been reset successfully. + Autoincrement value for table '%1' has been reset successfully. + + + + Are you sure you want to delete all data from table(s): %1? + Are you sure you want to delete all data from table(s): %1? + + + + An error occurred while trying to delete data from table '%1': %2 + An error occurred while trying to delete data from table '%1': %2 + + + + All data has been deleted for table '%1'. + All data has been deleted for table '%1'. + + + + Following objects will be deleted: %1. + Following objects will be deleted: %1. + + + + Following databases will be removed from list: %1. + Following databases will be removed from list: %1. + + + + Remainig objects from deleted group will be moved in place where the group used to be. + Remainig objects from deleted group will be moved in place where the group used to be. + + + + %1<br><br>Are you sure you want to continue? + %1<br><br>Are you sure you want to continue? + + + + Delete objects + Delete objects + + + + DbTreeItemDelegate + + + error + dbtree labels + error + + + + (system table) + database tree label + (system table) + + + + (virtual) + virtual table label + (virtual) + + + + (system index) + database tree label + (system index) + + + + DbTreeModel + + + Database: %1 + dbtree tooltip + Database: %1 + + + + URI: + dbtree tooltip + URI: + + + + Version: + dbtree tooltip + Version: + + + + File size: + dbtree tooltip + File size: + + + + Encoding: + dbtree tooltip + Encoding: + + + + Error: + dbtree tooltip + Error: + + + + Table : %1 + dbtree tooltip + Table : %1 + + + + Columns (%1): + dbtree tooltip + Columns (%1): + + + + Indexes (%1): + dbtree tooltip + Indexes (%1): + + + + Triggers (%1): + dbtree tooltip + Triggers (%1): + + + + Copy + Copy + + + + Move + Move + + + + Include data + Include data + + + + Include indexes + Include indexes + + + + Include triggers + Include triggers + + + + Abort + Abort + + + + Could not add dropped database file '%1' automatically. Manual setup is necessary. + Could not add dropped database file '%1' automatically. Manual setup is necessary. + + + + Referenced tables + Referenced tables + + + + Do you want to include following referenced tables as well: +%1 + Do you want to include following referenced tables as well: +%1 + + + + Name conflict + Name conflict + + + + Following object already exists in the target database. +Please enter new, unique name, or press '%1' to abort the operation: + Following object already exists in the target database. +Please enter new, unique name, or press '%1' to abort the operation: + + + + SQL statements conversion + SQL statements conversion + + + + Following error occurred while converting SQL statements to the target SQLite version: + Following error occurred while converting SQL statements to the target SQLite version: + + + + Would you like to ignore those errors and proceed? + Would you like to ignore those errors and proceed? + + + + DdlHistoryWindow + + + Filter by database: + Filter by database: + + + + Clear entire history + Clear entire history + + + + -- Queries executed on database %1 (%2) +-- Date and time of execution: %3 +%4 + -- Queries executed on database %1 (%2) +-- Date and time of execution: %3 +%4 + + + + Clear history + Clear history + + + + Are you sure you want to erase entire DDL history? + Are you sure you want to erase entire DDL history? + + + + DDL history + DDL history + + + + DdlPreviewDialog + + + Queries to be executed + Queries to be executed + + + + Don't show again + Don't show again + + + + DebugConsole + + + SQLiteStudio Debug Console + SQLiteStudio Debug Console + + + + EditorWindow + + + SQL editor + SQL editor + + + + Query + Query + + + + History + History + + + + Results in the separate tab + Results in the separate tab + + + + Results below the query + Results below the query + + + + + SQL editor %1 + SQL editor %1 + + + + + Results + Results + + + + Execute query + Execute query + + + + Explain query + Explain query + + + + Clear execution history + sql editor + Clear execution history + + + + Export results + sql editor + Export results + + + + Create view from query + sql editor + Create view from query + + + + Previous database + Previous database + + + + Next database + Next database + + + + Show next tab + sql editor + Show next tab + + + + Show previous tab + sql editor + Show previous tab + + + + Focus results below + sql editor + Focus results below + + + + Focus SQL editor above + sql editor + Focus SQL editor above + + + + Delete selected SQL history entries + sql editor + Delete selected SQL history entries + + + + Execute single query under cursor + Execute single query under cursor + + + + Execute all queries in editor + Execute all queries in editor + + + + Active database (%1/%2) + Active database (%1/%2) + + + + Query finished in %1 second(s). Rows affected: %2 + Query finished in %1 second(s). Rows affected: %2 + + + + Query finished in %1 second(s). + Query finished in %1 second(s). + + + + Clear execution history + Clear execution history + + + + Are you sure you want to erase the entire SQL execution history? This cannot be undone. + Are you sure you want to erase the entire SQL execution history? This cannot be undone. + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + No database selected in the SQL editor. Cannot create a view for unknown database. + No database selected in the SQL editor. Cannot create a view for unknown database. + + + + Editor window "%1" has uncommitted data. + Editor window "%1" has uncommitted data. + + + + ErrorsConfirmDialog + + + Errors + Errors + + + + Following errors occured: + Following errors occured: + + + + Would you like to proceed? + Would you like to proceed? + + + + ExecFromFileDialog + + + Execute SQL from file + Execute SQL from file + + + + Input file + Input file + + + + Path to file + Path to file + + + + Browse for file + Browse for file + + + + Options + Options + + + + File encoding + File encoding + + + + Skip failing SQL statements + Skip failing SQL statements + + + + SQL scripts (*.sql);;All files (*) + SQL scripts (*.sql);;All files (*) + + + + Execute SQL file + Execute SQL file + + + + Please provide file to be executed. + Please provide file to be executed. + + + + Provided file does not exist or cannot be read. + Provided file does not exist or cannot be read. + + + + ExportDialog + + + Export + Export + + + + What do you want to export? + What do you want to export? + + + + A database + A database + + + + A single table + A single table + + + + Query results + Query results + + + + Table to export + Table to export + + + + Database + Database + + + + Table + Table + + + + Options + Options + + + + When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. + When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. + + + + Export table data + Export table data + + + + Export table indexes + Export table indexes + + + + Export table triggers + Export table triggers + + + + Note, that exporting table indexes and triggers may be unsupported by some output formats. + Note, that exporting table indexes and triggers may be unsupported by some output formats. + + + + Select database objects to export + Select database objects to export + + + + Export data from tables + Export data from tables + + + + Select all + Select all + + + + Deselect all + Deselect all + + + + + Database: + Database: + + + + Query to export results for + Query to export results for + + + + Query to be executed for results: + Query to be executed for results: + + + + Export format and options + Export format and options + + + + Export format + Export format + + + + Output + Output + + + + Exported file path + Exported file path + + + + Clipboard + Clipboard + + + + File + File + + + + Exported text encoding: + Exported text encoding: + + + + Export format options + Export format options + + + + Cancel + Cancel + + + + + + Select database to export. + Select database to export. + + + + Select table to export. + Select table to export. + + + + Enter valid query to export. + Enter valid query to export. + + + + Select at least one object to export. + Select at least one object to export. + + + + You must provide a file name to export to. + You must provide a file name to export to. + + + + Path you provided is an existing directory. You cannot overwrite it. + Path you provided is an existing directory. You cannot overwrite it. + + + + The directory '%1' does not exist. + The directory '%1' does not exist. + + + + The file '%1' exists and will be overwritten. + The file '%1' exists and will be overwritten. + + + + All files (*) + All files (*) + + + + Pick file to export to + Pick file to export to + + + + Internal error during export. This is a bug. Please report it. + Internal error during export. This is a bug. Please report it. + + + + FileExecErrorsDialog + + + Execution errors + Execution errors + + + + Following errors were encountered during execution of SQL statements from the file: + Following errors were encountered during execution of SQL statements from the file: + + + + SQL + SQL + + + + Error + Error + + + + Statements that were executed successfully were commited. + Statements that were executed successfully were commited. + + + + Statements that were executed successfully were rolled back. + Statements that were executed successfully were rolled back. + + + + FkComboBox + + + Cannot edit this cell. Details: %1 + Cannot edit this cell. Details: %1 + + + + FontEdit + + + Choose font + font configuration + Choose font + + + + Form + + + Active SQL formatter plugin + Active SQL formatter plugin + + + + FormView + + + Commit row + form view + Commit row + + + + Rollback row + form view + Rollback row + + + + First row + form view + First row + + + + Previous row + form view + Previous row + + + + Next row + form view + Next row + + + + Last row + form view + Last row + + + + Insert new row + form view + Insert new row + + + + Delete current row + form view + Delete current row + + + + FunctionsEditor + + + Filter functions + Filter functions + + + + Input arguments + Input arguments + + + + Undefined + Undefined + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Type: + Type: + + + + Function name: + Function name: + + + + Implementation language: + Implementation language: + + + + Deterministic + Deterministic + + + + Initialization code: + Initialization code: + + + + + Function implementation code: + Function implementation code: + + + + Final step implementation code: + Final step implementation code: + + + + SQL functions editor + SQL functions editor + + + + Commit all function changes + Commit all function changes + + + + Rollback all function changes + Rollback all function changes + + + + Create new function + Create new function + + + + Delete selected function + Delete selected function + + + + Custom SQL functions manual + Custom SQL functions manual + + + + Add function argument + Add function argument + + + + Rename function argument + Rename function argument + + + + Delete function argument + Delete function argument + + + + Move function argument up + Move function argument up + + + + Move function argument down + Move function argument down + + + + Scalar + Scalar + + + + Aggregate + Aggregate + + + + Enter a non-empty, unique name of the function. + Enter a non-empty, unique name of the function. + + + + Pick the implementation language. + Pick the implementation language. + + + + Per step code: + Per step code: + + + + Enter a non-empty implementation code. + Enter a non-empty implementation code. + + + + argument + new function argument name in function editor window + argument + + + + Functions editor window has uncommitted modifications. + Functions editor window has uncommitted modifications. + + + + ImportDialog + + + Import data + Import data + + + + Table to import to + Table to import to + + + + Table + Table + + + + Database + Database + + + + Data source to import from + Data source to import from + + + + Data source type + Data source type + + + + Options + Options + + + + Text encoding: + Text encoding: + + + + Input file: + Input file: + + + + <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> + <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> + + + + Ignore errors + Ignore errors + + + + Data source options + Data source options + + + + Cancel + Cancel + + + + If you type table name that doesn't exist, it will be created. + If you type table name that doesn't exist, it will be created. + + + + Enter the table name + Enter the table name + + + + Select import plugin. + Select import plugin. + + + + You must provide a file to import from. + You must provide a file to import from. + + + + The file '%1' does not exist. + The file '%1' does not exist. + + + + Path you provided is a directory. A regular file is required. + Path you provided is a directory. A regular file is required. + + + + Pick file to import from + Pick file to import from + + + + IndexDialog + + + + Index + Index + + + + Column + Column + + + + Sort + Sort + + + + Collation + Collation + + + + On table: + On table: + + + + Delete selected indexed expression + Delete selected indexed expression + + + + Moves selected index column up in the order, making it more significant in the index. + Moves selected index column up in the order, making it more significant in the index. + + + + Moves selected index column down in the order, making it less significant in the index. + Moves selected index column down in the order, making it less significant in the index. + + + + Partial index condition + Partial index condition + + + + Unique index + Unique index + + + + Index name: + Index name: + + + + Edit selected indexed expression + Edit selected indexed expression + + + + Add indexed expression + Add indexed expression + + + + DDL + DDL + + + + Tried to open index dialog for closed or inexisting database. + Tried to open index dialog for closed or inexisting database. + + + + Could not process index %1 correctly. Unable to open an index dialog. + Could not process index %1 correctly. Unable to open an index dialog. + + + + Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. + Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. + + + + Pick the table for the index. + Pick the table for the index. + + + + Select at least one column. + Select at least one column. + + + + Enter a valid condition. + Enter a valid condition. + + + + default + index dialog + default + + + + Sort order + table constraints + Sort order + + + + + Error + index dialog + Error + + + + Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? + Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? + + + + An error occurred while executing SQL statements: +%1 + An error occurred while executing SQL statements: +%1 + + + + IndexExprColumnDialog + + + Indexed expression + Indexed expression + + + + Expression to index + Expression to index + + + + This expression is already indexed by the index. + This expression is already indexed by the index. + + + + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. + + + + Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. + Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. + + + + It's forbidden to use 'SELECT' statements in indexed expressions. + It's forbidden to use 'SELECT' statements in indexed expressions. + + + + Enter an indexed expression. + Enter an indexed expression. + + + + Invalid expression. + Invalid expression. + + + + LanguageDialog + + + Language + Language + + + + Please choose language: + Please choose language: + + + + MainWindow + + + Database toolbar + Database toolbar + + + + Structure toolbar + Structure toolbar + + + + Tools + Tools + + + + Window list + Window list + + + + View toolbar + View toolbar + + + + Configuration widgets + Configuration widgets + + + + Syntax highlighting engines + Syntax highlighting engines + + + + Data editors + Data editors + + + + Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. + Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. + + + + Running in debug mode. Debug messages are printed to the standard output. + Running in debug mode. Debug messages are printed to the standard output. + + + + You need to restart application to make the language change take effect. + You need to restart application to make the language change take effect. + + + + Open SQL &editor + Open SQL &editor + + + + Open DDL &history + Open DDL &history + + + + Open SQL &functions editor + Open SQL &functions editor + + + + Open code &snippets editor + Open code &snippets editor + + + + Open &collations editor + Open &collations editor + + + + Open ex&tension manager + Open ex&tension manager + + + + &Import + &Import + + + + E&xport + E&xport + + + + Open confi&guration dialog + Open confi&guration dialog + + + + &Tile windows + &Tile windows + + + + Tile windows &horizontally + Tile windows &horizontally + + + + Tile windows &vertically + Tile windows &vertically + + + + &Cascade windows + &Cascade windows + + + + Next window + Next window + + + + Previous window + Previous window + + + + Hide status field + Hide status field + + + + Close &all windows + Close &all windows + + + + Re&store recently closed window + Re&store recently closed window + + + + Close current &window + Close current &window + + + + Close &other windows + Close &other windows + + + + Close windows on the &left + Close windows on the &left + + + + Close windows on the &right + Close windows on the &right + + + + Re&name selected window + Re&name selected window + + + + Open Debug Console + Open Debug Console + + + + Open CSS Console + Open CSS Console + + + + Report a &bug + Report a &bug + + + + D&onate + D&onate + + + + Propose a new &feature + Propose a new &feature + + + + &About + &About + + + + &Licenses + &Licenses + + + + Open home &page + Open home &page + + + + User &Manual + User &Manual + + + + SQLite &documentation + SQLite &documentation + + + + Bugs and feature &requests + Bugs and feature &requests + + + + Quit + Quit + + + + Check for &updates + Check for &updates + + + + &Database + menubar + &Database + + + + &Structure + menubar + &Structure + + + + &View + menubar + &View + + + + Window list + menubar view menu + Window list + + + + &Tools + menubar + &Tools + + + + &Help + &Help + + + + Could not set style: %1 + main window + Could not set style: %1 + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + Rename window + Rename window + + + + Enter new name for the window: + Enter new name for the window: + + + + New updates are available. <a href="%1">Click here for details</a>. + New updates are available. <a href="%1">Click here for details</a>. + + + + You're running the most recent version. No updates are available. + You're running the most recent version. No updates are available. + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + Database passed in command line parameters (%1) was already on the list under name: %2 + + + + Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 + Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + MdiWindow + + + Uncommitted changes + Uncommitted changes + + + + Close anyway + Close anyway + + + + Don't close + Don't close + + + + MultiEditor + + + Null value + multieditor + Null value + + + + Configure editors for this data type + Configure editors for this data type + + + + Open another tab + Open another tab + + + + Foreign Key + Foreign Key + + + + Data editor plugin '%1' not loaded, while it is defined for editing '%2' data type. + Data editor plugin '%1' not loaded, while it is defined for editing '%1' data type. {1'?} {2'?} {1' or 2'?} + + + + Deleted + multieditor + Deleted + + + + Read only + multieditor + Read only + + + + MultiEditorBoolPlugin + + + Boolean + Boolean + + + + MultiEditorDatePlugin + + + Date + Date + + + + MultiEditorDateTimePlugin + + + Date & time + Date & time + + + + MultiEditorHexPlugin + + + Hex + Hex + + + + MultiEditorNumericPlugin + + + Number + numeric multi editor tab name + Number + + + + MultiEditorText + + + Tab changes focus + Tab changes focus + + + + Cut + Cut + + + + Copy + Copy + + + + Paste + Paste + + + + Delete + Delete + + + + Undo + Undo + + + + Redo + Redo + + + + MultiEditorTextPlugin + + + Text + Text + + + + MultiEditorTimePlugin + + + Time + Time + + + + NewConstraintDialog + + + New constraint + New constraint + + + + + Primary Key + new constraint dialog + Primary Key + + + + + Foreign Key + new constraint dialog + Foreign Key + + + + + Unique + new constraint dialog + Unique + + + + + Check + new constraint dialog + Check + + + + Not NULL + new constraint dialog + Not NULL + + + + Collate + new constraint dialog + Collate + + + + Generated + new constraint dialog + Generated + + + + Default + new constraint dialog + Default + + + + NewVersionDialog + + + SQLiteStudio updates + SQLiteStudio updates + + + + New version is available! + New version is available! + + + + Download new version! + Download new version! + + + + New version package will be downloaded. It will be up to you to install it whenever you're ready. + New version package will be downloaded. It will be up to you to install it whenever you're ready. + + + + Open SQLiteStudio home page. + Open SQLiteStudio home page. + + + + Read release notes && download package yourself. + Read release notes && download package yourself. + + + + Just close this window. + Just close this window. + + + + Check for updates on startup + Check for updates on startup + + + + Not now. + Not now. + + + + PopulateConfigDialog + + + Populating configuration + Populating configuration + + + + Configuring <b>%1</b> for column <b>%2</b> + Configuring <b>%1</b> for column <b>%2</b> + + + + PopulateDialog + + + Populate table + Populate table + + + + Database + Database + + + + Table + Table + + + + Columns + Columns + + + + Number of rows to populate: + Number of rows to populate: + + + + Populate + populate dialog button + Populate + + + + Abort + Abort + + + + Configure + Configure + + + + Populating configuration for this column is invalid or incomplete. + Populating configuration for this column is invalid or incomplete. + + + + Select database with table to populate + Select database with table to populate + + + + Select table to populate + Select table to populate + + + + You have to select at least one column. + You have to select at least one column. + + + + QObject + + + Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). + Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). + + + + The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. + The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. + + + + Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. + Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. + + + + Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. + Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. + + + + Cannot edit results of query other than %1. + Cannot edit results of query other than %1. + + + + Cannot edit columns that are result of aggregated %1 statements. + Cannot edit columns that are result of aggregated %1 statements. + + + + Cannot edit columns that are result of %1 statement. + Cannot edit columns that are result of %1 statement. + + + + Cannot edit columns that are result of common table expression statement (%1). + Cannot edit columns that are result of common table expression statement (%1). + + + + Cannot edit table generated columns. + Cannot edit table generated columns. + + + + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). + + + + + + + on conflict: %1 + data view tooltip + on conflict: %1 + + + + references table %1, column %2 + data view tooltip + references table %1, column %2 + + + + condition: %1 + data view tooltip + condition: %1 + + + + collation name: %1 + data view tooltip + collation name: %1 + + + + Data grid view + Data grid view + + + + Edit current cell inline + Edit current cell inline + + + + Copy cell(s) contents to clipboard + Copy cell(s) contents to clipboard + + + + Copy cell(s) contents together with header to clipboard + Copy cell(s) contents together with header to clipboard + + + + Paste cell(s) contents from clipboard + Paste cell(s) contents from clipboard + + + + Set empty value to selected cell(s) + Set empty value to selected cell(s) + + + + Set NULL value to selected cell(s) + Set NULL value to selected cell(s) + + + + Commit changes to cell(s) contents + Commit changes to cell(s) contents + + + + Rollback changes to cell(s) contents + Rollback changes to cell(s) contents + + + + Delete selected data row + Delete selected data row + + + + Insert new data row + Insert new data row + + + + Open contents of selected cell in a separate editor + Open contents of selected cell in a separate editor + + + + Toggle the height adjustment of rows + Toggle the height adjustment of rows + + + + Increase font size + data view + Increase font size + + + + Decrease font size + data view + Decrease font size + + + + Total pages available: %1 + Total pages available: %1 + + + + Total rows loaded: %1 + Total rows loaded: %1 + + + + Data view (both grid and form) + Data view (both grid and form) + + + + Refresh data + Refresh data + + + + Switch to grid view of the data + Switch to grid view of the data + + + + Switch to form view of the data + Switch to form view of the data + + + + Database list + Database list + + + + Delete selected item + Delete selected item + + + + Clear filter contents + Clear filter contents + + + + Refresh schema + Refresh schema + + + + Refresh all schemas + Refresh all schemas + + + + Add database + Add database + + + + Select all items + Select all items + + + + Copy selected item(s) + Copy selected item(s) + + + + + + Paste from clipboard + Paste from clipboard + + + + Increase font size + database list + Increase font size + + + + Decrease font size + database list + Decrease font size + + + + Tables + Tables + + + + Indexes + Indexes + + + + Triggers + Triggers + + + + Views + Views + + + + Columns + Columns + + + + Data form view + Data form view + + + + Commit changes for current row + Commit changes for current row + + + + Rollback changes for current row + Rollback changes for current row + + + + Go to first row on current page + Go to first row on current page + + + + Go to next row + Go to next row + + + + Go to previous row + Go to previous row + + + + Go to last row on current page + Go to last row on current page + + + + Insert new row + Insert new row + + + + Delete current row + Delete current row + + + + Main window + Main window + + + + Open SQL editor + Open SQL editor + + + + Open DDL history window + Open DDL history window + + + + Open snippets editor window + Open snippets editor window + + + + Open function editor window + Open function editor window + + + + Open collation editor window + Open collation editor window + + + + Open extension manager window + Open extension manager window + + + + Previous window + Previous window + + + + Next window + Next window + + + + Hide status area + Hide status area + + + + Open user manual + Open user manual + + + + Open configuration dialog + Open configuration dialog + + + + Open Debug Console + Open Debug Console + + + + Open CSS Console + Open CSS Console + + + + Open the About dialog + Open the About dialog + + + + Quit the application + Quit the application + + + + Cell text value editor + Cell text value editor + + + + + Cut selected text + Cut selected text + + + + + Copy selected text + Copy selected text + + + + + Delete selected text + Delete selected text + + + + + Undo + Undo + + + + + Redo + Redo + + + + SQL editor input field + SQL editor input field + + + + Select whole editor contents + Select whole editor contents + + + + Save contents into a file + Save contents into a file + + + + Load contents from a file + Load contents from a file + + + + Find in text + Find in text + + + + Find next + Find next + + + + Find previous + Find previous + + + + Replace in text + Replace in text + + + + Delete current line + Delete current line + + + + Request code assistant + Request code assistant + + + + Format contents + Format contents + + + + Move selected block of text one line down + Move selected block of text one line down + + + + Move selected block of text one line up + Move selected block of text one line up + + + + Copy selected block of text and paste it a line below + Copy selected block of text and paste it a line below + + + + Copy selected block of text and paste it a line above + Copy selected block of text and paste it a line above + + + + Toggle comment + Toggle comment + + + + Increase font size + sql editor + Increase font size + + + + Decrease font size + sql editor + Decrease font size + + + + All SQLite databases + All SQLite databases + + + + All files + All files + + + + Select database file + Select database file + + + + Select + Select + + + + File type + File type + + + + SQL editor window + SQL editor window + + + + Execute query + Execute query + + + + Execute single query under cursor + Execute single query under cursor + + + + Execute all queries in editor + Execute all queries in editor + + + + Execute "%1" query + Execute "%1" query + + + + Switch current working database to previous on the list + Switch current working database to previous on the list + + + + Switch current working database to next on the list + Switch current working database to next on the list + + + + Go to next editor tab + Go to next editor tab + + + + Go to previous editor tab + Go to previous editor tab + + + + Move keyboard input focus to the results view below + Move keyboard input focus to the results view below + + + + Move keyboard input focus to the SQL editor above + Move keyboard input focus to the SQL editor above + + + + Delete selected SQL history entries + Delete selected SQL history entries + + + + Table window + Table window + + + + Commit the table structure + Commit the table structure + + + + Rollback pending changes in the table structure + Rollback pending changes in the table structure + + + + Refresh table structure + Refresh table structure + + + + Add new column + Add new column + + + + Edit selected column + Edit selected column + + + + Delete selected column + Delete selected column + + + + Export table data + Export table data + + + + Import data to the table + Import data to the table + + + + Add new table constraint + Add new table constraint + + + + Edit selected table constraint + Edit selected table constraint + + + + Delete selected table constraint + Delete selected table constraint + + + + Refresh table index list + Refresh table index list + + + + Add new index + Add new index + + + + Edit selected index + Edit selected index + + + + Delete selected index + Delete selected index + + + + Refresh table trigger list + Refresh table trigger list + + + + + Add new trigger + Add new trigger + + + + + Edit selected trigger + Edit selected trigger + + + + + Delete selected trigger + Delete selected trigger + + + + + Go to next tab + Go to next tab + + + + + Go to previous tab + Go to previous tab + + + + A view window + A view window + + + + Commit the view's query + Commit the view's query + + + + Rollback pending changes in the view's query + Rollback pending changes in the view's query + + + + Refresh view trigger list + Refresh view trigger list + + + + Execute the view's query + Execute the view's query + + + + A code snippets editor window + A code snippets editor window + + + + + + + Commit the pending changes + Commit the pending changes + + + + + + + Rollback the pending changes + Rollback the pending changes + + + + A collation editor window + A collation editor window + + + + A function editor window + A function editor window + + + + A SQLite extension editor window + A SQLite extension editor window + + + + QuitConfirmDialog + + + Uncommitted changes + Uncommitted changes + + + + Are you sure you want to quit the application? + +Following items are pending: + Are you sure you want to quit the application? + +Following items are pending: + + + + SearchTextDialog + + + Find or replace + Find or replace + + + + Find: + Find: + + + + Case sensitive + Case sensitive + + + + Search backwards + Search backwards + + + + Regular expression matching + Regular expression matching + + + + Replace && +find next + Replace && +find next + + + + Replace with: + Replace with: + + + + Replace all + Replace all + + + + Find + Find + + + + SortDialog + + + Sort by columns + Sort by columns + + + + + Column + Column + + + + + Order + Order + + + + Sort by: %1 + Sort by: %1 + + + + Move column up + Move column up + + + + Move column down + Move column down + + + + SqlEditor + + + Wrap words + sql editor + Wrap words + + + + Cut + sql editor + Cut + + + + Copy + sql editor + Copy + + + + Paste + sql editor + Paste + + + + Delete + sql editor + Delete + + + + Select all + sql editor + Select all + + + + Undo + sql editor + Undo + + + + Redo + sql editor + Redo + + + + Complete + sql editor + Complete + + + + Format SQL + sql editor + Format SQL + + + + Save SQL to file + sql editor + Save SQL to file + + + + Select file to save SQL + sql editor + Select file to save SQL + + + + Load SQL from file + sql editor + Load SQL from file + + + + Delete line + sql editor + Delete line + + + + Move block down + sql editor + Move block down + + + + Move block up + sql editor + Move block up + + + + Copy block down + sql editor + Copy block down + + + + Copy up down + sql editor + Copy up down + + + + Find + sql editor + Find + + + + Find next + sql editor + Find next + + + + Find previous + sql editor + Find previous + + + + Replace + sql editor + Replace + + + + Toggle comment + sql editor + Toggle comment + + + + Increase font size + sql editor + Increase font size + + + + Decrease font size + sql editor + Decrease font size + + + + Could not open file '%1' for writing: %2 + Could not open file '%1' for writing: %2 + + + + Saved SQL contents to file: %1 + Saved SQL contents to file: %1 + + + + Syntax completion can be used only when a valid database is set for the SQL editor. + Syntax completion can be used only when a valid database is set for the SQL editor. + + + + Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. + Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. + + + + Save to file + Save to file + + + + SQL scripts (*.sql);;All files (*) + SQL scripts (*.sql);;All files (*) + + + + Open file + Open file + + + + Could not open file '%1' for reading: %2 + Could not open file '%1' for reading: %2 + + + + Reached the end of document. Hit the find again to restart the search. + Reached the end of document. Hit the find again to restart the search. + + + + SqlQueryItem + + + Committing error: + data view tooltip + Committing error: + + + + Column: + data view tooltip + Column: + + + + Data type: + data view + Data type: + + + + Table: + data view tooltip + Table: + + + + Constraints: + data view tooltip + Constraints: + + + + SqlQueryItemDelegate + + + + + + Cannot edit this cell. Details: %1 + Cannot edit this cell. Details: %1 + + + + The row is marked for deletion. + The row is marked for deletion. + + + + + Structure of this table has changed since last data was loaded. Reload the data to proceed. + Structure of this table has changed since last data was loaded. Reload the data to proceed. + + + + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). + + + + Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. + Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. + + + + SqlQueryModel + + + + Only one query can be executed simultaneously. + Only one query can be executed simultaneously. + + + + Cannot execute query on undefined or invalid database. + Cannot execute query on undefined or invalid database. + + + + Cannot execute empty query. + Cannot execute empty query. + + + + Uncommitted data + Uncommitted data + + + + There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. + There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. + + + + Cannot commit the data for a cell that refers to the already closed database. + Cannot commit the data for a cell that refers to the already closed database. + + + + Could not begin transaction on the database. Details: %1 + Could not begin transaction on the database. Details: %1 + + + + An error occurred while committing the transaction: %1 + An error occurred while committing the transaction: %1 + + + + An error occurred while rolling back the transaction: %1 + An error occurred while rolling back the transaction: %1 + + + + Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. + Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. + + + + An error occurred while committing the data: %1 + An error occurred while committing the data: %1 + + + + Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. + Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. + + + + + Error while executing SQL query on database '%1': %2 + Error while executing SQL query on database '%1': %2 + + + + Error while loading query results: %1 + Error while loading query results: %1 + + + + Insert multiple rows + Insert multiple rows + + + + Number of rows to insert: + Number of rows to insert: + + + + Delete rows + Delete rows + + + + You're about to delete newly inserted rows that are not committed yet. Row numbers: %1 +Such deletion will be permanent. Are you sure you want to delete them? + You're about to delete newly inserted rows that are not committed yet. Row numbers: %1 +Such deletion will be permanent. Are you sure you want to delete them? + + + + SqlQueryView + + + Go to referenced row in... + Go to referenced row in... + + + + Copy + Copy + + + + Copy with headers + Copy with headers + + + + Copy as... + Copy as... + + + + Paste + Paste + + + + Paste as... + Paste as... + + + + Set NULL values + Set NULL values + + + + Erase values + Erase values + + + + Commit + Commit + + + + Rollback + Rollback + + + + Commit selected cells + Commit selected cells + + + + Rollback selected cells + Rollback selected cells + + + + Edit current cell inline + Edit current cell inline + + + + Define columns to sort by + Define columns to sort by + + + + Remove custom sorting + Remove custom sorting + + + + Insert row + Insert row + + + + Insert multiple rows + Insert multiple rows + + + + Delete selected row + Delete selected row + + + + Adjust height of rows + Adjust height of rows + + + + Increase font size + data view + Increase font size + + + + Decrease font size + data view + Decrease font size + + + + Invert selection + data view + Invert selection + + + + Edit value in editor + Edit value in editor + + + + Show value in a viewer + Show value in a viewer + + + + Generate query for selected cells + Generate query for selected cells + + + + No items selected to paste clipboard contents to. + No items selected to paste clipboard contents to. + + + + Cannot paste data. Details: %1 + Cannot paste data. Details: %1 + + + + Structure of at least one table used has changed since last data was loaded. Reload the data to proceed. + Structure of at least one table used has changed since last data was loaded. Reload the data to proceed. + + + + Cannot paste to a cell. Details: %1 + Cannot paste to a cell. Details: %1 + + + + The row is marked for deletion. + The row is marked for deletion. + + + + Cannot paste to column %1. Details: %2 + Cannot paste to column %1. Details: %2 + + + + Go to referenced row in table '%1' + Go to referenced row in table '%1' + + + + table '%1' + table '%1' + + + + Referenced row (%1) + Referenced row (%1) + + + + Trim pasted text? + Trim pasted text? + + + + The pasted text contains leading or trailing white space. Trim it automatically? + The pasted text contains leading or trailing white space. Trim it automatically? + + + + Paste "NULL" as null value? + Paste "NULL" as null value? + + + + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + + + + Edit value + Edit value + + + + SqlTableModel + + + Error while committing new row: %1 + Error while committing new row: %1 + + + + Error while deleting row from table %1: %2 + Error while deleting row from table %1: %2 + + + + SqliteExtensionEditor + + + Filter extensions + Filter extensions + + + + Leave empty to use default function + Leave empty to use default function + + + + Extension file + Extension file + + + + Initialization function + Initialization function + + + + Databases + Databases + + + + Register in all databases + Register in all databases + + + + Register in following databases: + Register in following databases: + + + + Extension manager window has uncommitted modifications. + Extension manager window has uncommitted modifications. + + + + Extension manager + Extension manager + + + + Commit all extension changes + Commit all extension changes + + + + Rollback all extension changes + Rollback all extension changes + + + + Add new extension + Add new extension + + + + Remove selected extension + Remove selected extension + + + + Editing extensions manual + Editing extensions manual + + + + File with given path does not exist or is not readable. + File with given path does not exist or is not readable. + + + + Unable to load extension: %1 + Unable to load extension: %1 + + + + Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. + Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. + + + + Dynamic link libraries (*.dll);;All files (*) + Dynamic link libraries (*.dll);;All files (*) + + + + Shared objects (*.so);;All files (*) + Shared objects (*.so);;All files (*) + + + + Dynamic libraries (*.dylib);;All files (*) + Dynamic libraries (*.dylib);;All files (*) + + + + All files (*) + All files (*) + + + + Open file + Open file + + + + StatusField + + + Status + Status + + + + Copy + Copy + + + + Clear + Clear + + + + TableConstraintsModel + + + Type + table constraints + Type + + + + Details + table constraints + Details + + + + Name + table constraints + Name + + + + TableForeignKeyPanel + + + Foreign table: + Foreign table: + + + + Columns + Columns + + + + Local column + Local column + + + + Foreign column + Foreign column + + + + Reactions + Reactions + + + + Deferred foreign key + Deferred foreign key + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + Pick the foreign column. + Pick the foreign column. + + + + Pick the foreign table. + Pick the foreign table. + + + + Select at least one foreign column. + Select at least one foreign column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + Foreign column + table constraints + Foreign column + + + + TablePrimaryKeyAndUniquePanel + + + Columns + Columns + + + + Column + Column + + + + Collation + Collation + + + + Sort + Sort + + + + Valid only for a single column with INTEGER data type + Valid only for a single column with INTEGER data type + + + + Autoincrement + Autoincrement + + + + Named constraint + Named constraint + + + + Constraint name + Constraint name + + + + On conflict + On conflict + + + + Collate + table constraints + Collate + + + + Sort order + table constraints + Sort order + + + + Select at least one column. + Select at least one column. + + + + Enter a name of the constraint. + Enter a name of the constraint. + + + + TableStructureModel + + + Name + table structure columns + Name + + + + Data type + table structure columns + Data type + + + + Primary +Key + table structure columns + Primary +Key + + + + Foreign +Key + table structure columns + Foreign +Key + + + + Unique + table structure columns + Unique + + + + Check + table structure columns + Check + + + + Not +NULL + table structure columns + Not +NULL + + + + Collate + table structure columns + Collate + + + + Generated + table structure columns + Generated + + + + Default value + table structure columns + Default value + + + + TableWindow + + + Structure + Structure + + + + Table name: + Table name: + + + + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + + + + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + + + + + Data + Data + + + + Constraints + Constraints + + + + Indexes + Indexes + + + + Triggers + Triggers + + + + DDL + DDL + + + + Export table + table window + Export table + + + + Import data to table + table window + Import data to table + + + + Populate table + table window + Populate table + + + + Refresh structure + table window + Refresh structure + + + + Commit structure changes + table window + Commit structure changes + + + + Rollback structure changes + table window + Rollback structure changes + + + + Add column + table window + Add column + + + + Edit column + table window + Edit column + + + + + Delete column + table window + Delete column + + + + Move column up + table window + Move column up + + + + Move column down + table window + Move column down + + + + Create similar table + table window + Create similar table + + + + Reset autoincrement value + table window + Reset autoincrement value + + + + Add table constraint + table window + Add table constraint + + + + Edit table constraint + table window + Edit table constraint + + + + Delete table constraint + table window + Delete table constraint + + + + Move table constraint up + table window + Move table constraint up + + + + Move table constraint down + table window + Move table constraint down + + + + Add table primary key + table window + Add table primary key + + + + Add table foreign key + table window + Add table foreign key + + + + Add table unique constraint + table window + Add table unique constraint + + + + Add table check constraint + table window + Add table check constraint + + + + Refresh index list + table window + Refresh index list + + + + + Create index + table window + Create index + + + + Edit index + table window + Edit index + + + + Delete index + table window + Delete index + + + + Refresh trigger list + table window + Refresh trigger list + + + + + Create trigger + table window + Create trigger + + + + Edit trigger + table window + Edit trigger + + + + Delete trigger + table window + Delete trigger + + + + Are you sure you want to delete column '%1'? + table window + Are you sure you want to delete column '%1'? + + + + Following problems will take place while modifying the table. +Would you like to proceed? + table window + Following problems will take place while modifying the table. +Would you like to proceed? + + + + Table modification + table window + Table modification + + + + Could not load data for table %1. Error details: %2 + Could not load data for table %1. Error details: %2 + + + + Could not process the %1 table correctly. Unable to open a table window. + Could not process the %1 table correctly. Unable to open a table window. + + + + Database + Database + + + + Could not restore window %1, because no database or table was stored in session for this window. + Could not restore window %1, because no database or table was stored in session for this window. + + + + Could not restore window '%1', because no database or table was stored in session for this window. + Could not restore window '%1', because no database or table was stored in session for this window. + + + + Could not restore window '%1', because database %2 could not be resolved. + Could not restore window '%1', because database %2 could not be resolved. + + + + Could not restore window '%1', because the table %2 doesn't exist in the database %3. + Could not restore window '%1', because the table %2 doesn't exist in the database %3. + + + + + New table %1 + New table %1 + + + + Committed changes for table '%1' successfully. + Committed changes for table '%1' successfully. + + + + Committed changes for table '%1' (named before '%2') successfully. + Committed changes for table '%1' (named before '%2') successfully. + + + + Could not commit table structure. Error message: %1 + table window + Could not commit table structure. Error message: %1 + + + + Reset autoincrement + Reset autoincrement + + + + Are you sure you want to reset autoincrement value for table '%1'? + Are you sure you want to reset autoincrement value for table '%1'? + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + An error occurred while trying to reset autoincrement value for table '%1': %2 + + + + Autoincrement value for table '%1' has been reset successfully. + Autoincrement value for table '%1' has been reset successfully. + + + + Empty name + Empty name + + + + A blank name for the table is allowed in SQLite, but it is not recommended. +Are you sure you want to create a table with blank name? + A blank name for the table is allowed in SQLite, but it is not recommended. +Are you sure you want to create a table with blank name? + + + + Cannot create a table without at least one column. + Cannot create a table without at least one column. + + + + Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. + Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. + + + + Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. + Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. + + + + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 + + + + Are you sure you want to delete table constraint '%1'? + table window + Are you sure you want to delete table constraint '%1'? + + + + Delete constraint + table window + Delete constraint + + + + Cannot export, because no export plugin is loaded. + Cannot export, because no export plugin is loaded. + + + + Cannot import, because no import plugin is loaded. + Cannot import, because no import plugin is loaded. + + + + Uncommitted changes + Uncommitted changes + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + + + + Go back to structure tab + Go back to structure tab + + + + Commit modifications and browse data. + Commit modifications and browse data. + + + + Name + table window indexes + Name + + + + Unique + table window indexes + Unique + + + + Columns + table window indexes + Columns + + + + Partial index condition + table window indexes + Partial index condition + + + + Name + table window triggers + Name + + + + Event + table window triggers + Event + + + + Condition + table window triggers + Condition + + + + Details + table window triggers + Details + + + + Table window "%1" has uncommitted structure modifications and data. + Table window "%1" has uncommitted structure modifications and data. + + + + Table window "%1" has uncommitted data. + Table window "%1" has uncommitted data. + + + + Table window "%1" has uncommitted structure modifications. + Table window "%1" has uncommitted structure modifications. + + + + TriggerColumnsDialog + + + Trigger columns + Trigger columns + + + + Triggering columns: + Triggering columns: + + + + Select all + Select all + + + + Deselect all + Deselect all + + + + TriggerDialog + + + + Trigger + Trigger + + + + On table: + On table: + + + + Action: + Action: + + + + + <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> + <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> + + + + Pre-condition: + Pre-condition: + + + + The scope is still not fully supported by the SQLite database. + The scope is still not fully supported by the SQLite database. + + + + Trigger name: + Trigger name: + + + + When: + When: + + + + List of columns for UPDATE OF action. + List of columns for UPDATE OF action. + + + + Scope: + Scope: + + + + Code: + Code: + + + + Trigger statements to be executed. + Trigger statements to be executed. + + + + DDL + DDL + + + + On view: + On view: + + + + Could not process trigger %1 correctly. Unable to open a trigger dialog. + Could not process trigger %1 correctly. Unable to open a trigger dialog. + + + + Enter a valid condition. + Enter a valid condition. + + + + Enter a valid trigger code. + Enter a valid trigger code. + + + + Error + trigger dialog + Error + + + + An error occurred while executing SQL statements: +%1 + An error occurred while executing SQL statements: +%1 + + + + VersionConvertSummaryDialog + + + Database version convert + Database version convert + + + + Following changes to the SQL statements will be made: + Following changes to the SQL statements will be made: + + + + Before + Before + + + + After + After + + + + ViewWindow + + + Query + Query + + + + View name: + View name: + + + + Output column names + Output column names + + + + + Data + Data + + + + Triggers + Triggers + + + + DDL + DDL + + + + + Could not restore window '%1', because no database or view was stored in session for this window. + Could not restore window '%1', because no database or view was stored in session for this window. + + + + Could not restore window '%1', because database %2 could not be resolved. + Could not restore window '%1', because database %2 could not be resolved. + + + + Could not restore window '%1', because database %2 could not be open. + Could not restore window '%1', because database %2 could not be open. + + + + Could not restore window '%1', because the view %2 doesn't exist in the database %3. + Could not restore window '%1', because the view %2 doesn't exist in the database %3. + + + + + New view %1 + New view %1 + + + + Database + Database + + + + Refresh the view + view window + Refresh the view + + + + Commit the view changes + view window + Commit the view changes + + + + Rollback the view changes + view window + Rollback the view changes + + + + Explicit column names + Explicit column names + + + + Generate output column names automatically basing on result columns of the view. + Generate output column names automatically basing on result columns of the view. + + + + Add column + view window + Add column + + + + Edit column + view window + Edit column + + + + Delete column + view window + Delete column + + + + Move column up + view window + Move column up + + + + Move column down + view window + Move column down + + + + Refresh trigger list + view window + Refresh trigger list + + + + Create new trigger + view window + Create new trigger + + + + Edit selected trigger + view window + Edit selected trigger + + + + Delete selected trigger + view window + Delete selected trigger + + + + View window "%1" has uncommitted structure modifications and data. + View window "%1" has uncommitted structure modifications and data. + + + + View window "%1" has uncommitted data. + View window "%1" has uncommitted data. + + + + View window "%1" has uncommitted structure modifications. + View window "%1" has uncommitted structure modifications. + + + + Could not load data for view %1. Error details: %2 + Could not load data for view %1. Error details: %2 + + + + Uncommitted changes + Uncommitted changes + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + + + + Go back to structure tab + Go back to structure tab + + + + Commit modifications and browse data. + Commit modifications and browse data. + + + + View '%1' was committed successfully. + View '%1' was committed successfully. + + + + Committed changes for view '%1' successfully. + Committed changes for view '%1' successfully. + + + + Committed changes for view '%1' (named before '%2') successfully. + Committed changes for view '%1' (named before '%2') successfully. + + + + Could not commit view changes. Error message: %1 + view window + Could not commit view changes. Error message: %1 + + + + Override columns + Override columns + + + + Currently defined columns will be overriden. Do you want to continue? + Currently defined columns will be overriden. Do you want to continue? + + + + Could not determinate columns returned from the view. The query is problably incomplete or contains errors. + Could not determinate columns returned from the view. The query is problably incomplete or contains errors. + + + + Name + view window triggers + Name + + + + Instead of + view window triggers + Instead of + + + + Condition + view window triggers + Condition + + + + Details + table window triggers + Details + + + + Could not process the %1 view correctly. Unable to open a view window. + Could not process the %1 view correctly. Unable to open a view window. + + + + Empty name + Empty name + + + + A blank name for the view is allowed in SQLite, but it is not recommended. +Are you sure you want to create a view with blank name? + A blank name for the view is allowed in SQLite, but it is not recommended. +Are you sure you want to create a view with blank name? + + + + The SELECT statement could not be parsed. Please correct the query and retry. +Details: %1 + The SELECT statement could not be parsed. Please correct the query and retry. +Details: %1 + + + + The view could not be modified due to internal SQLiteStudio error. Please report this! + The view could not be modified due to internal SQLiteStudio error. Please report this! + + + + The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. + The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. + + + + Following problems will take place while modifying the view. +Would you like to proceed? + view window + Following problems will take place while modifying the view. +Would you like to proceed? + + + + View modification + view window + View modification + + + + WidgetCover + + + Interrupt + Interrupt + + + diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_zh_CN.qm b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_zh_CN.qm deleted file mode 100644 index 98db9d2..0000000 Binary files a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_zh_CN.qm and /dev/null differ diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_zh_CN.ts b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_zh_CN.ts index 8a046cd..a1d59c7 100644 --- a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_zh_CN.ts +++ b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_zh_CN.ts @@ -1,7189 +1,7106 @@ - - + + AboutDialog - - About SQLiteStudio and licenses - 关于 SQLiteStudio 和许可协议 + + About SQLiteStudio and licenses + 关于 SQLiteStudio 和许可协议 - - About - 关于 + + About + 关于 - <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="http://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">http://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="http://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">http://salsoft.com.pl</span></a>)<br/></p></body></html> - <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">自由,开源,跨平台的 SQLite 数据库管理工具。<br/><a href="http://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">http://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">作者和活跃维护人:<br/>SalSoft (<a href="http://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">http://salsoft.com.pl</span></a>)<br/></p></body></html> + + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">自由、开源、跨平台的 SQLite 数据库管理工具。<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">作者和活跃维护人:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> - - Licenses - 许可协议 + + Licenses + 许可协议 - - Environment - 环境 + + Environment + 环境 - - Icon directories - 图标目录 + + Icon directories + 图标目录 - - Form directories - 表格目录 + + Form directories + 表单目录 - - Plugin directories - 插件目录 + + SQLite extension directories + SQLite 扩展目录 - - Application directory - 应用程序目录 + + Plugin directories + 插件目录 - - SQLite 3 version: - SQLite 3 版本: + + Configuration directory + 配置文件目录 - - Configuration directory - 配置文件目录 + + Application directory + 应用程序目录 - - <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> - <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">自由,开源,跨平台的 SQLite 数据库管理工具。<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">作者和活跃维护人:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + + Qt version: + Qt 版本: - - Qt version: - Qt 版本: + + SQLite 3 version: + SQLite 3 版本: - - Portable distribution. - 便携版。 + + Portable distribution. + 便携版。 - - MacOS X application boundle distribution. - MacOS X 应用版。 + + MacOS X application bundle distribution. + MacOS X application bundle distribution. - - Operating system managed distribution. - 系统提供版。 + + Operating system managed distribution. + 系统提供版。 - - Copy - 复制 + + <h3>Table of contents:</h3><ol>%2</ol> + <h3>目录:</h3><ol>%2</ol> - - - <h3>Table of contents:</h3><ol>%2</ol> - <h3>目录:</h3><ol>%2</ol> - - - + + BindParamsDialog - - Query parameters - 查询参数 - - - - Please provide values for query parameters - 请提供一个值作为查询参数 - - - - BugDialog - - Bugs and ideas - Bugs 和想法 - - - Reporter - 报告者 - - - E-mail address - E-mail 地址 - - - Log in - 登录 - - - Short description - 简要描述 - - - Detailed description - 详细描述 - - - Show more details - 更多详细信息 - - - SQLiteStudio version - SQLiteStudio 版本 - - - Operating system - 操作系统 - - - Loaded plugins - 已加载插件 - - - Send - 发送 - - - You can see all your reported bugs and ideas by selecting menu '%1' and then '%2'. - 您可以通过选择菜单 “1%”下的“%2”来查看全部您报告的bugs和想法。 - - - A bug report sent successfully. - Bug报告提交成功。 - - - An error occurred while sending a bug report: %1 -%2 - 提交bug报告时发生了错误:%1 -%2 - - - You can retry sending. The contents will be restored when you open a report dialog after an error like this. - 您可以重新发送试试。当你在发生错误后重新打开上报对话框时,你之前输入的内容将会恢复。 - - - An idea proposal sent successfully. - 提交建议成功。 - - - An error occurred while sending an idea proposal: %1 -%2 - 在提交建议时发生错误:%1 -%2 - - - A bug report - Bug报告 - - - Describe problem in few words - 简要描述一下问题 - - - Describe problem and how to reproduce it - 描述一下问题,怎么复现问题 - - - A new feature idea - 新功能建议 - - - A title for your idea - 您的建议题目 - - - Describe your idea in more details - 仔细描述一下您的想法 - - - Reporting as an unregistered user, using e-mail address. - 使用e-mail地址以未注册用户身份上报。 - - - Reporting as a registered user. - 作为已注册用户报告。 - - - Log out - 退出 - - - Providing true email address will make it possible to contact you regarding your report. To learn more, press 'help' button on the right side. - 使用真实email地址有助于您上报后联系到您。如果想了解更多,请点击右方的“帮助”按钮。 - - - Enter vaild e-mail address, or log in. - 输入正确的e-mail地址,或者登录。 - - - Short description requires at least 10 characters, but not more than 100. Longer description can be entered in the field below. - 简要描述至少10个字符,但不超过100个字符。更详细的描述内容请在下面的区域填写。 + + Query parameters + 查询参数 - Long description requires at least 30 characters. - 详细描述内容至少30个字符。 + + Please provide values for query parameters + 请提供一个值作为查询参数 - - - BugReportHistoryWindow + + + CodeSnippetEditor - Title - 标题 + + Filter snippets + 筛选代码片段 - Reported at - 报告时间 + + + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> - URL - URL + + + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> - Reports history - 报告历史 + + Snippet name + 代码片段名称 - Clear reports history - 清空报告历史 + + Code assistant shortcut + Code assistant shortcut - Delete selected entry - 删除选中项 + + Snippet code + 代码片段 - Invalid response from server. - 无效的服务器回应。 + + Code Snippets editor window has uncommitted modifications. + Code Snippets editor window has uncommitted modifications. - - - BugReportLoginDialog - Log in - 登录 + + Code Snippets editor + 代码片段编辑器 - Credentials - 认证信息 + + Commit all snippet changes + Commit all snippet changes - Login: - 登录名: + + Rollback all snippet changes + Rollback all snippet changes - Password: - 密码: + + Create new snippet + Create new snippet - Validation - 这里不是很确认。Not sure about this translation. - 确认 + + Delete selected snippet + Delete selected snippet - Validate - not sure about this translation - 确认 + + Move the snippet up + Move the snippet up - Validation result message - 验证信息 + + Move the snippet down + Move the snippet down - Abort - 中止 + + Code snippets manual + 代码片段手册 - A login must be at least 2 characters long. - 登录名至少2个字符。 + + Enter a non-empty, unique name of the snippet. + Enter a non-empty, unique name of the snippet. - A password must be at least 5 characters long. - 密码至少5个字符。 + + Enter a non-empty snippet content. + Enter a non-empty snippet content. - Valid - 已验证 + + This hotkey is not unique in context of a code assistant. + This hotkey is not unique in context of a code assistant. - - + + CollationsEditor - - Filter collations - 筛选排序规则 + + Filter collations + 筛选字符序 - - Collation name: - 排序规则名称: + + Databases + 数据库 - - Implementation language: - 实现语言: + + Register in all databases + 在所有数据库中注册 - - Databases - 数据库 + + Register in following databases: + 在下列数据库中注册: - - Register in all databases - 在所有数据库中注册 + + Implementation code: + 实现代码: - - Register in following databases: - 在下列数据库中注册: + + Collation name: + 字符序名称: - - Implementation code: - 实现代码: + + Implementation language: + 实现语言: - - Collations editor - 排序规则编辑器 + + Collations editor + 字符序编辑器 - - Commit all collation changes - 提交全部排序规则更改 + + Commit all collation changes + 提交全部字符序更改 - - Rollback all collation changes - 回滚所有排序规则更改 + + Rollback all collation changes + 回滚所有字符序更改 - - Create new collation - 创建新排序规则 + + Create new collation + 创建新字符序 - - Delete selected collation - 删除选中排序规则 + + Delete selected collation + 删除选中字符序 - - Editing collations manual - 手动更改排序规则 + + Editing collations manual + 手动编辑字符序 - - Enter a non-empty, unique name of the collation. - 为排序规则输入一个非空唯一的名称。 + + Enter a non-empty, unique name of the collation. + 请为字符序输入一个非空且唯一的名称。 - - Pick the implementation language. - 选择实现语言。 + + Pick the implementation language. + 选择实现语言。 - - Enter a non-empty implementation code. - 输入非空实现代码。 + + Enter a non-empty implementation code. + 请输入非空的实现代码。 - - Collations editor window has uncommitted modifications. - 排序规则编辑器存在未提交的改动。 + + Collations editor window has uncommitted modifications. + 字符序编辑器有未提交的修改。 - - Collations editor window has uncommited modifications. - 排序规则编辑器存在未提交的改动。 - - - + + ColorButton - - Pick a color - 选择一种颜色 + + Pick a color + 选择一种颜色 - - + + ColumnCollatePanel - - Collation name: - 排序规则名称: + + Collation name: + 字符序名称: - - Named constraint: - 已命名的约束: + + Named constraint: + 命名的约束: - - Enter a name of the constraint. - 输入约束名称。 + + Enter a name of the constraint. + 输入约束的名称。 - - Enter a collation name. - 输入排序规则名称。 + + Enter a collation name. + 输入字符序的名称。 - - + + ColumnDefaultPanel - - Default value: - 默认值: - - - - Named constraint: - 已命名的约束: + + Default value: + 默认值: - - Enter a default value expression. - 输入默认值表达式。 + + Named constraint: + 命名的约束: - - Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. - 无效的默认值表达式:%1。如果你想使用简单的字符串作为值,记得用引号将其框起来。 + + Enter a default value expression. + 输入默认值表达式。 - - Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. - 无效的默认值表达式。如果你想使用简单的字符串作为值,记得用引号将其框起来。 + + Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. + 无效的默认值表达式:%1。如果你想使用简单的字符串作为值,记得用引号将其框起来。 - Invalid default value expression: %1 - 无效的默认值表达式:%1 + + Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. + 无效的默认值表达式。如果你想使用简单的字符串作为值,记得用引号将其框起来。 - - Enter a name of the constraint. - 输入约束名: + + Enter a name of the constraint. + 输入约束名: - - + + ColumnDialog - - Column - 字段 + + Column + - - Name and type - 名称和类型 + + Name and type + 名称和类型 - - Scale - 小数长度 + + Scale + 小数位数 - - Precision - 精度 + + Precision + 精度 - - Data type: - 数据类型: + + Data type: + 数据类型: - - Column name: - 字段名: + + Column name: + 列名: - - Size: - 大小: + + Size: + 大小: - - Constraints - 约束 + + Constraints + 约束 - - Unique - 唯一 + + Generated value + 生成的值 - - - - - - - - Configure - 配置 + + Unique + 唯一 - - Foreign Key - 外键 + + + + + + + + + Configure + 配置 - - Collate - 排序规则 + + Foreign Key + 外键 - - Not NULL - 非空 + + Collate + 字符序 - - Check condition - 条件 + + Not NULL + 非空 - - Primary Key - 主键 + + Check condition + 条件 - - Default - 默认 + + Primary Key + 主键 - - Advanced mode - 高级模式 + + Default + 默认 - - Add constraint - column dialog - 添加约束 + + Advanced mode + 高级模式 - - Edit constraint - column dialog - 编辑约束 + + Add constraint + column dialog + 添加约束 - - - Delete constraint - column dialog - 删除约束 + + Edit constraint + column dialog + 编辑约束 - - Move constraint up - column dialog - 上移约束 + + + Delete constraint + column dialog + 删除约束 - - Move constraint down - column dialog - 下移约束 + + Move constraint up + column dialog + 上移约束 - - Add a primary key - column dialog - 添加主键 + + Move constraint down + column dialog + 下移约束 - - Add a foreign key - column dialog - 添加外键 + + Add a primary key + column dialog + 添加主键 - - Add an unique constraint - column dialog - 添加唯一约束 + + Add a foreign key + column dialog + 添加外键 - - Add a check constraint - column dialog - 添加条件约束 + + Add an unique constraint + column dialog + 添加唯一约束 - - Add a not null constraint - column dialog - 添加非空约束 + + Add a check constraint + column dialog + 添加条件约束 - - Add a collate constraint - column dialog - 添加排序规则约束 + + Add a not null constraint + column dialog + 添加非空约束 - - Add a default constraint - column dialog - 添加默认约束 + + Add a collate constraint + column dialog + 添加字符序约束 - - Are you sure you want to delete constraint '%1'? - column dialog - 您确定要删除约束“%1”吗? + + Add a generated value constraint + column dialog + 添加生成的值约束 - - Correct the constraint's configuration. - 修正约束配置。 + + Add a default constraint + column dialog + 添加默认约束 - - This constraint is not officially supported by SQLite 2, -but it's okay to use it. - SQLite 2 没有官方支持该约束,但是可以使用。 + + Are you sure you want to delete constraint '%1'? + column dialog + 确定要删除约束“%1”吗? - - Scale is not allowed for INTEGER PRIMARY KEY columns. - 小数长度在 INTEGER PRIMARY KEY 类型字段中不被允许。 + + Correct the constraint's configuration. + 请纠正约束配置。 - - Precision cannot be defined without the scale. - + + Scale is not allowed for INTEGER PRIMARY KEY columns. + INTEGER PRIMARY KEY 列中不允许小数位数。 - - Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. - + + Precision cannot be defined without the scale. + 有小数位数才能定义精度。 - - INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. - + + Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. + 主键(PRIMARY KEY)已启用自动递增(AUTOINCREMENT),不能使用 INTEGER 以外的类型。 - - Precision is not allowed for INTEGER PRIMARY KEY columns. - + + INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. + 主键(PRIMARY KEY)已启用自动递增(AUTOINCREMENT),强制使用 INTEGER 类型。 - - - ColumnDialogConstraintsModel - - Type - column dialog constraints - 类型 + + Precision is not allowed for INTEGER PRIMARY KEY columns. + 不允许对整型主键(INTEGER PRIMARY KEY)设置精度。 - - Name - column dialog constraints - 名称 + + Could not match valid STRICT table datatype from declared type: %1. + Could not match valid STRICT table datatype from declared type: %1. + + + ColumnDialogConstraintsModel - - Details - column dialog constraints - 详情 + + Type + column dialog constraints + 类型 - - - ColumnForeignKeyPanel - - Foreign table: - 外部表: + + Name + column dialog constraints + 名称 - - Foreign column: - 外部字段: + + Details + column dialog constraints + 详情 + + + ColumnForeignKeyPanel - - Reactions - 响应 + + Foreign table: + 外部表: - - Deferred foreign key - + + Foreign column: + 外部字段: - - Named constraint - 已命名的约束 + + Reactions + 响应 - - Constraint name - 约束名称 + + Deferred foreign key + 延迟外键约束 - - Pick the foreign table. - 选择一个外部表。 + + Named constraint + 命名的约束 - - Pick the foreign column. - 选择一个外部字段。 + + Constraint name + 约束名称 - - Enter a name of the constraint. - 输入约束名称 + + Pick the foreign table. + 选择一个外部表。 - - - ColumnPrimaryKeyPanel - - Autoincrement - Autoincrement + + Pick the foreign column. + 选择一个外部字段。 - - Sort order: - 排序: + + Enter a name of the constraint. + 输入约束名称 + + + ColumnGeneratedPanel - - Named constraint: - 已命名的约束: + + Generating code: + 生成代码: - - On conflict: - 当冲突时: + + Explicit type: + 显式类型: - - Enter a name of the constraint. - 输入约束名称 + + Use "GENERATED ALWAYS" keywords + 使用 "GENERATED ALWAYS" 关键字 - Autoincrement (only for %1 type columns) - column primary key - Autoincrement (只能%1类型的字段才能有该属性) + + Named constraint: + 命名的约束: - - - ColumnUniqueAndNotNullPanel - - Named constraint: - 已命名的约束: + + Enter the column value generating expression. + 请输入列值生成表达式。 - - On conflict: - 当冲突时: + + Invalid value generating expression: %1. + 无效的值生成表达式:%1。 - - Enter a name of the constraint. - 输入约束名。 + + Invalid value generating expression. + 无效的值生成表达式。 - - - CompleterWindow - - Column: %1 - completer statusbar - 字段:%1 + + Enter a name of the constraint. + 输入约束名称。 + + + ColumnPrimaryKeyPanel - - Table: %1 - completer statusbar - 表:%1 + + Autoincrement + 自动递增 - - Index: %1 - completer statusbar - 索引:%1 + + Sort order: + 排序: - - Trigger: %1 - completer statusbar - 触发器:%1 + + Named constraint: + 命名的约束: - - View: %1 - completer statusbar - 视图:%1 + + On conflict: + 当冲突时: - - Database: %1 - completer statusbar - 数据库:%1 + + Enter a name of the constraint. + 请输入约束名称。 - - Keyword: %1 - completer statusbar - 关键字:%1 + + Descending order is not allowed with AUTOINCREMENT. + 自增不允许降序。 + + + ColumnUniqueAndNotNullPanel - - Function: %1 - completer statusbar - 函数:%1 + + Named constraint: + 命名的约束: - - Operator: %1 - completer statusbar - 操作符:%1 + + On conflict: + 当冲突时: - - String - completer statusbar - 字符串 + + Enter a name of the constraint. + 请输入约束名称。 + + + CompleterWindow - - Number - completer statusbar - 数值 + + Column: %1 + completer statusbar + 列:%1 - - Binary data - completer statusbar - 二进制数据 + + Table: %1 + completer statusbar + 表:%1 - - Collation: %1 - completer statusbar - 排序规则:%1 + + Index: %1 + completer statusbar + 索引:%1 - - Pragma function: %1 - completer statusbar - + + Trigger: %1 + completer statusbar + 触发器:%1 - - - ConfigDialog - - - Configuration - 配置 + + View: %1 + completer statusbar + 视图:%1 - - Search - 搜索 + + Database: %1 + completer statusbar + 数据库:%1 - - General - 通用 + + Keyword: %1 + completer statusbar + 关键字:%1 - - Keyboard shortcuts - 快捷键 + + Function: %1 + completer statusbar + 函数:%1 - - Look & feel - 外观 + + Operator: %1 + completer statusbar + 操作符:%1 - - Style - 风格 + + String + completer statusbar + 字符串 - - Fonts - 字体 + + Number + completer statusbar + 数值 - - Colors - 颜色 + + Binary data + completer statusbar + 二进制数据 - - Plugins - 插件 + + Collation: %1 + completer statusbar + 字符序:%1 - - Code formatters - 代码格式化 + + Pragma function: %1 + completer statusbar + PRAGMA 函数:%1 - - Data browsing - 浏览数据 + + Insert a code snippet + 插入代码片段 + + + ConfigDialog - - Data editors - 数据编辑器 + + + Configuration + 配置 - - Database dialog window - 数据库对话窗口 + + Search + 搜索 - - <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> - + + General + 通用 - - Do not mark database to be "permanent" by default - + + Keyboard shortcuts + 快捷键 - - <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> - + + Look & feel + 外观 - - Try to bypass dialog completly when dropping database file onto the list - + + Style + 风格 - - Data browsing and editing - 浏览和编辑数据 + + Fonts + 字体 - - Number of data rows per page: - 每页的行数: + + Code colors + 代码颜色 - - - <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> - <p>在以列表方式显示数据时,列宽度会自动调整。该值控制初始列宽度,之后您可以手动调整列宽度,不受此限制。</p> + + + Database list + 数据库列表 - - Limit initial data column width to (in pixels): - 限制初始数据列宽度(单位:像素): + + Code assistant + 代码助手 - - <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> - + + Data browsing + 浏览数据 - - Show column and row details tooltip in data view - 在数据视图中展示字段与行的细节 + + Data editors + 数据编辑器 - - <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> - + + Plugins + 插件 - - Inserting new row in data grid - 在网格视图中插入新行 + + Code formatters + 代码格式化器 - - Before currently selected row - 在已选列之前 + + If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. + 如果关闭,列将按照 CREATE TABLE 中的顺序排序。 - - After currently selected row - 在已选列之后 + + Sort table columns alphabetically + 按字母顺序列出表的列 - - At the end of data view - 在数据显示区域的末尾 + + Expand tables node when connected to a database + 连接到数据库时展开表节点 - - <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> - <p>启用后,表窗口将显示数据选项卡,而不是结构选项卡。</p> + + <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> + <p>附加标签是显示在数据库列表的名称旁边的文本标签(除非另有配置,否则为蓝色)。启用此选项将为数据库、无效数据库和聚合节点(列组、索引组、触发器组)显示标签。更多标签见下方选项。<p> - - <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> - <p>启用后,“数据”选项卡将作为第一个选项卡放置在每个表窗口中,而不是位于第二位。</p> + + Display additional labels on the list + 在列表中显示附加标签 - - Place data tab as first tab in a Table Window - 将数据作为表窗口的第一项 + + For regular tables labels will show number of columns, indexes and triggers for each of tables. + 对于普通表,标签将显示每个表的列、索引和触发器的数量。 - - <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> - <p>启用后,视图窗口将显示数据选项卡,而不是结构选项卡。</p> + + Display labels for regular tables + 为普通表显示标签 - - <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> - <p>启用后,“数据”选项卡将作为第一个选项卡放置在每个视图窗口中,而不是位于第二个位置。</p> + + Virtual tables will be marked with a 'virtual' label. + 虚拟表将附以“虚拟”标签。 - - Place data tab as first tab in a View Window - 将数据选项卡作为视图窗口的第一选项卡 + + Display labels for virtual tables + 为虚拟表显示标签 - - Data types - 数据类型 + + Expand views node when connected to a database + 连接到数据库时展开视图节点 - - Available editors: - 可用的编辑器: + + If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) + 如果关闭此选项,则对象将按照 sqlite_master 表中的顺序(即它们被创建的顺序)排列 - - Editors selected for this data type: - 已选的该数据类型编辑器: + + Sort objects (tables, indexes, triggers and views) alphabetically + 按字母顺序排列对象(表、索引、触发器及视图) - - Schema editing - 架构编辑 + + Display system tables and indexes on the list + 在列表中显示系统表和索引 - - Number of DDL changes kept in history. - 数据库定义(DDL)的更改历史记录数量。 + + Database dialog window + 数据库对话框窗口 - - DDL history size: - 数据库定义(DDL)历史大小: + + <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> + <p>添加新的数据库时,默认会将其标记为“永久”(存储在配置文件中)。选中此选项则新添加的数据库将默认不标记为“永久”。</p> - Don't show DDL preview dialog when commiting schema changes - 当提交schema变动时不显示数据库定义(DDL)预览对话框 + + Do not mark database to be "permanent" by default + 默认不将新添加的数据库标为“永久” - - SQL queries - SQL 查询 + + <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> + <p>启用此选项后,将文件从文件管理器拖放到数据库列表中时,将自动绕过标准的数据库对话框,直接添加到列表中。如果由于各种原因自动处理失败,则还会向用户显示标准对话框。</p> - - - Number of queries kept in the history. - 查询历史记录数量。 + + Try to bypass dialog completly when dropping database file onto the list + 拖放数据库文件到列表中时尝试完全绕过对话框 - - History size: - 历史大小: + + Data browsing and editing + 浏览和编辑数据 - - <p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute.</p> - <p>如果SQL编辑器中有多个语句,如果启用该选项,只执行光标下的语句;反之则执行全部语句。另外您可以选择需要执行的语句来执行</p> + + + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + <p>在配置文件中存储,“表填充”对话框中的最大数量。值 100 应已足够。</p> - - Execute only the query under the cursor - 只执行光标下的语句 + + Number of memorized table populating configurations + 表填充配置中的默认填充行数 - - Updates - 更新 + + Data column width + 数据列宽度 - - Automatically check for updates at startup - 在启动时自己检查更新 + + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> - - Session - 会话 + + Enlarge column when entering value longer than current width + Enlarge column when entering value longer than current width - - Restore last session (active MDI windows) after startup - 启动后恢复上一次会话。 + + <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> + <p>当数据被加载到网格视图时,列宽会自动调整。此值限制初始化时的列宽度,之后您仍可以手动调整列宽,不受此限制。</p> - - Status Field - 状态栏 + + Number of data rows per page: + 每页数据行数: - - <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> - + + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> + <p>此项启用后,用户鼠标悬停在任意数据视图(查询结果、表数据、视图数据)的单元格上时,工具提示将显示该单元格的详细信息——包括列数据类型、约束、ROWID 等。</p> - - Always open Status panel when new message is printed - 当有新信息被输出时,总是打开状态面板 + + Show column and row details tooltip in data view + 在数据视图中展示列与行的详细信息 - - Filter shortcuts by name or key combination - 以名称或按键组合筛选快捷键 + + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + <p>编辑一个过去为 NULL 值的单元格且新输入的值为空字符串时,此选项启用则该单元格的值保持 NULL 不变,此选项未启用则空字符串覆盖原 NULL 值。</p> - - Action - 操作 + + Keep NULL value when entering empty value + 当输入空值时保持 NULL 值 - - Key combination - 按键编定 + + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> + <html><head/><body><p>启用此选项后,提交一个 NULL 值时,如果该列已定义 DEFAULT 值,即使该列允许包含 NULL 值,也始终采用 DEFAULT 值。</p><p>禁用此选项则仅在列有非空(NOT NULL)约束时将 NULL 值转变为 DEFAULT 值。</p></body></html> - - - Language - 语言 + + Use DEFAULT value (if defined), when committing NULL value + 提交 NULL 值时使用 DEFAULT 值(如果已定义) - - Changing language requires application restart to take effect. - 更改语言后,重启程序生效。 + + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + <html><head/><body><p>如果查询结果包含数十乃至上百个列,则加载可能占用数个 GB 的空闲内存。SQLiteStudio 在这种情况下可能限制一页上显示的结果数量以保护您的计算机。如果您了解自己不会在如此大的数据库上作业,则可以禁用此限制以始终在一页上看到大量的行。</p></body></html> - - Compact layout - 紧凑布局 + + Limit number of rows for in case of dozens of columns + 列数过多时限制每页显示的行数 - - <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> - <p>紧凑布局会将 UI 中的边框与空白降低到最小值,然后用这些空白展示更多数据。这会使界面看起来有一点不美观,但是允许一次展示更多数据。</p> + + Inserting new row in data grid + 网格视图中插入新行时 - - Use compact layout - 使用紧凑布局 + + Before currently selected row + 在选中行之前 - - - Database list - 数据库列表 + + After currently selected row + 在选中行之后 - - If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. - 如果关闭,将会以 CREATE TABLE 中的顺序对列进行排序。 + + At the end of data view + 在数据视图的末尾 - - Sort table columns alphabetically - 按字母对列排序 + + Table windows + 表窗口 - - Expand tables node when connected to a database - 当连接到数据库时,展开数据库节点 + + <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> + <p>启用后,表窗口将显示数据选项卡,而不是结构选项卡。</p> - - <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> - + + Open Table Windows with the data tab for start + 打开表窗口时显示“数据”选项卡 - - Display additional labels on the list - + + <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> + <p>启用后,“数据”选项卡将作为第一个选项卡放置在每个表窗口中,而不是位于第二位。</p> - - For regular tables labels will show number of columns, indexes and triggers for each of tables. - + + Place data tab as first tab in a Table Window + 将数据作为表窗口的第一项 - - Display labels for regular tables - + + View windows + 视图窗口 - - Virtual tables will be marked with a 'virtual' label. - + + <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> + <p>启用后,视图窗口将显示数据选项卡,而不是结构选项卡。</p> - - Display labels for virtual tables - + + Open View Windows with the data tab for start + 打开视图窗口时显示“数据”选项卡 - - Expand views node when connected to a database - 当连接到数据库时,展开视图节点 + + <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> + <p>启用后,“数据”选项卡将作为第一个选项卡放置在每个视图窗口中,而不是位于第二个位置。</p> - - If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) - + + Place data tab as first tab in a View Window + 将“数据”选项卡放置为视图窗口的首个选项卡 - - Sort objects (tables, indexes, triggers and views) alphabetically - 按字母顺序排序对象(表,索引,触发器与视图) + + Data types + 数据类型 - - Display system tables and indexes on the list - + + Available editors: + 可用的编辑器: - - - <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> - + + Editors selected for this data type: + 已为该数据类型选择的编辑器: - - Number of memorized table populating configurations - + + Schema editing + 结构编辑 - - Keep NULL value when entering empty value - 当输入空值时保持 NULL 值 + + Number of DDL changes kept in history. + DDL 变更历史的记录数量。 - - <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> - + + DDL history size: + DDL 历史大小: - - Use DEFAULT value (if defined), when committing NULL value - 当提交 NULL 值时使用 DEFAULT 值(如果已被定义) + + Don't show DDL preview dialog when committing schema changes + 提交结构更改时不显示 DDL 预览对话框 - - Table windows - 表窗口 + + SQL queries + SQL 查询 - - Open Table Windows with the data tab for start - + + + Number of queries kept in the history. + 查询历史记录数量。 - - View windows - 视图窗口 + + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> - - Open View Windows with the data tab for start - + + History size: + 历史大小: - - Don't show DDL preview dialog when committing schema changes - 当提交 schema 更改时不要展示 DDL 预览对话框 + + + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> + <p>历史记录中存储查询参数(:param, @param, $param, ?)的最大数量。当您重新在同一名称/位置下使用参数时,SQLiteStudio 将使用最近记忆的值预填充初始化它(仍可修改)。值 1000 应已足够。</p> - - - <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> - + + Execute only the query under the cursor + 只执行输入符所在行的语句 - - Number of memorized query parameters - + + Number of memorized query parameters + 默认的查询参数数量 - - Main window dock areas - 主窗口停靠区域 + + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> - - Left and right areas occupy corners - + + Use scientific notation for real numbers in the grid view + Use scientific notation for real numbers in the grid view - - Top and bottom areas occupy corners - + + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> - - Hide built-in plugins - 隐藏内建插件 + + Limit automatic data column width to (in pixels): + Limit automatic data column width to (in pixels): - - Current style: - 当前风格: + + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> - - Preview - 预览 + + Keep at least the width to show complete column name + Keep at least the width to show complete column name - - Enabled - 已启用 + + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> - - Disabled - 已禁用 + + Wrap lines in SQL editor + 在 SQL 编辑器中换行 - - Active formatter plugin - 启用格式化插件 + + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> - - SQL editor font - SQL 编辑器字体 + + Highlight current query + 高亮当前查询 - - Database list font - 数据库字体 + + Updates + 更新 - - Database list additional label font - 数据库额外标签字体 + + Automatically check for updates at startup + 启动时自动检查更新 - - Data view font - 数据浏览字体 + + Session + 会话 - - Status field font - 状态栏字体 + + Restore last session (active MDI windows) after startup + 启动后恢复上一次会话 - - SQL editor colors - SQL 编辑器颜色 + + Allow multiple instances of the application at the same time + 允许同时打开多个此程序 - - Current line background - 当前行的背景色 + + Status Field + 状态栏 - - <p>SQL strings are enclosed with single quote characters.</p> - <p>单引号内的 SQL 字符串</p> + + <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> + <p>在用户手动关闭了状态面板后,此选项能确保有新消息被出现时状态面板自动被重新开启。如果禁用,状态面板只能由用户手动通过“视图”菜单来重新开启。</p> - - String foreground - 字符串颜色 + + Always open Status panel when new message is printed + 有新消息输出时就打开状态面板 - - <p>Bind parameters are placeholders for values yet to be provided by the user. They have one of the forms:</p><ul><li>:param_name</li><li>$param_name</li><li>@param_name</li><li>?</li></ul> - + + Code syntax colors + Code syntax colors - - Bind parameter foreground - + + Keyword foreground + Keyword foreground - - Highlighted parenthesis background - + + Regular foreground + Regular foreground - - <p>BLOB values are binary values represented as hexadecimal numbers, like:</p><ul><li>X'12B4'</li><li>x'46A2F4'</li></ul> - + + String foreground + String foreground - - BLOB value foreground - BLOB 值的颜色 + + Comment foreground + Comment foreground - - Regular foreground - 背景色 + + Valid objects foreground + Valid objects foreground - - Line numbers area background - 行号的背景色 + + Current query background + Current query background - - Keyword foreground - 关键字的颜色 + + Bind parameter foreground + Bind parameter foreground - - Number foreground - 数字颜色 + + Current line background + Current line background - - Comment foreground - 注释颜色 + + Matched parenthesis background + Matched parenthesis background - - <p>Valid objects are name of tables, indexes, triggers, or views that exist in the SQLite database.</p> - + + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> - - Valid objects foreground - 合法对象的颜色 + + Number foreground + Number foreground - - Data view colors - 数据视图颜色 + + BLOB value foreground + BLOB value foreground - - <p>Any data changes will be outlined with this color, until they're committed to the database.</p> - + + Matched parenthesis foreground + Matched parenthesis foreground - - Uncommitted data outline color - 未提交数据的轮廓颜色 + + Reset to defaults + 重置为默认值 - - <p>In case of error while committing data changes, the problematic cell will be outlined with this color.</p> - + + Filter shortcuts by name or key combination + 以名称或按键组合筛选快捷键 - - Commit error outline color - 提交错误的轮廓颜色 + + Action + 操作 - - NULL value foreground - NULL 值的颜色 + + Key combination + 按键组合 - - Deleted row background - 已删除行的背景色 + + + Language + 语言 - - Database list colors - 数据库列表颜色 + + Changing language requires application restart to take effect. + 语言变更在程序重启后生效。 - - <p>Additional labels are those which tell you SQLite version, number of objects deeper in the tree, etc.</p> - + + Compact layout + 紧凑布局 - - Additional labels foreground - + + <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> + <p>紧凑布局会将界面中的边框与留白减至最小,然后用这些区域展示更多数据。这会使界面看起来有一点不美观,但将可以同时展示更多的数据。</p> - - Status field colors - 状态栏颜色 + + Use compact layout + 使用紧凑布局 - - Information message foreground - 信息颜色 + + Main window dock areas + 主窗口停靠区域 - - Warning message foreground - 警告信息颜色 + + Left and right areas occupy corners + 左右布局 - - Error message foreground - 错误信息颜色 + + Top and bottom areas occupy corners + 上下布局 - - Description: - plugin details - 描述: + + Hide built-in plugins + 隐藏内置插件 - - Category: - plugin details - 分类: + + Current style: + 当前风格: - - Version: - plugin details - 版本: + + Preview + 预览 - - Author: - plugin details - 作者: + + Enabled + 已启用 - - Internal name: - plugin details - 内部名字: + + Disabled + 已禁用 - - Dependencies: - plugin details - 依赖: + + Active formatter plugin + 启用格式化插件 - - Conflicts: - plugin details - 冲突: + + SQL editor font + SQL 编辑器字体 - - Plugin details - 插件详情 + + Database list font + 数据库列表字体 - - Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. - + + Database list additional label font + 数据库列表额外信息字体 - - %1 (built-in) - plugins manager in configuration dialog - %1 (内建) + + Data view font + 数据视图字体 - - Details - 详情 + + Status field font + 状态栏字体 - - No plugins in this category. - 该分类下没有插件。 + + Code assistant settings + Code assistant settings - - Add new data type - 添加新的数据类型 + + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> - - Rename selected data type - 重命名选择的数据类型 + + Automatically trigger the assistant after a dot is typed after an object name + Automatically trigger the assistant after a dot is typed after an object name - - Delete selected data type - 删除已选数据类型 + + Description: + plugin details + 描述: - - Help for configuring data type editors - + + Category: + plugin details + 分类: - - - ConstraintCheckPanel - - The condition - 条件 + + Version: + plugin details + 版本: - - Named constraint: - 已命名的约束: + + Author: + plugin details + 作者: - - On conflict - 当冲突时 + + Internal name: + plugin details + 内部名称: - - Enter a valid condition. - 输入一个合法的条件。 + + Dependencies: + plugin details + 依赖: - - Enter a name of the constraint. - 输一个约束的名称。 + + Conflicts: + plugin details + 冲突: - - - ConstraintDialog - - New constraint - constraint dialog - 新约束 + + Plugin details + 插件详情 - - Create - constraint dialog - 创建 + + Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. + 切换时插件会立即加载/卸载。但此列表的修改仅在点击确定按钮后被保存。 - - Edit constraint - dialog window - 编辑约束 + + %1 (built-in) + plugins manager in configuration dialog + %1(内置) - - Apply - constraint dialog - 应用 + + Details + 详情 - - Primary key - table constraints - 主键 + + No plugins in this category. + 没有此分类下的插件。 - - Foreign key - table constraints - 外键 + + Add new data type + 添加新的数据类型 - - Unique - table constraints - 唯一 + + Rename selected data type + 重命名所选数据类型 - - Not NULL - table constraints - 非 NULL + + Delete selected data type + 删除所选数据类型 - - Check - table constraints - 条件 + + Help for configuring data type editors + 配置数据类型编辑器帮助 - - Collate - table constraints - 排序规则 + + Clear hotkey for this action + Clear hotkey for this action - - Default - table constraints - 默认 + + Restore original hotkey for this action + Restore original hotkey for this action - - - ConstraintTabModel - - Table - table constraints - + + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + + + ConstraintCheckPanel - - Column (%1) - table constraints - 字段(%1) + + The condition + 条件 - - Scope - table constraints - 作用域 + + Named constraint: + 命名的约束: - - Type - table constraints - 类型 + + On conflict + 当冲突时 - - Details - table constraints - 详情 + + Enter a valid condition. + 输入一个有效的条件。 - - Name - table constraints - 名称 + + Enter a name of the constraint. + 输入一个约束名称。 - - - CssDebugDialog + + + ConstraintDialog - - SQLiteStudio CSS console - SQLiteStudio CSS 控制台 + + New constraint + constraint dialog + 新建约束 - - - DataView - - Filter data - data view - 筛选数据 + + Create + constraint dialog + 创建 - - Grid view - 网格视图 + + Edit constraint + dialog window + 编辑约束 - - Form view - 表格视图 + + Apply + constraint dialog + 应用 - - Refresh table data - data view - 刷新表数据 + + Primary key + table constraints + 主键 - - First page - data view - 第一页 + + Foreign key + table constraints + 外键 - - Previous page - data view - 上一页 + + Unique + table constraints + 唯一 - - Next page - data view - 下一页 + + Not NULL + table constraints + 非空 - - Last page - data view - 最后一页 + + Check + table constraints + 条件 - - Filter - 筛选 + + Generated + table constraints + 生成 - - Hit Enter key or press "Apply filter" button on toolbar to apply new value. - 按下回车或点击工具栏上的应用筛选按钮来应用新值。 + + Collate + table constraints + 字符序 - - Show filter inputs per column - data view - 在每一个字段上展示筛选器输入 + + Default + table constraints + 默认 + + + ConstraintTabModel - - Apply filter - data view - 应用筛选 + + Table + table constraints + - - Commit changes for selected cells - data view - 提交选中单元格的更改 + + Column (%1) + table constraints + 列(%1) - - Rollback changes for selected cells - data view - 回滚选中单元格的修改 + + Scope + table constraints + 作用域 - - Show grid view of results - sql editor - 展示结果的网格视图 + + Type + table constraints + 类型 - - Show form view of results - sql editor - 展示结果的表格视图 + + Details + table constraints + 详情 - - Filter by text - data view - 以文本筛选 + + Name + table constraints + 名称 + + + CssDebugDialog - - Filter by the Regular Expression - data view - 以正则表达式筛选 + + SQLiteStudio CSS console + SQLiteStudio CSS 控制台 + + + DataView - - Filter by SQL expression - data view - 以 SQL 表达式筛选 + + Filter data + data view + 筛选数据 - - Tabs on top - data view - + + Grid view + 网格视图 - - Tabs at bottom - data view - + + Form view + 表单视图 - - Place new rows above selected row - data view - 放置新行于选中行之上 + + Refresh table data + data view + 刷新表数据 - - Place new rows below selected row - data view - 放置新行于选中行之下 + + First page + data view + 第一页 - - Place new rows at the end of the data view - data view - 放置新行于数据视图末尾 + + Previous page + data view + 上一页 - - Total number of rows is being counted. -Browsing other pages will be possible after the row counting is done. - + + Next page + data view + 下一页 - - Row: %1 - 行:%1 + + Last page + data view + 最后一页 - - - DbConverterDialog - - Convert database - 转换数据库 + + Commit changes for selected cells + data view + 提交选中单元格的更改 - - Source database - 源数据库 + + Rollback changes for selected cells + data view + 回滚选中单元格的修改 - - Source database version: - 源数据库版本: + + Show grid view of results + data view + 显示结果的网格视图 - - Target database - 目的数据库 + + Show form view of results + data view + 显示结果的表格视图 - - Target version: - 目标版本: + + Filter by text (if contains) + data view + Filter by text (if contains) - - This is the file that will be created as a result of the conversion. - 此文件将会被创建,并作为转换的结果。 + + Filter strictly by text (if equals) + data view + 严格按文本筛选(如果相等) - - Target file: - 目标文件: + + Tabs on top + data view + 顶部标签 - - Name of the new database: - 新数据库的名称: + + Tabs at bottom + data view + 底部标签 - - This is the name that the converted database will be added to SQLiteStudio with. - + + Place new rows above selected row + data view + 放置新行于选中行之上 - - Select source database - 选择源数据库 + + Place new rows below selected row + data view + 放置新行于选中行之下 - - Enter valid and writable file path. - 输入一个合法的且可写的文件的路径。 + + Place new rows at the end of the data view + data view + 放置新行于数据视图末尾 - - Entered file exists and will be overwritten. - 输入一个存在的且可覆写的文件。 + + Total number of rows is being counted. +Browsing other pages will be possible after the row counting is done. + 正在统计总行数。 +请在此操作完成后再浏览其他页面。 - - Enter a not empty, unique name (as in the list of databases on the left). - 输入一个非空,唯一的名称(用于左侧的数据库列表) + + Row: %1 + 行:%1 - - No valid target dialect available. Conversion not possible. - + + Filter + 筛选 - - Select valid target dialect. - + + Hit Enter key or press "Apply filter" button on toolbar to apply new value. + 按回车键或点击工具栏上的“应用筛选”按钮来应用新值。 - - Database %1 has been successfully converted and now is available under new name: %2 - + + Filter by the Regular Expression + data view + 以正则表达式筛选 - - SQL statements conversion - + + Filter by SQL expression + data view + 以 SQL 表达式筛选 - - Following error occurred while converting SQL statements to the target SQLite version: - + + Show filter inputs per column + data view + 在每个列上展示筛选器输入框 - - Would you like to ignore those errors and proceed? - 忽略错误并继续? + + Apply filter + data view + 应用筛选器 - - + + DbDialog - - Database - 数据库 - - - - Database type - 数据类型 - - - - Database driver - 数据库驱动 - - - - Options - 选项 + + Database + 数据库 - - Permanent (keep it in configuration) - 记住该数据库 + + Database type + 数据库类型 - - Test connection - 测试连接 + + Database driver + 数据库驱动 - Name - 名称 + + + File + 文件 - Type - 类型 + + Name (on the list) + 名称(显示在列表中) - - Create new database file - 创建新数据库文件 + + Options + 选项 - - - File - 文件 + + <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> + aasfd + <p>启用此选项后,配置文件中将记住该数据库,并在每次启动 SQLiteStudio 时还原(打开)它。</p> - - Name (on the list) - 名称(显示在列表中) + + Permanent (keep it in configuration) + 记住此数据库 - - <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> - aasfd - <p>如果您想让这个数据库被存储在配置文件中并且在 SQLiteStudio 每次启动中被恢复,请勾选此项。</p> + + Test connection + 测试连接 - - Browse for existing database file on local computer - 浏览计算上已存在的文件 + + Select new or existing file on local computer + 在本地计算机上选择新的或现有的文件 - - Browse - 浏览 + + Browse + 浏览 - - Enter an unique database name. - 请输入一个唯一的数据库名称。 + + Database type not selected. + 未选择数据库类型。 - - This name is already in use. Please enter unique name. - 此名称已被使用,请输入一个唯一的名称。 + + Database path not specified. + 未指定数据库路径。 - - <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> - <p>自动命名已被禁用,因为名称已被手动编辑。为了恢复自动命名,请删除名称中的所有内容。</p> + + Enter an unique database name. + 请输入一个唯一的数据库名称。 - - Enter a database file path. - 输入数据库文件位置。 + + This name is already in use. Please enter unique name. + 此名称已被使用,请输入一个未被占用的名称。 - - This database is already on the list under name: %1 - 该数据库已在列表中:%1 + + <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> + <p>名称已手动编辑,自动命名已禁用。清空名称栏中的内容将恢复自动命名。</p> - - Select a database type. - 选择数据库类型。 + + Enter a database file path. + 输入一个数据库文件的路径。 - Auto-generated - 自动产生 + + This database is already on the list under name: %1 + 该数据库已在列表中,名为:%1 - Type the name - 输入名字 + + Select a database type. + 请选择一个数据库类型。 - - + + DbObjectDialogs - - Delete table - 删除表 + + Delete table + 删除表 - - Are you sure you want to delete table %1? - 确定要删除表“%1”吗? + + Are you sure you want to delete table %1? + 确定要删除表“%1”吗? - - Delete index - 删除索引 + + Delete index + 删除索引 - - Are you sure you want to delete index %1? - 确定要删除索引“%1”吗? + + Are you sure you want to delete index %1? + 确定要删除索引“%1”吗? - - Delete trigger - 删除触发器 + + Delete trigger + 删除触发器 - - Are you sure you want to delete trigger %1? - 确定要删除触发器“%1”吗? + + Are you sure you want to delete trigger %1? + 确定要删除触发器“%1”吗? - - Delete view - 删除视图 + + Delete view + 删除视图 - - Are you sure you want to delete view %1? - 确定要删除视图“%1”吗? + + Are you sure you want to delete view %1? + 确定要删除视图“%1”吗? - - - Error while dropping %1: %2 - + + + Error while dropping %1: %2 + 丢弃 %1 时出错: %2 - - Delete objects - 删除对象 + + Delete objects + 删除对象 - - Are you sure you want to delete following objects: + + Are you sure you want to delete following objects: %1 - 您确认要删除以下对象吗: + 您确认要删除以下对象吗: %1 - - Cannot start transaction. Details: %1 - 无法开始事务。详情:%1 + + Cannot start transaction. Details: %1 + 无法开始事务。详情:%1 - - Cannot commit transaction. Details: %1 - 无法提交事务。详情:%1 + + Cannot commit transaction. Details: %1 + 无法提交事务。详情:%1 - - + + DbTree - - Databases - 数据库 - - - - Filter by name - 按名称过滤 - - - - Copy - 复制 - - - - Paste - 粘贴 - - - - Select all - 全选 - - - - Create a group - 创建分组 - - - - Delete the group - 删除分组 + + Databases + 数据库 - - Rename the group - 重命名分组 + + Filter by name + 按名称过滤 - Add a database - 添加数据库 + + Copy + 复制 - Edit the database - 编辑数据库 + + Paste + 粘贴 - Remove the database - 移除数据库 + + Select all + 全选 - Connect to the database - 连接到数据库 + + Create a group + 创建分组 - Disconnect from the database - 断开数据库连接 + + Delete the group + 删除分组 - - Import - 导入 + + Rename the group + 重命名分组 - Export the database - 导数该数据库 + + &Add a database + 添加数据库(&A) - Convert database type - 转换数据库类型 + + &Edit the database + 编辑数据库(&E) - Vacuum - 清理 + + &Remove the database + 移除数据库(&R) - Integrity check - 检查完整性 + + &Connect to the database + 连接到数据库(&C) - Create a table - 新建表 + + &Disconnect from the database + 断开数据库连接(&D) - Edit the table - 编辑该表 + + Import + 导入 - Delete the table - 删除该表 + + &Export the database + 导出数据库(&E) - - Export the table - 导出该表 + + Vac&uum + 释放空闲占用(VACUUM)(&U) - - Import into the table - 导入到该表 + + &Integrity check + 检查完整性(&I) - - Populate table - 填充表 + + Create a &table + 新建表(&T) - - Create similar table - 创建一个相似的表 + + Edit the t&able + 编辑表(&A) - - Reset autoincrement sequence - 重设 autoincrement + + Delete the ta&ble + 删除表(&B) - Create an index - 创建索引 + + Export the table + 导出表 - Edit the index - 编辑该索引 + + Import into the table + 导入到表 - Delete the index - 删除该索引 + + Populate table + 填充表 - Create a trigger - 创建触发器 + + Create similar table + 创建相似的表 - Edit the trigger - 编辑该触发器 + + Reset autoincrement sequence + 重置自动递增序列 - Delete the trigger - 删除该触发器 + + Create an &index + 创建索引(&I) - Create a view - 创建视图 + + Edit the i&ndex + 编辑索引(&N) - Edit the view - 编辑该视图 + + Delete the in&dex + 删除索引(&D) - Delete the view - 删除该视图 + + Create a trig&ger + 创建触发器(&G) - - Add a column - 添加字段 + + Edit the trigg&er + 编辑触发器(&E) - - Edit the column - 编辑该字段 + + Delete the trigge&r + 删除触发器(&R) - - Delete the column - 删除该字段 + + Create a &view + 创建视图(&V) - - Delete selected items - 删除已选项目 + + Edit the v&iew + 编辑视图(&I) - - Clear filter - 清除过滤器 + + Delete the vi&ew + 删除视图(&E) - Refresh all database schemas - 刷新全部数据库的结构 + + Add a column + 添加字段 - Refresh selected database schema - 刷新已选数据库的结构 + + Edit the column + 编辑字段 - - Execution from file cancelled. Any queries executed so far have been rolled back. - + + Delete the column + 删除字段 - - &Add a database - 添加数据库(&A) + + Delete selected items + 删除已选项目 - - &Edit the database - 编辑数据库(&E) + + Clear filter + 清除过滤器 - - &Remove the database - 移除数据库(&R) + + &Refresh all database schemas + 刷新全部数据库结构(&R) - - &Connect to the database - 连接到数据库(&C) + + Re&fresh selected database schema + 刷新已选数据库结构(&F) - - &Disconnect from the database - 断开数据库连接(&D) + + + Erase table data + 擦除表数据 - - &Export the database - 导出该数据库(&E) + + Open file's directory + 打开文件所在目录 - - Con&vert database type - 转换数据库类型(&V) + + Execute SQL from file + 从文件执行 SQL - - Vac&uum - 清理(&U) + + Increase font size + database list + 增大字号 - - &Integrity check - 检查完整性(&I) + + Decrease font size + database list + 减小字号 - - Create a &table - 新建表(&T) + + + Database + 数据库 - - Edit the t&able - 编辑该表(&A) + + Grouping + 分组 - - Delete the ta&ble - 删除该表(&B) + + Generate query for table + 生成对表的查询 - - Create an &index - 创建索引(&I) + + + Create group + 创建分组 - - Edit the i&ndex - 编辑该索引(&N) + + Group name + 分组名 - - Delete the in&dex - 删除该索引(&D) + + Entry with name %1 already exists in group %2. + 名称 %1 在分组 %2 中已存在。 - - Create a trig&ger - 创建触发器(&G) + + Delete group + 删除分组 - - Edit the trigg&er - 编辑该触发器(&E) - - - - Delete the trigge&r - 删除该触发器(&R) - - - - Create a &view - 创建视图(&V) - - - - Edit the v&iew - 编辑该视图(&I) - - - - Delete the vi&ew - 删除该视图(&E) + + Are you sure you want to delete group %1? +All objects from this group will be moved to parent group. + 确认删除组 %1 吗? +删除后该组下的全部内容将被移动到其所属的父分组中。 - - &Refresh all database schemas - 刷新全部数据库的结构(&R) + + Are you sure you want to remove database '%1' from the list? + 确定要移除数据库 %1 吗? - - Re&fresh selected database schema - 刷新已选数据库的结构(&F) + + Are you sure you want to remove following databases from the list: +%1 + 确定要从列表中移除下列数据库吗: +%1 - - - Erase table data - 擦除该表的数据 + + Remove database + 移除数据库 - - Open file's directory - 打开文件目录 + + + Cannot import, because no import plugin is loaded. + 无法导入,没有加载导入插件。 - - Execute SQL from file - 从文件执行 SQL + + + Cannot export, because no export plugin is loaded. + 无法导出,没有加载导出插件。 - - - Database - 数据库 + + Vacuum (%1) + 释放空闲占用(VACUUM)(%1) - - Grouping - 分组 + + Integrity check (%1) + 完整性检查(%1) - - Generate query for table - 生成对表的查询 + + Reset autoincrement + 重置自动递增 - - - Create group - 创建分组 + + Are you sure you want to reset autoincrement value for table '%1'? + 您确定要重置表“%1”的自动递增值吗? - - Group name - 分组名 + + An error occurred while trying to reset autoincrement value for table '%1': %2 + 重置表“%1”的自动递增值时出错:%2 - - Entry with name %1 already exists in group %2. - + + Autoincrement value for table '%1' has been reset successfully. + 成功重置表“%1”的自动递增值。 - - Delete group - 删除分组 + + Are you sure you want to delete all data from table(s): %1? + 您确定要删除表 %1 的所有数据吗? - - Are you sure you want to delete group %1? -All objects from this group will be moved to parent group. - 确认删除组 %1 吗? -删除后该组下的全部内容将被移动到其所属的父分组中。 + + An error occurred while trying to delete data from table '%1': %2 + 删除表“%1”中的数据时出错:%2 - - Are you sure you want to remove database '%1' from the list? - 您确认要移除数据库 %1 吗? + + All data has been deleted for table '%1'. + 表“%1”中的全部数据已被删除。 - - Are you sure you want to remove following databases from the list: -%1 - 您确认要移除以下存在于列表中的数据库吗: -%1 + + Following objects will be deleted: %1. + 下列对象将被删除:%1。 - - Remove database - 移除数据库 + + Following databases will be removed from list: %1. + 下列数据库将从列表中移除:%1。 - - Vacuum (%1) - 清理(%1) + + Remainig objects from deleted group will be moved in place where the group used to be. + 已删除分组中的剩余对象将被移开。 - - Autoincrement value for table '%1' has been reset successfully. - + + %1<br><br>Are you sure you want to continue? + %1<br><br>确定继续? - - Are you sure you want to delete all data from table(s): %1? - 您想要删除表:%1的所有数据吗? + + Delete objects + 删除对象 + + + DbTreeItemDelegate - - Could not execute SQL, because application has failed to start transaction: %1 - 应用程序无法开始事务,因此无法执行 SQL:%1 + + error + dbtree labels + 错误 - - Could not open file '%1' for reading: %2 - 无法以写模式打开文件 %1:%2 + + (system table) + database tree label + (系统表) - - Could not execute SQL, because application has failed to commit the transaction: %1 - 应用程序无法提交事务,因此无法执行 SQL:%1 + + (virtual) + virtual table label + (虚拟) - - Finished executing %1 queries in %2 seconds. %3 were not executed due to errors. - 在 %2 秒内完成执行 %1 个查询。 %3 个由于错误而没有被执行。 + + (system index) + database tree label + (系统索引) + + + DbTreeModel - - Finished executing %1 queries in %2 seconds. - 在 %2 秒内完成 %1 个查询。 + + Database: %1 + dbtree tooltip + 数据库:%1 - - Could not execute SQL due to error. - 由于错误,无法执行 SQL。 + + URI: + dbtree tooltip + URI: - Delete database - 删除数据库 + + Version: + dbtree tooltip + 版本: - Are you sure you want to delete database '%1'? - 您确定要删除数据库“%1”吗? + + File size: + dbtree tooltip + 文件大小: - - - Cannot import, because no import plugin is loaded. - 未能导入,因为没有导入插件被加载。 + + Encoding: + dbtree tooltip + 编码: - - - Cannot export, because no export plugin is loaded. - 未能导出,因为没有导出插件被加载。 + + Error: + dbtree tooltip + 错误: - Error while executing VACUUM on the database %1: %2 - 在数据库%1上运行 VACUUM 命令时出错:%2 + + Table : %1 + dbtree tooltip + 表:%1 - VACUUM execution finished successfully. - VACUUM 命令执行完成。 + + Columns (%1): + dbtree tooltip + 列(%1) - - Integrity check (%1) - 完整性检查(%1) + + Indexes (%1): + dbtree tooltip + 索引(%1) - - Reset autoincrement - 重置autoincrement + + Triggers (%1): + dbtree tooltip + 触发器(%1) - - Are you sure you want to reset autoincrement value for table '%1'? - 您确定要重设“%1”的autoincrement吗? + + Copy + 复制 - - An error occurred while trying to reset autoincrement value for table '%1': %2 - 在重设表“%1”的autoincrement时出现错误:%2 + + Move + 移动 - Autoincrement value for table '%1' has been reset successfly. - 表“%1”的auincrement重设成功。 + + Include data + 包含数据 - Are you sure you want to delete all data from table '%1'? - 您确定要删除表“%1”中的全部数据吗? + + Include indexes + 包含索引 - - An error occurred while trying to delete data from table '%1': %2 - 删除表“%1”中的数据时出错:%2 + + Include triggers + 包含触发器 - - All data has been deleted for table '%1'. - 表“%1”中的数据全部被删除。 + + Abort + 中止 - - Following objects will be deleted: %1. - 以下内容将被删除:%1。 + + Could not add dropped database file '%1' automatically. Manual setup is necessary. + 无法自动添加拖放的数据库文件 '%1'。需要手动设置。 - - Following databases will be removed from list: %1. - 以下数据库将从列表中移除:%1。 + + Referenced tables + 引用的表 - - Remainig objects from deleted group will be moved in place where the group used to be. - + + Do you want to include following referenced tables as well: +%1 + 是否要包含以下引用的表: +%1 - - %1<br><br>Are you sure you want to continue? - %1<br><br>继续? + + Name conflict + 名称冲突 - - Delete objects - 删除对象 + + Following object already exists in the target database. +Please enter new, unique name, or press '%1' to abort the operation: + 下列对象已存在于目标数据库。 +请输入一个新的不重复的名称,或按下 '%1' 中止操作: - - - DbTreeItemDelegate - - error - dbtree labels - 错误 + + SQL statements conversion + SQL 语句转换 - - (system table) - database tree label - (系统表) + + Following error occurred while converting SQL statements to the target SQLite version: + 将 SQL 语句转换为目标 SQLite 版本时发生以下错误: - - (virtual) - virtual table label - (虚拟) + + Would you like to ignore those errors and proceed? + 是否忽略错误并继续? + + + DdlHistoryWindow - - (system index) - database tree label - (系统索引) + + Filter by database: + 按数据库过滤: - - - DbTreeModel - - Database: %1 - dbtree tooltip - 数据库:%1 + + Clear entire history + 清除全部历史记录 - - Version: - dbtree tooltip - 版本: + + -- Queries executed on database %1 (%2) +-- Date and time of execution: %3 +%4 + -- 在数据库 %1 (%2) 执行的查询 +-- 执行日期和时间:%3 +%4 - - File size: - dbtree tooltip - 文件大小: + + Clear history + 清除历史记录 - - Encoding: - dbtree tooltip - 编码: + + Are you sure you want to erase entire DDL history? + 你确定要清除全部 DDL 历史记录吗? - - Error: - dbtree tooltip - 错误: + + DDL history + DDL 历史 + + + DdlPreviewDialog - - Table : %1 - dbtree tooltip - 表:%1 + + Queries to be executed + 将要执行的语句 - - Columns (%1): - dbtree tooltip - 字段(%1) + + Don't show again + 不再显示 + + + DebugConsole - - Indexes (%1): - dbtree tooltip - 索引(%1) + + SQLiteStudio Debug Console + SQLiteStudio 调试终端 + + + EditorWindow - - Triggers (%1): - dbtree tooltip - 触发器(%1) + + SQL editor + SQL 编辑器 - - Copy - 复制 + + Query + 查询 - - Move - 移动 + + History + 历史 - - Include data - 包含数据 + + Results in the separate tab + 在新选项卡中显示结果 - - Include indexes - 包含索引 + + Results below the query + 在查询下方显示结果 - - Include triggers - 包含触发器 + + + SQL editor %1 + SQL 编辑器 %1 - - Abort - 中止 + + + Results + 结果 - - Could not add dropped database file '%1' automatically. Manual setup is necessary. - + + Execute query + 执行语句 - - Referenced tables - 参照表 + + Explain query + 解释查询 - - Do you want to include following referenced tables as well: -%1 - + + Clear execution history + sql editor + 清除执行历史 - - Name conflict - 名字冲突 + + Export results + sql editor + 导出结果 - - Following object already exists in the target database. -Please enter new, unique name, or press '%1' to abort the operation: - 以下的对象已经存在于目标数据库中。 -请输入一个新的,唯一的名称,或按下 '%1' 终止操作: + + Create view from query + sql editor + 从查询创建视图 - - SQL statements conversion - + + Previous database + 前一个数据库 - - Following error occurred while converting SQL statements to the target SQLite version: - + + Next database + 后一个数据库 - - Would you like to ignore those errors and proceed? - 忽略错误并继续? + + Show next tab + sql editor + 显示下一个标签 - - - DdlHistoryWindow - - Filter by database: - 数据库过滤: + + Show previous tab + sql editor + 显示上一个标签 - - -- Queries executed on database %1 (%2) --- Date and time of execution: %3 -%4 - - - - - DDL history - DDL 历史 + + Focus results below + sql editor + 切换焦点到下方的结果 - - - DdlPreviewDialog - - Queries to be executed - 将要执行的语句 + + Focus SQL editor above + sql editor + 切换焦点到上方的 SQL 编辑器 - - Don't show again - 不再显示 + + Delete selected SQL history entries + sql editor + 删除选中的 SQL 历史记录项 - - - DebugConsole - - SQLiteStudio Debug Console - SQLiteStudio 调试终端 + + Execute single query under cursor + 执行光标位置的单个查询 - - - EditorWindow - - Query - 查询 + + Execute all queries in editor + 在编辑器中执行所有查询 - - History - 历史 + + Active database (%1/%2) + 活动数据库 (%1/%2) - - Results in the separate tab - 结果在新标签中打开 + + Query finished in %1 second(s). Rows affected: %2 + 查询用时 %1 秒。影响行数:%2 - - Results below the query - 结果在当前页打开 + + Query finished in %1 second(s). + 查询用时 %1 秒。 - - - SQL editor %1 - SQL 编辑器 %1 + + Clear execution history + 清除执行历史 - - Results - 结果 + + Are you sure you want to erase the entire SQL execution history? This cannot be undone. + 确定要删除全部的 SQL 执行历史吗?删除后不能恢复。 - - Execute query - 执行语句 + + Cannot export, because no export plugin is loaded. + 无法导出,没有加载导出插件。 - - Explain query - + + No database selected in the SQL editor. Cannot create a view for unknown database. + 没有在 SQL 编辑器中选中数据库。无法为未知的数据库创建视图。 - - Clear execution history - sql editor - 清除执行历史 + + Editor window "%1" has uncommitted data. + 编辑器窗口“%1”内有未提交的数据。 + + + ErrorsConfirmDialog - - Export results - sql editor - 导出结果 + + Errors + 错误 - - Create view from query - sql editor - 从query中创建视图 + + Following errors occured: + 发生了以下错误: - - Previous database - 前一个数据库 + + Would you like to proceed? + 仍要继续吗? + + + ExecFromFileDialog - - Next database - 下一个数据库 + + Execute SQL from file + 从文件执行 SQL - - Show next tab - sql editor - 显示下一个标签 + + Input file + 输入文件 - - Show previous tab - sql editor - 显示上一个标签 + + Path to file + 文件路径 - - Focus results below - sql editor - + + Browse for file + 浏览文件 - - Focus SQL editor above - sql editor - + + Options + 选项 - - Delete selected SQL history entries - sql editor - + + File encoding + 文件编码 - - Active database (%1/%2) - + + Skip failing SQL statements + 跳过失败的 SQL 语句 - - Query finished in %1 second(s). Rows affected: %2 - 查询在 %1 秒内完成。影响的行数:%2 + + SQL scripts (*.sql);;All files (*) + SQL 脚本 (*.sql);;所有文件 (*) - - Query finished in %1 second(s). - 查询在 %1 秒内完成。 + + Execute SQL file + 执行 SQL 文件 - - Clear execution history - 清除执行历史 + + Please provide file to be executed. + 请提供一个文件以供执行。 - - Are you sure you want to erase the entire SQL execution history? This cannot be undone. - 确定要删除全部的 SQL 执行历史吗?删除后不能恢复。 + + Provided file does not exist or cannot be read. + 提供的文件不存在或无法读取。 + + + ExportDialog - - Cannot export, because no export plugin is loaded. - 未能导出,因为没有导出插件被加载。 + + Export + 导出 - - No database selected in the SQL editor. Cannot create a view for unknown database. - 没有在 SQL 编辑器中选中的数据库。无法为未知数据库创建视图。 + + What do you want to export? + 您想导出什么? - - Editor window "%1" has uncommitted data. - 编辑器“%1”里有未提交的数据库。 + + A database + 数据库 - Editor window "%1" has uncommited data. - 编辑器“%1”里有未提交的数据库。 + + A single table + 一张表 - - - ErrorsConfirmDialog - - Errors - 错误 + + Query results + 查询结果 - - Following errors occured: - 发生了以下错误: + + Table to export + 要导出的表 - - Would you like to proceed? - 仍然继续吗? + + Database + 数据库 - - - ExecFromFileDialog - - Execute SQL from file - 从文件执行 SQL + + Table + - - Input file - 输入文件 + + Options + 选项 - - Path to file - 文件路径 + + When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. + 不选中此选项时,仅导出表的 DDL(CREATE TABLE 语句)。 - - Browse for file - 浏览文件 + + Export table data + 导出表的数据 - - Options - 选项 + + Export table indexes + 导出表的索引 - - File encoding - 文件编码 + + Export table triggers + 导出表的触发器 - - Skip failing SQL statements - 跳过失败的 SQL statements + + Note, that exporting table indexes and triggers may be unsupported by some output formats. + 注意,某些输出格式可能不支持导出表索引和触发器。 - - SQL scripts (*.sql);;All files (*) - SQL 脚本 (*.sql);;所有文件 (*) + + Select database objects to export + 选择要导出的数据库对象 - - Execute SQL file - 执行 SQL 文件 + + Export data from tables + 从表中导出数据 - - Please provide file to be executed. - 请提供一个文件以供执行。 + + Select all + 全选 - - Provided file does not exist or cannot be read. - 提供的文件不存在或无法读取。 + + Deselect all + 全不选 - - - ExportDialog - - Export - 导出 + + + Database: + 数据库: - - What do you want to export? - 您想导出什么? + + Query to export results for + 导出结果所需的查询 - - A database - 数据库 + + Query to be executed for results: + 对导出结果执行的查询: - - A single table - 一张表 + + Export format and options + 导出格式和选项 - - Query results - 查询结果 + + Export format + 导出格式 - - Table to export - 要导出的表 + + Output + 输出 - - Database - 数据库 + + Exported file path + 导出文件路径 - - Table - + + Clipboard + 剪贴板 - - Options - 选项 + + File + 文件 - - When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. - + + Exported text encoding: + 导出文本编码: - - Export table data - 导出表里的数据 + + Export format options + 导出格式选项 - - Export table indexes - 导出表的索引 + + Cancel + 取消 - - Export table triggers - 导出表的触发器 + + + + Select database to export. + 选择要导出的数据库。 - - Note, that exporting table indexes and triggers may be unsupported by some output formats. - 注意,某些输出格式可能不支持导出表索引与触发器。 + + Select table to export. + 选择要导出的表。 - - Select database objects to export - 选择数据库对象进行导出 + + Enter valid query to export. + 输入要导出的有效查询。 - - Export data from tables - 从表中导出数据 + + Select at least one object to export. + 至少选择一个对象进行导出。 - - Select all - 全选 + + You must provide a file name to export to. + 您必须选择一个导出文件。 - - Deselect all - 全不选 + + Path you provided is an existing directory. You cannot overwrite it. + 您提供的路径是一个现存的目录,不能覆盖。 - - - Database: - 数据库: + + The directory '%1' does not exist. + 目录 '%1' 不存在。 - - Query to export results for - + + The file '%1' exists and will be overwritten. + 文件“%1”存在且将被覆盖。 - - Query to be executed for results: - + + All files (*) + 所有文件 (*) - - Export format and options - 导出格式和选项 + + Pick file to export to + 选择文件导出到 - - Export format - 导出格式 + + Internal error during export. This is a bug. Please report it. + 导出时发生内部错误。这是一个 Bug,请反馈。 + + + FileExecErrorsDialog - - Output - 输出 + + Execution errors + 执行错误 - - Exported file path - 导出文件路径 + + Following errors were encountered during execution of SQL statements from the file: + 从文件执行 SQL 语句时遇到以下错误: - - Clipboard - 剪贴板 + + SQL + SQL - - File - 文件 + + Error + 错误 - - Exported text encoding: - 导出编码: + + Statements that were executed successfully were commited. + 成功执行的语句已提交。 - - Export format options - 导出格式选项 + + Statements that were executed successfully were rolled back. + 成功执行的语句已回滚。 + + + FkComboBox - - Cancel - 取消 + + Cannot edit this cell. Details: %1 + 无法编辑此单元格。详情:%1 + + + FontEdit - - - - Select database to export. - 选择要导出的数据库。 + + Choose font + font configuration + 选择字体 + + + Form - - Select table to export. - 选择要导出的表。 + + Active SQL formatter plugin + 激活 SQL 语句格式化插件 + + + FormView - - Enter valid query to export. - + + Commit row + form view + 提交行 - - Select at least one object to export. - 至少选择一个对象进行导出。 + + Rollback row + form view + 回滚行 - - You must provide a file name to export to. - 您必须选择一个导出文件。 + + First row + form view + 首行 - - Path you provided is an existing directory. You cannot overwrite it. - 您提供的路径是一个存在的目录,您不能覆写它。 + + Previous row + form view + 上一行 - - The directory '%1' does not exist. - 目录 '%1' 不存在。 + + Next row + form view + 下一行 - - The file '%1' exists and will be overwritten. - 文件“%1”存在且将被覆写。 + + Last row + form view + 末行 - - All files (*) - 所有文件 (*) + + Insert new row + form view + 插入新行 - - Pick file to export to - 选择一个导出文件 + + Delete current row + form view + 删除当前行 + + + FunctionsEditor - - Internal error during export. This is a bug. Please report it. - 导出时发生了内部错误,这是一个 Bug,请反馈它。 + + Filter functions + 筛选函数 - - - FileExecErrorsDialog - - Execution errors - 执行错误 + + Input arguments + 输入参数 - - Following errors were encountered during execution of SQL statements from the file: - 从文件执行 SQL statements 期间遇到以下错误: + + Undefined + 未定义 - - SQL - SQL + + Databases + 数据库 - - Error - 错误 + + Register in all databases + 在所有数据库中注册 - - Statements that were executed successfully were commited. - 成功执行的 Statements 已被提交。 + + Register in following databases: + 在下列数据库中注册: - - Statements that were executed successfully were rolled back. - 成功执行的 Statements 已被回滚。 + + Type: + 类型: - - - FontEdit - - Choose font - font configuration - 字体选择 + + Function name: + 函数名: - - - Form - - Active SQL formatter plugin - 激活 SQL 语句格式化插件 + + Implementation language: + 实现语言: - - - FormView - - Commit row - form view - 提交 + + Deterministic + Deterministic - - Rollback row - form view - 回滚 + + Initialization code: + 初始化代码: - - First row - form view - 首行 + + + Function implementation code: + 函数实现代码: - - Previous row - form view - 前一行 + + Final step implementation code: + 最终一步实现代码: - - Next row - form view - 下一行 + + SQL functions editor + SQL 函数编辑器 - - Last row - form view - 末行 + + Commit all function changes + 提交所有对函数的更改 - - Insert new row - form view - 插入新行 + + Rollback all function changes + 回滚所有对函数的更改 - - Delete current row - form view - 删除当前行 + + Create new function + 新建函数 - - - FunctionsEditor - - Filter funtions - 过滤函数 + + Delete selected function + 删除已选函数 - - Function name: - 函数名: + + Custom SQL functions manual + 自定义 SQL 函数手册 - - Implementation language: - 实现语言: + + Add function argument + 添加函数参数 - - Type: - 类型: + + Rename function argument + 重命名函数参数 - - Input arguments - 输入参数 + + Delete function argument + 删除函数参数 - - Undefined - Undefined + + Move function argument up + 上移函数参数 - - Databases - 数据库 + + Move function argument down + 下移函数参数 - - Register in all databases - 在所有数据库中注册 + + Scalar + 标量函数 - - Register in following databases: - 在下列数据库中注册: + + Aggregate + 聚合函数 - - Initialization code: - 初始化代码: + + Enter a non-empty, unique name of the function. + 请输入非空且唯一的函数名称。 - - - Function implementation code: - 函数实现代码: + + Pick the implementation language. + 选择实现语言。 - - Final step implementation code: - 最终一步实现代码: + + Per step code: + 步进代码: - - SQL function editor - SQL函数编辑器 + + Enter a non-empty implementation code. + 请输入非空的实现代码。 - - Commit all function changes - 提交所有对函数的更改 + + argument + new function argument name in function editor window + 参数 - - Rollback all function changes - 回滚所有对函数的更改 + + Functions editor window has uncommitted modifications. + 函数编辑器窗口有未提交的更改。 + + + ImportDialog - - Create new function - 新建函数 + + Import data + 导入数据 - - Delete selected function - 删除已选函数 + + Table to import to + 导入目标 - - Custom SQL functions manual - 自定义SQL函数手册 + + Table + - - Add function argument - 添加函数参数 + + Database + 数据库 - - Rename function argument - 重命名函数参数 + + Data source to import from + 导入数据源 - - Delete function argument - 删除函数参数 + + Data source type + 数据源类型 - - Move function argument up - 上移函数参数 + + Options + 选项 - - Move function argument down - 下移函数参数 + + Text encoding: + 文本编码: - - Scalar - + + Input file: + 输入文件: - - Aggregate - + + <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> + <p>如果启用,则导入期间遇到的任何约束违背、无效数据格式(错误列数)或其他问题都将被忽略,导入不中止。</p> - - Enter a non-empty, unique name of the function. - 输入非空唯一的函数名称 + + Ignore errors + 忽略错误 - - Pick the implementation language. - 选择实现语言。 + + Data source options + 数据源选项 - - Per step code: - 每一步的代码: + + Cancel + 取消 - - Enter a non-empty implementation code. - 输入非空实现代码。 + + If you type table name that doesn't exist, it will be created. + 如果您输入的表不存在,则将创建该表。 - - argument - new function argument name in function editor window - + + Enter the table name + 输入表名 - - Functions editor window has uncommitted modifications. - 函数编辑器窗口有未提交的更改。 + + Select import plugin. + 选择导入插件。 - - - ImportDialog - - Import data - 导入数据 + + You must provide a file to import from. + 您必须提供一个导入源文件。 - - Table to import to - 目的表 + + The file '%1' does not exist. + 文件“%1”不存在。 - - Table - + + Path you provided is a directory. A regular file is required. + 您提供的是一个目录,而需要的是一个一般文件。 - - Database - 数据库 + + Pick file to import from + 选择要导入的文件 + + + IndexDialog - - Data source to import from - 数据源 + + + Index + 索引 - - Data source type - 数据源类型 + + Column + - - Options - 选项 + + Sort + 排序 - - Input file: - 输入文件: + + Collation + 字符序 - - Text encoding: - 文本编码: + + On table: + 表: - - <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> - + + Delete selected indexed expression + 删除选定的索引表达式 - - Ignore errors - 忽略错误 + + Moves selected index column up in the order, making it more significant in the index. + 向上移动选中的索引,使它在索引中变得更重要。 - - Data source options - 数据源选项 + + Moves selected index column down in the order, making it less significant in the index. + 向下移动选中的索引,使它在索引中变得不重要。 - - Cancel - 取消 + + Partial index condition + 部分索引条件 - - If you type table name that doesn't exist, it will be created. - 如果输入的表不存在,则新建该表。 + + Unique index + 唯一索引 - - Enter the table name - 输入表名 + + Index name: + 索引名: - - Select import plugin. - 选择导入插件。 + + Edit selected indexed expression + 编辑选定的索引表达式 - - You must provide a file to import from. - 必须提供一个导入文件。 + + Add indexed expression + 添加索引表达式 - - The file '%1' does not exist. - 文件“%1”不存在。 + + DDL + DDL - - Path you provided is a directory. A regular file is required. - 你提供的是一个目录。我们需要的是文件。 + + Tried to open index dialog for closed or inexisting database. + 试图打开已关闭或不存在的数据库的索引对话框。 - - Pick file to import from - 选择要导入的文件 + + Could not process index %1 correctly. Unable to open an index dialog. + 无法正确处理索引 %1。无法打开索引对话框。 - - - IndexDialog - - - Index - 索引 + + Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. + 唯一索引不能有索引表达式。从下面的列表中删除表达式,或取消选中此选项。 - - On table: - 在表: + + Pick the table for the index. + 为索引选择一个表。 - - Index name: - 索引名: + + Select at least one column. + 选择至少一个列。 - - Partial index condition - + + Enter a valid condition. + 输入一个有效的条件。 - - Unique index - 唯一索引 + + default + index dialog + 默认 - - Column - 字段 + + Sort order + table constraints + 排序 - - Collation - 排序规则 + + + Error + index dialog + 错误 - - Sort - 排序 + + Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? + 无法创建唯一索引,因为选中的列中的值不是唯一的。您想要执行 SELECT 查询以查看有问题的值吗? - - Delete selected indexed expression - + + An error occurred while executing SQL statements: +%1 + 在执行 SQL 语句时发生了错误:%1 + + + IndexExprColumnDialog - - Moves selected index column up in the order, making it more significant in the index. - 向上移动选中的索引,使它在索引中变得更重要。 + + Indexed expression + 索引表达式 - - Moves selected index column down in the order, making it less significant in the index. - 向下移动选中的索引,使它在索引中变得不重要。 + + Expression to index + 索引表达式 - - Edit selected indexed expression - + + This expression is already indexed by the index. + 此表达式已被该索引所索引。 - - Add indexed expression - + + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. + 列应该直接索引而非通过表达式。扩展此表达式来包含列名称以外的内容,或者中止并在索引对话框中直接选择此列。 - - DDL - DDL + + Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. + 列 '%1' 不属于此索引所在的表。索引表达式只能引用索引表中的列。 - - Tried to open index dialog for closed or inexisting database. - + + It's forbidden to use 'SELECT' statements in indexed expressions. + 索引表达式中禁止使用 'SELECT' 语句。 - - Could not process index %1 correctly. Unable to open an index dialog. - + + Enter an indexed expression. + 请输入一个索引表达式。 - - Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. - + + Invalid expression. + 无效的表达式。 + + + LanguageDialog - - Pick the table for the index. - 为索引选择一个表。 + + Language + 语言 - - Select at least one column. - 至少选择一列 + + Please choose language: + 请选择一种语言: + + + MainWindow - - Enter a valid condition. - 输入一个合法的条件。 + + Database toolbar + 数据库工具栏 - - default - index dialog - 默认 + + Structure toolbar + 结构工具栏 - - Sort order - table constraints - 排序 + + Tools + 工具 - - - Error - index dialog - 错误 + + Window list + 窗口列表 - - Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? - + + View toolbar + 视图工具栏 - - An error occurred while executing SQL statements: -%1 - 在执行 SQL 语句时发生了错误:%1 + + Configuration widgets + 配置部件 - - - IndexExprColumnDialog - - Indexed expression - + + Syntax highlighting engines + 语法高亮引擎 - - Expression to index - + + Data editors + 数据编辑器 - - This expression is already indexed by the index. - + + Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. + 正在以调试模式运行。按下 %1 或使用 帮助 - 打开调试控制台 菜单来打开调试控制台。 - - Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. - + + Running in debug mode. Debug messages are printed to the standard output. + 正在以调试模式运行。调试信息将会被输出在标准输出中。 - - Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. - + + You need to restart application to make the language change take effect. + 语言变更在程序重启后生效。 - - It's forbidden to use 'SELECT' statements in indexed expressions. - + + Open SQL &editor + 打开 SQL 编辑器(&E) - - Enter an indexed expression. - + + Open DDL &history + 打开 DDL 历史(&H) - - Invalid expression. - 无效的表达式。 + + Open SQL &functions editor + 打开 SQL 函数编辑器(&F) - - - LanguageDialog - - Language - 语言 + + Open code &snippets editor + 打开代码片段编辑器 - - Please choose language: - 请选择一门语言: + + Open &collations editor + 打开字符序编辑器(&C) - - - MainWindow - - Database toolbar - 数据库工具栏 + + Open ex&tension manager + 打开扩展管理器(&T) - - Structure toolbar - 结构工具栏 + + &Import + 导入(&I) - - Tools - 工具 + + E&xport + 导出(&X) - - Window list - 窗口列表 + + Open confi&guration dialog + 打开配置对话框(&G) - - View toolbar - 查看这个词,在后面的翻译中翻译起来,有些地方的语句极其不通顺,故使用视图代替之。而且根据其菜单结构,主要是排布窗口,控件,比起查看,视图更佳 - 视图工具栏 + + &Tile windows + 平铺窗口(&T) - - Configuration widgets - 配置部件 + + Tile windows &horizontally + 水平排列窗口(&H) - - Syntax highlighting engines - 语法高亮引擎 + + Tile windows &vertically + 垂直排列窗口(&V) - - Data editors - 数据编辑器 + + &Cascade windows + 层叠窗口(&C) - - Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. - 正在以调试模式运行。按下 %1 或使用 帮助/打开调试控制台 菜单来打开调试控制台。 + + Next window + 下一个窗口 - - Running in debug mode. Debug messages are printed to the standard output. - 正在以调试模式运行。调试信息将会被输出在标准输出中。 + + Previous window + 上一个窗口 - - You need to restart application to make the language change take effect. - 更改语言后重启程序生效。 + + Hide status field + 隐藏状态栏 - Open SQL editor - 打开SQL编辑器 + + Close &all windows + 关闭全部窗口(&A) - Open DDL history - 打开数据库定义(DDL)历史 + + Re&store recently closed window + 还原最近关闭的窗口(&S) - Open SQL functions editor - 打开SQL函数编辑器 + + Close current &window + 关闭当前窗口 - Import - 导入 + + Close &other windows + 关闭其他窗口 - Export - 导出 + + Close windows on the &left + 关闭左侧窗口 - Open configuration dialog - 打开配置对话框 + + Close windows on the &right + 关闭右侧窗口 - Tile windows - 平铺窗口 + + Re&name selected window + 重命名选中窗口 - Tile windows horizontally - 水平排列窗口 + + Open Debug Console + 打开调试终端 - Tile windows vertically - 垂直排列窗口 + + Open CSS Console + 打开 CSS 控制台 - Cascade windows - 层叠窗口 + + Report a &bug + 提报 Bug (&B) - - Next window - 下一个窗口 + + D&onate + 捐赠(&O) - - Previous window - 上一个窗口 + + Propose a new &feature + 提议新增功能(&F) - - Hide status field - 隐藏状态栏 + + &About + 关于(&A) - Close selected window - 关闭当前窗口 + + &Licenses + 许可协议(&L) - Close all windows but selected - 关闭其它窗口 + + Open home &page + 访问主页(&P) - Close all windows - 关闭全部窗口 + + User &Manual + 用户手册(&M) - Restore recently closed window - 恢复最近关闭的窗口 + + SQLite &documentation + SQLite 文档(&D) - Rename selected window - 重命名当前窗口 + + Bugs and feature &requests + Bug 与功能请求(&R) - - Open Debug Console - 打开调试终端 + + Quit + 退出 - - Open CSS Console - 打开 CSS 控制台 + + Check for &updates + 检查更新(&U) - Report a bug - 提交Bug + + &Database + menubar + 数据库(&D) - Propose a new feature - 提交新功能建议 + + &Structure + menubar + 结构(&S) - About - 关于 + + &View + menubar + 视图(&V) - Licenses - 许可 + + Window list + menubar view menu + 窗口列表 - Open home page - 访问主页 + + &Tools + menubar + 工具(&T) - Open forum page - 访问论坛 + + &Help + 帮助(&H) - User Manual - 用户手册 + + Could not set style: %1 + main window + 未能设置风格:%1 - SQLite documentation - SQLite文档 + + Cannot export, because no export plugin is loaded. + 无法导出,没有加载导出插件。 - Report history - 报告历史 + + Cannot import, because no import plugin is loaded. + 无法导入,没有加载导入插件。 - Check for updates - 检查更新 + + Rename window + 重命名窗口 - Database - menubar - 数据库 + + Enter new name for the window: + 请输入窗口的新名称: - Structure - menubar - 结构 + + New updates are available. <a href="%1">Click here for details</a>. + 有新更新 <a href="%1">点此查看更新详情</a>. - View - menubar - 查看 + + You're running the most recent version. No updates are available. + 您使用的是最新版,不需要更新。 - - Window list - menubar view menu - 窗口列表 + + Database passed in command line parameters (%1) was already on the list under name: %2 + 命令行参数传递的数据库(%1)已在列表中,名为:%2 - Tools - menubar - 工具 + + Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 + 命令行参数传递的数据库(%1)已临时添加到列表中,名为:%2 - Help - 帮助 + + Could not add database %1 to list. + 未能将数据 %1 添加到列表 + + + MdiWindow - - Open SQL &editor - 打开 SQL 编辑器(&E) + + Uncommitted changes + 未提交的更改 - - Open DDL &history - 打开数据库定义(DDL)历史(&H) + + Close anyway + 仍然关闭 - - Open SQL &functions editor - 打开 SQL 函数编辑器(&F) + + Don't close + 不关闭 + + + MultiEditor - - Open &collations editor - 打开排序规则编辑器(&C) + + Null value + multieditor + Null 值 - - Open ex&tension manager - 打开扩展管理器(&T) + + Configure editors for this data type + 为数据类型设置编辑器 - - &Import - 导入(&I) + + Open another tab + 打开另一个选项卡 - - E&xport - 导出(&X) + + Foreign Key + 外键 - - Open confi&guration dialog - 打开配置对话框(&G) + + Data editor plugin '%1' not loaded, while it is defined for editing '%2' data type. + 数据编辑器插件 '%1' 未加载,而它已被定义为编辑 '%1' 数据类型的编辑器。 {1'?} {2'?} {1' or 2'?} - - &Tile windows - 平铺窗口(&T) + + Deleted + multieditor + 已删除 - - Tile windows &horizontally - 水平排列窗口(&H) + + Read only + multieditor + 只读 + + + MultiEditorBoolPlugin - - Tile windows &vertically - 垂直排列窗口(&V) + + Boolean + 布尔 + + + MultiEditorDatePlugin - - &Cascade windows - 层叠窗口(&C) + + Date + 日期 + + + MultiEditorDateTimePlugin - - Close selected &window - 关闭当前窗口(&W) + + Date & time + 日期和时间 + + + MultiEditorHexPlugin - - Close all windows &but selected - 关闭其它窗口(&B) + + Hex + 十六进制 + + + MultiEditorNumericPlugin - - Close &all windows - 关闭全部窗口(&A) + + Number + numeric multi editor tab name + 数值 + + + MultiEditorText - - Re&store recently closed window - 恢复最近关闭的窗口(&S) + + Tab changes focus + Tab 键更改焦点 - - &Rename selected window - 重命名当前窗口(&R) + + Cut + 剪切 - - Report a &bug - 提交 Bug (&B) + + Copy + 复制 - - Propose a new &feature - 提交新功能建议(&F) + + Paste + 粘贴 - - &About - 关于(&A) + + Delete + 删除 - - &Licenses - 许可(&L) + + Undo + 撤销 - - Open home &page - 访问主页(&P) + + Redo + 重做 + + + MultiEditorTextPlugin - - Open fo&rum page - 访问论坛(&R) + + Text + 文本 + + + MultiEditorTimePlugin - - User &Manual - 用户手册(&M) + + Time + 时间 + + + NewConstraintDialog - - SQLite &documentation - SQLite 文档(&D) + + New constraint + 新约束 - - Bugs and feature &requests - 提交 Bug 与请求新功能(&R) + + + Primary Key + new constraint dialog + 主键 - - Check for &updates - 检查更新(&U) + + + Foreign Key + new constraint dialog + 外键 - - &Database - menubar - 数据库(&D) + + + Unique + new constraint dialog + 唯一 - - &Structure - menubar - 结构(&S) + + + Check + new constraint dialog + 条件 - - &View - menubar - 视图(&V) + + Not NULL + new constraint dialog + 非空 - - &Tools - menubar - 工具(&T) + + Collate + new constraint dialog + 字符序 - - &Help - 帮助(&H) + + Generated + new constraint dialog + 生成 - - Could not set style: %1 - main window - 未能设置风格:%1 + + Default + new constraint dialog + 默认 + + + NewVersionDialog - - Cannot export, because no export plugin is loaded. - 未能导出,因为没有导出插件被加载。 + + SQLiteStudio updates + SQLiteStudio 更新 - - Cannot import, because no import plugin is loaded. - 未能导入,因为没有导入插件被加载。 + + New version is available! + 有新版本可用! - - Rename window - 重命名窗口 + + Download new version! + 下载新版本 - - Enter new name for the window: - 窗口的新名称: + + New version package will be downloaded. It will be up to you to install it whenever you're ready. + 下载新版本程序包。将在准备就绪时提醒您安装。 - - New updates are available. <a href="%1">Click here for details</a>. - 有新更新 <a href="%1">点此查看更新详情</a>. + + Open SQLiteStudio home page. + 打开 SQLiteStudio 主页 - - You're running the most recent version. No updates are available. - 您使用的是最新版,不需要更新。 + + Read release notes && download package yourself. + 阅读发行说明和自行下载程序包。 - - Database passed in command line parameters (%1) was already on the list under name: %2 - + + Just close this window. + 关闭此窗口。 - - Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 - + + Check for updates on startup + 在启动时检查更新 - - Could not add database %1 to list. - 未能将数据 %1 添加到列表 + + Not now. + 暂不更新 - - - MdiWindow + + + PopulateConfigDialog - Uncommited changes - 未提交的更改 + + Populating configuration + 配置填充 - - Uncommitted changes - 未提交的更改 + + Configuring <b>%1</b> for column <b>%2</b> + 给字段 <b>%2</b> 配置 <b>%1</b> + + + PopulateDialog - - Close anyway - 仍然关闭 + + Populate table + 填充表 - - Don't close - 不关闭 + + Database + 数据库 - - - MultiEditor - - Null value - multieditor - Null 值 + + Table + - - Configure editors for this data type - 为数据类型设置编辑器 + + Columns + - - Open another tab - 打开另一个选项卡 + + Number of rows to populate: + 填充的行数: - - Data editor plugin '%1' not loaded, while it is defined for editing '%1' data type. - 数据编辑器插件 '%1' 没有被加载,尽管它被定义为编辑 '%1' 数据类型。 + + Populate + populate dialog button + 填充 - - Deleted - multieditor - 已删除 + + Abort + 中止 - - Read only - multieditor - 只读 + + Configure + 配置 - - - MultiEditorBool - Boolean - 布尔 + + Populating configuration for this column is invalid or incomplete. + 此列的填充配置无效或不完整。 - - - MultiEditorBoolPlugin - - Boolean - 布尔 + + Select database with table to populate + 选择要填充表的数据库 - - - MultiEditorDate - Date - 日期 + + Select table to populate + 选择要填充的表 - - - MultiEditorDatePlugin - - Date - 日期 + + You have to select at least one column. + 您须选择至少一个字段。 - - - MultiEditorDateTime + + + QObject - Date & time - 日期和时间 + + Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). + 无法编辑列,它是复合 %1 语句(包含 %2、%3 或 %4 关键字)的结果。 - - - MultiEditorDateTimePlugin - - Date & time - 日期和时间 + + The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. + 查询执行机制提取 ROWID 的属性时遇到问题。这可能是软件中的 bug,您可以报告该问题。 - - - MultiEditorHex - Hex - 十六进制 + + Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. + 请求的列是一个 SQL 表达式的结果,而非普通的列。不能编辑这些列。 - - - MultiEditorHexPlugin - - Hex - 十六进制 + + Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. + 请求的列属于受限制的 SQLite 表。这些表不能被直接编辑。 - - - MultiEditorNumeric - Number - numeric multi editor tab name - 数值 + + Cannot edit results of query other than %1. + 无法编辑 %1 以外的查询结果。 - - - MultiEditorNumericPlugin - - Number - numeric multi editor tab name - 数值 + + Cannot edit columns that are result of aggregated %1 statements. + 无法编辑列,它是聚合的 %1 语句的结果。 - - - MultiEditorText - Text - 文本 + + Cannot edit columns that are result of %1 statement. + 无法编辑列,它是 %1 语句的结果。 - - Tab changes focus - + + Cannot edit columns that are result of common table expression statement (%1). + 无法编辑列,它是通用表生成语句 %1 的结果。 - - Cut - 剪切 + + Cannot edit table generated columns. + 无法编辑表生成的列。 - - Copy - 复制 + + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). + 无法编辑此列,因为它是在另一个多级视图上执行查询的视图结果(即查询另一个视图的视图)。 - - Paste - 粘贴 + + + + + on conflict: %1 + data view tooltip + 当冲突时:%1 - - Delete - 删除 + + references table %1, column %2 + data view tooltip + 引用表 %1,列 %2 - - Undo - 撤销 + + condition: %1 + data view tooltip + 字符序:%1 - - Redo - 恢复 + + collation name: %1 + data view tooltip + 字符序名称:%1 - - - MultiEditorTextPlugin - - Text - 文本 + + Data grid view + 数据网格视图 - - - MultiEditorTime - Time - 时间 + + Edit current cell inline + 编辑当前单元格 - - - MultiEditorTimePlugin - - Time - 时间 + + Copy cell(s) contents to clipboard + 复制单元格内容至剪贴板 - - - NewConstraintDialog - - New constraint - 新约束 + + Copy cell(s) contents together with header to clipboard + 复制单元格内容与表头至剪贴板 - - - Primary Key - new constraint dialog - 主键 + + Paste cell(s) contents from clipboard + 粘贴剪贴板中的单元格内容 - - - Foreign Key - new constraint dialog - 外键 + + Set empty value to selected cell(s) + 设定选中单元格为空值 - - - Unique - new constraint dialog - 唯一 + + Set NULL value to selected cell(s) + 设定选中单元格为 NULL 值 - - - Check - new constraint dialog - 条件 + + Commit changes to cell(s) contents + 提交单元格内容更改 - - Not NULL - new constraint dialog - 非空 + + Rollback changes to cell(s) contents + 回滚单元格内容更改 - - Collate - new constraint dialog - 排序规则 + + Delete selected data row + 删除所选数据行 - - Default - new constraint dialog - 默认 + + Insert new data row + 插入新数据行 - - - NewVersionDialog - - SQLiteStudio updates - SQLiteStudio 更新 + + Open contents of selected cell in a separate editor + 在单独编辑器中打开所选单元格的内容 - - New updates are available! - 有新更新! + + Toggle the height adjustment of rows + Toggle the height adjustment of rows - - Component - 组件 + + Increase font size + data view + 增大字号 - - This application will be closed and the update installer will start to download and install all the updates. - 此应用将会被关闭,然后更新安装程序将会启动,下载并且安装所有更新。 + + Decrease font size + data view + 减小字号 - Current version - 当年版本 + + Total pages available: %1 + 总计可用页数:%1 - - Update version - 可更新版本 + + Total rows loaded: %1 + 已加载行数:%1 - - Check for updates on startup - 在启动时检查更新 + + Data view (both grid and form) + 数据视图(网格 + 表格) - - Update to new version! - 更新到新版本! + + Refresh data + 刷新数据 - The update will be automatically downloaded and installed. This will also restart application at the end. - 本次更新将会自动下载和安装。在更新后会重启程序。 + + Switch to grid view of the data + 切换至数据的网格视图 - - Not now. - 现在不更新。 + + Switch to form view of the data + 切换至数据的表单视图 - - Don't install the update and close this window. - 不安装更新并关闭本窗口。 + + Database list + 数据库列表 - - - PopulateConfigDialog - - Populating configuration - 配置填充 + + Delete selected item + 删除选中项 - - Configuring <b>%1</b> for column <b>%2</b> - 给字段 <b>%2</b> 配置 <b>%1</b> + + Clear filter contents + 清空筛选器内容 - - - PopulateDialog - - Populate table - 填充表 + + Refresh schema + 刷新结构 - - Database - 数据库 + + Refresh all schemas + 刷新全部结构 - - Table - + + Add database + 添加数据库 - - Columns - 字段 + + Select all items + 选中所有项 - - Number of rows to populate: - 填充的行数: + + Copy selected item(s) + 复制选中项 - - Populate - populate dialog button - 填充 + + + + Paste from clipboard + 从剪贴板粘贴 - - Abort - 中止 + + Increase font size + database list + 增大字号 - - Configure - 配置 + + Decrease font size + database list + 减小字号 - - Populating configuration for this column is invalid or incomplete. - + + Tables + - - Select database with table to populate - + + Indexes + 索引 - - Select table to populate - 选择要填充的表 + + Triggers + 触发器 - - You have to select at least one column. - 您至少得选择一个字段。 + + Views + 视图 - - - QObject - - Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). - + + Columns + - - The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. - + + Data form view + 数据表单视图 - - Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. - + + Commit changes for current row + 提交当前行的更改 - - Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. - + + Rollback changes for current row + 回滚当前行的更改 - - Cannot edit results of query other than %1. - + + Go to first row on current page + 前往当前页的第一行 - - Cannot edit columns that are result of aggregated %1 statements. - + + Go to next row + 前往下一行 - - Cannot edit columns that are result of %1 statement. - + + Go to previous row + 前往上一行 - - Cannot edit columns that are result of common table expression statement (%1). - + + Go to last row on current page + 前往当前页的最后一行 - - - - - on conflict: %1 - data view tooltip - + + Insert new row + 插入新行 - - references table %1, column %2 - data view tooltip - + + Delete current row + 删除当前行 - - condition: %1 - data view tooltip - + + Main window + 主窗口 - - collation name: %1 - data view tooltip - + + Open SQL editor + 打开 SQL 编辑器 - - Data grid view - 数据网格视图 + + Open DDL history window + 打开DDL历史记录窗口 - - Copy cell(s) contents to clipboard - 复制单元格内容至剪贴板 + + Open snippets editor window + 打开代码片段编辑器窗口 - - Copy cell(s) contents together with header to clipboard - 复制单元格内容与表头至剪贴板 + + Open function editor window + 打开函数编辑器窗口 - - Paste cell(s) contents from clipboard - 从剪贴板粘贴单元格数据 + + Open collation editor window + 打开校验编辑器窗口 - - Set empty value to selected cell(s) - 将选中的单元格设置为空值 + + Open extension manager window + 打开扩展管理窗口 - - Set NULL value to selected cell(s) - 将选中的单元格设置为 NULL + + Previous window + 上一个窗口 - - Commit changes to cell(s) contents - + + Next window + 下一个窗口 - - Rollback changes to cell(s) contents - + + Hide status area + 隐藏状态栏 - - Delete selected data row - 删除选中的数据行 + + Open user manual + 打开用户手册 - - Insert new data row - 插入新数据行 + + Open configuration dialog + 打开配置对话框 - - Open contents of selected cell in a separate editor - + + Open Debug Console + 打开调试终端 - - Total pages available: %1 - 可用页数:%1 + + Open CSS Console + 打开 CSS 控制台 - - Total rows loaded: %1 - 已加载行数:%1 + + Open the About dialog + 打开关于对话框 - - Data view (both grid and form) - 数据视图(网格 + 表格) + + Quit the application + 退出程序 - - Refresh data - 刷新数据 + + Cell text value editor + 单元格文本值编辑器 - - Switch to grid view of the data - 切换至数据的网格视图 + + + Cut selected text + 剪切选中文本 - - Switch to form view of the data - 切换至数据的表格视图 + + + Copy selected text + 复制选中文本 - - Database list - 数据库列表 + + + Delete selected text + 删除选中文本 - - Delete selected item - 删除选中项 + + + Undo + 撤销 - - Clear filter contents - 清除筛选器内容 + + + Redo + 重做 - - Refresh schema - + + SQL editor input field + SQL 编辑器输入框 - - Refresh all schemas - + + Select whole editor contents + 选中整个编辑器的内容 - - Add database - 添加数据库 + + Save contents into a file + 将内容保存至文件 - - Select all items - 选中所有项 + + Load contents from a file + 从文件加载内容 - - Copy selected item(s) - 复制选中项 + + Find in text + 查找文本 - - - - Paste from clipboard - 从剪贴板粘贴 + + Find next + 查找下一个 - - Tables - + + Find previous + 查找上一个 - - Indexes - 索引 + + Replace in text + 替换文本 - - Triggers - 触发器 + + Delete current line + 删除当前行 - - Views - 视图 + + Request code assistant + 请求代码辅助 - - Columns - 字段 + + Format contents + 格式化内容 - - Data form view - 数据表格视图 + + Move selected block of text one line down + 选中文本块下移一行 - - Commit changes for current row - 提交当前行的更改 + + Move selected block of text one line up + 选中文本块上移一行 - - Rollback changes for current row - 回滚当前行的更改 + + Copy selected block of text and paste it a line below + 选中文本块复制并粘贴到下一行 - - Go to first row on current page - 前往当前页的第一行 + + Copy selected block of text and paste it a line above + 选中文本块复制并粘贴到上一行 - - Go to next row - 前往下一行 + + Toggle comment + 切换注释 - - Go to previous row - 前往上一行 + + Increase font size + sql editor + 增大字号 - - Go to last row on current page - 前往当前页的最后一行 + + Decrease font size + sql editor + 减小字号 - - Insert new row - 插入新行 + + All SQLite databases + 所有 SQLite 数据库 - - Delete current row - 删除当前行 + + All files + 所有文件 - - Main window - 主窗口 + + Select database file + 选择数据库文件 - - Open SQL editor - 打开 SQL 编辑器 + + Select + 选择 - - Previous window - 上一个窗口 + + File type + 文件类型 - - Next window - 下一个窗口 + + SQL editor window + SQL 编辑器窗口 - - Hide status area - 隐藏状态栏 + + Execute query + 执行语句 - - Open configuration dialog - 打开配置对话框 + + Execute single query under cursor + 执行光标位置的单个查询 - - Open Debug Console - 打开调试终端 + + Execute all queries in editor + 在编辑器中执行所有查询 - - Open CSS Console - 打开 CSS 控制台 + + Execute "%1" query + 执行 "%1" 查询 - - Cell text value editor - + + Switch current working database to previous on the list + 切换当前工作数据库到列表中的上一个 - - - Cut selected text - 剪切选中文本 + + Switch current working database to next on the list + 切换当前工作数据库到列表中的下一个 - - - Copy selected text - 复制选中文本 + + Go to next editor tab + 前往下一编辑器选项卡 - - - Delete selected text - 删除选中文本 + + Go to previous editor tab + 前往上一编辑器选项卡 - - - Undo - 撤销 + + Move keyboard input focus to the results view below + 将键盘输入焦点移动到下面的结果视图 - - - Redo - 重做 + + Move keyboard input focus to the SQL editor above + 将键盘输入焦点移到上面的 SQL 编辑器 - - SQL editor input field - + + Delete selected SQL history entries + 删除选中的 SQL 历史记录 - - Select whole editor contents - 选中整个编辑器的内容 + + Table window + 表窗口 - - Save contents into a file - 将内容保存至文件 + + Commit the table structure + 提交表结构 - - Load contents from a file - 从文件加载内容 + + Rollback pending changes in the table structure + 回滚表结构中未确认的更改 - - Find in text - + + Refresh table structure + 刷新表结构 - - Find next - 查找下一个 + + Add new column + 添加新列 - - Find previous - 查找上一个 + + Edit selected column + 编辑选中列 - - Replace in text - + + Delete selected column + 删除选中列 - - Delete current line - 删除当前行 + + Export table data + 导出表数据 - - Request code assistant - 请求代码辅助 + + Import data to the table + 导入数据至表 - - Format contents - 格式化内容 + + Add new table constraint + 新增表约束 - - Move selected block of text one line down - + + Edit selected table constraint + 编辑选中表约束 - - Move selected block of text one line up - + + Delete selected table constraint + 删除选中表约束 - - Copy selected block of text and paste it a line below - + + Refresh table index list + 刷新表索引列表 - - Copy selected block of text and paste it a line above - + + Add new index + 新增索引 - - Toggle comment - + + Edit selected index + 编辑选中索引 - - All SQLite databases - 所有 SQLite 数据库 + + Delete selected index + 删除选中索引 - - All files - 所有文件 + + Refresh table trigger list + 刷新表触发器列表 - - - Database file - 数据库文件 + + + Add new trigger + 添加新触发器 - Delete selected entry - 删除选中项 + + + Edit selected trigger + 编辑选中触发器 - - SQL editor window - SQL 编辑器窗口 + + + Delete selected trigger + 删除选中触发器 - - Execute query - 执行语句 + + + Go to next tab + 前往下一选项卡 - - Execute "%1" query - + + + Go to previous tab + 前往上一选项卡 - - Switch current working database to previous on the list - + + A view window + 视图窗口 - - Switch current working database to next on the list - + + Commit the view's query + 提交视图查询 - - Go to next editor tab - 前往下一编辑器选项卡 + + Rollback pending changes in the view's query + 回滚视图查询中未确认的更改 - - Go to previous editor tab - 前往上一编辑器选项卡 + + Refresh view trigger list + 刷新视图触发器列表 - - Move keyboard input focus to the results view below - + + Execute the view's query + 执行视图查询 - - Move keyboard input focus to the SQL editor above - + + A code snippets editor window + 代码片段编辑器窗口 - - Delete selected SQL history entries - + + + + + Commit the pending changes + 提交未确认的更改 - - Table window - 表窗口 + + + + + Rollback the pending changes + 回滚未确认的更改 - - Refresh table structure - 刷新表结构 + + A collation editor window + 校验编辑器窗口 - - Add new column - 添加新字段 + + A function editor window + 函数编辑器窗口 - - Edit selected column - 编辑选中字段 + + A SQLite extension editor window + SQLite 扩展编辑器窗口 + + + QuitConfirmDialog - - Delete selected column - 删除选中字段 + + Uncommitted changes + 未提交的更改 - - Export table data - 导出表里的数据 + + Are you sure you want to quit the application? + +Following items are pending: + 确定要退出本程序吗? + +下列项目仍待处置: + + + SearchTextDialog - - Import data to the table - 导入数据至表中 + + Find or replace + 查找与替换 - - Add new table constraint - 添加新的表约束 + + Find: + 查找: - - Edit selected table constraint - 编辑选中的表约束 + + Case sensitive + 区分大小写 - - Delete selected table constraint - 删除选中的表约束 + + Search backwards + 反向搜索 - - Refresh table index list - 刷新表索引列表 + + Regular expression matching + 正则表达式匹配 - - Add new index - 添加新索引 + + Replace && +find next + 替换并查找下一项 - - Edit selected index - 编辑选中索引 + + Replace with: + 替换为: - - Delete selected index - 删除选中索引 + + Replace all + 全部替换 - - Refresh table trigger list - 刷新表触发器列表 + + Find + 查找 + + + SortDialog - - - Add new trigger - 添加新触发器 + + Sort by columns + 按列排序 - - - Edit selected trigger - 编辑选中触发器 + + + Column + - - - Delete selected trigger - 删除选中触发器 + + + Order + 排序 - - - Go to next tab - 前往下一选项卡 + + Sort by: %1 + 排序按照 %1 - - - Go to previous tab - 前往上一选项卡 + + Move column up + 上移列 - - A view window - + + Move column down + 下移列 + + + SqlEditor - - Refresh view trigger list - 刷新视图触发器列表 + + Wrap words + sql editor + 折行 - - - QuitConfirmDialog - Uncommited changes - 未提交的更改 + + Cut + sql editor + 剪切 - - Uncommitted changes - 未提交的更改 + + Copy + sql editor + 复制 - - Are you sure you want to quit the application? - -Following items are pending: - 您确定要退出本程序吗? + + Paste + sql editor + 粘贴 - - - SearchTextDialog - - Find or replace - 查找与替换 + + Delete + sql editor + 删除 - - Find: - 查找: + + Select all + sql editor + 全选 - - Case sensitive - 大小写敏感 + + Undo + sql editor + 撤销 - - Search backwards - 反向搜索 + + Redo + sql editor + 重做 - - Regular expression matching - 正则表达式 + + Complete + sql editor + 完成 - - Replace && -find next - 替换并查找下一个 + + Format SQL + sql editor + 格式化 SQL - - Replace with: - 替换为: + + Save SQL to file + sql editor + 保存 SQL 到文件 - - Replace all - 全部替换 + + Select file to save SQL + sql editor + 选择 SQL 要保存到的文件 - - Find - 查找 + + Load SQL from file + sql editor + 从文件加载 SQL - - - SortDialog - - Sort by columns - 按字段排序 + + Delete line + sql editor + 删除行 - - - Column - 字段 + + Move block down + sql editor + 整块下移 - - - Order - 排序 + + Move block up + sql editor + 整块上移 - - Sort by: %1 - 按:%1 排序 + + Copy block down + sql editor + 副本贴上方 - - Move column up - 上移字段 + + Copy up down + sql editor + 副本贴下方 - - Move column down - 下移字段 + + Find + sql editor + 查找 - - - SqlEditor - - Cut - sql editor - 剪切 + + Find next + sql editor + 查找下一个 - - Copy - sql editor - 复制 + + Find previous + sql editor + 查找上一个 - - Paste - sql editor - 粘贴 + + Replace + sql editor + 替换 - - Delete - sql editor - 删除 + + Toggle comment + sql editor + 切换注释 - - Select all - sql editor - 全选 + + Increase font size + sql editor + 增大字号 - - Undo - sql editor - 撤销 + + Decrease font size + sql editor + 减小字号 - - Redo - sql editor - 恢复 + + Could not open file '%1' for writing: %2 + 无法以写模式打开文件 %1:%2 - - Complete - sql editor - 完成 + + Saved SQL contents to file: %1 + 保存 SQL 内容至文件:%1 - - Format SQL - sql editor - 格式化SQL + + Syntax completion can be used only when a valid database is set for the SQL editor. + SQL 编辑器的语法补全功能仅当存在有效数据库时可用。 - - Save SQL to file - sql editor - 保存SQL到文件 + + Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. + SQL 编辑器有大量内容,因此错误检测和现有对象的高亮显示功能被暂时禁用。 - - Select file to save SQL - sql editor - 选择 SQL 要保存到的文件 + + Save to file + 保存到文件 - - Load SQL from file - sql editor - 从文件加载SQL + + SQL scripts (*.sql);;All files (*) + SQL文件 (*.sql);;所有文件 (*) - - Delete line - sql editor - 删除行 + + Open file + 打开文件 - - Move block down - sql editor - 整块下移 + + Could not open file '%1' for reading: %2 + 无法以读模式打开文件 %1:%2 - - Move block up - sql editor - 整块上移 + + Reached the end of document. Hit the find again to restart the search. + 已到文档底部。再次点击查找将从头开始搜索。 + + + SqlQueryItem - - Copy block down - sql editor - + + Committing error: + data view tooltip + 提交出错: - - Copy up down - sql editor - + + Column: + data view tooltip + 列: - - Find - sql editor - 查找 + + Data type: + data view + 数据类型: - - Find next - sql editor - 查找下一个 + + Table: + data view tooltip + 表: - - Find previous - sql editor - 查找上一个 + + Constraints: + data view tooltip + 约束: + + + SqlQueryItemDelegate - - Replace - sql editor - 替换 + + + + + Cannot edit this cell. Details: %1 + 无法编辑此单元格。详情:%1 - - Toggle comment - sql editor - + + The row is marked for deletion. + 该行已被标记为删除。 - - Saved SQL contents to file: %1 - 保存 SQL 内容至文件:%1 + + + Structure of this table has changed since last data was loaded. Reload the data to proceed. + 在上次加载数据后,此表的结构已更改。重新加载数据以继续。 - - Syntax completion can be used only when a valid database is set for the SQL editor. - + + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). + 在内联单元格编辑器中编辑大型内容不是一个好主意。它很可能变得缓慢和不便。最好在表单视图或者弹出式编辑器(从右键菜单打开)中编辑此类大内容。 - - Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. - + + Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. + 列 %2 的外键有超过 %1 个可能的值。这太多而不能显示在下拉列表。您需要手动编辑值。 + + + SqlQueryModel - - Save to file - 保存到文件 + + + Only one query can be executed simultaneously. + 只允许同时执行一条查询。 - - Could not open file '%1' for writing: %2 - 无法以写模式打开文件 %1:%2 + + Cannot execute query on undefined or invalid database. + 无法执行语句,因为数据库无效或未定义。 - - SQL scripts (*.sql);;All files (*) - SQL文件 (*.sql);;所有文件 (*) + + Cannot execute empty query. + 无法执行空的查询。 - - Open file - 打开文件 + + Uncommitted data + 未提交的数据 - - Could not open file '%1' for reading: %2 - 无法以读模式打开文件 %1:%2 + + There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. + 存在未提交的数据更改。是否仍要继续?所有未提交的更改都将丢失。 - - Reached the end of document. Hit the find again to restart the search. - 已搜索到文档底部。点击查找从头程序开始搜索。 + + Cannot commit the data for a cell that refers to the already closed database. + 无法从单元格中加载数据,因为它引用了已经被关闭的数据库。 - - - SqlQueryItem - - Column: - data view tooltip - 字段: + + Could not begin transaction on the database. Details: %1 + 无法在此数据库上开始事务。详细信息:%1 - - Data type: - data view - 数据类型: + + An error occurred while committing the transaction: %1 + 在提交事务时发生错误:%1 - - Table: - data view tooltip - 表: + + An error occurred while rolling back the transaction: %1 + 在回滚事务时发生错误:%1 - - Constraints: - data view tooltip - 约束: + + Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. + 尝试提交不可编辑的单元格!(本应该无法编辑)这是一个错误,请报告。 - - Cannot load the data for a cell that refers to the already closed database. - + + An error occurred while committing the data: %1 + 在提交数据时发生错误:%1 - - - SqlQueryItemDelegate - - The row is marked for deletion. - 该行被标记为删除。 + + Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. + 数据视图中,已因列数(%2)将每页行数减小(%1)。 - - - - - - Cannot edit this cell. Details: %1 - 无法编辑此单元格。详情:%1 + + + Error while executing SQL query on database '%1': %2 + 在数据库“%1”执行 SQL 查询时发生错误:%2 - - - Structure of this table has changed since last data was loaded. Reload the data to proceed. - + + Error while loading query results: %1 + 在加载查询结果时出错:%1 - - Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). - + + Insert multiple rows + 插入多行 - - Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. - + + Number of rows to insert: + 要插入的行数: - - - SqlQueryModel - - - Only one query can be executed simultaneously. - 只允许同时执行一条查询。 + + Delete rows + 删除行 - - Cannot commit the data for a cell that refers to the already closed database. - + + You're about to delete newly inserted rows that are not committed yet. Row numbers: %1 +Such deletion will be permanent. Are you sure you want to delete them? + 您即将删除未提交的新插入的行。行数:%1 +删除不能撤销,确定删除吗? + + + SqlQueryView - - Could not begin transaction on the database. Details: %1 - + + Go to referenced row in... + 转到引用的行... - - An error occurred while rolling back the transaction: %1 - + + Copy + 复制 - - Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. - + + Copy with headers + 带表头复制 - - Uncommitted data - 未提交的数据 + + Copy as... + 复制为... - - There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. - + + Paste + 粘贴 - - An error occurred while committing the transaction: %1 - 在提交事务时发生错误:%1 + + Paste as... + 粘贴为... - - An error occurred while committing the data: %1 - 在提交数据时发生错误:%1 + + Set NULL values + 设为 NULL 值 - - Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. - + + Erase values + 擦除值 - - - Error while executing SQL query on database '%1': %2 - 在数据库“%1”执行 SQL 查询时发生错误:%2 + + Commit + 提交 - - Error while loading query results: %1 - 在加载查询结果时出错:%1 + + Rollback + 回滚 - - Insert multiple rows - 插入多行 + + Commit selected cells + 提交选中单元格 - - Number of rows to insert: - + + Rollback selected cells + 回滚选中单元格 - - - SqlQueryView - - Go to referenced row in... - + + Edit current cell inline + 编辑当前单元格 - - Copy - 复制 + + Define columns to sort by + 定义列排序方式 - - Copy as... - 复制为... + + Remove custom sorting + 移除自定义排序 - - Paste - 粘贴 + + Insert row + 插入行 - - Paste as... - 粘贴为... + + Insert multiple rows + 插入多行 - - Set NULL values - 设置为NULL + + Delete selected row + 删除已选行 - - Erase values - 擦除 + + Adjust height of rows + 调整行高 - - Edit value in editor - 在编辑器中编辑数值 + + Increase font size + data view + 增大字号 - - Commit - 提交 + + Decrease font size + data view + 减小字号 - - Copy with headers - 带表头复制 + + Invert selection + data view + 反向选取 - - Rollback - 回滚 + + Edit value in editor + 在编辑器中编辑数值 - - Commit selected cells - 提交选中单元格 + + Show value in a viewer + 在查看器中显示值 - - Rollback selected cells - 回滚选中单元格 + + Generate query for selected cells + 为选中单元格生成查询 - - Define columns to sort by - + + No items selected to paste clipboard contents to. + 没有选择用来粘贴剪贴板内容的项。 - - Remove custom sorting - + + Cannot paste data. Details: %1 + 无法粘贴数据。详情:%1 - - Insert row - 插入行 + + Structure of at least one table used has changed since last data was loaded. Reload the data to proceed. + 至少一个表的结构在上次的数据加载后已变更。重新加载数据以继续。 - - Insert multiple rows - 插入多行 + + Cannot paste to a cell. Details: %1 + 无法粘贴到单元格。详情:%1 - - Delete selected row - 删除已选行 + + The row is marked for deletion. + 该行已被标记为删除。 - - Show value in a viewer - + + Cannot paste to column %1. Details: %2 + 无法粘贴到列 %1。详情:%2 - - Generate query for selected cells - + + Go to referenced row in table '%1' + 转至表 '%1' 中的引用的行 - - No items selected to paste clipboard contents to. - + + table '%1' + 表“%1” - - Go to referenced row in table '%1' - + + Referenced row (%1) + 引用的行(%1) - - table '%1' - 表“%1” + + Trim pasted text? + 移除粘贴文本两端的空白? - - Referenced row (%1) - + + The pasted text contains leading or trailing white space. Trim it automatically? + 粘贴的文本两端含有空白符号。自动移除? - - Trim pasted text? - 移除粘贴文本两端的空格? + + Paste "NULL" as null value? + 将 "NULL" 粘贴为空值? - - The pasted text contains leading or trailing white space. Trim it automatically? - 粘贴的文本两端含有空格。自动移除? + + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + 粘贴的文本包含 "NULL" 字符。要将它们视为空值吗? - - Edit value - 编辑值 + + Edit value + 编辑值 - - + + SqlTableModel - Error while commiting new row: %1 - 写入新行时发生了错误:%1 + + Error while committing new row: %1 + 提交新行时发生错误:%1 - - Error while committing new row: %1 - 提交新行时发生了错误:%1 + + Error while deleting row from table %1: %2 + 从表 %1 中删除行时发生错误:%2 - - - Error while deleting row from table %1: %2 - 删除行时发生了错误 %1:%2 - - - + + SqliteExtensionEditor - - Filter extensions - 筛选扩展 + + Filter extensions + 扩展筛选器 - - Leave empty to use default function - 保持空白将使用默认函数 + + Leave empty to use default function + 留空则使用默认函数 - - Extension file - 扩展文件 + + Extension file + 扩展文件 - - Initialization function - 初始化函数 + + Initialization function + 初始化函数 - - Databases - 数据库 + + Databases + 数据库 - - Register in all databases - 在所有数据库中注册 + + Register in all databases + 在所有数据库中注册 - - Register in following databases: - 在下列数据库中注册: + + Register in following databases: + 在下列数据库中注册: - - Extension manager window has uncommitted modifications. - 扩展管理窗口有未提交的更改。 + + Extension manager window has uncommitted modifications. + 扩展管理窗口有未提交的更改。 - - Extension manager - 扩展管理器 + + Extension manager + 扩展管理器 - - Commit all extension changes - 提交所有扩展改变 + + Commit all extension changes + 提交所有扩展更改 - - Rollback all extension changes - 回滚所有扩展改变 + + Rollback all extension changes + 回滚所有扩展更改 - - Add new extension - 添加新的扩展 + + Add new extension + 添加新扩展 - - Remove selected extension - 移除选中的扩展 + + Remove selected extension + 移除所选扩展 - - Editing extensions manual - 手动编辑扩展 + + Editing extensions manual + 手动编辑扩展 - - File with given path does not exist or is not readable. - + + File with given path does not exist or is not readable. + 指定路径的文件不存在或无法读取。 - - Unable to load extension: %1 - 无法加载扩展:%1 + + Unable to load extension: %1 + 无法加载扩展:%1 - - Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. - + + Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. + 初始化函数名无效。函数名只能包含字母数字字符和下划线。 - - Dynamic link libraries (*.dll);;All files (*) - 动态链接库 (*.dll);;所有文件 (*) + + Dynamic link libraries (*.dll);;All files (*) + 动态链接库 (*.dll);;所有文件 (*) - - Shared objects (*.so);;All files (*) - + + Shared objects (*.so);;All files (*) + 共享库 (*.so);;All files (*) - - Dynamic libraries (*.dylib);;All files (*) - 动态库 (*.dylib);;所有文件 (*) + + Dynamic libraries (*.dylib);;All files (*) + 动态库 (*.dylib);;所有文件 (*) - - All files (*) - 所有文件 (*) + + All files (*) + 所有文件 (*) - - Open file - 打开文件 + + Open file + 打开文件 - - + + StatusField - - Status - 状态 + + Status + 状态栏 - - Copy - 复制 + + Copy + 复制 - - Clear - 清除 + + Clear + 清除 - - + + TableConstraintsModel - - Type - table constraints - 类型 + + Type + table constraints + 类型 - - Details - table constraints - 详情 + + Details + table constraints + 详情 - - Name - table constraints - 名称 + + Name + table constraints + 名称 - - + + TableForeignKeyPanel - - Foreign table: - 外部表: - - - - SQLite 2 does not support foreign keys officially, -but it's okay to use them anyway. - SQLite 2 不正式支持外键, -但总之,可以使用外键。 + + Foreign table: + 外部表: - - Columns - 字段 + + Columns + - - Local column - 本地字段 + + Local column + 本地列 - - Foreign column - 外部字段 + + Foreign column + 外部列 - - Reactions - 响应 + + Reactions + 响应 - - Deferred foreign key - + + Deferred foreign key + 延迟外键约束 - - Named constraint - + + Named constraint + 命名的约束 - - Constraint name - 约束名称 + + Constraint name + 约束名称 - - Pick the foreign column. - 选择一个外部字段。 + + Pick the foreign column. + 选择一个外部列。 - - Pick the foreign table. - 选择一个外部表。 + + Pick the foreign table. + 选择一个外部表。 - - Select at least one foreign column. - 请至少选择一个外部字段。 + + Select at least one foreign column. + 请至少选择一个外部列。 - - Enter a name of the constraint. - 输入一个约束的名称。 + + Enter a name of the constraint. + 输入一个约束的名称。 - - Foreign column - table constraints - 外部字段 + + Foreign column + table constraints + 外部列 - - + + TablePrimaryKeyAndUniquePanel - - Columns - 字段 + + Columns + - - Column - 字段 + + Column + - - Collation - 排序规则 + + Collation + 字符序 - - Sort - 排序 + + Sort + 排序 - - Valid only for a single column with INTEGER data type - + + Valid only for a single column with INTEGER data type + 仅对整数(INTEGER)数据类型的单个列有效 - - Autoincrement - Autoincrement + + Autoincrement + 自动递增 - - Named constraint - + + Named constraint + 命名的约束 - - Constraint name - 约束名称 + + Constraint name + 约束名称 - - On conflict - 当冲突时 + + On conflict + 当冲突时 - - Collate - table constraints - 排序规则 + + Collate + table constraints + 字符序 - - Sort order - table constraints - 排序 + + Sort order + table constraints + 排序方式 - - Select at least one column. - 至少选择一列。 + + Select at least one column. + 至少选择一个列。 - - Enter a name of the constraint. - 输入一个约束的名称。 + + Enter a name of the constraint. + 输入一个约束的名称。 - - + + TableStructureModel - - Name - table structure columns - 名称 + + Name + table structure columns + 名称 - - Data type - table structure columns - 数据类型 + + Data type + table structure columns + 数据类型 - - Primary + + Primary Key - table structure columns - 主键 + table structure columns + 主键 - - Foreign + + Foreign Key - table structure columns - 外键 + table structure columns + 外键 - - Unique - table structure columns - 唯一 + + Unique + table structure columns + 唯一 - - Check - table structure columns - 条件 + + Check + table structure columns + 条件 - - Not + + Not NULL - table structure columns - 非 NULL + table structure columns + 非空 - - Collate - table structure columns - 排序规则 + + Collate + table structure columns + 字符序 - - Default value - table structure columns - 默认值 + + Generated + table structure columns + 生成 - - + + + Default value + table structure columns + 默认值 + + + TableWindow - - Structure - 结构 + + Structure + 结构 + + + + Table name: + 表名: - - Table name: - 表名: + + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> - - - Data - 数据 + + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> - - Constraints - 约束 + + + Data + 数据 - - Indexes - 触发器 + + Constraints + 约束 - - Triggers - 触发器 + + Indexes + 索引 - - DDL - DDL + + Triggers + 触发器 - - Export table - table window - 导出表 + + DDL + DDL - - Import data to table - table window - 导入数据至表 + + Export table + table window + 导出表 - - Populate table - table window - 填充表 + + Import data to table + table window + 导入数据至表 - - Refresh structure - table window - 刷新结构 + + Populate table + table window + 填充表 - - Commit structure changes - table window - 提交结构修改 + + Refresh structure + table window + 刷新结构 - - Rollback structure changes - table window - 回滚结构改变 + + Commit structure changes + table window + 提交结构更改 - - Add column - table window - 添加字段 + + Rollback structure changes + table window + 回滚结构更改 - - Edit column - table window - 编辑字段 + + Add column + table window + 添加列 - - - Delete column - table window - 删除字段 + + Edit column + table window + 编辑列 - - Move column up - table window - 向上移动字段 + + + Delete column + table window + 删除列 - - Move column down - table window - 向下移动字段 + + Move column up + table window + 上移列 - - Create similar table - table window - 创建一个相似的表 + + Move column down + table window + 下移列 - - Reset autoincrement value - table window - + + Create similar table + table window + 创建相似的表 - - Add table constraint - table window - 添加表约束条件 + + Reset autoincrement value + table window + 重置自动递增值 - - Edit table constraint - table window - 编辑表约束 + + Add table constraint + table window + 新增表约束 - - Delete table constraint - table window - 删除表约束 + + Edit table constraint + table window + 编辑表约束 - - Move table constraint up - table window - 向上移动表约束 + + Delete table constraint + table window + 删除表约束 - - Move table constraint down - table window - 向下一移动表约束 + + Move table constraint up + table window + 向上移动表约束 - - Add table primary key - table window - 添加主键 + + Move table constraint down + table window + 向下一移动表约束 - - Add table foreign key - table window - 添加外键 + + Add table primary key + table window + 添加主键 - - Add table unique constraint - table window - 添加表唯一约束 + + Add table foreign key + table window + 添加外键 - - Add table check constraint - table window - + + Add table unique constraint + table window + 添加表唯一约束 - - Refresh index list - table window - 刷新索引列表 + + Add table check constraint + table window + 添加表检查约束 - - Create index - table window - 创建索引 + + Refresh index list + table window + 刷新索引列表 - - Edit index - table window - 编辑索引 + + + Create index + table window + 创建索引 - - Delete index - table window - 删除索引 + + Edit index + table window + 编辑索引 - - Refresh trigger list - table window - 刷新触发器列表 + + Delete index + table window + 删除索引 - - Create trigger - table window - 创建触发器 + + Refresh trigger list + table window + 刷新触发器列表 - - Edit trigger - table window - 编辑触发器 + + + Create trigger + table window + 创建触发器 - - Delete trigger - table window - 删除触发器 + + Edit trigger + table window + 编辑触发器 - - Are you sure you want to delete column '%1'? - table window - 您确定要删除字段“%1”吗? + + Delete trigger + table window + 删除触发器 - - Following problems will take place while modifying the table. + + Are you sure you want to delete column '%1'? + table window + 您确定要删除字段“%1”吗? + + + + Following problems will take place while modifying the table. Would you like to proceed? - table window - + table window + 修改该表时将出现以下问题。 +是否继续? - - Table modification - table window - + + Table modification + table window + 修改表 - - Could not load data for table %1. Error details: %2 - 无法加载表 %1 的数据。错误详情:%2 + + Could not load data for table %1. Error details: %2 + 无法加载表 %1 的数据。错误详情:%2 - - Could not process the %1 table correctly. Unable to open a table window. - 无法正确处理表 %1。无法打开表窗口。 + + Could not process the %1 table correctly. Unable to open a table window. + 无法正确处理表 %1。无法打开表窗口。 - - Could not restore window %1, because no database or table was stored in session for this window. - + + Database + 数据库 - - Could not restore window '%1', because no database or table was stored in session for this window. - + + Could not restore window %1, because no database or table was stored in session for this window. + 无法还原窗口 %1,此窗口中没有存储数据库或表的会话。 - - Could not restore window '%1', because database %2 could not be resolved. - + + Could not restore window '%1', because no database or table was stored in session for this window. + 无法还原窗口“%1”,此窗口中没有存储数据库或表的会话。 - - Could not restore window '%1'', because the table %2 doesn't exist in the database %3. - + + Could not restore window '%1', because database %2 could not be resolved. + 无法还原窗口“%1”,无法解析数据库 %2。 - - - New table %1 - 新表 %1 + + Could not restore window '%1', because the table %2 doesn't exist in the database %3. + 无法还原窗口“%1”,数据库 %3 中不存在表 %2。 - - Committed changes for table '%1' successfully. - 成功提交表 '%1' 的修改。 + + + New table %1 + 新表 %1 - - Committed changes for table '%1' (named before '%2') successfully. - + + Committed changes for table '%1' successfully. + 成功提交表 '%1' 的修改。 - - Autoincrement value for table '%1' has been reset successfully. - 表“%1”的auincrement重设成功。 + + Committed changes for table '%1' (named before '%2') successfully. + 成功提交对表 '%1'(原名 '%2')的更改。 - - Uncommitted changes - 未提交的更改 + + Could not commit table structure. Error message: %1 + table window + 无法提交表结构。错误信息:%1 - - There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. -Do you want to commit the structure, or do you want to go back to the structure tab? - + + Reset autoincrement + 重置自动递增 - - Table window "%1" has uncommitted structure modifications and data. - 表窗口“%1”有未提交的结构更改与数据。 + + Are you sure you want to reset autoincrement value for table '%1'? + 您确定要重置表“%1”的自动递增值吗? - - Table window "%1" has uncommitted data. - 表窗口“%1”有未提交的数据。 + + An error occurred while trying to reset autoincrement value for table '%1': %2 + 重置表“%1”的自动递增值时出错:%2 - - Table window "%1" has uncommitted structure modifications. - 表窗口“%1”有未提交的结构更改。 + + Autoincrement value for table '%1' has been reset successfully. + 成功重置表“%1”的自动递增值。 - - Could not commit table structure. Error message: %1 - table window - 无法提交表结构。错误信息:%1 + + Empty name + 空名称 - - Reset autoincrement - 重置autoincrement + + A blank name for the table is allowed in SQLite, but it is not recommended. +Are you sure you want to create a table with blank name? + SQLite 允许为表使用空白名称,但不推荐使用空白名称。 +您确定要创建一个空白名称的表? - - Are you sure you want to reset autoincrement value for table '%1'? - 您确定要重设“%1”的autoincrement吗? + + Cannot create a table without at least one column. + 无法创建没有任何列的表。 - - An error occurred while trying to reset autoincrement value for table '%1': %2 - 在重设表“%1”的autoincrement时出现错误:%2 + + Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. + 无法创建表 %1,没有定义主键。取消选中 %2 或者定义一个主键。 - Autoincrement value for table '%1' has been reset successfly. - 表“%1”的auincrement重设成功。 + + Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. + 使用 %1 语句时无法为主键使用自动递增。取消选中 %2,或者将一个主键设为自动递增。 - - Empty name - + + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 + 以下列使用了不严格的数据类型:%1。请禁用此表的严格模式,或者修改列数据类型。有效的严格数据类型为:%2 - - A blank name for the table is allowed in SQLite, but it is not recommended. -Are you sure you want to create a table with blank name? - + + Are you sure you want to delete table constraint '%1'? + table window + 您确定要删除表约束“%1”吗? - - Cannot create a table without at least one column. - 无法创建没有任何字段的表。 + + Delete constraint + table window + 删除约束 - - Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. - + + Cannot export, because no export plugin is loaded. + 无法导出,没有加载导出插件。 - - Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. - + + Cannot import, because no import plugin is loaded. + 无法导入,没有加载导入插件。 - - Are you sure you want to delete table constraint '%1'? - table window - 您确定要删除表约束“%1”吗? + + Uncommitted changes + 未提交的更改 - - Delete constraint - table window - 删除约束 + + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + 有未提交的结构修改。您不能浏览或编辑数据,直至表结构完工。 +立即提交现有结构?或者返回结构选项卡? - - Cannot export, because no export plugin is loaded. - 未能导出,因为没有导出插件被加载。 + + Go back to structure tab + 返回结构选项卡 - - Cannot import, because no import plugin is loaded. - 未能导入,因为没有导入插件被加载。 + + Commit modifications and browse data. + 提交修改并浏览数据。 - Uncommited changes - 未提交的更改 + + Name + table window indexes + 名称 - - Go back to structure tab - 反汇结构选项卡 + + Unique + table window indexes + 唯一 - - Commit modifications and browse data. - 提交修改并浏览数据。 + + Columns + table window indexes + - - Name - table window indexes - 名称 + + Partial index condition + table window indexes + 部分索引条件 - - Unique - table window indexes - 唯一 + + Name + table window triggers + 名称 - - Columns - table window indexes - 字段 + + Event + table window triggers + 事件 - - Partial index condition - table window indexes - + + Condition + table window triggers + 条件 - - Name - table window triggers - 名称 + + Details + table window triggers + 详情 - - Event - table window triggers - 事件 + + Table window "%1" has uncommitted structure modifications and data. + 表窗口“%1”有未提交的结构更改与数据。 - - Condition - table window triggers - 条件 + + Table window "%1" has uncommitted data. + 表窗口“%1”有未提交的数据。 - - Details - table window triggers - 详情 + + Table window "%1" has uncommitted structure modifications. + 表窗口“%1”有未提交的结构更改。 - - + + TriggerColumnsDialog - - Trigger columns - + + Trigger columns + 触发器列 - - Triggering columns: - + + Triggering columns: + 触发列: - - Select all - 全选 + + Select all + 全选 - - Deselect all - 全不选 + + Deselect all + 全不选 - - + + TriggerDialog - - - Trigger - 触发器 + + + Trigger + 触发器 - - On table: - 在表: + + On table: + 表: - - Action: - 操作: + + Action: + 动作: - - - <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> - + + + <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> + <p>用来判断触发器代码是否执行的 SQL 条件表达式。如果条件返回 false,则触发器不会对该行生效。</p> - - Pre-condition: - 前提条件: + + Pre-condition: + 前提条件: - - The scope is still not fully supported by the SQLite database. - 作用域仍没有被 SQLite 数据库完整支持。 + + The scope is still not fully supported by the SQLite database. + SQLite 数据库仍未完全支持作用域。 - - Trigger name: - 触发器名称: + + Trigger name: + 触发器名称: - - When: - 当: + + When: + 当: - - List of columns for UPDATE OF action. - + + List of columns for UPDATE OF action. + UPDATE OF 动作的列列表 - - Scope: - 作用域: + + Scope: + 作用域: - - Code: - 代码: + + Code: + 代码: - - Trigger statements to be executed. - + + Trigger statements to be executed. + 需要执行的触发器语句 - - DDL - DDL + + DDL + DDL - - On view: - 在视图: + + On view: + 视图: - - Could not process trigger %1 correctly. Unable to open a trigger dialog. - + + Could not process trigger %1 correctly. Unable to open a trigger dialog. + 无法正确处理触发器 %1。无法打开触发器对话框。 - - Enter a valid condition. - 输入一个合法的条件。 + + Enter a valid condition. + 请输入一个有效的条件。 - - Enter a valid trigger code. - 输入合法的触发器代码。 + + Enter a valid trigger code. + 请输入一个有效的触发器代码。 - - Error - trigger dialog - 错误 + + Error + trigger dialog + 错误 - - An error occurred while executing SQL statements: + + An error occurred while executing SQL statements: %1 - 在执行SQL语句“%1”时发生了错误 + 执行下列 SQL 语句时出错: +%1 - - + + VersionConvertSummaryDialog - - Database version convert - 数据库版本转换 + + Database version convert + 数据库版本转换 - - Following changes to the SQL statements will be made: - + + Following changes to the SQL statements will be made: + SQL 语句变更如下: - - Before - 之前 + + Before + 之前 - - After - 之后 + + After + 之后 - - + + ViewWindow - - Query - + + Query + 查询 - - View name: - 视图名称: + + View name: + 视图名称: - - Output column names - 输出字段名称 + + Output column names + 输出列名称 - - - Data - 数据 + + + Data + 数据 - - Triggers - 触发器 + + Triggers + 触发器 - - DDL - DDL + + DDL + DDL - - - Could not restore window '%1', because no database or view was stored in session for this window. - + + + Could not restore window '%1', because no database or view was stored in session for this window. + 无法还原窗口“%1”,此窗口中没有存储数据库或表的会话。 - - Could not restore window '%1', because database %2 could not be resolved. - + + Could not restore window '%1', because database %2 could not be resolved. + 无法还原窗口“%1”,无法解析数据库 %2。 - - Could not restore window '%1', because database %2 could not be open. - 无法恢复窗口“%1”,因为数据库 %2 没有被打开。 + + Could not restore window '%1', because database %2 could not be open. + 无法还原窗口“%1”,数据库 %2 没有被打开。 - - Could not restore window '%1', because the view %2 doesn't exist in the database %3. - 无法恢复窗口“%1”,因为视图 %2 不存在于数据库 %3 中。 + + Could not restore window '%1', because the view %2 doesn't exist in the database %3. + 无法还原窗口“%1”,数据库 %3 中不存在视图 %2。 - - - New view %1 - 新视图 %1 + + + New view %1 + 新视图 %1 - - Refresh the view - view window - 刷新视图 + + Database + 数据库 - - Commit the view changes - view window - 提交视图更改 + + Refresh the view + view window + 刷新视图 - - Rollback the view changes - view window - 回滚视图改变 + + Commit the view changes + view window + 提交视图更改 - - Explicit column names - + + Rollback the view changes + view window + 回滚视图更改 - - Generate output column names automatically basing on result columns of the view. - + + Explicit column names + 明确列名称 - - Add column - view window - 添加字段 + + Generate output column names automatically basing on result columns of the view. + 基于视图的结果列自动生成输出列名称。 - - Edit column - view window - 编辑字段 + + Add column + view window + 添加列 - - Delete column - view window - 删除字段 + + Edit column + view window + 编辑列 - - Move column up - view window - 向上移动字段 + + Delete column + view window + 删除列 - - Move column down - view window - 向下移动字段 + + Move column up + view window + 上移列 - - Refresh trigger list - view window - 刷新触发器列表 + + Move column down + view window + 下移列 - - Create new trigger - view window - 创建新触发器 + + Refresh trigger list + view window + 刷新触发器列表 - - Edit selected trigger - view window - 编辑选中的触发器 + + Create new trigger + view window + 创建新触发器 - - Delete selected trigger - view window - 删除选中的触发器 + + Edit selected trigger + view window + 编辑选中触发器 - - View window "%1" has uncommitted structure modifications and data. - 视图“%1”有未提交的结构更改和数据。 + + Delete selected trigger + view window + 删除选中触发器 - - View window "%1" has uncommitted data. - 视图“%1”有未提交的数据。 + + View window "%1" has uncommitted structure modifications and data. + 视图“%1”有未提交的结构更改和数据。 - - View window "%1" has uncommitted structure modifications. - 视图“%1”有未提交的结构更改。 + + View window "%1" has uncommitted data. + 视图“%1”有未提交的数据。 - - Uncommitted changes - 未提交的更改 + + View window "%1" has uncommitted structure modifications. + 视图“%1”有未提交的结构更改。 - - There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. -Do you want to commit the structure, or do you want to go back to the structure tab? - + + Could not load data for view %1. Error details: %2 + 无法加载视图 %1 的数据。错误详情:%2 - - Committed changes for view '%1' successfully. - 成功提交视图“%1”的更改。 + + Uncommitted changes + 未提交的更改 + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + 有未提交的结构修改。您不能浏览或编辑数据,直至表结构完工。 +立即提交现有结构?或者返回结构选项卡? - - Committed changes for view '%1' (named before '%2') successfully. - + + Go back to structure tab + 返回结构选项卡 - - Could not load data for view %1. Error details: %2 - 无法加载视图 %1 的数据。错误详情:%2 + + Commit modifications and browse data. + 提交更改并浏览数据。 - Uncommited changes - 未提交的更改 + + View '%1' was committed successfully. + 成功提交视图“%1”。 - - Go back to structure tab - 回到结构选项卡 + + Committed changes for view '%1' successfully. + 成功提交对视图“%1”的更改。 - - Commit modifications and browse data. - 提交更改并浏览数据。 + + Committed changes for view '%1' (named before '%2') successfully. + 成功提交对视图“%1”(原名“%2”)的更改。 - - Could not commit view changes. Error message: %1 - view window - 无法提交视图更改。错误信息:%1 + + Could not commit view changes. Error message: %1 + view window + 无法提交视图更改。错误信息:%1 - - Override columns - + + Override columns + 覆盖列 - - Currently defined columns will be overriden. Do you want to continue? - 当前定义的字段将会被覆写,您要继续吗? + + Currently defined columns will be overriden. Do you want to continue? + 当前定义的列将被覆盖。您要继续吗? - - Could not determinate columns returned from the view. The query is problably incomplete or contains errors. - + + Could not determinate columns returned from the view. The query is problably incomplete or contains errors. + 无法确定视图所返回的列。查询可能不完整或包含错误。 - - Name - view window triggers - 名称 + + Name + view window triggers + 名称 - - Instead of - view window triggers - + + Instead of + view window triggers + 而非 - - Condition - view window triggers - 条件 + + Condition + view window triggers + 条件 - - Details - table window triggers - 详情 + + Details + table window triggers + 详情 - - Could not process the %1 view correctly. Unable to open a view window. - 无法正确处理视图 %1。无法打开视图窗口。 + + Could not process the %1 view correctly. Unable to open a view window. + 无法正确处理视图 %1。无法打开视图窗口。 - - Empty name - + + Empty name + 空名称 - - A blank name for the view is allowed in SQLite, but it is not recommended. + + A blank name for the view is allowed in SQLite, but it is not recommended. Are you sure you want to create a view with blank name? - + SQLite 允许为视图使用空白名称,但不推荐使用空白名称。 +您确定要创建一个空白名称的视图? - - The SELECT statement could not be parsed. Please correct the query and retry. + + The SELECT statement could not be parsed. Please correct the query and retry. Details: %1 - + SELECT 语句解析失败。请更正查询并重试。 +详情:%1 - - The view could not be modified due to internal SQLiteStudio error. Please report this! - + + The view could not be modified due to internal SQLiteStudio error. Please report this! + 因 SQLiteStudio 内部错误,无法修改该视图。请报告该问题! - - The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. - + + The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. + 用于执行的视图代码无法正确解析。这是 SQLiteStudio 的 bug,请报告。 - - Following problems will take place while modifying the view. + + Following problems will take place while modifying the view. Would you like to proceed? - view window - + view window + 修改该视图时将出现以下问题。 +是否继续? - - View modification - view window - 视图更改 + + View modification + view window + 视图更改 - - + + WidgetCover - - Interrupt - 中断 + + Interrupt + 停止 - + diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_zh_TW.ts b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_zh_TW.ts new file mode 100644 index 0000000..015cb4c --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_zh_TW.ts @@ -0,0 +1,7106 @@ + + + + + AboutDialog + + + About SQLiteStudio and licenses + 關於 SQLiteStudio 和許可協議 + + + + About + 關於 + + + + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">Free, open-source, cross-platform SQLite database manager.<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">Author and active maintainer:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + <html><head/><body><p align="center"><span style=" font-size:11pt; font-weight:600;">SQLiteStudio v%1</span></p><p align="center">自由、開源、跨平臺的 SQLite 資料庫管理工具。<br/><a href="https://sqlitestudio.pl"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitestudio.pl</span></a><br/></p><p align="center">%2<br/></p><p align="center">作者和活躍維護人:<br/>SalSoft (<a href="https://salsoft.com.pl"><span style=" text-decoration: underline; color:#0000ff;">https://salsoft.com.pl</span></a>)<br/></p></body></html> + + + + Licenses + 許可協議 + + + + Environment + 環境 + + + + Icon directories + 圖示目錄 + + + + Form directories + 表單目錄 + + + + SQLite extension directories + SQLite extension directories + + + + Plugin directories + 外掛目錄 + + + + Configuration directory + 設定檔檔案目錄 + + + + Application directory + 應用程式目錄 + + + + Qt version: + Qt 版本: + + + + SQLite 3 version: + SQLite 3 版本: + + + + Portable distribution. + 便攜版。 + + + + MacOS X application bundle distribution. + MacOS X application bundle distribution. + + + + Operating system managed distribution. + 系統提供版。 + + + + <h3>Table of contents:</h3><ol>%2</ol> + <h3>目錄:</h3><ol>%2</ol> + + + + BindParamsDialog + + + Query parameters + 查詢引數 + + + + Please provide values for query parameters + 請提供一個值作為查詢引數 + + + + CodeSnippetEditor + + + Filter snippets + Filter snippets + + + + + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + + + + + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + + + + Snippet name + Snippet name + + + + Code assistant shortcut + Code assistant shortcut + + + + Snippet code + Snippet code + + + + Code Snippets editor window has uncommitted modifications. + Code Snippets editor window has uncommitted modifications. + + + + Code Snippets editor + Code Snippets editor + + + + Commit all snippet changes + Commit all snippet changes + + + + Rollback all snippet changes + Rollback all snippet changes + + + + Create new snippet + Create new snippet + + + + Delete selected snippet + Delete selected snippet + + + + Move the snippet up + Move the snippet up + + + + Move the snippet down + Move the snippet down + + + + Code snippets manual + Code snippets manual + + + + Enter a non-empty, unique name of the snippet. + Enter a non-empty, unique name of the snippet. + + + + Enter a non-empty snippet content. + Enter a non-empty snippet content. + + + + This hotkey is not unique in context of a code assistant. + This hotkey is not unique in context of a code assistant. + + + + CollationsEditor + + + Filter collations + 篩選字元序 + + + + Databases + 資料庫 + + + + Register in all databases + 在所有資料庫中註冊 + + + + Register in following databases: + 在下列資料庫中註冊: + + + + Implementation code: + 實現程式碼: + + + + Collation name: + 字元序名稱: + + + + Implementation language: + 實現語言: + + + + Collations editor + 字元序編輯器 + + + + Commit all collation changes + 提交全部字元序更改 + + + + Rollback all collation changes + 回滾所有字元序更改 + + + + Create new collation + 建立新字元序 + + + + Delete selected collation + 刪除選中字元序 + + + + Editing collations manual + 手動編輯字元序 + + + + Enter a non-empty, unique name of the collation. + 請為字元序輸入一個非空且唯一的名稱。 + + + + Pick the implementation language. + 選擇實現語言。 + + + + Enter a non-empty implementation code. + 請輸入非空的實現程式碼。 + + + + Collations editor window has uncommitted modifications. + 字元序編輯器有未提交的修改。 + + + + ColorButton + + + Pick a color + 選擇一種顏色 + + + + ColumnCollatePanel + + + Collation name: + 字元序名稱: + + + + Named constraint: + 命名約束: + + + + Enter a name of the constraint. + 輸入約束名稱。 + + + + Enter a collation name. + 輸入字元序名稱。 + + + + ColumnDefaultPanel + + + Default value: + 預設值: + + + + Named constraint: + 命名約束: + + + + Enter a default value expression. + 輸入預設值表示式。 + + + + Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters. + 無效的預設值表示式:%1。如果你想使用簡單的字串作為值,記得用引號將其框起來。 + + + + Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters. + 無效的預設值表示式。如果你想使用簡單的字串作為值,記得用引號將其框起來。 + + + + Enter a name of the constraint. + 輸入約束名: + + + + ColumnDialog + + + Column + + + + + Name and type + 名稱和型別 + + + + Scale + 小數位數 + + + + Precision + 精度 + + + + Data type: + 資料型別: + + + + Column name: + 列名: + + + + Size: + 大小: + + + + Constraints + 約束 + + + + Generated value + 生成的值 + + + + Unique + 唯一 + + + + + + + + + + + Configure + 設定檔 + + + + Foreign Key + 外來鍵 + + + + Collate + 字元序 + + + + Not NULL + 非空 + + + + Check condition + 條件 + + + + Primary Key + 主鍵 + + + + Default + 預設 + + + + Advanced mode + 高階模式 + + + + Add constraint + column dialog + 新增約束 + + + + Edit constraint + column dialog + 編輯約束 + + + + + Delete constraint + column dialog + 刪除約束 + + + + Move constraint up + column dialog + 上移約束 + + + + Move constraint down + column dialog + 下移約束 + + + + Add a primary key + column dialog + 新增主鍵 + + + + Add a foreign key + column dialog + 新增外來鍵 + + + + Add an unique constraint + column dialog + 新增唯一約束 + + + + Add a check constraint + column dialog + 新增條件約束 + + + + Add a not null constraint + column dialog + 新增非空約束 + + + + Add a collate constraint + column dialog + 新增字元序約束 + + + + Add a generated value constraint + column dialog + 新增生成的值約束 + + + + Add a default constraint + column dialog + 新增預設約束 + + + + Are you sure you want to delete constraint '%1'? + column dialog + 確定要刪除約束“%1”嗎? + + + + Correct the constraint's configuration. + 請糾正約束設定檔。 + + + + Scale is not allowed for INTEGER PRIMARY KEY columns. + INTEGER PRIMARY KEY 列中不允許小數位數。 + + + + Precision cannot be defined without the scale. + 有小數位數才能定義精度。 + + + + Cannot use type other than INTEGER if AUTOINCREMENT is enabled in PRIMARY KEY. + 主鍵 (PRIMARY KEY) 已啟用自動遞增 (AUTOINCREMENT),不能使用 INTEGER 以外的型別。 + + + + INTEGER type was enforced due to enabled AUTOINCREMENT in PRIMARY KEY. + 主鍵 (PRIMARY KEY) 已啟用自動遞增 (AUTOINCREMENT),強制使用 INTEGER 型別。 + + + + Precision is not allowed for INTEGER PRIMARY KEY columns. + 不允許對整型主鍵 (INTEGER PRIMARY KEY) 設定精度。 + + + + Could not match valid STRICT table datatype from declared type: %1. + Could not match valid STRICT table datatype from declared type: %1. + + + + ColumnDialogConstraintsModel + + + Type + column dialog constraints + 型別 + + + + Name + column dialog constraints + 名稱 + + + + Details + column dialog constraints + 詳情 + + + + ColumnForeignKeyPanel + + + Foreign table: + 外部表: + + + + Foreign column: + 外部欄位: + + + + Reactions + 響應 + + + + Deferred foreign key + 延遲外來鍵約束 + + + + Named constraint + 命名的約束 + + + + Constraint name + 約束名稱 + + + + Pick the foreign table. + 選擇一個外部表。 + + + + Pick the foreign column. + 選擇一個外部欄位。 + + + + Enter a name of the constraint. + 輸入約束名稱 + + + + ColumnGeneratedPanel + + + Generating code: + 生成程式碼: + + + + Explicit type: + 顯式型別: + + + + Use "GENERATED ALWAYS" keywords + 使用 "GENERATED ALWAYS" 關鍵字 + + + + Named constraint: + 命名的約束: + + + + Enter the column value generating expression. + 請輸入列值生成表示式。 + + + + Invalid value generating expression: %1. + 無效的值生成表示式:%1。 + + + + Invalid value generating expression. + 無效的值生成表示式。 + + + + Enter a name of the constraint. + 輸入約束名稱。 + + + + ColumnPrimaryKeyPanel + + + Autoincrement + 自動遞增 + + + + Sort order: + 排序: + + + + Named constraint: + 命名的約束: + + + + On conflict: + 當衝突時: + + + + Enter a name of the constraint. + 請輸入約束名稱。 + + + + Descending order is not allowed with AUTOINCREMENT. + 自增不允許降序。 + + + + ColumnUniqueAndNotNullPanel + + + Named constraint: + 命名的約束: + + + + On conflict: + 當衝突時: + + + + Enter a name of the constraint. + 請輸入約束名稱。 + + + + CompleterWindow + + + Column: %1 + completer statusbar + 列:%1 + + + + Table: %1 + completer statusbar + 表:%1 + + + + Index: %1 + completer statusbar + 索引:%1 + + + + Trigger: %1 + completer statusbar + 觸發器:%1 + + + + View: %1 + completer statusbar + 檢視:%1 + + + + Database: %1 + completer statusbar + 資料庫:%1 + + + + Keyword: %1 + completer statusbar + 關鍵字:%1 + + + + Function: %1 + completer statusbar + 函式:%1 + + + + Operator: %1 + completer statusbar + 運算子:%1 + + + + String + completer statusbar + 字串 + + + + Number + completer statusbar + 數值 + + + + Binary data + completer statusbar + 二進位制資料 + + + + Collation: %1 + completer statusbar + 字元序:%1 + + + + Pragma function: %1 + completer statusbar + Pragma 函式:%1 + + + + Insert a code snippet + Insert a code snippet + + + + ConfigDialog + + + + Configuration + 設定檔 + + + + Search + 搜尋 + + + + General + 通用 + + + + Keyboard shortcuts + 快捷鍵 + + + + Look & feel + 外觀 + + + + Style + 風格 + + + + Fonts + 字型 + + + + Code colors + Code colors + + + + + Database list + 資料庫清單 + + + + Code assistant + Code assistant + + + + Data browsing + 瀏覽資料 + + + + Data editors + 資料編輯器 + + + + Plugins + 外掛 + + + + Code formatters + 程式碼格式化器 + + + + If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. + 如果關閉,列將按照 CREATE TABLE 中的順序排序。 + + + + Sort table columns alphabetically + 按字母順序列出表的列 + + + + Expand tables node when connected to a database + 連線到資料庫時展開表節點 + + + + <p>Additional labels are those displayed next to the names on the databases list (they are blue, unless configured otherwise). Enabling this option will result in labels for databases, invalid databases and aggregated nodes (column group, index group, trigger group). For more labels see options below.<p> + <p>附加標籤是顯示在資料庫清單的名稱旁邊的文字標籤 (除非另有設定檔,否則為藍色)。啟用此選項將為資料庫、無效資料庫和聚合節點 (列組、索引組、觸發器組) 顯示標籤。更多標籤見下方選項。<p> + + + + Display additional labels on the list + 在清單中顯示附加標籤 + + + + For regular tables labels will show number of columns, indexes and triggers for each of tables. + 對於普通表,標籤將顯示每個表的列、索引和觸發器的數量。 + + + + Display labels for regular tables + 為普通表顯示標籤 + + + + Virtual tables will be marked with a 'virtual' label. + 虛擬表將附以“虛擬”標籤。 + + + + Display labels for virtual tables + 為虛擬表顯示標籤 + + + + Expand views node when connected to a database + 連線到資料庫時展開檢視節點 + + + + If this option is switched off, then objects will be sorted in order they appear in sqlite_master table (which is in order they were created) + 如果關閉此選項,則物件將按照 sqlite_master 表中的順序 (即它們被建立的順序) 排列 + + + + Sort objects (tables, indexes, triggers and views) alphabetically + 按字母順序排列物件 (表、索引、觸發器及檢視) + + + + Display system tables and indexes on the list + 在清單中顯示系統表和索引 + + + + Database dialog window + 資料庫對話方塊視窗 + + + + <p>When adding new database it is marked to be "permanent" (stored in configuration) by default. Checking this option makes every new database to NOT be "permanent" by default.</p> + <p>新增新的資料庫時,預設會將其標記為“永久”(儲存在設定檔檔案中)。選中此選項則新新增的資料庫將預設不標記為“永久”。</p> + + + + Do not mark database to be "permanent" by default + 預設不將新新增的資料庫標為“永久” + + + + <p>When this option is enabled, then files dropped from file manager onto database list will be automatically added to the list, bypassing standard database dialog. If for various reasons automatic process fails, then standard dialog will be presented to the user.</p> + <p>啟用此選項後,將檔案從檔案管理器拖放到資料庫清單中時,將自動繞過標準的資料庫對話方塊,直接新增到清單中。如果由於各種原因自動處理失敗,則還會向用戶顯示標準對話方塊。</p> + + + + Try to bypass dialog completly when dropping database file onto the list + 拖放資料庫檔案到清單中時嘗試完全繞過對話方塊 + + + + Data browsing and editing + 瀏覽和編輯資料 + + + + + <p>Maximum number of configurations of Populate Table dialog stored in configuration. Value of 100 should be sufficient.</p> + <p>在設定檔檔案中儲存,“表填充”對話方塊中的最大數量。值 100 應已足夠。</p> + + + + Number of memorized table populating configurations + 表填充設定檔中的預設填充行數 + + + + Data column width + Data column width + + + + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + <html><head/><body><p>When user enters new value into column and the value is bigger than the current column width, the application will enlarge the column to fit the new value, but not wider than the limit defined in the option above.</p></body></html> + + + + Enlarge column when entering value longer than current width + Enlarge column when entering value longer than current width + + + + <p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit.</p> + <p>當資料被載入到網格檢視時,列寬會自動調整。此值限制初始化時的列寬度,之後您仍可以手動調整列寬,不受此限制。</p> + + + + Number of data rows per page: + 每頁資料行數: + + + + <p>When this is enabled and user holds mouse pointer over a cell in any data view (query results, a table data, a view data) a tooltip will appear with details about the cell - it includes details like column data type, constraints, ROWID and others.</p> + <p>此項啟用後,使用者滑鼠懸停在任意資料檢視 (查詢結果、表資料、檢視資料) 的單元格上時,工具提示將顯示該單元格的詳細資訊——包括列資料型別、約束、ROWID 等。</p> + + + + Show column and row details tooltip in data view + 在資料檢視中展示列與行的詳細資訊 + + + + <p>When editing a cell which used to have NULL value and entering empty string as new value, then this option determinates whether the new value should remain NULL (have this option enabled), or should it be overwritten with empty string value (have this option disabled).</p> + <p>編輯一個過去為 NULL 值的單元格且新輸入的值為空字串時,此選項啟用則該單元格的值保持 NULL 不變,此選項未啟用則空字串覆蓋原 NULL 值。</p> + + + + Keep NULL value when entering empty value + 當輸入空值時保持 NULL 值 + + + + <html><head/><body><p>Enable this to always enforce DEFAULT value when committing a NULL value for a column that has DEFAULT value defined, even though the column is allowed to contain NULL values.</p><p>Disable this option to use DEFAULT value exclusively when NULL value is committed for column with NOT NULL constraint.</p></body></html> + <html><head/><body><p>啟用此選項後,提交一個 NULL 值時,如果該列已定義 DEFAULT 值,即使該列允許包含 NULL 值,也始終採用 DEFAULT 值。</p><p>禁用此選項則僅在列有非空 (NOT NULL) 約束時將 NULL 值轉變為 DEFAULT 值。</p></body></html> + + + + Use DEFAULT value (if defined), when committing NULL value + 提交 NULL 值時使用 DEFAULT 值 (如果已定義) + + + + <html><head/><body><p>If query results contain dozens (or hundreds) of columns, it is more likely that it will exhaust free memory of your computer by loading several gigabytes of data at once. SQLiteStudio may try to limit number of results displayed on one page in such cases to protect your computer. If you know that you don't work with big values in database, you can disable this limit and you will always see as many rows as defined per page.</p></body></html> + <html><head/><body><p>如果查詢結果包含數十乃至上百個列,則載入可能佔用數個 GB 的空閒記憶體。SQLiteStudio 在這種情況下可能限制一頁上顯示的結果數量以保護您的計算機。如果您瞭解自己不會在如此大的資料庫上作業,則可以禁用此限制以始終在一頁上看到大量的行。</p></body></html> + + + + Limit number of rows for in case of dozens of columns + 列數過多時限制每頁顯示的行數 + + + + Inserting new row in data grid + 網格檢視中插入新行時 + + + + Before currently selected row + 在選中行之前 + + + + After currently selected row + 在選中行之後 + + + + At the end of data view + 在資料檢視的末尾 + + + + Table windows + 表視窗 + + + + <p>When enabled, Table Windows will show up with the data tab, instead of the structure tab.</p> + <p>啟用後,表視窗將顯示資料選項卡,而不是結構選項卡。</p> + + + + Open Table Windows with the data tab for start + 開啟表視窗時顯示“資料”選項卡 + + + + <p>When enabled the "Data" tab will be placed as first tab in every Table Window, instead of being at second place.</p> + <p>啟用後,“資料”選項卡將作為第一個選項卡放置在每個表視窗中,而不是位於第二位。</p> + + + + Place data tab as first tab in a Table Window + 將資料作為表視窗的第一項 + + + + View windows + 檢視視窗 + + + + <p>When enabled, View Windows will show up with the data tab, instead of the structure tab.</p> + <p>啟用後,檢視視窗將顯示資料選項卡,而不是結構選項卡。</p> + + + + Open View Windows with the data tab for start + 開啟檢視視窗時顯示“資料”選項卡 + + + + <p>When enabled the "Data" tab will be placed as first tab in every View Window, instead of being at second place.</p> + <p>啟用後,“資料”選項卡將作為第一個選項卡放置在每個檢視視窗中,而不是位於第二個位置。</p> + + + + Place data tab as first tab in a View Window + 將“資料”選項卡放置為檢視視窗的首個選項卡 + + + + Data types + 資料型別 + + + + Available editors: + 可用的編輯器: + + + + Editors selected for this data type: + 已為該資料型別選擇的編輯器: + + + + Schema editing + 結構編輯 + + + + Number of DDL changes kept in history. + DDL 變更歷史的記錄數量。 + + + + DDL history size: + DDL 歷史大小: + + + + Don't show DDL preview dialog when committing schema changes + 提交結構更改時不顯示 DDL 預覽對話方塊 + + + + SQL queries + SQL 查詢 + + + + + Number of queries kept in the history. + 查詢歷史記錄數量。 + + + + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> + <html><head/><body><p>If there is more than one query in the SQL editor window, then (if this option is enabled) only a single query will be executed - the one under the keyboard insertion cursor. Otherwise all queries will be executed. You can always limit queries to be executed by selecting those queries before calling to execute. You can also use dedicated shortcuts for executing in one mode or the other (currently configured to %1 for single query execution and %2 for all queries execution).</p></body></html> + + + + History size: + 歷史大小: + + + + + <p>Maximum number of query parameters (:param, @param, $param, ?) stored in history. When you re-use parameter with the same name/position, SQLiteStudio will pre-initialize it with most recent memorized value (you will still be able to change it). Value of 1000 should be sufficient.</p> + <p>歷史記錄中儲存查詢引數 (:param, @param, $param, ?) 的最大數量。當您重新在同一名稱/位置下使用引數時,SQLiteStudio 將使用最近記憶的值預填充初始化它 (仍可修改)。值 1000 應已足夠。</p> + + + + Execute only the query under the cursor + 只執行輸入符所在行的語句 + + + + Number of memorized query parameters + 預設的查詢引數數量 + + + + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + <html><head/><body><p>By default (when this option is disabled) a real number is displayed in the format of decimals with decimal point. In some cases, when the number is really small (several places after decimal point), the default representation may appear inaccurate. In such case you may want to enable this option to use the scientific notation (i.e. <span style=" font-style:italic;">5.3e-21</span>).</p></body></html> + + + + Use scientific notation for real numbers in the grid view + Use scientific notation for real numbers in the grid view + + + + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + <html><head/><body><p>When the data is read into grid view columns width is automatically adjusted. This value limits the initial width for the adjustment, but user can still resize the column manually over this limit. This value is also used when enlarging column upon new, longer value entered by the user (see option below).</p></body></html> + + + + Limit automatic data column width to (in pixels): + Limit automatic data column width to (in pixels): + + + + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + <html><head/><body><p>Initial width of data columns will be set to at least show complete name of the column in the header. This can still be overwritten by the initial limit of column width specified in pixels (the setting above).</p></body></html> + + + + Keep at least the width to show complete column name + Keep at least the width to show complete column name + + + + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + <html><head/><body><p>If enabled, lines longer than the editor width will be wrapped, so horizontal scrolling will not be needed.</p></body></html> + + + + Wrap lines in SQL editor + Wrap lines in SQL editor + + + + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + <html><head/><body><p>Highlights entire query that is currently under the insertion cursor. It's the same query that will be executed when you hit &quot;Execute query&quot; hotkey or button (unless configured otherwise).</p></body></html> + + + + Highlight current query + Highlight current query + + + + Updates + 更新 + + + + Automatically check for updates at startup + 啟動時自動檢查更新 + + + + Session + 會話 + + + + Restore last session (active MDI windows) after startup + 啟動後恢復上一次會話 + + + + Allow multiple instances of the application at the same time + 允許同時開啟多個此程式 + + + + Status Field + 狀態列 + + + + <p>When user manually closes the Status panel, this option makes sure that if any new message is printed in the Status panel it will be reopened. If it's disabled, then Status panel can only be open manually by the user from the "View" menu.</p> + <p>在使用者手動關閉了狀態面板後,此選項能確保有新訊息被出現時狀態面板自動被重新開啟。如果禁用,狀態面板只能由使用者手動透過“檢視”選單來重新開啟。</p> + + + + Always open Status panel when new message is printed + 有新訊息輸出時就開啟狀態面板 + + + + Code syntax colors + Code syntax colors + + + + Keyword foreground + Keyword foreground + + + + Regular foreground + Regular foreground + + + + String foreground + String foreground + + + + Comment foreground + Comment foreground + + + + Valid objects foreground + Valid objects foreground + + + + Current query background + Current query background + + + + Bind parameter foreground + Bind parameter foreground + + + + Current line background + Current line background + + + + Matched parenthesis background + Matched parenthesis background + + + + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + <html><head/><body><p>You can disable current query highlighting entirely on the General settings page.</p></body></html> + + + + Number foreground + Number foreground + + + + BLOB value foreground + BLOB value foreground + + + + Matched parenthesis foreground + Matched parenthesis foreground + + + + Reset to defaults + Reset to defaults + + + + Filter shortcuts by name or key combination + 以名稱或按鍵組合篩選快捷鍵 + + + + Action + 操作 + + + + Key combination + 按鍵組合 + + + + + Language + 語言 + + + + Changing language requires application restart to take effect. + 語言變更在程式重啟後生效。 + + + + Compact layout + 緊湊佈局 + + + + <p>Compact layout reduces all margins and spacing on the UI to minimum, making space for displaying more data. It makes the interface a little bit less aesthetic, but allows to display more data at once.</p> + <p>緊湊佈局會將介面中的邊框與留白減至最小,然後用這些區域展示更多資料。這會使介面看起來有一點不美觀,但將可以同時展示更多的資料。</p> + + + + Use compact layout + 使用緊湊佈局 + + + + Main window dock areas + 主視窗停靠區域 + + + + Left and right areas occupy corners + 左右佈局 + + + + Top and bottom areas occupy corners + 上下佈局 + + + + Hide built-in plugins + 隱藏內建外掛 + + + + Current style: + 當前風格: + + + + Preview + 預覽 + + + + Enabled + 已啟用 + + + + Disabled + 已禁用 + + + + Active formatter plugin + 啟用格式化外掛 + + + + SQL editor font + SQL 編輯器字型 + + + + Database list font + 資料庫清單字型 + + + + Database list additional label font + 資料庫清單額外資訊字型 + + + + Data view font + 資料檢視字型 + + + + Status field font + 狀態列字型 + + + + Code assistant settings + Code assistant settings + + + + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + <html><head/><body><p>If this option is enabled, the code assistant will be triggered in cases, when user types for example <span style=" font-weight:700;">tableName.</span> to propose columns of the table. If the option is disabled, user will have to hit the assistant hotkey explicitly.</p></body></html> + + + + Automatically trigger the assistant after a dot is typed after an object name + Automatically trigger the assistant after a dot is typed after an object name + + + + Description: + plugin details + 描述: + + + + Category: + plugin details + 分類: + + + + Version: + plugin details + 版本: + + + + Author: + plugin details + 作者: + + + + Internal name: + plugin details + 內部名稱: + + + + Dependencies: + plugin details + 依賴: + + + + Conflicts: + plugin details + 衝突: + + + + Plugin details + 外掛詳情 + + + + Plugins are loaded/unloaded immediately when checked/unchecked, but modified list of plugins to load at startup is not saved until you commit the whole configuration dialog. + 切換時外掛會立即載入/解除安裝。但此清單的修改僅在點選確定按鈕後被儲存。 + + + + %1 (built-in) + plugins manager in configuration dialog + %1 (內建) + + + + Details + 詳情 + + + + No plugins in this category. + 沒有此分類下的外掛。 + + + + Add new data type + 新增新的資料型別 + + + + Rename selected data type + 重新命名所選資料型別 + + + + Delete selected data type + 刪除所選資料型別 + + + + Help for configuring data type editors + 設定檔資料型別編輯器幫助 + + + + Clear hotkey for this action + Clear hotkey for this action + + + + Restore original hotkey for this action + Restore original hotkey for this action + + + + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + Here you can configure colors for code syntax highlighting. They are shared across different languages - not only for SQL, but also JavaScript and others. By default a theme-based color is used. To define your own color, enable a custom color by selecting a checkbox next to a particular color. + + + + ConstraintCheckPanel + + + The condition + 條件 + + + + Named constraint: + 命名的約束: + + + + On conflict + 當衝突時 + + + + Enter a valid condition. + 輸入一個有效的條件。 + + + + Enter a name of the constraint. + 輸入一個約束名稱。 + + + + ConstraintDialog + + + New constraint + constraint dialog + 新建約束 + + + + Create + constraint dialog + 建立 + + + + Edit constraint + dialog window + 編輯約束 + + + + Apply + constraint dialog + 應用 + + + + Primary key + table constraints + 主鍵 + + + + Foreign key + table constraints + 外來鍵 + + + + Unique + table constraints + 唯一 + + + + Not NULL + table constraints + 非空 + + + + Check + table constraints + 條件 + + + + Generated + table constraints + 生成 + + + + Collate + table constraints + 字元序 + + + + Default + table constraints + 預設 + + + + ConstraintTabModel + + + Table + table constraints + + + + + Column (%1) + table constraints + 列 (%1) + + + + Scope + table constraints + 作用域 + + + + Type + table constraints + 型別 + + + + Details + table constraints + 詳情 + + + + Name + table constraints + 名稱 + + + + CssDebugDialog + + + SQLiteStudio CSS console + SQLiteStudio CSS 控制檯 + + + + DataView + + + Filter data + data view + 篩選資料 + + + + Grid view + 網格檢視 + + + + Form view + 表單檢視 + + + + Refresh table data + data view + 重新整理表資料 + + + + First page + data view + 第一頁 + + + + Previous page + data view + 上一頁 + + + + Next page + data view + 下一頁 + + + + Last page + data view + 最後一頁 + + + + Commit changes for selected cells + data view + 提交選中單元格的更改 + + + + Rollback changes for selected cells + data view + 回滾選中單元格的修改 + + + + Show grid view of results + data view + 顯示結果的網格檢視 + + + + Show form view of results + data view + 顯示結果的表格檢視 + + + + Filter by text (if contains) + data view + Filter by text (if contains) + + + + Filter strictly by text (if equals) + data view + Filter strictly by text (if equals) + + + + Tabs on top + data view + 頂部標籤 + + + + Tabs at bottom + data view + 底部標籤 + + + + Place new rows above selected row + data view + 放置新行於選中行之上 + + + + Place new rows below selected row + data view + 放置新行於選中行之下 + + + + Place new rows at the end of the data view + data view + 放置新行於資料檢視末尾 + + + + Total number of rows is being counted. +Browsing other pages will be possible after the row counting is done. + 正在統計總行數。 +請在此操作完成後再瀏覽其他頁面。 + + + + Row: %1 + 行:%1 + + + + Filter + 篩選 + + + + Hit Enter key or press "Apply filter" button on toolbar to apply new value. + 按回車鍵或點選工具欄上的“應用篩選”按鈕來應用新值。 + + + + Filter by the Regular Expression + data view + 以正則表示式篩選 + + + + Filter by SQL expression + data view + 以 SQL 表示式篩選 + + + + Show filter inputs per column + data view + 在每個列上展示篩選器輸入框 + + + + Apply filter + data view + 應用篩選器 + + + + DbDialog + + + Database + 資料庫 + + + + Database type + 資料庫型別 + + + + Database driver + 資料庫驅動 + + + + + File + 檔案 + + + + Name (on the list) + 名稱 (顯示在清單中) + + + + Options + 選項 + + + + <p>Enable this if you want the database to be stored in configuration file and restored every time SQLiteStudio is started.</p> + aasfd + <p>啟用此選項後,設定檔檔案中將記住該資料庫,並在每次啟動 SQLiteStudio 時還原 (開啟) 它。</p> + + + + Permanent (keep it in configuration) + 記住此資料庫 + + + + Test connection + 測試連線 + + + + Select new or existing file on local computer + Select new or existing file on local computer + + + + Browse + 瀏覽 + + + + Database type not selected. + Database type not selected. + + + + Database path not specified. + Database path not specified. + + + + Enter an unique database name. + 請輸入一個唯一的資料庫名稱。 + + + + This name is already in use. Please enter unique name. + 此名稱已被使用,請輸入一個未被佔用的名稱。 + + + + <p>Automatic name generation was disabled, because the name was edited manually. To restore automatic generation please erase contents of the name field.</p> + <p>名稱已手動編輯,自動命名已禁用。清空名稱欄中的內容將恢復自動命名。</p> + + + + Enter a database file path. + 輸入一個數據庫檔案的路徑。 + + + + This database is already on the list under name: %1 + 該資料庫已在清單中,名為:%1 + + + + Select a database type. + 請選擇一個數據庫型別。 + + + + DbObjectDialogs + + + Delete table + 刪除表 + + + + Are you sure you want to delete table %1? + 確定要刪除表“%1”嗎? + + + + Delete index + 刪除索引 + + + + Are you sure you want to delete index %1? + 確定要刪除索引“%1”嗎? + + + + Delete trigger + 刪除觸發器 + + + + Are you sure you want to delete trigger %1? + 確定要刪除觸發器“%1”嗎? + + + + Delete view + 刪除檢視 + + + + Are you sure you want to delete view %1? + 確定要刪除檢視“%1”嗎? + + + + + Error while dropping %1: %2 + 丟棄 %1 時出錯:%2 + + + + Delete objects + 刪除物件 + + + + Are you sure you want to delete following objects: +%1 + 您確認要刪除以下物件嗎: +%1 + + + + Cannot start transaction. Details: %1 + 無法開始事務。詳細資訊:%1 + + + + Cannot commit transaction. Details: %1 + 無法提交事務。詳細資訊:%1 + + + + DbTree + + + Databases + 資料庫 + + + + Filter by name + 按名稱過濾 + + + + Copy + 複製 + + + + Paste + 貼上 + + + + Select all + 全選 + + + + Create a group + 建立分組 + + + + Delete the group + 刪除分組 + + + + Rename the group + 重新命名分組 + + + + &Add a database + 新增資料庫(&A) + + + + &Edit the database + 編輯資料庫(&E) + + + + &Remove the database + 移除資料庫(&R) + + + + &Connect to the database + 連線到資料庫(&C) + + + + &Disconnect from the database + 斷開資料庫連線(&D) + + + + Import + 匯入 + + + + &Export the database + 匯出資料庫(&E) + + + + Vac&uum + 釋放空閒佔用 (VACUUM) (&U) + + + + &Integrity check + 檢查完整性(&I) + + + + Create a &table + 新建表(&T) + + + + Edit the t&able + 編輯表(&A) + + + + Delete the ta&ble + 刪除表(&B) + + + + Export the table + 匯出表 + + + + Import into the table + 匯入到表 + + + + Populate table + 填充表 + + + + Create similar table + 建立相似的表 + + + + Reset autoincrement sequence + 重置自動遞增序列 + + + + Create an &index + 建立索引(&I) + + + + Edit the i&ndex + 編輯索引(&N) + + + + Delete the in&dex + 刪除索引(&D) + + + + Create a trig&ger + 建立觸發器(&G) + + + + Edit the trigg&er + 編輯觸發器(&E) + + + + Delete the trigge&r + 刪除觸發器(&R) + + + + Create a &view + 建立檢視(&V) + + + + Edit the v&iew + 編輯檢視(&I) + + + + Delete the vi&ew + 刪除檢視(&E) + + + + Add a column + 新增欄位 + + + + Edit the column + 編輯欄位 + + + + Delete the column + 刪除欄位 + + + + Delete selected items + 刪除已選專案 + + + + Clear filter + 清除過濾器 + + + + &Refresh all database schemas + 重新整理全部資料庫結構(&R) + + + + Re&fresh selected database schema + 重新整理已選資料庫結構(&F) + + + + + Erase table data + 擦除表資料 + + + + Open file's directory + 開啟檔案所在目錄 + + + + Execute SQL from file + 從檔案執行 SQL + + + + Increase font size + database list + Increase font size + + + + Decrease font size + database list + Decrease font size + + + + + Database + 資料庫 + + + + Grouping + 分組 + + + + Generate query for table + 生成對錶的查詢 + + + + + Create group + 建立分組 + + + + Group name + 分組名 + + + + Entry with name %1 already exists in group %2. + 名稱 %1 在分組 %2 中已存在。 + + + + Delete group + 刪除分組 + + + + Are you sure you want to delete group %1? +All objects from this group will be moved to parent group. + 確認刪除組 %1 嗎? +刪除後該組下的全部內容將被移動到其所屬的父分組中。 + + + + Are you sure you want to remove database '%1' from the list? + 確定要移除資料庫 %1 嗎? + + + + Are you sure you want to remove following databases from the list: +%1 + 確定要從清單中移除下列資料庫嗎: +%1 + + + + Remove database + 移除資料庫 + + + + + Cannot import, because no import plugin is loaded. + 無法匯入,沒有載入匯入外掛。 + + + + + Cannot export, because no export plugin is loaded. + 無法匯出,沒有載入匯出外掛。 + + + + Vacuum (%1) + 釋放空閒佔用 (VACUUM) (%1) + + + + Integrity check (%1) + 完整性檢查 (%1) + + + + Reset autoincrement + 重置自動遞增 + + + + Are you sure you want to reset autoincrement value for table '%1'? + 您確定要重置表“%1”的自動遞增值嗎? + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + 重置表“%1”的自動遞增值時出錯:%2 + + + + Autoincrement value for table '%1' has been reset successfully. + 成功重置表“%1”的自動遞增值。 + + + + Are you sure you want to delete all data from table(s): %1? + 您確定要刪除表 %1 的所有資料嗎? + + + + An error occurred while trying to delete data from table '%1': %2 + 刪除表“%1”中的資料時出錯:%2 + + + + All data has been deleted for table '%1'. + 表“%1”中的全部資料已被刪除。 + + + + Following objects will be deleted: %1. + 下列物件將被刪除:%1。 + + + + Following databases will be removed from list: %1. + 下列資料庫將從清單中移除:%1。 + + + + Remainig objects from deleted group will be moved in place where the group used to be. + 已刪除分組中的剩餘物件將被移開。 + + + + %1<br><br>Are you sure you want to continue? + %1<br><br>確定繼續? + + + + Delete objects + 刪除物件 + + + + DbTreeItemDelegate + + + error + dbtree labels + 錯誤 + + + + (system table) + database tree label + (系統表) + + + + (virtual) + virtual table label + (虛擬) + + + + (system index) + database tree label + (系統索引) + + + + DbTreeModel + + + Database: %1 + dbtree tooltip + 資料庫:%1 + + + + URI: + dbtree tooltip + URI: + + + + Version: + dbtree tooltip + 版本: + + + + File size: + dbtree tooltip + 檔案大小: + + + + Encoding: + dbtree tooltip + 編碼: + + + + Error: + dbtree tooltip + 錯誤: + + + + Table : %1 + dbtree tooltip + 表:%1 + + + + Columns (%1): + dbtree tooltip + 列 (%1): + + + + Indexes (%1): + dbtree tooltip + 索引 (%1): + + + + Triggers (%1): + dbtree tooltip + 觸發器 (%1): + + + + Copy + 複製 + + + + Move + 移動 + + + + Include data + 包含資料 + + + + Include indexes + 包含索引 + + + + Include triggers + 包含觸發器 + + + + Abort + 中止 + + + + Could not add dropped database file '%1' automatically. Manual setup is necessary. + 無法自動新增拖放的資料庫檔案 '%1'。需要手動設定。 + + + + Referenced tables + 引用的表 + + + + Do you want to include following referenced tables as well: +%1 + 是否要包含以下引用的表: +%1 + + + + Name conflict + 名稱衝突 + + + + Following object already exists in the target database. +Please enter new, unique name, or press '%1' to abort the operation: + 下列物件已存在於目標資料庫。 +請輸入一個新的不重複的名稱,或按下 '%1' 中止操作: + + + + SQL statements conversion + SQL 語句轉換 + + + + Following error occurred while converting SQL statements to the target SQLite version: + 將 SQL 語句轉換為目標 SQLite 版本時發生以下錯誤: + + + + Would you like to ignore those errors and proceed? + 是否忽略錯誤並繼續? + + + + DdlHistoryWindow + + + Filter by database: + 按資料庫過濾: + + + + Clear entire history + Clear entire history + + + + -- Queries executed on database %1 (%2) +-- Date and time of execution: %3 +%4 + -- 在資料庫 %1 (%2) 執行的查詢 +-- 執行日期和時間:%3 +%4 + + + + Clear history + Clear history + + + + Are you sure you want to erase entire DDL history? + Are you sure you want to erase entire DDL history? + + + + DDL history + DDL 歷史 + + + + DdlPreviewDialog + + + Queries to be executed + 將要執行的語句 + + + + Don't show again + 不再顯示 + + + + DebugConsole + + + SQLiteStudio Debug Console + SQLiteStudio 除錯終端 + + + + EditorWindow + + + SQL editor + SQL editor + + + + Query + 查詢 + + + + History + 歷史 + + + + Results in the separate tab + 在新選項卡中顯示結果 + + + + Results below the query + 在查詢下方顯示結果 + + + + + SQL editor %1 + SQL 編輯器 %1 + + + + + Results + 結果 + + + + Execute query + 執行語句 + + + + Explain query + 解釋查詢 + + + + Clear execution history + sql editor + 清除執行歷史 + + + + Export results + sql editor + 匯出結果 + + + + Create view from query + sql editor + 從查詢建立檢視 + + + + Previous database + 前一個數據庫 + + + + Next database + 後一個數據庫 + + + + Show next tab + sql editor + 顯示下一個標籤 + + + + Show previous tab + sql editor + 顯示上一個標籤 + + + + Focus results below + sql editor + 切換焦點到下方的結果 + + + + Focus SQL editor above + sql editor + 切換焦點到上方的 SQL 編輯器 + + + + Delete selected SQL history entries + sql editor + 刪除選中的 SQL 歷史記錄項 + + + + Execute single query under cursor + Execute single query under cursor + + + + Execute all queries in editor + Execute all queries in editor + + + + Active database (%1/%2) + 活動資料庫 (%1/%2) + + + + Query finished in %1 second(s). Rows affected: %2 + 查詢用時 %1 秒。影響行數:%2 + + + + Query finished in %1 second(s). + 查詢用時 %1 秒。 + + + + Clear execution history + 清除執行歷史 + + + + Are you sure you want to erase the entire SQL execution history? This cannot be undone. + 確定要刪除全部的 SQL 執行歷史嗎?刪除後不能恢復。 + + + + Cannot export, because no export plugin is loaded. + 無法匯出,沒有載入匯出外掛。 + + + + No database selected in the SQL editor. Cannot create a view for unknown database. + 沒有在 SQL 編輯器中選中資料庫。無法為未知的資料庫建立檢視。 + + + + Editor window "%1" has uncommitted data. + 編輯器視窗“%1”內有未提交的資料。 + + + + ErrorsConfirmDialog + + + Errors + 錯誤 + + + + Following errors occured: + 發生了以下錯誤: + + + + Would you like to proceed? + 仍要繼續嗎? + + + + ExecFromFileDialog + + + Execute SQL from file + 從檔案執行 SQL + + + + Input file + 輸入檔案 + + + + Path to file + 檔案路徑 + + + + Browse for file + 瀏覽檔案 + + + + Options + 選項 + + + + File encoding + 檔案編碼 + + + + Skip failing SQL statements + 跳過失敗的 SQL 語句 + + + + SQL scripts (*.sql);;All files (*) + SQL 指令碼 (*.sql);;所有檔案 (*) + + + + Execute SQL file + 執行 SQL 檔案 + + + + Please provide file to be executed. + 請提供一個檔案以供執行。 + + + + Provided file does not exist or cannot be read. + 提供的檔案不存在或無法讀取。 + + + + ExportDialog + + + Export + 匯出 + + + + What do you want to export? + 您想匯出什麼? + + + + A database + 資料庫 + + + + A single table + 一張表 + + + + Query results + 查詢結果 + + + + Table to export + 要匯出的表 + + + + Database + 資料庫 + + + + Table + + + + + Options + 選項 + + + + When this option is unchecked, then only table DDL (CREATE TABLE statement) is exported. + 不選中此選項時,僅匯出表的 DDL (CREATE TABLE 語句)。 + + + + Export table data + 匯出表的資料 + + + + Export table indexes + 匯出表的索引 + + + + Export table triggers + 匯出表的觸發器 + + + + Note, that exporting table indexes and triggers may be unsupported by some output formats. + 注意,某些輸出格式可能不支援匯出表索引和觸發器。 + + + + Select database objects to export + 選擇要匯出的資料庫物件 + + + + Export data from tables + 從表中匯出資料 + + + + Select all + 全選 + + + + Deselect all + 全不選 + + + + + Database: + 資料庫: + + + + Query to export results for + 匯出結果所需的查詢 + + + + Query to be executed for results: + 對匯出結果執行的查詢: + + + + Export format and options + 匯出格式和選項 + + + + Export format + 匯出格式 + + + + Output + 輸出 + + + + Exported file path + 匯出檔案路徑 + + + + Clipboard + 剪貼簿 + + + + File + 檔案 + + + + Exported text encoding: + 匯出文字編碼: + + + + Export format options + 匯出格式選項 + + + + Cancel + 取消 + + + + + + Select database to export. + 選擇要匯出的資料庫。 + + + + Select table to export. + 選擇要匯出的表。 + + + + Enter valid query to export. + 輸入要匯出的有效查詢。 + + + + Select at least one object to export. + 至少選擇一個物件進行匯出。 + + + + You must provide a file name to export to. + 您必須選擇一個匯出檔案。 + + + + Path you provided is an existing directory. You cannot overwrite it. + 您提供的路徑是一個現存的目錄,不能覆蓋。 + + + + The directory '%1' does not exist. + 目錄 '%1' 不存在。 + + + + The file '%1' exists and will be overwritten. + 檔案“%1”存在且將被覆蓋。 + + + + All files (*) + 所有檔案 (*) + + + + Pick file to export to + 選擇檔案匯出到 + + + + Internal error during export. This is a bug. Please report it. + 匯出時發生內部錯誤。這是一個 Bug,請反饋。 + + + + FileExecErrorsDialog + + + Execution errors + 執行錯誤 + + + + Following errors were encountered during execution of SQL statements from the file: + 從檔案執行 SQL 語句時遇到以下錯誤: + + + + SQL + SQL + + + + Error + 錯誤 + + + + Statements that were executed successfully were commited. + 成功執行的語句已提交。 + + + + Statements that were executed successfully were rolled back. + 成功執行的語句已回滾。 + + + + FkComboBox + + + Cannot edit this cell. Details: %1 + 無法編輯此單元格。詳情:%1 + + + + FontEdit + + + Choose font + font configuration + 選擇字型 + + + + Form + + + Active SQL formatter plugin + 啟用 SQL 語句格式化外掛 + + + + FormView + + + Commit row + form view + 提交行 + + + + Rollback row + form view + 回滾行 + + + + First row + form view + 首行 + + + + Previous row + form view + 上一行 + + + + Next row + form view + 下一行 + + + + Last row + form view + 末行 + + + + Insert new row + form view + 插入新行 + + + + Delete current row + form view + 刪除當前行 + + + + FunctionsEditor + + + Filter functions + Filter functions + + + + Input arguments + 輸入引數 + + + + Undefined + 未定義 + + + + Databases + 資料庫 + + + + Register in all databases + 在所有資料庫中註冊 + + + + Register in following databases: + 在下列資料庫中註冊: + + + + Type: + 型別: + + + + Function name: + 函式名: + + + + Implementation language: + 實現語言: + + + + Deterministic + Deterministic + + + + Initialization code: + 初始化程式碼: + + + + + Function implementation code: + 函式實現程式碼: + + + + Final step implementation code: + 最終一步實現程式碼: + + + + SQL functions editor + SQL functions editor + + + + Commit all function changes + 提交所有對函式的更改 + + + + Rollback all function changes + 回滾所有對函式的更改 + + + + Create new function + 新建函式 + + + + Delete selected function + 刪除已選函式 + + + + Custom SQL functions manual + 自訂 SQL 函式手冊 + + + + Add function argument + 新增函式引數 + + + + Rename function argument + 重新命名函式引數 + + + + Delete function argument + 刪除函式引數 + + + + Move function argument up + 上移函式引數 + + + + Move function argument down + 下移函式引數 + + + + Scalar + 標量函式 + + + + Aggregate + 聚合函式 + + + + Enter a non-empty, unique name of the function. + 請輸入非空且唯一的函式名稱。 + + + + Pick the implementation language. + 選擇實現語言。 + + + + Per step code: + 步進程式碼: + + + + Enter a non-empty implementation code. + 請輸入非空的實現程式碼。 + + + + argument + new function argument name in function editor window + 引數 + + + + Functions editor window has uncommitted modifications. + 函式編輯器視窗有未提交的更改。 + + + + ImportDialog + + + Import data + 匯入資料 + + + + Table to import to + 匯入目標 + + + + Table + + + + + Database + 資料庫 + + + + Data source to import from + 匯入資料來源 + + + + Data source type + 資料來源型別 + + + + Options + 選項 + + + + Text encoding: + 文字編碼: + + + + Input file: + 輸入檔案: + + + + <p>If enabled, any constraint violation, or invalid data format (wrong column count), or any other problem encountered during import will be ignored and the importing will be continued.</p> + <p>如果啟用,則匯入期間遇到的任何約束違背、無效資料格式 (錯誤列數) 或其他問題都將被忽略,匯入不中止。</p> + + + + Ignore errors + 忽略錯誤 + + + + Data source options + 資料來源選項 + + + + Cancel + 取消 + + + + If you type table name that doesn't exist, it will be created. + 如果您輸入的表不存在,則將建立該表。 + + + + Enter the table name + 輸入表名 + + + + Select import plugin. + 選擇匯入外掛。 + + + + You must provide a file to import from. + 您必須提供一個匯入原始檔。 + + + + The file '%1' does not exist. + 檔案“%1”不存在。 + + + + Path you provided is a directory. A regular file is required. + 您提供的是一個目錄,而需要的是一個一般檔案。 + + + + Pick file to import from + 選擇要匯入的檔案 + + + + IndexDialog + + + + Index + 索引 + + + + Column + + + + + Sort + 排序 + + + + Collation + 字元序 + + + + On table: + 表: + + + + Delete selected indexed expression + 刪除選定的索引表示式 + + + + Moves selected index column up in the order, making it more significant in the index. + 向上移動選中的索引,使它在索引中變得更重要。 + + + + Moves selected index column down in the order, making it less significant in the index. + 向下移動選中的索引,使它在索引中變得不重要。 + + + + Partial index condition + 部分索引條件 + + + + Unique index + 唯一索引 + + + + Index name: + 索引名: + + + + Edit selected indexed expression + 編輯選定的索引表示式 + + + + Add indexed expression + 新增索引表示式 + + + + DDL + DDL + + + + Tried to open index dialog for closed or inexisting database. + 試圖開啟已關閉或不存在的資料庫的索引對話方塊。 + + + + Could not process index %1 correctly. Unable to open an index dialog. + 無法正確處理索引 %1。無法開啟索引對話方塊。 + + + + Unique index cannot have indexed expressions. Either remove expressions from list below, or uncheck this option. + 唯一索引不能有索引表示式。從下面的清單中刪除表示式,或取消選中此選項。 + + + + Pick the table for the index. + 為索引選擇一個表。 + + + + Select at least one column. + 選擇至少一個列。 + + + + Enter a valid condition. + 輸入一個有效的條件。 + + + + default + index dialog + 預設 + + + + Sort order + table constraints + 排序 + + + + + Error + index dialog + 錯誤 + + + + Cannot create unique index, because values in selected columns are not unique. Would you like to execute SELECT query to see problematic values? + 無法建立唯一索引,因為選中的列中的值不是唯一的。您想要執行 SELECT 查詢以檢視有問題的值嗎? + + + + An error occurred while executing SQL statements: +%1 + 在執行 SQL 語句時發生了錯誤:%1 + + + + IndexExprColumnDialog + + + Indexed expression + 索引表示式 + + + + Expression to index + 索引表示式 + + + + This expression is already indexed by the index. + 此表示式已被該索引所索引。 + + + + Column should be indexed directly, not by expression. Either extend this expression to contain something more than just column name, or abort and select this column in index dialog directly. + 列應該直接索引而非透過表示式。擴充套件此表示式來包含列名稱以外的內容,或者中止並在索引對話方塊中直接選擇此列。 + + + + Column '%1' does not belong to the table covered by this index. Indexed expressions can refer only to columns from the indexed table. + 列 '%1' 不屬於此索引所在的表。索引表示式只能引用索引表中的列。 + + + + It's forbidden to use 'SELECT' statements in indexed expressions. + 索引表示式中禁止使用 'SELECT' 語句。 + + + + Enter an indexed expression. + 請輸入一個索引表示式。 + + + + Invalid expression. + 無效的表示式。 + + + + LanguageDialog + + + Language + 語言 + + + + Please choose language: + 請選擇一種語言: + + + + MainWindow + + + Database toolbar + 資料庫工具欄 + + + + Structure toolbar + 結構工具欄 + + + + Tools + 工具 + + + + Window list + 視窗清單 + + + + View toolbar + 檢視工具欄 + + + + Configuration widgets + 設定檔部件 + + + + Syntax highlighting engines + 語法高亮引擎 + + + + Data editors + 資料編輯器 + + + + Running in debug mode. Press %1 or use 'Help / Open debug console' menu entry to open the debug console. + 正在以除錯模式執行。按下 %1 或使用 幫助 - 開啟除錯控制檯 選單來開啟除錯控制檯。 + + + + Running in debug mode. Debug messages are printed to the standard output. + 正在以除錯模式執行。除錯資訊將會被輸出在標準輸出中。 + + + + You need to restart application to make the language change take effect. + 語言變更在程式重啟後生效。 + + + + Open SQL &editor + 開啟 SQL 編輯器(&E) + + + + Open DDL &history + 開啟 DDL 歷史(&H) + + + + Open SQL &functions editor + 開啟 SQL 函式編輯器(&F) + + + + Open code &snippets editor + Open code &snippets editor + + + + Open &collations editor + 開啟字元序編輯器(&C) + + + + Open ex&tension manager + 開啟擴充套件管理器(&T) + + + + &Import + 匯入(&I) + + + + E&xport + 匯出(&X) + + + + Open confi&guration dialog + 開啟設定檔對話方塊(&G) + + + + &Tile windows + 平鋪視窗(&T) + + + + Tile windows &horizontally + 水平排列視窗(&H) + + + + Tile windows &vertically + 垂直排列視窗(&V) + + + + &Cascade windows + 層疊視窗(&C) + + + + Next window + 下一個視窗 + + + + Previous window + 上一個視窗 + + + + Hide status field + 隱藏狀態列 + + + + Close &all windows + 關閉全部視窗(&A) + + + + Re&store recently closed window + 還原最近關閉的視窗(&S) + + + + Close current &window + Close current &window + + + + Close &other windows + Close &other windows + + + + Close windows on the &left + Close windows on the &left + + + + Close windows on the &right + Close windows on the &right + + + + Re&name selected window + Re&name selected window + + + + Open Debug Console + 開啟除錯終端 + + + + Open CSS Console + 開啟 CSS 控制檯 + + + + Report a &bug + 提報 Bug (&B) + + + + D&onate + 捐贈(&O) + + + + Propose a new &feature + 提議新增功能(&F) + + + + &About + 關於(&A) + + + + &Licenses + 許可協議(&L) + + + + Open home &page + 訪問主頁(&P) + + + + User &Manual + 使用者手冊(&M) + + + + SQLite &documentation + SQLite 文件(&D) + + + + Bugs and feature &requests + Bug 與功能請求(&R) + + + + Quit + 退出 + + + + Check for &updates + 檢查更新(&U) + + + + &Database + menubar + 資料庫(&D) + + + + &Structure + menubar + 結構(&S) + + + + &View + menubar + 檢視(&V) + + + + Window list + menubar view menu + 視窗清單 + + + + &Tools + menubar + 工具(&T) + + + + &Help + 幫助(&H) + + + + Could not set style: %1 + main window + 未能設定風格:%1 + + + + Cannot export, because no export plugin is loaded. + 無法匯出,沒有載入匯出外掛。 + + + + Cannot import, because no import plugin is loaded. + 無法匯入,沒有載入匯入外掛。 + + + + Rename window + 重新命名視窗 + + + + Enter new name for the window: + 請輸入視窗的新名稱: + + + + New updates are available. <a href="%1">Click here for details</a>. + 有新更新 <a href="%1">點此檢視更新詳情</a>. + + + + You're running the most recent version. No updates are available. + 您使用的是最新版,不需要更新。 + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + 命令列引數傳遞的資料庫 (%1) 已在清單中,名為:%2 + + + + Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 + 命令列引數傳遞的資料庫 (%1) 已臨時新增到清單中,名為:%2 + + + + Could not add database %1 to list. + 未能將資料 %1 新增到清單 + + + + MdiWindow + + + Uncommitted changes + 未提交的更改 + + + + Close anyway + 仍然關閉 + + + + Don't close + 不關閉 + + + + MultiEditor + + + Null value + multieditor + Null 值 + + + + Configure editors for this data type + 為資料型別設定編輯器 + + + + Open another tab + 開啟另一個選項卡 + + + + Foreign Key + 外來鍵 + + + + Data editor plugin '%1' not loaded, while it is defined for editing '%2' data type. + 資料編輯器外掛 '%1' 未載入,而它已被定義為編輯 '%1' 資料型別的編輯器。 {1'?} {2'?} {1' or 2'?} + + + + Deleted + multieditor + 已刪除 + + + + Read only + multieditor + 只讀 + + + + MultiEditorBoolPlugin + + + Boolean + 布林 + + + + MultiEditorDatePlugin + + + Date + 日期 + + + + MultiEditorDateTimePlugin + + + Date & time + 日期和時間 + + + + MultiEditorHexPlugin + + + Hex + 十六進位制 + + + + MultiEditorNumericPlugin + + + Number + numeric multi editor tab name + 數值 + + + + MultiEditorText + + + Tab changes focus + Tab 鍵更改焦點 + + + + Cut + 剪下 + + + + Copy + 複製 + + + + Paste + 貼上 + + + + Delete + 刪除 + + + + Undo + 撤銷 + + + + Redo + 重做 + + + + MultiEditorTextPlugin + + + Text + 文字 + + + + MultiEditorTimePlugin + + + Time + 時間 + + + + NewConstraintDialog + + + New constraint + 新約束 + + + + + Primary Key + new constraint dialog + 主鍵 + + + + + Foreign Key + new constraint dialog + 外來鍵 + + + + + Unique + new constraint dialog + 唯一 + + + + + Check + new constraint dialog + 條件 + + + + Not NULL + new constraint dialog + 非空 + + + + Collate + new constraint dialog + 字元序 + + + + Generated + new constraint dialog + 生成 + + + + Default + new constraint dialog + 預設 + + + + NewVersionDialog + + + SQLiteStudio updates + SQLiteStudio 更新 + + + + New version is available! + 有新版本可用! + + + + Download new version! + 下載新版本 + + + + New version package will be downloaded. It will be up to you to install it whenever you're ready. + 下載新版本程式包。將在準備就緒時提醒您安裝。 + + + + Open SQLiteStudio home page. + 開啟 SQLiteStudio 主頁 + + + + Read release notes && download package yourself. + 閱讀發行說明和自行下載程式包。 + + + + Just close this window. + 關閉此視窗。 + + + + Check for updates on startup + 在啟動時檢查更新 + + + + Not now. + 暫不更新 + + + + PopulateConfigDialog + + + Populating configuration + 設定檔填充 + + + + Configuring <b>%1</b> for column <b>%2</b> + 給欄位 <b>%2</b> 設定檔 <b>%1</b> + + + + PopulateDialog + + + Populate table + 填充表 + + + + Database + 資料庫 + + + + Table + + + + + Columns + + + + + Number of rows to populate: + 填充的行數: + + + + Populate + populate dialog button + 填充 + + + + Abort + 中止 + + + + Configure + 設定檔 + + + + Populating configuration for this column is invalid or incomplete. + 此列的填充設定檔無效或不完整。 + + + + Select database with table to populate + 選擇要填充表的資料庫 + + + + Select table to populate + 選擇要填充的表 + + + + You have to select at least one column. + 您須選擇至少一個欄位。 + + + + QObject + + + Cannot edit columns that are result of compound %1 statements (one that includes %2, %3 or %4 keywords). + 無法編輯列,它是複合 %1 語句 (包含 %2、%3 或 %4 關鍵字) 的結果。 + + + + The query execution mechanism had problems with extracting ROWID's properly. This might be a bug in the application. You may want to report this. + 查詢執行機制提取 ROWID 的屬性時遇到問題。這可能是軟體中的 bug,您可以報告該問題。 + + + + Requested column is a result of SQL expression, instead of a simple column selection. Such columns cannot be edited. + 請求的列是一個 SQL 表示式的結果,而非普通的列。不能編輯這些列。 + + + + Requested column belongs to restricted SQLite table. Those tables cannot be edited directly. + 請求的列屬於受限制的 SQLite 表。這些表不能被直接編輯。 + + + + Cannot edit results of query other than %1. + 無法編輯 %1 以外的查詢結果。 + + + + Cannot edit columns that are result of aggregated %1 statements. + 無法編輯列,它是聚合的 %1 語句的結果。 + + + + Cannot edit columns that are result of %1 statement. + 無法編輯列,它是 %1 語句的結果。 + + + + Cannot edit columns that are result of common table expression statement (%1). + 無法編輯列,它是通用表生成語句 %1 的結果。 + + + + Cannot edit table generated columns. + 無法編輯表生成的列。 + + + + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). + Cannot edit columns that are result of a view if the executed query reads from any multilevel views (i.e. a view that queries another view). + + + + + + + on conflict: %1 + data view tooltip + 當衝突時:%1 + + + + references table %1, column %2 + data view tooltip + 引用表 %1,列 %2 + + + + condition: %1 + data view tooltip + 字元序:%1 + + + + collation name: %1 + data view tooltip + 字元序名稱:%1 + + + + Data grid view + 資料網格檢視 + + + + Edit current cell inline + Edit current cell inline + + + + Copy cell(s) contents to clipboard + 複製單元格內容至剪貼簿 + + + + Copy cell(s) contents together with header to clipboard + 複製單元格內容與表頭至剪貼簿 + + + + Paste cell(s) contents from clipboard + 貼上剪貼簿中的單元格內容 + + + + Set empty value to selected cell(s) + 設定選中單元格為空值 + + + + Set NULL value to selected cell(s) + 設定選中單元格為 NULL 值 + + + + Commit changes to cell(s) contents + 提交單元格內容更改 + + + + Rollback changes to cell(s) contents + 回滾單元格內容更改 + + + + Delete selected data row + 刪除所選資料行 + + + + Insert new data row + 插入新資料行 + + + + Open contents of selected cell in a separate editor + 在單獨編輯器中開啟所選單元格的內容 + + + + Toggle the height adjustment of rows + Toggle the height adjustment of rows + + + + Increase font size + data view + Increase font size + + + + Decrease font size + data view + Decrease font size + + + + Total pages available: %1 + 總計可用頁數:%1 + + + + Total rows loaded: %1 + 已載入行數:%1 + + + + Data view (both grid and form) + 資料檢視 (網格 + 表格) + + + + Refresh data + 重新整理資料 + + + + Switch to grid view of the data + 切換至資料的網格檢視 + + + + Switch to form view of the data + 切換至資料的表單檢視 + + + + Database list + 資料庫清單 + + + + Delete selected item + 刪除選中項 + + + + Clear filter contents + 清空篩選器內容 + + + + Refresh schema + 重新整理結構 + + + + Refresh all schemas + 重新整理全部結構 + + + + Add database + 新增資料庫 + + + + Select all items + 選中所有項 + + + + Copy selected item(s) + 複製選中項 + + + + + + Paste from clipboard + 從剪貼簿貼上 + + + + Increase font size + database list + Increase font size + + + + Decrease font size + database list + Decrease font size + + + + Tables + + + + + Indexes + 索引 + + + + Triggers + 觸發器 + + + + Views + 檢視 + + + + Columns + + + + + Data form view + 資料表單檢視 + + + + Commit changes for current row + 提交當前行的更改 + + + + Rollback changes for current row + 回滾當前行的更改 + + + + Go to first row on current page + 前往當前頁的第一行 + + + + Go to next row + 前往下一行 + + + + Go to previous row + 前往上一行 + + + + Go to last row on current page + 前往當前頁的最後一行 + + + + Insert new row + 插入新行 + + + + Delete current row + 刪除當前行 + + + + Main window + 主視窗 + + + + Open SQL editor + 開啟 SQL 編輯器 + + + + Open DDL history window + Open DDL history window + + + + Open snippets editor window + Open snippets editor window + + + + Open function editor window + Open function editor window + + + + Open collation editor window + Open collation editor window + + + + Open extension manager window + Open extension manager window + + + + Previous window + 上一個視窗 + + + + Next window + 下一個視窗 + + + + Hide status area + 隱藏狀態列 + + + + Open user manual + Open user manual + + + + Open configuration dialog + 開啟設定檔對話方塊 + + + + Open Debug Console + 開啟除錯終端 + + + + Open CSS Console + 開啟 CSS 控制檯 + + + + Open the About dialog + Open the About dialog + + + + Quit the application + 退出程式 + + + + Cell text value editor + 單元格文字值編輯器 + + + + + Cut selected text + 剪下選中文字 + + + + + Copy selected text + 複製選中文字 + + + + + Delete selected text + 刪除選中文字 + + + + + Undo + 撤銷 + + + + + Redo + 重做 + + + + SQL editor input field + SQL 編輯器輸入框 + + + + Select whole editor contents + 選中整個編輯器的內容 + + + + Save contents into a file + 將內容儲存至檔案 + + + + Load contents from a file + 從檔案載入內容 + + + + Find in text + 查詢文字 + + + + Find next + 查詢下一個 + + + + Find previous + 查詢上一個 + + + + Replace in text + 替換文字 + + + + Delete current line + 刪除當前行 + + + + Request code assistant + 請求程式碼輔助 + + + + Format contents + 格式化內容 + + + + Move selected block of text one line down + 選中文字塊下移一行 + + + + Move selected block of text one line up + 選中文字塊上移一行 + + + + Copy selected block of text and paste it a line below + 選中文字塊複製並貼上到下一行 + + + + Copy selected block of text and paste it a line above + 選中文字塊複製並貼上到上一行 + + + + Toggle comment + 切換註釋 + + + + Increase font size + sql editor + Increase font size + + + + Decrease font size + sql editor + Decrease font size + + + + All SQLite databases + 所有 SQLite 資料庫 + + + + All files + 所有檔案 + + + + Select database file + Select database file + + + + Select + Select + + + + File type + File type + + + + SQL editor window + SQL 編輯器視窗 + + + + Execute query + 執行語句 + + + + Execute single query under cursor + Execute single query under cursor + + + + Execute all queries in editor + Execute all queries in editor + + + + Execute "%1" query + 執行 "%1" 查詢 + + + + Switch current working database to previous on the list + 切換當前工作資料庫到清單中的上一個 + + + + Switch current working database to next on the list + 切換當前工作資料庫到清單中的下一個 + + + + Go to next editor tab + 前往下一編輯器選項卡 + + + + Go to previous editor tab + 前往上一編輯器選項卡 + + + + Move keyboard input focus to the results view below + 將鍵盤輸入焦點移動到下面的結果檢視 + + + + Move keyboard input focus to the SQL editor above + 將鍵盤輸入焦點移到上面的 SQL 編輯器 + + + + Delete selected SQL history entries + 刪除選中的 SQL 歷史記錄 + + + + Table window + 表視窗 + + + + Commit the table structure + Commit the table structure + + + + Rollback pending changes in the table structure + Rollback pending changes in the table structure + + + + Refresh table structure + 重新整理表結構 + + + + Add new column + 新增新列 + + + + Edit selected column + 編輯選中列 + + + + Delete selected column + 刪除選中列 + + + + Export table data + 匯出表資料 + + + + Import data to the table + 匯入資料至表 + + + + Add new table constraint + 新增表約束 + + + + Edit selected table constraint + 編輯選中表約束 + + + + Delete selected table constraint + 刪除選中表約束 + + + + Refresh table index list + 重新整理表索引清單 + + + + Add new index + 新增索引 + + + + Edit selected index + 編輯選中索引 + + + + Delete selected index + 刪除選中索引 + + + + Refresh table trigger list + 重新整理表觸發器清單 + + + + + Add new trigger + 新增新觸發器 + + + + + Edit selected trigger + 編輯選中觸發器 + + + + + Delete selected trigger + 刪除選中觸發器 + + + + + Go to next tab + 前往下一選項卡 + + + + + Go to previous tab + 前往上一選項卡 + + + + A view window + 檢視視窗 + + + + Commit the view's query + Commit the view's query + + + + Rollback pending changes in the view's query + Rollback pending changes in the view's query + + + + Refresh view trigger list + 重新整理檢視觸發器清單 + + + + Execute the view's query + Execute the view's query + + + + A code snippets editor window + A code snippets editor window + + + + + + + Commit the pending changes + Commit the pending changes + + + + + + + Rollback the pending changes + Rollback the pending changes + + + + A collation editor window + A collation editor window + + + + A function editor window + A function editor window + + + + A SQLite extension editor window + A SQLite extension editor window + + + + QuitConfirmDialog + + + Uncommitted changes + 未提交的更改 + + + + Are you sure you want to quit the application? + +Following items are pending: + 確定要退出本程式嗎? + +下列專案仍待處置: + + + + SearchTextDialog + + + Find or replace + 查詢與替換 + + + + Find: + 查詢: + + + + Case sensitive + 區分大小寫 + + + + Search backwards + 反向搜尋 + + + + Regular expression matching + 正則表示式匹配 + + + + Replace && +find next + 替換並查詢下一項 + + + + Replace with: + 替換為: + + + + Replace all + 全部替換 + + + + Find + 查詢 + + + + SortDialog + + + Sort by columns + 按列排序 + + + + + Column + + + + + + Order + 排序 + + + + Sort by: %1 + 排序按照 %1 + + + + Move column up + 上移列 + + + + Move column down + 下移列 + + + + SqlEditor + + + Wrap words + sql editor + Wrap words + + + + Cut + sql editor + 剪下 + + + + Copy + sql editor + 複製 + + + + Paste + sql editor + 貼上 + + + + Delete + sql editor + 刪除 + + + + Select all + sql editor + 全選 + + + + Undo + sql editor + 撤銷 + + + + Redo + sql editor + 重做 + + + + Complete + sql editor + 完成 + + + + Format SQL + sql editor + 格式化 SQL + + + + Save SQL to file + sql editor + 儲存 SQL 到檔案 + + + + Select file to save SQL + sql editor + 選擇 SQL 要儲存到的檔案 + + + + Load SQL from file + sql editor + 從檔案載入 SQL + + + + Delete line + sql editor + 刪除行 + + + + Move block down + sql editor + 整塊下移 + + + + Move block up + sql editor + 整塊上移 + + + + Copy block down + sql editor + 副本貼上方 + + + + Copy up down + sql editor + 副本貼下方 + + + + Find + sql editor + 查詢 + + + + Find next + sql editor + 查詢下一個 + + + + Find previous + sql editor + 查詢上一個 + + + + Replace + sql editor + 替換 + + + + Toggle comment + sql editor + 切換註釋 + + + + Increase font size + sql editor + Increase font size + + + + Decrease font size + sql editor + Decrease font size + + + + Could not open file '%1' for writing: %2 + 無法以寫模式開啟檔案 %1:%2 + + + + Saved SQL contents to file: %1 + 儲存 SQL 內容至檔案:%1 + + + + Syntax completion can be used only when a valid database is set for the SQL editor. + SQL 編輯器的語法補全功能僅當存在有效資料庫時可用。 + + + + Contents of the SQL editor are huge, so errors detecting and existing objects highlighting are temporarily disabled. + SQL 編輯器有大量內容,因此錯誤偵測和現有物件的高亮顯示功能被暫時禁用。 + + + + Save to file + 儲存到檔案 + + + + SQL scripts (*.sql);;All files (*) + SQL檔案 (*.sql);;所有檔案 (*) + + + + Open file + 開啟檔案 + + + + Could not open file '%1' for reading: %2 + 無法以讀模式開啟檔案 %1:%2 + + + + Reached the end of document. Hit the find again to restart the search. + 已到文件底部。再次點選查詢將從頭開始搜尋。 + + + + SqlQueryItem + + + Committing error: + data view tooltip + 提交出錯: + + + + Column: + data view tooltip + 列: + + + + Data type: + data view + 資料型別: + + + + Table: + data view tooltip + 表: + + + + Constraints: + data view tooltip + 約束: + + + + SqlQueryItemDelegate + + + + + + Cannot edit this cell. Details: %1 + 無法編輯此單元格。詳情:%1 + + + + The row is marked for deletion. + 該行已被標記為刪除。 + + + + + Structure of this table has changed since last data was loaded. Reload the data to proceed. + 在上次載入資料後,此表的結構已更改。重新載入資料以繼續。 + + + + Editing a huge contents in an inline cell editor is not a good idea. It can become slow and inconvenient. It's better to edit such big contents in a Form View, or in popup editor (available under rick-click menu). + 在內聯單元格編輯器中編輯大型內容不是一個好主意。它很可能變得緩慢和不便。最好在表單檢視或者彈出式編輯器 (從右鍵選單開啟) 中編輯此類大內容。 + + + + Foreign key for column %2 has more than %1 possible values. It's too much to display in drop down list. You need to edit value manually. + 列 %2 的外來鍵有超過 %1 個可能的值。這太多而不能顯示在下拉清單。您需要手動編輯值。 + + + + SqlQueryModel + + + + Only one query can be executed simultaneously. + 只允許同時執行一條查詢。 + + + + Cannot execute query on undefined or invalid database. + 無法執行語句,因為資料庫無效或未定義。 + + + + Cannot execute empty query. + 無法執行空的查詢。 + + + + Uncommitted data + 未提交的資料 + + + + There are uncommitted data changes. Do you want to proceed anyway? All uncommitted changes will be lost. + 存在未提交的資料更改。是否仍要繼續?所有未提交的更改都將丟失。 + + + + Cannot commit the data for a cell that refers to the already closed database. + 無法從單元格中載入資料,因為它引用了已經被關閉的資料庫。 + + + + Could not begin transaction on the database. Details: %1 + 無法在此資料庫上開始事務。詳細資訊:%1 + + + + An error occurred while committing the transaction: %1 + 在提交事務時發生錯誤:%1 + + + + An error occurred while rolling back the transaction: %1 + 在回滾事務時發生錯誤:%1 + + + + Tried to commit a cell which is not editable (yet modified and waiting for commit)! This is a bug. Please report it. + 嘗試提交不可編輯的單元格 (本應該無法編輯)!這是一個錯誤,請報告。 + + + + An error occurred while committing the data: %1 + 在提交資料時發生錯誤:%1 + + + + Number of rows per page was decreased to %1 due to number of columns (%2) in the data view. + 資料檢視中,已因列數 (%2) 將每頁行數減小 %1。 + + + + + Error while executing SQL query on database '%1': %2 + 在資料庫“%1”執行 SQL 查詢時發生錯誤:%2 + + + + Error while loading query results: %1 + 在載入查詢結果時出錯:%1 + + + + Insert multiple rows + 插入多行 + + + + Number of rows to insert: + 要插入的行數: + + + + Delete rows + 刪除行 + + + + You're about to delete newly inserted rows that are not committed yet. Row numbers: %1 +Such deletion will be permanent. Are you sure you want to delete them? + 您即將刪除未提交的新插入的行。行數:%1 +刪除不能撤銷,確定刪除嗎? + + + + SqlQueryView + + + Go to referenced row in... + 轉到引用的行... + + + + Copy + 複製 + + + + Copy with headers + 帶表頭複製 + + + + Copy as... + 複製為... + + + + Paste + 貼上 + + + + Paste as... + 貼上為... + + + + Set NULL values + 設為 NULL 值 + + + + Erase values + 擦除值 + + + + Commit + 提交 + + + + Rollback + 回滾 + + + + Commit selected cells + 提交選中單元格 + + + + Rollback selected cells + 回滾選中單元格 + + + + Edit current cell inline + Edit current cell inline + + + + Define columns to sort by + 定義列排序方式 + + + + Remove custom sorting + 移除自訂排序 + + + + Insert row + 插入行 + + + + Insert multiple rows + 插入多行 + + + + Delete selected row + 刪除已選行 + + + + Adjust height of rows + Adjust height of rows + + + + Increase font size + data view + Increase font size + + + + Decrease font size + data view + Decrease font size + + + + Invert selection + data view + Invert selection + + + + Edit value in editor + 在編輯器中編輯數值 + + + + Show value in a viewer + 在檢視器中顯示值 + + + + Generate query for selected cells + 為選中單元格生成查詢 + + + + No items selected to paste clipboard contents to. + 沒有選擇用來貼上剪貼簿內容的項。 + + + + Cannot paste data. Details: %1 + 無法貼上資料。詳情:%1 + + + + Structure of at least one table used has changed since last data was loaded. Reload the data to proceed. + 至少一個表的結構在上次的資料載入後已變更。重新載入資料以繼續。 + + + + Cannot paste to a cell. Details: %1 + 無法貼上到單元格。詳情:%1 + + + + The row is marked for deletion. + 該行已被標記為刪除。 + + + + Cannot paste to column %1. Details: %2 + 無法貼上到列 %1。詳情:%2 + + + + Go to referenced row in table '%1' + 轉至表 '%1' 中的引用的行 + + + + table '%1' + 表“%1” + + + + Referenced row (%1) + 引用的行 (%1) + + + + Trim pasted text? + 移除貼上文字兩端的空白? + + + + The pasted text contains leading or trailing white space. Trim it automatically? + 貼上的文字兩端含有空白符號。自動移除? + + + + Paste "NULL" as null value? + Paste "NULL" as null value? + + + + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + The pasted text contains "NULL" literals. Do you want to consider them as NULL values? + + + + Edit value + 編輯值 + + + + SqlTableModel + + + Error while committing new row: %1 + 提交新行時發生錯誤:%1 + + + + Error while deleting row from table %1: %2 + 從表 %1 中刪除行時發生錯誤:%2 + + + + SqliteExtensionEditor + + + Filter extensions + 擴充套件篩選器 + + + + Leave empty to use default function + 留空則使用預設函式 + + + + Extension file + 擴充套件檔案 + + + + Initialization function + 初始化函式 + + + + Databases + 資料庫 + + + + Register in all databases + 在所有資料庫中註冊 + + + + Register in following databases: + 在下列資料庫中註冊: + + + + Extension manager window has uncommitted modifications. + 擴充套件管理視窗有未提交的更改。 + + + + Extension manager + 擴充套件管理器 + + + + Commit all extension changes + 提交所有擴充套件更改 + + + + Rollback all extension changes + 回滾所有擴充套件更改 + + + + Add new extension + 新增新擴充套件 + + + + Remove selected extension + 移除所選擴充套件 + + + + Editing extensions manual + 手動編輯擴充套件 + + + + File with given path does not exist or is not readable. + 指定路徑的檔案不存在或無法讀取。 + + + + Unable to load extension: %1 + 無法載入擴充套件:%1 + + + + Invalid initialization function name. Function name can contain only alpha-numeric characters and underscore. + 初始化函式名無效。函式名只能包含字母數字字元和下劃線。 + + + + Dynamic link libraries (*.dll);;All files (*) + 動態連結庫 (*.dll);;所有檔案 (*) + + + + Shared objects (*.so);;All files (*) + 共享庫 (*.so);;All files (*) + + + + Dynamic libraries (*.dylib);;All files (*) + 動態庫 (*.dylib);;所有檔案 (*) + + + + All files (*) + 所有檔案 (*) + + + + Open file + 開啟檔案 + + + + StatusField + + + Status + 狀態列 + + + + Copy + 複製 + + + + Clear + 清除 + + + + TableConstraintsModel + + + Type + table constraints + 型別 + + + + Details + table constraints + 詳情 + + + + Name + table constraints + 名稱 + + + + TableForeignKeyPanel + + + Foreign table: + 外部表: + + + + Columns + + + + + Local column + 本地列 + + + + Foreign column + 外部列 + + + + Reactions + 響應 + + + + Deferred foreign key + 延遲外來鍵約束 + + + + Named constraint + 命名的約束 + + + + Constraint name + 約束名稱 + + + + Pick the foreign column. + 選擇一個外部列。 + + + + Pick the foreign table. + 選擇一個外部表。 + + + + Select at least one foreign column. + 請至少選擇一個外部列。 + + + + Enter a name of the constraint. + 輸入一個約束的名稱。 + + + + Foreign column + table constraints + 外部列 + + + + TablePrimaryKeyAndUniquePanel + + + Columns + + + + + Column + + + + + Collation + 字元序 + + + + Sort + 排序 + + + + Valid only for a single column with INTEGER data type + 僅對整數 (INTEGER) 資料型別的單個列有效 + + + + Autoincrement + 自動遞增 + + + + Named constraint + 命名的約束 + + + + Constraint name + 約束名稱 + + + + On conflict + 當衝突時 + + + + Collate + table constraints + 字元序 + + + + Sort order + table constraints + 排序方式 + + + + Select at least one column. + 至少選擇一個列。 + + + + Enter a name of the constraint. + 輸入一個約束的名稱。 + + + + TableStructureModel + + + Name + table structure columns + 名稱 + + + + Data type + table structure columns + 資料型別 + + + + Primary +Key + table structure columns + 主鍵 + + + + Foreign +Key + table structure columns + 外來鍵 + + + + Unique + table structure columns + 唯一 + + + + Check + table structure columns + 條件 + + + + Not +NULL + table structure columns + 非空 + + + + Collate + table structure columns + 字元序 + + + + Generated + table structure columns + 生成 + + + + Default value + table structure columns + 預設值 + + + + TableWindow + + + Structure + 結構 + + + + Table name: + 表名: + + + + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + + + + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + + + + + Data + 資料 + + + + Constraints + 約束 + + + + Indexes + 索引 + + + + Triggers + 觸發器 + + + + DDL + DDL + + + + Export table + table window + 匯出表 + + + + Import data to table + table window + 匯入資料至表 + + + + Populate table + table window + 填充表 + + + + Refresh structure + table window + 重新整理結構 + + + + Commit structure changes + table window + 提交結構更改 + + + + Rollback structure changes + table window + 回滾結構更改 + + + + Add column + table window + 新增列 + + + + Edit column + table window + 編輯列 + + + + + Delete column + table window + 刪除列 + + + + Move column up + table window + 上移列 + + + + Move column down + table window + 下移列 + + + + Create similar table + table window + 建立相似的表 + + + + Reset autoincrement value + table window + 重置自動遞增值 + + + + Add table constraint + table window + 新增表約束 + + + + Edit table constraint + table window + 編輯表約束 + + + + Delete table constraint + table window + 刪除表約束 + + + + Move table constraint up + table window + 向上移動表約束 + + + + Move table constraint down + table window + 向下一移動表約束 + + + + Add table primary key + table window + 新增主鍵 + + + + Add table foreign key + table window + 新增外來鍵 + + + + Add table unique constraint + table window + 新增表唯一約束 + + + + Add table check constraint + table window + 新增表檢查約束 + + + + Refresh index list + table window + 重新整理索引清單 + + + + + Create index + table window + 建立索引 + + + + Edit index + table window + 編輯索引 + + + + Delete index + table window + 刪除索引 + + + + Refresh trigger list + table window + 重新整理觸發器清單 + + + + + Create trigger + table window + 建立觸發器 + + + + Edit trigger + table window + 編輯觸發器 + + + + Delete trigger + table window + 刪除觸發器 + + + + Are you sure you want to delete column '%1'? + table window + 您確定要刪除欄位“%1”嗎? + + + + Following problems will take place while modifying the table. +Would you like to proceed? + table window + 修改該表時將出現以下問題。 +是否繼續? + + + + Table modification + table window + 修改表 + + + + Could not load data for table %1. Error details: %2 + 無法載入表 %1 的資料。錯誤詳情:%2 + + + + Could not process the %1 table correctly. Unable to open a table window. + 無法正確處理表 %1。無法開啟表視窗。 + + + + Database + 資料庫 + + + + Could not restore window %1, because no database or table was stored in session for this window. + 無法還原視窗 %1,此視窗中沒有儲存資料庫或表的會話。 + + + + Could not restore window '%1', because no database or table was stored in session for this window. + 無法還原視窗“%1”,此視窗中沒有儲存資料庫或表的會話。 + + + + Could not restore window '%1', because database %2 could not be resolved. + 無法還原視窗“%1”,無法解析資料庫 %2。 + + + + Could not restore window '%1', because the table %2 doesn't exist in the database %3. + Could not restore window '%1', because the table %2 doesn't exist in the database %3. + + + + + New table %1 + 新表 %1 + + + + Committed changes for table '%1' successfully. + 成功提交表 '%1' 的修改。 + + + + Committed changes for table '%1' (named before '%2') successfully. + 成功提交對錶 '%1' (原名 '%2') 的更改。 + + + + Could not commit table structure. Error message: %1 + table window + 無法提交表結構。錯誤資訊:%1 + + + + Reset autoincrement + 重置自動遞增 + + + + Are you sure you want to reset autoincrement value for table '%1'? + 您確定要重置表“%1”的自動遞增值嗎? + + + + An error occurred while trying to reset autoincrement value for table '%1': %2 + 重置表“%1”的自動遞增值時出錯:%2 + + + + Autoincrement value for table '%1' has been reset successfully. + 成功重置表“%1”的自動遞增值。 + + + + Empty name + 空名稱 + + + + A blank name for the table is allowed in SQLite, but it is not recommended. +Are you sure you want to create a table with blank name? + SQLite 允許為表使用空白名稱,但不推薦使用空白名稱。 +您確定要建立一個空白名稱的表? + + + + Cannot create a table without at least one column. + 無法建立沒有任何列的表。 + + + + Cannot create table %1, if it has no primary key defined. Either uncheck the %2, or define a primary key. + 無法建立表 %1,沒有定義主鍵。取消選中 %2 或者定義一個主鍵。 + + + + Cannot use autoincrement for primary key when %1 clause is used. Either uncheck the %2, or the autoincrement in a primary key. + 使用 %1 語句時無法為主鍵使用自動遞增。取消選中 %2,或者將一個主鍵設為自動遞增。 + + + + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 + Following columns have non-strict data type: %1. Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2 + + + + Are you sure you want to delete table constraint '%1'? + table window + 您確定要刪除表約束“%1”嗎? + + + + Delete constraint + table window + 刪除約束 + + + + Cannot export, because no export plugin is loaded. + 無法匯出,沒有載入匯出外掛。 + + + + Cannot import, because no import plugin is loaded. + 無法匯入,沒有載入匯入外掛。 + + + + Uncommitted changes + 未提交的更改 + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have table structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + 有未提交的結構修改。您不能瀏覽或編輯資料,直至表結構完工。 +立即提交現有結構?或者返回結構選項卡? + + + + Go back to structure tab + 返回結構選項卡 + + + + Commit modifications and browse data. + 提交修改並瀏覽資料。 + + + + Name + table window indexes + 名稱 + + + + Unique + table window indexes + 唯一 + + + + Columns + table window indexes + + + + + Partial index condition + table window indexes + 部分索引條件 + + + + Name + table window triggers + 名稱 + + + + Event + table window triggers + 事件 + + + + Condition + table window triggers + 條件 + + + + Details + table window triggers + 詳情 + + + + Table window "%1" has uncommitted structure modifications and data. + 表視窗“%1”有未提交的結構更改與資料。 + + + + Table window "%1" has uncommitted data. + 表視窗“%1”有未提交的資料。 + + + + Table window "%1" has uncommitted structure modifications. + 表視窗“%1”有未提交的結構更改。 + + + + TriggerColumnsDialog + + + Trigger columns + 觸發器列 + + + + Triggering columns: + 觸發列: + + + + Select all + 全選 + + + + Deselect all + 全不選 + + + + TriggerDialog + + + + Trigger + 觸發器 + + + + On table: + 表: + + + + Action: + 動作: + + + + + <p>SQL condition that will be evaluated before the actual trigger code. In case the condition returns false, the trigger will not be fired for that row.</p> + <p>用來判斷觸發器程式碼是否執行的 SQL 條件表示式。如果條件返回 false,則觸發器不會對該行生效。</p> + + + + Pre-condition: + 前提條件: + + + + The scope is still not fully supported by the SQLite database. + SQLite 資料庫仍未完全支援作用域。 + + + + Trigger name: + 觸發器名稱: + + + + When: + 當: + + + + List of columns for UPDATE OF action. + UPDATE OF 動作的列清單 + + + + Scope: + 作用域: + + + + Code: + 程式碼: + + + + Trigger statements to be executed. + 需要執行的觸發器語句 + + + + DDL + DDL + + + + On view: + 檢視: + + + + Could not process trigger %1 correctly. Unable to open a trigger dialog. + 無法正確處理觸發器 %1。無法開啟觸發器對話方塊。 + + + + Enter a valid condition. + 請輸入一個有效的條件。 + + + + Enter a valid trigger code. + 請輸入一個有效的觸發器程式碼。 + + + + Error + trigger dialog + 錯誤 + + + + An error occurred while executing SQL statements: +%1 + 執行下列 SQL 語句時出錯: +%1 + + + + VersionConvertSummaryDialog + + + Database version convert + 資料庫版本轉換 + + + + Following changes to the SQL statements will be made: + SQL 語句變更如下: + + + + Before + 之前 + + + + After + 之後 + + + + ViewWindow + + + Query + 查詢 + + + + View name: + 檢視名稱: + + + + Output column names + 輸出列名稱 + + + + + Data + 資料 + + + + Triggers + 觸發器 + + + + DDL + DDL + + + + + Could not restore window '%1', because no database or view was stored in session for this window. + 無法還原視窗“%1”,此視窗中沒有儲存資料庫或表的會話。 + + + + Could not restore window '%1', because database %2 could not be resolved. + 無法還原視窗“%1”,無法解析資料庫 %2。 + + + + Could not restore window '%1', because database %2 could not be open. + 無法還原視窗“%1”,資料庫 %2 沒有被開啟。 + + + + Could not restore window '%1', because the view %2 doesn't exist in the database %3. + 無法還原視窗“%1”,資料庫 %3 中不存在檢視 %2。 + + + + + New view %1 + 新檢視 %1 + + + + Database + 資料庫 + + + + Refresh the view + view window + 重新整理檢視 + + + + Commit the view changes + view window + 提交檢視更改 + + + + Rollback the view changes + view window + 回滾檢視更改 + + + + Explicit column names + 明確列名稱 + + + + Generate output column names automatically basing on result columns of the view. + 基於檢視的結果列自動生成輸出列名稱。 + + + + Add column + view window + 新增列 + + + + Edit column + view window + 編輯列 + + + + Delete column + view window + 刪除列 + + + + Move column up + view window + 上移列 + + + + Move column down + view window + 下移列 + + + + Refresh trigger list + view window + 重新整理觸發器清單 + + + + Create new trigger + view window + 建立新觸發器 + + + + Edit selected trigger + view window + 編輯選中觸發器 + + + + Delete selected trigger + view window + 刪除選中觸發器 + + + + View window "%1" has uncommitted structure modifications and data. + 檢視“%1”有未提交的結構更改和資料。 + + + + View window "%1" has uncommitted data. + 檢視“%1”有未提交的資料。 + + + + View window "%1" has uncommitted structure modifications. + 檢視“%1”有未提交的結構更改。 + + + + Could not load data for view %1. Error details: %2 + 無法載入檢視 %1 的資料。錯誤詳情:%2 + + + + Uncommitted changes + 未提交的更改 + + + + There are uncommitted structure modifications. You cannot browse or edit data until you have the view structure settled. +Do you want to commit the structure, or do you want to go back to the structure tab? + 有未提交的結構修改。您不能瀏覽或編輯資料,直至表結構完工。 +立即提交現有結構?或者返回結構選項卡? + + + + Go back to structure tab + 返回結構選項卡 + + + + Commit modifications and browse data. + 提交更改並瀏覽資料。 + + + + View '%1' was committed successfully. + 成功提交檢視“%1”。 + + + + Committed changes for view '%1' successfully. + 成功提交對檢視“%1”的更改。 + + + + Committed changes for view '%1' (named before '%2') successfully. + 成功提交對檢視“%1” (原名“%2”)的更改。 + + + + Could not commit view changes. Error message: %1 + view window + 無法提交檢視更改。錯誤資訊:%1 + + + + Override columns + 覆蓋列 + + + + Currently defined columns will be overriden. Do you want to continue? + 當前定義的列將被覆蓋。您要繼續嗎? + + + + Could not determinate columns returned from the view. The query is problably incomplete or contains errors. + 無法確定檢視所返回的列。查詢可能不完整或包含錯誤。 + + + + Name + view window triggers + 名稱 + + + + Instead of + view window triggers + Instead of + + + + Condition + view window triggers + 條件 + + + + Details + table window triggers + 詳情 + + + + Could not process the %1 view correctly. Unable to open a view window. + 無法正確處理檢視 %1。無法開啟檢視視窗。 + + + + Empty name + 空名稱 + + + + A blank name for the view is allowed in SQLite, but it is not recommended. +Are you sure you want to create a view with blank name? + SQLite 允許為檢視使用空白名稱,但不推薦使用空白名稱。 +您確定要建立一個空白名稱的檢視? + + + + The SELECT statement could not be parsed. Please correct the query and retry. +Details: %1 + SELECT 語句解析失敗。請更正查詢並重試。 +詳情:%1 + + + + The view could not be modified due to internal SQLiteStudio error. Please report this! + 因 SQLiteStudio 內部錯誤,無法修改該檢視。請報告該問題! + + + + The view code could not be parsed properly for execution. This is a SQLiteStudio's bug. Please report it. + 用於執行的檢視程式碼無法正確解析。這是 SQLiteStudio 的 bug,請報告。 + + + + Following problems will take place while modifying the view. +Would you like to proceed? + view window + 修改該檢視時將出現以下問題。 +是否繼續? + + + + View modification + view window + 檢視更改 + + + + WidgetCover + + + Interrupt + 停止 + + + diff --git a/SQLiteStudio3/guiSQLiteStudio/uiconfig.cpp b/SQLiteStudio3/guiSQLiteStudio/uiconfig.cpp index c2dfa8f..1d7d556 100644 --- a/SQLiteStudio3/guiSQLiteStudio/uiconfig.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/uiconfig.cpp @@ -1,9 +1,19 @@ #include "uiconfig.h" +#include "style.h" #include #include #include #include #include +#include + +#define DEFINE_COLOR_HELPER_FN(COLOR_NAME) \ + QColor get##COLOR_NAME() \ + { \ + return CFG_UI.Colors.COLOR_NAME##Custom.get() ? \ + CFG_UI.Colors.COLOR_NAME.get() : \ + getDefault##COLOR_NAME().value(); \ + } namespace Cfg { @@ -43,6 +53,78 @@ namespace Cfg return font; } + QVariant getDefaultSyntaxParenthesisBg() + { + return STYLE->standardPalette().windowText(); + } + + QVariant getDefaultSyntaxParenthesisFg() + { + return STYLE->standardPalette().window(); + } + + QVariant getDefaultSyntaxCurrentLineBg() + { + return STYLE->extendedPalette().editorLineBase(); + } + + QVariant getDefaultSyntaxCurrentQueryBg() + { + return STYLE->extendedPalette().editorCurrentQueryBase(); + } + + QVariant getDefaultSyntaxValidObject() + { + return STYLE->standardPalette().link(); + } + + QVariant getDefaultSyntaxForeground() + { + return STYLE->standardPalette().text(); + } + + QVariant getDefaultSyntaxStringFg() + { + return STYLE->extendedPalette().editorString(); + } + + QVariant getDefaultSyntaxKeywordFg() + { + return STYLE->standardPalette().windowText(); + } + + QVariant getDefaultSyntaxBindParamFg() + { + return STYLE->standardPalette().linkVisited(); + } + + QVariant getDefaultSyntaxBlobFg() + { + return STYLE->standardPalette().text(); + } + + QVariant getDefaultSyntaxCommentFg() + { + return STYLE->standardPalette().dark(); + } + + QVariant getDefaultSyntaxNumberFg() + { + return STYLE->standardPalette().text(); + } + + DEFINE_COLOR_HELPER_FN(SyntaxParenthesisBg) + DEFINE_COLOR_HELPER_FN(SyntaxParenthesisFg) + DEFINE_COLOR_HELPER_FN(SyntaxCurrentLineBg) + DEFINE_COLOR_HELPER_FN(SyntaxCurrentQueryBg) + DEFINE_COLOR_HELPER_FN(SyntaxValidObject) + DEFINE_COLOR_HELPER_FN(SyntaxForeground) + DEFINE_COLOR_HELPER_FN(SyntaxStringFg) + DEFINE_COLOR_HELPER_FN(SyntaxKeywordFg) + DEFINE_COLOR_HELPER_FN(SyntaxBindParamFg) + DEFINE_COLOR_HELPER_FN(SyntaxBlobFg) + DEFINE_COLOR_HELPER_FN(SyntaxCommentFg) + DEFINE_COLOR_HELPER_FN(SyntaxNumberFg) } CFG_DEFINE(Ui) diff --git a/SQLiteStudio3/guiSQLiteStudio/uiconfig.h b/SQLiteStudio3/guiSQLiteStudio/uiconfig.h index 8f16a1b..45fb2c2 100644 --- a/SQLiteStudio3/guiSQLiteStudio/uiconfig.h +++ b/SQLiteStudio3/guiSQLiteStudio/uiconfig.h @@ -7,12 +7,39 @@ #include #include +#define CFG_UI_CATEGORIES(Type,Body) _CFG_CATEGORIES_WITH_METANAME_AND_TITLE(Type,Body,"",QString(),GUI_API_EXPORT) + namespace Cfg { GUI_API_EXPORT QVariant getStyleDefaultValue(); GUI_API_EXPORT QVariant getDefaultTextEditorFont(); GUI_API_EXPORT QVariant getDefaultItemViewFont(); GUI_API_EXPORT QVariant getDefaultDbTreeLabelFont(); + QVariant getDefaultSyntaxParenthesisBg(); + QVariant getDefaultSyntaxParenthesisFg(); + QVariant getDefaultSyntaxCurrentLineBg(); + QVariant getDefaultSyntaxCurrentQueryBg(); + QVariant getDefaultSyntaxValidObject(); + QVariant getDefaultSyntaxForeground(); + QVariant getDefaultSyntaxStringFg(); + QVariant getDefaultSyntaxKeywordFg(); + QVariant getDefaultSyntaxBindParamFg(); + QVariant getDefaultSyntaxBlobFg(); + QVariant getDefaultSyntaxCommentFg(); + QVariant getDefaultSyntaxNumberFg(); + GUI_API_EXPORT QColor getSyntaxParenthesisBg(); + GUI_API_EXPORT QColor getSyntaxParenthesisFg(); + GUI_API_EXPORT QColor getSyntaxCurrentLineBg(); + GUI_API_EXPORT QColor getSyntaxCurrentQueryBg(); + GUI_API_EXPORT QColor getSyntaxValidObject(); + GUI_API_EXPORT QColor getSyntaxForeground(); + GUI_API_EXPORT QColor getSyntaxStringFg(); + GUI_API_EXPORT QColor getSyntaxKeywordFg(); + GUI_API_EXPORT QColor getSyntaxBindParamFg(); + GUI_API_EXPORT QColor getSyntaxBlobFg(); + GUI_API_EXPORT QColor getSyntaxCommentFg(); + GUI_API_EXPORT QColor getSyntaxNumberFg(); + typedef QHash Session; typedef QHash DataEditorsOrder; enum InsertRowPlacement @@ -23,7 +50,7 @@ namespace Cfg }; } -CFG_CATEGORIES(Ui, +CFG_UI_CATEGORIES(Ui, CFG_CATEGORY(Fonts, CFG_ENTRY(QFont, SqlEditor, &Cfg::getDefaultTextEditorFont) CFG_ENTRY(QFont, DataView, &Cfg::getDefaultItemViewFont) @@ -32,48 +59,80 @@ CFG_CATEGORIES(Ui, CFG_ENTRY(QFont, StatusField, &Cfg::getDefaultItemViewFont) ) + CFG_CATEGORY(Colors, + CFG_ENTRY(QColor, SyntaxParenthesisBg, &Cfg::getDefaultSyntaxParenthesisBg) + CFG_ENTRY(bool, SyntaxParenthesisBgCustom, false) + CFG_ENTRY(QColor, SyntaxParenthesisFg, &Cfg::getDefaultSyntaxParenthesisFg) + CFG_ENTRY(bool, SyntaxParenthesisFgCustom, false) + CFG_ENTRY(QColor, SyntaxCurrentLineBg, &Cfg::getDefaultSyntaxCurrentLineBg) + CFG_ENTRY(bool, SyntaxCurrentLineBgCustom, false) + CFG_ENTRY(QColor, SyntaxCurrentQueryBg, &Cfg::getDefaultSyntaxCurrentQueryBg) + CFG_ENTRY(bool, SyntaxCurrentQueryBgCustom, false) + CFG_ENTRY(QColor, SyntaxValidObject, &Cfg::getDefaultSyntaxValidObject) + CFG_ENTRY(bool, SyntaxValidObjectCustom, false) + CFG_ENTRY(QColor, SyntaxForeground, &Cfg::getDefaultSyntaxForeground) + CFG_ENTRY(bool, SyntaxForegroundCustom, false) + CFG_ENTRY(QColor, SyntaxStringFg, &Cfg::getDefaultSyntaxStringFg) + CFG_ENTRY(bool, SyntaxStringFgCustom, false) + CFG_ENTRY(QColor, SyntaxKeywordFg, &Cfg::getDefaultSyntaxKeywordFg) + CFG_ENTRY(bool, SyntaxKeywordFgCustom, false) + CFG_ENTRY(QColor, SyntaxBindParamFg, &Cfg::getDefaultSyntaxBindParamFg) + CFG_ENTRY(bool, SyntaxBindParamFgCustom, false) + CFG_ENTRY(QColor, SyntaxBlobFg, &Cfg::getDefaultSyntaxBlobFg) + CFG_ENTRY(bool, SyntaxBlobFgCustom, false) + CFG_ENTRY(QColor, SyntaxCommentFg, &Cfg::getDefaultSyntaxCommentFg) + CFG_ENTRY(bool, SyntaxCommentFgCustom, false) + CFG_ENTRY(QColor, SyntaxNumberFg, &Cfg::getDefaultSyntaxNumberFg) + CFG_ENTRY(bool, SyntaxNumberFgCustom, false) + ) + CFG_CATEGORY(DbList, ) CFG_CATEGORY(General, - CFG_ENTRY(QString, DataViewTabs, QString()) - CFG_ENTRY(QString, SqlEditorTabs, QString()) - CFG_ENTRY(QString, SqlEditorDbListOrder, "LikeDbTree") - CFG_ENTRY(bool, ExpandTables, true) - CFG_ENTRY(bool, ExpandViews, true) - CFG_ENTRY(bool, SortObjects, true) - CFG_ENTRY(bool, SortColumns, false) - CFG_ENTRY(bool, ExecuteCurrentQueryOnly, true) - CFG_ENTRY(bool, ShowSystemObjects, false) - CFG_ENTRY(bool, ShowDbTreeLabels, true) // any labels at all - CFG_ENTRY(bool, ShowRegularTableLabels, false) - CFG_ENTRY(bool, ShowVirtualTableLabels, true) - CFG_ENTRY(int, NumberOfRowsPerPage, 1000) - CFG_ENTRY(bool, LimitRowsForManyColumns, true) - CFG_ENTRY(QString, Style, &Cfg::getStyleDefaultValue) - CFG_ENTRY(Cfg::Session, Session, Cfg::Session()) - CFG_ENTRY(bool, AllowMultipleSessions, false) - CFG_ENTRY(bool, RestoreSession, true) - CFG_ENTRY(bool, DontShowDdlPreview, false) - CFG_ENTRY(bool, OpenTablesOnData, false) - CFG_ENTRY(bool, DataTabAsFirstInTables, false) - CFG_ENTRY(bool, OpenViewsOnData, false) - CFG_ENTRY(bool, DataTabAsFirstInViews, false) - CFG_ENTRY(bool, AutoOpenStatusField, true) - CFG_ENTRY(bool, NewDbNotPermanentByDefault, false) - CFG_ENTRY(bool, BypassDbDialogWhenDropped, false) - CFG_ENTRY(Cfg::DataEditorsOrder, DataEditorsOrder, Cfg::DataEditorsOrder()) - CFG_ENTRY(QString, FileDialogLastPath, QString()) - CFG_ENTRY(int, MaxInitialColumnWith, 600) - CFG_ENTRY(bool, LanguageAsked, false) - CFG_ENTRY(bool, OpenMaximized, true) - CFG_ENTRY(QString, DockLayout, "vertical") - CFG_ENTRY(QString, CustomCss, QString()) - CFG_ENTRY(bool, CompactLayout, true) - CFG_ENTRY(int, InsertRowPlacement, Cfg::BEFORE_CURRENT) - CFG_ENTRY(bool, ShowDataViewTooltips, true) - CFG_ENTRY(bool, KeepNullWhenEmptyValue, true) - CFG_ENTRY(bool, UseDefaultValueForNull, false) + CFG_ENTRY(QString, DataViewTabs, QString()) + CFG_ENTRY(QString, SqlEditorTabs, QString()) + CFG_ENTRY(QString, SqlEditorDbListOrder, "LikeDbTree") + CFG_ENTRY(bool, SqlEditorWrapWords, false) + CFG_ENTRY(bool, SqlEditorCurrQueryHighlight, true) + CFG_ENTRY(bool, ExpandTables, true) + CFG_ENTRY(bool, ExpandViews, true) + CFG_ENTRY(bool, SortObjects, true) + CFG_ENTRY(bool, SortColumns, false) + CFG_ENTRY(bool, ExecuteCurrentQueryOnly, true) + CFG_ENTRY(bool, ShowSystemObjects, false) + CFG_ENTRY(bool, ShowDbTreeLabels, true) // any labels at all + CFG_ENTRY(bool, ShowRegularTableLabels, false) + CFG_ENTRY(bool, ShowVirtualTableLabels, true) + CFG_ENTRY(int, NumberOfRowsPerPage, 1000) + CFG_ENTRY(bool, LimitRowsForManyColumns, true) + CFG_ENTRY(QString, Style, &Cfg::getStyleDefaultValue) + CFG_ENTRY(Cfg::Session, Session, Cfg::Session()) + CFG_ENTRY(bool, AllowMultipleSessions, false) + CFG_ENTRY(bool, RestoreSession, true) + CFG_ENTRY(bool, DontShowDdlPreview, false) + CFG_ENTRY(bool, OpenTablesOnData, false) + CFG_ENTRY(bool, DataTabAsFirstInTables, false) + CFG_ENTRY(bool, OpenViewsOnData, false) + CFG_ENTRY(bool, DataTabAsFirstInViews, false) + CFG_ENTRY(bool, AutoOpenStatusField, true) + CFG_ENTRY(bool, NewDbNotPermanentByDefault, false) + CFG_ENTRY(bool, BypassDbDialogWhenDropped, false) + CFG_ENTRY(Cfg::DataEditorsOrder, DataEditorsOrder, Cfg::DataEditorsOrder()) + CFG_ENTRY(QString, FileDialogLastPath, QString()) + CFG_ENTRY(int, MaxInitialColumnWith, 600) + CFG_ENTRY(bool, EnlargeColumnForValue, true) + CFG_ENTRY(bool, ColumnWidthForName, false) + CFG_ENTRY(bool, LanguageAsked, false) + CFG_ENTRY(bool, OpenMaximized, true) + CFG_ENTRY(QString, DockLayout, "vertical") + CFG_ENTRY(QString, CustomCss, QString()) + CFG_ENTRY(bool, CompactLayout, true) + CFG_ENTRY(int, InsertRowPlacement, Cfg::BEFORE_CURRENT) + CFG_ENTRY(bool, ShowDataViewTooltips, true) + CFG_ENTRY(bool, KeepNullWhenEmptyValue, true) + CFG_ENTRY(bool, UseDefaultValueForNull, false) + CFG_ENTRY(bool, UseSciFormatForDoubles, false) ) ) diff --git a/SQLiteStudio3/guiSQLiteStudio/uiutils.cpp b/SQLiteStudio3/guiSQLiteStudio/uiutils.cpp index fbdc4b3..a73b8ee 100644 --- a/SQLiteStudio3/guiSQLiteStudio/uiutils.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/uiutils.cpp @@ -17,30 +17,46 @@ #include #include #include - -const QStringList pageSizes = { - "A4", "B5", "Letter", "Legal", "Executive", "A0", "A1", "A2", "A3", "A5", "A6", "A7", "A8", "A9", "B0", "B1", - "B10", "B2", "B3", "B4", "B6", "B7", "B8", "B9", "C5E", "Comm10E", "DLE", "Folio", "Ledger", "Tabloid", "Custom" +#include +#include + +const QList pageSizeIds = { + QPageSize::A4, QPageSize::B5, QPageSize::Letter, QPageSize::Legal, QPageSize::Executive, QPageSize::A0, QPageSize::A1, + QPageSize::A2, QPageSize::A3, QPageSize::A5, QPageSize::A6, QPageSize::A7, QPageSize::A8, QPageSize::A9, QPageSize::B0, + QPageSize::B1, QPageSize::B10, QPageSize::B2, QPageSize::B3, QPageSize::B4, QPageSize::B6, QPageSize::B7, QPageSize::B8, + QPageSize::B9, QPageSize::C5E, QPageSize::Comm10E, QPageSize::DLE, QPageSize::Folio, QPageSize::Ledger, QPageSize::Tabloid, + QPageSize::Custom }; +const QStringList pageSizes = map(pageSizeIds, [](QPageSize::PageSizeId id) -> QString +{ + return QPageSize::name(id); +}); + const QStringList pageSizesWithDimensions; -QString getDbPath(bool newFileMode, const QString &startWith) +QString getDbPath(const QString &startWith) { QString dir = startWith; if (dir.isNull()) dir = CFG->get("dialogCache", "lastDbDir").toString(); - QStringList filters; - filters += QObject::tr("All SQLite databases")+" (*.db *.sdb *.sqlite *.db3 *.s3db *.sqlite3 *.sl3)"; - filters += "SQLite3 (*.db3 *.s3db *.sqlite3 *.sl3)"; - filters += QObject::tr("All files")+" (*)"; - QString filter = filters.join(";;"); + QStringList filters({ + QObject::tr("All SQLite databases")+" (*.db *.sdb *.sqlite *.db3 *.s3db *.sqlite3 *.sl3)", + "SQLite3 (*.db3 *.s3db *.sqlite3 *.sl3)", + QObject::tr("All files")+" (*)" + }); + + QFileDialog dialog(nullptr, QObject::tr("Select database file"), dir, QString()); + dialog.setAcceptMode(QFileDialog::AcceptOpen); + dialog.setOption(QFileDialog::DontConfirmOverwrite, true); + dialog.setLabelText(QFileDialog::Accept, QObject::tr("Select")); + dialog.setLabelText(QFileDialog::FileType, QObject::tr("File type")); + dialog.setNameFilters(filters); + if (dialog.exec() != QDialog::Accepted || dialog.selectedFiles().empty()) + return QString(); - if (newFileMode) - return QFileDialog::getSaveFileName(0, QObject::tr("Database file"), dir, filter, &filters[0], QFileDialog::DontConfirmOverwrite); - else - return QFileDialog::getOpenFileName(0, QObject::tr("Database file"), dir, filter, &filters[0]); + return dialog.selectedFiles().constFirst(); } void setValidState(QWidget *widget, bool valid, const QString& message) @@ -81,23 +97,14 @@ void setValidStateTooltip(QWidget* widget, const QString& tip) INDICATOR(widget)->setVisible(widget->isEnabled(), tip); } -QString convertPageSize(QPagedPaintDevice::PageSize size) +QString convertPageSize(QPageSize::PageSizeId size) { - const int pageSizesSize = pageSizes.size(); - - int idx = static_cast(size); - if (idx < 0 || idx >= pageSizesSize) - { - qDebug() << "Asked to convertPageSize() with page side enum value out of range:" << idx; - return QString(); - } - - return pageSizes[idx]; + return QPageSize::name(size); } -QPagedPaintDevice::PageSize convertPageSize(const QString& size) +QPageSize convertPageSize(const QString& size) { - return static_cast(indexOf(pageSizes, size, Qt::CaseInsensitive)); + return QPageSize(static_cast(indexOf(pageSizes, size, Qt::CaseInsensitive))); } const QStringList& getAllPageSizes() @@ -146,3 +153,21 @@ QBrush styleEditorLineColor() return palette.alternateBase(); } + +void fixToolbarTooltips(QToolBar* toolbar) +{ + for (QAction*& action : toolbar->actions()) + { + QToolButton* button = dynamic_cast(toolbar->widgetForAction(action)); + if (!button) + continue; + + QString text = action->text(); + text = text.replace(QRegExp("\\s?\\(&.\\)$"),""); // issue #4261, for Chinese + text = text.replace("&", ""); // issue #4218 + if (!action->shortcut().isEmpty()) + text += QString(" (%1)").arg(action->shortcut().toString()); + + button->setToolTip(text); + } +} diff --git a/SQLiteStudio3/guiSQLiteStudio/uiutils.h b/SQLiteStudio3/guiSQLiteStudio/uiutils.h index 8163cd1..324ed9e 100644 --- a/SQLiteStudio3/guiSQLiteStudio/uiutils.h +++ b/SQLiteStudio3/guiSQLiteStudio/uiutils.h @@ -6,21 +6,23 @@ #include class QWidget; +class QToolBar; -GUI_API_EXPORT QString getDbPath(bool newFileMode, const QString& startWith = QString()); +GUI_API_EXPORT QString getDbPath(const QString& startWith = QString()); GUI_API_EXPORT void setValidState(QWidget* widget, bool valid, const QString& message = QString()); GUI_API_EXPORT void setValidStateWihtTooltip(QWidget* widget, const QString& tooltip, bool valid, const QString& message = QString()); GUI_API_EXPORT void setValidStateWarning(QWidget* widget, const QString& warning); GUI_API_EXPORT void setValidStateInfo(QWidget* widget, const QString& info); GUI_API_EXPORT void setValidStateTooltip(QWidget* widget, const QString& tip); GUI_API_EXPORT const QStringList& getAllPageSizes(); -GUI_API_EXPORT QString convertPageSize(QPagedPaintDevice::PageSize size); -GUI_API_EXPORT QPagedPaintDevice::PageSize convertPageSize(const QString& size); +GUI_API_EXPORT QString convertPageSize(QPageSize::PageSizeId size); +GUI_API_EXPORT QPageSize convertPageSize(const QString& size); GUI_API_EXPORT QPixmap addOpacity(const QPixmap& input, float opacity); GUI_API_EXPORT void limitDialogWidth(QDialog* dialog); GUI_API_EXPORT void fixTextCursorSelectedText(QString& text); GUI_API_EXPORT QColor styleSyntaxStringColor(); GUI_API_EXPORT QBrush styleEditorLineColor(); +GUI_API_EXPORT void fixToolbarTooltips(QToolBar* toolbar); #define UI_PROP_COLUMN "column_name" diff --git a/SQLiteStudio3/guiSQLiteStudio/windows/codesnippeteditor.cpp b/SQLiteStudio3/guiSQLiteStudio/windows/codesnippeteditor.cpp new file mode 100644 index 0000000..82cade7 --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/windows/codesnippeteditor.cpp @@ -0,0 +1,350 @@ +#include "codesnippeteditor.h" +#include "common/unused.h" +#include "ui_codesnippeteditor.h" +#include "uiconfig.h" +#include "windows/codesnippeteditormodel.h" +#include "sqlitestudio.h" +#include "iconmanager.h" +#include "uiutils.h" +#include "codesnippeteditormodel.h" +#include +#include +#include +#include + +CFG_KEYS_DEFINE(CodeSnippetEditor) + +CodeSnippetEditor::CodeSnippetEditor(QWidget *parent) : + MdiChild(parent), + ui(new Ui::CodeSnippetEditor) +{ + init(); +} + +CodeSnippetEditor::~CodeSnippetEditor() +{ + delete ui; +} + +bool CodeSnippetEditor::restoreSessionNextTime() +{ + return false; +} + +bool CodeSnippetEditor::isUncommitted() const +{ + return model->isModified() || currentModified; +} + +QString CodeSnippetEditor::getQuitUncommittedConfirmMessage() const +{ + return tr("Code Snippets editor window has uncommitted modifications."); +} + +QVariant CodeSnippetEditor::saveSession() +{ + return QVariant(); +} + +bool CodeSnippetEditor::restoreSession(const QVariant& sessionValue) +{ + UNUSED(sessionValue); + return true; +} + +Icon* CodeSnippetEditor::getIconNameForMdiWindow() +{ + return ICONS.CODE_SNIPPET; +} + +QString CodeSnippetEditor::getTitleForMdiWindow() +{ + return tr("Code Snippets editor"); +} + +void CodeSnippetEditor::createActions() +{ + createAction(COMMIT, ICONS.COMMIT, tr("Commit all snippet changes"), this, SLOT(commit()), ui->toolBar, this); + createAction(ROLLBACK, ICONS.ROLLBACK, tr("Rollback all snippet changes"), this, SLOT(rollback()), ui->toolBar, this); + ui->toolBar->addSeparator(); + createAction(ADD, ICONS.NEW_FUNCTION, tr("Create new snippet"), this, SLOT(newSnippet()), ui->toolBar, this); + createAction(DELETE, ICONS.DELETE_FUNCTION, tr("Delete selected snippet"), this, SLOT(deleteSnippet()), ui->toolBar, this); + ui->toolBar->addSeparator(); + createAction(MOVE_UP, ICONS.MOVE_UP, tr("Move the snippet up"), this, SLOT(moveSnippetUp()), ui->toolBar, this); + createAction(MOVE_DOWN, ICONS.MOVE_DOWN, tr("Move the snippet down"), this, SLOT(moveSnippetDown()), ui->toolBar, this); + ui->toolBar->addSeparator(); + createAction(HELP, ICONS.HELP, tr("Code snippets manual"), this, SLOT(help()), ui->toolBar, this); + +#ifdef Q_OS_MACX + QStyle *fusion = QStyleFactory::create("Fusion"); + ui->toolBar->setStyle(fusion); +#endif +} + +void CodeSnippetEditor::setupDefShortcuts() +{ + // Widget context + setShortcutContext({COMMIT, ROLLBACK}, Qt::WidgetWithChildrenShortcut); + BIND_SHORTCUTS(CodeSnippetEditor, Action); +} + +QToolBar* CodeSnippetEditor::getToolBar(int toolbar) const +{ + UNUSED(toolbar); + return ui->toolBar; +} + +void CodeSnippetEditor::init() +{ + ui->setupUi(this); + clearEdits(); + + ui->mainCodeEdit->setFont(CFG_UI.Fonts.SqlEditor.get()); + + model = new CodeSnippetEditorModel(this); + snippetFilterModel = new QSortFilterProxyModel(this); + snippetFilterModel->setSourceModel(model); + ui->list->setModel(snippetFilterModel); + + initActions(); + + connect(ui->list->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)), this, SLOT(snippetSelected(QItemSelection,QItemSelection))); + connect(ui->list->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)), this, SLOT(updateState())); + connect(ui->assistantShortcutEdit, SIGNAL(keySequenceChanged(QKeySequence)), this, SLOT(updateModified())); + connect(ui->mainCodeEdit, SIGNAL(textChanged()), this, SLOT(updateModified())); + connect(ui->nameEdit, SIGNAL(textChanged(QString)), this, SLOT(updateModified())); + connect(CFG_UI.Fonts.SqlEditor, SIGNAL(changed(QVariant)), this, SLOT(changeFont(QVariant))); + connect(ui->clearAssistantShortcutButton, SIGNAL(clicked(bool)), this, SLOT(clearAssistantShortcutPressed())); + + model->setData(CODESNIPPETS->getSnippets()); + + updateCurrentSnippetState(); +} + +int CodeSnippetEditor::getCurrentSnippetRow() const +{ + QModelIndexList idxList = ui->list->selectionModel()->selectedIndexes(); + if (idxList.size() == 0) + return -1; + + return idxList.first().row(); +} + +void CodeSnippetEditor::snippetDeselected(int row) +{ + model->setName(row, ui->nameEdit->text()); + model->setCode(row, ui->mainCodeEdit->toPlainText()); + model->setHotkey(row, ui->assistantShortcutEdit->keySequence()); + model->setModified(row, currentModified); + model->validateNames(); +} + +void CodeSnippetEditor::snippetSelected(int row) +{ + updatesForSelection = true; + ui->nameEdit->setText(model->getName(row)); + ui->mainCodeEdit->setPlainText(model->getCode(row)); + ui->assistantShortcutEdit->setKeySequence(model->getHotkey(row)); + + updatesForSelection = false; + currentModified = model->isModified(row); + + updateCurrentSnippetState(); +} + +void CodeSnippetEditor::selectSnippet(int row, bool skipModelUpdates) +{ + if (!model->isValidRowIndex(row)) + return; + + if (skipModelUpdates) + skipModelUpdatesDuringSelection = true; + + ui->list->selectionModel()->setCurrentIndex(model->index(row), QItemSelectionModel::Clear|QItemSelectionModel::SelectCurrent); + + if (skipModelUpdates) + skipModelUpdatesDuringSelection = false; +} + +void CodeSnippetEditor::clearEdits() +{ + ui->nameEdit->clear(); + ui->assistantShortcutEdit->clear(); + ui->mainCodeEdit->setPlainText(QString()); +} + +void CodeSnippetEditor::commit() +{ + int row = getCurrentSnippetRow(); + if (model->isValidRowIndex(row)) + snippetDeselected(row); + + QList snippets = model->generateSnippets(); + + CODESNIPPETS->setSnippets(snippets); + model->clearModified(); + currentModified = false; + + if (model->isValidRowIndex(row)) + selectSnippet(row); + + updateState(); +} + +void CodeSnippetEditor::rollback() +{ + int selectedBefore = getCurrentSnippetRow(); + + model->setData(CODESNIPPETS->getSnippets()); + currentModified = false; + clearEdits(); + + if (model->isValidRowIndex(selectedBefore)) + selectSnippet(selectedBefore); + + updateState(); +} + +void CodeSnippetEditor::newSnippet() +{ + CodeSnippetManager::CodeSnippet* snip = new CodeSnippetManager::CodeSnippet(); + snip->name = generateUniqueName("snippet", model->getSnippetNames()); + + model->addSnippet(snip); + + selectSnippet(model->rowCount() - 1); +} + +void CodeSnippetEditor::deleteSnippet() +{ + int row = getCurrentSnippetRow(); + model->deleteSnippet(row); + clearEdits(); + + row = getCurrentSnippetRow(); + if (model->isValidRowIndex(row)) + snippetSelected(row); + + updateState(); +} + +void CodeSnippetEditor::moveSnippetUp() +{ + int row = getCurrentSnippetRow(); + int newRow = model->moveUp(row); + if (row != newRow) + selectSnippet(newRow, true); +} + +void CodeSnippetEditor::moveSnippetDown() +{ + int row = getCurrentSnippetRow(); + int newRow = model->moveDown(row); + if (row != newRow) + selectSnippet(newRow, true); +} + +void CodeSnippetEditor::updateModified() +{ + if (updatesForSelection) + return; + + int row = getCurrentSnippetRow(); + if (model->isValidRowIndex(row)) + { + bool nameDiff = model->getName(row) != ui->nameEdit->text(); + bool codeDiff = model->getCode(row) != ui->mainCodeEdit->toPlainText(); + bool hotkeyDiff = model->getHotkey(row) != ui->assistantShortcutEdit->keySequence(); + currentModified = (nameDiff || codeDiff || hotkeyDiff); + } + + updateCurrentSnippetState(); +} + +void CodeSnippetEditor::updateCurrentSnippetState() +{ + int row = getCurrentSnippetRow(); + bool validRow = model->isValidRowIndex(row); + ui->rightWidget->setEnabled(validRow); + if (!validRow) + { + setValidState(ui->nameEdit, true); + setValidState(ui->mainCodeEdit, true); + setValidState(ui->assistantShortcutEdit, true); + updateState(); + return; + } + + QString name = ui->nameEdit->text(); + bool nameOk = !name.trimmed().isEmpty() && model->isAllowedName(row, name); + setValidState(ui->nameEdit, nameOk, tr("Enter a non-empty, unique name of the snippet.")); + + bool codeOk = !ui->mainCodeEdit->toPlainText().trimmed().isEmpty(); + setValidState(ui->mainCodeEdit, codeOk, tr("Enter a non-empty snippet content.")); + + QKeySequence assistantHotkey = ui->assistantShortcutEdit->keySequence(); + bool hotkeyOk = assistantHotkey.isEmpty() || model->isAllowedHotkey(row, assistantHotkey); + setValidState(ui->assistantShortcutWidget, hotkeyOk, tr("This hotkey is not unique in context of a code assistant.")); + + model->setValid(row, codeOk && nameOk && hotkeyOk); + updateState(); +} + +void CodeSnippetEditor::updateState() +{ + bool modified = model->isModified() || currentModified; + bool valid = model->isValid(); + + actionMap[COMMIT]->setEnabled(modified && valid); + actionMap[ROLLBACK]->setEnabled(modified); + actionMap[DELETE]->setEnabled(ui->list->selectionModel()->selectedIndexes().size() > 0); +} + +void CodeSnippetEditor::snippetSelected(const QItemSelection& selected, const QItemSelection& deselected) +{ + if (skipModelUpdatesDuringSelection) + return; + + int deselCnt = deselected.indexes().size(); + int selCnt = selected.indexes().size(); + + if (deselCnt > 0) + snippetDeselected(deselected.indexes().first().row()); + + if (selCnt > 0) + snippetSelected(selected.indexes().first().row()); + + if (deselCnt > 0 && selCnt == 0) + { + currentModified = false; + clearEdits(); + } +} + +void CodeSnippetEditor::applyFilter(const QString& value) +{ + // The selection hack (clear & set) below is described in more details in FunctionsEditor::applyFilter(). + int row = getCurrentSnippetRow(); + ui->list->selectionModel()->clearSelection(); + + snippetFilterModel->setFilterFixedString(value); + + selectSnippet(row); +} + +void CodeSnippetEditor::changeFont(const QVariant& font) +{ + ui->mainCodeEdit->setFont(font.value()); +} + +void CodeSnippetEditor::clearAssistantShortcutPressed() +{ + ui->assistantShortcutEdit->clear(); + ui->assistantShortcutEdit->setFocus(); +} + +void CodeSnippetEditor::help() +{ + static const QString url = QStringLiteral("https://github.com/pawelsalawa/sqlitestudio/wiki/User_Manual#code-snippets"); + QDesktopServices::openUrl(QUrl(url, QUrl::StrictMode)); +} diff --git a/SQLiteStudio3/guiSQLiteStudio/windows/codesnippeteditor.h b/SQLiteStudio3/guiSQLiteStudio/windows/codesnippeteditor.h new file mode 100644 index 0000000..2247960 --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/windows/codesnippeteditor.h @@ -0,0 +1,91 @@ +#ifndef CODESNIPPETEDITOR_H +#define CODESNIPPETEDITOR_H + +#include "mdichild.h" +#include + +namespace Ui { +class CodeSnippetEditor; +} + +class CodeSnippetEditorModel; +class QSortFilterProxyModel; +class QSyntaxHighlighter; +class QItemSelection; + +CFG_KEY_LIST(CodeSnippetEditor, QObject::tr("A code snippets editor window"), + CFG_KEY_ENTRY(COMMIT, QKeySequence::Save, QObject::tr("Commit the pending changes")) + CFG_KEY_ENTRY(ROLLBACK, QKeySequence::Cancel, QObject::tr("Rollback the pending changes")) +) + +class CodeSnippetEditor : public MdiChild +{ + Q_OBJECT + + public: + enum Action + { + COMMIT, + ROLLBACK, + ADD, + DELETE, + MOVE_UP, + MOVE_DOWN, + HELP + }; + Q_ENUM(Action) + + enum ToolBar + { + TOOLBAR + }; + + explicit CodeSnippetEditor(QWidget *parent = nullptr); + ~CodeSnippetEditor(); + + bool restoreSessionNextTime(); + bool isUncommitted() const; + QString getQuitUncommittedConfirmMessage() const; + + protected: + QVariant saveSession(); + bool restoreSession(const QVariant &sessionValue); + Icon* getIconNameForMdiWindow(); + QString getTitleForMdiWindow(); + void createActions(); + void setupDefShortcuts(); + QToolBar* getToolBar(int toolbar) const; + + private: + void init(); + int getCurrentSnippetRow() const; + void snippetDeselected(int row); + void snippetSelected(int row); + void selectSnippet(int row, bool forRowMovement = false); + void clearEdits(); + + Ui::CodeSnippetEditor *ui; + CodeSnippetEditorModel* model = nullptr; + QSortFilterProxyModel* snippetFilterModel = nullptr; + bool currentModified = false; + bool updatesForSelection = false; + bool skipModelUpdatesDuringSelection = false; + + private slots: + void commit(); + void rollback(); + void newSnippet(); + void deleteSnippet(); + void moveSnippetUp(); + void moveSnippetDown(); + void updateModified(); + void updateCurrentSnippetState(); + void updateState(); + void snippetSelected(const QItemSelection& selected, const QItemSelection& deselected); + void applyFilter(const QString& value); + void changeFont(const QVariant& font); + void clearAssistantShortcutPressed(); + void help(); +}; + +#endif // CODESNIPPETEDITOR_H diff --git a/SQLiteStudio3/guiSQLiteStudio/windows/codesnippeteditor.ui b/SQLiteStudio3/guiSQLiteStudio/windows/codesnippeteditor.ui new file mode 100644 index 0000000..4a18b12 --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/windows/codesnippeteditor.ui @@ -0,0 +1,250 @@ + + + CodeSnippetEditor + + + + 0 + 0 + 913 + 595 + + + + Form + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Qt::Horizontal + + + + + 1 + 0 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 150 + 0 + + + + Filter snippets + + + true + + + + + + + QAbstractItemView::NoEditTriggers + + + true + + + QAbstractItemView::ScrollPerPixel + + + + + + + + + 4 + 0 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 1 + + + + + 0 + + + 0 + + + 0 + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + + + + + + + + + + + :/icons/img/clear_lineedit.png:/icons/img/clear_lineedit.png + + + + + + + + + + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + + + Snippet name + + + + + + + <html><head/><body><p>The name of the snippet will be displayed in the code assistant. To access the list of snippets user has to hit the code assistant shortcut twice.</p></body></html> + + + + + + + <html><head/><body><p>Optional shortcut, that will work only in context of the active code assistant window. It allows user to use key combinations, that would otherwise be conflicting with other shortcuts. Having the code assistant window as required context makes the choice of keys more versatile.</p></body></html> + + + Code assistant shortcut + + + + + + + + + + + 0 + 2 + + + + Snippet code + + + + + + QPlainTextEdit::NoWrap + + + + + + + + + + + + + + + + + snippetFilterEdit + list + mainCodeEdit + + + + + + diff --git a/SQLiteStudio3/guiSQLiteStudio/windows/codesnippeteditormodel.cpp b/SQLiteStudio3/guiSQLiteStudio/windows/codesnippeteditormodel.cpp new file mode 100644 index 0000000..585db7b --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/windows/codesnippeteditormodel.cpp @@ -0,0 +1,287 @@ +#include "codesnippeteditormodel.h" +#include "common/strhash.h" +#include "common/unused.h" +#include "iconmanager.h" + +#include + +#define SETTER(X, Y) \ +if (!isValidRowIndex(row) || X == Y) \ + return; \ + \ + X = Y; \ + emitDataChanged(row); + +#define GETTER(X, Y) \ +if (!isValidRowIndex(row)) \ + return Y; \ + \ + return X; + +CodeSnippetEditorModel::CodeSnippetEditorModel(QObject* parent) : + QAbstractListModel(parent) +{ +} + +void CodeSnippetEditorModel::clearModified() +{ + beginResetModel(); + for (Snippet*& snip : snippetList) + snip->modified = false; + + listModified = false; + originalSnippetList = snippetList; + + endResetModel(); +} + +bool CodeSnippetEditorModel::isModified() const +{ + if (snippetList != originalSnippetList) + return true; + + for (Snippet* snip : snippetList) + { + if (snip->modified) + return true; + } + return false; +} + +bool CodeSnippetEditorModel::isModified(int row) const +{ + GETTER(snippetList[row]->modified, false); +} + +void CodeSnippetEditorModel::setModified(int row, bool modified) +{ + SETTER(snippetList[row]->modified, modified); +} + +bool CodeSnippetEditorModel::isValid() const +{ + for (Snippet* snip : snippetList) + { + if (!snip->valid) + return false; + } + return true; +} + +bool CodeSnippetEditorModel::isValid(int row) const +{ + GETTER(snippetList[row]->valid, false); +} + +void CodeSnippetEditorModel::setValid(int row, bool valid) +{ + SETTER(snippetList[row]->valid, valid); +} + +void CodeSnippetEditorModel::setCode(int row, const QString& code) +{ + SETTER(snippetList[row]->data.code, code); +} + +QString CodeSnippetEditorModel::getCode(int row) const +{ + GETTER(snippetList[row]->data.code, QString()); +} + +void CodeSnippetEditorModel::setName(int row, const QString& newName) +{ + SETTER(snippetList[row]->data.name, newName); +} + +QString CodeSnippetEditorModel::getName(int row) const +{ + GETTER(snippetList[row]->data.name, QString()); +} + +void CodeSnippetEditorModel::setHotkey(int row, const QKeySequence& value) +{ + SETTER(snippetList[row]->data.hotkey, value.toString()); +} + +QKeySequence CodeSnippetEditorModel::getHotkey(int row) const +{ + GETTER(QKeySequence(snippetList[row]->data.hotkey), QKeySequence()); +} + +void CodeSnippetEditorModel::setData(const QList& snippets) +{ + beginResetModel(); + + for (Snippet*& snippetPtr : snippetList) + delete snippetPtr; + + snippetList.clear(); + + for (CodeSnippetManager::CodeSnippet* snip : snippets) + snippetList << new Snippet(snip); + + listModified = false; + originalSnippetList = snippetList; + + endResetModel(); +} + +void CodeSnippetEditorModel::addSnippet(CodeSnippetManager::CodeSnippet* snippet) +{ + int row = snippetList.size(); + + beginInsertRows(QModelIndex(), row, row); + + snippetList << new Snippet(snippet); + listModified = true; + + endInsertRows(); +} + +void CodeSnippetEditorModel::deleteSnippet(int row) +{ + if (!isValidRowIndex(row)) + return; + + beginRemoveRows(QModelIndex(), row, row); + + delete snippetList[row]; + snippetList.removeAt(row); + + listModified = true; + + endRemoveRows(); +} + +QList CodeSnippetEditorModel::generateSnippets() const +{ + QList results; + for (Snippet* snip: snippetList) + results << new CodeSnippetManager::CodeSnippet(snip->data); + + return results; +} + +QStringList CodeSnippetEditorModel::getSnippetNames() const +{ + QStringList names; + for (Snippet* snip : snippetList) + names << snip->data.name; + + return names; +} + +void CodeSnippetEditorModel::validateNames() +{ + StrHash> counter; + + int row = 0; + for (Snippet*& snip : snippetList) + { + snip->valid &= true; + counter[snip->data.name] << row++; + } + + QHashIterator> cntIt = counter.iterator(); + while (cntIt.hasNext()) + { + cntIt.next(); + if (cntIt.value().size() > 1) + { + for (int cntRow : cntIt.value()) + setValid(cntRow, false); + } + } + + QModelIndex idx; + for (int i = 0; i < snippetList.size(); i++) + { + idx = index(i); + emit dataChanged(idx, idx); + } +} + +bool CodeSnippetEditorModel::isAllowedName(int rowToSkip, const QString& nameToValidate) +{ + QStringList names = getSnippetNames(); + names.removeAt(rowToSkip); + return !names.contains(nameToValidate, Qt::CaseInsensitive); +} + +bool CodeSnippetEditorModel::isAllowedHotkey(int rowToSkip, const QKeySequence& hotkeyToValidate) +{ + QList keys; + for (Snippet*& snip : snippetList) + keys << snip->data.hotkey; + + keys.removeAt(rowToSkip); + return !keys.contains(hotkeyToValidate); +} + +bool CodeSnippetEditorModel::isValidRowIndex(int row) const +{ + return (row >= 0 && row < snippetList.size()); +} + +int CodeSnippetEditorModel::moveUp(int row) +{ + if (row <= 0 || row >= snippetList.size()) + return row; + + snippetList.move(row, row - 1); + return row - 1; +} + +int CodeSnippetEditorModel::moveDown(int row) +{ + if (row < 0 || row + 1 >= snippetList.size()) + return row; + + snippetList.move(row, row + 1); + return row + 1; +} + +int CodeSnippetEditorModel::rowCount(const QModelIndex& parent) const +{ + UNUSED(parent); + return snippetList.size(); +} + +QVariant CodeSnippetEditorModel::data(const QModelIndex& index, int role) const +{ + if (!index.isValid() || !isValidRowIndex(index.row())) + return QVariant(); + + if (role == Qt::DisplayRole) + { + Snippet* sn = snippetList[index.row()]; + return sn->data.name; + } + + if (role == Qt::DecorationRole) + { + QIcon icon = ICONS.CODE_SNIPPET; + if (!snippetList[index.row()]->valid) + icon = Icon::merge(icon, Icon::ERROR); + + return icon; + } + + return QVariant(); +} + +void CodeSnippetEditorModel::emitDataChanged(int row) +{ + QModelIndex idx = index(row); + emit dataChanged(idx, idx); +} + +CodeSnippetEditorModel::Snippet::Snippet() +{ +} + +CodeSnippetEditorModel::Snippet::Snippet(CodeSnippetManager::CodeSnippet* other) +{ + data = CodeSnippetManager::CodeSnippet(*other); + originalName = data.name; +} diff --git a/SQLiteStudio3/guiSQLiteStudio/windows/codesnippeteditormodel.h b/SQLiteStudio3/guiSQLiteStudio/windows/codesnippeteditormodel.h new file mode 100644 index 0000000..ae5fa86 --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/windows/codesnippeteditormodel.h @@ -0,0 +1,80 @@ +#ifndef CODESNIPPETEDITORMODEL_H +#define CODESNIPPETEDITORMODEL_H + +#include "guiSQLiteStudio_global.h" +#include "services/codesnippetmanager.h" +#include + +class GUI_API_EXPORT CodeSnippetEditorModel : public QAbstractListModel +{ + Q_OBJECT + + public: + using QAbstractItemModel::setData; + + enum Role + { + CODE = 1000, + MODIFIED = 1001, + VALID = 1002 + }; + + explicit CodeSnippetEditorModel(QObject *parent = 0); + + void clearModified(); + bool isModified() const; + bool isModified(int row) const; + void setModified(int row, bool modified); + bool isValid() const; + bool isValid(int row) const; + void setValid(int row, bool valid); + void setCode(int row, const QString& code); + QString getCode(int row) const; + void setName(int row, const QString& newName); + QString getName(int row) const; + void setHotkey(int row, const QKeySequence& value); + QKeySequence getHotkey(int row) const; + void setData(const QList& snippets); + void addSnippet(CodeSnippetManager::CodeSnippet* snippet); + void deleteSnippet(int row); + QList generateSnippets() const; + QStringList getSnippetNames() const; + void validateNames(); + bool isAllowedName(int rowToSkip, const QString& nameToValidate); + bool isAllowedHotkey(int rowToSkip, const QKeySequence& hotkeyToValidate); + bool isValidRowIndex(int row) const; + + int moveUp(int row); + int moveDown(int row); + int rowCount(const QModelIndex& parent = QModelIndex()) const; + QVariant data(const QModelIndex& index, int role) const; + + private: + struct Snippet + { + Snippet(); + Snippet(CodeSnippetManager::CodeSnippet* other); + + CodeSnippetManager::CodeSnippet data; + bool modified = false; + bool valid = true; + QString originalName; + }; + + void emitDataChanged(int row); + + QList snippetList; + + /** + * @brief List of snippets pointers before modifications. + * + * This list is kept to check for modifications in the overall list of snippets. + * Pointers on this list may be already deleted, so don't use them! + * It's only used to compare list of pointers to snippetList, so it can tell you + * if the list was modified in regards of adding or deleting functions. + */ + QList originalSnippetList; + bool listModified = false; +}; + +#endif // CODESNIPPETEDITORMODEL_H diff --git a/SQLiteStudio3/guiSQLiteStudio/windows/collationseditor.cpp b/SQLiteStudio3/guiSQLiteStudio/windows/collationseditor.cpp index 5cf5be4..df72db2 100644 --- a/SQLiteStudio3/guiSQLiteStudio/windows/collationseditor.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/windows/collationseditor.cpp @@ -15,6 +15,8 @@ #include #include +CFG_KEYS_DEFINE(CollationsEditor) + CollationsEditor::CollationsEditor(QWidget *parent) : MdiChild(parent), ui(new Ui::CollationsEditor) @@ -55,18 +57,20 @@ QString CollationsEditor::getTitleForMdiWindow() void CollationsEditor::createActions() { - createAction(COMMIT, ICONS.COMMIT, tr("Commit all collation changes"), this, SLOT(commit()), ui->toolbar); - createAction(ROLLBACK, ICONS.ROLLBACK, tr("Rollback all collation changes"), this, SLOT(rollback()), ui->toolbar); + createAction(COMMIT, ICONS.COMMIT, tr("Commit all collation changes"), this, SLOT(commit()), ui->toolbar, this); + createAction(ROLLBACK, ICONS.ROLLBACK, tr("Rollback all collation changes"), this, SLOT(rollback()), ui->toolbar, this); ui->toolbar->addSeparator(); - createAction(ADD, ICONS.NEW_COLLATION, tr("Create new collation"), this, SLOT(newCollation()), ui->toolbar); - createAction(DELETE, ICONS.DELETE_COLLATION, tr("Delete selected collation"), this, SLOT(deleteCollation()), ui->toolbar); + createAction(ADD, ICONS.NEW_COLLATION, tr("Create new collation"), this, SLOT(newCollation()), ui->toolbar, this); + createAction(DELETE, ICONS.DELETE_COLLATION, tr("Delete selected collation"), this, SLOT(deleteCollation()), ui->toolbar, this); ui->toolbar->addSeparator(); - createAction(HELP, ICONS.HELP, tr("Editing collations manual"), this, SLOT(help()), ui->toolbar); + createAction(HELP, ICONS.HELP, tr("Editing collations manual"), this, SLOT(help()), ui->toolbar, this); } void CollationsEditor::setupDefShortcuts() { - + // Widget context + setShortcutContext({COMMIT, ROLLBACK}, Qt::WidgetWithChildrenShortcut); + BIND_SHORTCUTS(CollationsEditor, Action); } QToolBar* CollationsEditor::getToolBar(int toolbar) const @@ -378,10 +382,9 @@ void CollationsEditor::changeFont(const QVariant& font) setFont(font.value()); } - bool CollationsEditor::isUncommitted() const { - return model->isModified(); + return model->isModified() || currentModified; } QString CollationsEditor::getQuitUncommittedConfirmMessage() const diff --git a/SQLiteStudio3/guiSQLiteStudio/windows/collationseditor.h b/SQLiteStudio3/guiSQLiteStudio/windows/collationseditor.h index 7b2e469..61c9165 100644 --- a/SQLiteStudio3/guiSQLiteStudio/windows/collationseditor.h +++ b/SQLiteStudio3/guiSQLiteStudio/windows/collationseditor.h @@ -17,6 +17,11 @@ class CollationsEditorModel; class QSortFilterProxyModel; class QSyntaxHighlighter; +CFG_KEY_LIST(CollationsEditor, QObject::tr("A collation editor window"), + CFG_KEY_ENTRY(COMMIT, QKeySequence::Save, QObject::tr("Commit the pending changes")) + CFG_KEY_ENTRY(ROLLBACK, QKeySequence::Cancel, QObject::tr("Rollback the pending changes")) +) + class GUI_API_EXPORT CollationsEditor : public MdiChild { Q_OBJECT @@ -30,6 +35,7 @@ class GUI_API_EXPORT CollationsEditor : public MdiChild DELETE, HELP }; + Q_ENUM(Action) enum ToolBar { diff --git a/SQLiteStudio3/guiSQLiteStudio/windows/ddlhistorywindow.cpp b/SQLiteStudio3/guiSQLiteStudio/windows/ddlhistorywindow.cpp index 795158a..c083cbd 100644 --- a/SQLiteStudio3/guiSQLiteStudio/windows/ddlhistorywindow.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/windows/ddlhistorywindow.cpp @@ -1,14 +1,12 @@ #include "ddlhistorywindow.h" #include "ui_ddlhistorywindow.h" #include "services/config.h" -#include "common/userinputfilter.h" -#include "common/extlineedit.h" -#include "dblistmodel.h" #include "ddlhistorymodel.h" #include "common/unused.h" #include "iconmanager.h" #include #include +#include #include DdlHistoryWindow::DdlHistoryWindow(QWidget *parent) : @@ -58,6 +56,7 @@ void DdlHistoryWindow::init() connect(ui->tableView->selectionModel(), SIGNAL(currentRowChanged(QModelIndex,QModelIndex)), this, SLOT(activated(QModelIndex,QModelIndex))); + connect(ui->clearButton, SIGNAL(clicked(bool)), this, SLOT(clearHistory())); } void DdlHistoryWindow::activated(const QModelIndex& current, const QModelIndex& previous) @@ -76,12 +75,8 @@ void DdlHistoryWindow::activated(const QModelIndex& current, const QModelIndex& QStringList contentEntries; QList entries = CFG->getDdlHistoryFor(dbName, dbFile, date); - for (Config::DdlHistoryEntryPtr entry : entries) - { - contentEntries << templ.arg(entry->dbName).arg(entry->dbFile) - .arg(entry->timestamp.toString("yyyy-MM-dd HH:mm:ss")) - .arg(entry->queries); - } + for (Config::DdlHistoryEntryPtr& entry : entries) + contentEntries << templ.arg(entry->dbName, entry->dbFile, entry->timestamp.toString("yyyy-MM-dd HH:mm:ss"), entry->queries); ui->ddlEdit->setPlainText(contentEntries.join("\n\n")); } @@ -98,6 +93,17 @@ void DdlHistoryWindow::refreshDbList() dbListModel->setStringList(dbList); } +void DdlHistoryWindow::clearHistory() +{ + QMessageBox::StandardButton result = QMessageBox::question(this, tr("Clear history"), tr("Are you sure you want to erase entire DDL history?")); + if (result != QMessageBox::Yes) + return; + + CFG->clearDdlHistory(); + dataModel->refresh(); + ui->ddlEdit->setPlainText(""); +} + bool DdlHistoryWindow::restoreSessionNextTime() { return false; diff --git a/SQLiteStudio3/guiSQLiteStudio/windows/ddlhistorywindow.h b/SQLiteStudio3/guiSQLiteStudio/windows/ddlhistorywindow.h index 1a04831..c8de66a 100644 --- a/SQLiteStudio3/guiSQLiteStudio/windows/ddlhistorywindow.h +++ b/SQLiteStudio3/guiSQLiteStudio/windows/ddlhistorywindow.h @@ -49,6 +49,7 @@ class GUI_API_EXPORT DdlHistoryWindow : public MdiChild void activated(const QModelIndex& current, const QModelIndex& previous); void applyFilter(const QString& filterValue); void refreshDbList(); + void clearHistory(); }; #endif // DDLHISTORYWINDOW_H diff --git a/SQLiteStudio3/guiSQLiteStudio/windows/ddlhistorywindow.ui b/SQLiteStudio3/guiSQLiteStudio/windows/ddlhistorywindow.ui index 33cdb66..77fa5ca 100644 --- a/SQLiteStudio3/guiSQLiteStudio/windows/ddlhistorywindow.ui +++ b/SQLiteStudio3/guiSQLiteStudio/windows/ddlhistorywindow.ui @@ -49,6 +49,20 @@ + + + + Clear entire history + + + + + + + :/icons/img/act_clear.png:/icons/img/act_clear.png + + + @@ -121,6 +135,8 @@
    sqlview.h
    - + + + diff --git a/SQLiteStudio3/guiSQLiteStudio/windows/editorwindow.cpp b/SQLiteStudio3/guiSQLiteStudio/windows/editorwindow.cpp index f0f980d..23cb651 100644 --- a/SQLiteStudio3/guiSQLiteStudio/windows/editorwindow.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/windows/editorwindow.cpp @@ -113,6 +113,12 @@ void EditorWindow::init() resultsModel->setDb(currentDb); ui->sqlEdit->setDb(currentDb); + connect(CFG_UI.General.SqlEditorCurrQueryHighlight, SIGNAL(changed(QVariant)), this, SLOT(queryHighlightingConfigChanged(QVariant))); + if (CFG_UI.General.SqlEditorCurrQueryHighlight.get()) + ui->sqlEdit->setCurrentQueryHighlighting(true); + + connect(ui->sqlEdit, SIGNAL(textChanged()), this, SLOT(checkTextChangedForSession())); + connect(resultsModel, SIGNAL(executionSuccessful()), this, SLOT(executionSuccessful())); connect(resultsModel, SIGNAL(executionFailed(QString)), this, SLOT(executionFailed(QString))); connect(resultsModel, SIGNAL(storeExecutionInHistory()), this, SLOT(storeExecutionInHistory())); @@ -205,7 +211,7 @@ QAction* EditorWindow::getAction(EditorWindow::Action action) return ExtActionContainer::getAction(action); } -QString EditorWindow::getQueryToExecute(bool doSelectCurrentQuery) +QString EditorWindow::getQueryToExecute(bool doSelectCurrentQuery, QueryExecMode querySelectionMode) { QString sql; if (ui->sqlEdit->textCursor().hasSelection()) @@ -213,7 +219,11 @@ QString EditorWindow::getQueryToExecute(bool doSelectCurrentQuery) sql = ui->sqlEdit->textCursor().selectedText(); fixTextCursorSelectedText(sql); } - else if (CFG_UI.General.ExecuteCurrentQueryOnly.get()) + else if (querySelectionMode == ALL) + { + sql = ui->sqlEdit->toPlainText(); + } + else if (CFG_UI.General.ExecuteCurrentQueryOnly.get() || querySelectionMode == SINGLE) { ui->sqlEdit->saveSelection(); selectCurrentQuery(true); @@ -237,7 +247,9 @@ bool EditorWindow::setCurrentDb(Db *db) void EditorWindow::setContents(const QString &sql) { + settingSqlContents = true; ui->sqlEdit->setPlainText(sql); + settingSqlContents = false; } QString EditorWindow::getContents() const @@ -394,6 +406,8 @@ void EditorWindow::createActions() createAction(FOCUS_RESULTS_BELOW, tr("Focus results below", "sql editor"), this, SLOT(focusResultsBelow()), this); createAction(FOCUS_EDITOR_ABOVE, tr("Focus SQL editor above", "sql editor"), this, SLOT(focusEditorAbove()), this); createAction(DELETE_SINGLE_HISTORY_SQL, tr("Delete selected SQL history entries", "sql editor"), this, SLOT(deleteSelectedSqlHistory()), ui->historyList); + createAction(EXEC_ONE_QUERY, ICONS.EXEC_QUERY, tr("Execute single query under cursor"), this, SLOT(execOneQuery()), this); + createAction(EXEC_ALL_QUERIES, ICONS.EXEC_QUERY, tr("Execute all queries in editor"), this, SLOT(execAllQueries()), this); // Static action triggers connect(staticActions[RESULTS_IN_TAB], SIGNAL(triggered()), this, SLOT(updateResultsDisplayMode())); @@ -421,35 +435,19 @@ void EditorWindow::selectCurrentQuery(bool fallBackToPreviousIfNecessary) { QTextCursor cursor = ui->sqlEdit->textCursor(); int pos = cursor.position(); - int queryStartPos; - QString contents = ui->sqlEdit->toPlainText(); - QString query = getQueryWithPosition(contents, pos, &queryStartPos); - TokenList tokens = Lexer::tokenize(query); - tokens.trim(); - tokens.trimRight(Token::OPERATOR, ";"); - if (tokens.size() == 0 && fallBackToPreviousIfNecessary) - { - // Fallback - pos = contents.lastIndexOf(";", pos - 1); - if (pos > -1) - { - query = getQueryWithPosition(contents, pos, &queryStartPos); - tokens = Lexer::tokenize(query); - tokens.trim(); - tokens.trimRight(Token::OPERATOR, ";"); - } - } + QString contents = ui->sqlEdit->toPlainText(); + QPair boundries = getQueryBoundriesForPosition(contents, pos, fallBackToPreviousIfNecessary); - if (tokens.size() == 0) + if (boundries.second < 0) { qWarning() << "No tokens to select in EditorWindow::selectCurrentQuery()."; return; } cursor.clearSelection(); - cursor.setPosition(tokens.first()->start + queryStartPos); - cursor.setPosition(tokens.last()->end + 1 + queryStartPos, QTextCursor::KeepAnchor); + cursor.setPosition(boundries.first); + cursor.setPosition(boundries.second, QTextCursor::KeepAnchor); ui->sqlEdit->setTextCursor(cursor); } @@ -459,13 +457,13 @@ void EditorWindow::updateShortcutTips() { QString prevDbKey = actionMap[PREV_DB]->shortcut().toString(QKeySequence::NativeText); QString nextDbKey = actionMap[NEXT_DB]->shortcut().toString(QKeySequence::NativeText); - dbCombo->setToolTip(tr("Active database (%1/%2)").arg(prevDbKey).arg(nextDbKey)); + dbCombo->setToolTip(tr("Active database (%1/%2)").arg(prevDbKey, nextDbKey)); } } -void EditorWindow::execQuery(bool explain) +void EditorWindow::execQuery(bool explain, QueryExecMode querySelectionMode) { - QString sql = getQueryToExecute(true); + QString sql = getQueryToExecute(true, querySelectionMode); QHash bindParams; bool proceed = processBindParams(sql, bindParams); if (!proceed) @@ -487,6 +485,16 @@ void EditorWindow::execQuery(bool explain) } } +void EditorWindow::execOneQuery() +{ + execQuery(false, SINGLE); +} + +void EditorWindow::execAllQueries() +{ + execQuery(false, ALL); +} + void EditorWindow::explainQuery() { execQuery(true); @@ -504,7 +512,6 @@ bool EditorWindow::processBindParams(QString& sql, QHash& que // Process bind tokens, prepare list for a dialog. static_qstring(paramTpl, ":arg%1"); - QString arg; QVector bindParams; QHash namedBindParams; BindParam* bindParam = nullptr; @@ -539,14 +546,14 @@ bool EditorWindow::processBindParams(QString& sql, QHash& que // Transfer values from dialog to arguments for query if (accepted) { - for (BindParam* bindParam : bindParams) + for (BindParam*& bindParam : bindParams) queryParams[bindParam->newName] = bindParam->value; sql = tokens.detokenize(); } // Cleanup - for (BindParam* bindParam : bindParams) + for (BindParam*& bindParam : bindParams) delete bindParam; return accepted; @@ -676,7 +683,7 @@ void EditorWindow::deleteSelectedSqlHistory() return; QList ids; - for (const QModelIndex& idx : ui->historyList->selectionModel()->selectedRows(0)) + for (QModelIndex& idx : ui->historyList->selectionModel()->selectedRows(0)) ids += idx.data().toLongLong(); CFG->deleteSqlHistory(ids); @@ -747,6 +754,22 @@ void EditorWindow::updateState() actionMap[EXPLAIN_QUERY]->setEnabled(!executionInProgress); } +void EditorWindow::checkTextChangedForSession() +{ + if (!ui->sqlEdit->getHighlightingSyntax() && !settingSqlContents) + emit sessionValueChanged(); +} + +void EditorWindow::queryHighlightingConfigChanged(const QVariant& enabled) +{ + ui->sqlEdit->setCurrentQueryHighlighting(enabled.toBool()); +} + +void EditorWindow::refreshValidDbObjects() +{ + ui->sqlEdit->refreshValidObjects(); +} + int qHash(EditorWindow::ActionGroup actionGroup) { return static_cast(actionGroup); diff --git a/SQLiteStudio3/guiSQLiteStudio/windows/editorwindow.h b/SQLiteStudio3/guiSQLiteStudio/windows/editorwindow.h index 35a3b9b..977784e 100644 --- a/SQLiteStudio3/guiSQLiteStudio/windows/editorwindow.h +++ b/SQLiteStudio3/guiSQLiteStudio/windows/editorwindow.h @@ -26,6 +26,8 @@ class DbComboBox; CFG_KEY_LIST(EditorWindow, QObject::tr("SQL editor window"), CFG_KEY_ENTRY(EXEC_QUERY, Qt::Key_F9, QObject::tr("Execute query")) + CFG_KEY_ENTRY(EXEC_ONE_QUERY, Qt::CTRL + Qt::Key_F9, QObject::tr("Execute single query under cursor")) + CFG_KEY_ENTRY(EXEC_ALL_QUERIES, Qt::SHIFT + Qt::Key_F9, QObject::tr("Execute all queries in editor")) CFG_KEY_ENTRY(EXPLAIN_QUERY, Qt::Key_F8, QObject::tr("Execute \"%1\" query").arg("EXPLAIN")) CFG_KEY_ENTRY(PREV_DB, Qt::CTRL + Qt::Key_Up, QObject::tr("Switch current working database to previous on the list")) CFG_KEY_ENTRY(NEXT_DB, Qt::CTRL + Qt::Key_Down, QObject::tr("Switch current working database to next on the list")) @@ -38,8 +40,7 @@ CFG_KEY_LIST(EditorWindow, QObject::tr("SQL editor window"), class GUI_API_EXPORT EditorWindow : public MdiChild { - Q_OBJECT - Q_ENUMS(Action) + Q_OBJECT public: enum class ResultsDisplayMode @@ -51,6 +52,8 @@ class GUI_API_EXPORT EditorWindow : public MdiChild enum Action { EXEC_QUERY, + EXEC_ONE_QUERY, + EXEC_ALL_QUERIES, EXPLAIN_QUERY, RESULTS_IN_TAB, RESULTS_BELOW, @@ -66,6 +69,14 @@ class GUI_API_EXPORT EditorWindow : public MdiChild CREATE_VIEW_FROM_QUERY, DELETE_SINGLE_HISTORY_SQL }; + Q_ENUM(Action) + + enum QueryExecMode + { + DEFAULT, + SINGLE, + ALL + }; enum ToolBar { @@ -89,7 +100,7 @@ class GUI_API_EXPORT EditorWindow : public MdiChild QSize sizeHint() const; QAction* getAction(Action action); - QString getQueryToExecute(bool doSelectCurrentQuery = false); + QString getQueryToExecute(bool doSelectCurrentQuery = false, QueryExecMode querySelectionMode = DEFAULT); bool setCurrentDb(Db* db); void setContents(const QString& sql); QString getContents() const; @@ -98,6 +109,7 @@ class GUI_API_EXPORT EditorWindow : public MdiChild SqlEditor* getEditor() const; bool isUncommitted() const; QString getQuitUncommittedConfirmMessage() const; + Db* getCurrentDb(); protected: void changeEvent(QEvent *e); @@ -105,7 +117,6 @@ class GUI_API_EXPORT EditorWindow : public MdiChild bool restoreSession(const QVariant& sessionValue); Icon* getIconNameForMdiWindow(); QString getTitleForMdiWindow(); - Db* getCurrentDb(); private: static void createStaticActions(); @@ -134,9 +145,12 @@ class GUI_API_EXPORT EditorWindow : public MdiChild qint64 lastQueryHistoryId = 0; QString lastSuccessfulQuery; QMenu* sqlHistoryMenu = nullptr; + bool settingSqlContents = false; private slots: - void execQuery(bool explain = false); + void execQuery(bool explain = false, QueryExecMode querySelectionMode = DEFAULT); + void execOneQuery(); + void execAllQueries(); void explainQuery(); void dbChanged(); void executionSuccessful(); @@ -157,6 +171,11 @@ class GUI_API_EXPORT EditorWindow : public MdiChild void exportResults(); void createViewFromQuery(); void updateState(); + void checkTextChangedForSession(); + void queryHighlightingConfigChanged(const QVariant& enabled); + + public slots: + void refreshValidDbObjects(); }; GUI_API_EXPORT int qHash(EditorWindow::ActionGroup action); diff --git a/SQLiteStudio3/guiSQLiteStudio/windows/editorwindow.ui b/SQLiteStudio3/guiSQLiteStudio/windows/editorwindow.ui index f3f44e3..94e3dba 100644 --- a/SQLiteStudio3/guiSQLiteStudio/windows/editorwindow.ui +++ b/SQLiteStudio3/guiSQLiteStudio/windows/editorwindow.ui @@ -11,7 +11,7 @@
    - SQL editor + SQL editor @@ -77,7 +77,7 @@ - Results + Results diff --git a/SQLiteStudio3/guiSQLiteStudio/windows/functionseditor.cpp b/SQLiteStudio3/guiSQLiteStudio/windows/functionseditor.cpp index 3ac32ac..4d964c8 100644 --- a/SQLiteStudio3/guiSQLiteStudio/windows/functionseditor.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/windows/functionseditor.cpp @@ -8,10 +8,8 @@ #include "services/pluginmanager.h" #include "dbtree/dbtree.h" #include "dbtree/dbtreemodel.h" -#include "dbtree/dbtreeitem.h" #include "iconmanager.h" #include "syntaxhighlighterplugin.h" -#include "sqlitesyntaxhighlighter.h" #include "plugins/scriptingplugin.h" #include "common/userinputfilter.h" #include "selectabledbmodel.h" @@ -19,9 +17,12 @@ #include #include #include +#include // TODO handle plugin loading/unloading to update editor state +CFG_KEYS_DEFINE(FunctionsEditor) + FunctionsEditor::FunctionsEditor(QWidget *parent) : MdiChild(parent), ui(new Ui::FunctionsEditor) @@ -52,26 +53,26 @@ Icon* FunctionsEditor::getIconNameForMdiWindow() QString FunctionsEditor::getTitleForMdiWindow() { - return tr("SQL function editor"); + return tr("SQL functions editor"); } void FunctionsEditor::createActions() { - createAction(COMMIT, ICONS.COMMIT, tr("Commit all function changes"), this, SLOT(commit()), ui->toolBar); - createAction(ROLLBACK, ICONS.ROLLBACK, tr("Rollback all function changes"), this, SLOT(rollback()), ui->toolBar); + createAction(COMMIT, ICONS.COMMIT, tr("Commit all function changes"), this, SLOT(commit()), ui->toolBar, this); + createAction(ROLLBACK, ICONS.ROLLBACK, tr("Rollback all function changes"), this, SLOT(rollback()), ui->toolBar, this); ui->toolBar->addSeparator(); - createAction(ADD, ICONS.NEW_FUNCTION, tr("Create new function"), this, SLOT(newFunction()), ui->toolBar); - createAction(DELETE, ICONS.DELETE_FUNCTION, tr("Delete selected function"), this, SLOT(deleteFunction()), ui->toolBar); + createAction(ADD, ICONS.NEW_FUNCTION, tr("Create new function"), this, SLOT(newFunction()), ui->toolBar, this); + createAction(DELETE, ICONS.DELETE_FUNCTION, tr("Delete selected function"), this, SLOT(deleteFunction()), ui->toolBar, this); ui->toolBar->addSeparator(); - createAction(HELP, ICONS.HELP, tr("Custom SQL functions manual"), this, SLOT(help()), ui->toolBar); + createAction(HELP, ICONS.HELP, tr("Custom SQL functions manual"), this, SLOT(help()), ui->toolBar, this); // Args toolbar - createAction(ARG_ADD, ICONS.INSERT_FN_ARG, tr("Add function argument"), this, SLOT(addFunctionArg()), ui->argsToolBar); - createAction(ARG_EDIT, ICONS.RENAME_FN_ARG, tr("Rename function argument"), this, SLOT(editFunctionArg()), ui->argsToolBar); - createAction(ARG_DEL, ICONS.DELETE_FN_ARG, tr("Delete function argument"), this, SLOT(delFunctionArg()), ui->argsToolBar); + createAction(ARG_ADD, ICONS.INSERT_FN_ARG, tr("Add function argument"), this, SLOT(addFunctionArg()), ui->argsToolBar, this); + createAction(ARG_EDIT, ICONS.RENAME_FN_ARG, tr("Rename function argument"), this, SLOT(editFunctionArg()), ui->argsToolBar, this); + createAction(ARG_DEL, ICONS.DELETE_FN_ARG, tr("Delete function argument"), this, SLOT(delFunctionArg()), ui->argsToolBar, this); ui->argsToolBar->addSeparator(); - createAction(ARG_MOVE_UP, ICONS.MOVE_UP, tr("Move function argument up"), this, SLOT(moveFunctionArgUp()), ui->argsToolBar); - createAction(ARG_MOVE_DOWN, ICONS.MOVE_DOWN, tr("Move function argument down"), this, SLOT(moveFunctionArgDown()), ui->argsToolBar); + createAction(ARG_MOVE_UP, ICONS.MOVE_UP, tr("Move function argument up"), this, SLOT(moveFunctionArgUp()), ui->argsToolBar, this); + createAction(ARG_MOVE_DOWN, ICONS.MOVE_DOWN, tr("Move function argument down"), this, SLOT(moveFunctionArgDown()), ui->argsToolBar, this); #ifdef Q_OS_MACX QStyle *fusion = QStyleFactory::create("Fusion"); @@ -82,6 +83,9 @@ void FunctionsEditor::createActions() void FunctionsEditor::setupDefShortcuts() { + // Widget context + setShortcutContext({COMMIT, ROLLBACK}, Qt::WidgetWithChildrenShortcut); + BIND_SHORTCUTS(FunctionsEditor, Action); } QToolBar* FunctionsEditor::getToolBar(int toolbar) const @@ -123,11 +127,12 @@ void FunctionsEditor::init() connect(ui->mainCodeEdit, SIGNAL(textChanged()), this, SLOT(updateModified())); connect(ui->finalCodeEdit, SIGNAL(textChanged()), this, SLOT(updateModified())); connect(ui->nameEdit, SIGNAL(textChanged(QString)), this, SLOT(updateModified())); - connect(ui->undefArgsCheck, SIGNAL(clicked()), this, SLOT(updateModified())); + connect(ui->undefArgsCheck, SIGNAL(toggled(bool)), this, SLOT(updateModified())); connect(ui->allDatabasesRadio, SIGNAL(clicked()), this, SLOT(updateModified())); connect(ui->selDatabasesRadio, SIGNAL(clicked()), this, SLOT(updateModified())); connect(ui->langCombo, SIGNAL(currentTextChanged(QString)), this, SLOT(updateModified())); connect(ui->typeCombo, SIGNAL(currentTextChanged(QString)), this, SLOT(updateModified())); + connect(ui->deterministicCheck, SIGNAL(toggled(bool)), this, SLOT(updateModified())); connect(ui->argsList->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)), this, SLOT(updateArgsState())); connect(ui->argsList->model(), SIGNAL(rowsMoved(QModelIndex,int,int,QModelIndex,int)), this, SLOT(updateModified())); @@ -141,13 +146,13 @@ void FunctionsEditor::init() model->setData(FUNCTIONS->getAllScriptFunctions()); // Language plugins - for (ScriptingPlugin* plugin : PLUGINS->getLoadedPlugins()) + for (ScriptingPlugin*& plugin : PLUGINS->getLoadedPlugins()) scriptingPlugins[plugin->getLanguage()] = plugin; ui->langCombo->addItems(scriptingPlugins.keys()); // Syntax highlighting plugins - for (SyntaxHighlighterPlugin* plugin : PLUGINS->getLoadedPlugins()) + for (SyntaxHighlighterPlugin*& plugin : PLUGINS->getLoadedPlugins()) highlighterPlugins[plugin->getLanguageName()] = plugin; updateState(); @@ -170,6 +175,7 @@ void FunctionsEditor::functionDeselected(int row) model->setUndefinedArgs(row, ui->undefArgsCheck->isChecked()); model->setAllDatabases(row, ui->allDatabasesRadio->isChecked()); model->setCode(row, ui->mainCodeEdit->toPlainText()); + model->setDeterministic(row, ui->deterministicCheck->isChecked()); model->setModified(row, currentModified); if (model->isAggregate(row)) @@ -201,6 +207,7 @@ void FunctionsEditor::functionSelected(int row) ui->finalCodeEdit->setPlainText(model->getFinalCode(row)); ui->undefArgsCheck->setChecked(model->getUndefinedArgs(row)); ui->langCombo->setCurrentText(model->getLang(row)); + ui->deterministicCheck->setChecked(model->isDeterministic(row)); // Arguments ui->argsList->clear(); @@ -248,6 +255,7 @@ void FunctionsEditor::clearEdits() ui->allDatabasesRadio->setChecked(true); ui->typeCombo->setCurrentIndex(0); ui->langCombo->setCurrentIndex(-1); + ui->deterministicCheck->setChecked(false); } void FunctionsEditor::selectFunction(int row) @@ -374,9 +382,10 @@ void FunctionsEditor::updateModified() bool argDiff = getCurrentArgList() != model->getArguments(row); bool dbDiff = toSet(getCurrentDatabases()) != toSet(model->getDatabases(row)); // QSet to ignore order bool typeDiff = model->getType(row) != getCurrentFunctionType(); + bool deterministicDiff = model->isDeterministic(row) != ui->deterministicCheck->isChecked(); currentModified = (nameDiff || codeDiff || typeDiff || langDiff || undefArgsDiff || allDatabasesDiff || argDiff || dbDiff || - initCodeDiff || finalCodeDiff); + initCodeDiff || finalCodeDiff || deterministicDiff); } updateCurrentFunctionState(); @@ -415,6 +424,7 @@ void FunctionsEditor::updateCurrentFunctionState() ui->mainCodeGroup->setEnabled(langOk); ui->finalCodeGroup->setEnabled(langOk); ui->argsGroup->setEnabled(langOk); + ui->deterministicCheck->setEnabled(langOk); ui->databasesGroup->setEnabled(langOk); ui->nameEdit->setEnabled(langOk); ui->nameLabel->setEnabled(langOk); @@ -624,7 +634,7 @@ QVariant FunctionsEditor::saveSession() bool FunctionsEditor::isUncommitted() const { - return model->isModified(); + return model->isModified() || currentModified; } QString FunctionsEditor::getQuitUncommittedConfirmMessage() const diff --git a/SQLiteStudio3/guiSQLiteStudio/windows/functionseditor.h b/SQLiteStudio3/guiSQLiteStudio/windows/functionseditor.h index 72455d3..d3fcf12 100644 --- a/SQLiteStudio3/guiSQLiteStudio/windows/functionseditor.h +++ b/SQLiteStudio3/guiSQLiteStudio/windows/functionseditor.h @@ -3,7 +3,6 @@ #include "mdichild.h" #include "common/extactioncontainer.h" -#include "services/config.h" #include "services/functionmanager.h" #include #include @@ -20,6 +19,11 @@ class QTreeWidgetItem; class QSyntaxHighlighter; class SelectableDbModel; +CFG_KEY_LIST(FunctionsEditor, QObject::tr("A function editor window"), + CFG_KEY_ENTRY(COMMIT, QKeySequence::Save, QObject::tr("Commit the pending changes")) + CFG_KEY_ENTRY(ROLLBACK, QKeySequence::Cancel, QObject::tr("Rollback the pending changes")) +) + class GUI_API_EXPORT FunctionsEditor : public MdiChild { Q_OBJECT @@ -38,6 +42,7 @@ class GUI_API_EXPORT FunctionsEditor : public MdiChild ARG_MOVE_DOWN, HELP }; + Q_ENUM(Action) enum ToolBar { diff --git a/SQLiteStudio3/guiSQLiteStudio/windows/functionseditor.ui b/SQLiteStudio3/guiSQLiteStudio/windows/functionseditor.ui index 17c3859..2c78fbe 100644 --- a/SQLiteStudio3/guiSQLiteStudio/windows/functionseditor.ui +++ b/SQLiteStudio3/guiSQLiteStudio/windows/functionseditor.ui @@ -78,7 +78,7 @@ - Filter funtions + Filter functions true @@ -228,7 +228,7 @@ false - 0 + 35
    @@ -247,13 +247,19 @@ 0 - + Type: + + + + + + @@ -264,18 +270,19 @@ - - - - + Implementation language: - - + + + + Deterministic + + diff --git a/SQLiteStudio3/guiSQLiteStudio/windows/functionseditormodel.cpp b/SQLiteStudio3/guiSQLiteStudio/windows/functionseditormodel.cpp index 8d6d87c..46ae8d9 100644 --- a/SQLiteStudio3/guiSQLiteStudio/windows/functionseditormodel.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/windows/functionseditormodel.cpp @@ -28,7 +28,7 @@ FunctionsEditorModel::FunctionsEditorModel(QObject *parent) : void FunctionsEditorModel::clearModified() { beginResetModel(); - for (Function* func : functionList) + for (Function*& func : functionList) func->modified = false; listModified = false; @@ -170,6 +170,16 @@ bool FunctionsEditorModel::isScalar(int row) const GETTER(functionList[row]->data.type == FunctionManager::ScriptFunction::SCALAR, false); } +void FunctionsEditorModel::setDeterministic(int row, bool value) +{ + SETTER(functionList[row]->data.deterministic, value); +} + +bool FunctionsEditorModel::isDeterministic(int row) const +{ + GETTER(functionList[row]->data.deterministic, false); +} + QStringList FunctionsEditorModel::getArguments(int row) const { GETTER(functionList[row]->data.arguments, QStringList()); @@ -194,7 +204,7 @@ void FunctionsEditorModel::setData(const QList { beginResetModel(); - for (Function* functionPtr : functionList) + for (Function*& functionPtr : functionList) delete functionPtr; functionList.clear(); @@ -259,7 +269,7 @@ void FunctionsEditorModel::validateNames() StrHash> counter; int row = 0; - for (Function* func : functionList) + for (Function*& func : functionList) { func->valid &= true; counter[func->data.name] << row++; @@ -322,7 +332,7 @@ QVariant FunctionsEditorModel::data(const QModelIndex& index, int role) const void FunctionsEditorModel::init() { - for (ScriptingPlugin* plugin : PLUGINS->getLoadedPlugins()) + for (ScriptingPlugin*& plugin : PLUGINS->getLoadedPlugins()) langToIcon[plugin->getLanguage()] = QIcon(plugin->getIconPath()); } diff --git a/SQLiteStudio3/guiSQLiteStudio/windows/functionseditormodel.h b/SQLiteStudio3/guiSQLiteStudio/windows/functionseditormodel.h index 79f073f..7caf06c 100644 --- a/SQLiteStudio3/guiSQLiteStudio/windows/functionseditormodel.h +++ b/SQLiteStudio3/guiSQLiteStudio/windows/functionseditormodel.h @@ -1,7 +1,6 @@ #ifndef FUNCTIONSEDITORMODEL_H #define FUNCTIONSEDITORMODEL_H -#include "services/config.h" #include "services/functionmanager.h" #include "guiSQLiteStudio_global.h" #include @@ -49,6 +48,8 @@ class GUI_API_EXPORT FunctionsEditorModel : public QAbstractListModel void setType(int row, FunctionManager::ScriptFunction::Type type); bool isAggregate(int row) const; bool isScalar(int row) const; + void setDeterministic(int row, bool value); + bool isDeterministic(int row) const; bool getUndefinedArgs(int row) const; void setUndefinedArgs(int row, bool value); bool getAllDatabases(int row) const; diff --git a/SQLiteStudio3/guiSQLiteStudio/windows/sqliteextensioneditor.cpp b/SQLiteStudio3/guiSQLiteStudio/windows/sqliteextensioneditor.cpp index 4351312..f8dd621 100644 --- a/SQLiteStudio3/guiSQLiteStudio/windows/sqliteextensioneditor.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/windows/sqliteextensioneditor.cpp @@ -9,13 +9,14 @@ #include "uiconfig.h" #include "db/db.h" #include "services/dbmanager.h" -#include "services/notifymanager.h" #include "common/lazytrigger.h" #include "common/compatibility.h" #include #include #include +CFG_KEYS_DEFINE(SqliteExtensionEditor) + SqliteExtensionEditor::SqliteExtensionEditor(QWidget *parent) : MdiChild(parent), ui(new Ui::SqliteExtensionEditor) @@ -36,7 +37,7 @@ bool SqliteExtensionEditor::restoreSessionNextTime() bool SqliteExtensionEditor::isUncommitted() const { - return model->isModified(); + return model->isModified() || currentModified; } QString SqliteExtensionEditor::getQuitUncommittedConfirmMessage() const @@ -67,17 +68,20 @@ QString SqliteExtensionEditor::getTitleForMdiWindow() void SqliteExtensionEditor::createActions() { - createAction(COMMIT, ICONS.COMMIT, tr("Commit all extension changes"), this, SLOT(commit()), ui->toolbar); - createAction(ROLLBACK, ICONS.ROLLBACK, tr("Rollback all extension changes"), this, SLOT(rollback()), ui->toolbar); + createAction(COMMIT, ICONS.COMMIT, tr("Commit all extension changes"), this, SLOT(commit()), ui->toolbar, this); + createAction(ROLLBACK, ICONS.ROLLBACK, tr("Rollback all extension changes"), this, SLOT(rollback()), ui->toolbar, this); ui->toolbar->addSeparator(); - createAction(ADD, ICONS.EXTENSION_ADD, tr("Add new extension"), this, SLOT(newExtension()), ui->toolbar); - createAction(DELETE, ICONS.EXTENSION_DELETE, tr("Remove selected extension"), this, SLOT(deleteExtension()), ui->toolbar); + createAction(ADD, ICONS.EXTENSION_ADD, tr("Add new extension"), this, SLOT(newExtension()), ui->toolbar, this); + createAction(DELETE, ICONS.EXTENSION_DELETE, tr("Remove selected extension"), this, SLOT(deleteExtension()), ui->toolbar, this); ui->toolbar->addSeparator(); - createAction(HELP, ICONS.HELP, tr("Editing extensions manual"), this, SLOT(help()), ui->toolbar); + createAction(HELP, ICONS.HELP, tr("Editing extensions manual"), this, SLOT(help()), ui->toolbar, this); } void SqliteExtensionEditor::setupDefShortcuts() { + // Widget context + setShortcutContext({COMMIT, ROLLBACK}, Qt::WidgetWithChildrenShortcut); + BIND_SHORTCUTS(SqliteExtensionEditor, Action); } QToolBar* SqliteExtensionEditor::getToolBar(int toolbar) const @@ -224,6 +228,13 @@ bool SqliteExtensionEditor::validateExtension(int row) return validateExtension(filePath, initFunc, nullptr, nullptr, new QString); } +bool SqliteExtensionEditor::validateCurrentExtension() +{ + QString filePath = ui->fileEdit->text(); + QString initFunc = ui->initEdit->text(); + return validateExtension(filePath, initFunc, nullptr, nullptr, new QString); +} + bool SqliteExtensionEditor::validateExtension(const QString& filePath, const QString& initFunc, bool* fileOk, bool* initOk, QString* fileError) { bool localFileOk = true; @@ -326,7 +337,7 @@ void SqliteExtensionEditor::deleteExtension() void SqliteExtensionEditor::updateState() { bool modified = model->isModified() || currentModified; - bool valid = model->isValid(); + bool valid = model->isValid() && validateCurrentExtension(); actionMap[COMMIT]->setEnabled(modified && valid); actionMap[ROLLBACK]->setEnabled(modified); diff --git a/SQLiteStudio3/guiSQLiteStudio/windows/sqliteextensioneditor.h b/SQLiteStudio3/guiSQLiteStudio/windows/sqliteextensioneditor.h index 5d81085..8f67415 100644 --- a/SQLiteStudio3/guiSQLiteStudio/windows/sqliteextensioneditor.h +++ b/SQLiteStudio3/guiSQLiteStudio/windows/sqliteextensioneditor.h @@ -17,6 +17,11 @@ class SelectableDbModel; class Db; class LazyTrigger; +CFG_KEY_LIST(SqliteExtensionEditor, QObject::tr("A SQLite extension editor window"), + CFG_KEY_ENTRY(COMMIT, QKeySequence::Save, QObject::tr("Commit the pending changes")) + CFG_KEY_ENTRY(ROLLBACK, QKeySequence::Cancel, QObject::tr("Rollback the pending changes")) +) + class SqliteExtensionEditor : public MdiChild { Q_OBJECT @@ -30,6 +35,7 @@ class SqliteExtensionEditor : public MdiChild DELETE, HELP }; + Q_ENUM(Action) enum ToolBar { @@ -65,6 +71,7 @@ class SqliteExtensionEditor : public MdiChild bool* initOk = nullptr, QString* fileError = nullptr); bool validateExtension(int row); + bool validateCurrentExtension(); bool validateExtension(const QString& filePath, const QString& initFunc, bool* fileOk = nullptr, diff --git a/SQLiteStudio3/guiSQLiteStudio/windows/sqliteextensioneditor.ui b/SQLiteStudio3/guiSQLiteStudio/windows/sqliteextensioneditor.ui index 747aa7f..93e938d 100644 --- a/SQLiteStudio3/guiSQLiteStudio/windows/sqliteextensioneditor.ui +++ b/SQLiteStudio3/guiSQLiteStudio/windows/sqliteextensioneditor.ui @@ -14,6 +14,18 @@ Form + + 0 + + + 0 + + + 0 + + + 0 + diff --git a/SQLiteStudio3/guiSQLiteStudio/windows/sqliteextensioneditormodel.cpp b/SQLiteStudio3/guiSQLiteStudio/windows/sqliteextensioneditormodel.cpp index 6e94a64..832875d 100644 --- a/SQLiteStudio3/guiSQLiteStudio/windows/sqliteextensioneditormodel.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/windows/sqliteextensioneditormodel.cpp @@ -126,7 +126,7 @@ bool SqliteExtensionEditorModel::isValid() const { for (Extension* ext : extensionList) { - if (!ext->valid) + if (ext->modified && !ext->valid) return false; } return true; diff --git a/SQLiteStudio3/guiSQLiteStudio/windows/tablestructuremodel.cpp b/SQLiteStudio3/guiSQLiteStudio/windows/tablestructuremodel.cpp index 41d6ed9..bf8c583 100644 --- a/SQLiteStudio3/guiSQLiteStudio/windows/tablestructuremodel.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/windows/tablestructuremodel.cpp @@ -1,6 +1,8 @@ #include "tablestructuremodel.h" +#include "datagrid/sqlquerymodelcolumn.h" #include "iconmanager.h" #include "common/unused.h" +#include "parser/ast/sqlitecreatetable.h" #include #include #include @@ -45,6 +47,9 @@ QVariant TableStructureModel::data(const QModelIndex& index, int role) const if (createTable->columns.size() <= row) return QVariant(); + if (role == Qt::ToolTipRole) + return getToolTip(row, getHeaderColumn(index.column())); + switch (getHeaderColumn(index.column())) { case TableStructureModel::Columns::NAME: @@ -511,6 +516,98 @@ bool TableStructureModel::isColumnGenerate(SqliteCreateTable::Column* column) co return false; } +QString TableStructureModel::getToolTip(int row, Columns modelColumn) const +{ + static const QString tooltipTpl = "
    %2%3
    "; + + if (row >= createTable->columns.size()) + return QString(); + + SqliteCreateTable::Column* col = createTable->columns[row]; + if (col->constraints.isEmpty() && createTable->constraints.isEmpty()) + return QString(); + + SqliteCreateTable::Column::Constraint::Type lookFor; + SqliteCreateTable::Constraint::Type lookForTableType; + bool tableConstrDefined = false; + switch (modelColumn) + { + case Columns::PK: + lookFor = SqliteCreateTable::Column::Constraint::Type::PRIMARY_KEY; + lookForTableType = SqliteCreateTable::Constraint::Type::PRIMARY_KEY; + tableConstrDefined = true; + break; + case Columns::FK: + lookFor = SqliteCreateTable::Column::Constraint::Type::FOREIGN_KEY; + lookForTableType = SqliteCreateTable::Constraint::Type::FOREIGN_KEY; + tableConstrDefined = true; + break; + case Columns::UNIQUE: + lookFor = SqliteCreateTable::Column::Constraint::Type::UNIQUE; + lookForTableType = SqliteCreateTable::Constraint::Type::UNIQUE; + tableConstrDefined = true; + break; + case Columns::CHECK: + lookFor = SqliteCreateTable::Column::Constraint::Type::CHECK; + // Not defined for Table-level constraint, because it cannot (easily) determin if it's affected by table CHECK. + break; + case Columns::NOTNULL: + lookFor = SqliteCreateTable::Column::Constraint::Type::NOT_NULL; + break; + case Columns::COLLATE: + lookFor = SqliteCreateTable::Column::Constraint::Type::COLLATE; + break; + case Columns::GENERATED: + lookFor = SqliteCreateTable::Column::Constraint::Type::GENERATED; + break; + case Columns::DEFAULT: + lookFor = SqliteCreateTable::Column::Constraint::Type::DEFAULT; + break; + case Columns::NAME: + case Columns::TYPE: + return QString(); + } + + SqliteCreateTable::Column::Constraint* constraint = findFirst( + col->constraints, + [lookFor](SqliteCreateTable::Column::Constraint* constr) -> bool + { + return constr->type == lookFor; + } + ); + + SqliteCreateTable::Constraint* tableConstraint = nullptr; + if (tableConstrDefined) + { + tableConstraint = findFirst( + createTable->constraints, + [lookForTableType](SqliteCreateTable::Constraint* constr) -> bool + { + return constr->type == lookForTableType; + } + ); + } + + if (!constraint && !tableConstraint) + return QString(); + + if (constraint) + { + SqlQueryModelColumn::Constraint* constr = SqlQueryModelColumn::Constraint::create(constraint); + QString tooltip = tooltipTpl.arg(constr->getIcon()->toUrl(), constr->getTypeString(), constr->getDetails()); + delete constr; + return tooltip; + } + + SqlQueryModelColumn::Constraint* constr = SqlQueryModelColumn::Constraint::create(createTable->columns[row]->name, tableConstraint); + if (!constr) + return QString(); + + QString tooltip = tooltipTpl.arg(constr->getIcon()->toUrl(), constr->getTypeString(), constr->getDetails()); + delete constr; + return tooltip; +} + void TableStructureModel::setCreateTable(SqliteCreateTable* value) { beginResetModel(); diff --git a/SQLiteStudio3/guiSQLiteStudio/windows/tablestructuremodel.h b/SQLiteStudio3/guiSQLiteStudio/windows/tablestructuremodel.h index 088a964..d003715 100644 --- a/SQLiteStudio3/guiSQLiteStudio/windows/tablestructuremodel.h +++ b/SQLiteStudio3/guiSQLiteStudio/windows/tablestructuremodel.h @@ -75,6 +75,7 @@ class GUI_API_EXPORT TableStructureModel : public QAbstractTableModel bool isColumnNotNull(SqliteCreateTable::Column* column) const; bool isColumnCollate(SqliteCreateTable::Column* column) const; bool isColumnGenerate(SqliteCreateTable::Column* column) const; + QString getToolTip(int row, TableStructureModel::Columns modelColumn) const; static const constexpr char* mimeType = "application/x-sqlitestudio-tablestructuremodel-row-index"; diff --git a/SQLiteStudio3/guiSQLiteStudio/windows/tablewindow.cpp b/SQLiteStudio3/guiSQLiteStudio/windows/tablewindow.cpp index c9356d8..86f48bf 100644 --- a/SQLiteStudio3/guiSQLiteStudio/windows/tablewindow.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/windows/tablewindow.cpp @@ -2,21 +2,16 @@ #include "ui_tablewindow.h" #include "services/dbmanager.h" #include "services/notifymanager.h" -#include "sqlitestudio.h" #include "common/unused.h" #include "schemaresolver.h" #include "iconmanager.h" -#include "common/intvalidator.h" -#include "common/extlineedit.h" #include "datagrid/sqltablemodel.h" -#include "common/extaction.h" #include "mainwindow.h" #include "tablestructuremodel.h" #include "tableconstraintsmodel.h" #include "dialogs/columndialog.h" #include "dialogs/constraintdialog.h" #include "mdiarea.h" -#include "sqlitesyntaxhighlighter.h" #include "dialogs/newconstraintdialog.h" #include "db/chainexecutor.h" #include "common/widgetcover.h" @@ -37,7 +32,6 @@ #include "themetuner.h" #include "dialogs/importdialog.h" #include "dialogs/populatedialog.h" -#include "datagrid/sqlqueryitem.h" #include "common/dbcombobox.h" #include #include @@ -217,10 +211,10 @@ void TableWindow::createActions() void TableWindow::createStructureActions() { - createAction(REFRESH_STRUCTURE, ICONS.RELOAD, tr("Refresh structure", "table window"), this, SLOT(refreshStructure()), ui->structureToolBar); + createAction(REFRESH_STRUCTURE, ICONS.RELOAD, tr("Refresh structure", "table window"), this, SLOT(refreshStructure()), ui->structureToolBar, ui->structureView); ui->structureToolBar->addSeparator(); - createAction(COMMIT_STRUCTURE, ICONS.COMMIT, tr("Commit structure changes", "table window"), this, SLOT(commitStructure()), ui->structureToolBar); - createAction(ROLLBACK_STRUCTURE, ICONS.ROLLBACK, tr("Rollback structure changes", "table window"), this, SLOT(rollbackStructure()), ui->structureToolBar); + createAction(COMMIT_STRUCTURE, ICONS.COMMIT, tr("Commit structure changes", "table window"), this, SLOT(commitStructure()), ui->structureToolBar, ui->structureView); + createAction(ROLLBACK_STRUCTURE, ICONS.ROLLBACK, tr("Rollback structure changes", "table window"), this, SLOT(rollbackStructure()), ui->structureToolBar, ui->structureView); createAction(ADD_COLUMN, ICONS.TABLE_COLUMN_ADD, tr("Add column", "table window"), this, SLOT(addColumn()), ui->structureToolBar, ui->structureView); createAction(EDIT_COLUMN, ICONS.TABLE_COLUMN_EDIT, tr("Edit column", "table window"), this, SLOT(editColumn()), ui->structureToolBar, ui->structureView); createAction(DEL_COLUMN, ICONS.TABLE_COLUMN_DELETE, tr("Delete column", "table window"), this, SLOT(delColumn()), ui->structureToolBar, ui->structureView); @@ -348,10 +342,10 @@ void TableWindow::executeStructureChanges() MessageListDialog dialog(tr("Following problems will take place while modifying the table.\n" "Would you like to proceed?", "table window")); dialog.setWindowTitle(tr("Table modification", "table window")); - for (const QString& error : tableModifier->getErrors()) + for (QString& error : tableModifier->getErrors()) dialog.addError(error); - for (const QString& warn : tableModifier->getWarnings()) + for (QString& warn : tableModifier->getWarnings()) dialog.addWarning(warn); if (dialog.exec() != QDialog::Accepted) @@ -458,8 +452,9 @@ void TableWindow::setupDefShortcuts() { // Widget context setShortcutContext({ + COMMIT_STRUCTURE, + ROLLBACK_STRUCTURE, REFRESH_STRUCTURE, - REFRESH_INDEXES, REFRESH_TRIGGERS, ADD_COLUMN, EDIT_COLUMN, @@ -567,6 +562,7 @@ void TableWindow::initDbAndTable() ui->constraintsView->setModel(constraintTabModel); connect(ui->withoutRowIdCheck, SIGNAL(clicked()), this, SLOT(withOutRowIdChanged())); + connect(ui->strictTableCheck, SIGNAL(clicked()), this, SLOT(strictChanged())); parseDdl(); updateIndexes(); @@ -614,7 +610,8 @@ void TableWindow::parseDdl() structureModel->setCreateTable(createTable.data()); structureConstraintsModel->setCreateTable(createTable.data()); constraintTabModel->setCreateTable(createTable.data()); - ui->withoutRowIdCheck->setChecked(!createTable->withOutRowId.isNull()); + ui->withoutRowIdCheck->setChecked(createTable->withOutRowId); + ui->strictTableCheck->setChecked(createTable->strict); ui->tableConstraintsView->resizeColumnsToContents(); ui->structureView->resizeColumnsToContents(); ui->constraintsView->resizeColumnsToContents(); @@ -645,7 +642,7 @@ void TableWindow::changeEvent(QEvent *e) QVariant TableWindow::saveSession() { - if (!db || DBLIST->isTemporary(db)) + if (!db || DBLIST->isTemporary(db) || !existingTable) return QVariant(); QHash sessionValue; @@ -681,7 +678,7 @@ bool TableWindow::restoreSession(const QVariant& sessionValue) SchemaResolver resolver(db); if (!resolver.getTables(database).contains(table, Qt::CaseInsensitive)) { - notifyWarn(tr("Could not restore window '%1'', because the table %2 doesn't exist in the database %3.").arg(value["title"].toString(), table, db->getName())); + notifyWarn(tr("Could not restore window '%1', because the table %2 doesn't exist in the database %3.").arg(value["title"].toString(), table, db->getName())); return false; } @@ -759,6 +756,7 @@ void TableWindow::checkIfTableDeleted(const QString& database, const QString& ob if (object.compare(table, Qt::CaseInsensitive) == 0) { dbClosedFinalCleanup(); + MDIAREA->enforceCurrentTaskSelectionAfterWindowClose(); getMdiWindow()->close(); } } @@ -832,6 +830,8 @@ void TableWindow::changesSuccessfullyCommitted() updateNewTableState(); updateWindowTitle(); + emit sessionValueChanged(); + NotifyManager* notifyManager = NotifyManager::getInstance(); if (oldTable.compare(table, Qt::CaseInsensitive) == 0 || oldTable.isEmpty()) { @@ -883,6 +883,8 @@ void TableWindow::rollbackStructure() structureConstraintsModel->setCreateTable(createTable.data()); constraintTabModel->setCreateTable(createTable.data()); ui->tableNameEdit->setText(createTable->table); + ui->withoutRowIdCheck->setChecked(createTable->withOutRowId); + ui->strictTableCheck->setChecked(createTable->strict); updateStructureCommitState(); updateStructureToolbarState(); @@ -1040,6 +1042,26 @@ bool TableWindow::validate(bool skipWarning) } } + if (ui->strictTableCheck->isChecked()) + { + QStringList nonStrictColumns; + for (SqliteCreateTable::Column* column : createTable->columns) + { + if (DataType::isStrict(column->type->name)) + continue; + + nonStrictColumns << column->name; + } + + if (!nonStrictColumns.isEmpty()) + { + notifyError(tr("Following columns have non-strict data type: %1." + " Either disable strict mode of the table, or fix column data types. Valid strict data types are: %2") + .arg(nonStrictColumns.join(", "), DataType::getStrictValueNames().join(", "))); + return false; + } + } + return true; } @@ -1049,7 +1071,8 @@ bool TableWindow::isModified() const (structureConstraintsModel && structureConstraintsModel->isModified()) || (originalCreateTable && (originalCreateTable->table != ui->tableNameEdit->text() || - originalCreateTable->withOutRowId != createTable->withOutRowId) + originalCreateTable->withOutRowId != createTable->withOutRowId || + originalCreateTable->strict != createTable->strict) ) || !existingTable; } @@ -1355,7 +1378,26 @@ void TableWindow::withOutRowIdChanged() if (!createTable) return; - createTable->withOutRowId = ui->withoutRowIdCheck->isChecked() ? QStringLiteral("ROWID") : QString(); + createTable->withOutRowId = ui->withoutRowIdCheck->isChecked(); + updateDdlTab(); + emit modifyStatusChanged(); +} + +void TableWindow::strictChanged() +{ + if (!createTable) + return; + + createTable->strict = ui->strictTableCheck->isChecked(); + if (createTable->strict) + { + for (SqliteCreateTable::Column* column : createTable->columns) + { + column->type->precision = QVariant(); + column->type->scale = QVariant(); + } + } + updateDdlTab(); emit modifyStatusChanged(); } @@ -1401,7 +1443,7 @@ void TableWindow::delIndex() return; DbObjectDialogs dialogs(db, this); - dialogs.dropObject(index); + dialogs.dropObject(DbObjectDialogs::Type::INDEX, index); updateIndexes(); } @@ -1448,7 +1490,7 @@ void TableWindow::delTrigger() return; DbObjectDialogs dialogs(db, this); - dialogs.dropObject(trigger); + dialogs.dropObject(DbObjectDialogs::Type::TRIGGER, trigger); updateTriggers(); } diff --git a/SQLiteStudio3/guiSQLiteStudio/windows/tablewindow.h b/SQLiteStudio3/guiSQLiteStudio/windows/tablewindow.h index fb4d67d..e71162d 100644 --- a/SQLiteStudio3/guiSQLiteStudio/windows/tablewindow.h +++ b/SQLiteStudio3/guiSQLiteStudio/windows/tablewindow.h @@ -30,31 +30,32 @@ namespace Ui { } CFG_KEY_LIST(TableWindow, QObject::tr("Table window"), - CFG_KEY_ENTRY(REFRESH_STRUCTURE, Qt::Key_F5, QObject::tr("Refresh table structure")) - CFG_KEY_ENTRY(ADD_COLUMN, Qt::Key_Insert, QObject::tr("Add new column")) - CFG_KEY_ENTRY(EDIT_COLUMN, Qt::Key_Return, QObject::tr("Edit selected column")) - CFG_KEY_ENTRY(DEL_COLUMN, Qt::Key_Delete, QObject::tr("Delete selected column")) - CFG_KEY_ENTRY(EXPORT, Qt::CTRL + Qt::Key_E, QObject::tr("Export table data")) - CFG_KEY_ENTRY(IMPORT, Qt::CTRL + Qt::Key_I, QObject::tr("Import data to the table")) - CFG_KEY_ENTRY(ADD_TABLE_CONSTRAINT, Qt::Key_Insert, QObject::tr("Add new table constraint")) - CFG_KEY_ENTRY(EDIT_TABLE_CONSTRAINT, Qt::Key_Return, QObject::tr("Edit selected table constraint")) - CFG_KEY_ENTRY(DEL_TABLE_CONSTRAINT, Qt::Key_Delete, QObject::tr("Delete selected table constraint")) - CFG_KEY_ENTRY(REFRESH_INDEXES, Qt::Key_F5, QObject::tr("Refresh table index list")) - CFG_KEY_ENTRY(ADD_INDEX, Qt::Key_Insert, QObject::tr("Add new index")) - CFG_KEY_ENTRY(EDIT_INDEX, Qt::Key_Return, QObject::tr("Edit selected index")) - CFG_KEY_ENTRY(DEL_INDEX, Qt::Key_Delete, QObject::tr("Delete selected index")) - CFG_KEY_ENTRY(REFRESH_TRIGGERS, Qt::Key_F5, QObject::tr("Refresh table trigger list")) - CFG_KEY_ENTRY(ADD_TRIGGER, Qt::Key_Insert, QObject::tr("Add new trigger")) - CFG_KEY_ENTRY(EDIT_TRIGGER, Qt::Key_Return, QObject::tr("Edit selected trigger")) - CFG_KEY_ENTRY(DEL_TRIGGER, Qt::Key_Delete, QObject::tr("Delete selected trigger")) - CFG_KEY_ENTRY(NEXT_TAB, Qt::ALT + Qt::Key_Right, QObject::tr("Go to next tab")) - CFG_KEY_ENTRY(PREV_TAB, Qt::ALT + Qt::Key_Left, QObject::tr("Go to previous tab")) + CFG_KEY_ENTRY(COMMIT_STRUCTURE, QKeySequence::Save, QObject::tr("Commit the table structure")) + CFG_KEY_ENTRY(ROLLBACK_STRUCTURE, QKeySequence::Cancel, QObject::tr("Rollback pending changes in the table structure")) + CFG_KEY_ENTRY(REFRESH_STRUCTURE, Qt::Key_F5, QObject::tr("Refresh table structure")) + CFG_KEY_ENTRY(ADD_COLUMN, Qt::Key_Insert, QObject::tr("Add new column")) + CFG_KEY_ENTRY(EDIT_COLUMN, Qt::Key_Return, QObject::tr("Edit selected column")) + CFG_KEY_ENTRY(DEL_COLUMN, Qt::Key_Delete, QObject::tr("Delete selected column")) + CFG_KEY_ENTRY(EXPORT, Qt::CTRL + Qt::Key_E, QObject::tr("Export table data")) + CFG_KEY_ENTRY(IMPORT, Qt::CTRL + Qt::Key_I, QObject::tr("Import data to the table")) + CFG_KEY_ENTRY(ADD_TABLE_CONSTRAINT, Qt::Key_Insert, QObject::tr("Add new table constraint")) + CFG_KEY_ENTRY(EDIT_TABLE_CONSTRAINT, Qt::Key_Return, QObject::tr("Edit selected table constraint")) + CFG_KEY_ENTRY(DEL_TABLE_CONSTRAINT, Qt::Key_Delete, QObject::tr("Delete selected table constraint")) + CFG_KEY_ENTRY(REFRESH_INDEXES, Qt::Key_F5, QObject::tr("Refresh table index list")) + CFG_KEY_ENTRY(ADD_INDEX, Qt::Key_Insert, QObject::tr("Add new index")) + CFG_KEY_ENTRY(EDIT_INDEX, Qt::Key_Return, QObject::tr("Edit selected index")) + CFG_KEY_ENTRY(DEL_INDEX, Qt::Key_Delete, QObject::tr("Delete selected index")) + CFG_KEY_ENTRY(REFRESH_TRIGGERS, Qt::Key_F5, QObject::tr("Refresh table trigger list")) + CFG_KEY_ENTRY(ADD_TRIGGER, Qt::Key_Insert, QObject::tr("Add new trigger")) + CFG_KEY_ENTRY(EDIT_TRIGGER, Qt::Key_Return, QObject::tr("Edit selected trigger")) + CFG_KEY_ENTRY(DEL_TRIGGER, Qt::Key_Delete, QObject::tr("Delete selected trigger")) + CFG_KEY_ENTRY(NEXT_TAB, Qt::ALT + Qt::Key_Right, QObject::tr("Go to next tab")) + CFG_KEY_ENTRY(PREV_TAB, Qt::ALT + Qt::Key_Left, QObject::tr("Go to previous tab")) ) class GUI_API_EXPORT TableWindow : public MdiChild { - Q_OBJECT - Q_ENUMS(Action) + Q_OBJECT public: enum Action @@ -98,6 +99,7 @@ class GUI_API_EXPORT TableWindow : public MdiChild NEXT_TAB, PREV_TAB }; + Q_ENUM(Action) enum ToolBar { @@ -230,6 +232,7 @@ class GUI_API_EXPORT TableWindow : public MdiChild void constraintsViewDoubleClicked(const QModelIndex &index); void nameChanged(); void withOutRowIdChanged(); + void strictChanged(); void addIndex(); void editCurrentIndex(); void indexViewDoubleClicked(const QModelIndex& idx); diff --git a/SQLiteStudio3/guiSQLiteStudio/windows/tablewindow.ui b/SQLiteStudio3/guiSQLiteStudio/windows/tablewindow.ui index 4ae8bdf..851daf1 100644 --- a/SQLiteStudio3/guiSQLiteStudio/windows/tablewindow.ui +++ b/SQLiteStudio3/guiSQLiteStudio/windows/tablewindow.ui @@ -83,11 +83,24 @@ + + <html><head/><body><p>Enables/disabled the WITHOUT ROWID clause on the table. Such table will no longer have the &quot;rowid&quot; hidden column. For such table an explicit PRIMARY KEY column is mandatory. You can read more details on this in SQLite official documentation.</p></body></html> + WITHOUT ROWID + + + + <html><head/><body><p>Enables/disables the STRICT clause for the table. Such table makes strict verification of data stored in columns against declared data types for these columns. This is similar to how data types are usually enforced in most other database engines. Keep it disabled to use the classical SQLite bahavior (i.e. no data type enforcement). You can find more details in the official SQLite documentation.</p></body></html> + + + STRICT + + + diff --git a/SQLiteStudio3/guiSQLiteStudio/windows/viewwindow.cpp b/SQLiteStudio3/guiSQLiteStudio/windows/viewwindow.cpp index 2181934..44025e5 100644 --- a/SQLiteStudio3/guiSQLiteStudio/windows/viewwindow.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/windows/viewwindow.cpp @@ -6,7 +6,6 @@ #include "services/dbmanager.h" #include "mainwindow.h" #include "mdiarea.h" -#include "sqlitesyntaxhighlighter.h" #include "datagrid/sqlquerymodel.h" #include "common/utils_sql.h" #include "viewmodifier.h" @@ -180,10 +179,13 @@ void ViewWindow::setupDefShortcuts() { // Widget context setShortcutContext({ + COMMIT_QUERY, + ROLLBACK_QUERY, REFRESH_TRIGGERS, ADD_TRIGGER, EDIT_TRIGGER, DEL_TRIGGER, + EXECUTE_QUERY }, Qt::WidgetWithChildrenShortcut); @@ -223,6 +225,7 @@ void ViewWindow::init() ui->queryEdit->setVirtualSqlExpression("CREATE VIEW name AS %1"); ui->queryEdit->setDb(db); + ui->queryEdit->setOpenSaveActionsEnabled(false); connect(dataModel, SIGNAL(executionSuccessful()), this, SLOT(executionSuccessful())); connect(dataModel, SIGNAL(executionFailed(QString)), this, SLOT(executionFailed(QString))); @@ -233,11 +236,12 @@ void ViewWindow::init() connect(ui->triggersList, SIGNAL(itemSelectionChanged()), this, SLOT(updateTriggersState())); connect(ui->triggersList, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(triggerViewDoubleClicked(QModelIndex))); connect(ui->outputColumnsTable, SIGNAL(currentRowChanged(int)), this, SLOT(updateColumnButtons())); - connect(ui->outputColumnsTable->model(), SIGNAL(rowsMoved(const QModelIndex&, int, int, const QModelIndex&, int)), this, SLOT(updateColumnButtons())); - connect(ui->outputColumnsTable->model(), SIGNAL(rowsMoved(const QModelIndex&, int, int, const QModelIndex&, int)), this, SLOT(updateQueryToolbarStatus())); + connect(ui->outputColumnsTable->model(), SIGNAL(rowsMoved(QModelIndex,int,int,QModelIndex,int)), this, SLOT(updateColumnButtons())); + connect(ui->outputColumnsTable->model(), SIGNAL(rowsMoved(QModelIndex,int,int,QModelIndex,int)), this, SLOT(updateQueryToolbarStatus())); connect(ui->outputColumnsTable, SIGNAL(itemChanged(QListWidgetItem*)), this, SLOT(updateQueryToolbarStatus())); - connect(CFG_UI.General.DataTabAsFirstInViews, SIGNAL(changed(const QVariant&)), this, SLOT(updateTabsOrder())); + connect(CFG_UI.General.DataTabAsFirstInViews, SIGNAL(changed(QVariant)), this, SLOT(updateTabsOrder())); connect(CFG_UI.Fonts.DataView, SIGNAL(changed(QVariant)), this, SLOT(updateFont())); + connect(NotifyManager::getInstance(), SIGNAL(objectModified(Db*,QString,QString)), this, SLOT(handleObjectModified(Db*,QString,QString))); structureExecutor = new ChainExecutor(this); connect(structureExecutor, SIGNAL(success(SqlQueryPtr)), this, SLOT(changesSuccessfullyCommitted())); @@ -296,7 +300,7 @@ void ViewWindow::initView() { dataModel->setDb(db); dataModel->setQuery(originalCreateView->select->detokenize()); - dataModel->setView(view); + dataModel->setDatabaseAndView(database, view); ui->dbCombo->setDisabled(true); } ui->queryEdit->setDb(db); @@ -313,6 +317,8 @@ void ViewWindow::initView() refreshTriggers(); + // Disconnect first in case this method is (re)executed upon dependant table changes. + disconnect(db, SIGNAL(dbObjectDeleted(QString,QString,DbObjectType)), this, SLOT(checkIfViewDeleted(QString,QString,DbObjectType))); connect(db, SIGNAL(dbObjectDeleted(QString,QString,DbObjectType)), this, SLOT(checkIfViewDeleted(QString,QString,DbObjectType))); } @@ -325,10 +331,10 @@ void ViewWindow::setupCoverWidget() void ViewWindow::createQueryTabActions() { - createAction(REFRESH_QUERY, ICONS.RELOAD, tr("Refresh the view", "view window"), this, SLOT(refreshView()), ui->queryToolbar); + createAction(REFRESH_QUERY, ICONS.RELOAD, tr("Refresh the view", "view window"), this, SLOT(refreshView()), ui->queryToolbar, ui->queryEdit); ui->queryToolbar->addSeparator(); - createAction(COMMIT_QUERY, ICONS.COMMIT, tr("Commit the view changes", "view window"), this, SLOT(commitView()), ui->queryToolbar); - createAction(ROLLBACK_QUERY, ICONS.ROLLBACK, tr("Rollback the view changes", "view window"), this, SLOT(rollbackView()), ui->queryToolbar); + createAction(COMMIT_QUERY, ICONS.COMMIT, tr("Commit the view changes", "view window"), this, SLOT(commitView()), ui->queryToolbar, ui->queryEdit); + createAction(ROLLBACK_QUERY, ICONS.ROLLBACK, tr("Rollback the view changes", "view window"), this, SLOT(rollbackView()), ui->queryToolbar, ui->queryEdit); ui->queryToolbar->addSeparator(); ui->queryToolbar->addAction(ui->queryEdit->getAction(SqlEditor::FORMAT_SQL)); @@ -344,6 +350,7 @@ void ViewWindow::createQueryTabActions() createAction(DEL_COLUMN, ICONS.TABLE_COLUMN_DELETE, tr("Delete column", "view window"), this, SLOT(delColumn()), ui->queryToolbar); createAction(MOVE_COLUMN_UP, ICONS.MOVE_UP, tr("Move column up", "view window"), this, SLOT(moveColumnUp()), ui->queryToolbar); createAction(MOVE_COLUMN_DOWN, ICONS.MOVE_DOWN, tr("Move column down", "view window"), this, SLOT(moveColumnDown()), ui->queryToolbar); + createAction(EXECUTE_QUERY, QString(), this, SLOT(executeQuery()), this); } void ViewWindow::createTriggersTabActions() @@ -431,8 +438,23 @@ void ViewWindow::refreshView() updateTriggersState(); } -void ViewWindow::commitView(bool skipWarnings) +void ViewWindow::executeQuery() +{ + if (isModified()) + { + if (!actionMap[COMMIT_QUERY]->isEnabled()) + return; + + commitView(false, true); + return; + } + + switchToDataAndReload(); +} + +void ViewWindow::commitView(bool skipWarnings, bool loadDataAfterNextCommit) { + this->loadDataAfterNextCommit = loadDataAfterNextCommit; if (!isModified()) { qWarning() << "Called ViewWindow::commitView(), but isModified() returned false."; @@ -535,6 +557,12 @@ int ViewWindow::getDdlTabIdx() const return ui->tabWidget->indexOf(ui->ddlTab); } +void ViewWindow::switchToDataAndReload() +{ + ui->tabWidget->setCurrentWidget(ui->dataTab); + // Query execution will happen automatically upon changing tab to data tab. +} + void ViewWindow::addTrigger() { DbObjectDialogs dialogs(db, this); @@ -560,7 +588,7 @@ void ViewWindow::deleteTrigger() return; DbObjectDialogs dialogs(db, this); - dialogs.dropObject(trigger); + dialogs.dropObject(DbObjectDialogs::Type::TRIGGER, trigger); refreshTriggers(); } @@ -573,7 +601,7 @@ void ViewWindow::executionSuccessful() void ViewWindow::executionFailed(const QString& errorMessage) { modifyingThisView = false; - notifyError(tr("Could not load data for view %1. Error details: %2").arg(view).arg(errorMessage)); + notifyError(tr("Could not load data for view %1. Error details: %2").arg(view, errorMessage)); } void ViewWindow::tabChanged(int tabIdx) @@ -615,7 +643,8 @@ void ViewWindow::updateQueryToolbarStatus() { bool modified = isModified(); bool queryOk = ui->queryEdit->isSyntaxChecked() && !ui->queryEdit->haveErrors(); - actionMap[COMMIT_QUERY]->setEnabled(modified && queryOk); + bool dbOk = ui->dbCombo->currentIndex() > -1; + actionMap[COMMIT_QUERY]->setEnabled(modified && queryOk && dbOk); actionMap[ROLLBACK_QUERY]->setEnabled(modified && existingView); actionMap[REFRESH_QUERY]->setEnabled(existingView); } @@ -635,6 +664,8 @@ void ViewWindow::changesSuccessfullyCommitted() QString oldView = view; view = createView->view; + emit sessionValueChanged(); + if (!existingView) notifyInfo(tr("View '%1' was committed successfully.").arg(view)); else if (oldView.compare(view, Qt::CaseInsensitive) == 0) @@ -649,6 +680,12 @@ void ViewWindow::changesSuccessfullyCommitted() updateAfterInit(); DBTREE->refreshSchema(db); + + if (loadDataAfterNextCommit) + { + loadDataAfterNextCommit = false; + switchToDataAndReload(); + } } void ViewWindow::changesFailedToCommit(int errorCode, const QString& errorText) @@ -720,6 +757,7 @@ void ViewWindow::checkIfViewDeleted(const QString& database, const QString& obje if (object.compare(view, Qt::CaseInsensitive) == 0) { dbClosedFinalCleanup(); + MDIAREA->enforceCurrentTaskSelectionAfterWindowClose(); getMdiWindow()->close(); } } @@ -1075,11 +1113,28 @@ void ViewWindow::updateFont() void ViewWindow::dbChanged() { - disconnect(db, SIGNAL(dbObjectDeleted(QString,QString,DbObjectType)), this, SLOT(checkIfViewDeleted(QString,QString,DbObjectType))); + if (db) + disconnect(db, SIGNAL(dbObjectDeleted(QString,QString,DbObjectType)), this, SLOT(checkIfViewDeleted(QString,QString,DbObjectType))); db = ui->dbCombo->currentDb(); dataModel->setDb(db); ui->queryEdit->setDb(db); - connect(db, SIGNAL(dbObjectDeleted(QString,QString,DbObjectType)), this, SLOT(checkIfViewDeleted(QString,QString,DbObjectType))); + if (db) + connect(db, SIGNAL(dbObjectDeleted(QString,QString,DbObjectType)), this, SLOT(checkIfViewDeleted(QString,QString,DbObjectType))); +} + +void ViewWindow::handleObjectModified(Db* db, const QString& database, const QString& object) +{ + UNUSED(db); + UNUSED(database); + if (object.compare(view, Qt::CaseInsensitive) != 0) + return; + +// TODO uncomment below when dbnames are supported +// if (this->database != database) +// return; + + view = object; + refreshView(); } diff --git a/SQLiteStudio3/guiSQLiteStudio/windows/viewwindow.h b/SQLiteStudio3/guiSQLiteStudio/windows/viewwindow.h index a2ef4f7..642c11a 100644 --- a/SQLiteStudio3/guiSQLiteStudio/windows/viewwindow.h +++ b/SQLiteStudio3/guiSQLiteStudio/windows/viewwindow.h @@ -21,18 +21,20 @@ class ViewModifier; class SqlViewModel; CFG_KEY_LIST(ViewWindow, QObject::tr("A view window"), - CFG_KEY_ENTRY(REFRESH_TRIGGERS, Qt::Key_F5, QObject::tr("Refresh view trigger list")) - CFG_KEY_ENTRY(ADD_TRIGGER, Qt::Key_Insert, QObject::tr("Add new trigger")) - CFG_KEY_ENTRY(EDIT_TRIGGER, Qt::Key_Return, QObject::tr("Edit selected trigger")) - CFG_KEY_ENTRY(DEL_TRIGGER, Qt::Key_Delete, QObject::tr("Delete selected trigger")) - CFG_KEY_ENTRY(NEXT_TAB, Qt::ALT + Qt::Key_Right, QObject::tr("Go to next tab")) - CFG_KEY_ENTRY(PREV_TAB, Qt::ALT + Qt::Key_Left, QObject::tr("Go to previous tab")) + CFG_KEY_ENTRY(COMMIT_QUERY, QKeySequence::Save, QObject::tr("Commit the view's query")) + CFG_KEY_ENTRY(ROLLBACK_QUERY, QKeySequence::Cancel, QObject::tr("Rollback pending changes in the view's query")) + CFG_KEY_ENTRY(REFRESH_TRIGGERS, Qt::Key_F5, QObject::tr("Refresh view trigger list")) + CFG_KEY_ENTRY(EXECUTE_QUERY, Qt::Key_F9, QObject::tr("Execute the view's query")) + CFG_KEY_ENTRY(ADD_TRIGGER, Qt::Key_Insert, QObject::tr("Add new trigger")) + CFG_KEY_ENTRY(EDIT_TRIGGER, Qt::Key_Return, QObject::tr("Edit selected trigger")) + CFG_KEY_ENTRY(DEL_TRIGGER, Qt::Key_Delete, QObject::tr("Delete selected trigger")) + CFG_KEY_ENTRY(NEXT_TAB, Qt::ALT + Qt::Key_Right, QObject::tr("Go to next tab")) + CFG_KEY_ENTRY(PREV_TAB, Qt::ALT + Qt::Key_Left, QObject::tr("Go to previous tab")) ) class GUI_API_EXPORT ViewWindow : public MdiChild { - Q_OBJECT - Q_ENUMS(Action) + Q_OBJECT public: enum Action @@ -54,8 +56,10 @@ class GUI_API_EXPORT ViewWindow : public MdiChild DEL_TRIGGER, // All tabs NEXT_TAB, - PREV_TAB + PREV_TAB, + EXECUTE_QUERY }; + Q_ENUM(Action) enum ToolBar { @@ -117,6 +121,7 @@ class GUI_API_EXPORT ViewWindow : public MdiChild int getDataTabIdx() const; int getQueryTabIdx() const; int getDdlTabIdx() const; + void switchToDataAndReload(); Db* db = nullptr; QString database; @@ -137,10 +142,12 @@ class GUI_API_EXPORT ViewWindow : public MdiChild QAction* outputColumnsCheck = nullptr; QAction* outputColumnsSeparator = nullptr; bool tabsMoving = false; + bool loadDataAfterNextCommit = false; private slots: void refreshView(); - void commitView(bool skipWarnings = false); + void executeQuery(); + void commitView(bool skipWarnings = false, bool loadDataAfterNextCommit = false); void rollbackView(); void addTrigger(); void editTrigger(); @@ -168,6 +175,7 @@ class GUI_API_EXPORT ViewWindow : public MdiChild void triggerViewDoubleClicked(const QModelIndex& idx); void updateFont(); void dbChanged(); + void handleObjectModified(Db* db, const QString& database, const QString& object); public slots: void refreshTriggers(); diff --git a/SQLiteStudio3/lang.tcl b/SQLiteStudio3/lang.tcl index 52661f3..cafe27a 100755 --- a/SQLiteStudio3/lang.tcl +++ b/SQLiteStudio3/lang.tcl @@ -1,9 +1,9 @@ #!/usr/bin/env tclsh proc usage {} { - puts "$::argv0 (add|remove) " - puts "$::argv0 add_plugin " - puts "$::argv0 (update|release|status)" + puts "$::argv0 add_lang " + puts "$::argv0 add_plugin " + puts "$::argv0 status" } lassign $argv op lang @@ -40,6 +40,16 @@ proc countstrings {data search} { set count } +proc findLangs {} { + set langs [list] + foreach f [find coreSQLiteStudio "*.ts"] { + set lang [lindex [regexp -inline {[^_]*_(\w+(\w+)?).ts$} $f] 1] + if {$lang == ""} continue + lappend langs $lang + } + return $langs +} + proc scanLangs {} { set langs [dict create] foreach f [find .. "*.ts"] { @@ -64,211 +74,173 @@ proc scanLangs {} { return $langs } -switch -- $op { - "update" - "release" { - if {$argc != 1} { - usage - exit 1 +proc finalTsFix {f} { + set fd [open $f r] + set data [read $fd] + close $fd + + set parts [lsort -unique [regexp -all -inline -- {>[^<]*\"[^<]*<} $data]] + foreach part $parts { + set fixedPart [string map [list \" """] $part] + set data [string trim [string map [list $part $fixedPart] $data]] } + + set data [string trim [string map [list ' "'" " " " "] $data]] + + set fd [open $f w+] + puts $fd $data + close $fd +} - set files [list] - foreach p [list coreSQLiteStudio guiSQLiteStudio sqlitestudio sqlitestudiocli] { - lappend files $p/$p.pro - } +switch -- $op { + "update" { + if {$argc != 1} { + usage + exit 1 + } - foreach d [glob -directory ../Plugins -tails -nocomplain *] { - if {![file isdirectory ../Plugins/$d]} continue - lappend files ../Plugins/$d/$d.pro - } - - foreach f $files { - catch { - if {$op == "update"} { - exec lupdate $f - } else { - #exec lrelease $f $::ERR_NULL - exec lrelease $f + set files [list] + foreach p [list coreSQLiteStudio guiSQLiteStudio sqlitestudio sqlitestudiocli] { + lappend files $p/$p.pro + } + + foreach d [glob -directory ../Plugins -tails -nocomplain *] { + if {![file isdirectory ../Plugins/$d]} continue + lappend files ../Plugins/$d/$d.pro } - } res - if {$op == "release"} { - puts $res - } else { - foreach line [split $res \n] { - if {[string first Q_OBJECT $line] > -1} { - puts $line - } - if {[regexp -- {^.*\w+\.ts.*$} $line]} { - puts -nonewline [lindex [regexp -inline -- {^.*"([\w\/\\\.]+\.ts)".*$} $line] 1] - puts -nonewline ": " - } - if {[regexp -- {^.*\d+[^\d]+\(\d+[^\d]+\d+.*\).*$} $line]} { - puts -nonewline [lindex [regexp -inline -- {\S+.*} $line] 0] - set new [lindex [regexp -inline -- {^.*\d+[^\d]+(\d+)[^\d]+\d+.*$} $line] 1] - if {$new > 0} { - puts -nonewline " <- !!!!!!!!!!!" + + foreach f $files { + catch { + puts "updating $f" + exec lupdate $f + } res + # foreach line [split $res \n] { + # if {[string first Q_OBJECT $line] > -1} { + # puts $line + # } + # if {[regexp -- {^.*\w+\.ts.*$} $line]} { + # puts -nonewline [lindex [regexp -inline -- {^.*"([\w\/\\\.]+\.ts)".*$} $line] 1] + # puts -nonewline ": " + # } + # if {[regexp -- {^.*\d+[^\d]+\(\d+[^\d]+\d+.*\).*$} $line]} { + # puts -nonewline [lindex [regexp -inline -- {\S+.*} $line] 0] + # set new [lindex [regexp -inline -- {^.*\d+[^\d]+(\d+)[^\d]+\d+.*$} $line] 1] + # if {$new > 0} { + # puts -nonewline " <- !!!!!!!!!!!" + # } + # puts "" + # } + # } + } + + set tsFiles [list] + foreach d [list coreSQLiteStudio guiSQLiteStudio sqlitestudio sqlitestudiocli] { + lappend tsFiles {*}[glob -directory $d/translations -nocomplain *.ts] + } + + foreach d [glob -directory ../Plugins -tails -nocomplain *] { + if {![file isdirectory ../Plugins/$d/translations]} continue + lappend tsFiles {*}[glob -directory ../Plugins/$d/translations -nocomplain *.ts] + } + + foreach f $tsFiles { + if {[catch { + puts "formatting $f" + exec xmllint --format -o $f $f + finalTsFix $f + } res]} { + puts $res } - puts "" - } } - } - } } "status" { - set langs [scanLangs] - foreach k [dict keys $langs] { - set lang [dict get $langs $k] - set tr [dict get $lang translated] - set untr [dict get $lang untranslated] - set all [expr {$tr + $untr}] - if {$all == 0} continue - - set perc [expr {round(double($tr)/$all * 1000)/10.0}] - - set lang [string tolower $lang] - puts "$k - ${perc}% ($tr / $all)" - } + set langs [scanLangs] + foreach k [dict keys $langs] { + set lang [dict get $langs $k] + set tr [dict get $lang translated] + set untr [dict get $lang untranslated] + set all [expr {$tr + $untr}] + if {$all == 0} continue + + set perc [expr {round(double($tr)/$all * 1000)/10.0}] + + set lang [string tolower $lang] + puts "$lang - ${perc}% ($tr / $all)" + } } "add_plugin" { - if {$argc != 2} { - usage - exit 1 - } - - set plug [lindex $argv 1] - set plugPro ../Plugins/$plug/$plug.pro - if {![file exists $plugPro]} { - puts "$plugPro does not exist." - exit 1 - } - - set fd [open ../Plugins/CsvImport/CsvImport.pro r] - set data [read $fd] - close $fd - - set langs [list] - set trData "\nTRANSLATIONS += " - foreach {all lang} [regexp -inline -all -- {CsvImport_(\w+)\.ts} $data] { - append trData "\\\n\t\t${plug}_$lang.ts" - lappend langs $lang - } - append trData "\n" - - set fd [open $plugPro a+] - puts $fd $trData - close $fd - puts "Added translation languages for plugin $plug:\n[join $langs \n]" + if {$argc != 2} { + usage + exit 1 + } + + set plug [lindex $argv 1] + set plugPro ../Plugins/$plug/$plug.pro + if {![file exists $plugPro]} { + puts "$plugPro does not exist." + exit 1 + } + + if {![file exists ../Plugins/$plug/translations]} { + file mkdir ../Plugins/$plug/translations + } + + set plugTs ../Plugins/$plug/translations/$plug.ts + if {![file exists $plugTs]} { + catch { + exec lupdate-pro $plugPro -ts $plugTs + } + if {![file exists $plugTs]} { + puts "Failed to create $plugTs." + exit 1 + } + } + + foreach lang [findLangs] { + set plugTs ../Plugins/$plug/translations/${plug}_${lang}.ts + if {![file exists $plugTs]} { + catch {exec lupdate-pro $plugPro -ts $plugTs} + } + } } - "add" - "remove" { - if {$argc != 2} { - usage - exit 1 - } - - foreach p [list coreSQLiteStudio guiSQLiteStudio sqlitestudio sqlitestudiocli] { - # pro file - set fd [open $p/$p.pro r] - set data [read $fd] - close $fd - - set ts "translations/${p}_$lang.ts" - if {$op == "add" && [string first $ts $data] == -1} { - set data [string map [list "TRANSLATIONS += " "TRANSLATIONS += $ts \\\n\t\t"] $data] - } elseif {$op == "remove" && [string first $ts $data] > -1} { - regsub -- "$ts\\s*(\\\\)?\n\\s*" $data "" data - } else { - continue - } - - set fd [open $p/$p.pro w+] - puts $fd $data - close $fd - - puts "Updated $p.pro" - } - - foreach p [list coreSQLiteStudio guiSQLiteStudio sqlitestudio sqlitestudiocli] { - # qrc file - set fd [open $p/$p.qrc r] - set data [read $fd] - close $fd - - set qm "translations/${p}_$lang.qm" - if {$op == "add" && [string first $qm $data] == -1} { - set data [string map [list "" "\n $qm"] $data] - } elseif {$op == "remove" && [string first $qm $data] > -1} { - regsub -- "\\s*$qm\\s*\n" $data "" data - } else { - continue - } - - set fd [open $p/$p.qrc w+] - puts $fd $data - close $fd - - puts "Updated $p.qrc" - } - - foreach d [glob -directory ../Plugins -tails -nocomplain *] { - if {![file isdirectory ../Plugins/$d]} continue - - # pro file - set fd [open ../Plugins/$d/$d.pro r] - set data [read $fd] - close $fd + "add_lang" { + if {$argc != 2} { + usage + exit 1 + } - if {[string first "TRANSLATIONS +=" $data] == -1} continue + foreach d [list coreSQLiteStudio guiSQLiteStudio sqlitestudio sqlitestudiocli] { + set pro $d/$d.pro + set ts "$d/translations/${d}_$lang.ts" + if {![file exists $ts]} { + catch {exec lupdate-pro $pro -ts $ts} + } + } - set ts "${d}_$lang.ts" - if {$op == "add" && [string first $ts $data] == -1} { - set data [string map [list "TRANSLATIONS += " "TRANSLATIONS += $ts \\\n\t\t"] $data] - } elseif {$op == "remove" && [string first $ts $data] > -1} { - regsub -- "$ts\\s*(\\\\)?\n\\s*" $data "" data - } else { - continue - } - - set fd [open ../Plugins/$d/$d.pro w+] - puts $fd $data - close $fd - - puts "Updated $d.pro" + foreach d [glob -directory ../Plugins -tails -nocomplain *] { + if {![file isdirectory ../Plugins/$d]} continue + set pro ../Plugins/$d/$d.pro + set ts "../Plugins/$d/translations/${d}_$lang.ts" + if {![file exists $ts]} { + catch {exec lupdate-pro $pro -ts $ts} + } + } } - - foreach d [glob -directory ../Plugins -tails -nocomplain *] { - # qrc file - if {![file isdirectory ../Plugins/$d]} continue - if {[file exists ../Plugins/$d/$d.qrc]} { - set fname ../Plugins/$d/$d.qrc - set fnameOnly $d.qrc - } elseif {[file exists ../Plugins/$d/[string tolower $d].qrc]} { - set fname ../Plugins/$d/[string tolower $d].qrc - set fnameOnly [string tolower $d].qrc - } else { - continue - } - - set fd [open $fname r] - set data [read $fd] - close $fd - - if {[string first "" $data] == -1} continue - - set qm "${d}_$lang.qm" - if {$op == "add" && [string first $qm $data] == -1} { - set data [string map [list "" "\n $qm"] $data] - } elseif {$op == "remove" && [string first $qm $data] > -1} { - regsub -- "\\s*$qm\\s*\n" $data "" data - } else { - continue - } - - set fd [open $fname w+] - puts $fd $data - close $fd - - puts "Updated $fnameOnly" + "validate" { + set ok 0 + set fail 0 + foreach f [find .. "*.ts"] { + catch {exec xmllint --noout --schema ts.xsd $f} out + set parts [split $out " "] + if {[lindex $parts 1] != "validates"} { + puts "$f: $out" + incr fail + } else { + incr ok + } + } + puts "Ok: $ok, Failed: $fail" } - } default { usage } diff --git a/SQLiteStudio3/plugins.pri b/SQLiteStudio3/plugins.pri index 0894050..2b08db5 100644 --- a/SQLiteStudio3/plugins.pri +++ b/SQLiteStudio3/plugins.pri @@ -1,4 +1,4 @@ -include($$PWD/dirs.pri) +include($$PWD/common.pri) CONFIG += c++17 plugin @@ -95,7 +95,7 @@ macx: { out_file = $$join(out_file_parts) lib_name_parts = lib $$1 .dylib lib_name = $$join(lib_name_parts) - QMAKE_POST_LINK += install_name_tool -change $$lib_name @loader_path/../PlugIns/$$lib_name $$out_file + QMAKE_POST_LINK += "install_name_tool -change $$lib_name @loader_path/../PlugIns/$$lib_name \"$$out_file\";" export(QMAKE_POST_LINK) linker_flag_parts = -l $$1 @@ -109,7 +109,7 @@ macx: { out_file = $$join(out_file_parts) lib_name_parts = lib $$1 .dylib lib_name = $$join(lib_name_parts) - QMAKE_POST_LINK += install_name_tool -change $$lib_name @loader_path/../Frameworks/$$lib_name $$out_file + QMAKE_POST_LINK += "install_name_tool -change $$lib_name @loader_path/../Frameworks/$$lib_name \"$$out_file\";" export(QMAKE_POST_LINK) linker_flag_parts = -l $$1 diff --git a/SQLiteStudio3/sqlitestudio/installscript.qs b/SQLiteStudio3/sqlitestudio/installscript.qs deleted file mode 100644 index 8e6b84b..0000000 --- a/SQLiteStudio3/sqlitestudio/installscript.qs +++ /dev/null @@ -1,64 +0,0 @@ -function Component() -{ - if (installer.value("os") === "win") { - component.loaded.connect(this, addOptionsCheckBoxForm); - component.fileTypes = ['db', 'db3', 'sqlite', 'sqlite3', 'sdb', 's3db']; - } -} - -addOptionsCheckBoxForm = function() -{ - // don't show when updating or uninstalling - if (installer.isInstaller()) { - installer.addWizardPageItem(component, "OptionsCheckBoxForm", QInstaller.TargetDirectory); - var form = component.userInterface("OptionsCheckBoxForm"); - - var assocCheckBox = form.RegisterFileCheckBox; - assocCheckBox.text = assocCheckBox.text + component.fileTypes.join(', '); - - var startMenuCheckbox = form.CreateStartMenuEntry; - startMenuCheckbox.stateChanged.connect(this, function() { - installer.setDefaultPageVisible(QInstaller.StartMenuSelection, startMenuCheckbox.checked); - }); - } -} - -Component.prototype.createOperations = function() -{ - // call default implementation to actually install the app - component.createOperations(); - - if (installer.value("os") === "win") { - var form = component.userInterface("OptionsCheckBoxForm"); - var isRegisterFileChecked = form.RegisterFileCheckBox.checked; - var isStartMenuEntryChecked = form.CreateStartMenuEntry.checked; - var forAllUsersChecked = form.CreateStartMenuEntry.ForAllUsers.checked; - - var executable = "@TargetDir@/SQLiteStudio.exe"; - - var linkPrefix = "@UserStartMenuProgramsPath@"; - if (forAllUsersChecked) { - linkPrefix = "@AllUsersStartMenuProgramsPath@"; - } - - if (isRegisterFileChecked) { - component.addOperation("CreateShortcut", executable, linkPrefix + "/@StartMenuDir@/SQLiteStudio.lnk", - "workingDirectory=@TargetDir@", "iconPath=@TargetDir@/SQLiteStudio.exe", - "iconId=0", "description=SQLiteStudio"); - } - - if (isRegisterFileChecked) { - component.fileTypes.forEach(function(fileType) { - component.addOperation( - "RegisterFileType", - fileType, - executable + " '%1'", - "SQLite database", - "application/octet-stream", - executable + ",0", - "ProgId=SQLiteStudio." + fileType - ); - }); - } - } -} diff --git a/SQLiteStudio3/sqlitestudio/main.cpp b/SQLiteStudio3/sqlitestudio/main.cpp index ae16132..c3b09e0 100644 --- a/SQLiteStudio3/sqlitestudio/main.cpp +++ b/SQLiteStudio3/sqlitestudio/main.cpp @@ -13,13 +13,10 @@ #include "multieditor/multieditortime.h" #include "multieditor/multieditordate.h" #include "multieditor/multieditorbool.h" -#include "uiconfig.h" -#include "sqlitestudio.h" #include "uidebug.h" #include "completionhelper.h" #include "services/updatemanager.h" #include "guiSQLiteStudio_global.h" -#include "coreSQLiteStudio_global.h" #include "log.h" #include "qio.h" #include "translations.h" @@ -27,6 +24,7 @@ #include "dialogs/triggerdialog.h" #include "services/pluginmanager.h" #include "singleapplication/singleapplication.h" +#include "services/impl/configimpl.h" #include #include #include @@ -113,6 +111,12 @@ void initHighDpi() #endif } +bool shouldAllowMultipleSessions() +{ + QVariant allowMultipleSessionsValue = Config::getSettings()->value(MainWindow::ALLOW_MULTIPLE_SESSIONS_SETTING); + return allowMultipleSessionsValue.isValid() && allowMultipleSessionsValue.toBool(); +} + int main(int argc, char *argv[]) { initHighDpi(); @@ -120,13 +124,9 @@ int main(int argc, char *argv[]) QCoreApplication::setOrganizationName("SalSoft"); QCoreApplication::setApplicationVersion(SQLITESTUDIO->getVersionString()); - SingleApplication a(argc, argv, true, SingleApplication::ExcludeAppPath|SingleApplication::ExcludeAppVersion); - - QSettings sett; - QVariant allowMultipleSessionsValue = sett.value(MainWindow::ALLOW_MULTIPLE_SESSIONS_SETTING); - bool allowMultipleSessions = allowMultipleSessionsValue.isValid() && allowMultipleSessionsValue.toBool(); + SingleApplication a(argc, argv, true, SingleApplication::ExcludeAppPath|SingleApplication::ExcludeAppVersion|SingleApplication::User); - if (!allowMultipleSessions && a.isSecondary()) { + if (!shouldAllowMultipleSessions() && a.isSecondary()) { #ifdef Q_OS_WIN AllowSetForegroundWindow(DWORD( a.primaryPid())); #endif @@ -162,6 +162,7 @@ int main(int argc, char *argv[]) MultiEditorDate::staticInit(); MultiEditorBool::staticInit(); TriggerDialog::staticInit(); + SqlEditor::staticInit(); MainWindow* mainWin = MAINWINDOW; @@ -190,7 +191,7 @@ int main(int argc, char *argv[]) if (dialog.exec() == QDialog::Accepted) setDefaultLanguage(dialog.getSelectedLang()); - QProcess::startDetached(a.applicationFilePath(), QStringList()); + QProcess::startDetached(qApp->arguments().at(0), qApp->arguments().mid(1)); return 0; } diff --git a/SQLiteStudio3/sqlitestudio/register_file_types.ui b/SQLiteStudio3/sqlitestudio/register_file_types.ui deleted file mode 100644 index 24d896d..0000000 --- a/SQLiteStudio3/sqlitestudio/register_file_types.ui +++ /dev/null @@ -1,64 +0,0 @@ - - - OptionsCheckBoxForm - - - - 0 - 0 - 400 - 300 - - - - Form - - - - 20 - - - - - Register following file extensions with SQLiteStudio: - - - - true - - - - - - - Create Start menu entry - - - true - - - - - - Create for current user only - - - true - - - - - - - Create for all users in the system - - - - - - - - - - - diff --git a/SQLiteStudio3/sqlitestudio/sqlitestudio.pro b/SQLiteStudio3/sqlitestudio/sqlitestudio.pro index bdb2876..dc73271 100644 --- a/SQLiteStudio3/sqlitestudio/sqlitestudio.pro +++ b/SQLiteStudio3/sqlitestudio/sqlitestudio.pro @@ -6,7 +6,7 @@ QT += core gui widgets network -include($$PWD/../dirs.pri) +include($$PWD/../common.pri) include($$PWD/../utils.pri) OBJECTS_DIR = $$OBJECTS_DIR/sqlitestudio @@ -42,17 +42,6 @@ LIBS += -lcoreSQLiteStudio -lguiSQLiteStudio SOURCES += main.cpp \ singleapplication/singleapplication.cpp -TRANSLATIONS += translations/sqlitestudio_ro_RO.ts \ - translations/sqlitestudio_de.ts \ - translations/sqlitestudio_it.ts \ - translations/sqlitestudio_zh_CN.ts \ - translations/sqlitestudio_sk.ts \ - translations/sqlitestudio_ru.ts \ - translations/sqlitestudio_pt_BR.ts \ - translations/sqlitestudio_fr.ts \ - translations/sqlitestudio_es.ts \ - translations/sqlitestudio_pl.ts - win32 { RC_FILE = windows.rc msvc:LIBS += User32.lib @@ -87,6 +76,17 @@ HEADERS += \ + + + + + + + + + + + diff --git a/SQLiteStudio3/sqlitestudio/sqlitestudio.qrc b/SQLiteStudio3/sqlitestudio/sqlitestudio.qrc index 6431227..7646d2b 100644 --- a/SQLiteStudio3/sqlitestudio/sqlitestudio.qrc +++ b/SQLiteStudio3/sqlitestudio/sqlitestudio.qrc @@ -1,15 +1 @@ - - - translations/sqlitestudio_ro_RO.qm - translations/sqlitestudio_de.qm - translations/sqlitestudio_pl.qm - translations/sqlitestudio_ru.qm - translations/sqlitestudio_fr.qm - translations/sqlitestudio_sk.qm - translations/sqlitestudio_zh_CN.qm - - - - - - + diff --git a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio.ts b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio.ts new file mode 100644 index 0000000..8f62df5 --- /dev/null +++ b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio.ts @@ -0,0 +1,87 @@ + + + + + QObject + + + GUI interface to SQLiteStudio, a SQLite manager. + + + + + Enables debug messages in console (accessible with F12). + + + + + Redirects debug messages into standard output (forces debug mode). + + + + + Redirects debug messages into given file (forces debug mode). + + + + + log file + + + + + Enables Lemon parser debug messages for SQL code assistant. + + + + + Enables debugging of every single SQL query being sent to any database. + + + + + Limits SQL query messages to only the given <database>. + + + + + database + + + + + Enables debugging of SQLiteStudio's query executor. + + + + + Lists plugins installed in the SQLiteStudio and quits. + + + + + Points to the master configuration file. Read manual at wiki page for more details. + + + + + SQLiteStudio settings file + + + + + file + + + + + Database file to open + + + + + Select configuration directory + + + + diff --git a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_af_ZA.ts b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_af_ZA.ts new file mode 100644 index 0000000..8e0b089 --- /dev/null +++ b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_af_ZA.ts @@ -0,0 +1,87 @@ + + + + + QObject + + + GUI interface to SQLiteStudio, a SQLite manager. + GUI interface to SQLiteStudio, a SQLite manager. + + + + Enables debug messages in console (accessible with F12). + Enables debug messages in console (accessible with F12). + + + + Redirects debug messages into standard output (forces debug mode). + Redirects debug messages into standard output (forces debug mode). + + + + Redirects debug messages into given file (forces debug mode). + Redirects debug messages into given file (forces debug mode). + + + + log file + log file + + + + Enables Lemon parser debug messages for SQL code assistant. + Enables Lemon parser debug messages for SQL code assistant. + + + + Enables debugging of every single SQL query being sent to any database. + Enables debugging of every single SQL query being sent to any database. + + + + Limits SQL query messages to only the given <database>. + Limits SQL query messages to only the given <database>. + + + + database + database + + + + Enables debugging of SQLiteStudio's query executor. + Enables debugging of SQLiteStudio's query executor. + + + + Lists plugins installed in the SQLiteStudio and quits. + Lists plugins installed in the SQLiteStudio and quits. + + + + Points to the master configuration file. Read manual at wiki page for more details. + Points to the master configuration file. Read manual at wiki page for more details. + + + + SQLiteStudio settings file + SQLiteStudio settings file + + + + file + file + + + + Database file to open + Database file to open + + + + Select configuration directory + Select configuration directory + + + diff --git a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_ar_SA.ts b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_ar_SA.ts new file mode 100644 index 0000000..01c3a3a --- /dev/null +++ b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_ar_SA.ts @@ -0,0 +1,87 @@ + + + + + QObject + + + GUI interface to SQLiteStudio, a SQLite manager. + GUI interface to SQLiteStudio, a SQLite manager. + + + + Enables debug messages in console (accessible with F12). + Enables debug messages in console (accessible with F12). + + + + Redirects debug messages into standard output (forces debug mode). + Redirects debug messages into standard output (forces debug mode). + + + + Redirects debug messages into given file (forces debug mode). + Redirects debug messages into given file (forces debug mode). + + + + log file + log file + + + + Enables Lemon parser debug messages for SQL code assistant. + Enables Lemon parser debug messages for SQL code assistant. + + + + Enables debugging of every single SQL query being sent to any database. + Enables debugging of every single SQL query being sent to any database. + + + + Limits SQL query messages to only the given <database>. + Limits SQL query messages to only the given <database>. + + + + database + database + + + + Enables debugging of SQLiteStudio's query executor. + Enables debugging of SQLiteStudio's query executor. + + + + Lists plugins installed in the SQLiteStudio and quits. + Lists plugins installed in the SQLiteStudio and quits. + + + + Points to the master configuration file. Read manual at wiki page for more details. + Points to the master configuration file. Read manual at wiki page for more details. + + + + SQLiteStudio settings file + SQLiteStudio settings file + + + + file + file + + + + Database file to open + Database file to open + + + + Select configuration directory + Select configuration directory + + + diff --git a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_ca_ES.ts b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_ca_ES.ts new file mode 100644 index 0000000..6a437b3 --- /dev/null +++ b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_ca_ES.ts @@ -0,0 +1,87 @@ + + + + + QObject + + + GUI interface to SQLiteStudio, a SQLite manager. + GUI interface to SQLiteStudio, a SQLite manager. + + + + Enables debug messages in console (accessible with F12). + Enables debug messages in console (accessible with F12). + + + + Redirects debug messages into standard output (forces debug mode). + Redirects debug messages into standard output (forces debug mode). + + + + Redirects debug messages into given file (forces debug mode). + Redirects debug messages into given file (forces debug mode). + + + + log file + log file + + + + Enables Lemon parser debug messages for SQL code assistant. + Enables Lemon parser debug messages for SQL code assistant. + + + + Enables debugging of every single SQL query being sent to any database. + Enables debugging of every single SQL query being sent to any database. + + + + Limits SQL query messages to only the given <database>. + Limits SQL query messages to only the given <database>. + + + + database + database + + + + Enables debugging of SQLiteStudio's query executor. + Enables debugging of SQLiteStudio's query executor. + + + + Lists plugins installed in the SQLiteStudio and quits. + Lists plugins installed in the SQLiteStudio and quits. + + + + Points to the master configuration file. Read manual at wiki page for more details. + Points to the master configuration file. Read manual at wiki page for more details. + + + + SQLiteStudio settings file + SQLiteStudio settings file + + + + file + file + + + + Database file to open + Database file to open + + + + Select configuration directory + Select configuration directory + + + diff --git a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_cs_CZ.ts b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_cs_CZ.ts new file mode 100644 index 0000000..07e018c --- /dev/null +++ b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_cs_CZ.ts @@ -0,0 +1,87 @@ + + + + + QObject + + + GUI interface to SQLiteStudio, a SQLite manager. + GUI interface to SQLiteStudio, a SQLite manager. + + + + Enables debug messages in console (accessible with F12). + Enables debug messages in console (accessible with F12). + + + + Redirects debug messages into standard output (forces debug mode). + Redirects debug messages into standard output (forces debug mode). + + + + Redirects debug messages into given file (forces debug mode). + Redirects debug messages into given file (forces debug mode). + + + + log file + log file + + + + Enables Lemon parser debug messages for SQL code assistant. + Enables Lemon parser debug messages for SQL code assistant. + + + + Enables debugging of every single SQL query being sent to any database. + Enables debugging of every single SQL query being sent to any database. + + + + Limits SQL query messages to only the given <database>. + Limits SQL query messages to only the given <database>. + + + + database + database + + + + Enables debugging of SQLiteStudio's query executor. + Enables debugging of SQLiteStudio's query executor. + + + + Lists plugins installed in the SQLiteStudio and quits. + Lists plugins installed in the SQLiteStudio and quits. + + + + Points to the master configuration file. Read manual at wiki page for more details. + Points to the master configuration file. Read manual at wiki page for more details. + + + + SQLiteStudio settings file + SQLiteStudio settings file + + + + file + file + + + + Database file to open + Database file to open + + + + Select configuration directory + Select configuration directory + + + diff --git a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_da_DK.ts b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_da_DK.ts new file mode 100644 index 0000000..abf6784 --- /dev/null +++ b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_da_DK.ts @@ -0,0 +1,87 @@ + + + + + QObject + + + GUI interface to SQLiteStudio, a SQLite manager. + GUI interface to SQLiteStudio, a SQLite manager. + + + + Enables debug messages in console (accessible with F12). + Enables debug messages in console (accessible with F12). + + + + Redirects debug messages into standard output (forces debug mode). + Redirects debug messages into standard output (forces debug mode). + + + + Redirects debug messages into given file (forces debug mode). + Redirects debug messages into given file (forces debug mode). + + + + log file + log file + + + + Enables Lemon parser debug messages for SQL code assistant. + Enables Lemon parser debug messages for SQL code assistant. + + + + Enables debugging of every single SQL query being sent to any database. + Enables debugging of every single SQL query being sent to any database. + + + + Limits SQL query messages to only the given <database>. + Limits SQL query messages to only the given <database>. + + + + database + database + + + + Enables debugging of SQLiteStudio's query executor. + Enables debugging of SQLiteStudio's query executor. + + + + Lists plugins installed in the SQLiteStudio and quits. + Lists plugins installed in the SQLiteStudio and quits. + + + + Points to the master configuration file. Read manual at wiki page for more details. + Points to the master configuration file. Read manual at wiki page for more details. + + + + SQLiteStudio settings file + SQLiteStudio settings file + + + + file + file + + + + Database file to open + Database file to open + + + + Select configuration directory + Select configuration directory + + + diff --git a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_de.qm b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_de.qm deleted file mode 100644 index b319573..0000000 Binary files a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_de.qm and /dev/null differ diff --git a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_de.ts b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_de.ts deleted file mode 100644 index a65829c..0000000 --- a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_de.ts +++ /dev/null @@ -1,88 +0,0 @@ - - - - - QObject - - - GUI interface to SQLiteStudio, a SQLite manager. - GUI Schnittstelle zu SQLiteStudio, ein SQLite Manager. - - - - Enables debug messages in console (accessible with F12). - Aktiviert Debug-Meldungen in der Konsole (erreichbar über F12). - - - - Redirects debug messages into standard output (forces debug mode). - Leitet Debug-Meldungen in den Standardausgabekanal um (erzwingt den Debugmodus). - - - - Redirects debug messages into given file (forces debug mode). - Leitet Debug-Meldungen in die angegebene Datei um (erzwingt den Debugmodus). - - - - log file - Logdatei - - - - Enables Lemon parser debug messages for SQL code assistant. - Aktiviert Lemon Parser Debug-Meldungen für den SQL Codeassistenten. - - - - Enables debugging of every single SQL query being sent to any database. - Aktiviert das Debugging für jede SQL Abfrage, die an eine beliebige Datenbank gesendet wurde. - - - - Limits SQL query messages to only the given <database>. - Wird <database> bei Ausgabe der Meldung in die aktuelle Datenbankbezeichnung umgewandelt? - Begrenzt SQL Abfragemeldungen auf folgende Datenbank: <database>. - - - - database - Datenbank - - - - Enables debugging of SQLiteStudio's query executor. - - - - - Lists plugins installed in the SQLiteStudio and quits. - Was wird hier beendet? - Listet die in SQLiteStudio installierten Plugins auf und beendet. - - - - Points to the master configuration file. Read manual at wiki page for more details. - - - - - SQLiteStudio settings file - - - - - file - Datei - - - - Database file to open - Zu öffnende Datenbankdatei - - - Error - Fehler - - - diff --git a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_de_DE.ts b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_de_DE.ts new file mode 100644 index 0000000..f1d5036 --- /dev/null +++ b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_de_DE.ts @@ -0,0 +1,87 @@ + + + + + QObject + + + GUI interface to SQLiteStudio, a SQLite manager. + GUI Schnittstelle zu SQLiteStudio, ein SQLite Manager. + + + + Enables debug messages in console (accessible with F12). + Aktiviert Debug-Meldungen in der Konsole (erreichbar über F12). + + + + Redirects debug messages into standard output (forces debug mode). + Leitet Debug-Meldungen in den Standardausgabekanal um (erzwingt den Debugmodus). + + + + Redirects debug messages into given file (forces debug mode). + Leitet Debug-Meldungen in die angegebene Datei um (erzwingt den Debugmodus). + + + + log file + Logdatei + + + + Enables Lemon parser debug messages for SQL code assistant. + Aktiviert Lemon Parser Debug-Meldungen für den SQL Codeassistenten. + + + + Enables debugging of every single SQL query being sent to any database. + Aktiviert das Debugging für jede SQL Abfrage, die an eine beliebige Datenbank gesendet wurde. + + + + Limits SQL query messages to only the given <database>. + Begrenzt SQL Abfragemeldungen auf folgende Datenbank: <database>. + + + + database + Datenbank + + + + Enables debugging of SQLiteStudio's query executor. + Enables debugging of SQLiteStudio's query executor. + + + + Lists plugins installed in the SQLiteStudio and quits. + Listet die in SQLiteStudio installierten Plugins auf und beendet. + + + + Points to the master configuration file. Read manual at wiki page for more details. + Points to the master configuration file. Read manual at wiki page for more details. + + + + SQLiteStudio settings file + SQLiteStudio Einstellungsdatei + + + + file + Datei + + + + Database file to open + Zu öffnende Datenbankdatei + + + + Select configuration directory + Konfigurationsverzeichnis auswählen + + + diff --git a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_el_GR.ts b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_el_GR.ts new file mode 100644 index 0000000..e795650 --- /dev/null +++ b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_el_GR.ts @@ -0,0 +1,87 @@ + + + + + QObject + + + GUI interface to SQLiteStudio, a SQLite manager. + GUI interface to SQLiteStudio, a SQLite manager. + + + + Enables debug messages in console (accessible with F12). + Enables debug messages in console (accessible with F12). + + + + Redirects debug messages into standard output (forces debug mode). + Redirects debug messages into standard output (forces debug mode). + + + + Redirects debug messages into given file (forces debug mode). + Redirects debug messages into given file (forces debug mode). + + + + log file + log file + + + + Enables Lemon parser debug messages for SQL code assistant. + Enables Lemon parser debug messages for SQL code assistant. + + + + Enables debugging of every single SQL query being sent to any database. + Enables debugging of every single SQL query being sent to any database. + + + + Limits SQL query messages to only the given <database>. + Limits SQL query messages to only the given <database>. + + + + database + database + + + + Enables debugging of SQLiteStudio's query executor. + Enables debugging of SQLiteStudio's query executor. + + + + Lists plugins installed in the SQLiteStudio and quits. + Lists plugins installed in the SQLiteStudio and quits. + + + + Points to the master configuration file. Read manual at wiki page for more details. + Points to the master configuration file. Read manual at wiki page for more details. + + + + SQLiteStudio settings file + SQLiteStudio settings file + + + + file + file + + + + Database file to open + Database file to open + + + + Select configuration directory + Select configuration directory + + + diff --git a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_en_US.ts b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_en_US.ts new file mode 100644 index 0000000..c54a2af --- /dev/null +++ b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_en_US.ts @@ -0,0 +1,87 @@ + + + + + QObject + + + GUI interface to SQLiteStudio, a SQLite manager. + GUI interface to SQLiteStudio, a SQLite manager. + + + + Enables debug messages in console (accessible with F12). + Enables debug messages in console (accessible with F12). + + + + Redirects debug messages into standard output (forces debug mode). + Redirects debug messages into standard output (forces debug mode). + + + + Redirects debug messages into given file (forces debug mode). + Redirects debug messages into given file (forces debug mode). + + + + log file + log file + + + + Enables Lemon parser debug messages for SQL code assistant. + Enables Lemon parser debug messages for SQL code assistant. + + + + Enables debugging of every single SQL query being sent to any database. + Enables debugging of every single SQL query being sent to any database. + + + + Limits SQL query messages to only the given <database>. + Limits SQL query messages to only the given <database>. + + + + database + database + + + + Enables debugging of SQLiteStudio's query executor. + Enables debugging of SQLiteStudio's query executor. + + + + Lists plugins installed in the SQLiteStudio and quits. + Lists plugins installed in the SQLiteStudio and quits. + + + + Points to the master configuration file. Read manual at wiki page for more details. + Points to the master configuration file. Read manual at wiki page for more details. + + + + SQLiteStudio settings file + SQLiteStudio settings file + + + + file + file + + + + Database file to open + Database file to open + + + + Select configuration directory + Select configuration directory + + + diff --git a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_es.qm b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_es.qm deleted file mode 100644 index 9dad8df..0000000 Binary files a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_es.qm and /dev/null differ diff --git a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_es.ts b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_es.ts deleted file mode 100644 index ff56801..0000000 --- a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_es.ts +++ /dev/null @@ -1,82 +0,0 @@ - - - - - QObject - - - GUI interface to SQLiteStudio, a SQLite manager. - - - - - Enables debug messages in console (accessible with F12). - - - - - Redirects debug messages into standard output (forces debug mode). - - - - - Redirects debug messages into given file (forces debug mode). - - - - - log file - - - - - Enables Lemon parser debug messages for SQL code assistant. - - - - - Enables debugging of every single SQL query being sent to any database. - - - - - Limits SQL query messages to only the given <database>. - - - - - database - - - - - Enables debugging of SQLiteStudio's query executor. - - - - - Lists plugins installed in the SQLiteStudio and quits. - - - - - Points to the master configuration file. Read manual at wiki page for more details. - - - - - SQLiteStudio settings file - - - - - file - - - - - Database file to open - - - - diff --git a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_es_ES.ts b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_es_ES.ts new file mode 100644 index 0000000..e073410 --- /dev/null +++ b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_es_ES.ts @@ -0,0 +1,87 @@ + + + + + QObject + + + GUI interface to SQLiteStudio, a SQLite manager. + Interfaz GUI para SQLiteStudio, un gestor de SQLite. + + + + Enables debug messages in console (accessible with F12). + Habilita mensajes de depuración en consola (accesible con F12). + + + + Redirects debug messages into standard output (forces debug mode). + Redirige mensajes de depuración a salida estándar (fuerza el modo de depuración). + + + + Redirects debug messages into given file (forces debug mode). + Redirige los mensajes de depuración en un archivo determinado (fuerza el modo de depuración). + + + + log file + archivo log + + + + Enables Lemon parser debug messages for SQL code assistant. + Activa los mensajes de depuración de Lemon para el asistente de código SQL. + + + + Enables debugging of every single SQL query being sent to any database. + Permite la depuración de cada consulta SQL que se envía a cualquier base de datos. + + + + Limits SQL query messages to only the given <database>. + Limita los mensajes de consulta SQL a sólo la <database> dada. + + + + database + base de datos + + + + Enables debugging of SQLiteStudio's query executor. + Habilita la depuración del ejecutor de consultas de SQLiteStudio. + + + + Lists plugins installed in the SQLiteStudio and quits. + Lista plugins instalados en SQLiteStudio y cierra la ventana. + + + + Points to the master configuration file. Read manual at wiki page for more details. + Apunta al archivo de configuración maestro. Lee el manual en la página wiki para más detalles. + + + + SQLiteStudio settings file + Archivo de configuración de SQLiteStudio + + + + file + archivo + + + + Database file to open + Archivo de base de datos a abrir + + + + Select configuration directory + Elegir directorio de configuración + + + diff --git a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_fa_IR.ts b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_fa_IR.ts new file mode 100644 index 0000000..4d45909 --- /dev/null +++ b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_fa_IR.ts @@ -0,0 +1,87 @@ + + + + + QObject + + + GUI interface to SQLiteStudio, a SQLite manager. + GUI interface to SQLiteStudio, a SQLite manager. + + + + Enables debug messages in console (accessible with F12). + Enables debug messages in console (accessible with F12). + + + + Redirects debug messages into standard output (forces debug mode). + Redirects debug messages into standard output (forces debug mode). + + + + Redirects debug messages into given file (forces debug mode). + Redirects debug messages into given file (forces debug mode). + + + + log file + log file + + + + Enables Lemon parser debug messages for SQL code assistant. + Enables Lemon parser debug messages for SQL code assistant. + + + + Enables debugging of every single SQL query being sent to any database. + Enables debugging of every single SQL query being sent to any database. + + + + Limits SQL query messages to only the given <database>. + Limits SQL query messages to only the given <database>. + + + + database + database + + + + Enables debugging of SQLiteStudio's query executor. + Enables debugging of SQLiteStudio's query executor. + + + + Lists plugins installed in the SQLiteStudio and quits. + Lists plugins installed in the SQLiteStudio and quits. + + + + Points to the master configuration file. Read manual at wiki page for more details. + Points to the master configuration file. Read manual at wiki page for more details. + + + + SQLiteStudio settings file + SQLiteStudio settings file + + + + file + file + + + + Database file to open + Database file to open + + + + Select configuration directory + Select configuration directory + + + diff --git a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_fi_FI.ts b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_fi_FI.ts new file mode 100644 index 0000000..119d04c --- /dev/null +++ b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_fi_FI.ts @@ -0,0 +1,87 @@ + + + + + QObject + + + GUI interface to SQLiteStudio, a SQLite manager. + GUI interface to SQLiteStudio, a SQLite manager. + + + + Enables debug messages in console (accessible with F12). + Enables debug messages in console (accessible with F12). + + + + Redirects debug messages into standard output (forces debug mode). + Redirects debug messages into standard output (forces debug mode). + + + + Redirects debug messages into given file (forces debug mode). + Redirects debug messages into given file (forces debug mode). + + + + log file + log file + + + + Enables Lemon parser debug messages for SQL code assistant. + Enables Lemon parser debug messages for SQL code assistant. + + + + Enables debugging of every single SQL query being sent to any database. + Enables debugging of every single SQL query being sent to any database. + + + + Limits SQL query messages to only the given <database>. + Limits SQL query messages to only the given <database>. + + + + database + database + + + + Enables debugging of SQLiteStudio's query executor. + Enables debugging of SQLiteStudio's query executor. + + + + Lists plugins installed in the SQLiteStudio and quits. + Lists plugins installed in the SQLiteStudio and quits. + + + + Points to the master configuration file. Read manual at wiki page for more details. + Points to the master configuration file. Read manual at wiki page for more details. + + + + SQLiteStudio settings file + SQLiteStudio settings file + + + + file + file + + + + Database file to open + Database file to open + + + + Select configuration directory + Select configuration directory + + + diff --git a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_fr.qm b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_fr.qm deleted file mode 100644 index de3c6d6..0000000 Binary files a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_fr.qm and /dev/null differ diff --git a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_fr.ts b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_fr.ts deleted file mode 100644 index 087d5b8..0000000 --- a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_fr.ts +++ /dev/null @@ -1,86 +0,0 @@ - - - - - QObject - - - GUI interface to SQLiteStudio, a SQLite manager. - Interface GUI de SQLiteStudio, un outil pour SQLite. - - - - Enables debug messages in console (accessible with F12). - Messages de déboguage dans la console (accessible avec F12). - - - - Redirects debug messages into standard output (forces debug mode). - Messages de déboguage redirigés vers sortie standard (mode déboguage forcé). - - - - Redirects debug messages into given file (forces debug mode). - Messages de déboguage redirigés vers un fichier (mode déboguage forcé). - - - - log file - fichier log - - - - Enables Lemon parser debug messages for SQL code assistant. - Message de déboguage avec l’analyseur Lemon pour un assistant code SQL. - - - - Enables debugging of every single SQL query being sent to any database. - Déboguage pour chaque requête SQL envoyée à toute base de données. - - - - Limits SQL query messages to only the given <database>. - Limite les messages de la requête SQL à la <database>. - - - - database - Base de données - - - - Enables debugging of SQLiteStudio's query executor. - Déboguage de l'exécuteur de requêtes de SQLiteStudio. - - - - Lists plugins installed in the SQLiteStudio and quits. - Liste les plugins installés dans SQLiteStudio et quitte. - - - - Points to the master configuration file. Read manual at wiki page for more details. - - - - - SQLiteStudio settings file - - - - - file - Fichier - - - - Database file to open - Fichier de la base de données à ouvrir - - - Error - Erreur - - - diff --git a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_fr_FR.ts b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_fr_FR.ts new file mode 100644 index 0000000..50a0889 --- /dev/null +++ b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_fr_FR.ts @@ -0,0 +1,87 @@ + + + + + QObject + + + GUI interface to SQLiteStudio, a SQLite manager. + Interface GUI de SQLiteStudio, un outil pour SQLite. + + + + Enables debug messages in console (accessible with F12). + Messages de déboguage dans la console (accessible avec F12). + + + + Redirects debug messages into standard output (forces debug mode). + Messages de déboguage redirigés vers sortie standard (mode déboguage forcé). + + + + Redirects debug messages into given file (forces debug mode). + Messages de déboguage redirigés vers un fichier (mode déboguage forcé). + + + + log file + fichier log + + + + Enables Lemon parser debug messages for SQL code assistant. + Message de déboguage avec l’analyseur Lemon pour un assistant code SQL. + + + + Enables debugging of every single SQL query being sent to any database. + Déboguage pour chaque requête SQL envoyée à toute base de données. + + + + Limits SQL query messages to only the given <database>. + Limite les messages de la requête SQL à la <database>. + + + + database + Base de données + + + + Enables debugging of SQLiteStudio's query executor. + Active le débogage de SQLiteStudio l'exécuteur de requête. + + + + Lists plugins installed in the SQLiteStudio and quits. + Liste les plugins installés dans SQLiteStudio et quitte. + + + + Points to the master configuration file. Read manual at wiki page for more details. + Pointe vers le fichier de configuration maître. Lisez le manuel sur la page wiki pour plus de détails. + + + + SQLiteStudio settings file + Fichier de paramètres SQLiteStudio + + + + file + Fichier + + + + Database file to open + Fichier de la base de données à ouvrir + + + + Select configuration directory + Sélectionnez le répertoire de configuration + + + diff --git a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_he_IL.ts b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_he_IL.ts new file mode 100644 index 0000000..0dcf173 --- /dev/null +++ b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_he_IL.ts @@ -0,0 +1,87 @@ + + + + + QObject + + + GUI interface to SQLiteStudio, a SQLite manager. + מנשק משתמש גרפי SQLiteStudio, תכנת ניהול SQLite. + + + + Enables debug messages in console (accessible with F12). + אפשור הודעות ניפוי תקלים בעמדת־הבקרה (נגיש באמצעות מקש F12). + + + + Redirects debug messages into standard output (forces debug mode). + הפנית הודעות ניפוי תקלים לפלט תקני (אילוץ מצב ניפוי תקלים). + + + + Redirects debug messages into given file (forces debug mode). + הפנית הודעות ניפוי תקלים לקובץ נתון (אילוץ מצב ניפוי תקלים). + + + + log file + קובץ יומן + + + + Enables Lemon parser debug messages for SQL code assistant. + אפשור הודעות ניפוי תקלים ניתוח תחביר Lemon לסייען קוד SQL. + + + + Enables debugging of every single SQL query being sent to any database. + אפשור ניפוי תקלים לכל שאילתת SQL שנשלחת למסד נתונים כלשהו. + + + + Limits SQL query messages to only the given <database>. + הגבלת הודעות שאילתות SQL למסד הנתונים הנתון בלבד. + + + + database + מסד נתונים + + + + Enables debugging of SQLiteStudio's query executor. + אפשור ניפוי תקלים מריץ השאילתות של SQLiteStudio. + + + + Lists plugins installed in the SQLiteStudio and quits. + הצגת רשימת מתקעים מותקנים ב־SQLiteStudio ויציאה. + + + + Points to the master configuration file. Read manual at wiki page for more details. + הפניה לקובץ התצורה הראשי. פרטים נוספים, ניתן למצוא במדריך למשתמש בעמוד הויקי. + + + + SQLiteStudio settings file + קובץ הגדרות SQLiteStudio + + + + file + קובץ + + + + Database file to open + קובץ מסד נתונים לפתיחה + + + + Select configuration directory + בחירת מחיצת תצור + + + diff --git a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_hu_HU.ts b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_hu_HU.ts new file mode 100644 index 0000000..1d0d851 --- /dev/null +++ b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_hu_HU.ts @@ -0,0 +1,87 @@ + + + + + QObject + + + GUI interface to SQLiteStudio, a SQLite manager. + GUI interface to SQLiteStudio, a SQLite manager. + + + + Enables debug messages in console (accessible with F12). + Enables debug messages in console (accessible with F12). + + + + Redirects debug messages into standard output (forces debug mode). + Redirects debug messages into standard output (forces debug mode). + + + + Redirects debug messages into given file (forces debug mode). + Redirects debug messages into given file (forces debug mode). + + + + log file + log file + + + + Enables Lemon parser debug messages for SQL code assistant. + Enables Lemon parser debug messages for SQL code assistant. + + + + Enables debugging of every single SQL query being sent to any database. + Enables debugging of every single SQL query being sent to any database. + + + + Limits SQL query messages to only the given <database>. + Limits SQL query messages to only the given <database>. + + + + database + database + + + + Enables debugging of SQLiteStudio's query executor. + Enables debugging of SQLiteStudio's query executor. + + + + Lists plugins installed in the SQLiteStudio and quits. + Lists plugins installed in the SQLiteStudio and quits. + + + + Points to the master configuration file. Read manual at wiki page for more details. + Points to the master configuration file. Read manual at wiki page for more details. + + + + SQLiteStudio settings file + SQLiteStudio settings file + + + + file + file + + + + Database file to open + Database file to open + + + + Select configuration directory + Select configuration directory + + + diff --git a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_it.qm b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_it.qm deleted file mode 100644 index 9dad8df..0000000 Binary files a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_it.qm and /dev/null differ diff --git a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_it.ts b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_it.ts deleted file mode 100644 index ef01351..0000000 --- a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_it.ts +++ /dev/null @@ -1,82 +0,0 @@ - - - - - QObject - - - GUI interface to SQLiteStudio, a SQLite manager. - - - - - Enables debug messages in console (accessible with F12). - - - - - Redirects debug messages into standard output (forces debug mode). - - - - - Redirects debug messages into given file (forces debug mode). - - - - - log file - - - - - Enables Lemon parser debug messages for SQL code assistant. - - - - - Enables debugging of every single SQL query being sent to any database. - - - - - Limits SQL query messages to only the given <database>. - - - - - database - - - - - Enables debugging of SQLiteStudio's query executor. - - - - - Lists plugins installed in the SQLiteStudio and quits. - - - - - Points to the master configuration file. Read manual at wiki page for more details. - - - - - SQLiteStudio settings file - - - - - file - - - - - Database file to open - - - - diff --git a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_it_IT.ts b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_it_IT.ts new file mode 100644 index 0000000..cfbc90e --- /dev/null +++ b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_it_IT.ts @@ -0,0 +1,87 @@ + + + + + QObject + + + GUI interface to SQLiteStudio, a SQLite manager. + Interfaccia GUI per SQLiteStudio, un gestore SQLite. + + + + Enables debug messages in console (accessible with F12). + Abilita i messaggi di debug nella console (accessibile con F12). + + + + Redirects debug messages into standard output (forces debug mode). + Reindirizza i messaggi di debug nello standard output (forza la modalità di debug). + + + + Redirects debug messages into given file (forces debug mode). + Reindirizza i messaggi di debug nel file specificato (forza la modalità di debug). + + + + log file + file di log + + + + Enables Lemon parser debug messages for SQL code assistant. + Abilita i messaggi di debug dell'analizzatore Lemon per l'assistente di codice SQL. + + + + Enables debugging of every single SQL query being sent to any database. + Abilita il debug di ogni singola query SQL inviata a qualsiasi database. + + + + Limits SQL query messages to only the given <database>. + Limita i messaggi di query SQL solamente per lo specificato <database>. + + + + database + database + + + + Enables debugging of SQLiteStudio's query executor. + Abilita il debug di SQLiteStudio's query executor. + + + + Lists plugins installed in the SQLiteStudio and quits. + Elenca i plugin installati in SQLiteStudio ed esce. + + + + Points to the master configuration file. Read manual at wiki page for more details. + Punta al file di configurazione principale. Leggi il manuale alla pagina wiki per maggiori dettagli. + + + + SQLiteStudio settings file + File impostazioni SQLiteStudio + + + + file + file + + + + Database file to open + File database da aprire + + + + Select configuration directory + Seleziona la cartella della configurazione + + + diff --git a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_ja_JP.ts b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_ja_JP.ts new file mode 100644 index 0000000..568d724 --- /dev/null +++ b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_ja_JP.ts @@ -0,0 +1,87 @@ + + + + + QObject + + + GUI interface to SQLiteStudio, a SQLite manager. + SQLiteStudioへの GUI インターフェイス、SQLiteマネージャー。 + + + + Enables debug messages in console (accessible with F12). + コンソール(F12でアクセス可能) でデバッグメッセージを有効にします。 + + + + Redirects debug messages into standard output (forces debug mode). + 標準出力にデバッグメッセージをリダイレクトします(デバッグモードを強制します)。 + + + + Redirects debug messages into given file (forces debug mode). + 標準出力にデバッグメッセージをリダイレクトします(デバッグモードを強制します)。 + + + + log file + ログファイル + + + + Enables Lemon parser debug messages for SQL code assistant. + SQL補助のためレモンパーサーデバッグメッセージを有効にします。 + + + + Enables debugging of every single SQL query being sent to any database. + 任意のデータベースに送信されるすべての SQLクエリのデバッグを有効にします。 + + + + Limits SQL query messages to only the given <database>. + SQLクエリメッセージを与えられた <database>だけに制限します。 + + + + database + データベース + + + + Enables debugging of SQLiteStudio's query executor. + SQLiteStudioのクエリデバッグを有効にします。 + + + + Lists plugins installed in the SQLiteStudio and quits. + SQLiteStudio にインストールされているプラグインを一覧表示して終了します。 + + + + Points to the master configuration file. Read manual at wiki page for more details. + マスター設定ファイルの詳細については、wikiページのマニュアルをご覧ください。 + + + + SQLiteStudio settings file + SQLiteStudio設定ファイル + + + + file + ファイル + + + + Database file to open + 開くデータベースファイル + + + + Select configuration directory + 設定ファイルの保存先を選択してください + + + diff --git a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_kaa.ts b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_kaa.ts new file mode 100644 index 0000000..644c2a3 --- /dev/null +++ b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_kaa.ts @@ -0,0 +1,87 @@ + + + + + QObject + + + GUI interface to SQLiteStudio, a SQLite manager. + GUI interface to SQLiteStudio, a SQLite manager. + + + + Enables debug messages in console (accessible with F12). + Enables debug messages in console (accessible with F12). + + + + Redirects debug messages into standard output (forces debug mode). + Redirects debug messages into standard output (forces debug mode). + + + + Redirects debug messages into given file (forces debug mode). + Redirects debug messages into given file (forces debug mode). + + + + log file + log file + + + + Enables Lemon parser debug messages for SQL code assistant. + Enables Lemon parser debug messages for SQL code assistant. + + + + Enables debugging of every single SQL query being sent to any database. + Enables debugging of every single SQL query being sent to any database. + + + + Limits SQL query messages to only the given <database>. + Limits SQL query messages to only the given <database>. + + + + database + database + + + + Enables debugging of SQLiteStudio's query executor. + Enables debugging of SQLiteStudio's query executor. + + + + Lists plugins installed in the SQLiteStudio and quits. + Lists plugins installed in the SQLiteStudio and quits. + + + + Points to the master configuration file. Read manual at wiki page for more details. + Points to the master configuration file. Read manual at wiki page for more details. + + + + SQLiteStudio settings file + SQLiteStudio settings file + + + + file + file + + + + Database file to open + Database file to open + + + + Select configuration directory + Select configuration directory + + + diff --git a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_ko_KR.ts b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_ko_KR.ts new file mode 100644 index 0000000..cfe06df --- /dev/null +++ b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_ko_KR.ts @@ -0,0 +1,87 @@ + + + + + QObject + + + GUI interface to SQLiteStudio, a SQLite manager. + GUI interface to SQLiteStudio, a SQLite manager. + + + + Enables debug messages in console (accessible with F12). + Enables debug messages in console (accessible with F12). + + + + Redirects debug messages into standard output (forces debug mode). + Redirects debug messages into standard output (forces debug mode). + + + + Redirects debug messages into given file (forces debug mode). + Redirects debug messages into given file (forces debug mode). + + + + log file + 로그 파일 + + + + Enables Lemon parser debug messages for SQL code assistant. + Enables Lemon parser debug messages for SQL code assistant. + + + + Enables debugging of every single SQL query being sent to any database. + Enables debugging of every single SQL query being sent to any database. + + + + Limits SQL query messages to only the given <database>. + Limits SQL query messages to only the given <database>. + + + + database + 데이터베이스 + + + + Enables debugging of SQLiteStudio's query executor. + Enables debugging of SQLiteStudio's query executor. + + + + Lists plugins installed in the SQLiteStudio and quits. + Lists plugins installed in the SQLiteStudio and quits. + + + + Points to the master configuration file. Read manual at wiki page for more details. + Points to the master configuration file. Read manual at wiki page for more details. + + + + SQLiteStudio settings file + SQLiteStudio settings file + + + + file + 파일 + + + + Database file to open + Database file to open + + + + Select configuration directory + Select configuration directory + + + diff --git a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_nl_NL.ts b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_nl_NL.ts new file mode 100644 index 0000000..45890c9 --- /dev/null +++ b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_nl_NL.ts @@ -0,0 +1,87 @@ + + + + + QObject + + + GUI interface to SQLiteStudio, a SQLite manager. + GUI interface to SQLiteStudio, a SQLite manager. + + + + Enables debug messages in console (accessible with F12). + Enables debug messages in console (accessible with F12). + + + + Redirects debug messages into standard output (forces debug mode). + Redirects debug messages into standard output (forces debug mode). + + + + Redirects debug messages into given file (forces debug mode). + Redirects debug messages into given file (forces debug mode). + + + + log file + log file + + + + Enables Lemon parser debug messages for SQL code assistant. + Enables Lemon parser debug messages for SQL code assistant. + + + + Enables debugging of every single SQL query being sent to any database. + Enables debugging of every single SQL query being sent to any database. + + + + Limits SQL query messages to only the given <database>. + Limits SQL query messages to only the given <database>. + + + + database + database + + + + Enables debugging of SQLiteStudio's query executor. + Enables debugging of SQLiteStudio's query executor. + + + + Lists plugins installed in the SQLiteStudio and quits. + Lists plugins installed in the SQLiteStudio and quits. + + + + Points to the master configuration file. Read manual at wiki page for more details. + Points to the master configuration file. Read manual at wiki page for more details. + + + + SQLiteStudio settings file + SQLiteStudio settings file + + + + file + file + + + + Database file to open + Database file to open + + + + Select configuration directory + Select configuration directory + + + diff --git a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_no_NO.ts b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_no_NO.ts new file mode 100644 index 0000000..b2b5af6 --- /dev/null +++ b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_no_NO.ts @@ -0,0 +1,87 @@ + + + + + QObject + + + GUI interface to SQLiteStudio, a SQLite manager. + GUI interface to SQLiteStudio, a SQLite manager. + + + + Enables debug messages in console (accessible with F12). + Enables debug messages in console (accessible with F12). + + + + Redirects debug messages into standard output (forces debug mode). + Redirects debug messages into standard output (forces debug mode). + + + + Redirects debug messages into given file (forces debug mode). + Redirects debug messages into given file (forces debug mode). + + + + log file + log file + + + + Enables Lemon parser debug messages for SQL code assistant. + Enables Lemon parser debug messages for SQL code assistant. + + + + Enables debugging of every single SQL query being sent to any database. + Enables debugging of every single SQL query being sent to any database. + + + + Limits SQL query messages to only the given <database>. + Limits SQL query messages to only the given <database>. + + + + database + database + + + + Enables debugging of SQLiteStudio's query executor. + Enables debugging of SQLiteStudio's query executor. + + + + Lists plugins installed in the SQLiteStudio and quits. + Lists plugins installed in the SQLiteStudio and quits. + + + + Points to the master configuration file. Read manual at wiki page for more details. + Points to the master configuration file. Read manual at wiki page for more details. + + + + SQLiteStudio settings file + SQLiteStudio settings file + + + + file + file + + + + Database file to open + Database file to open + + + + Select configuration directory + Select configuration directory + + + diff --git a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_pl.qm b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_pl.qm deleted file mode 100644 index b444825..0000000 Binary files a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_pl.qm and /dev/null differ diff --git a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_pl.ts b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_pl.ts deleted file mode 100644 index 0add178..0000000 --- a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_pl.ts +++ /dev/null @@ -1,71 +0,0 @@ - - - - - QObject - - GUI interface to SQLiteStudio, a SQLite manager. - Interfejs graficzny dla SQLiteStudio, menadżera SQLite. - - - Enables debug messages in console (accessible with F12). - Włącza wiadomości debugujące w konsoli (dostępnej przez F12). - - - Redirects debug messages into standard output (forces debug mode). - Przekierowuje wiadomości debugujące na standardowe wyjście (wymusza tryb debugujący). - - - Enables Lemon parser debug messages for SQL code assistant. - Włącza wiadomości debugujące analizatora Lemon dla asystenta kodu SQL. - - - Enables debugging of every single SQL query being sent to any database. - Włacza debugowanie każdego pojedynczego zapytania SQL, wykonywanego na dowolnej bazie danych. - - - Limits SQL query messages to only the given <database>. - Ogranicze wiadomości zapytań SQL do podanej <bazy danych>. - - - database - baza danych - - - file - plik - - - Database file to open - Baza danych do otwarcia - - - Error - Błąd - - - Lists plugins installed in the SQLiteStudio and quits. - Wypisuje listę zainstalowanych w SQLiteStudio wtyczek i wychodzi. - - - Redirects debug messages into given file (forces debug mode). - Przekierowuje wiadomości debugujące do danego pliku (wymusza tryb debugujący). - - - log file - plik logów - - - Enables debugging of SQLiteStudio's query executor. - Włącza debugowanie wykonawcy zapytań w SQLiteStudio. - - - Points to the master configuration file. Read manual at wiki page for more details. - Wskazuje na główny plik konfiguracyjny. Więcej szczegółów w podręczniku na stronie wiki. - - - SQLiteStudio settings file - Plik ustawień SQLiteStudio - - - diff --git a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_pl_PL.ts b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_pl_PL.ts new file mode 100644 index 0000000..f9daab8 --- /dev/null +++ b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_pl_PL.ts @@ -0,0 +1,87 @@ + + + + + QObject + + + GUI interface to SQLiteStudio, a SQLite manager. + Interfejs graficzny dla SQLiteStudio, menadżera SQLite. + + + + Enables debug messages in console (accessible with F12). + Włącza wiadomości debugujące w konsoli (dostępnej przez F12). + + + + Redirects debug messages into standard output (forces debug mode). + Przekierowuje wiadomości debugujące na standardowe wyjście (wymusza tryb debugujący). + + + + Redirects debug messages into given file (forces debug mode). + Przekierowuje wiadomości debugujące do danego pliku (wymusza tryb debugujący). + + + + log file + plik logów + + + + Enables Lemon parser debug messages for SQL code assistant. + Włącza wiadomości debugujące analizatora Lemon dla asystenta kodu SQL. + + + + Enables debugging of every single SQL query being sent to any database. + Włacza debugowanie każdego pojedynczego zapytania SQL, wykonywanego na dowolnej bazie danych. + + + + Limits SQL query messages to only the given <database>. + Ogranicze wiadomości zapytań SQL do podanej <bazy danych>. + + + + database + baza danych + + + + Enables debugging of SQLiteStudio's query executor. + Włącza debugowanie wykonawcy zapytań w SQLiteStudio. + + + + Lists plugins installed in the SQLiteStudio and quits. + Wypisuje listę zainstalowanych w SQLiteStudio wtyczek i wychodzi. + + + + Points to the master configuration file. Read manual at wiki page for more details. + Wskazuje na główny plik konfiguracyjny. Więcej szczegółów w podręczniku na stronie wiki. + + + + SQLiteStudio settings file + Plik ustawień SQLiteStudio + + + + file + plik + + + + Database file to open + Baza danych do otwarcia + + + + Select configuration directory + Wybierz katalog konfiguracyjny + + + diff --git a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_pt_BR.qm b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_pt_BR.qm deleted file mode 100644 index c02994c..0000000 Binary files a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_pt_BR.qm and /dev/null differ diff --git a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_pt_BR.ts b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_pt_BR.ts index 23c60cc..5bdb5f5 100644 --- a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_pt_BR.ts +++ b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_pt_BR.ts @@ -1,82 +1,87 @@ - - + + QObject - - GUI interface to SQLiteStudio, a SQLite manager. - + + GUI interface to SQLiteStudio, a SQLite manager. + Interface para SQLiteStudio, um gerenciador de SQLite. - - Enables debug messages in console (accessible with F12). - + + Enables debug messages in console (accessible with F12). + Habilita mensagens de depuração no console (acessível com F12). - - Redirects debug messages into standard output (forces debug mode). - + + Redirects debug messages into standard output (forces debug mode). + Redireciona as mensagens de depuração na saída padrão (força o modo de depuração). - - Redirects debug messages into given file (forces debug mode). - + + Redirects debug messages into given file (forces debug mode). + Redireciona as mensagens de depuração em determinado arquivo (força o modo de depuração). - - log file - + + log file + arquivo de log - - Enables Lemon parser debug messages for SQL code assistant. - + + Enables Lemon parser debug messages for SQL code assistant. + Habilita Lemon para mensagens de debug para o assistente de código SQL. - - Enables debugging of every single SQL query being sent to any database. - + + Enables debugging of every single SQL query being sent to any database. + Permite a depuração de cada consulta SQL sendo enviada para qualquer banco de dados. - - Limits SQL query messages to only the given <database>. - + + Limits SQL query messages to only the given <database>. + Limita as mensagens de consulta SQL apenas para <database>. - - database - + + database + Banco de dados - - Enables debugging of SQLiteStudio's query executor. - + + Enables debugging of SQLiteStudio's query executor. + Habilita a depuração de uma consulta SQLiteStudio. - - Lists plugins installed in the SQLiteStudio and quits. - + + Lists plugins installed in the SQLiteStudio and quits. + Lista os plugins instalados no SQLiteStudio e encerrados. - - Points to the master configuration file. Read manual at wiki page for more details. - + + Points to the master configuration file. Read manual at wiki page for more details. + Ítens do arquivo de configuração principal. Leia o manual na página wiki para mais detalhes. - - SQLiteStudio settings file - + + SQLiteStudio settings file + Arquivo de configurações SQLiteStudio - - file - + + file + arquivo - - Database file to open - + + Database file to open + Arquivo do banco de dados para abrir - + + + Select configuration directory + Selecionar diretório de configuração + + diff --git a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_pt_PT.ts b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_pt_PT.ts new file mode 100644 index 0000000..4aa1362 --- /dev/null +++ b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_pt_PT.ts @@ -0,0 +1,87 @@ + + + + + QObject + + + GUI interface to SQLiteStudio, a SQLite manager. + GUI interface to SQLiteStudio, a SQLite manager. + + + + Enables debug messages in console (accessible with F12). + Enables debug messages in console (accessible with F12). + + + + Redirects debug messages into standard output (forces debug mode). + Redirects debug messages into standard output (forces debug mode). + + + + Redirects debug messages into given file (forces debug mode). + Redirects debug messages into given file (forces debug mode). + + + + log file + log file + + + + Enables Lemon parser debug messages for SQL code assistant. + Enables Lemon parser debug messages for SQL code assistant. + + + + Enables debugging of every single SQL query being sent to any database. + Enables debugging of every single SQL query being sent to any database. + + + + Limits SQL query messages to only the given <database>. + Limits SQL query messages to only the given <database>. + + + + database + database + + + + Enables debugging of SQLiteStudio's query executor. + Enables debugging of SQLiteStudio's query executor. + + + + Lists plugins installed in the SQLiteStudio and quits. + Lists plugins installed in the SQLiteStudio and quits. + + + + Points to the master configuration file. Read manual at wiki page for more details. + Points to the master configuration file. Read manual at wiki page for more details. + + + + SQLiteStudio settings file + SQLiteStudio settings file + + + + file + file + + + + Database file to open + Database file to open + + + + Select configuration directory + Select configuration directory + + + diff --git a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_ro_RO.qm b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_ro_RO.qm deleted file mode 100644 index 2856eb9..0000000 Binary files a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_ro_RO.qm and /dev/null differ diff --git a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_ro_RO.ts b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_ro_RO.ts index b4b3802..188fab7 100644 --- a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_ro_RO.ts +++ b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_ro_RO.ts @@ -1,82 +1,87 @@ - - + + QObject - - GUI interface to SQLiteStudio, a SQLite manager. - + + GUI interface to SQLiteStudio, a SQLite manager. + GUI interface to SQLiteStudio, a SQLite manager. - - Enables debug messages in console (accessible with F12). - + + Enables debug messages in console (accessible with F12). + Enables debug messages in console (accessible with F12). - - Redirects debug messages into standard output (forces debug mode). - + + Redirects debug messages into standard output (forces debug mode). + Redirects debug messages into standard output (forces debug mode). - - Redirects debug messages into given file (forces debug mode). - + + Redirects debug messages into given file (forces debug mode). + Redirects debug messages into given file (forces debug mode). - - log file - + + log file + log file - - Enables Lemon parser debug messages for SQL code assistant. - + + Enables Lemon parser debug messages for SQL code assistant. + Enables Lemon parser debug messages for SQL code assistant. - - Enables debugging of every single SQL query being sent to any database. - + + Enables debugging of every single SQL query being sent to any database. + Enables debugging of every single SQL query being sent to any database. - - Limits SQL query messages to only the given <database>. - + + Limits SQL query messages to only the given <database>. + Limits SQL query messages to only the given <database>. - - database - + + database + database - - Enables debugging of SQLiteStudio's query executor. - + + Enables debugging of SQLiteStudio's query executor. + Enables debugging of SQLiteStudio's query executor. - - Lists plugins installed in the SQLiteStudio and quits. - + + Lists plugins installed in the SQLiteStudio and quits. + Lists plugins installed in the SQLiteStudio and quits. - - Points to the master configuration file. Read manual at wiki page for more details. - + + Points to the master configuration file. Read manual at wiki page for more details. + Points to the master configuration file. Read manual at wiki page for more details. - - SQLiteStudio settings file - + + SQLiteStudio settings file + SQLiteStudio settings file - - file - + + file + file - - Database file to open - + + Database file to open + Database file to open - + + + Select configuration directory + Select configuration directory + + diff --git a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_ru.qm b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_ru.qm deleted file mode 100644 index 5541fe4..0000000 Binary files a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_ru.qm and /dev/null differ diff --git a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_ru.ts b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_ru.ts deleted file mode 100644 index f9d2eae..0000000 --- a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_ru.ts +++ /dev/null @@ -1,86 +0,0 @@ - - - - - QObject - - - GUI interface to SQLiteStudio, a SQLite manager. - Графический интерфейс для SQLiteStudio, менеджера баз данных SQLite. - - - - Enables debug messages in console (accessible with F12). - Включает вывод отладочных сообщений в консоль (доступную по нажатию F12). - - - - Redirects debug messages into standard output (forces debug mode). - Перенаправляет отладочные сообщения в стандартный поток (принудительный отладочный режим). - - - - Redirects debug messages into given file (forces debug mode). - Перенаправляет отладочные сообщения в указанный файл (принудительный отладочный режим). - - - - log file - файл журнала - - - - Enables Lemon parser debug messages for SQL code assistant. - Включает вывод отладочных сообщений анализатора Lemon для автодополнения SQL кода. - - - - Enables debugging of every single SQL query being sent to any database. - Включает отладку каждого запроса SQL, посылаемого к любой базе данных. - - - - Limits SQL query messages to only the given <database>. - Ограничивает сообщения запросов SQL только для указанной <базы данных>. - - - - database - база данных - - - - Enables debugging of SQLiteStudio's query executor. - Включает отладку обработчика запросов SQLiteStudio. - - - - Lists plugins installed in the SQLiteStudio and quits. - Выводит список установленных в SQLiteStudio модулей и осуществляет выход. - - - - Points to the master configuration file. Read manual at wiki page for more details. - Указывает основной файл конфигурации. Детальная информация содержится в инструкции на wiki-странице. - - - - SQLiteStudio settings file - Файл настроек SQLiteStudio - - - - file - файл - - - - Database file to open - Файл базы данных для открытия - - - Error - Ошибка - - - diff --git a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_ru_RU.ts b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_ru_RU.ts new file mode 100644 index 0000000..2bf3cff --- /dev/null +++ b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_ru_RU.ts @@ -0,0 +1,87 @@ + + + + + QObject + + + GUI interface to SQLiteStudio, a SQLite manager. + Графический интерфейс для SQLiteStudio, менеджера баз данных SQLite. + + + + Enables debug messages in console (accessible with F12). + Включает вывод отладочных сообщений в консоль (доступную по нажатию F12). + + + + Redirects debug messages into standard output (forces debug mode). + Перенаправляет отладочные сообщения в стандартный поток (принудительный отладочный режим). + + + + Redirects debug messages into given file (forces debug mode). + Перенаправляет отладочные сообщения в указанный файл (принудительный отладочный режим). + + + + log file + файл журнала + + + + Enables Lemon parser debug messages for SQL code assistant. + Включает вывод отладочных сообщений анализатора Lemon для автодополнения SQL кода. + + + + Enables debugging of every single SQL query being sent to any database. + Включает отладку каждого запроса SQL, посылаемого к любой базе данных. + + + + Limits SQL query messages to only the given <database>. + Ограничивает сообщения запросов SQL только для указанной <базы данных>. + + + + database + база данных + + + + Enables debugging of SQLiteStudio's query executor. + Включает отладку обработчика запросов SQLiteStudio. + + + + Lists plugins installed in the SQLiteStudio and quits. + Выводит список установленных в SQLiteStudio модулей и осуществляет выход. + + + + Points to the master configuration file. Read manual at wiki page for more details. + Указывает основной файл конфигурации. Детальная информация содержится в инструкции на wiki-странице. + + + + SQLiteStudio settings file + Файл настроек SQLiteStudio + + + + file + файл + + + + Database file to open + Файл базы данных для открытия + + + + Select configuration directory + Выберите каталог конфигурации + + + diff --git a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_sk.qm b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_sk.qm deleted file mode 100644 index 01f60b5..0000000 Binary files a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_sk.qm and /dev/null differ diff --git a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_sk.ts b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_sk.ts deleted file mode 100644 index d1ec165..0000000 --- a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_sk.ts +++ /dev/null @@ -1,86 +0,0 @@ - - - - - QObject - - - GUI interface to SQLiteStudio, a SQLite manager. - GUI rozhranie pre SQLiteStudio, SQLite manažér. - - - - Enables debug messages in console (accessible with F12). - Aktivuje ladiace správy v konzole (dostupné pomocou F12). - - - - Redirects debug messages into standard output (forces debug mode). - Presmerovať ladiace informácie na štandardný výstup (vynútený ladiaci mód). - - - - Redirects debug messages into given file (forces debug mode). - - - - - log file - - - - - Enables Lemon parser debug messages for SQL code assistant. - - - - - Enables debugging of every single SQL query being sent to any database. - - - - - Limits SQL query messages to only the given <database>. - - - - - database - databáza - - - - Enables debugging of SQLiteStudio's query executor. - - - - - Lists plugins installed in the SQLiteStudio and quits. - - - - - Points to the master configuration file. Read manual at wiki page for more details. - - - - - SQLiteStudio settings file - - - - - file - Súbor - - - - Database file to open - - - - Error - Chyba - - - diff --git a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_sk_SK.ts b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_sk_SK.ts new file mode 100644 index 0000000..51babe5 --- /dev/null +++ b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_sk_SK.ts @@ -0,0 +1,87 @@ + + + + + QObject + + + GUI interface to SQLiteStudio, a SQLite manager. + GUI rozhranie pre SQLiteStudio, SQLite manažér. + + + + Enables debug messages in console (accessible with F12). + Aktivuje ladiace správy v konzole (dostupné pomocou F12). + + + + Redirects debug messages into standard output (forces debug mode). + Presmerovať ladiace informácie na štandardný výstup (vynútený ladiaci mód). + + + + Redirects debug messages into given file (forces debug mode). + Redirects debug messages into given file (forces debug mode). + + + + log file + log file + + + + Enables Lemon parser debug messages for SQL code assistant. + Enables Lemon parser debug messages for SQL code assistant. + + + + Enables debugging of every single SQL query being sent to any database. + Enables debugging of every single SQL query being sent to any database. + + + + Limits SQL query messages to only the given <database>. + Limits SQL query messages to only the given <database>. + + + + database + databáza + + + + Enables debugging of SQLiteStudio's query executor. + Enables debugging of SQLiteStudio's query executor. + + + + Lists plugins installed in the SQLiteStudio and quits. + Lists plugins installed in the SQLiteStudio and quits. + + + + Points to the master configuration file. Read manual at wiki page for more details. + Points to the master configuration file. Read manual at wiki page for more details. + + + + SQLiteStudio settings file + SQLiteStudio settings file + + + + file + Súbor + + + + Database file to open + Database file to open + + + + Select configuration directory + Select configuration directory + + + diff --git a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_sr_SP.ts b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_sr_SP.ts new file mode 100644 index 0000000..97ac651 --- /dev/null +++ b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_sr_SP.ts @@ -0,0 +1,87 @@ + + + + + QObject + + + GUI interface to SQLiteStudio, a SQLite manager. + GUI interface to SQLiteStudio, a SQLite manager. + + + + Enables debug messages in console (accessible with F12). + Enables debug messages in console (accessible with F12). + + + + Redirects debug messages into standard output (forces debug mode). + Redirects debug messages into standard output (forces debug mode). + + + + Redirects debug messages into given file (forces debug mode). + Redirects debug messages into given file (forces debug mode). + + + + log file + log file + + + + Enables Lemon parser debug messages for SQL code assistant. + Enables Lemon parser debug messages for SQL code assistant. + + + + Enables debugging of every single SQL query being sent to any database. + Enables debugging of every single SQL query being sent to any database. + + + + Limits SQL query messages to only the given <database>. + Limits SQL query messages to only the given <database>. + + + + database + database + + + + Enables debugging of SQLiteStudio's query executor. + Enables debugging of SQLiteStudio's query executor. + + + + Lists plugins installed in the SQLiteStudio and quits. + Lists plugins installed in the SQLiteStudio and quits. + + + + Points to the master configuration file. Read manual at wiki page for more details. + Points to the master configuration file. Read manual at wiki page for more details. + + + + SQLiteStudio settings file + SQLiteStudio settings file + + + + file + file + + + + Database file to open + Database file to open + + + + Select configuration directory + Select configuration directory + + + diff --git a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_sv_SE.ts b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_sv_SE.ts new file mode 100644 index 0000000..c8ed7a3 --- /dev/null +++ b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_sv_SE.ts @@ -0,0 +1,87 @@ + + + + + QObject + + + GUI interface to SQLiteStudio, a SQLite manager. + GUI interface to SQLiteStudio, a SQLite manager. + + + + Enables debug messages in console (accessible with F12). + Enables debug messages in console (accessible with F12). + + + + Redirects debug messages into standard output (forces debug mode). + Redirects debug messages into standard output (forces debug mode). + + + + Redirects debug messages into given file (forces debug mode). + Redirects debug messages into given file (forces debug mode). + + + + log file + log file + + + + Enables Lemon parser debug messages for SQL code assistant. + Enables Lemon parser debug messages for SQL code assistant. + + + + Enables debugging of every single SQL query being sent to any database. + Enables debugging of every single SQL query being sent to any database. + + + + Limits SQL query messages to only the given <database>. + Limits SQL query messages to only the given <database>. + + + + database + database + + + + Enables debugging of SQLiteStudio's query executor. + Enables debugging of SQLiteStudio's query executor. + + + + Lists plugins installed in the SQLiteStudio and quits. + Lists plugins installed in the SQLiteStudio and quits. + + + + Points to the master configuration file. Read manual at wiki page for more details. + Points to the master configuration file. Read manual at wiki page for more details. + + + + SQLiteStudio settings file + SQLiteStudio settings file + + + + file + file + + + + Database file to open + Database file to open + + + + Select configuration directory + Select configuration directory + + + diff --git a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_tr_TR.ts b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_tr_TR.ts new file mode 100644 index 0000000..88da4ce --- /dev/null +++ b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_tr_TR.ts @@ -0,0 +1,87 @@ + + + + + QObject + + + GUI interface to SQLiteStudio, a SQLite manager. + SQLite yöneticisi, SQLiteStudio için kullanıcı arayüzü + + + + Enables debug messages in console (accessible with F12). + Konsolda debug mesajlarını aktif hale getirir (F12 ile de ulaşılabilir). + + + + Redirects debug messages into standard output (forces debug mode). + Debug mesajlarını standart konsola yönlendirir (debug modunu zorunludur). + + + + Redirects debug messages into given file (forces debug mode). + Debug mesajlarını belirtilen dosyaya yönlendirir (debug modunu zorunludur). + + + + log file + log dosyası + + + + Enables Lemon parser debug messages for SQL code assistant. + SQL kod asistanı olarak mesajları debug etmek için Lemon parser'ı aktif hale getirir. + + + + Enables debugging of every single SQL query being sent to any database. + Veritabanına gönderilen her SQL sorgusu için debug yapabilmeyi aktif hale getirir. + + + + Limits SQL query messages to only the given <database>. + Sadece <veritabanı> için verilen SQL sorgu mesajlarını sınırlar. + + + + database + veritabanı + + + + Enables debugging of SQLiteStudio's query executor. + SQLiteStudio'nun sorgu çalıştırıcısının debugging özelliğini aktif hale getirir. + + + + Lists plugins installed in the SQLiteStudio and quits. + SQLiteStudio içinde yüklü olan eklentileri listeler ve çıkış yapar. + + + + Points to the master configuration file. Read manual at wiki page for more details. + Ana konfigürasyon dosyasını gösterir. Daha fazla detay için wiki sayfasındaki kullanım kılavuzunu okuyun. + + + + SQLiteStudio settings file + SQLiteStudio ayarlar dosyası + + + + file + dosya + + + + Database file to open + Açılacak veritabanı dosyası + + + + Select configuration directory + Yapılandırma dizinini seç + + + diff --git a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_uk_UA.ts b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_uk_UA.ts new file mode 100644 index 0000000..be290a1 --- /dev/null +++ b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_uk_UA.ts @@ -0,0 +1,87 @@ + + + + + QObject + + + GUI interface to SQLiteStudio, a SQLite manager. + Графічний інтерфейс для SQLiteStudio, менеджера баз даних SQLite. + + + + Enables debug messages in console (accessible with F12). + Включає вивід налагоджувальних повідомлень в консоль (доступну після натискання F12). + + + + Redirects debug messages into standard output (forces debug mode). + Перенаправляє налагоджувальні повідомлення в стандартний потік (примусовий режим налагодження). + + + + Redirects debug messages into given file (forces debug mode). + Перенаправляє налагоджувальні повідомлення в вказаний файл (примусовий режим налагодження). + + + + log file + файл журналу + + + + Enables Lemon parser debug messages for SQL code assistant. + Включає вивід налагоджувальних повідомлень аналізатора Lemon для автодоповнення SQL коду. + + + + Enables debugging of every single SQL query being sent to any database. + Включає налагодження кожного запиту SQL, що посилається до будь-якої базі даних. + + + + Limits SQL query messages to only the given <database>. + Обмежує повідомлення запитів SQL тільки для зазначеної <бази даних>. + + + + database + база даних + + + + Enables debugging of SQLiteStudio's query executor. + Включає налагодження обробника запитів SQLiteStudio. + + + + Lists plugins installed in the SQLiteStudio and quits. + Виводить список встановлених в SQLiteStudio модулів і здійснює вихід. + + + + Points to the master configuration file. Read manual at wiki page for more details. + Вказує основний файл конфігурації. Детальна інформація міститься в інструкції на wiki-сторінці. + + + + SQLiteStudio settings file + Файл налаштувань SQLiteStudio + + + + file + файл + + + + Database file to open + Файл бази даних для відкриття + + + + Select configuration directory + Виберіть директорію конфігурації + + + diff --git a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_vi_VN.ts b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_vi_VN.ts new file mode 100644 index 0000000..6087d60 --- /dev/null +++ b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_vi_VN.ts @@ -0,0 +1,87 @@ + + + + + QObject + + + GUI interface to SQLiteStudio, a SQLite manager. + GUI interface to SQLiteStudio, a SQLite manager. + + + + Enables debug messages in console (accessible with F12). + Enables debug messages in console (accessible with F12). + + + + Redirects debug messages into standard output (forces debug mode). + Redirects debug messages into standard output (forces debug mode). + + + + Redirects debug messages into given file (forces debug mode). + Redirects debug messages into given file (forces debug mode). + + + + log file + log file + + + + Enables Lemon parser debug messages for SQL code assistant. + Enables Lemon parser debug messages for SQL code assistant. + + + + Enables debugging of every single SQL query being sent to any database. + Enables debugging of every single SQL query being sent to any database. + + + + Limits SQL query messages to only the given <database>. + Limits SQL query messages to only the given <database>. + + + + database + database + + + + Enables debugging of SQLiteStudio's query executor. + Enables debugging of SQLiteStudio's query executor. + + + + Lists plugins installed in the SQLiteStudio and quits. + Lists plugins installed in the SQLiteStudio and quits. + + + + Points to the master configuration file. Read manual at wiki page for more details. + Points to the master configuration file. Read manual at wiki page for more details. + + + + SQLiteStudio settings file + SQLiteStudio settings file + + + + file + file + + + + Database file to open + Database file to open + + + + Select configuration directory + Select configuration directory + + + diff --git a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_zh_CN.qm b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_zh_CN.qm deleted file mode 100644 index 83024d2..0000000 Binary files a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_zh_CN.qm and /dev/null differ diff --git a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_zh_CN.ts b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_zh_CN.ts index 14e3971..6091288 100644 --- a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_zh_CN.ts +++ b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_zh_CN.ts @@ -1,86 +1,87 @@ - - + + QObject - - GUI interface to SQLiteStudio, a SQLite manager. - + + GUI interface to SQLiteStudio, a SQLite manager. + SQLiteStudio 图形界面,一款 SQLite 管理软件。 - - Enables debug messages in console (accessible with F12). - 在控制台中启用调试信息(可通过 F12 访问)。 + + Enables debug messages in console (accessible with F12). + 启用控制台中的调试信息(通过 F12 访问)。 - - Redirects debug messages into standard output (forces debug mode). - 重定向调试信息到标准输出中(强制调试模式)。 + + Redirects debug messages into standard output (forces debug mode). + 重定向调试信息到标准输出(强制调试模式)。 - - Redirects debug messages into given file (forces debug mode). - 重定向调试信息到指定文件(强制调试模式)。 + + Redirects debug messages into given file (forces debug mode). + 重定向调试信息到指定文件(强制调试模式)。 - - log file - 日志文件 + + log file + 日志文件 - - Enables Lemon parser debug messages for SQL code assistant. - + + Enables Lemon parser debug messages for SQL code assistant. + 启用 SQL 代码助理的 Lemon 解析器调试信息。 - - Enables debugging of every single SQL query being sent to any database. - + + Enables debugging of every single SQL query being sent to any database. + 启用发送到任何数据库的每条 SQL 查询的调试。 - - Limits SQL query messages to only the given <database>. - + + Limits SQL query messages to only the given <database>. + 将 SQL 查询消息限制为指定的 <数据库>。 - - database - 数据库 + + database + 数据库 - - Enables debugging of SQLiteStudio's query executor. - + + Enables debugging of SQLiteStudio's query executor. + 启用 SQLiteStudio 的查询执行器的调试。 - - Lists plugins installed in the SQLiteStudio and quits. - 列出已安装的插件并退出。 + + Lists plugins installed in the SQLiteStudio and quits. + 列出 SQLiteStudio 中已安装的插件并退出。 - - Points to the master configuration file. Read manual at wiki page for more details. - 指向主配置文件。 阅读 Wiki 页面上的手册以获取更多详细信息。 + + Points to the master configuration file. Read manual at wiki page for more details. + 指向主配置文件。更多细节见 Wiki 页面上的手册。 - - SQLiteStudio settings file - SQLiteStudio 配置文件 + + SQLiteStudio settings file + SQLiteStudio 设置文件 - - file - 文件 + + file + 文件 - - Database file to open - 要打开的数据库文件 + + Database file to open + 要打开的数据库文件 - Error - 错误 + + Select configuration directory + 选择配置目录 - + diff --git a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_zh_TW.ts b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_zh_TW.ts new file mode 100644 index 0000000..333e236 --- /dev/null +++ b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_zh_TW.ts @@ -0,0 +1,87 @@ + + + + + QObject + + + GUI interface to SQLiteStudio, a SQLite manager. + SQLiteStudio 圖形介面,一款 SQLite 管理軟體。 + + + + Enables debug messages in console (accessible with F12). + 啟用控制檯中的除錯資訊 (透過 F12 訪問)。 + + + + Redirects debug messages into standard output (forces debug mode). + 重定向除錯資訊到標準輸出 (強制除錯模式)。 + + + + Redirects debug messages into given file (forces debug mode). + 重定向除錯資訊到指定檔案 (強制除錯模式)。 + + + + log file + 日誌檔案 + + + + Enables Lemon parser debug messages for SQL code assistant. + 啟用 SQL 程式碼助理的 Lemon 解析器除錯資訊。 + + + + Enables debugging of every single SQL query being sent to any database. + 啟用傳送到任何資料庫的每條 SQL 查詢的除錯。 + + + + Limits SQL query messages to only the given <database>. + 將 SQL 查詢訊息限制為指定的<資料庫>。 + + + + database + 資料庫 + + + + Enables debugging of SQLiteStudio's query executor. + 啟用 SQLiteStudio 的查詢執行器的除錯。 + + + + Lists plugins installed in the SQLiteStudio and quits. + 列出 SQLiteStudio 中已安裝的外掛並退出。 + + + + Points to the master configuration file. Read manual at wiki page for more details. + 指向主設定檔檔案。更多細節見 Wiki 頁面上的手冊。 + + + + SQLiteStudio settings file + SQLiteStudio 設定檔案 + + + + file + 檔案 + + + + Database file to open + 要開啟的資料庫檔案 + + + + Select configuration directory + 選擇設定檔目錄 + + + diff --git a/SQLiteStudio3/sqlitestudiocli/cli.cpp b/SQLiteStudio3/sqlitestudiocli/cli.cpp index 30bf175..6251745 100644 --- a/SQLiteStudio3/sqlitestudiocli/cli.cpp +++ b/SQLiteStudio3/sqlitestudiocli/cli.cpp @@ -120,6 +120,7 @@ Db* CLI::getCurrentDb() const void CLI::exit() { + SQLITESTUDIO->cleanUp(); doExit = true; } @@ -245,23 +246,25 @@ void CLI::applyHistoryLimit() #endif } -void CLI::openDbFile(const QString& path) +bool CLI::openDbFile(const QString& path) { Db* db = DBLIST->getByPath(path); if (db) { println(tr("Database passed in command line parameters (%1) was already on the list under name: %2").arg(path, db->getName())); - return; + setCurrentDb(db); + return true; } QString name = DBLIST->quickAddDb(path, QHash()); if (name.isNull()) { println(tr("Could not add database %1 to list.").arg(path)); - return; + return false; } db = DBLIST->getByName(name); setCurrentDb(db); + return true; } void CLI::doWork() diff --git a/SQLiteStudio3/sqlitestudiocli/cli.h b/SQLiteStudio3/sqlitestudiocli/cli.h index 12f391b..5ee363f 100644 --- a/SQLiteStudio3/sqlitestudiocli/cli.h +++ b/SQLiteStudio3/sqlitestudiocli/cli.h @@ -59,7 +59,7 @@ class CLI : public QObject void done(); void executionComplete(); void clearHistory(); - void openDbFile(const QString& path); + bool openDbFile(const QString& path); signals: void execCommand(CliCommand* cmd); diff --git a/SQLiteStudio3/sqlitestudiocli/commands/clicommand.cpp b/SQLiteStudio3/sqlitestudiocli/commands/clicommand.cpp index e23a042..ee201e0 100644 --- a/SQLiteStudio3/sqlitestudiocli/commands/clicommand.cpp +++ b/SQLiteStudio3/sqlitestudiocli/commands/clicommand.cpp @@ -104,7 +104,7 @@ void CliCommand::printBox(const QString& str) void CliCommand::printUsage() { - println(tr("Usage: %1%2").arg(CFG_CLI.Console.CommandPrefixChar.get()).arg(usage())); + println(tr("Usage: %1%2").arg(CFG_CLI.Console.CommandPrefixChar.get(), usage())); println(""); } diff --git a/SQLiteStudio3/sqlitestudiocli/commands/clicommandcd.cpp b/SQLiteStudio3/sqlitestudiocli/commands/clicommandcd.cpp index 14e91d5..80de0fa 100644 --- a/SQLiteStudio3/sqlitestudiocli/commands/clicommandcd.cpp +++ b/SQLiteStudio3/sqlitestudiocli/commands/clicommandcd.cpp @@ -24,7 +24,7 @@ QString CliCommandCd::fullHelp() const "It requires a argument to be passed, therefore calling %1 will always cause a change of the directory. " "To learn what's the current working directory use %2 command and to list contents of the current working directory " "use %3 command." - ); + ).arg(cmdName("cd"), cmdName("pwd"), cmdName("ls")); } void CliCommandCd::defineSyntax() diff --git a/SQLiteStudio3/sqlitestudiocli/commands/clicommandclose.cpp b/SQLiteStudio3/sqlitestudiocli/commands/clicommandclose.cpp index 44fc72c..c2bb803 100644 --- a/SQLiteStudio3/sqlitestudiocli/commands/clicommandclose.cpp +++ b/SQLiteStudio3/sqlitestudiocli/commands/clicommandclose.cpp @@ -8,7 +8,7 @@ void CliCommandClose::execute() if (!syntax.isArgumentSet(DB_NAME) && !cli->getCurrentDb()) { println(tr("Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3.") - .arg(cmdName("close")).arg(cmdName("use")).arg(cmdName("close"))); + .arg(cmdName("close"), cmdName("use"), cmdName("close"))); return; } @@ -21,7 +21,7 @@ void CliCommandClose::execute() println(tr("Connection to database %1 closed.").arg(db->getName())); } else - println(tr("No such database: %1. Use %2 to see list of known databases.").arg(syntax.getArgument(DB_NAME)).arg(cmdName("dblist"))); + println(tr("No such database: %1. Use %2 to see list of known databases.").arg(syntax.getArgument(DB_NAME), cmdName("dblist"))); } else if (cli->getCurrentDb()) { @@ -41,7 +41,7 @@ QString CliCommandClose::fullHelp() const "Closes database connection. If the database was already closed, nothing happens. " "If is provided, it should be name of the database to close (as printed by %1 command). " "The the is not provided, then current working database is closed (see help for %2 for details)." - ).arg(cmdName("dblist")).arg(cmdName("use")); + ).arg(cmdName("dblist"), cmdName("use")); } void CliCommandClose::defineSyntax() diff --git a/SQLiteStudio3/sqlitestudiocli/commands/clicommanddblist.cpp b/SQLiteStudio3/sqlitestudiocli/commands/clicommanddblist.cpp index 271a44f..6e1f7d7 100644 --- a/SQLiteStudio3/sqlitestudiocli/commands/clicommanddblist.cpp +++ b/SQLiteStudio3/sqlitestudiocli/commands/clicommanddblist.cpp @@ -49,7 +49,7 @@ void CliCommandDbList::execute() for (Db* db : dbList) { bool open = db->isOpen(); - path = db->getPath(); + path = QDir::toNativeSeparators(db->getPath()); name = db->getName(); if (name == currentName) name.prepend("*"); diff --git a/SQLiteStudio3/sqlitestudiocli/commands/clicommanddesc.cpp b/SQLiteStudio3/sqlitestudiocli/commands/clicommanddesc.cpp index f32b75e..42bd5ce 100644 --- a/SQLiteStudio3/sqlitestudiocli/commands/clicommanddesc.cpp +++ b/SQLiteStudio3/sqlitestudiocli/commands/clicommanddesc.cpp @@ -15,7 +15,7 @@ void CliCommandDesc::execute() println(tr("No working database is set.\n" "Call %1 command to set working database.\n" "Call %2 to see list of all databases.") - .arg(cmdName("use")).arg(cmdName("dblist"))); + .arg(cmdName("use"), cmdName("dblist"))); return; } @@ -54,7 +54,7 @@ QString CliCommandDesc::shortHelp() const QString CliCommandDesc::fullHelp() const { - return QString(); + return shortHelp(); } void CliCommandDesc::defineSyntax() @@ -84,7 +84,7 @@ void CliCommandDesc::printTable(SqliteCreateTable *table) // Rows QString constrJoinStr = "\n" + pad("", 20, ' ') + "|" + pad("", 10, ' ') + "|"; QStringList constrList; - for (SqliteCreateTable::Column* column : table->columns) + for (SqliteCreateTable::Column*& column : table->columns) { msg = pad(column->name.left(20), 20, ' '); msg += "|"; diff --git a/SQLiteStudio3/sqlitestudiocli/commands/clicommandhelp.cpp b/SQLiteStudio3/sqlitestudiocli/commands/clicommandhelp.cpp index 5f92fd4..bb3f9a8 100644 --- a/SQLiteStudio3/sqlitestudiocli/commands/clicommandhelp.cpp +++ b/SQLiteStudio3/sqlitestudiocli/commands/clicommandhelp.cpp @@ -24,7 +24,7 @@ QString CliCommandHelp::fullHelp() const "When passing name, you can skip special prefix character ('%3').\n\n" "You can always execute any command with exactly single '--help' option to see help for that command. " "It's an alternative for typing: %1 ." - ).arg(cmdName("help")).arg(cmdName("help")).arg(CFG_CLI.Console.CommandPrefixChar.get()).arg(cmdName("help")); + ).arg(cmdName("help"), cmdName("help"), CFG_CLI.Console.CommandPrefixChar.get(), cmdName("help")); } void CliCommandHelp::defineSyntax() @@ -49,7 +49,7 @@ void CliCommandHelp::printHelp(const QString& cmd) QString prefix = CFG_CLI.Console.CommandPrefixChar.get(); QString msg; - msg += tr("Usage: %1%2").arg(prefix).arg(command->usage(cmdStr)); + msg += tr("Usage: %1%2").arg(prefix, command->usage(cmdStr)); msg += "\n"; if (aliases.size() > 0) { @@ -83,4 +83,5 @@ void CliCommandHelp::printHelp() delete allCommands[cmd]; } printBox(msgList.join("\n")); + printHelp("help"); } diff --git a/SQLiteStudio3/sqlitestudiocli/commands/clicommandmode.cpp b/SQLiteStudio3/sqlitestudiocli/commands/clicommandmode.cpp index b258045..b0419d5 100644 --- a/SQLiteStudio3/sqlitestudiocli/commands/clicommandmode.cpp +++ b/SQLiteStudio3/sqlitestudiocli/commands/clicommandmode.cpp @@ -49,7 +49,7 @@ QString CliCommandMode::fullHelp() const "The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, " "while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be " "cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window.\n" - "ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widhts, therefore it is dangerous " + "ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous " "to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory.\n" "\n" "The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode " diff --git a/SQLiteStudio3/sqlitestudiocli/commands/clicommandopen.cpp b/SQLiteStudio3/sqlitestudiocli/commands/clicommandopen.cpp index fef1737..a7eb004 100644 --- a/SQLiteStudio3/sqlitestudiocli/commands/clicommandopen.cpp +++ b/SQLiteStudio3/sqlitestudiocli/commands/clicommandopen.cpp @@ -10,7 +10,7 @@ void CliCommandOpen::execute() if (!syntax.isArgumentSet(DB_NAME_OR_FILE) && !cli->getCurrentDb()) { println(tr("Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3.") - .arg(cmdName("open")).arg(cmdName("use")).arg(cmdName("open"))); + .arg(cmdName("open"), cmdName("use"), cmdName("open"))); return; } @@ -36,7 +36,7 @@ void CliCommandOpen::execute() { println(tr("File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. " "To create a new database, use %4 command.").arg(arg).arg(QDir::currentPath()) - .arg(cmdName("open")).arg(cmdName("add"))); + .arg(cmdName("open"), cmdName("add"))); return; } } diff --git a/SQLiteStudio3/sqlitestudiocli/commands/clicommandpwd.cpp b/SQLiteStudio3/sqlitestudiocli/commands/clicommandpwd.cpp index f96cae4..6646196 100644 --- a/SQLiteStudio3/sqlitestudiocli/commands/clicommandpwd.cpp +++ b/SQLiteStudio3/sqlitestudiocli/commands/clicommandpwd.cpp @@ -19,7 +19,7 @@ QString CliCommandPwd::fullHelp() const "This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. " "It prints current working directory. You can change the current working directory with %1 command " "and you can also list contents of the current working directory with %2 command." - ).arg(cmdName("cd")).arg(cmdName("dir")); + ).arg(cmdName("cd"), cmdName("dir")); } void CliCommandPwd::defineSyntax() diff --git a/SQLiteStudio3/sqlitestudiocli/commands/clicommandsql.cpp b/SQLiteStudio3/sqlitestudiocli/commands/clicommandsql.cpp index cb89dfe..e24dbb2 100644 --- a/SQLiteStudio3/sqlitestudiocli/commands/clicommandsql.cpp +++ b/SQLiteStudio3/sqlitestudiocli/commands/clicommandsql.cpp @@ -1,8 +1,8 @@ #include "clicommandsql.h" #include "cli.h" -#include "parser/ast/sqliteselect.h" -#include "parser/parser.h" -#include "parser/parsererror.h" +//#include "parser/ast/sqliteselect.h" +//#include "parser/parser.h" +//#include "parser/parsererror.h" #include "db/queryexecutor.h" #include "qio.h" #include "common/unused.h" @@ -19,7 +19,7 @@ void CliCommandSql::execute() println(tr("No working database is set.\n" "Call %1 command to set working database.\n" "Call %2 to see list of all databases.") - .arg(cmdName("use")).arg(cmdName("dblist"))); + .arg(cmdName("use"), cmdName("dblist"))); return; } @@ -92,7 +92,7 @@ void CliCommandSql::printResultsClassic(QueryExecutor* executor, SqlQueryPtr res int resultColumnCount = executor->getResultColumns().size(); // Columns - for (const QueryExecutor::ResultColumnPtr& resCol : executor->getResultColumns()) + for (QueryExecutor::ResultColumnPtr& resCol : executor->getResultColumns()) qOut << resCol->displayName << "|"; qOut << "\n"; @@ -106,7 +106,7 @@ void CliCommandSql::printResultsClassic(QueryExecutor* executor, SqlQueryPtr res row = results->next(); i = 0; values = row->valueList().mid(0, resultColumnCount); - for (QVariant value : values) + for (QVariant& value : values) { qOut << getValueString(value); if ((i + 1) < resultColumnCount) @@ -149,7 +149,7 @@ void CliCommandSql::printResultsFixed(QueryExecutor* executor, SqlQueryPtr resul // Columns QStringList columns; - for (const QueryExecutor::ResultColumnPtr& resCol : executor->getResultColumns()) + for (QueryExecutor::ResultColumnPtr& resCol : executor->getResultColumns()) columns << resCol->displayName; printColumnHeader(widths, columns); @@ -184,7 +184,7 @@ void CliCommandSql::printResultsColumns(QueryExecutor* executor, SqlQueryPtr res // Get widths of each column in every data row, remember the longest ones QList columnWidths; SortedColumnWidth* colWidth = nullptr; - for (const QueryExecutor::ResultColumnPtr& resCol : resultColumns) + for (QueryExecutor::ResultColumnPtr& resCol : resultColumns) { colWidth = new SortedColumnWidth(); colWidth->setHeaderWidth(resCol->displayName.length()); @@ -204,7 +204,7 @@ void CliCommandSql::printResultsColumns(QueryExecutor* executor, SqlQueryPtr res // Calculate width as it would be required to display entire rows int totalWidth = 0; - for (SortedColumnWidth* colWd : columnWidths) + for (SortedColumnWidth*& colWd : columnWidths) totalWidth += colWd->getWidth(); totalWidth += (resultColumnsCount - 1); // column separators @@ -224,12 +224,12 @@ void CliCommandSql::printResultsColumns(QueryExecutor* executor, SqlQueryPtr res // Printing QList finalWidths; - for (SortedColumnWidth* colWd : columnWidths) + for (SortedColumnWidth*& colWd : columnWidths) finalWidths << colWd->getWidth(); printColumnHeader(finalWidths, headerNames); - for (SqlResultsRowPtr row : allRows) + for (SqlResultsRowPtr& row : allRows) printColumnDataRow(finalWidths, row, resultColumnsCount); qOut.flush(); @@ -240,14 +240,14 @@ void CliCommandSql::printResultsRowByRow(QueryExecutor* executor, SqlQueryPtr re // Columns int resultColumnCount = executor->getResultColumns().size(); int colWidth = 0; - for (const QueryExecutor::ResultColumnPtr& resCol : executor->getResultColumns()) + for (QueryExecutor::ResultColumnPtr& resCol : executor->getResultColumns()) { if (resCol->displayName.length() > colWidth) colWidth = resCol->displayName.length(); } QStringList columns; - for (const QueryExecutor::ResultColumnPtr& resCol : executor->getResultColumns()) + for (QueryExecutor::ResultColumnPtr& resCol : executor->getResultColumns()) columns << pad(resCol->displayName, -colWidth, ' '); // Data @@ -263,7 +263,7 @@ void CliCommandSql::printResultsRowByRow(QueryExecutor* executor, SqlQueryPtr re i = 0; rowCntString = " " + rowCntTemplate.arg(rowCnt) + " "; qOut << center(rowCntString, termWidth - 1, '-') << "\n"; - for (QVariant value : row->valueList().mid(0, resultColumnCount)) + for (QVariant& value : row->valueList().mid(0, resultColumnCount)) { qOut << columns[i] + ": " + getValueString(value) << "\n"; i++; @@ -294,7 +294,7 @@ void CliCommandSql::shrinkColumns(QList& colu sSort(columnWidths); // See if we can shrink headers only, or we already need to shrink the data - for (SortedColumnWidth* colWidth : columnWidths) + for (SortedColumnWidth*& colWidth : columnWidths) { if (colWidth->isHeaderLonger()) { @@ -381,7 +381,7 @@ void CliCommandSql::printColumnDataRow(const QList& widths, const SqlResult { int i = 0; QStringList line; - for (const QVariant& value : row->valueList().mid(0, resultColumnCount)) + for (QVariant& value : row->valueList().mid(0, resultColumnCount)) { line << pad(getValueString(value).left(widths[i]), widths[i], ' '); i++; diff --git a/SQLiteStudio3/sqlitestudiocli/main.cpp b/SQLiteStudio3/sqlitestudiocli/main.cpp index 3ffc2e3..14867cf 100644 --- a/SQLiteStudio3/sqlitestudiocli/main.cpp +++ b/SQLiteStudio3/sqlitestudiocli/main.cpp @@ -1,22 +1,28 @@ #include "cli.h" #include "clicommandexecutor.h" -#include "sqlitestudio.h" #include "commands/clicommand.h" #include "cli_config.h" #include "cliutils.h" #include "qio.h" #include "climsghandler.h" #include "completionhelper.h" -#include "services/updatemanager.h" #include "services/pluginmanager.h" +#include "sqlfileexecutor.h" #include #include #include #include -bool listPlugins = false; +namespace CliOpts +{ + bool listPlugins = false; + QString sqlScriptToExecute; + QString dbToOpen; + QString sqlScriptCodec; + bool ignoreErrors = false; +} -QString cliHandleCmdLineArgs() +bool cliHandleCmdLineArgs() { QCommandLineParser parser; parser.setApplicationDescription(QObject::tr("Command line interface to SQLiteStudio, a SQLite manager.")); @@ -25,10 +31,28 @@ QString cliHandleCmdLineArgs() QCommandLineOption debugOption({"d", "debug"}, QObject::tr("Enables debug messages on standard error output.")); QCommandLineOption lemonDebugOption("debug-lemon", QObject::tr("Enables Lemon parser debug messages for SQL code assistant.")); - QCommandLineOption listPluginsOption("list-plugins", QObject::tr("Lists plugins installed in the SQLiteStudio and quits.")); + QCommandLineOption listPluginsOption({"lp", "list-plugins"}, QObject::tr("Lists plugins installed in the SQLiteStudio and quits.")); + QCommandLineOption execSqlOption({"e", "execute-sql-file"}, + QObject::tr("Executes provided SQL file (including all rich features of SQLiteStudio's query executor) " + "on the specified database file and quits. " + "The database parameter becomes mandatory if this option is used."), + QObject::tr("SQL file")); + QCommandLineOption sqlFileCodecOption({"c", "file-codec"}, QObject::tr("Character encoding to use when reading SQL file (-e option). " + "Use -cl to list available codecs. " + "Defaults to %1.").arg(defaultCodecName()), + QObject::tr("codec")); + QCommandLineOption codecListOption({"lc", "list-codecs"}, QObject::tr("Lists available codecs to be used with -c option and quits.")); + QCommandLineOption ignoreErrorsOption({"ie", "ignore-errors"}, + QObject::tr("When used together with -e option, the execution will not stop on an error, " + "but rather continue until the end, ignoring errors.")); + parser.addOption(debugOption); parser.addOption(lemonDebugOption); parser.addOption(listPluginsOption); + parser.addOption(execSqlOption); + parser.addOption(sqlFileCodecOption); + parser.addOption(codecListOption); + parser.addOption(ignoreErrorsOption); parser.addPositionalArgument(QObject::tr("file"), QObject::tr("Database file to open")); @@ -37,16 +61,66 @@ QString cliHandleCmdLineArgs() if (parser.isSet(debugOption)) setCliDebug(true); + if (parser.isSet(codecListOption)) + { + for (QString& codec : textCodecNames()) + qOut << codec << "\n"; + + qOut.flush(); + return true; + } + + if (parser.isSet((sqlFileCodecOption))) + { + CliOpts::sqlScriptCodec = parser.value(sqlFileCodecOption); + if (!textCodecNames().contains(CliOpts::sqlScriptCodec)) + { + qErr << QObject::tr("Invalid codec: %1. Use -cl option to list available codecs.").arg(CliOpts::sqlScriptCodec) << "\n"; + qErr.flush(); + return true; + } + } + else + CliOpts::sqlScriptCodec = defaultCodecName(); + + if (parser.isSet(ignoreErrorsOption)) + CliOpts::ignoreErrors = true; + + if (parser.isSet(execSqlOption)) + CliOpts::sqlScriptToExecute = parser.value(execSqlOption); + if (parser.isSet(listPluginsOption)) - listPlugins = true; + CliOpts::listPlugins = true; CompletionHelper::enableLemonDebug = parser.isSet(lemonDebugOption); QStringList args = parser.positionalArguments(); if (args.size() > 0) - return args[0]; + CliOpts::dbToOpen = args[0]; - return QString(); + return false; +} + +int cliExecSqlFromFile(const QString& dbToOpen) +{ + if (dbToOpen.isEmpty()) + { + qErr << QObject::tr("Database file argument is mandatory when executing SQL file.") << "\n"; + qErr.flush(); + return 1; + } + if (!CLI::getInstance()->openDbFile(dbToOpen)) + { + qErr << QObject::tr("Could not open specified database for executing SQL file. You may try using -d option to find out more details.") << "\n"; + qErr.flush(); + return 1; + } + + Db* db = CLI::getInstance()->getCurrentDb(); + + SqlFileExecutor executor; + executor.execSqlFromFile(db, CliOpts::sqlScriptToExecute, CliOpts::ignoreErrors, CliOpts::sqlScriptCodec, false); + return 0; } int main(int argc, char *argv[]) @@ -58,30 +132,34 @@ int main(int argc, char *argv[]) qInstallMessageHandler(cliMessageHandler); - QString dbToOpen = cliHandleCmdLineArgs(); + if (cliHandleCmdLineArgs()) + return 0; - CliResultsDisplay::staticInit(); initCliUtils(); + CliResultsDisplay::staticInit(); SQLITESTUDIO->setInitialTranslationFiles({"coreSQLiteStudio", "sqlitestudiocli"}); SQLITESTUDIO->init(a.arguments(), false); SQLITESTUDIO->initPlugins(); - if (listPlugins) + if (CliOpts::listPlugins) { - for (const PluginManager::PluginDetails& details : PLUGINS->getAllPluginDetails()) + for (PluginManager::PluginDetails& details : PLUGINS->getAllPluginDetails()) qOut << details.name << " " << details.versionString << "\n"; return 0; } + if (!CliOpts::sqlScriptToExecute.isNull()) + return cliExecSqlFromFile(CliOpts::dbToOpen); + CliCommandExecutor executor; QObject::connect(CLI::getInstance(), &CLI::execCommand, &executor, &CliCommandExecutor::execCommand); QObject::connect(&executor, &CliCommandExecutor::executionComplete, CLI::getInstance(), &CLI::executionComplete); - if (!dbToOpen.isEmpty()) - CLI::getInstance()->openDbFile(dbToOpen); + if (!CliOpts::dbToOpen.isEmpty()) + CLI::getInstance()->openDbFile(CliOpts::dbToOpen); CLI::getInstance()->start(); int res = a.exec(); diff --git a/SQLiteStudio3/sqlitestudiocli/sqlitestudiocli.pro b/SQLiteStudio3/sqlitestudiocli/sqlitestudiocli.pro index e32eca3..9b38487 100644 --- a/SQLiteStudio3/sqlitestudiocli/sqlitestudiocli.pro +++ b/SQLiteStudio3/sqlitestudiocli/sqlitestudiocli.pro @@ -7,7 +7,7 @@ QT += core QT -= gui -include($$PWD/../dirs.pri) +include($$PWD/../common.pri) OBJECTS_DIR = $$OBJECTS_DIR/sqlitestudiocli MOC_DIR = $$MOC_DIR/sqlitestudiocli @@ -31,17 +31,6 @@ portable { DEFINES += PORTABLE_CONFIG } -TRANSLATIONS += translations/sqlitestudiocli_ro_RO.ts \ - translations/sqlitestudiocli_de.ts \ - translations/sqlitestudiocli_it.ts \ - translations/sqlitestudiocli_zh_CN.ts \ - translations/sqlitestudiocli_sk.ts \ - translations/sqlitestudiocli_ru.ts \ - translations/sqlitestudiocli_pt_BR.ts \ - translations/sqlitestudiocli_fr.ts \ - translations/sqlitestudiocli_es.ts \ - translations/sqlitestudiocli_pl.ts - SOURCES += main.cpp \ cli.cpp \ commands/clicommand.cpp \ @@ -79,7 +68,7 @@ win32: { } unix: { - LIBS += -lreadline -lcurses + LIBS += -lreadline } HEADERS += \ @@ -127,6 +116,17 @@ RESOURCES += \ + + + + + + + + + + + diff --git a/SQLiteStudio3/sqlitestudiocli/sqlitestudiocli.qrc b/SQLiteStudio3/sqlitestudiocli/sqlitestudiocli.qrc index 613e5bf..7646d2b 100644 --- a/SQLiteStudio3/sqlitestudiocli/sqlitestudiocli.qrc +++ b/SQLiteStudio3/sqlitestudiocli/sqlitestudiocli.qrc @@ -1,19 +1 @@ - - - translations/sqlitestudiocli_ro_RO.qm - translations/sqlitestudiocli_de.qm - - - translations/sqlitestudiocli_pl.qm - translations/sqlitestudiocli_ru.qm - translations/sqlitestudiocli_fr.qm - translations/sqlitestudiocli_sk.qm - translations/sqlitestudiocli_zh_CN.qm - - - - - - - - + diff --git a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli.ts b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli.ts new file mode 100644 index 0000000..97abff6 --- /dev/null +++ b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli.ts @@ -0,0 +1,833 @@ + + + + + CLI + + + Current database: %1 + + + + + No current working database is set. + + + + + Type %1 for help + + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + + + + + Could not add database %1 to list. + + + + + closed + + + + + CliCommand + + + Usage: %1%2 + + + + + CliCommandAdd + + + Could not add database %1 to list. + + + + + Database added: %1 + + + + + adds new database to the list + + + + + Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. + + + + + name + CLI command syntax + + + + + path + CLI command syntax + + + + + CliCommandCd + + + Changed directory to: %1 + + + + + Could not change directory to: %1 + + + + + changes current working directory + + + + + Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. + + + + + path + CLI command syntax + + + + + CliCommandClose + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + + + Connection to database %1 closed. + + + + + No such database: %1. Use %2 to see list of known databases. + + + + + closes given (or current) database + + + + + Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). + + + + + name + CLI command syntax + + + + + CliCommandDbList + + + No current working database defined. + + + + + Databases: + + + + + + Name + CLI db name column + + + + + + Open + CLI connection state column + + + + + + Closed + CLI connection state column + + + + + + Connection + CLI connection state column + + + + + + Database file path + + + + + prints list of registered databases + + + + + Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. + + + + + CliCommandDesc + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + + + + + Database is not open. + + + + + Cannot find table named: %1 + + + + + shows details about the table + + + + + table + + + + + Table: %1 + + + + + Column name + + + + + Data type + + + + + Constraints + + + + + Virtual table: %1 + + + + + Construction arguments: + + + + + No construction arguments were passed for this virtual table. + + + + + CliCommandDir + + + lists directories and files in current working directory + + + + + This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. + +You can pass <pattern> with wildcard characters to filter output. + + + + + pattern + + + + + CliCommandExit + + + quits the application + + + + + Quits the application. Settings are stored in configuration file and will be restored on next startup. + + + + + CliCommandHelp + + + shows this help message + + + + + Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. +To see list of supported commands, type %2 without any arguments. + +When passing <command> name, you can skip special prefix character ('%3'). + +You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. + + + + + command + CLI command syntax + + + + + No such command: %1 + + + + + Type '%1' for list of available commands. + + + + + Usage: %1%2 + + + + + Aliases: %1 + + + + + CliCommandHistory + + + Current history limit is set to: %1 + + + + + prints history or erases it + + + + + When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. + +When the -c or --clear option is passed, then the history gets erased. +When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. +Use -ql or --querylimit option to see the current limit value. + + + + + number + + + + + Console history erased. + + + + + Invalid number: %1 + + + + + History limit set to %1 + + + + + CliCommandMode + + + Current results printing mode: %1 + + + + + Invalid results printing mode: %1 + + + + + New results printing mode: %1 + + + + + tells or changes the query results format + + + + + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: +- CLASSIC - columns are separated by a comma, not aligned, +- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, +- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), +- ROW - each column from the row is displayed in new line, so the full data is displayed. + +The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. + +The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. + +The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. + +The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). + + + + + CliCommandNullValue + + + Current NULL representation string: %1 + + + + + tells or changes the NULL representation string + + + + + If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. + + + + + CliCommandOpen + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + + Could not add database %1 to list. + + + + + File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. + + + + + Database %1 has been open and set as the current working database. + + + + + opens database connection + + + + + Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. + + + + + name + CLI command syntax + + + + + path + CLI command syntax + + + + + CliCommandPwd + + + prints the current working directory + + + + + This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. + + + + + CliCommandRemove + + + No such database: %1 + + + + + Database removed: %1 + + + + + New current database set: + + + + + removes database from the list + + + + + Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. + + + + + name + CLI command syntax + + + + + CliCommandSql + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + + + + + Database is not open. + + + + + executes SQL query + + + + + This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. + + + + + sql + CLI command syntax + + + + + + Too many columns to display in %1 mode. + + + + + Row %1 + + + + + Query execution error: %1 + + + + + CliCommandTables + + + No such database: %1. Use %2 to see list of known databases. + + + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + + Database %1 is closed. + + + + + + Database + + + + + Table + + + + + prints list of tables in the database + + + + + Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. +When the -s option is given, then system tables are also listed. + + + + + database + CLI command syntax + + + + + CliCommandTree + + + No current working database is selected. Use %1 to define one and then run %2. + + + + + Tables + + + + + Views + + + + + Columns + + + + + Indexes + + + + + + Triggers + + + + + prints all objects in the database as a tree + + + + + Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. +When -c option is given, then also columns will be listed under each table. +When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). +The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. + + + + + CliCommandUse + + + No current database selected. + + + + + + Current database: %1 + + + + + No such database: %1 + + + + + changes default working database + + + + + Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. + +What is current working database? +When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). + +The default database can be selected in various ways: +- using %1 command, +- by passing database file name to the application startup parameters, +- by passing registered database name to the application startup parameters, +- by restoring previously selected default database from saved configuration, +- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. + + + + + name + CLI command syntax + + + + + QObject + + + Insufficient number of arguments. + + + + + Too many arguments. + + + + + Invalid argument value: %1. +Expected one of: %2 + + + + + Unknown option: %1 + CLI command syntax + + + + + Option %1 requires an argument. + CLI command syntax + + + + + string + CLI command syntax + + + + + Command line interface to SQLiteStudio, a SQLite manager. + + + + + Enables debug messages on standard error output. + + + + + Enables Lemon parser debug messages for SQL code assistant. + + + + + Lists plugins installed in the SQLiteStudio and quits. + + + + + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + + + + + SQL file + + + + + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. + + + + + codec + + + + + Lists available codecs to be used with -c option and quits. + + + + + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. + + + + + file + + + + + Database file to open + + + + + Invalid codec: %1. Use -cl option to list available codecs. + + + + + Database file argument is mandatory when executing SQL file. + + + + + Could not open specified database for executing SQL file. You may try using -d option to find out more details. + + + + diff --git a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_af_ZA.ts b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_af_ZA.ts new file mode 100644 index 0000000..32871c9 --- /dev/null +++ b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_af_ZA.ts @@ -0,0 +1,876 @@ + + + + + CLI + + + Current database: %1 + Current database: %1 + + + + No current working database is set. + No current working database is set. + + + + Type %1 for help + Type %1 for help + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + Database passed in command line parameters (%1) was already on the list under name: %2 + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + closed + closed + + + + CliCommand + + + Usage: %1%2 + Usage: %1%2 + + + + CliCommandAdd + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + Database added: %1 + Database added: %1 + + + + adds new database to the list + adds new database to the list + + + + Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. + Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. + + + + name + CLI command syntax + name + + + + path + CLI command syntax + path + + + + CliCommandCd + + + Changed directory to: %1 + Changed directory to: %1 + + + + Could not change directory to: %1 + Could not change directory to: %1 + + + + changes current working directory + changes current working directory + + + + Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. + Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. + + + + path + CLI command syntax + path + + + + CliCommandClose + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + + Connection to database %1 closed. + Connection to database %1 closed. + + + + No such database: %1. Use %2 to see list of known databases. + No such database: %1. Use %2 to see list of known databases. + + + + closes given (or current) database + closes given (or current) database + + + + Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). + Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). + + + + name + CLI command syntax + name + + + + CliCommandDbList + + + No current working database defined. + No current working database defined. + + + + Databases: + Databases: + + + + + Name + CLI db name column + Name + + + + + Open + CLI connection state column + Open + + + + + Closed + CLI connection state column + Closed + + + + + Connection + CLI connection state column + Connection + + + + + Database file path + Database file path + + + + prints list of registered databases + prints list of registered databases + + + + Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. + Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. + + + + CliCommandDesc + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + + + + Database is not open. + Database is not open. + + + + Cannot find table named: %1 + Cannot find table named: %1 + + + + shows details about the table + shows details about the table + + + + table + table + + + + Table: %1 + Table: %1 + + + + Column name + Column name + + + + Data type + Data type + + + + Constraints + Constraints + + + + Virtual table: %1 + Virtual table: %1 + + + + Construction arguments: + Construction arguments: + + + + No construction arguments were passed for this virtual table. + No construction arguments were passed for this virtual table. + + + + CliCommandDir + + + lists directories and files in current working directory + lists directories and files in current working directory + + + + This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. + +You can pass <pattern> with wildcard characters to filter output. + This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. + +You can pass <pattern> with wildcard characters to filter output. + + + + pattern + pattern + + + + CliCommandExit + + + quits the application + quits the application + + + + Quits the application. Settings are stored in configuration file and will be restored on next startup. + Quits the application. Settings are stored in configuration file and will be restored on next startup. + + + + CliCommandHelp + + + shows this help message + shows this help message + + + + Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. +To see list of supported commands, type %2 without any arguments. + +When passing <command> name, you can skip special prefix character ('%3'). + +You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. + Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. +To see list of supported commands, type %2 without any arguments. + +When passing <command> name, you can skip special prefix character ('%3'). + +You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. + + + + command + CLI command syntax + command + + + + No such command: %1 + No such command: %1 + + + + Type '%1' for list of available commands. + Type '%1' for list of available commands. + + + + Usage: %1%2 + Usage: %1%2 + + + + Aliases: %1 + Aliases: %1 + + + + CliCommandHistory + + + Current history limit is set to: %1 + Current history limit is set to: %1 + + + + prints history or erases it + prints history or erases it + + + + When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. + +When the -c or --clear option is passed, then the history gets erased. +When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. +Use -ql or --querylimit option to see the current limit value. + When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. + +When the -c or --clear option is passed, then the history gets erased. +When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. +Use -ql or --querylimit option to see the current limit value. + + + + number + number + + + + Console history erased. + Console history erased. + + + + Invalid number: %1 + Invalid number: %1 + + + + History limit set to %1 + History limit set to %1 + + + + CliCommandMode + + + Current results printing mode: %1 + Current results printing mode: %1 + + + + Invalid results printing mode: %1 + Invalid results printing mode: %1 + + + + New results printing mode: %1 + New results printing mode: %1 + + + + tells or changes the query results format + tells or changes the query results format + + + + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: +- CLASSIC - columns are separated by a comma, not aligned, +- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, +- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), +- ROW - each column from the row is displayed in new line, so the full data is displayed. + +The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. + +The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. + +The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. + +The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: +- CLASSIC - columns are separated by a comma, not aligned, +- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, +- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), +- ROW - each column from the row is displayed in new line, so the full data is displayed. + +The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. + +The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. + +The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. + +The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). + + + + CliCommandNullValue + + + Current NULL representation string: %1 + Current NULL representation string: %1 + + + + tells or changes the NULL representation string + tells or changes the NULL representation string + + + + If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. + If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. + + + + CliCommandOpen + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. + File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. + + + + Database %1 has been open and set as the current working database. + Database %1 has been open and set as the current working database. + + + + opens database connection + opens database connection + + + + Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. + Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. + + + + name + CLI command syntax + name + + + + path + CLI command syntax + path + + + + CliCommandPwd + + + prints the current working directory + prints the current working directory + + + + This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. + This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. + + + + CliCommandRemove + + + No such database: %1 + No such database: %1 + + + + Database removed: %1 + Database removed: %1 + + + + New current database set: + New current database set: + + + + removes database from the list + removes database from the list + + + + Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. + Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. + + + + name + CLI command syntax + name + + + + CliCommandSql + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + + + + Database is not open. + Database is not open. + + + + executes SQL query + executes SQL query + + + + This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. + This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. + + + + sql + CLI command syntax + sql + + + + + Too many columns to display in %1 mode. + Too many columns to display in %1 mode. + + + + Row %1 + Row %1 + + + + Query execution error: %1 + Query execution error: %1 + + + + CliCommandTables + + + No such database: %1. Use %2 to see list of known databases. + No such database: %1. Use %2 to see list of known databases. + + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + Database %1 is closed. + Database %1 is closed. + + + + + Database + Database + + + + Table + Table + + + + prints list of tables in the database + prints list of tables in the database + + + + Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. +When the -s option is given, then system tables are also listed. + Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. +When the -s option is given, then system tables are also listed. + + + + database + CLI command syntax + database + + + + CliCommandTree + + + No current working database is selected. Use %1 to define one and then run %2. + No current working database is selected. Use %1 to define one and then run %2. + + + + Tables + Tables + + + + Views + Views + + + + Columns + Columns + + + + Indexes + Indexes + + + + + Triggers + Triggers + + + + prints all objects in the database as a tree + prints all objects in the database as a tree + + + + Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. +When -c option is given, then also columns will be listed under each table. +When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). +The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. + Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. +When -c option is given, then also columns will be listed under each table. +When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). +The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. + + + + CliCommandUse + + + No current database selected. + No current database selected. + + + + + Current database: %1 + Current database: %1 + + + + No such database: %1 + No such database: %1 + + + + changes default working database + changes default working database + + + + Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. + +What is current working database? +When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). + +The default database can be selected in various ways: +- using %1 command, +- by passing database file name to the application startup parameters, +- by passing registered database name to the application startup parameters, +- by restoring previously selected default database from saved configuration, +- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. + Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. + +What is current working database? +When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). + +The default database can be selected in various ways: +- using %1 command, +- by passing database file name to the application startup parameters, +- by passing registered database name to the application startup parameters, +- by restoring previously selected default database from saved configuration, +- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. + + + + name + CLI command syntax + name + + + + QObject + + + Insufficient number of arguments. + Insufficient number of arguments. + + + + Too many arguments. + Too many arguments. + + + + Invalid argument value: %1. +Expected one of: %2 + Invalid argument value: %1. +Expected one of: %2 + + + + Unknown option: %1 + CLI command syntax + Unknown option: %1 + + + + Option %1 requires an argument. + CLI command syntax + Option %1 requires an argument. + + + + string + CLI command syntax + string + + + + Command line interface to SQLiteStudio, a SQLite manager. + Command line interface to SQLiteStudio, a SQLite manager. + + + + Enables debug messages on standard error output. + Enables debug messages on standard error output. + + + + Enables Lemon parser debug messages for SQL code assistant. + Enables Lemon parser debug messages for SQL code assistant. + + + + Lists plugins installed in the SQLiteStudio and quits. + Lists plugins installed in the SQLiteStudio and quits. + + + + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + + + + SQL file + SQL file + + + + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. + + + + codec + codec + + + + Lists available codecs to be used with -c option and quits. + Lists available codecs to be used with -c option and quits. + + + + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. + + + + file + file + + + + Database file to open + Database file to open + + + + Invalid codec: %1. Use -cl option to list available codecs. + Invalid codec: %1. Use -cl option to list available codecs. + + + + Database file argument is mandatory when executing SQL file. + Database file argument is mandatory when executing SQL file. + + + + Could not open specified database for executing SQL file. You may try using -d option to find out more details. + Could not open specified database for executing SQL file. You may try using -d option to find out more details. + + + diff --git a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_ar_SA.ts b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_ar_SA.ts new file mode 100644 index 0000000..8064520 --- /dev/null +++ b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_ar_SA.ts @@ -0,0 +1,876 @@ + + + + + CLI + + + Current database: %1 + Current database: %1 + + + + No current working database is set. + No current working database is set. + + + + Type %1 for help + Type %1 for help + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + Database passed in command line parameters (%1) was already on the list under name: %2 + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + closed + closed + + + + CliCommand + + + Usage: %1%2 + Usage: %1%2 + + + + CliCommandAdd + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + Database added: %1 + Database added: %1 + + + + adds new database to the list + adds new database to the list + + + + Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. + Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. + + + + name + CLI command syntax + name + + + + path + CLI command syntax + path + + + + CliCommandCd + + + Changed directory to: %1 + Changed directory to: %1 + + + + Could not change directory to: %1 + Could not change directory to: %1 + + + + changes current working directory + changes current working directory + + + + Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. + Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. + + + + path + CLI command syntax + path + + + + CliCommandClose + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + + Connection to database %1 closed. + Connection to database %1 closed. + + + + No such database: %1. Use %2 to see list of known databases. + No such database: %1. Use %2 to see list of known databases. + + + + closes given (or current) database + closes given (or current) database + + + + Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). + Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). + + + + name + CLI command syntax + name + + + + CliCommandDbList + + + No current working database defined. + No current working database defined. + + + + Databases: + Databases: + + + + + Name + CLI db name column + Name + + + + + Open + CLI connection state column + Open + + + + + Closed + CLI connection state column + Closed + + + + + Connection + CLI connection state column + Connection + + + + + Database file path + Database file path + + + + prints list of registered databases + prints list of registered databases + + + + Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. + Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. + + + + CliCommandDesc + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + + + + Database is not open. + Database is not open. + + + + Cannot find table named: %1 + Cannot find table named: %1 + + + + shows details about the table + shows details about the table + + + + table + table + + + + Table: %1 + Table: %1 + + + + Column name + Column name + + + + Data type + Data type + + + + Constraints + Constraints + + + + Virtual table: %1 + Virtual table: %1 + + + + Construction arguments: + Construction arguments: + + + + No construction arguments were passed for this virtual table. + No construction arguments were passed for this virtual table. + + + + CliCommandDir + + + lists directories and files in current working directory + lists directories and files in current working directory + + + + This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. + +You can pass <pattern> with wildcard characters to filter output. + This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. + +You can pass <pattern> with wildcard characters to filter output. + + + + pattern + pattern + + + + CliCommandExit + + + quits the application + quits the application + + + + Quits the application. Settings are stored in configuration file and will be restored on next startup. + Quits the application. Settings are stored in configuration file and will be restored on next startup. + + + + CliCommandHelp + + + shows this help message + shows this help message + + + + Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. +To see list of supported commands, type %2 without any arguments. + +When passing <command> name, you can skip special prefix character ('%3'). + +You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. + Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. +To see list of supported commands, type %2 without any arguments. + +When passing <command> name, you can skip special prefix character ('%3'). + +You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. + + + + command + CLI command syntax + command + + + + No such command: %1 + No such command: %1 + + + + Type '%1' for list of available commands. + Type '%1' for list of available commands. + + + + Usage: %1%2 + Usage: %1%2 + + + + Aliases: %1 + Aliases: %1 + + + + CliCommandHistory + + + Current history limit is set to: %1 + Current history limit is set to: %1 + + + + prints history or erases it + prints history or erases it + + + + When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. + +When the -c or --clear option is passed, then the history gets erased. +When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. +Use -ql or --querylimit option to see the current limit value. + When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. + +When the -c or --clear option is passed, then the history gets erased. +When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. +Use -ql or --querylimit option to see the current limit value. + + + + number + number + + + + Console history erased. + Console history erased. + + + + Invalid number: %1 + Invalid number: %1 + + + + History limit set to %1 + History limit set to %1 + + + + CliCommandMode + + + Current results printing mode: %1 + Current results printing mode: %1 + + + + Invalid results printing mode: %1 + Invalid results printing mode: %1 + + + + New results printing mode: %1 + New results printing mode: %1 + + + + tells or changes the query results format + tells or changes the query results format + + + + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: +- CLASSIC - columns are separated by a comma, not aligned, +- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, +- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), +- ROW - each column from the row is displayed in new line, so the full data is displayed. + +The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. + +The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. + +The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. + +The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: +- CLASSIC - columns are separated by a comma, not aligned, +- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, +- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), +- ROW - each column from the row is displayed in new line, so the full data is displayed. + +The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. + +The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. + +The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. + +The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). + + + + CliCommandNullValue + + + Current NULL representation string: %1 + Current NULL representation string: %1 + + + + tells or changes the NULL representation string + tells or changes the NULL representation string + + + + If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. + If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. + + + + CliCommandOpen + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. + File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. + + + + Database %1 has been open and set as the current working database. + Database %1 has been open and set as the current working database. + + + + opens database connection + opens database connection + + + + Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. + Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. + + + + name + CLI command syntax + name + + + + path + CLI command syntax + path + + + + CliCommandPwd + + + prints the current working directory + prints the current working directory + + + + This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. + This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. + + + + CliCommandRemove + + + No such database: %1 + No such database: %1 + + + + Database removed: %1 + Database removed: %1 + + + + New current database set: + New current database set: + + + + removes database from the list + removes database from the list + + + + Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. + Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. + + + + name + CLI command syntax + name + + + + CliCommandSql + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + + + + Database is not open. + Database is not open. + + + + executes SQL query + executes SQL query + + + + This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. + This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. + + + + sql + CLI command syntax + sql + + + + + Too many columns to display in %1 mode. + Too many columns to display in %1 mode. + + + + Row %1 + Row %1 + + + + Query execution error: %1 + Query execution error: %1 + + + + CliCommandTables + + + No such database: %1. Use %2 to see list of known databases. + No such database: %1. Use %2 to see list of known databases. + + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + Database %1 is closed. + Database %1 is closed. + + + + + Database + Database + + + + Table + Table + + + + prints list of tables in the database + prints list of tables in the database + + + + Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. +When the -s option is given, then system tables are also listed. + Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. +When the -s option is given, then system tables are also listed. + + + + database + CLI command syntax + database + + + + CliCommandTree + + + No current working database is selected. Use %1 to define one and then run %2. + No current working database is selected. Use %1 to define one and then run %2. + + + + Tables + Tables + + + + Views + Views + + + + Columns + Columns + + + + Indexes + Indexes + + + + + Triggers + Triggers + + + + prints all objects in the database as a tree + prints all objects in the database as a tree + + + + Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. +When -c option is given, then also columns will be listed under each table. +When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). +The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. + Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. +When -c option is given, then also columns will be listed under each table. +When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). +The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. + + + + CliCommandUse + + + No current database selected. + No current database selected. + + + + + Current database: %1 + Current database: %1 + + + + No such database: %1 + No such database: %1 + + + + changes default working database + changes default working database + + + + Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. + +What is current working database? +When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). + +The default database can be selected in various ways: +- using %1 command, +- by passing database file name to the application startup parameters, +- by passing registered database name to the application startup parameters, +- by restoring previously selected default database from saved configuration, +- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. + Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. + +What is current working database? +When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). + +The default database can be selected in various ways: +- using %1 command, +- by passing database file name to the application startup parameters, +- by passing registered database name to the application startup parameters, +- by restoring previously selected default database from saved configuration, +- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. + + + + name + CLI command syntax + name + + + + QObject + + + Insufficient number of arguments. + Insufficient number of arguments. + + + + Too many arguments. + Too many arguments. + + + + Invalid argument value: %1. +Expected one of: %2 + Invalid argument value: %1. +Expected one of: %2 + + + + Unknown option: %1 + CLI command syntax + Unknown option: %1 + + + + Option %1 requires an argument. + CLI command syntax + Option %1 requires an argument. + + + + string + CLI command syntax + string + + + + Command line interface to SQLiteStudio, a SQLite manager. + Command line interface to SQLiteStudio, a SQLite manager. + + + + Enables debug messages on standard error output. + Enables debug messages on standard error output. + + + + Enables Lemon parser debug messages for SQL code assistant. + Enables Lemon parser debug messages for SQL code assistant. + + + + Lists plugins installed in the SQLiteStudio and quits. + Lists plugins installed in the SQLiteStudio and quits. + + + + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + + + + SQL file + SQL file + + + + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. + + + + codec + codec + + + + Lists available codecs to be used with -c option and quits. + Lists available codecs to be used with -c option and quits. + + + + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. + + + + file + file + + + + Database file to open + Database file to open + + + + Invalid codec: %1. Use -cl option to list available codecs. + Invalid codec: %1. Use -cl option to list available codecs. + + + + Database file argument is mandatory when executing SQL file. + Database file argument is mandatory when executing SQL file. + + + + Could not open specified database for executing SQL file. You may try using -d option to find out more details. + Could not open specified database for executing SQL file. You may try using -d option to find out more details. + + + diff --git a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_ca_ES.ts b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_ca_ES.ts new file mode 100644 index 0000000..e8bbc91 --- /dev/null +++ b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_ca_ES.ts @@ -0,0 +1,876 @@ + + + + + CLI + + + Current database: %1 + Current database: %1 + + + + No current working database is set. + No current working database is set. + + + + Type %1 for help + Type %1 for help + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + Database passed in command line parameters (%1) was already on the list under name: %2 + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + closed + closed + + + + CliCommand + + + Usage: %1%2 + Usage: %1%2 + + + + CliCommandAdd + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + Database added: %1 + Database added: %1 + + + + adds new database to the list + adds new database to the list + + + + Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. + Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. + + + + name + CLI command syntax + name + + + + path + CLI command syntax + path + + + + CliCommandCd + + + Changed directory to: %1 + Changed directory to: %1 + + + + Could not change directory to: %1 + Could not change directory to: %1 + + + + changes current working directory + changes current working directory + + + + Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. + Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. + + + + path + CLI command syntax + path + + + + CliCommandClose + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + + Connection to database %1 closed. + Connection to database %1 closed. + + + + No such database: %1. Use %2 to see list of known databases. + No such database: %1. Use %2 to see list of known databases. + + + + closes given (or current) database + closes given (or current) database + + + + Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). + Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). + + + + name + CLI command syntax + name + + + + CliCommandDbList + + + No current working database defined. + No current working database defined. + + + + Databases: + Databases: + + + + + Name + CLI db name column + Name + + + + + Open + CLI connection state column + Open + + + + + Closed + CLI connection state column + Closed + + + + + Connection + CLI connection state column + Connection + + + + + Database file path + Database file path + + + + prints list of registered databases + prints list of registered databases + + + + Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. + Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. + + + + CliCommandDesc + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + + + + Database is not open. + Database is not open. + + + + Cannot find table named: %1 + Cannot find table named: %1 + + + + shows details about the table + shows details about the table + + + + table + table + + + + Table: %1 + Table: %1 + + + + Column name + Column name + + + + Data type + Data type + + + + Constraints + Constraints + + + + Virtual table: %1 + Virtual table: %1 + + + + Construction arguments: + Construction arguments: + + + + No construction arguments were passed for this virtual table. + No construction arguments were passed for this virtual table. + + + + CliCommandDir + + + lists directories and files in current working directory + lists directories and files in current working directory + + + + This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. + +You can pass <pattern> with wildcard characters to filter output. + This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. + +You can pass <pattern> with wildcard characters to filter output. + + + + pattern + pattern + + + + CliCommandExit + + + quits the application + quits the application + + + + Quits the application. Settings are stored in configuration file and will be restored on next startup. + Quits the application. Settings are stored in configuration file and will be restored on next startup. + + + + CliCommandHelp + + + shows this help message + shows this help message + + + + Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. +To see list of supported commands, type %2 without any arguments. + +When passing <command> name, you can skip special prefix character ('%3'). + +You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. + Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. +To see list of supported commands, type %2 without any arguments. + +When passing <command> name, you can skip special prefix character ('%3'). + +You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. + + + + command + CLI command syntax + command + + + + No such command: %1 + No such command: %1 + + + + Type '%1' for list of available commands. + Type '%1' for list of available commands. + + + + Usage: %1%2 + Usage: %1%2 + + + + Aliases: %1 + Aliases: %1 + + + + CliCommandHistory + + + Current history limit is set to: %1 + Current history limit is set to: %1 + + + + prints history or erases it + prints history or erases it + + + + When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. + +When the -c or --clear option is passed, then the history gets erased. +When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. +Use -ql or --querylimit option to see the current limit value. + When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. + +When the -c or --clear option is passed, then the history gets erased. +When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. +Use -ql or --querylimit option to see the current limit value. + + + + number + number + + + + Console history erased. + Console history erased. + + + + Invalid number: %1 + Invalid number: %1 + + + + History limit set to %1 + History limit set to %1 + + + + CliCommandMode + + + Current results printing mode: %1 + Current results printing mode: %1 + + + + Invalid results printing mode: %1 + Invalid results printing mode: %1 + + + + New results printing mode: %1 + New results printing mode: %1 + + + + tells or changes the query results format + tells or changes the query results format + + + + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: +- CLASSIC - columns are separated by a comma, not aligned, +- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, +- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), +- ROW - each column from the row is displayed in new line, so the full data is displayed. + +The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. + +The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. + +The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. + +The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: +- CLASSIC - columns are separated by a comma, not aligned, +- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, +- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), +- ROW - each column from the row is displayed in new line, so the full data is displayed. + +The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. + +The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. + +The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. + +The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). + + + + CliCommandNullValue + + + Current NULL representation string: %1 + Current NULL representation string: %1 + + + + tells or changes the NULL representation string + tells or changes the NULL representation string + + + + If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. + If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. + + + + CliCommandOpen + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. + File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. + + + + Database %1 has been open and set as the current working database. + Database %1 has been open and set as the current working database. + + + + opens database connection + opens database connection + + + + Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. + Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. + + + + name + CLI command syntax + name + + + + path + CLI command syntax + path + + + + CliCommandPwd + + + prints the current working directory + prints the current working directory + + + + This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. + This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. + + + + CliCommandRemove + + + No such database: %1 + No such database: %1 + + + + Database removed: %1 + Database removed: %1 + + + + New current database set: + New current database set: + + + + removes database from the list + removes database from the list + + + + Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. + Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. + + + + name + CLI command syntax + name + + + + CliCommandSql + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + + + + Database is not open. + Database is not open. + + + + executes SQL query + executes SQL query + + + + This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. + This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. + + + + sql + CLI command syntax + sql + + + + + Too many columns to display in %1 mode. + Too many columns to display in %1 mode. + + + + Row %1 + Row %1 + + + + Query execution error: %1 + Query execution error: %1 + + + + CliCommandTables + + + No such database: %1. Use %2 to see list of known databases. + No such database: %1. Use %2 to see list of known databases. + + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + Database %1 is closed. + Database %1 is closed. + + + + + Database + Database + + + + Table + Table + + + + prints list of tables in the database + prints list of tables in the database + + + + Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. +When the -s option is given, then system tables are also listed. + Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. +When the -s option is given, then system tables are also listed. + + + + database + CLI command syntax + database + + + + CliCommandTree + + + No current working database is selected. Use %1 to define one and then run %2. + No current working database is selected. Use %1 to define one and then run %2. + + + + Tables + Tables + + + + Views + Views + + + + Columns + Columns + + + + Indexes + Indexes + + + + + Triggers + Triggers + + + + prints all objects in the database as a tree + prints all objects in the database as a tree + + + + Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. +When -c option is given, then also columns will be listed under each table. +When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). +The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. + Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. +When -c option is given, then also columns will be listed under each table. +When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). +The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. + + + + CliCommandUse + + + No current database selected. + No current database selected. + + + + + Current database: %1 + Current database: %1 + + + + No such database: %1 + No such database: %1 + + + + changes default working database + changes default working database + + + + Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. + +What is current working database? +When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). + +The default database can be selected in various ways: +- using %1 command, +- by passing database file name to the application startup parameters, +- by passing registered database name to the application startup parameters, +- by restoring previously selected default database from saved configuration, +- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. + Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. + +What is current working database? +When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). + +The default database can be selected in various ways: +- using %1 command, +- by passing database file name to the application startup parameters, +- by passing registered database name to the application startup parameters, +- by restoring previously selected default database from saved configuration, +- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. + + + + name + CLI command syntax + name + + + + QObject + + + Insufficient number of arguments. + Insufficient number of arguments. + + + + Too many arguments. + Too many arguments. + + + + Invalid argument value: %1. +Expected one of: %2 + Invalid argument value: %1. +Expected one of: %2 + + + + Unknown option: %1 + CLI command syntax + Unknown option: %1 + + + + Option %1 requires an argument. + CLI command syntax + Option %1 requires an argument. + + + + string + CLI command syntax + string + + + + Command line interface to SQLiteStudio, a SQLite manager. + Command line interface to SQLiteStudio, a SQLite manager. + + + + Enables debug messages on standard error output. + Enables debug messages on standard error output. + + + + Enables Lemon parser debug messages for SQL code assistant. + Enables Lemon parser debug messages for SQL code assistant. + + + + Lists plugins installed in the SQLiteStudio and quits. + Lists plugins installed in the SQLiteStudio and quits. + + + + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + + + + SQL file + SQL file + + + + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. + + + + codec + codec + + + + Lists available codecs to be used with -c option and quits. + Lists available codecs to be used with -c option and quits. + + + + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. + + + + file + file + + + + Database file to open + Database file to open + + + + Invalid codec: %1. Use -cl option to list available codecs. + Invalid codec: %1. Use -cl option to list available codecs. + + + + Database file argument is mandatory when executing SQL file. + Database file argument is mandatory when executing SQL file. + + + + Could not open specified database for executing SQL file. You may try using -d option to find out more details. + Could not open specified database for executing SQL file. You may try using -d option to find out more details. + + + diff --git a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_cs_CZ.ts b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_cs_CZ.ts new file mode 100644 index 0000000..c385fd8 --- /dev/null +++ b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_cs_CZ.ts @@ -0,0 +1,876 @@ + + + + + CLI + + + Current database: %1 + Current database: %1 + + + + No current working database is set. + No current working database is set. + + + + Type %1 for help + Type %1 for help + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + Database passed in command line parameters (%1) was already on the list under name: %2 + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + closed + closed + + + + CliCommand + + + Usage: %1%2 + Usage: %1%2 + + + + CliCommandAdd + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + Database added: %1 + Database added: %1 + + + + adds new database to the list + adds new database to the list + + + + Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. + Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. + + + + name + CLI command syntax + name + + + + path + CLI command syntax + path + + + + CliCommandCd + + + Changed directory to: %1 + Changed directory to: %1 + + + + Could not change directory to: %1 + Could not change directory to: %1 + + + + changes current working directory + changes current working directory + + + + Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. + Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. + + + + path + CLI command syntax + path + + + + CliCommandClose + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + + Connection to database %1 closed. + Connection to database %1 closed. + + + + No such database: %1. Use %2 to see list of known databases. + No such database: %1. Use %2 to see list of known databases. + + + + closes given (or current) database + closes given (or current) database + + + + Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). + Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). + + + + name + CLI command syntax + name + + + + CliCommandDbList + + + No current working database defined. + No current working database defined. + + + + Databases: + Databases: + + + + + Name + CLI db name column + Name + + + + + Open + CLI connection state column + Open + + + + + Closed + CLI connection state column + Closed + + + + + Connection + CLI connection state column + Connection + + + + + Database file path + Database file path + + + + prints list of registered databases + prints list of registered databases + + + + Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. + Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. + + + + CliCommandDesc + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + + + + Database is not open. + Database is not open. + + + + Cannot find table named: %1 + Cannot find table named: %1 + + + + shows details about the table + shows details about the table + + + + table + table + + + + Table: %1 + Table: %1 + + + + Column name + Column name + + + + Data type + Data type + + + + Constraints + Constraints + + + + Virtual table: %1 + Virtual table: %1 + + + + Construction arguments: + Construction arguments: + + + + No construction arguments were passed for this virtual table. + No construction arguments were passed for this virtual table. + + + + CliCommandDir + + + lists directories and files in current working directory + lists directories and files in current working directory + + + + This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. + +You can pass <pattern> with wildcard characters to filter output. + This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. + +You can pass <pattern> with wildcard characters to filter output. + + + + pattern + pattern + + + + CliCommandExit + + + quits the application + quits the application + + + + Quits the application. Settings are stored in configuration file and will be restored on next startup. + Quits the application. Settings are stored in configuration file and will be restored on next startup. + + + + CliCommandHelp + + + shows this help message + shows this help message + + + + Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. +To see list of supported commands, type %2 without any arguments. + +When passing <command> name, you can skip special prefix character ('%3'). + +You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. + Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. +To see list of supported commands, type %2 without any arguments. + +When passing <command> name, you can skip special prefix character ('%3'). + +You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. + + + + command + CLI command syntax + command + + + + No such command: %1 + No such command: %1 + + + + Type '%1' for list of available commands. + Type '%1' for list of available commands. + + + + Usage: %1%2 + Usage: %1%2 + + + + Aliases: %1 + Aliases: %1 + + + + CliCommandHistory + + + Current history limit is set to: %1 + Current history limit is set to: %1 + + + + prints history or erases it + prints history or erases it + + + + When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. + +When the -c or --clear option is passed, then the history gets erased. +When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. +Use -ql or --querylimit option to see the current limit value. + When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. + +When the -c or --clear option is passed, then the history gets erased. +When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. +Use -ql or --querylimit option to see the current limit value. + + + + number + number + + + + Console history erased. + Console history erased. + + + + Invalid number: %1 + Invalid number: %1 + + + + History limit set to %1 + History limit set to %1 + + + + CliCommandMode + + + Current results printing mode: %1 + Current results printing mode: %1 + + + + Invalid results printing mode: %1 + Invalid results printing mode: %1 + + + + New results printing mode: %1 + New results printing mode: %1 + + + + tells or changes the query results format + tells or changes the query results format + + + + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: +- CLASSIC - columns are separated by a comma, not aligned, +- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, +- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), +- ROW - each column from the row is displayed in new line, so the full data is displayed. + +The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. + +The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. + +The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. + +The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: +- CLASSIC - columns are separated by a comma, not aligned, +- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, +- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), +- ROW - each column from the row is displayed in new line, so the full data is displayed. + +The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. + +The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. + +The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. + +The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). + + + + CliCommandNullValue + + + Current NULL representation string: %1 + Current NULL representation string: %1 + + + + tells or changes the NULL representation string + tells or changes the NULL representation string + + + + If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. + If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. + + + + CliCommandOpen + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. + File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. + + + + Database %1 has been open and set as the current working database. + Database %1 has been open and set as the current working database. + + + + opens database connection + opens database connection + + + + Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. + Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. + + + + name + CLI command syntax + name + + + + path + CLI command syntax + path + + + + CliCommandPwd + + + prints the current working directory + prints the current working directory + + + + This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. + This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. + + + + CliCommandRemove + + + No such database: %1 + No such database: %1 + + + + Database removed: %1 + Database removed: %1 + + + + New current database set: + New current database set: + + + + removes database from the list + removes database from the list + + + + Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. + Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. + + + + name + CLI command syntax + name + + + + CliCommandSql + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + + + + Database is not open. + Database is not open. + + + + executes SQL query + executes SQL query + + + + This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. + This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. + + + + sql + CLI command syntax + sql + + + + + Too many columns to display in %1 mode. + Too many columns to display in %1 mode. + + + + Row %1 + Row %1 + + + + Query execution error: %1 + Query execution error: %1 + + + + CliCommandTables + + + No such database: %1. Use %2 to see list of known databases. + No such database: %1. Use %2 to see list of known databases. + + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + Database %1 is closed. + Database %1 is closed. + + + + + Database + Database + + + + Table + Table + + + + prints list of tables in the database + prints list of tables in the database + + + + Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. +When the -s option is given, then system tables are also listed. + Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. +When the -s option is given, then system tables are also listed. + + + + database + CLI command syntax + database + + + + CliCommandTree + + + No current working database is selected. Use %1 to define one and then run %2. + No current working database is selected. Use %1 to define one and then run %2. + + + + Tables + Tables + + + + Views + Views + + + + Columns + Columns + + + + Indexes + Indexes + + + + + Triggers + Triggers + + + + prints all objects in the database as a tree + prints all objects in the database as a tree + + + + Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. +When -c option is given, then also columns will be listed under each table. +When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). +The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. + Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. +When -c option is given, then also columns will be listed under each table. +When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). +The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. + + + + CliCommandUse + + + No current database selected. + No current database selected. + + + + + Current database: %1 + Current database: %1 + + + + No such database: %1 + No such database: %1 + + + + changes default working database + changes default working database + + + + Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. + +What is current working database? +When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). + +The default database can be selected in various ways: +- using %1 command, +- by passing database file name to the application startup parameters, +- by passing registered database name to the application startup parameters, +- by restoring previously selected default database from saved configuration, +- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. + Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. + +What is current working database? +When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). + +The default database can be selected in various ways: +- using %1 command, +- by passing database file name to the application startup parameters, +- by passing registered database name to the application startup parameters, +- by restoring previously selected default database from saved configuration, +- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. + + + + name + CLI command syntax + name + + + + QObject + + + Insufficient number of arguments. + Insufficient number of arguments. + + + + Too many arguments. + Too many arguments. + + + + Invalid argument value: %1. +Expected one of: %2 + Invalid argument value: %1. +Expected one of: %2 + + + + Unknown option: %1 + CLI command syntax + Unknown option: %1 + + + + Option %1 requires an argument. + CLI command syntax + Option %1 requires an argument. + + + + string + CLI command syntax + string + + + + Command line interface to SQLiteStudio, a SQLite manager. + Command line interface to SQLiteStudio, a SQLite manager. + + + + Enables debug messages on standard error output. + Enables debug messages on standard error output. + + + + Enables Lemon parser debug messages for SQL code assistant. + Enables Lemon parser debug messages for SQL code assistant. + + + + Lists plugins installed in the SQLiteStudio and quits. + Lists plugins installed in the SQLiteStudio and quits. + + + + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + + + + SQL file + SQL file + + + + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. + + + + codec + codec + + + + Lists available codecs to be used with -c option and quits. + Lists available codecs to be used with -c option and quits. + + + + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. + + + + file + file + + + + Database file to open + Database file to open + + + + Invalid codec: %1. Use -cl option to list available codecs. + Invalid codec: %1. Use -cl option to list available codecs. + + + + Database file argument is mandatory when executing SQL file. + Database file argument is mandatory when executing SQL file. + + + + Could not open specified database for executing SQL file. You may try using -d option to find out more details. + Could not open specified database for executing SQL file. You may try using -d option to find out more details. + + + diff --git a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_da_DK.ts b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_da_DK.ts new file mode 100644 index 0000000..ab3c350 --- /dev/null +++ b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_da_DK.ts @@ -0,0 +1,876 @@ + + + + + CLI + + + Current database: %1 + Current database: %1 + + + + No current working database is set. + No current working database is set. + + + + Type %1 for help + Type %1 for help + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + Database passed in command line parameters (%1) was already on the list under name: %2 + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + closed + closed + + + + CliCommand + + + Usage: %1%2 + Usage: %1%2 + + + + CliCommandAdd + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + Database added: %1 + Database added: %1 + + + + adds new database to the list + adds new database to the list + + + + Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. + Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. + + + + name + CLI command syntax + name + + + + path + CLI command syntax + path + + + + CliCommandCd + + + Changed directory to: %1 + Changed directory to: %1 + + + + Could not change directory to: %1 + Could not change directory to: %1 + + + + changes current working directory + changes current working directory + + + + Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. + Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. + + + + path + CLI command syntax + path + + + + CliCommandClose + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + + Connection to database %1 closed. + Connection to database %1 closed. + + + + No such database: %1. Use %2 to see list of known databases. + No such database: %1. Use %2 to see list of known databases. + + + + closes given (or current) database + closes given (or current) database + + + + Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). + Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). + + + + name + CLI command syntax + name + + + + CliCommandDbList + + + No current working database defined. + No current working database defined. + + + + Databases: + Databases: + + + + + Name + CLI db name column + Name + + + + + Open + CLI connection state column + Open + + + + + Closed + CLI connection state column + Closed + + + + + Connection + CLI connection state column + Connection + + + + + Database file path + Database file path + + + + prints list of registered databases + prints list of registered databases + + + + Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. + Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. + + + + CliCommandDesc + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + + + + Database is not open. + Database is not open. + + + + Cannot find table named: %1 + Cannot find table named: %1 + + + + shows details about the table + shows details about the table + + + + table + table + + + + Table: %1 + Table: %1 + + + + Column name + Column name + + + + Data type + Data type + + + + Constraints + Constraints + + + + Virtual table: %1 + Virtual table: %1 + + + + Construction arguments: + Construction arguments: + + + + No construction arguments were passed for this virtual table. + No construction arguments were passed for this virtual table. + + + + CliCommandDir + + + lists directories and files in current working directory + lists directories and files in current working directory + + + + This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. + +You can pass <pattern> with wildcard characters to filter output. + This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. + +You can pass <pattern> with wildcard characters to filter output. + + + + pattern + pattern + + + + CliCommandExit + + + quits the application + quits the application + + + + Quits the application. Settings are stored in configuration file and will be restored on next startup. + Quits the application. Settings are stored in configuration file and will be restored on next startup. + + + + CliCommandHelp + + + shows this help message + shows this help message + + + + Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. +To see list of supported commands, type %2 without any arguments. + +When passing <command> name, you can skip special prefix character ('%3'). + +You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. + Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. +To see list of supported commands, type %2 without any arguments. + +When passing <command> name, you can skip special prefix character ('%3'). + +You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. + + + + command + CLI command syntax + command + + + + No such command: %1 + No such command: %1 + + + + Type '%1' for list of available commands. + Type '%1' for list of available commands. + + + + Usage: %1%2 + Usage: %1%2 + + + + Aliases: %1 + Aliases: %1 + + + + CliCommandHistory + + + Current history limit is set to: %1 + Current history limit is set to: %1 + + + + prints history or erases it + prints history or erases it + + + + When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. + +When the -c or --clear option is passed, then the history gets erased. +When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. +Use -ql or --querylimit option to see the current limit value. + When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. + +When the -c or --clear option is passed, then the history gets erased. +When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. +Use -ql or --querylimit option to see the current limit value. + + + + number + number + + + + Console history erased. + Console history erased. + + + + Invalid number: %1 + Invalid number: %1 + + + + History limit set to %1 + History limit set to %1 + + + + CliCommandMode + + + Current results printing mode: %1 + Current results printing mode: %1 + + + + Invalid results printing mode: %1 + Invalid results printing mode: %1 + + + + New results printing mode: %1 + New results printing mode: %1 + + + + tells or changes the query results format + tells or changes the query results format + + + + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: +- CLASSIC - columns are separated by a comma, not aligned, +- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, +- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), +- ROW - each column from the row is displayed in new line, so the full data is displayed. + +The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. + +The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. + +The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. + +The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: +- CLASSIC - columns are separated by a comma, not aligned, +- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, +- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), +- ROW - each column from the row is displayed in new line, so the full data is displayed. + +The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. + +The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. + +The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. + +The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). + + + + CliCommandNullValue + + + Current NULL representation string: %1 + Current NULL representation string: %1 + + + + tells or changes the NULL representation string + tells or changes the NULL representation string + + + + If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. + If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. + + + + CliCommandOpen + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. + File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. + + + + Database %1 has been open and set as the current working database. + Database %1 has been open and set as the current working database. + + + + opens database connection + opens database connection + + + + Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. + Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. + + + + name + CLI command syntax + name + + + + path + CLI command syntax + path + + + + CliCommandPwd + + + prints the current working directory + prints the current working directory + + + + This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. + This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. + + + + CliCommandRemove + + + No such database: %1 + No such database: %1 + + + + Database removed: %1 + Database removed: %1 + + + + New current database set: + New current database set: + + + + removes database from the list + removes database from the list + + + + Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. + Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. + + + + name + CLI command syntax + name + + + + CliCommandSql + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + + + + Database is not open. + Database is not open. + + + + executes SQL query + executes SQL query + + + + This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. + This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. + + + + sql + CLI command syntax + sql + + + + + Too many columns to display in %1 mode. + Too many columns to display in %1 mode. + + + + Row %1 + Row %1 + + + + Query execution error: %1 + Query execution error: %1 + + + + CliCommandTables + + + No such database: %1. Use %2 to see list of known databases. + No such database: %1. Use %2 to see list of known databases. + + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + Database %1 is closed. + Database %1 is closed. + + + + + Database + Database + + + + Table + Table + + + + prints list of tables in the database + prints list of tables in the database + + + + Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. +When the -s option is given, then system tables are also listed. + Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. +When the -s option is given, then system tables are also listed. + + + + database + CLI command syntax + database + + + + CliCommandTree + + + No current working database is selected. Use %1 to define one and then run %2. + No current working database is selected. Use %1 to define one and then run %2. + + + + Tables + Tables + + + + Views + Views + + + + Columns + Columns + + + + Indexes + Indexes + + + + + Triggers + Triggers + + + + prints all objects in the database as a tree + prints all objects in the database as a tree + + + + Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. +When -c option is given, then also columns will be listed under each table. +When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). +The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. + Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. +When -c option is given, then also columns will be listed under each table. +When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). +The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. + + + + CliCommandUse + + + No current database selected. + No current database selected. + + + + + Current database: %1 + Current database: %1 + + + + No such database: %1 + No such database: %1 + + + + changes default working database + changes default working database + + + + Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. + +What is current working database? +When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). + +The default database can be selected in various ways: +- using %1 command, +- by passing database file name to the application startup parameters, +- by passing registered database name to the application startup parameters, +- by restoring previously selected default database from saved configuration, +- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. + Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. + +What is current working database? +When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). + +The default database can be selected in various ways: +- using %1 command, +- by passing database file name to the application startup parameters, +- by passing registered database name to the application startup parameters, +- by restoring previously selected default database from saved configuration, +- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. + + + + name + CLI command syntax + name + + + + QObject + + + Insufficient number of arguments. + Insufficient number of arguments. + + + + Too many arguments. + Too many arguments. + + + + Invalid argument value: %1. +Expected one of: %2 + Invalid argument value: %1. +Expected one of: %2 + + + + Unknown option: %1 + CLI command syntax + Unknown option: %1 + + + + Option %1 requires an argument. + CLI command syntax + Option %1 requires an argument. + + + + string + CLI command syntax + string + + + + Command line interface to SQLiteStudio, a SQLite manager. + Command line interface to SQLiteStudio, a SQLite manager. + + + + Enables debug messages on standard error output. + Enables debug messages on standard error output. + + + + Enables Lemon parser debug messages for SQL code assistant. + Enables Lemon parser debug messages for SQL code assistant. + + + + Lists plugins installed in the SQLiteStudio and quits. + Lists plugins installed in the SQLiteStudio and quits. + + + + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + + + + SQL file + SQL file + + + + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. + + + + codec + codec + + + + Lists available codecs to be used with -c option and quits. + Lists available codecs to be used with -c option and quits. + + + + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. + + + + file + file + + + + Database file to open + Database file to open + + + + Invalid codec: %1. Use -cl option to list available codecs. + Invalid codec: %1. Use -cl option to list available codecs. + + + + Database file argument is mandatory when executing SQL file. + Database file argument is mandatory when executing SQL file. + + + + Could not open specified database for executing SQL file. You may try using -d option to find out more details. + Could not open specified database for executing SQL file. You may try using -d option to find out more details. + + + diff --git a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_de.qm b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_de.qm deleted file mode 100644 index 9dad8df..0000000 Binary files a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_de.qm and /dev/null differ diff --git a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_de.ts b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_de.ts deleted file mode 100644 index c00f2e6..0000000 --- a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_de.ts +++ /dev/null @@ -1,788 +0,0 @@ - - - - - CLI - - - Current database: %1 - - - - - No current working database is set. - - - - - Type %1 for help - - - - - Database passed in command line parameters (%1) was already on the list under name: %2 - - - - - Could not add database %1 to list. - - - - - closed - - - - - CliCommand - - - Usage: %1%2 - - - - - CliCommandAdd - - - Could not add database %1 to list. - - - - - Database added: %1 - - - - - adds new database to the list - - - - - Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. - - - - - name - CLI command syntax - - - - - path - CLI command syntax - - - - - CliCommandCd - - - Changed directory to: %1 - - - - - Could not change directory to: %1 - - - - - changes current working directory - - - - - Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. - - - - - path - CLI command syntax - - - - - CliCommandClose - - - Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. - - - - - - Connection to database %1 closed. - - - - - No such database: %1. Use %2 to see list of known databases. - - - - - closes given (or current) database - - - - - Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). - - - - - name - CLI command syntax - - - - - CliCommandDbList - - - No current working database defined. - - - - - Databases: - - - - - - Name - CLI db name column - - - - - - Open - CLI connection state column - - - - - - Closed - CLI connection state column - - - - - - Connection - CLI connection state column - - - - - - Database file path - - - - - prints list of registered databases - - - - - Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. - - - - - CliCommandDesc - - - No working database is set. -Call %1 command to set working database. -Call %2 to see list of all databases. - - - - - Database is not open. - - - - - Cannot find table named: %1 - - - - - shows details about the table - - - - - table - - - - - Table: %1 - - - - - Column name - - - - - Data type - - - - - Constraints - - - - - Virtual table: %1 - - - - - Construction arguments: - - - - - No construction arguments were passed for this virtual table. - - - - - CliCommandDir - - - lists directories and files in current working directory - - - - - This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. - -You can pass <pattern> with wildcard characters to filter output. - - - - - pattern - - - - - CliCommandExit - - - quits the application - - - - - Quits the application. Settings are stored in configuration file and will be restored on next startup. - - - - - CliCommandHelp - - - shows this help message - - - - - Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. -To see list of supported commands, type %2 without any arguments. - -When passing <command> name, you can skip special prefix character ('%3'). - -You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. - - - - - command - CLI command syntax - - - - - No such command: %1 - - - - - Type '%1' for list of available commands. - - - - - Usage: %1%2 - - - - - Aliases: %1 - - - - - CliCommandHistory - - - Current history limit is set to: %1 - - - - - prints history or erases it - - - - - When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. - -When the -c or --clear option is passed, then the history gets erased. -When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. -Use -ql or --querylimit option to see the current limit value. - - - - - number - - - - - Console history erased. - - - - - Invalid number: %1 - - - - - History limit set to %1 - - - - - CliCommandMode - - - Current results printing mode: %1 - - - - - Invalid results printing mode: %1 - - - - - New results printing mode: %1 - - - - - tells or changes the query results format - - - - - When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: -- CLASSIC - columns are separated by a comma, not aligned, -- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, -- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), -- ROW - each column from the row is displayed in new line, so the full data is displayed. - -The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. - -The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. - -The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. -ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widhts, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. - -The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). - - - - - CliCommandNullValue - - - Current NULL representation string: %1 - - - - - tells or changes the NULL representation string - - - - - If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. - - - - - CliCommandOpen - - - Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. - - - - - Could not add database %1 to list. - - - - - File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. - - - - - Database %1 has been open and set as the current working database. - - - - - opens database connection - - - - - Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. - - - - - name - CLI command syntax - - - - - path - CLI command syntax - - - - - CliCommandPwd - - - prints the current working directory - - - - - This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. - - - - - CliCommandRemove - - - No such database: %1 - - - - - Database removed: %1 - - - - - New current database set: - - - - - removes database from the list - - - - - Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. - - - - - name - CLI command syntax - - - - - CliCommandSql - - - No working database is set. -Call %1 command to set working database. -Call %2 to see list of all databases. - - - - - Database is not open. - - - - - executes SQL query - - - - - This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. - - - - - sql - CLI command syntax - - - - - - Too many columns to display in %1 mode. - - - - - Row %1 - - - - - Query execution error: %1 - - - - - CliCommandTables - - - No such database: %1. Use %2 to see list of known databases. - - - - - Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. - - - - - Database %1 is closed. - - - - - - Database - - - - - Table - - - - - prints list of tables in the database - - - - - Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. -When the -s option is given, then system tables are also listed. - - - - - database - CLI command syntax - - - - - CliCommandTree - - - No current working database is selected. Use %1 to define one and then run %2. - - - - - Tables - - - - - Views - - - - - Columns - - - - - Indexes - - - - - - Triggers - - - - - prints all objects in the database as a tree - - - - - Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. -When -c option is given, then also columns will be listed under each table. -When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). -The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. - - - - - CliCommandUse - - - No current database selected. - - - - - - Current database: %1 - - - - - No such database: %1 - - - - - changes default working database - - - - - Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. - -What is current working database? -When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). - -The default database can be selected in various ways: -- using %1 command, -- by passing database file name to the application startup parameters, -- by passing registered database name to the application startup parameters, -- by restoring previously selected default database from saved configuration, -- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. - - - - - name - CLI command syntax - - - - - QObject - - - Insufficient number of arguments. - - - - - Too many arguments. - - - - - Invalid argument value: %1. -Expected one of: %2 - - - - - Unknown option: %1 - CLI command syntax - - - - - Option %1 requires an argument. - CLI command syntax - - - - - string - CLI command syntax - - - - - Command line interface to SQLiteStudio, a SQLite manager. - - - - - Enables debug messages on standard error output. - - - - - Enables Lemon parser debug messages for SQL code assistant. - - - - - Lists plugins installed in the SQLiteStudio and quits. - - - - - file - - - - - Database file to open - - - - diff --git a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_de_DE.ts b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_de_DE.ts new file mode 100644 index 0000000..bd8b6c2 --- /dev/null +++ b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_de_DE.ts @@ -0,0 +1,876 @@ + + + + + CLI + + + Current database: %1 + Current database: %1 + + + + No current working database is set. + No current working database is set. + + + + Type %1 for help + Type %1 for help + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + Database passed in command line parameters (%1) was already on the list under name: %2 + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + closed + closed + + + + CliCommand + + + Usage: %1%2 + Usage: %1%2 + + + + CliCommandAdd + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + Database added: %1 + Database added: %1 + + + + adds new database to the list + adds new database to the list + + + + Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. + Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. + + + + name + CLI command syntax + name + + + + path + CLI command syntax + path + + + + CliCommandCd + + + Changed directory to: %1 + Changed directory to: %1 + + + + Could not change directory to: %1 + Could not change directory to: %1 + + + + changes current working directory + changes current working directory + + + + Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. + Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. + + + + path + CLI command syntax + path + + + + CliCommandClose + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + + Connection to database %1 closed. + Connection to database %1 closed. + + + + No such database: %1. Use %2 to see list of known databases. + No such database: %1. Use %2 to see list of known databases. + + + + closes given (or current) database + closes given (or current) database + + + + Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). + Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). + + + + name + CLI command syntax + name + + + + CliCommandDbList + + + No current working database defined. + No current working database defined. + + + + Databases: + Databases: + + + + + Name + CLI db name column + Name + + + + + Open + CLI connection state column + Open + + + + + Closed + CLI connection state column + Closed + + + + + Connection + CLI connection state column + Connection + + + + + Database file path + Database file path + + + + prints list of registered databases + prints list of registered databases + + + + Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. + Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. + + + + CliCommandDesc + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + + + + Database is not open. + Database is not open. + + + + Cannot find table named: %1 + Cannot find table named: %1 + + + + shows details about the table + shows details about the table + + + + table + table + + + + Table: %1 + Table: %1 + + + + Column name + Column name + + + + Data type + Data type + + + + Constraints + Constraints + + + + Virtual table: %1 + Virtual table: %1 + + + + Construction arguments: + Construction arguments: + + + + No construction arguments were passed for this virtual table. + No construction arguments were passed for this virtual table. + + + + CliCommandDir + + + lists directories and files in current working directory + lists directories and files in current working directory + + + + This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. + +You can pass <pattern> with wildcard characters to filter output. + This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. + +You can pass <pattern> with wildcard characters to filter output. + + + + pattern + pattern + + + + CliCommandExit + + + quits the application + quits the application + + + + Quits the application. Settings are stored in configuration file and will be restored on next startup. + Quits the application. Settings are stored in configuration file and will be restored on next startup. + + + + CliCommandHelp + + + shows this help message + shows this help message + + + + Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. +To see list of supported commands, type %2 without any arguments. + +When passing <command> name, you can skip special prefix character ('%3'). + +You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. + Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. +To see list of supported commands, type %2 without any arguments. + +When passing <command> name, you can skip special prefix character ('%3'). + +You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. + + + + command + CLI command syntax + command + + + + No such command: %1 + No such command: %1 + + + + Type '%1' for list of available commands. + Type '%1' for list of available commands. + + + + Usage: %1%2 + Usage: %1%2 + + + + Aliases: %1 + Aliases: %1 + + + + CliCommandHistory + + + Current history limit is set to: %1 + Current history limit is set to: %1 + + + + prints history or erases it + prints history or erases it + + + + When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. + +When the -c or --clear option is passed, then the history gets erased. +When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. +Use -ql or --querylimit option to see the current limit value. + When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. + +When the -c or --clear option is passed, then the history gets erased. +When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. +Use -ql or --querylimit option to see the current limit value. + + + + number + number + + + + Console history erased. + Console history erased. + + + + Invalid number: %1 + Invalid number: %1 + + + + History limit set to %1 + History limit set to %1 + + + + CliCommandMode + + + Current results printing mode: %1 + Current results printing mode: %1 + + + + Invalid results printing mode: %1 + Invalid results printing mode: %1 + + + + New results printing mode: %1 + New results printing mode: %1 + + + + tells or changes the query results format + tells or changes the query results format + + + + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: +- CLASSIC - columns are separated by a comma, not aligned, +- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, +- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), +- ROW - each column from the row is displayed in new line, so the full data is displayed. + +The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. + +The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. + +The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. + +The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: +- CLASSIC - columns are separated by a comma, not aligned, +- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, +- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), +- ROW - each column from the row is displayed in new line, so the full data is displayed. + +The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. + +The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. + +The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. + +The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). + + + + CliCommandNullValue + + + Current NULL representation string: %1 + Current NULL representation string: %1 + + + + tells or changes the NULL representation string + tells or changes the NULL representation string + + + + If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. + If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. + + + + CliCommandOpen + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. + File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. + + + + Database %1 has been open and set as the current working database. + Database %1 has been open and set as the current working database. + + + + opens database connection + opens database connection + + + + Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. + Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. + + + + name + CLI command syntax + name + + + + path + CLI command syntax + path + + + + CliCommandPwd + + + prints the current working directory + prints the current working directory + + + + This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. + This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. + + + + CliCommandRemove + + + No such database: %1 + No such database: %1 + + + + Database removed: %1 + Database removed: %1 + + + + New current database set: + New current database set: + + + + removes database from the list + removes database from the list + + + + Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. + Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. + + + + name + CLI command syntax + name + + + + CliCommandSql + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + + + + Database is not open. + Database is not open. + + + + executes SQL query + executes SQL query + + + + This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. + This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. + + + + sql + CLI command syntax + sql + + + + + Too many columns to display in %1 mode. + Too many columns to display in %1 mode. + + + + Row %1 + Row %1 + + + + Query execution error: %1 + Query execution error: %1 + + + + CliCommandTables + + + No such database: %1. Use %2 to see list of known databases. + No such database: %1. Use %2 to see list of known databases. + + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + Database %1 is closed. + Database %1 is closed. + + + + + Database + Database + + + + Table + Table + + + + prints list of tables in the database + prints list of tables in the database + + + + Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. +When the -s option is given, then system tables are also listed. + Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. +When the -s option is given, then system tables are also listed. + + + + database + CLI command syntax + database + + + + CliCommandTree + + + No current working database is selected. Use %1 to define one and then run %2. + No current working database is selected. Use %1 to define one and then run %2. + + + + Tables + Tables + + + + Views + Views + + + + Columns + Columns + + + + Indexes + Indexes + + + + + Triggers + Triggers + + + + prints all objects in the database as a tree + prints all objects in the database as a tree + + + + Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. +When -c option is given, then also columns will be listed under each table. +When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). +The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. + Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. +When -c option is given, then also columns will be listed under each table. +When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). +The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. + + + + CliCommandUse + + + No current database selected. + No current database selected. + + + + + Current database: %1 + Current database: %1 + + + + No such database: %1 + No such database: %1 + + + + changes default working database + changes default working database + + + + Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. + +What is current working database? +When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). + +The default database can be selected in various ways: +- using %1 command, +- by passing database file name to the application startup parameters, +- by passing registered database name to the application startup parameters, +- by restoring previously selected default database from saved configuration, +- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. + Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. + +What is current working database? +When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). + +The default database can be selected in various ways: +- using %1 command, +- by passing database file name to the application startup parameters, +- by passing registered database name to the application startup parameters, +- by restoring previously selected default database from saved configuration, +- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. + + + + name + CLI command syntax + name + + + + QObject + + + Insufficient number of arguments. + Insufficient number of arguments. + + + + Too many arguments. + Too many arguments. + + + + Invalid argument value: %1. +Expected one of: %2 + Invalid argument value: %1. +Expected one of: %2 + + + + Unknown option: %1 + CLI command syntax + Unknown option: %1 + + + + Option %1 requires an argument. + CLI command syntax + Option %1 requires an argument. + + + + string + CLI command syntax + string + + + + Command line interface to SQLiteStudio, a SQLite manager. + Command line interface to SQLiteStudio, a SQLite manager. + + + + Enables debug messages on standard error output. + Enables debug messages on standard error output. + + + + Enables Lemon parser debug messages for SQL code assistant. + Enables Lemon parser debug messages for SQL code assistant. + + + + Lists plugins installed in the SQLiteStudio and quits. + Lists plugins installed in the SQLiteStudio and quits. + + + + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + + + + SQL file + SQL file + + + + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. + + + + codec + codec + + + + Lists available codecs to be used with -c option and quits. + Lists available codecs to be used with -c option and quits. + + + + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. + + + + file + file + + + + Database file to open + Database file to open + + + + Invalid codec: %1. Use -cl option to list available codecs. + Invalid codec: %1. Use -cl option to list available codecs. + + + + Database file argument is mandatory when executing SQL file. + Database file argument is mandatory when executing SQL file. + + + + Could not open specified database for executing SQL file. You may try using -d option to find out more details. + Could not open specified database for executing SQL file. You may try using -d option to find out more details. + + + diff --git a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_el_GR.ts b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_el_GR.ts new file mode 100644 index 0000000..cd0a56d --- /dev/null +++ b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_el_GR.ts @@ -0,0 +1,876 @@ + + + + + CLI + + + Current database: %1 + Current database: %1 + + + + No current working database is set. + No current working database is set. + + + + Type %1 for help + Type %1 for help + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + Database passed in command line parameters (%1) was already on the list under name: %2 + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + closed + closed + + + + CliCommand + + + Usage: %1%2 + Usage: %1%2 + + + + CliCommandAdd + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + Database added: %1 + Database added: %1 + + + + adds new database to the list + adds new database to the list + + + + Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. + Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. + + + + name + CLI command syntax + name + + + + path + CLI command syntax + path + + + + CliCommandCd + + + Changed directory to: %1 + Changed directory to: %1 + + + + Could not change directory to: %1 + Could not change directory to: %1 + + + + changes current working directory + changes current working directory + + + + Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. + Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. + + + + path + CLI command syntax + path + + + + CliCommandClose + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + + Connection to database %1 closed. + Connection to database %1 closed. + + + + No such database: %1. Use %2 to see list of known databases. + No such database: %1. Use %2 to see list of known databases. + + + + closes given (or current) database + closes given (or current) database + + + + Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). + Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). + + + + name + CLI command syntax + name + + + + CliCommandDbList + + + No current working database defined. + No current working database defined. + + + + Databases: + Databases: + + + + + Name + CLI db name column + Name + + + + + Open + CLI connection state column + Open + + + + + Closed + CLI connection state column + Closed + + + + + Connection + CLI connection state column + Connection + + + + + Database file path + Database file path + + + + prints list of registered databases + prints list of registered databases + + + + Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. + Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. + + + + CliCommandDesc + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + + + + Database is not open. + Database is not open. + + + + Cannot find table named: %1 + Cannot find table named: %1 + + + + shows details about the table + shows details about the table + + + + table + table + + + + Table: %1 + Table: %1 + + + + Column name + Column name + + + + Data type + Data type + + + + Constraints + Constraints + + + + Virtual table: %1 + Virtual table: %1 + + + + Construction arguments: + Construction arguments: + + + + No construction arguments were passed for this virtual table. + No construction arguments were passed for this virtual table. + + + + CliCommandDir + + + lists directories and files in current working directory + lists directories and files in current working directory + + + + This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. + +You can pass <pattern> with wildcard characters to filter output. + This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. + +You can pass <pattern> with wildcard characters to filter output. + + + + pattern + pattern + + + + CliCommandExit + + + quits the application + quits the application + + + + Quits the application. Settings are stored in configuration file and will be restored on next startup. + Quits the application. Settings are stored in configuration file and will be restored on next startup. + + + + CliCommandHelp + + + shows this help message + shows this help message + + + + Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. +To see list of supported commands, type %2 without any arguments. + +When passing <command> name, you can skip special prefix character ('%3'). + +You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. + Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. +To see list of supported commands, type %2 without any arguments. + +When passing <command> name, you can skip special prefix character ('%3'). + +You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. + + + + command + CLI command syntax + command + + + + No such command: %1 + No such command: %1 + + + + Type '%1' for list of available commands. + Type '%1' for list of available commands. + + + + Usage: %1%2 + Usage: %1%2 + + + + Aliases: %1 + Aliases: %1 + + + + CliCommandHistory + + + Current history limit is set to: %1 + Current history limit is set to: %1 + + + + prints history or erases it + prints history or erases it + + + + When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. + +When the -c or --clear option is passed, then the history gets erased. +When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. +Use -ql or --querylimit option to see the current limit value. + When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. + +When the -c or --clear option is passed, then the history gets erased. +When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. +Use -ql or --querylimit option to see the current limit value. + + + + number + number + + + + Console history erased. + Console history erased. + + + + Invalid number: %1 + Invalid number: %1 + + + + History limit set to %1 + History limit set to %1 + + + + CliCommandMode + + + Current results printing mode: %1 + Current results printing mode: %1 + + + + Invalid results printing mode: %1 + Invalid results printing mode: %1 + + + + New results printing mode: %1 + New results printing mode: %1 + + + + tells or changes the query results format + tells or changes the query results format + + + + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: +- CLASSIC - columns are separated by a comma, not aligned, +- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, +- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), +- ROW - each column from the row is displayed in new line, so the full data is displayed. + +The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. + +The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. + +The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. + +The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: +- CLASSIC - columns are separated by a comma, not aligned, +- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, +- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), +- ROW - each column from the row is displayed in new line, so the full data is displayed. + +The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. + +The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. + +The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. + +The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). + + + + CliCommandNullValue + + + Current NULL representation string: %1 + Current NULL representation string: %1 + + + + tells or changes the NULL representation string + tells or changes the NULL representation string + + + + If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. + If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. + + + + CliCommandOpen + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. + File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. + + + + Database %1 has been open and set as the current working database. + Database %1 has been open and set as the current working database. + + + + opens database connection + opens database connection + + + + Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. + Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. + + + + name + CLI command syntax + name + + + + path + CLI command syntax + path + + + + CliCommandPwd + + + prints the current working directory + prints the current working directory + + + + This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. + This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. + + + + CliCommandRemove + + + No such database: %1 + No such database: %1 + + + + Database removed: %1 + Database removed: %1 + + + + New current database set: + New current database set: + + + + removes database from the list + removes database from the list + + + + Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. + Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. + + + + name + CLI command syntax + name + + + + CliCommandSql + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + + + + Database is not open. + Database is not open. + + + + executes SQL query + executes SQL query + + + + This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. + This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. + + + + sql + CLI command syntax + sql + + + + + Too many columns to display in %1 mode. + Too many columns to display in %1 mode. + + + + Row %1 + Row %1 + + + + Query execution error: %1 + Query execution error: %1 + + + + CliCommandTables + + + No such database: %1. Use %2 to see list of known databases. + No such database: %1. Use %2 to see list of known databases. + + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + Database %1 is closed. + Database %1 is closed. + + + + + Database + Database + + + + Table + Table + + + + prints list of tables in the database + prints list of tables in the database + + + + Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. +When the -s option is given, then system tables are also listed. + Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. +When the -s option is given, then system tables are also listed. + + + + database + CLI command syntax + database + + + + CliCommandTree + + + No current working database is selected. Use %1 to define one and then run %2. + No current working database is selected. Use %1 to define one and then run %2. + + + + Tables + Tables + + + + Views + Views + + + + Columns + Columns + + + + Indexes + Indexes + + + + + Triggers + Triggers + + + + prints all objects in the database as a tree + prints all objects in the database as a tree + + + + Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. +When -c option is given, then also columns will be listed under each table. +When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). +The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. + Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. +When -c option is given, then also columns will be listed under each table. +When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). +The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. + + + + CliCommandUse + + + No current database selected. + No current database selected. + + + + + Current database: %1 + Current database: %1 + + + + No such database: %1 + No such database: %1 + + + + changes default working database + changes default working database + + + + Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. + +What is current working database? +When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). + +The default database can be selected in various ways: +- using %1 command, +- by passing database file name to the application startup parameters, +- by passing registered database name to the application startup parameters, +- by restoring previously selected default database from saved configuration, +- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. + Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. + +What is current working database? +When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). + +The default database can be selected in various ways: +- using %1 command, +- by passing database file name to the application startup parameters, +- by passing registered database name to the application startup parameters, +- by restoring previously selected default database from saved configuration, +- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. + + + + name + CLI command syntax + name + + + + QObject + + + Insufficient number of arguments. + Insufficient number of arguments. + + + + Too many arguments. + Too many arguments. + + + + Invalid argument value: %1. +Expected one of: %2 + Invalid argument value: %1. +Expected one of: %2 + + + + Unknown option: %1 + CLI command syntax + Unknown option: %1 + + + + Option %1 requires an argument. + CLI command syntax + Option %1 requires an argument. + + + + string + CLI command syntax + string + + + + Command line interface to SQLiteStudio, a SQLite manager. + Command line interface to SQLiteStudio, a SQLite manager. + + + + Enables debug messages on standard error output. + Enables debug messages on standard error output. + + + + Enables Lemon parser debug messages for SQL code assistant. + Enables Lemon parser debug messages for SQL code assistant. + + + + Lists plugins installed in the SQLiteStudio and quits. + Lists plugins installed in the SQLiteStudio and quits. + + + + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + + + + SQL file + SQL file + + + + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. + + + + codec + codec + + + + Lists available codecs to be used with -c option and quits. + Lists available codecs to be used with -c option and quits. + + + + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. + + + + file + file + + + + Database file to open + Database file to open + + + + Invalid codec: %1. Use -cl option to list available codecs. + Invalid codec: %1. Use -cl option to list available codecs. + + + + Database file argument is mandatory when executing SQL file. + Database file argument is mandatory when executing SQL file. + + + + Could not open specified database for executing SQL file. You may try using -d option to find out more details. + Could not open specified database for executing SQL file. You may try using -d option to find out more details. + + + diff --git a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_en_US.ts b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_en_US.ts new file mode 100644 index 0000000..14795d1 --- /dev/null +++ b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_en_US.ts @@ -0,0 +1,876 @@ + + + + + CLI + + + Current database: %1 + Current database: %1 + + + + No current working database is set. + No current working database is set. + + + + Type %1 for help + Type %1 for help + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + Database passed in command line parameters (%1) was already on the list under name: %2 + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + closed + closed + + + + CliCommand + + + Usage: %1%2 + Usage: %1%2 + + + + CliCommandAdd + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + Database added: %1 + Database added: %1 + + + + adds new database to the list + adds new database to the list + + + + Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. + Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. + + + + name + CLI command syntax + name + + + + path + CLI command syntax + path + + + + CliCommandCd + + + Changed directory to: %1 + Changed directory to: %1 + + + + Could not change directory to: %1 + Could not change directory to: %1 + + + + changes current working directory + changes current working directory + + + + Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. + Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. + + + + path + CLI command syntax + path + + + + CliCommandClose + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + + Connection to database %1 closed. + Connection to database %1 closed. + + + + No such database: %1. Use %2 to see list of known databases. + No such database: %1. Use %2 to see list of known databases. + + + + closes given (or current) database + closes given (or current) database + + + + Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). + Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). + + + + name + CLI command syntax + name + + + + CliCommandDbList + + + No current working database defined. + No current working database defined. + + + + Databases: + Databases: + + + + + Name + CLI db name column + Name + + + + + Open + CLI connection state column + Open + + + + + Closed + CLI connection state column + Closed + + + + + Connection + CLI connection state column + Connection + + + + + Database file path + Database file path + + + + prints list of registered databases + prints list of registered databases + + + + Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. + Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. + + + + CliCommandDesc + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + + + + Database is not open. + Database is not open. + + + + Cannot find table named: %1 + Cannot find table named: %1 + + + + shows details about the table + shows details about the table + + + + table + table + + + + Table: %1 + Table: %1 + + + + Column name + Column name + + + + Data type + Data type + + + + Constraints + Constraints + + + + Virtual table: %1 + Virtual table: %1 + + + + Construction arguments: + Construction arguments: + + + + No construction arguments were passed for this virtual table. + No construction arguments were passed for this virtual table. + + + + CliCommandDir + + + lists directories and files in current working directory + lists directories and files in current working directory + + + + This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. + +You can pass <pattern> with wildcard characters to filter output. + This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. + +You can pass <pattern> with wildcard characters to filter output. + + + + pattern + pattern + + + + CliCommandExit + + + quits the application + quits the application + + + + Quits the application. Settings are stored in configuration file and will be restored on next startup. + Quits the application. Settings are stored in configuration file and will be restored on next startup. + + + + CliCommandHelp + + + shows this help message + shows this help message + + + + Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. +To see list of supported commands, type %2 without any arguments. + +When passing <command> name, you can skip special prefix character ('%3'). + +You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. + Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. +To see list of supported commands, type %2 without any arguments. + +When passing <command> name, you can skip special prefix character ('%3'). + +You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. + + + + command + CLI command syntax + command + + + + No such command: %1 + No such command: %1 + + + + Type '%1' for list of available commands. + Type '%1' for list of available commands. + + + + Usage: %1%2 + Usage: %1%2 + + + + Aliases: %1 + Aliases: %1 + + + + CliCommandHistory + + + Current history limit is set to: %1 + Current history limit is set to: %1 + + + + prints history or erases it + prints history or erases it + + + + When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. + +When the -c or --clear option is passed, then the history gets erased. +When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. +Use -ql or --querylimit option to see the current limit value. + When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. + +When the -c or --clear option is passed, then the history gets erased. +When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. +Use -ql or --querylimit option to see the current limit value. + + + + number + number + + + + Console history erased. + Console history erased. + + + + Invalid number: %1 + Invalid number: %1 + + + + History limit set to %1 + History limit set to %1 + + + + CliCommandMode + + + Current results printing mode: %1 + Current results printing mode: %1 + + + + Invalid results printing mode: %1 + Invalid results printing mode: %1 + + + + New results printing mode: %1 + New results printing mode: %1 + + + + tells or changes the query results format + tells or changes the query results format + + + + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: +- CLASSIC - columns are separated by a comma, not aligned, +- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, +- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), +- ROW - each column from the row is displayed in new line, so the full data is displayed. + +The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. + +The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. + +The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. + +The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: +- CLASSIC - columns are separated by a comma, not aligned, +- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, +- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), +- ROW - each column from the row is displayed in new line, so the full data is displayed. + +The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. + +The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. + +The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. + +The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). + + + + CliCommandNullValue + + + Current NULL representation string: %1 + Current NULL representation string: %1 + + + + tells or changes the NULL representation string + tells or changes the NULL representation string + + + + If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. + If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. + + + + CliCommandOpen + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. + File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. + + + + Database %1 has been open and set as the current working database. + Database %1 has been open and set as the current working database. + + + + opens database connection + opens database connection + + + + Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. + Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. + + + + name + CLI command syntax + name + + + + path + CLI command syntax + path + + + + CliCommandPwd + + + prints the current working directory + prints the current working directory + + + + This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. + This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. + + + + CliCommandRemove + + + No such database: %1 + No such database: %1 + + + + Database removed: %1 + Database removed: %1 + + + + New current database set: + New current database set: + + + + removes database from the list + removes database from the list + + + + Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. + Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. + + + + name + CLI command syntax + name + + + + CliCommandSql + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + + + + Database is not open. + Database is not open. + + + + executes SQL query + executes SQL query + + + + This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. + This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. + + + + sql + CLI command syntax + sql + + + + + Too many columns to display in %1 mode. + Too many columns to display in %1 mode. + + + + Row %1 + Row %1 + + + + Query execution error: %1 + Query execution error: %1 + + + + CliCommandTables + + + No such database: %1. Use %2 to see list of known databases. + No such database: %1. Use %2 to see list of known databases. + + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + Database %1 is closed. + Database %1 is closed. + + + + + Database + Database + + + + Table + Table + + + + prints list of tables in the database + prints list of tables in the database + + + + Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. +When the -s option is given, then system tables are also listed. + Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. +When the -s option is given, then system tables are also listed. + + + + database + CLI command syntax + database + + + + CliCommandTree + + + No current working database is selected. Use %1 to define one and then run %2. + No current working database is selected. Use %1 to define one and then run %2. + + + + Tables + Tables + + + + Views + Views + + + + Columns + Columns + + + + Indexes + Indexes + + + + + Triggers + Triggers + + + + prints all objects in the database as a tree + prints all objects in the database as a tree + + + + Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. +When -c option is given, then also columns will be listed under each table. +When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). +The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. + Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. +When -c option is given, then also columns will be listed under each table. +When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). +The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. + + + + CliCommandUse + + + No current database selected. + No current database selected. + + + + + Current database: %1 + Current database: %1 + + + + No such database: %1 + No such database: %1 + + + + changes default working database + changes default working database + + + + Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. + +What is current working database? +When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). + +The default database can be selected in various ways: +- using %1 command, +- by passing database file name to the application startup parameters, +- by passing registered database name to the application startup parameters, +- by restoring previously selected default database from saved configuration, +- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. + Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. + +What is current working database? +When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). + +The default database can be selected in various ways: +- using %1 command, +- by passing database file name to the application startup parameters, +- by passing registered database name to the application startup parameters, +- by restoring previously selected default database from saved configuration, +- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. + + + + name + CLI command syntax + name + + + + QObject + + + Insufficient number of arguments. + Insufficient number of arguments. + + + + Too many arguments. + Too many arguments. + + + + Invalid argument value: %1. +Expected one of: %2 + Invalid argument value: %1. +Expected one of: %2 + + + + Unknown option: %1 + CLI command syntax + Unknown option: %1 + + + + Option %1 requires an argument. + CLI command syntax + Option %1 requires an argument. + + + + string + CLI command syntax + string + + + + Command line interface to SQLiteStudio, a SQLite manager. + Command line interface to SQLiteStudio, a SQLite manager. + + + + Enables debug messages on standard error output. + Enables debug messages on standard error output. + + + + Enables Lemon parser debug messages for SQL code assistant. + Enables Lemon parser debug messages for SQL code assistant. + + + + Lists plugins installed in the SQLiteStudio and quits. + Lists plugins installed in the SQLiteStudio and quits. + + + + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + + + + SQL file + SQL file + + + + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. + + + + codec + codec + + + + Lists available codecs to be used with -c option and quits. + Lists available codecs to be used with -c option and quits. + + + + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. + + + + file + file + + + + Database file to open + Database file to open + + + + Invalid codec: %1. Use -cl option to list available codecs. + Invalid codec: %1. Use -cl option to list available codecs. + + + + Database file argument is mandatory when executing SQL file. + Database file argument is mandatory when executing SQL file. + + + + Could not open specified database for executing SQL file. You may try using -d option to find out more details. + Could not open specified database for executing SQL file. You may try using -d option to find out more details. + + + diff --git a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_es.qm b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_es.qm deleted file mode 100644 index 9dad8df..0000000 Binary files a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_es.qm and /dev/null differ diff --git a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_es.ts b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_es.ts deleted file mode 100644 index 7c2d175..0000000 --- a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_es.ts +++ /dev/null @@ -1,788 +0,0 @@ - - - - - CLI - - - Current database: %1 - - - - - No current working database is set. - - - - - Type %1 for help - - - - - Database passed in command line parameters (%1) was already on the list under name: %2 - - - - - Could not add database %1 to list. - - - - - closed - - - - - CliCommand - - - Usage: %1%2 - - - - - CliCommandAdd - - - Could not add database %1 to list. - - - - - Database added: %1 - - - - - adds new database to the list - - - - - Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. - - - - - name - CLI command syntax - - - - - path - CLI command syntax - - - - - CliCommandCd - - - Changed directory to: %1 - - - - - Could not change directory to: %1 - - - - - changes current working directory - - - - - Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. - - - - - path - CLI command syntax - - - - - CliCommandClose - - - Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. - - - - - - Connection to database %1 closed. - - - - - No such database: %1. Use %2 to see list of known databases. - - - - - closes given (or current) database - - - - - Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). - - - - - name - CLI command syntax - - - - - CliCommandDbList - - - No current working database defined. - - - - - Databases: - - - - - - Name - CLI db name column - - - - - - Open - CLI connection state column - - - - - - Closed - CLI connection state column - - - - - - Connection - CLI connection state column - - - - - - Database file path - - - - - prints list of registered databases - - - - - Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. - - - - - CliCommandDesc - - - No working database is set. -Call %1 command to set working database. -Call %2 to see list of all databases. - - - - - Database is not open. - - - - - Cannot find table named: %1 - - - - - shows details about the table - - - - - table - - - - - Table: %1 - - - - - Column name - - - - - Data type - - - - - Constraints - - - - - Virtual table: %1 - - - - - Construction arguments: - - - - - No construction arguments were passed for this virtual table. - - - - - CliCommandDir - - - lists directories and files in current working directory - - - - - This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. - -You can pass <pattern> with wildcard characters to filter output. - - - - - pattern - - - - - CliCommandExit - - - quits the application - - - - - Quits the application. Settings are stored in configuration file and will be restored on next startup. - - - - - CliCommandHelp - - - shows this help message - - - - - Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. -To see list of supported commands, type %2 without any arguments. - -When passing <command> name, you can skip special prefix character ('%3'). - -You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. - - - - - command - CLI command syntax - - - - - No such command: %1 - - - - - Type '%1' for list of available commands. - - - - - Usage: %1%2 - - - - - Aliases: %1 - - - - - CliCommandHistory - - - Current history limit is set to: %1 - - - - - prints history or erases it - - - - - When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. - -When the -c or --clear option is passed, then the history gets erased. -When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. -Use -ql or --querylimit option to see the current limit value. - - - - - number - - - - - Console history erased. - - - - - Invalid number: %1 - - - - - History limit set to %1 - - - - - CliCommandMode - - - Current results printing mode: %1 - - - - - Invalid results printing mode: %1 - - - - - New results printing mode: %1 - - - - - tells or changes the query results format - - - - - When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: -- CLASSIC - columns are separated by a comma, not aligned, -- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, -- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), -- ROW - each column from the row is displayed in new line, so the full data is displayed. - -The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. - -The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. - -The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. -ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widhts, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. - -The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). - - - - - CliCommandNullValue - - - Current NULL representation string: %1 - - - - - tells or changes the NULL representation string - - - - - If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. - - - - - CliCommandOpen - - - Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. - - - - - Could not add database %1 to list. - - - - - File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. - - - - - Database %1 has been open and set as the current working database. - - - - - opens database connection - - - - - Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. - - - - - name - CLI command syntax - - - - - path - CLI command syntax - - - - - CliCommandPwd - - - prints the current working directory - - - - - This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. - - - - - CliCommandRemove - - - No such database: %1 - - - - - Database removed: %1 - - - - - New current database set: - - - - - removes database from the list - - - - - Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. - - - - - name - CLI command syntax - - - - - CliCommandSql - - - No working database is set. -Call %1 command to set working database. -Call %2 to see list of all databases. - - - - - Database is not open. - - - - - executes SQL query - - - - - This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. - - - - - sql - CLI command syntax - - - - - - Too many columns to display in %1 mode. - - - - - Row %1 - - - - - Query execution error: %1 - - - - - CliCommandTables - - - No such database: %1. Use %2 to see list of known databases. - - - - - Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. - - - - - Database %1 is closed. - - - - - - Database - - - - - Table - - - - - prints list of tables in the database - - - - - Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. -When the -s option is given, then system tables are also listed. - - - - - database - CLI command syntax - - - - - CliCommandTree - - - No current working database is selected. Use %1 to define one and then run %2. - - - - - Tables - - - - - Views - - - - - Columns - - - - - Indexes - - - - - - Triggers - - - - - prints all objects in the database as a tree - - - - - Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. -When -c option is given, then also columns will be listed under each table. -When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). -The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. - - - - - CliCommandUse - - - No current database selected. - - - - - - Current database: %1 - - - - - No such database: %1 - - - - - changes default working database - - - - - Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. - -What is current working database? -When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). - -The default database can be selected in various ways: -- using %1 command, -- by passing database file name to the application startup parameters, -- by passing registered database name to the application startup parameters, -- by restoring previously selected default database from saved configuration, -- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. - - - - - name - CLI command syntax - - - - - QObject - - - Insufficient number of arguments. - - - - - Too many arguments. - - - - - Invalid argument value: %1. -Expected one of: %2 - - - - - Unknown option: %1 - CLI command syntax - - - - - Option %1 requires an argument. - CLI command syntax - - - - - string - CLI command syntax - - - - - Command line interface to SQLiteStudio, a SQLite manager. - - - - - Enables debug messages on standard error output. - - - - - Enables Lemon parser debug messages for SQL code assistant. - - - - - Lists plugins installed in the SQLiteStudio and quits. - - - - - file - - - - - Database file to open - - - - diff --git a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_es_ES.ts b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_es_ES.ts new file mode 100644 index 0000000..20725c9 --- /dev/null +++ b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_es_ES.ts @@ -0,0 +1,875 @@ + + + + + CLI + + + Current database: %1 + Base de datos actual: %1 + + + + No current working database is set. + Sin base de datos en uso establecida. + + + + Type %1 for help + Escribe %1 para la ayuda + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + La base de datos que pasaste como parámetro de la línea de comandos (%1) ya estaba en la lista como: %2 + + + + Could not add database %1 to list. + No se pudo agregar la base de datos %1 a la lista. + + + + closed + cerrado + + + + CliCommand + + + Usage: %1%2 + Uso: %1%2 + + + + CliCommandAdd + + + Could not add database %1 to list. + No se pudo agregar la base de datos %1 a la lista. + + + + Database added: %1 + Base de datos añadida: %1 + + + + adds new database to the list + añade una nueva base de datos a la lista + + + + Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. + Agrega la base de datos indicada en la <ruta> con el <nombre> especificado para listar las bases de datos. El <nombre> sólo representa un nombre simbólico al cual puedes hacer referencia. Sólo elige cualquier nombre único. Para una lista de las bases de datos actualmente disponibles usa el comando %1. + + + + name + CLI command syntax + nombre + + + + path + CLI command syntax + ruta + + + + CliCommandCd + + + Changed directory to: %1 + Directorio cambiado a: %1 + + + + Could not change directory to: %1 + No se pudo cambiar el directorio a: %1 + + + + changes current working directory + cambia el directorio de trabajo actual + + + + Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. + Comando conocido en sistemas Unix y Windows muy parecido a 'cd'. Requiere pasar un argumento <ruta>, por lo que llamar a %1 ocasionará siempre un cambio del directorio. Para saber cuál es el directorio de trabajo actual usa el comando %2, y para listar los contenidos del directorio de trabajo actual usa el comando %3. + + + + path + CLI command syntax + ruta + + + + CliCommandClose + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + No se puede llamar a %1 cuando no hay una base de datos actualmente establecida. Especifica la base de datos actual con el comando %2 o pasa el nombre de la base de datos a %3. + + + + + Connection to database %1 closed. + Conexión a la base de datos %1 cerrada. + + + + No such database: %1. Use %2 to see list of known databases. + No existe tal base de datos: %1. Usa %2 para ver una lista de bases de datos conocidas. + + + + closes given (or current) database + cierra la base de datos indicada (o actual) + + + + Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). + Cierra la conexión a la base de datos. Si la base de datos ya estaba cerrada, nada sucede. Si se indica un <nombre>, debería ser el nombre de la base de datos a cerrar (como lo muestra el comando %1). Si no se proporciona el <nombre>, entonces se cierra la base de datos actual (mira la ayuda para %2 para más detalles). + + + + name + CLI command syntax + nombre + + + + CliCommandDbList + + + No current working database defined. + Sin base de datos en uso definida. + + + + Databases: + Bases de datos: + + + + + Name + CLI db name column + Nombre + + + + + Open + CLI connection state column + Abierto + + + + + Closed + CLI connection state column + Cerrado + + + + + Connection + CLI connection state column + Conexión + + + + + Database file path + Ruta de archivo de la base de datos + + + + prints list of registered databases + imprime una lista de bases de datos registradas + + + + Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. + Imprime una lista de las bases de datos registradas en SQLiteStudio. Cada base de datos en la lista puede estar en un estado abierto o cerrado, y %1 te lo indica. La base de datos en uso actual (o base de datos por defecto) también está marcada en la lista con un '*' al comienzo de su nombre. Mira la ayuda del comando %2 para saber más sobre la base de datos por defecto. + + + + CliCommandDesc + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + No hay una base de datos en uso establecida. +Ejecuta %1 para establecer la base de datos a usar. +Ejecuta %2 para ver una lista de todas las bases de datos. + + + + Database is not open. + La base de datos no está abierta. + + + + Cannot find table named: %1 + No se puede encontrar la tabla %1 + + + + shows details about the table + muestra detalles sobre la tabla + + + + table + tabla + + + + Table: %1 + Tabla: %1 + + + + Column name + Nombre de columna + + + + Data type + Tipo de dato + + + + Constraints + Restricciones + + + + Virtual table: %1 + Tabla virtual: %1 + + + + Construction arguments: + Construction arguments: + + + + No construction arguments were passed for this virtual table. + No construction arguments were passed for this virtual table. + + + + CliCommandDir + + + lists directories and files in current working directory + lists directories and files in current working directory + + + + This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. + +You can pass <pattern> with wildcard characters to filter output. + This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. + +You can pass <pattern> with wildcard characters to filter output. + + + + pattern + pattern + + + + CliCommandExit + + + quits the application + sale de la aplicación + + + + Quits the application. Settings are stored in configuration file and will be restored on next startup. + Quits the application. Settings are stored in configuration file and will be restored on next startup. + + + + CliCommandHelp + + + shows this help message + shows this help message + + + + Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. +To see list of supported commands, type %2 without any arguments. + +When passing <command> name, you can skip special prefix character ('%3'). + +You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. + Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. +To see list of supported commands, type %2 without any arguments. + +When passing <command> name, you can skip special prefix character ('%3'). + +You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. + + + + command + CLI command syntax + command + + + + No such command: %1 + No such command: %1 + + + + Type '%1' for list of available commands. + Type '%1' for list of available commands. + + + + Usage: %1%2 + Usage: %1%2 + + + + Aliases: %1 + Aliases: %1 + + + + CliCommandHistory + + + Current history limit is set to: %1 + Current history limit is set to: %1 + + + + prints history or erases it + prints history or erases it + + + + When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. + +When the -c or --clear option is passed, then the history gets erased. +When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. +Use -ql or --querylimit option to see the current limit value. + When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. + +When the -c or --clear option is passed, then the history gets erased. +When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. +Use -ql or --querylimit option to see the current limit value. + + + + number + number + + + + Console history erased. + Console history erased. + + + + Invalid number: %1 + Invalid number: %1 + + + + History limit set to %1 + History limit set to %1 + + + + CliCommandMode + + + Current results printing mode: %1 + Current results printing mode: %1 + + + + Invalid results printing mode: %1 + Invalid results printing mode: %1 + + + + New results printing mode: %1 + New results printing mode: %1 + + + + tells or changes the query results format + tells or changes the query results format + + + + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: +- CLASSIC - columns are separated by a comma, not aligned, +- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, +- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), +- ROW - each column from the row is displayed in new line, so the full data is displayed. + +The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. + +The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. + +The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. + +The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: +- CLASSIC - columns are separated by a comma, not aligned, +- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, +- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), +- ROW - each column from the row is displayed in new line, so the full data is displayed. + +The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. + +The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. + +The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. + +The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). + + + + CliCommandNullValue + + + Current NULL representation string: %1 + Current NULL representation string: %1 + + + + tells or changes the NULL representation string + tells or changes the NULL representation string + + + + If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. + If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. + + + + CliCommandOpen + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. + File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. + + + + Database %1 has been open and set as the current working database. + Database %1 has been open and set as the current working database. + + + + opens database connection + opens database connection + + + + Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. + Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. + + + + name + CLI command syntax + name + + + + path + CLI command syntax + path + + + + CliCommandPwd + + + prints the current working directory + prints the current working directory + + + + This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. + This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. + + + + CliCommandRemove + + + No such database: %1 + No such database: %1 + + + + Database removed: %1 + Database removed: %1 + + + + New current database set: + New current database set: + + + + removes database from the list + removes database from the list + + + + Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. + Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. + + + + name + CLI command syntax + name + + + + CliCommandSql + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + + + + Database is not open. + Database is not open. + + + + executes SQL query + executes SQL query + + + + This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. + This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. + + + + sql + CLI command syntax + sql + + + + + Too many columns to display in %1 mode. + Demasiadas columnas para mostrar en el modo %1. + + + + Row %1 + Row %1 + + + + Query execution error: %1 + Query execution error: %1 + + + + CliCommandTables + + + No such database: %1. Use %2 to see list of known databases. + No existe tal base de datos: %1. Usa %2 para ver una lista de bases de datos conocidas. + + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + No se puede llamar a %1 cuando no hay una base de datos actualmente establecida. Especifica la base de datos actual con el comando %2 o pasa el nombre de la base de datos a %3. + + + + Database %1 is closed. + La base de datos %1 está cerrada. + + + + + Database + Base de datos + + + + Table + Tabla + + + + prints list of tables in the database + imprime una lista de tablas en la base de datos + + + + Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. +When the -s option is given, then system tables are also listed. + Imprime la lista de tablas de la <base de datos> dada, o de la base de datos actualmente en uso. Notar que, <base de datos> debería ser el nombre de la base de datos registrada (ver %1). La lista de la salida incluye todas las tablas de cualquier otra base de datos adjuntada a la base de datos consultada. Cuando se especifica la opción -s, las tablas del sistema también se listan. + + + + database + CLI command syntax + base de datos + + + + CliCommandTree + + + No current working database is selected. Use %1 to define one and then run %2. + No hay una base de datos en uso seleccionada. Usa %1 para definir una y luego ejecuta %2. + + + + Tables + Tablas + + + + Views + Vistas + + + + Columns + Columnas + + + + Indexes + Índices + + + + + Triggers + Disparadores + + + + prints all objects in the database as a tree + imprime todos los objetos en la base de datos como un árbol + + + + Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. +When -c option is given, then also columns will be listed under each table. +When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). +The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. + Imprime todos los objetos (tablas, índices, disparadores y vistas) que están en la base de datos, como un árbol. El árbol es muy similar al que puedes ver en la IU de SQLiteStudio. +Cuando la opción -c se especifica, también se listarán las columnas debajo de cada tabla. +Cuando la opción -s se especifica, también los objetos del sistema se imprimirán (tablas sqlite_*, índices autoincrementables, etc). +El argumento database es opcional, y si se indica, entonces solamente se mostrará la base de datos especificada. Este no es un nombre de base de datos registrado, sino un nombre de base de datos interno de SQLite, como 'main', 'temp', o cualquier nombre de base de datos adjuntada. Para imprimir el árbol para otra base de datos registrada, ejecuta primero %1 para cambiar la base de datos en uso, y luego ejecuta el comando %2. + + + + CliCommandUse + + + No current database selected. + Sin base de datos actual seleccionada. + + + + + Current database: %1 + Base de datos actual: %1 + + + + No such database: %1 + No hay tal base de datos: %1 + + + + changes default working database + cambia la base de datos en uso por defecto + + + + Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. + +What is current working database? +When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). + +The default database can be selected in various ways: +- using %1 command, +- by passing database file name to the application startup parameters, +- by passing registered database name to the application startup parameters, +- by restoring previously selected default database from saved configuration, +- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. + Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. + +What is current working database? +When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). + +The default database can be selected in various ways: +- using %1 command, +- by passing database file name to the application startup parameters, +- by passing registered database name to the application startup parameters, +- by restoring previously selected default database from saved configuration, +- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. + + + + name + CLI command syntax + name + + + + QObject + + + Insufficient number of arguments. + Número insuficiente de argumentos. + + + + Too many arguments. + Demasiados argumentos. + + + + Invalid argument value: %1. +Expected one of: %2 + Invalid argument value: %1. +Expected one of: %2 + + + + Unknown option: %1 + CLI command syntax + Unknown option: %1 + + + + Option %1 requires an argument. + CLI command syntax + Option %1 requires an argument. + + + + string + CLI command syntax + string + + + + Command line interface to SQLiteStudio, a SQLite manager. + Command line interface to SQLiteStudio, a SQLite manager. + + + + Enables debug messages on standard error output. + Enables debug messages on standard error output. + + + + Enables Lemon parser debug messages for SQL code assistant. + Enables Lemon parser debug messages for SQL code assistant. + + + + Lists plugins installed in the SQLiteStudio and quits. + Lists plugins installed in the SQLiteStudio and quits. + + + + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + + + + SQL file + SQL file + + + + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. + + + + codec + codec + + + + Lists available codecs to be used with -c option and quits. + Lists available codecs to be used with -c option and quits. + + + + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. + + + + file + file + + + + Database file to open + Database file to open + + + + Invalid codec: %1. Use -cl option to list available codecs. + Invalid codec: %1. Use -cl option to list available codecs. + + + + Database file argument is mandatory when executing SQL file. + Database file argument is mandatory when executing SQL file. + + + + Could not open specified database for executing SQL file. You may try using -d option to find out more details. + Could not open specified database for executing SQL file. You may try using -d option to find out more details. + + + diff --git a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_fa_IR.ts b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_fa_IR.ts new file mode 100644 index 0000000..c0f7ca8 --- /dev/null +++ b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_fa_IR.ts @@ -0,0 +1,876 @@ + + + + + CLI + + + Current database: %1 + Current database: %1 + + + + No current working database is set. + No current working database is set. + + + + Type %1 for help + Type %1 for help + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + Database passed in command line parameters (%1) was already on the list under name: %2 + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + closed + closed + + + + CliCommand + + + Usage: %1%2 + Usage: %1%2 + + + + CliCommandAdd + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + Database added: %1 + Database added: %1 + + + + adds new database to the list + adds new database to the list + + + + Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. + Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. + + + + name + CLI command syntax + name + + + + path + CLI command syntax + path + + + + CliCommandCd + + + Changed directory to: %1 + Changed directory to: %1 + + + + Could not change directory to: %1 + Could not change directory to: %1 + + + + changes current working directory + changes current working directory + + + + Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. + Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. + + + + path + CLI command syntax + path + + + + CliCommandClose + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + + Connection to database %1 closed. + Connection to database %1 closed. + + + + No such database: %1. Use %2 to see list of known databases. + No such database: %1. Use %2 to see list of known databases. + + + + closes given (or current) database + closes given (or current) database + + + + Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). + Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). + + + + name + CLI command syntax + name + + + + CliCommandDbList + + + No current working database defined. + No current working database defined. + + + + Databases: + Databases: + + + + + Name + CLI db name column + Name + + + + + Open + CLI connection state column + Open + + + + + Closed + CLI connection state column + Closed + + + + + Connection + CLI connection state column + Connection + + + + + Database file path + Database file path + + + + prints list of registered databases + prints list of registered databases + + + + Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. + Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. + + + + CliCommandDesc + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + + + + Database is not open. + Database is not open. + + + + Cannot find table named: %1 + Cannot find table named: %1 + + + + shows details about the table + shows details about the table + + + + table + table + + + + Table: %1 + Table: %1 + + + + Column name + Column name + + + + Data type + Data type + + + + Constraints + Constraints + + + + Virtual table: %1 + Virtual table: %1 + + + + Construction arguments: + Construction arguments: + + + + No construction arguments were passed for this virtual table. + No construction arguments were passed for this virtual table. + + + + CliCommandDir + + + lists directories and files in current working directory + lists directories and files in current working directory + + + + This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. + +You can pass <pattern> with wildcard characters to filter output. + This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. + +You can pass <pattern> with wildcard characters to filter output. + + + + pattern + pattern + + + + CliCommandExit + + + quits the application + quits the application + + + + Quits the application. Settings are stored in configuration file and will be restored on next startup. + Quits the application. Settings are stored in configuration file and will be restored on next startup. + + + + CliCommandHelp + + + shows this help message + shows this help message + + + + Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. +To see list of supported commands, type %2 without any arguments. + +When passing <command> name, you can skip special prefix character ('%3'). + +You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. + Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. +To see list of supported commands, type %2 without any arguments. + +When passing <command> name, you can skip special prefix character ('%3'). + +You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. + + + + command + CLI command syntax + command + + + + No such command: %1 + No such command: %1 + + + + Type '%1' for list of available commands. + Type '%1' for list of available commands. + + + + Usage: %1%2 + Usage: %1%2 + + + + Aliases: %1 + Aliases: %1 + + + + CliCommandHistory + + + Current history limit is set to: %1 + Current history limit is set to: %1 + + + + prints history or erases it + prints history or erases it + + + + When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. + +When the -c or --clear option is passed, then the history gets erased. +When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. +Use -ql or --querylimit option to see the current limit value. + When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. + +When the -c or --clear option is passed, then the history gets erased. +When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. +Use -ql or --querylimit option to see the current limit value. + + + + number + number + + + + Console history erased. + Console history erased. + + + + Invalid number: %1 + Invalid number: %1 + + + + History limit set to %1 + History limit set to %1 + + + + CliCommandMode + + + Current results printing mode: %1 + Current results printing mode: %1 + + + + Invalid results printing mode: %1 + Invalid results printing mode: %1 + + + + New results printing mode: %1 + New results printing mode: %1 + + + + tells or changes the query results format + tells or changes the query results format + + + + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: +- CLASSIC - columns are separated by a comma, not aligned, +- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, +- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), +- ROW - each column from the row is displayed in new line, so the full data is displayed. + +The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. + +The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. + +The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. + +The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: +- CLASSIC - columns are separated by a comma, not aligned, +- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, +- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), +- ROW - each column from the row is displayed in new line, so the full data is displayed. + +The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. + +The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. + +The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. + +The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). + + + + CliCommandNullValue + + + Current NULL representation string: %1 + Current NULL representation string: %1 + + + + tells or changes the NULL representation string + tells or changes the NULL representation string + + + + If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. + If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. + + + + CliCommandOpen + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. + File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. + + + + Database %1 has been open and set as the current working database. + Database %1 has been open and set as the current working database. + + + + opens database connection + opens database connection + + + + Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. + Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. + + + + name + CLI command syntax + name + + + + path + CLI command syntax + path + + + + CliCommandPwd + + + prints the current working directory + prints the current working directory + + + + This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. + This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. + + + + CliCommandRemove + + + No such database: %1 + No such database: %1 + + + + Database removed: %1 + Database removed: %1 + + + + New current database set: + New current database set: + + + + removes database from the list + removes database from the list + + + + Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. + Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. + + + + name + CLI command syntax + name + + + + CliCommandSql + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + + + + Database is not open. + Database is not open. + + + + executes SQL query + executes SQL query + + + + This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. + This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. + + + + sql + CLI command syntax + sql + + + + + Too many columns to display in %1 mode. + Too many columns to display in %1 mode. + + + + Row %1 + Row %1 + + + + Query execution error: %1 + Query execution error: %1 + + + + CliCommandTables + + + No such database: %1. Use %2 to see list of known databases. + No such database: %1. Use %2 to see list of known databases. + + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + Database %1 is closed. + Database %1 is closed. + + + + + Database + Database + + + + Table + Table + + + + prints list of tables in the database + prints list of tables in the database + + + + Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. +When the -s option is given, then system tables are also listed. + Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. +When the -s option is given, then system tables are also listed. + + + + database + CLI command syntax + database + + + + CliCommandTree + + + No current working database is selected. Use %1 to define one and then run %2. + No current working database is selected. Use %1 to define one and then run %2. + + + + Tables + Tables + + + + Views + Views + + + + Columns + Columns + + + + Indexes + Indexes + + + + + Triggers + Triggers + + + + prints all objects in the database as a tree + prints all objects in the database as a tree + + + + Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. +When -c option is given, then also columns will be listed under each table. +When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). +The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. + Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. +When -c option is given, then also columns will be listed under each table. +When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). +The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. + + + + CliCommandUse + + + No current database selected. + No current database selected. + + + + + Current database: %1 + Current database: %1 + + + + No such database: %1 + No such database: %1 + + + + changes default working database + changes default working database + + + + Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. + +What is current working database? +When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). + +The default database can be selected in various ways: +- using %1 command, +- by passing database file name to the application startup parameters, +- by passing registered database name to the application startup parameters, +- by restoring previously selected default database from saved configuration, +- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. + Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. + +What is current working database? +When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). + +The default database can be selected in various ways: +- using %1 command, +- by passing database file name to the application startup parameters, +- by passing registered database name to the application startup parameters, +- by restoring previously selected default database from saved configuration, +- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. + + + + name + CLI command syntax + name + + + + QObject + + + Insufficient number of arguments. + Insufficient number of arguments. + + + + Too many arguments. + Too many arguments. + + + + Invalid argument value: %1. +Expected one of: %2 + Invalid argument value: %1. +Expected one of: %2 + + + + Unknown option: %1 + CLI command syntax + Unknown option: %1 + + + + Option %1 requires an argument. + CLI command syntax + Option %1 requires an argument. + + + + string + CLI command syntax + string + + + + Command line interface to SQLiteStudio, a SQLite manager. + Command line interface to SQLiteStudio, a SQLite manager. + + + + Enables debug messages on standard error output. + Enables debug messages on standard error output. + + + + Enables Lemon parser debug messages for SQL code assistant. + Enables Lemon parser debug messages for SQL code assistant. + + + + Lists plugins installed in the SQLiteStudio and quits. + Lists plugins installed in the SQLiteStudio and quits. + + + + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + + + + SQL file + SQL file + + + + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. + + + + codec + codec + + + + Lists available codecs to be used with -c option and quits. + Lists available codecs to be used with -c option and quits. + + + + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. + + + + file + file + + + + Database file to open + Database file to open + + + + Invalid codec: %1. Use -cl option to list available codecs. + Invalid codec: %1. Use -cl option to list available codecs. + + + + Database file argument is mandatory when executing SQL file. + Database file argument is mandatory when executing SQL file. + + + + Could not open specified database for executing SQL file. You may try using -d option to find out more details. + Could not open specified database for executing SQL file. You may try using -d option to find out more details. + + + diff --git a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_fi_FI.ts b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_fi_FI.ts new file mode 100644 index 0000000..8542654 --- /dev/null +++ b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_fi_FI.ts @@ -0,0 +1,876 @@ + + + + + CLI + + + Current database: %1 + Current database: %1 + + + + No current working database is set. + No current working database is set. + + + + Type %1 for help + Type %1 for help + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + Database passed in command line parameters (%1) was already on the list under name: %2 + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + closed + closed + + + + CliCommand + + + Usage: %1%2 + Usage: %1%2 + + + + CliCommandAdd + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + Database added: %1 + Database added: %1 + + + + adds new database to the list + adds new database to the list + + + + Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. + Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. + + + + name + CLI command syntax + name + + + + path + CLI command syntax + path + + + + CliCommandCd + + + Changed directory to: %1 + Changed directory to: %1 + + + + Could not change directory to: %1 + Could not change directory to: %1 + + + + changes current working directory + changes current working directory + + + + Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. + Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. + + + + path + CLI command syntax + path + + + + CliCommandClose + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + + Connection to database %1 closed. + Connection to database %1 closed. + + + + No such database: %1. Use %2 to see list of known databases. + No such database: %1. Use %2 to see list of known databases. + + + + closes given (or current) database + closes given (or current) database + + + + Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). + Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). + + + + name + CLI command syntax + name + + + + CliCommandDbList + + + No current working database defined. + No current working database defined. + + + + Databases: + Databases: + + + + + Name + CLI db name column + Name + + + + + Open + CLI connection state column + Open + + + + + Closed + CLI connection state column + Closed + + + + + Connection + CLI connection state column + Connection + + + + + Database file path + Database file path + + + + prints list of registered databases + prints list of registered databases + + + + Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. + Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. + + + + CliCommandDesc + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + + + + Database is not open. + Database is not open. + + + + Cannot find table named: %1 + Cannot find table named: %1 + + + + shows details about the table + shows details about the table + + + + table + table + + + + Table: %1 + Table: %1 + + + + Column name + Column name + + + + Data type + Data type + + + + Constraints + Constraints + + + + Virtual table: %1 + Virtual table: %1 + + + + Construction arguments: + Construction arguments: + + + + No construction arguments were passed for this virtual table. + No construction arguments were passed for this virtual table. + + + + CliCommandDir + + + lists directories and files in current working directory + lists directories and files in current working directory + + + + This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. + +You can pass <pattern> with wildcard characters to filter output. + This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. + +You can pass <pattern> with wildcard characters to filter output. + + + + pattern + pattern + + + + CliCommandExit + + + quits the application + quits the application + + + + Quits the application. Settings are stored in configuration file and will be restored on next startup. + Quits the application. Settings are stored in configuration file and will be restored on next startup. + + + + CliCommandHelp + + + shows this help message + shows this help message + + + + Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. +To see list of supported commands, type %2 without any arguments. + +When passing <command> name, you can skip special prefix character ('%3'). + +You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. + Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. +To see list of supported commands, type %2 without any arguments. + +When passing <command> name, you can skip special prefix character ('%3'). + +You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. + + + + command + CLI command syntax + command + + + + No such command: %1 + No such command: %1 + + + + Type '%1' for list of available commands. + Type '%1' for list of available commands. + + + + Usage: %1%2 + Usage: %1%2 + + + + Aliases: %1 + Aliases: %1 + + + + CliCommandHistory + + + Current history limit is set to: %1 + Current history limit is set to: %1 + + + + prints history or erases it + prints history or erases it + + + + When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. + +When the -c or --clear option is passed, then the history gets erased. +When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. +Use -ql or --querylimit option to see the current limit value. + When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. + +When the -c or --clear option is passed, then the history gets erased. +When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. +Use -ql or --querylimit option to see the current limit value. + + + + number + number + + + + Console history erased. + Console history erased. + + + + Invalid number: %1 + Invalid number: %1 + + + + History limit set to %1 + History limit set to %1 + + + + CliCommandMode + + + Current results printing mode: %1 + Current results printing mode: %1 + + + + Invalid results printing mode: %1 + Invalid results printing mode: %1 + + + + New results printing mode: %1 + New results printing mode: %1 + + + + tells or changes the query results format + tells or changes the query results format + + + + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: +- CLASSIC - columns are separated by a comma, not aligned, +- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, +- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), +- ROW - each column from the row is displayed in new line, so the full data is displayed. + +The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. + +The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. + +The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. + +The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: +- CLASSIC - columns are separated by a comma, not aligned, +- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, +- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), +- ROW - each column from the row is displayed in new line, so the full data is displayed. + +The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. + +The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. + +The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. + +The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). + + + + CliCommandNullValue + + + Current NULL representation string: %1 + Current NULL representation string: %1 + + + + tells or changes the NULL representation string + tells or changes the NULL representation string + + + + If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. + If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. + + + + CliCommandOpen + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. + File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. + + + + Database %1 has been open and set as the current working database. + Database %1 has been open and set as the current working database. + + + + opens database connection + opens database connection + + + + Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. + Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. + + + + name + CLI command syntax + name + + + + path + CLI command syntax + path + + + + CliCommandPwd + + + prints the current working directory + prints the current working directory + + + + This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. + This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. + + + + CliCommandRemove + + + No such database: %1 + No such database: %1 + + + + Database removed: %1 + Database removed: %1 + + + + New current database set: + New current database set: + + + + removes database from the list + removes database from the list + + + + Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. + Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. + + + + name + CLI command syntax + name + + + + CliCommandSql + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + + + + Database is not open. + Database is not open. + + + + executes SQL query + executes SQL query + + + + This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. + This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. + + + + sql + CLI command syntax + sql + + + + + Too many columns to display in %1 mode. + Too many columns to display in %1 mode. + + + + Row %1 + Row %1 + + + + Query execution error: %1 + Query execution error: %1 + + + + CliCommandTables + + + No such database: %1. Use %2 to see list of known databases. + No such database: %1. Use %2 to see list of known databases. + + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + Database %1 is closed. + Database %1 is closed. + + + + + Database + Database + + + + Table + Table + + + + prints list of tables in the database + prints list of tables in the database + + + + Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. +When the -s option is given, then system tables are also listed. + Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. +When the -s option is given, then system tables are also listed. + + + + database + CLI command syntax + database + + + + CliCommandTree + + + No current working database is selected. Use %1 to define one and then run %2. + No current working database is selected. Use %1 to define one and then run %2. + + + + Tables + Tables + + + + Views + Views + + + + Columns + Columns + + + + Indexes + Indexes + + + + + Triggers + Triggers + + + + prints all objects in the database as a tree + prints all objects in the database as a tree + + + + Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. +When -c option is given, then also columns will be listed under each table. +When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). +The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. + Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. +When -c option is given, then also columns will be listed under each table. +When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). +The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. + + + + CliCommandUse + + + No current database selected. + No current database selected. + + + + + Current database: %1 + Current database: %1 + + + + No such database: %1 + No such database: %1 + + + + changes default working database + changes default working database + + + + Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. + +What is current working database? +When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). + +The default database can be selected in various ways: +- using %1 command, +- by passing database file name to the application startup parameters, +- by passing registered database name to the application startup parameters, +- by restoring previously selected default database from saved configuration, +- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. + Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. + +What is current working database? +When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). + +The default database can be selected in various ways: +- using %1 command, +- by passing database file name to the application startup parameters, +- by passing registered database name to the application startup parameters, +- by restoring previously selected default database from saved configuration, +- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. + + + + name + CLI command syntax + name + + + + QObject + + + Insufficient number of arguments. + Insufficient number of arguments. + + + + Too many arguments. + Too many arguments. + + + + Invalid argument value: %1. +Expected one of: %2 + Invalid argument value: %1. +Expected one of: %2 + + + + Unknown option: %1 + CLI command syntax + Unknown option: %1 + + + + Option %1 requires an argument. + CLI command syntax + Option %1 requires an argument. + + + + string + CLI command syntax + string + + + + Command line interface to SQLiteStudio, a SQLite manager. + Command line interface to SQLiteStudio, a SQLite manager. + + + + Enables debug messages on standard error output. + Enables debug messages on standard error output. + + + + Enables Lemon parser debug messages for SQL code assistant. + Enables Lemon parser debug messages for SQL code assistant. + + + + Lists plugins installed in the SQLiteStudio and quits. + Lists plugins installed in the SQLiteStudio and quits. + + + + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + + + + SQL file + SQL file + + + + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. + + + + codec + codec + + + + Lists available codecs to be used with -c option and quits. + Lists available codecs to be used with -c option and quits. + + + + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. + + + + file + file + + + + Database file to open + Database file to open + + + + Invalid codec: %1. Use -cl option to list available codecs. + Invalid codec: %1. Use -cl option to list available codecs. + + + + Database file argument is mandatory when executing SQL file. + Database file argument is mandatory when executing SQL file. + + + + Could not open specified database for executing SQL file. You may try using -d option to find out more details. + Could not open specified database for executing SQL file. You may try using -d option to find out more details. + + + diff --git a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_fr.qm b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_fr.qm deleted file mode 100644 index 00760ec..0000000 Binary files a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_fr.qm and /dev/null differ diff --git a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_fr.ts b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_fr.ts deleted file mode 100644 index 3e4c3e5..0000000 --- a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_fr.ts +++ /dev/null @@ -1,830 +0,0 @@ - - - - - CLI - - - Current database: %1 - Base de données actuelle : %1 - - - - No current working database is set. - Aucune base de données en cours n’est activée. - - - - Type %1 for help - Touche %1 pour l’aide - - - - Database passed in command line parameters (%1) was already on the list under name: %2 - - - - - Could not add database %1 to list. - Impossible d’ajouter la base de données %1 à la liste. - - - - closed - Fermé - - - - CliCommand - - - Usage: %1%2 - Uttilisation : %1%2 - - - - CliCommandAdd - - - Could not add database %1 to list. - Impossible d’ajouter le base de données %1 à la liste. - - - - Database added: %1 - Base de données ajoutée : %1 - - - - adds new database to the list - Ajoutez la nouvelle base de données à la liste - - - - Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. - Ajoutez la base de données pointée par <chemin> nommée <nom> à la liste des baszs de données. Le <nom>est seulement un nom symbolique que vous pourrez y référer. Choississez un nom unique. Pour une base de données figuant dans la liste utilisez la commande %1. - - - - name - CLI command syntax - Nom - - - - path - CLI command syntax - Chemin - - - - CliCommandCd - - - Changed directory to: %1 - Renommer le repertoire en : %1 - - - - Could not change directory to: %1 - Impossible de renommer le répertoire en : %1 - - - - changes current working directory - Modifiezle répertoire de travail actuel - - - - Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. - La commande « cd » est connu du système UNIX et Windows. Elle nécessite le paramètre <chemin> passé avant l’appel %1 qui occasionnera une modification du répertoire. Pour connaitre qu’elle est le répertoire courant utiliser la commande %2 et pour lister le contenu de celui-ci utilisez la commande %3. - - - - path - CLI command syntax - Chemin - - - - CliCommandClose - - - Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. - Impossible d’appeler %1 lorsqu’aucune base de données n’est active. Spécifiez la base de données active avec la commande %2 ou par le nom de la base de données par %3. - - - - - Connection to database %1 closed. - Connexion à la base de données %1 fermée. - - - - No such database: %1. Use %2 to see list of known databases. - Aucune base de données : %1. Utilisez %2 pour avoir la liste des bases de données connues. - - - - closes given (or current) database - Fermeture d’une de données sélectionnées (ou actuelle) - - - - Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). - Fermeture de base de données connectée. . Si la base est déjà fermée, aucune action. Si <name> est fourni, c’est celle ainsi qui sera close (as printed by %1 command). Si <name> n’est pas fourni, la base actuelle est close (voir l’aide %2 pour plus de détails). - - - - name - CLI command syntax - Nom - - - - CliCommandDbList - - - No current working database defined. - Aucune base de données actuelle n’est définie. - - - - Databases: - Base de données : - - - - - Name - CLI db name column - Nom - - - - - Open - CLI connection state column - Ouvrir - - - - - Closed - CLI connection state column - Fermer - - - - - Connection - CLI connection state column - Connexion - - - - - Database file path - Chemin de la base de données - - - - prints list of registered databases - Imprimer la liste des bases de données enregistrées - - - - Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. - Imprimez la liste des bases de données enregistrées sous SQLiteStudio. Chaque base se données de la liste peut être ouverte ou close et %1 vous indique lesquellest.La base de données actuelle est aussi marquée dans la liste par « * » en début de nom. Voir l’aide la commande %2 pour en savoir plus sur la base de données actuelle. - - - - CliCommandDesc - - - No working database is set. -Call %1 command to set working database. -Call %2 to see list of all databases. - Aucune base de données de travail n’est activée. -Appelez la commande %1 pour activer la base de données active. -Appelez %2 pour voir la liste de toutes les bases de données. - - - - Database is not open. - La base de données n’est pas ouverte. - - - - Cannot find table named: %1 - - - - - shows details about the table - Affichage des détails de la table - - - - table - Table - - - - Table: %1 - - - - - Column name - - - - - Data type - - - - - Constraints - - - - - Virtual table: %1 - - - - - Construction arguments: - - - - - No construction arguments were passed for this virtual table. - - - - - CliCommandDir - - - lists directories and files in current working directory - Listes des répertoires et fichiers dans le répertoire de travail - - - - This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. - -You can pass <pattern> with wildcard characters to filter output. - Ceci est très semblable à la commande « dir » de Windows et à la commande de « ls » de systèmes Unix. - -You pouvez utiliser les caractères de remplacement <pattern> npour filtrer la sortie. - - - - pattern - Modèle - - - - CliCommandExit - - - quits the application - Quitter l’application - - - - Quits the application. Settings are stored in configuration file and will be restored on next startup. - Quittez l’apllication. Le paramètrage est stocké dans la configuration et sera restauré au prochain lancement. - - - - CliCommandHelp - - - shows this help message - Affichagez l’aide du message - - - - Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. -To see list of supported commands, type %2 without any arguments. - -When passing <command> name, you can skip special prefix character ('%3'). - -You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. - Utilisez %1 pour connaitre certaines commandes supportées par la ligne de commande (CLI) de SQLiteStudio. -Pour voir les commandes supportées, saississez %2 sana arguments. - -En utilisant le nom de <command>, vous ajouter le caractère spécial(« %3 »). - -Vous pouvez exécuter n’importe quelle commande avec l’option « --help » pour voir l’aide pour cette commande. C’est une alternative à : %1 <commande>. - - - - command - CLI command syntax - CLI syntax de commandes - - - - No such command: %1 - Aucune telle commande : %1 - - - - Type '%1' for list of available commands. - Saisissez « %1 » pour la liste des commandes valides. - - - - Usage: %1%2 - Utilisation : %1%2 - - - - Aliases: %1 - Pseudomynes : %1 - - - - CliCommandHistory - - - Current history limit is set to: %1 - L’historique actuel est limité à : %1 - - - - prints history or erases it - Imprimez l’historique ou supprimez le - - - - When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. - -When the -c or --clear option is passed, then the history gets erased. -When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. -Use -ql or --querylimit option to see the current limit value. - Lorqu’aucun argument n’est passé,cette commande imprime l’histoirique. Chaque entrée est séparée par une ligne vide, permettant une lecture aisée. - -When the -c or --clear option is passed, then the history gets erased. -When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. -Use -ql or --querylimit option to see the current limit value. - - - - number - Nombre - - - - Console history erased. - Historique effacé. - - - - Invalid number: %1 - Nombre invalide : %1 - - - - History limit set to %1 - Historique limité à %1 - - - - CliCommandMode - - - Current results printing mode: %1 - Résultats actuels du mode d’ impression : %1 - - - - Invalid results printing mode: %1 - Résultats invalides du mode d’ impression : %1 - - - - New results printing mode: %1 - Résultats actuels du mode d’ impression : %1 - - - - tells or changes the query results format - Modifie le format du résultat de la requête - - - - When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: -- CLASSIC - columns are separated by a comma, not aligned, -- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, -- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), -- ROW - each column from the row is displayed in new line, so the full data is displayed. - -The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. - -The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. - -The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. -ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widhts, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. - -The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). - Sans argument, le format de sortie actuel de la requête est utilisé. Avec <mode>c'est un de ces mode qui est utilisé : -- CLASSIC - columns are separated by a comma, not aligned, -- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, -- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), -- ROW - each column from the row is displayed in new line, so the full data is displayed. - -The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. - -The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. - -The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. -ATTENTION ! The COLUMNS mode reads all the results from the query at once in order to evaluate column widhts, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. - -The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). - - - - CliCommandNullValue - - - Current NULL representation string: %1 - Représentation actuelle d’une chaine NULL : %1 - - - - tells or changes the NULL representation string - Modifiez la représentation d’une chaine NULL - - - - If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. - Si on n’a passé aucun argument, c’est la représentation de valeur NULL actuelle qui est utilisée (ce qui est imprimé à la place de valeurs NULL dans des résultats de requête). Si on donne un argument, il sera utilisé comme une nouvelle chaine représentant NULL. - - - - CliCommandOpen - - - Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. - Impossible d’appeler %1 lorsque aucune base de données n’est sélectionnée. Spécifiez la base de données actuelle avec la commande %2 ou nommez la base de données %3. - - - - Could not add database %1 to list. - Impossible d’ajouter la base de données %1 à la liste. - - - - File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. - Le fichier %1 n’existe pas dans %2. Impossible d’ouvrir une base de données avec la commande %3. Pour créer une nouvelle base de données utilisez la commande %4. - - - - Database %1 has been open and set as the current working database. - La base de données %1 a été ouverte et sélectionnée comme base de données actuelle. - - - - opens database connection - Ouvre la connexion de la base de données - - - - Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. - Ouvre la connexion de la base de données. Si aucun argument n’est passé, alors la connexion est ouverte comme base de données actuelle (voir l’aide %1 pour plus de détails). Cependant si on a passé un argument il peut être le <name> d’une base de données enregistrée, ou cela peut être le <chemin> du fichier de base de données. Dans le deuxième cas, le <chemin> est enregistré dans la liste avec un nom généré mais seulement pendant la période de la session actuelle. Après la reprise de la l’application une telle base de données n’est pas rétablie dans la liste. - - - - name - CLI command syntax - Nom - - - - path - CLI command syntax - Chemin - - - - CliCommandPwd - - - prints the current working directory - Imprime le répertoire de travail actuel - - - - This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. - C’est la même commande d’un système Unix « pwd » ou « cd » sans arguments de Windows. Ceci imprimele répertoire de travail courant. Vous pouvez changer le répertoire avec le commande %1 et avoir la liste des répertoire de travail avec la commande %2. - - - - CliCommandRemove - - - No such database: %1 - Aucune base de données : %1 - - - - Database removed: %1 - Base de données enlevée : %1 - - - - New current database set: - Nouvelle base de données actuelle : - - - - removes database from the list - Enleve la base de données de la liste - - - - Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. - Enlève la base de données <nom> de la liste des bases enregistrées.si la base de données n’est pas dans la liste (voir la commande %1), alors message d’erreur est imprimé sans aucunes autres lignes. - - - - name - CLI command syntax - Nom - - - - CliCommandSql - - - No working database is set. -Call %1 command to set working database. -Call %2 to see list of all databases. - Aucune base de données de travail n’est activée. -Appelez la commande %1 pour activer la base de données active. -Appelez %2 pour voir la liste de toutes les bases de données. - - - - Database is not open. - La base de données n’est pas ouverte. - - - - executes SQL query - Exécute la requête SQL - - - - This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. - Cette commande est exécutée chaque fois vous saississez une requête SQL au prompt de commande. Il exécute la requête sur la base de données actuelle (voir l’aide %1 pour les détails). Il n’y a aucun sens dans l’exécution de cette commande explicitement. Instead just type the SQL query in the command prompt, without any command prefixed. - - - - sql - CLI command syntax - SQL - - - - - Too many columns to display in %1 mode. - Trop de colonnes à afficher avec le mode %1. - - - - Row %1 - Ligne %1 - - - - Query execution error: %1 - Erreur d’exécution de la requête : %1 - - - - CliCommandTables - - - No such database: %1. Use %2 to see list of known databases. - Aucune base de données : %1. Utilisez %2pour voir la liste des base de données connues. - - - - Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. - Impossible d’appeler %1 quand aucune base de données n’est active. Spécifiez la base de données active avec la commade %2 ou nommez la base de données avec %3. - - - - Database %1 is closed. - La base de données %1 est fermée. - - - - - Database - Base de données - - - - Table - Table - - - - prints list of tables in the database - Imprime la liste des tablesde la base de données - - - - Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. -When the -s option is given, then system tables are also listed. - Imprime la liste des tables de la <base de données> sélectionnée ou de la base de données actuelle. Notez que la <base de données> devrait être le nom enregistré de la base de données (voir %1). L’affichage de la liste inclus toutes les tables d’autres bases de données attachées à celle-ci. -Lorsque l’option « -s » est ajouté, les tables système sont aussi listées. - - - - database - CLI command syntax - Base de données - - - - CliCommandTree - - - No current working database is selected. Use %1 to define one and then run %2. - Aucune base de données actuelle n’est sélectionnée. Utilisez %1 pour en définir uneet lancez avec %2. - - - - Tables - Tables - - - - Views - Vues - - - - Columns - Colonnes - - - - Indexes - Index - - - - - Triggers - Déclancheurs - - - - prints all objects in the database as a tree - Imprime tous les objets de la base de données comme un arbre - - - - Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. -When -c option is given, then also columns will be listed under each table. -When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). -The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. - Imprime tous les objets (tables, index, déclencheurs et vues) qui sont dans la base de données comme un arbre. L’arbre est très semblable à celui que vous pouvez voir dans lGUI client de SQLiteStudio. -Quand on ajoute l’option -c, alors les colonnes seront aussi inscrites sous chaque table. -Quand on ajoute l’option -s, alors les objets de système seront aussi imprimés (sqlite_* tables, des index d’auto-incrément, etc). -L’argument de base de données est facultatif et si fourni, alors seulement la base de données indiquée sera imprimée. Ceci n’est pas un nom de base de données enregistré, mais au lieu de cela c’est un nom de base de données SQLite interne, comme « principal », « temporaire », ou n’importe quel nom de base de données attaché. Pour imprimer l’arbre pour d’autre base de données enregistrée, appelez %1 d’abord pour changer la base de données actuelleet utiliser la commande %2. - - - - CliCommandUse - - - No current database selected. - Aucune base de données active de sélectionnée. - - - - - Current database: %1 - Base de données actuelle : %1 - - - - No such database: %1 - Aucune base de données : %1 - - - - changes default working database - Change la base de données actelle par défaut - - - - Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. - -What is current working database? -When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). - -The default database can be selected in various ways: -- using %1 command, -- by passing database file name to the application startup parameters, -- by passing registered database name to the application startup parameters, -- by restoring previously selected default database from saved configuration, -- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. - Changet la base de données actuelle <nom>. Si le <nom > de la base de données n’est pas enregistrée dans l’application, le message d’erreur est imprimé et aucun changement n’est fait. - -Quel est la base de données actuelle ? -Quand vous saississez une requête SQL à exécuter, celle-ci est exécutée sur la base de données par défaut, que l’on connaît aussi comme la base de données actuelle. La plupart de commandes concernant la base de données utilise la base de données de défaut d’utilisation, si on n’a fourni aucune base de données dans leurs arguments. La base de données actuelle est toujours identifiée par la ligne de commande. La base de données par défaut est toujours définie (à moins qu’il n’y ait aucune base de données dans la liste). - -La base de données par défaut peut être choisie de diverses manières : -- Utilisation de la commande %1, -- En passant nom de fichier de base de données aux paramètres de démarrage d’application, -- En passantle nom la base de données enregistrée aux paramètres de démarrage d’application, -- En restaurant la base de données par défaut précédemment choisie dans la configuration sauvée, -- Ou quand la base de données par défaut n’a été choisie par aucun du susdit, l’alors première base de données de la liste de bases de données enregistrée devient le par défaut. - - - - name - CLI command syntax - Nom - - - - QObject - - - Insufficient number of arguments. - Nombre d’arguments insuffisant. - - - - Too many arguments. - Trop d’arguements. - - - - Invalid argument value: %1. -Expected one of: %2 - Valeur invalide de l’arguement %1. Excepté l’un d’eux : %2 - - - - Unknown option: %1 - CLI command syntax - Option %1 inconnue - - - - Option %1 requires an argument. - CLI command syntax - L’option %1 nécessite un argument. - - - - string - CLI command syntax - Chaîne - - - - Command line interface to SQLiteStudio, a SQLite manager. - Interface de ligne de commandes de SQLiteStudio, SQLite manager. - - - - Enables debug messages on standard error output. - Messages de débogage valides sur sortie d’erreur standard. - - - - Enables Lemon parser debug messages for SQL code assistant. - Permet le débogage avec l’analyseur syntaxique de Lemon pour l’assistant SQL. - - - - Lists plugins installed in the SQLiteStudio and quits. - Liste les plugins installés dans SQLiteStudio et quitte. - - - - file - Fichier - - - - Database file to open - Base de données à ouvrir - - - diff --git a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_fr_FR.ts b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_fr_FR.ts new file mode 100644 index 0000000..2e73086 --- /dev/null +++ b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_fr_FR.ts @@ -0,0 +1,875 @@ + + + + + CLI + + + Current database: %1 + Base de données actuelle : %1 + + + + No current working database is set. + Aucune base de données en cours n’est activée. + + + + Type %1 for help + Touche %1 pour l’aide + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + La base de données passée dans les paramètres de la ligne de commande (%1) était déjà dans la liste sous le nom : %2 + + + + Could not add database %1 to list. + Impossible d’ajouter la base de données %1 à la liste. + + + + closed + Fermé + + + + CliCommand + + + Usage: %1%2 + Uttilisation : %1%2 + + + + CliCommandAdd + + + Could not add database %1 to list. + Impossible d’ajouter le base de données %1 à la liste. + + + + Database added: %1 + Base de données ajoutée : %1 + + + + adds new database to the list + Ajoutez la nouvelle base de données à la liste + + + + Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. + Ajoutez la base de données pointée par <chemin> nommée <nom> à la liste des baszs de données. Le <nom>est seulement un nom symbolique que vous pourrez y référer. Choississez un nom unique. Pour une base de données figuant dans la liste utilisez la commande %1. + + + + name + CLI command syntax + Nom + + + + path + CLI command syntax + Chemin + + + + CliCommandCd + + + Changed directory to: %1 + Renommer le repertoire en : %1 + + + + Could not change directory to: %1 + Impossible de renommer le répertoire en : %1 + + + + changes current working directory + Modifiezle répertoire de travail actuel + + + + Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. + La commande « cd » est connu du système UNIX et Windows. Elle nécessite le paramètre <chemin> passé avant l’appel %1 qui occasionnera une modification du répertoire. Pour connaitre qu’elle est le répertoire courant utiliser la commande %2 et pour lister le contenu de celui-ci utilisez la commande %3. + + + + path + CLI command syntax + Chemin + + + + CliCommandClose + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Impossible d’appeler %1 lorsqu’aucune base de données n’est active. Spécifiez la base de données active avec la commande %2 ou par le nom de la base de données par %3. + + + + + Connection to database %1 closed. + Connexion à la base de données %1 fermée. + + + + No such database: %1. Use %2 to see list of known databases. + Aucune base de données : %1. Utilisez %2 pour avoir la liste des bases de données connues. + + + + closes given (or current) database + Fermeture d’une de données sélectionnées (ou actuelle) + + + + Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). + Fermeture de base de données connectée. . Si la base est déjà fermée, aucune action. Si <name> est fourni, c’est celle ainsi qui sera close (as printed by %1 command). Si <name> n’est pas fourni, la base actuelle est close (voir l’aide %2 pour plus de détails). + + + + name + CLI command syntax + Nom + + + + CliCommandDbList + + + No current working database defined. + Aucune base de données actuelle n’est définie. + + + + Databases: + Base de données : + + + + + Name + CLI db name column + Nom + + + + + Open + CLI connection state column + Ouvrir + + + + + Closed + CLI connection state column + Fermer + + + + + Connection + CLI connection state column + Connexion + + + + + Database file path + Chemin de la base de données + + + + prints list of registered databases + Imprimer la liste des bases de données enregistrées + + + + Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. + Imprimez la liste des bases de données enregistrées sous SQLiteStudio. Chaque base se données de la liste peut être ouverte ou close et %1 vous indique lesquellest.La base de données actuelle est aussi marquée dans la liste par « * » en début de nom. Voir l’aide la commande %2 pour en savoir plus sur la base de données actuelle. + + + + CliCommandDesc + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + Aucune base de données de travail n’est activée. +Appelez la commande %1 pour activer la base de données active. +Appelez %2 pour voir la liste de toutes les bases de données. + + + + Database is not open. + La base de données n’est pas ouverte. + + + + Cannot find table named: %1 + Impossible de trouver le tableau nommé : %1 + + + + shows details about the table + Affichage des détails de la table + + + + table + Table + + + + Table: %1 + Tableau : %1 + + + + Column name + Nom de la colonne + + + + Data type + Type de données + + + + Constraints + Contraintes + + + + Virtual table: %1 + Tableau virtuel : %1 + + + + Construction arguments: + Arguments de construction : + + + + No construction arguments were passed for this virtual table. + Aucun argument de construction n'a été passé pour ce tableau virtuel. + + + + CliCommandDir + + + lists directories and files in current working directory + Listes des répertoires et fichiers dans le répertoire de travail + + + + This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. + +You can pass <pattern> with wildcard characters to filter output. + Ceci est très semblable à la commande « dir » de Windows et à la commande de « ls » de systèmes Unix. + +You pouvez utiliser les caractères de remplacement <pattern> npour filtrer la sortie. + + + + pattern + Modèle + + + + CliCommandExit + + + quits the application + Quitter l’application + + + + Quits the application. Settings are stored in configuration file and will be restored on next startup. + Quittez l’apllication. Le paramètrage est stocké dans la configuration et sera restauré au prochain lancement. + + + + CliCommandHelp + + + shows this help message + Affichagez l’aide du message + + + + Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. +To see list of supported commands, type %2 without any arguments. + +When passing <command> name, you can skip special prefix character ('%3'). + +You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. + Utilisez %1 pour connaitre certaines commandes supportées par la ligne de commande (CLI) de SQLiteStudio. +Pour voir les commandes supportées, saississez %2 sana arguments. + +En utilisant le nom de <command>, vous ajouter le caractère spécial(« %3 »). + +Vous pouvez exécuter n’importe quelle commande avec l’option « --help » pour voir l’aide pour cette commande. C’est une alternative à : %1 <commande>. + + + + command + CLI command syntax + CLI syntax de commandes + + + + No such command: %1 + Aucune telle commande : %1 + + + + Type '%1' for list of available commands. + Saisissez « %1 » pour la liste des commandes valides. + + + + Usage: %1%2 + Utilisation : %1%2 + + + + Aliases: %1 + Pseudomynes : %1 + + + + CliCommandHistory + + + Current history limit is set to: %1 + L’historique actuel est limité à : %1 + + + + prints history or erases it + Imprimez l’historique ou supprimez le + + + + When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. + +When the -c or --clear option is passed, then the history gets erased. +When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. +Use -ql or --querylimit option to see the current limit value. + Lorqu’aucun argument n’est passé,cette commande imprime l’histoirique. Chaque entrée est séparée par une ligne vide, permettant une lecture aisée. + +When the -c or --clear option is passed, then the history gets erased. +When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. +Use -ql or --querylimit option to see the current limit value. + + + + number + Nombre + + + + Console history erased. + Historique effacé. + + + + Invalid number: %1 + Nombre invalide : %1 + + + + History limit set to %1 + Historique limité à %1 + + + + CliCommandMode + + + Current results printing mode: %1 + Résultats actuels du mode d’ impression : %1 + + + + Invalid results printing mode: %1 + Résultats invalides du mode d’ impression : %1 + + + + New results printing mode: %1 + Résultats actuels du mode d’ impression : %1 + + + + tells or changes the query results format + Modifie le format du résultat de la requête + + + + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: +- CLASSIC - columns are separated by a comma, not aligned, +- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, +- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), +- ROW - each column from the row is displayed in new line, so the full data is displayed. + +The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. + +The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. + +The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. + +The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: +- CLASSIC - columns are separated by a comma, not aligned, +- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, +- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), +- ROW - each column from the row is displayed in new line, so the full data is displayed. + +The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. + +The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. + +The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. + +The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). + + + + CliCommandNullValue + + + Current NULL representation string: %1 + Représentation actuelle d’une chaine NULL : %1 + + + + tells or changes the NULL representation string + Modifiez la représentation d’une chaine NULL + + + + If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. + Si on n’a passé aucun argument, c’est la représentation de valeur NULL actuelle qui est utilisée (ce qui est imprimé à la place de valeurs NULL dans des résultats de requête). Si on donne un argument, il sera utilisé comme une nouvelle chaine représentant NULL. + + + + CliCommandOpen + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Impossible d’appeler %1 lorsque aucune base de données n’est sélectionnée. Spécifiez la base de données actuelle avec la commande %2 ou nommez la base de données %3. + + + + Could not add database %1 to list. + Impossible d’ajouter la base de données %1 à la liste. + + + + File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. + Le fichier %1 n’existe pas dans %2. Impossible d’ouvrir une base de données avec la commande %3. Pour créer une nouvelle base de données utilisez la commande %4. + + + + Database %1 has been open and set as the current working database. + La base de données %1 a été ouverte et sélectionnée comme base de données actuelle. + + + + opens database connection + Ouvre la connexion de la base de données + + + + Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. + Ouvre la connexion de la base de données. Si aucun argument n’est passé, alors la connexion est ouverte comme base de données actuelle (voir l’aide %1 pour plus de détails). Cependant si on a passé un argument il peut être le <name> d’une base de données enregistrée, ou cela peut être le <chemin> du fichier de base de données. Dans le deuxième cas, le <chemin> est enregistré dans la liste avec un nom généré mais seulement pendant la période de la session actuelle. Après la reprise de la l’application une telle base de données n’est pas rétablie dans la liste. + + + + name + CLI command syntax + Nom + + + + path + CLI command syntax + Chemin + + + + CliCommandPwd + + + prints the current working directory + Imprime le répertoire de travail actuel + + + + This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. + C’est la même commande d’un système Unix « pwd » ou « cd » sans arguments de Windows. Ceci imprimele répertoire de travail courant. Vous pouvez changer le répertoire avec le commande %1 et avoir la liste des répertoire de travail avec la commande %2. + + + + CliCommandRemove + + + No such database: %1 + Aucune base de données : %1 + + + + Database removed: %1 + Base de données enlevée : %1 + + + + New current database set: + Nouvelle base de données actuelle : + + + + removes database from the list + Enleve la base de données de la liste + + + + Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. + Enlève la base de données <nom> de la liste des bases enregistrées.si la base de données n’est pas dans la liste (voir la commande %1), alors message d’erreur est imprimé sans aucunes autres lignes. + + + + name + CLI command syntax + Nom + + + + CliCommandSql + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + Aucune base de données de travail n’est activée. +Appelez la commande %1 pour activer la base de données active. +Appelez %2 pour voir la liste de toutes les bases de données. + + + + Database is not open. + La base de données n’est pas ouverte. + + + + executes SQL query + Exécute la requête SQL + + + + This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. + Cette commande est exécutée chaque fois vous saississez une requête SQL au prompt de commande. Il exécute la requête sur la base de données actuelle (voir l’aide %1 pour les détails). Il n’y a aucun sens dans l’exécution de cette commande explicitement. Instead just type the SQL query in the command prompt, without any command prefixed. + + + + sql + CLI command syntax + SQL + + + + + Too many columns to display in %1 mode. + Trop de colonnes à afficher avec le mode %1. + + + + Row %1 + Ligne %1 + + + + Query execution error: %1 + Erreur d’exécution de la requête : %1 + + + + CliCommandTables + + + No such database: %1. Use %2 to see list of known databases. + Aucune base de données : %1. Utilisez %2pour voir la liste des base de données connues. + + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Impossible d’appeler %1 quand aucune base de données n’est active. Spécifiez la base de données active avec la commade %2 ou nommez la base de données avec %3. + + + + Database %1 is closed. + La base de données %1 est fermée. + + + + + Database + Base de données + + + + Table + Tableau + + + + prints list of tables in the database + Imprime la liste des tablesde la base de données + + + + Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. +When the -s option is given, then system tables are also listed. + Imprime la liste des tables de la <base de données> sélectionnée ou de la base de données actuelle. Notez que la <base de données> devrait être le nom enregistré de la base de données (voir %1). L’affichage de la liste inclus toutes les tables d’autres bases de données attachées à celle-ci. +Lorsque l’option « -s » est ajouté, les tables système sont aussi listées. + + + + database + CLI command syntax + Base de données + + + + CliCommandTree + + + No current working database is selected. Use %1 to define one and then run %2. + Aucune base de données actuelle n’est sélectionnée. Utilisez %1 pour en définir uneet lancez avec %2. + + + + Tables + Tableaux + + + + Views + Vues + + + + Columns + Colonnes + + + + Indexes + Index + + + + + Triggers + Déclancheurs + + + + prints all objects in the database as a tree + Imprime tous les objets de la base de données comme un arbre + + + + Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. +When -c option is given, then also columns will be listed under each table. +When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). +The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. + Imprime tous les objets (tables, index, déclencheurs et vues) qui sont dans la base de données comme un arbre. L’arbre est très semblable à celui que vous pouvez voir dans lGUI client de SQLiteStudio. +Quand on ajoute l’option -c, alors les colonnes seront aussi inscrites sous chaque table. +Quand on ajoute l’option -s, alors les objets de système seront aussi imprimés (sqlite_* tables, des index d’auto-incrément, etc). +L’argument de base de données est facultatif et si fourni, alors seulement la base de données indiquée sera imprimée. Ceci n’est pas un nom de base de données enregistré, mais au lieu de cela c’est un nom de base de données SQLite interne, comme « principal », « temporaire », ou n’importe quel nom de base de données attaché. Pour imprimer l’arbre pour d’autre base de données enregistrée, appelez %1 d’abord pour changer la base de données actuelleet utiliser la commande %2. + + + + CliCommandUse + + + No current database selected. + Aucune base de données active de sélectionnée. + + + + + Current database: %1 + Base de données actuelle : %1 + + + + No such database: %1 + Aucune base de données : %1 + + + + changes default working database + Change la base de données actelle par défaut + + + + Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. + +What is current working database? +When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). + +The default database can be selected in various ways: +- using %1 command, +- by passing database file name to the application startup parameters, +- by passing registered database name to the application startup parameters, +- by restoring previously selected default database from saved configuration, +- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. + Changet la base de données actuelle <nom>. Si le <nom > de la base de données n’est pas enregistrée dans l’application, le message d’erreur est imprimé et aucun changement n’est fait. + +Quel est la base de données actuelle ? +Quand vous saississez une requête SQL à exécuter, celle-ci est exécutée sur la base de données par défaut, que l’on connaît aussi comme la base de données actuelle. La plupart de commandes concernant la base de données utilise la base de données de défaut d’utilisation, si on n’a fourni aucune base de données dans leurs arguments. La base de données actuelle est toujours identifiée par la ligne de commande. La base de données par défaut est toujours définie (à moins qu’il n’y ait aucune base de données dans la liste). + +La base de données par défaut peut être choisie de diverses manières : +- Utilisation de la commande %1, +- En passant nom de fichier de base de données aux paramètres de démarrage d’application, +- En passantle nom la base de données enregistrée aux paramètres de démarrage d’application, +- En restaurant la base de données par défaut précédemment choisie dans la configuration sauvée, +- Ou quand la base de données par défaut n’a été choisie par aucun du susdit, l’alors première base de données de la liste de bases de données enregistrée devient le par défaut. + + + + name + CLI command syntax + Nom + + + + QObject + + + Insufficient number of arguments. + Nombre d’arguments insuffisant. + + + + Too many arguments. + Trop d’arguements. + + + + Invalid argument value: %1. +Expected one of: %2 + Valeur invalide de l’arguement %1. Excepté l’un d’eux : %2 + + + + Unknown option: %1 + CLI command syntax + Option %1 inconnue + + + + Option %1 requires an argument. + CLI command syntax + L’option %1 nécessite un argument. + + + + string + CLI command syntax + Chaîne + + + + Command line interface to SQLiteStudio, a SQLite manager. + Interface de ligne de commandes de SQLiteStudio, SQLite manager. + + + + Enables debug messages on standard error output. + Messages de débogage valides sur sortie d’erreur standard. + + + + Enables Lemon parser debug messages for SQL code assistant. + Permet le débogage avec l’analyseur syntaxique de Lemon pour l’assistant SQL. + + + + Lists plugins installed in the SQLiteStudio and quits. + Liste les plugins installés dans SQLiteStudio et quitte. + + + + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + + + + SQL file + Fichier SQL + + + + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. + Encodage de caractères à utiliser lors de la lecture de fichier SQL (-e option). Utilisez -cl pour lister les codecs disponibles. Par défaut, %1. + + + + codec + codec + + + + Lists available codecs to be used with -c option and quits. + Liste les codecs disponibles à utiliser avec l'option -c et quitte. + + + + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. + Lorsqu'elle est utilisée avec l'option -e, l'exécution ne s'arrêtera pas sur une erreur, mais se poursuivra jusqu'à la fin, ignorant les erreurs. + + + + file + Fichier + + + + Database file to open + Base de données à ouvrir + + + + Invalid codec: %1. Use -cl option to list available codecs. + Codec invalide : %1. Utilisez l'option -cl pour lister les codecs disponibles. + + + + Database file argument is mandatory when executing SQL file. + L'argument du fichier de la base de données est obligatoire lors de l'exécution du fichier SQL. + + + + Could not open specified database for executing SQL file. You may try using -d option to find out more details. + Impossible d'ouvrir la base de données spécifiée pour l'exécution de fichier SQL. Vous devriez essayer d'utiliser l'option -d pour trouver plus de détails. + + + diff --git a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_he_IL.ts b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_he_IL.ts new file mode 100644 index 0000000..f0e145e --- /dev/null +++ b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_he_IL.ts @@ -0,0 +1,876 @@ + + + + + CLI + + + Current database: %1 + מסד נתונים נוכחי: %1 + + + + No current working database is set. + לא נקבע מסד נתונים נוכחי פעיל. + + + + Type %1 for help + הזנת %1 לעזרה + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + מסד הנתונים שהועבר בפרמטרים של שורת הפקודה (%1) כבר היה ברשימה בשם: %2 + + + + Could not add database %1 to list. + לא ניתן להוסיף מסד נתונים %1 לרשימה. + + + + closed + סגור + + + + CliCommand + + + Usage: %1%2 + שימוש: %1%2 + + + + CliCommandAdd + + + Could not add database %1 to list. + לא ניתן להוסיף מסד נתונים %1 לרשימה. + + + + Database added: %1 + התווסף מסד נתונים: %1 + + + + adds new database to the list + הוספת מסד נתונים חדש לרשימה + + + + Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. + הוספת מסד נתונים נתון מ <path> בשם <name> לרשימת מסדי הנתונים. השם <name> הוא שם סמלי אליו ניתן יהיה להתייחס מאוחר יותר. נא לבחור בכל שם ייחודי. לרשימת מסדי נתונים הנמצאים כבר ברשימה, נא להשתמש בפקודה%1. + + + + name + CLI command syntax + שם + + + + path + CLI command syntax + נתיב + + + + CliCommandCd + + + Changed directory to: %1 + מחיצה שונתה ל: %1 + + + + Could not change directory to: %1 + לא ניתן לשנות מחיצה ל: %1 + + + + changes current working directory + שינוי מחיצת עבודה נוכחית + + + + Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. + פקודה דומה מאוד ל 'cd' המוכרת ממערכות יוניקס וחלונות. דורש <path> להעברת משתנה בלתי תלוי, לכן קריאה ל-%1 תגרום תמיד לשינוי מחיצה. למציאת 'מחיצת העבודה הנוכחית, ניתן להשתמש בפקודה %2 ולהצגת תוכן מחיצת העבודה הנוכחית ניתן להשתמש בפקודה %3. + + + + path + CLI command syntax + נתיב + + + + CliCommandClose + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + + Connection to database %1 closed. + קישור למסד נתונים %1 נותק. + + + + No such database: %1. Use %2 to see list of known databases. + No such database: %1. Use %2 to see list of known databases. + + + + closes given (or current) database + סגירת מסד נתונים נתון (או נוכחי) + + + + Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). + Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). + + + + name + CLI command syntax + שם + + + + CliCommandDbList + + + No current working database defined. + לא הוגדר מסד נתונים נוכחי פעיל. + + + + Databases: + מסד נתונים: + + + + + Name + CLI db name column + שם + + + + + Open + CLI connection state column + פתיחה + + + + + Closed + CLI connection state column + סגירה + + + + + Connection + CLI connection state column + חיבור + + + + + Database file path + נתיב מסד הנתונים + + + + prints list of registered databases + הדפסת רשימה של מסדי נתונים רשומים + + + + Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. + Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. + + + + CliCommandDesc + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + + + + Database is not open. + מסד הנתונים אינו פתוח. + + + + Cannot find table named: %1 + לא ניתן למצוא טבלה בשם: %1 + + + + shows details about the table + הצגת פרטים אודות הטבלה + + + + table + טבלה + + + + Table: %1 + טבלה: %1 + + + + Column name + שם עמודה + + + + Data type + סוג נתונים + + + + Constraints + אילוצים + + + + Virtual table: %1 + טבלה מדומה: %1 + + + + Construction arguments: + משתנים בלתי תלויים מבניים: + + + + No construction arguments were passed for this virtual table. + לא הועברו משתנים בלתי תלויים מבניים לטבלה מדומה זו. + + + + CliCommandDir + + + lists directories and files in current working directory + הצגת מחיצות וקבצים במחיצת העבודה הנוכחית + + + + This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. + +You can pass <pattern> with wildcard characters to filter output. + This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. + +You can pass <pattern> with wildcard characters to filter output. + + + + pattern + דפוס + + + + CliCommandExit + + + quits the application + יציאה מהישומון + + + + Quits the application. Settings are stored in configuration file and will be restored on next startup. + יציאה מהיישומון. ההגדרות נשמרות בקובץ התצורה וישוחזרו בהפעלה הבאה. + + + + CliCommandHelp + + + shows this help message + הצגת הודעת עזרה זו + + + + Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. +To see list of supported commands, type %2 without any arguments. + +When passing <command> name, you can skip special prefix character ('%3'). + +You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. + Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. +To see list of supported commands, type %2 without any arguments. + +When passing <command> name, you can skip special prefix character ('%3'). + +You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. + + + + command + CLI command syntax + פקודה + + + + No such command: %1 + לא קיימת פקודה: %1 + + + + Type '%1' for list of available commands. + Type '%1' for list of available commands. + + + + Usage: %1%2 + שימוש: %1%2 + + + + Aliases: %1 + כינויים: %1 + + + + CliCommandHistory + + + Current history limit is set to: %1 + מגבלות היסטוריה נוכחית הוגדרה ל: %1 + + + + prints history or erases it + מציג היסטוריה או מנקה אותה + + + + When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. + +When the -c or --clear option is passed, then the history gets erased. +When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. +Use -ql or --querylimit option to see the current limit value. + When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. + +When the -c or --clear option is passed, then the history gets erased. +When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. +Use -ql or --querylimit option to see the current limit value. + + + + number + מספר + + + + Console history erased. + היסטוריית המסוף נמחקה. + + + + Invalid number: %1 + מספר שגוי: %1 + + + + History limit set to %1 + מגבלות היסטוריה הוגדרו ל %1 + + + + CliCommandMode + + + Current results printing mode: %1 + מצב הדפסת תוצאות נוכחי:%1 + + + + Invalid results printing mode: %1 + מצב הדפסת תוצאות שגוי:%1 + + + + New results printing mode: %1 + מצב הדפסת תוצאות חדש:%1 + + + + tells or changes the query results format + מורה או משנה את תבנית תוצאות השאילתה + + + + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: +- CLASSIC - columns are separated by a comma, not aligned, +- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, +- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), +- ROW - each column from the row is displayed in new line, so the full data is displayed. + +The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. + +The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. + +The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. + +The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: +- CLASSIC - columns are separated by a comma, not aligned, +- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, +- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), +- ROW - each column from the row is displayed in new line, so the full data is displayed. + +The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. + +The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. + +The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. + +The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). + + + + CliCommandNullValue + + + Current NULL representation string: %1 + Current NULL representation string: %1 + + + + tells or changes the NULL representation string + tells or changes the NULL representation string + + + + If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. + If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. + + + + CliCommandOpen + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + Could not add database %1 to list. + לא ניתן להוסיף מסד נתונים %1 לרשימה. + + + + File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. + File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. + + + + Database %1 has been open and set as the current working database. + Database %1 has been open and set as the current working database. + + + + opens database connection + פתיחת קישור למסד נתונים + + + + Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. + פתיחת קישור למסד הנתונים. אם לא הועברו משתנים בלתי תלויים נוספים, יתבצע קישור למסד נתונים ברירת המחדל הנוכחי (לפרטים נוספים ולעזרה %1). במידע והועבר משתנה בלתי תלוי, מסד הנתונים הרשום <name> לפתיחה, או <path> לקובץ מסד הנתונים לפתיחה. במקרה השני, הנתיב <path> יתווסף לרשימה בצרוף לשם שיחולל, אך רק למשך הפעולה הנוכחית של היישום. לאחר אתחול היישום מסד נתונים זה לא ישמר ברשימה. + + + + name + CLI command syntax + שם + + + + path + CLI command syntax + נתיב + + + + CliCommandPwd + + + prints the current working directory + הדפסת מחיצת עבודה נוכחית + + + + This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. + זהה לפקודה 'pwd' במערכות יוניקס ולפקודת 'cd' ללא משתנה בלתי תלוי בחלונות. הפקודה תציג על המסך את מחיצת העבודה הנוכחית. ניתן לשנות את ספריית העבודה הנוכחית באמצעות הפקודה%1 וניתן גם להציג רשימה של תוכן מחיצת העבודה הנוכחית באמצעות הפקודה%2. + + + + CliCommandRemove + + + No such database: %1 + לא קיים מסד נתונים: %1 + + + + Database removed: %1 + מסד נתונים הוסר: %1 + + + + New current database set: + הגדרת מסד נתונים נוכחי חדש: + + + + removes database from the list + הסרת מסד נתונים מהרשימה + + + + Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. + Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. + + + + name + CLI command syntax + שם + + + + CliCommandSql + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + + + + Database is not open. + מספד הנתונים אינו פתוח. + + + + executes SQL query + הרצת שאילתת SQL + + + + This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. + This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. + + + + sql + CLI command syntax + sql + + + + + Too many columns to display in %1 mode. + עמודות רבות מדי למצב תצוגה %1. + + + + Row %1 + שורה %1 + + + + Query execution error: %1 + שגיאת ריצת שאילתה: %1 + + + + CliCommandTables + + + No such database: %1. Use %2 to see list of known databases. + No such database: %1. Use %2 to see list of known databases. + + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + Database %1 is closed. + מסד נתונים %1 סגור. + + + + + Database + מסד נתונים + + + + Table + טבלה + + + + prints list of tables in the database + הדפסת כל הטבלאות במסד הנתונים + + + + Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. +When the -s option is given, then system tables are also listed. + Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. +When the -s option is given, then system tables are also listed. + + + + database + CLI command syntax + מסד נתונים + + + + CliCommandTree + + + No current working database is selected. Use %1 to define one and then run %2. + לא נבחר מסד נתונים נוכחי פעיל. נא השתמש ב־%1 להגדרת אחד, לאחר מכן להריץ את %2. + + + + Tables + טבלאות + + + + Views + מצגים + + + + Columns + עמודות + + + + Indexes + מִפְתֵּחַים + + + + + Triggers + מַזְנֵקים + + + + prints all objects in the database as a tree + הדפסת כל עצמי מסד הנתונים כעץ + + + + Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. +When -c option is given, then also columns will be listed under each table. +When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). +The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. + Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. +When -c option is given, then also columns will be listed under each table. +When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). +The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. + + + + CliCommandUse + + + No current database selected. + לא נבחר מסד נתונים נוכחי. + + + + + Current database: %1 + מסד נתונים נוכחי: %1 + + + + No such database: %1 + לא קיים מסד נתונים: %1 + + + + changes default working database + החלפת מסד נתונים פעיל ברירת מחדל + + + + Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. + +What is current working database? +When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). + +The default database can be selected in various ways: +- using %1 command, +- by passing database file name to the application startup parameters, +- by passing registered database name to the application startup parameters, +- by restoring previously selected default database from saved configuration, +- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. + Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. + +What is current working database? +When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). + +The default database can be selected in various ways: +- using %1 command, +- by passing database file name to the application startup parameters, +- by passing registered database name to the application startup parameters, +- by restoring previously selected default database from saved configuration, +- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. + + + + name + CLI command syntax + שם + + + + QObject + + + Insufficient number of arguments. + מספר משתנים בלתי תלויים לא מספקים. + + + + Too many arguments. + משתנים בלתי תלויים רבים מידי. + + + + Invalid argument value: %1. +Expected one of: %2 + משתנה בלתי תלוי שגוי: %1. +המערכת ציפתה לאחד מ: %2 + + + + Unknown option: %1 + CLI command syntax + אפשרות לא ידועה: %1 + + + + Option %1 requires an argument. + CLI command syntax + אפשרות %1 דורשת משתנה בלתי תלוי. + + + + string + CLI command syntax + מחרוזת + + + + Command line interface to SQLiteStudio, a SQLite manager. + מנשק משתמש שורת־פקודה SQLiteStudio, תכנת ניהול SQLite. + + + + Enables debug messages on standard error output. + Enables debug messages on standard error output. + + + + Enables Lemon parser debug messages for SQL code assistant. + אפשור הודעות ניפוי תקלים ניתוח תחביר Lemon לסייען קוד SQL. + + + + Lists plugins installed in the SQLiteStudio and quits. + הצגת רשימת מתקעים מותקנים ב־SQLiteStudio ויציאה. + + + + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + + + + SQL file + SQL file + + + + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. + + + + codec + codec + + + + Lists available codecs to be used with -c option and quits. + Lists available codecs to be used with -c option and quits. + + + + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. + + + + file + קובץ + + + + Database file to open + קובץ מסד נתונים לפתיחה + + + + Invalid codec: %1. Use -cl option to list available codecs. + Invalid codec: %1. Use -cl option to list available codecs. + + + + Database file argument is mandatory when executing SQL file. + Database file argument is mandatory when executing SQL file. + + + + Could not open specified database for executing SQL file. You may try using -d option to find out more details. + Could not open specified database for executing SQL file. You may try using -d option to find out more details. + + + diff --git a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_hu_HU.ts b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_hu_HU.ts new file mode 100644 index 0000000..ec507d6 --- /dev/null +++ b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_hu_HU.ts @@ -0,0 +1,876 @@ + + + + + CLI + + + Current database: %1 + Current database: %1 + + + + No current working database is set. + No current working database is set. + + + + Type %1 for help + Type %1 for help + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + Database passed in command line parameters (%1) was already on the list under name: %2 + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + closed + closed + + + + CliCommand + + + Usage: %1%2 + Usage: %1%2 + + + + CliCommandAdd + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + Database added: %1 + Database added: %1 + + + + adds new database to the list + adds new database to the list + + + + Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. + Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. + + + + name + CLI command syntax + name + + + + path + CLI command syntax + path + + + + CliCommandCd + + + Changed directory to: %1 + Changed directory to: %1 + + + + Could not change directory to: %1 + Could not change directory to: %1 + + + + changes current working directory + changes current working directory + + + + Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. + Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. + + + + path + CLI command syntax + path + + + + CliCommandClose + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + + Connection to database %1 closed. + Connection to database %1 closed. + + + + No such database: %1. Use %2 to see list of known databases. + No such database: %1. Use %2 to see list of known databases. + + + + closes given (or current) database + closes given (or current) database + + + + Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). + Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). + + + + name + CLI command syntax + name + + + + CliCommandDbList + + + No current working database defined. + No current working database defined. + + + + Databases: + Databases: + + + + + Name + CLI db name column + Name + + + + + Open + CLI connection state column + Open + + + + + Closed + CLI connection state column + Closed + + + + + Connection + CLI connection state column + Connection + + + + + Database file path + Database file path + + + + prints list of registered databases + prints list of registered databases + + + + Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. + Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. + + + + CliCommandDesc + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + + + + Database is not open. + Database is not open. + + + + Cannot find table named: %1 + Cannot find table named: %1 + + + + shows details about the table + shows details about the table + + + + table + table + + + + Table: %1 + Table: %1 + + + + Column name + Column name + + + + Data type + Data type + + + + Constraints + Constraints + + + + Virtual table: %1 + Virtual table: %1 + + + + Construction arguments: + Construction arguments: + + + + No construction arguments were passed for this virtual table. + No construction arguments were passed for this virtual table. + + + + CliCommandDir + + + lists directories and files in current working directory + lists directories and files in current working directory + + + + This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. + +You can pass <pattern> with wildcard characters to filter output. + This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. + +You can pass <pattern> with wildcard characters to filter output. + + + + pattern + pattern + + + + CliCommandExit + + + quits the application + quits the application + + + + Quits the application. Settings are stored in configuration file and will be restored on next startup. + Quits the application. Settings are stored in configuration file and will be restored on next startup. + + + + CliCommandHelp + + + shows this help message + shows this help message + + + + Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. +To see list of supported commands, type %2 without any arguments. + +When passing <command> name, you can skip special prefix character ('%3'). + +You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. + Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. +To see list of supported commands, type %2 without any arguments. + +When passing <command> name, you can skip special prefix character ('%3'). + +You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. + + + + command + CLI command syntax + command + + + + No such command: %1 + No such command: %1 + + + + Type '%1' for list of available commands. + Type '%1' for list of available commands. + + + + Usage: %1%2 + Usage: %1%2 + + + + Aliases: %1 + Aliases: %1 + + + + CliCommandHistory + + + Current history limit is set to: %1 + Current history limit is set to: %1 + + + + prints history or erases it + prints history or erases it + + + + When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. + +When the -c or --clear option is passed, then the history gets erased. +When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. +Use -ql or --querylimit option to see the current limit value. + When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. + +When the -c or --clear option is passed, then the history gets erased. +When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. +Use -ql or --querylimit option to see the current limit value. + + + + number + number + + + + Console history erased. + Console history erased. + + + + Invalid number: %1 + Invalid number: %1 + + + + History limit set to %1 + History limit set to %1 + + + + CliCommandMode + + + Current results printing mode: %1 + Current results printing mode: %1 + + + + Invalid results printing mode: %1 + Invalid results printing mode: %1 + + + + New results printing mode: %1 + New results printing mode: %1 + + + + tells or changes the query results format + tells or changes the query results format + + + + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: +- CLASSIC - columns are separated by a comma, not aligned, +- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, +- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), +- ROW - each column from the row is displayed in new line, so the full data is displayed. + +The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. + +The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. + +The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. + +The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: +- CLASSIC - columns are separated by a comma, not aligned, +- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, +- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), +- ROW - each column from the row is displayed in new line, so the full data is displayed. + +The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. + +The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. + +The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. + +The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). + + + + CliCommandNullValue + + + Current NULL representation string: %1 + Current NULL representation string: %1 + + + + tells or changes the NULL representation string + tells or changes the NULL representation string + + + + If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. + If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. + + + + CliCommandOpen + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. + File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. + + + + Database %1 has been open and set as the current working database. + Database %1 has been open and set as the current working database. + + + + opens database connection + opens database connection + + + + Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. + Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. + + + + name + CLI command syntax + name + + + + path + CLI command syntax + path + + + + CliCommandPwd + + + prints the current working directory + prints the current working directory + + + + This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. + This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. + + + + CliCommandRemove + + + No such database: %1 + No such database: %1 + + + + Database removed: %1 + Database removed: %1 + + + + New current database set: + New current database set: + + + + removes database from the list + removes database from the list + + + + Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. + Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. + + + + name + CLI command syntax + name + + + + CliCommandSql + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + + + + Database is not open. + Database is not open. + + + + executes SQL query + executes SQL query + + + + This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. + This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. + + + + sql + CLI command syntax + sql + + + + + Too many columns to display in %1 mode. + Too many columns to display in %1 mode. + + + + Row %1 + Row %1 + + + + Query execution error: %1 + Query execution error: %1 + + + + CliCommandTables + + + No such database: %1. Use %2 to see list of known databases. + No such database: %1. Use %2 to see list of known databases. + + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + Database %1 is closed. + Database %1 is closed. + + + + + Database + Database + + + + Table + Table + + + + prints list of tables in the database + prints list of tables in the database + + + + Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. +When the -s option is given, then system tables are also listed. + Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. +When the -s option is given, then system tables are also listed. + + + + database + CLI command syntax + database + + + + CliCommandTree + + + No current working database is selected. Use %1 to define one and then run %2. + No current working database is selected. Use %1 to define one and then run %2. + + + + Tables + Tables + + + + Views + Views + + + + Columns + Columns + + + + Indexes + Indexes + + + + + Triggers + Triggers + + + + prints all objects in the database as a tree + prints all objects in the database as a tree + + + + Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. +When -c option is given, then also columns will be listed under each table. +When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). +The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. + Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. +When -c option is given, then also columns will be listed under each table. +When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). +The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. + + + + CliCommandUse + + + No current database selected. + No current database selected. + + + + + Current database: %1 + Current database: %1 + + + + No such database: %1 + No such database: %1 + + + + changes default working database + changes default working database + + + + Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. + +What is current working database? +When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). + +The default database can be selected in various ways: +- using %1 command, +- by passing database file name to the application startup parameters, +- by passing registered database name to the application startup parameters, +- by restoring previously selected default database from saved configuration, +- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. + Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. + +What is current working database? +When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). + +The default database can be selected in various ways: +- using %1 command, +- by passing database file name to the application startup parameters, +- by passing registered database name to the application startup parameters, +- by restoring previously selected default database from saved configuration, +- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. + + + + name + CLI command syntax + name + + + + QObject + + + Insufficient number of arguments. + Insufficient number of arguments. + + + + Too many arguments. + Too many arguments. + + + + Invalid argument value: %1. +Expected one of: %2 + Invalid argument value: %1. +Expected one of: %2 + + + + Unknown option: %1 + CLI command syntax + Unknown option: %1 + + + + Option %1 requires an argument. + CLI command syntax + Option %1 requires an argument. + + + + string + CLI command syntax + string + + + + Command line interface to SQLiteStudio, a SQLite manager. + Command line interface to SQLiteStudio, a SQLite manager. + + + + Enables debug messages on standard error output. + Enables debug messages on standard error output. + + + + Enables Lemon parser debug messages for SQL code assistant. + Enables Lemon parser debug messages for SQL code assistant. + + + + Lists plugins installed in the SQLiteStudio and quits. + Lists plugins installed in the SQLiteStudio and quits. + + + + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + + + + SQL file + SQL file + + + + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. + + + + codec + codec + + + + Lists available codecs to be used with -c option and quits. + Lists available codecs to be used with -c option and quits. + + + + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. + + + + file + file + + + + Database file to open + Database file to open + + + + Invalid codec: %1. Use -cl option to list available codecs. + Invalid codec: %1. Use -cl option to list available codecs. + + + + Database file argument is mandatory when executing SQL file. + Database file argument is mandatory when executing SQL file. + + + + Could not open specified database for executing SQL file. You may try using -d option to find out more details. + Could not open specified database for executing SQL file. You may try using -d option to find out more details. + + + diff --git a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_it.qm b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_it.qm deleted file mode 100644 index 9dad8df..0000000 Binary files a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_it.qm and /dev/null differ diff --git a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_it.ts b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_it.ts deleted file mode 100644 index ede41bc..0000000 --- a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_it.ts +++ /dev/null @@ -1,788 +0,0 @@ - - - - - CLI - - - Current database: %1 - - - - - No current working database is set. - - - - - Type %1 for help - - - - - Database passed in command line parameters (%1) was already on the list under name: %2 - - - - - Could not add database %1 to list. - - - - - closed - - - - - CliCommand - - - Usage: %1%2 - - - - - CliCommandAdd - - - Could not add database %1 to list. - - - - - Database added: %1 - - - - - adds new database to the list - - - - - Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. - - - - - name - CLI command syntax - - - - - path - CLI command syntax - - - - - CliCommandCd - - - Changed directory to: %1 - - - - - Could not change directory to: %1 - - - - - changes current working directory - - - - - Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. - - - - - path - CLI command syntax - - - - - CliCommandClose - - - Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. - - - - - - Connection to database %1 closed. - - - - - No such database: %1. Use %2 to see list of known databases. - - - - - closes given (or current) database - - - - - Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). - - - - - name - CLI command syntax - - - - - CliCommandDbList - - - No current working database defined. - - - - - Databases: - - - - - - Name - CLI db name column - - - - - - Open - CLI connection state column - - - - - - Closed - CLI connection state column - - - - - - Connection - CLI connection state column - - - - - - Database file path - - - - - prints list of registered databases - - - - - Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. - - - - - CliCommandDesc - - - No working database is set. -Call %1 command to set working database. -Call %2 to see list of all databases. - - - - - Database is not open. - - - - - Cannot find table named: %1 - - - - - shows details about the table - - - - - table - - - - - Table: %1 - - - - - Column name - - - - - Data type - - - - - Constraints - - - - - Virtual table: %1 - - - - - Construction arguments: - - - - - No construction arguments were passed for this virtual table. - - - - - CliCommandDir - - - lists directories and files in current working directory - - - - - This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. - -You can pass <pattern> with wildcard characters to filter output. - - - - - pattern - - - - - CliCommandExit - - - quits the application - - - - - Quits the application. Settings are stored in configuration file and will be restored on next startup. - - - - - CliCommandHelp - - - shows this help message - - - - - Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. -To see list of supported commands, type %2 without any arguments. - -When passing <command> name, you can skip special prefix character ('%3'). - -You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. - - - - - command - CLI command syntax - - - - - No such command: %1 - - - - - Type '%1' for list of available commands. - - - - - Usage: %1%2 - - - - - Aliases: %1 - - - - - CliCommandHistory - - - Current history limit is set to: %1 - - - - - prints history or erases it - - - - - When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. - -When the -c or --clear option is passed, then the history gets erased. -When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. -Use -ql or --querylimit option to see the current limit value. - - - - - number - - - - - Console history erased. - - - - - Invalid number: %1 - - - - - History limit set to %1 - - - - - CliCommandMode - - - Current results printing mode: %1 - - - - - Invalid results printing mode: %1 - - - - - New results printing mode: %1 - - - - - tells or changes the query results format - - - - - When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: -- CLASSIC - columns are separated by a comma, not aligned, -- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, -- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), -- ROW - each column from the row is displayed in new line, so the full data is displayed. - -The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. - -The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. - -The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. -ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widhts, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. - -The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). - - - - - CliCommandNullValue - - - Current NULL representation string: %1 - - - - - tells or changes the NULL representation string - - - - - If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. - - - - - CliCommandOpen - - - Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. - - - - - Could not add database %1 to list. - - - - - File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. - - - - - Database %1 has been open and set as the current working database. - - - - - opens database connection - - - - - Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. - - - - - name - CLI command syntax - - - - - path - CLI command syntax - - - - - CliCommandPwd - - - prints the current working directory - - - - - This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. - - - - - CliCommandRemove - - - No such database: %1 - - - - - Database removed: %1 - - - - - New current database set: - - - - - removes database from the list - - - - - Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. - - - - - name - CLI command syntax - - - - - CliCommandSql - - - No working database is set. -Call %1 command to set working database. -Call %2 to see list of all databases. - - - - - Database is not open. - - - - - executes SQL query - - - - - This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. - - - - - sql - CLI command syntax - - - - - - Too many columns to display in %1 mode. - - - - - Row %1 - - - - - Query execution error: %1 - - - - - CliCommandTables - - - No such database: %1. Use %2 to see list of known databases. - - - - - Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. - - - - - Database %1 is closed. - - - - - - Database - - - - - Table - - - - - prints list of tables in the database - - - - - Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. -When the -s option is given, then system tables are also listed. - - - - - database - CLI command syntax - - - - - CliCommandTree - - - No current working database is selected. Use %1 to define one and then run %2. - - - - - Tables - - - - - Views - - - - - Columns - - - - - Indexes - - - - - - Triggers - - - - - prints all objects in the database as a tree - - - - - Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. -When -c option is given, then also columns will be listed under each table. -When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). -The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. - - - - - CliCommandUse - - - No current database selected. - - - - - - Current database: %1 - - - - - No such database: %1 - - - - - changes default working database - - - - - Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. - -What is current working database? -When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). - -The default database can be selected in various ways: -- using %1 command, -- by passing database file name to the application startup parameters, -- by passing registered database name to the application startup parameters, -- by restoring previously selected default database from saved configuration, -- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. - - - - - name - CLI command syntax - - - - - QObject - - - Insufficient number of arguments. - - - - - Too many arguments. - - - - - Invalid argument value: %1. -Expected one of: %2 - - - - - Unknown option: %1 - CLI command syntax - - - - - Option %1 requires an argument. - CLI command syntax - - - - - string - CLI command syntax - - - - - Command line interface to SQLiteStudio, a SQLite manager. - - - - - Enables debug messages on standard error output. - - - - - Enables Lemon parser debug messages for SQL code assistant. - - - - - Lists plugins installed in the SQLiteStudio and quits. - - - - - file - - - - - Database file to open - - - - diff --git a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_it_IT.ts b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_it_IT.ts new file mode 100644 index 0000000..3400d5a --- /dev/null +++ b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_it_IT.ts @@ -0,0 +1,876 @@ + + + + + CLI + + + Current database: %1 + Database attuale: %1 + + + + No current working database is set. + Nessun database di lavoro è stato impostato. + + + + Type %1 for help + Digita %1 per aiuto + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + Il database passato nei parametri della riga di comando (%1) era già nell'elenco sotto nome: %2 + + + + Could not add database %1 to list. + Impossibile aggiungere il database %1 all'elenco. + + + + closed + chiuso + + + + CliCommand + + + Usage: %1%2 + Uso: %1%2 + + + + CliCommandAdd + + + Could not add database %1 to list. + Impossibile aggiungere il database %1 all'elenco. + + + + Database added: %1 + Database aggiunto: %1 + + + + adds new database to the list + aggiunge un nuovo database alla lista + + + + Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. + Aggiunge il database dato puntato da <path> con dato <name> per elencare l'elenco dei database. Il <name> è solo un nome simbolico a cui puoi fare riferimento in seguito. Basta scegliere un nome univoco. Per l'elenco dei database già presenti nella lista usa il comando %1. + + + + name + CLI command syntax + nome + + + + path + CLI command syntax + percorso + + + + CliCommandCd + + + Changed directory to: %1 + Cartella modificata in: %1 + + + + Could not change directory to: %1 + Impossibile cambiare la directory in: %1 + + + + changes current working directory + cambia la directory di lavoro corrente + + + + Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. + Comando molto simile a 'cd' conosciuto da sistemi Unix e Windows. Richiede un argomento <path> da passare, quindi chiamare %1 causerà sempre un cambiamento della directory. Per imparare quale è la directory di lavoro corrente usa il comando %2 e per elencare i contenuti della directory di lavoro corrente usa il comando %3. + + + + path + CLI command syntax + percorso + + + + CliCommandClose + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Impossibile chiamare %1 quando nessun database è impostato per essere corrente. Specificare il database corrente con il comando %2 o passare il nome del database a %3. + + + + + Connection to database %1 closed. + Connessione al database %1 chiusa. + + + + No such database: %1. Use %2 to see list of known databases. + Database inesistente: %1. Usa %2 per vedere l'elenco dei database conosciuti. + + + + closes given (or current) database + chiude il database specificato (o corrente) + + + + Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). + Chiude la connessione al database. Se il database era già chiuso, non succede nulla. Se il <name> è specificato, dovrebbe essere il nome del database da chiudere (come stampato dal comando %1). Poi se il <nome> non viene specificato, il database di lavoro corrente è chiuso (vedi aiuto per %2 per i dettagli). + + + + name + CLI command syntax + nome + + + + CliCommandDbList + + + No current working database defined. + Nessun database di lavoro è stato impostato. + + + + Databases: + Databases: + + + + + Name + CLI db name column + Nome + + + + + Open + CLI connection state column + Apri + + + + + Closed + CLI connection state column + Chiuso + + + + + Connection + CLI connection state column + Connessione + + + + + Database file path + Percorso file database + + + + prints list of registered databases + stampa l'elenco dei database registrati + + + + Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. + Stampa la lista dei database registrati in SQLiteStudio. Ogni database nella lista può essere in stato di aperto o chiuso e %1 te lo dice. Anche il database di lavoro corrente (aka database predefinito) è contrassegnato nella lista con '*' all'inizio del suo nome. Vedi la guida per il comando %2 per conoscere il database predefinito. + + + + CliCommandDesc + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + Non è stato impostato alcun database funzionante. +Esegui il comando %1 per impostare il database di lavoro. +Esegui %2 per vedere l'elenco di tutti i database. + + + + Database is not open. + Il database non è aperto. + + + + Cannot find table named: %1 + Impossibile trovare la tabella denominata: %1 + + + + shows details about the table + mostra i dettagli della tabella + + + + table + tabella + + + + Table: %1 + Tabella: %1 + + + + Column name + Nome colonna + + + + Data type + Tipo di dati + + + + Constraints + Vincoli + + + + Virtual table: %1 + Tabella virtuale: %1 + + + + Construction arguments: + Argomenti di costruzione: + + + + No construction arguments were passed for this virtual table. + Nessun argomento di costruzione è stato passato per questa tabella virtuale. + + + + CliCommandDir + + + lists directories and files in current working directory + elenca le directory e i file nella directory di lavoro corrente + + + + This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. + +You can pass <pattern> with wildcard characters to filter output. + Questo è molto simile a 'dir' comando conosciuto da Windows e 'ls' comando da sistemi Unix. + +Puoi passare <pattern> con caratteri jolly per filtrare l'output. + + + + pattern + modello + + + + CliCommandExit + + + quits the application + chiude l'applicazione + + + + Quits the application. Settings are stored in configuration file and will be restored on next startup. + Esce dall'applicazione. Le impostazioni sono memorizzate nel file di configurazione e saranno ripristinate al prossimo avvio. + + + + CliCommandHelp + + + shows this help message + mostra questo messaggio di aiuto + + + + Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. +To see list of supported commands, type %2 without any arguments. + +When passing <command> name, you can skip special prefix character ('%3'). + +You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. + Usa %1 per conoscere alcuni comandi supportati dall'interfaccia a linea di comando (CLI) di Sqlitestudio. +Per vedere l'elenco dei comandi supportati, digita %2 senza alcun argomento. + +Quando passi il nome <command>, puoi non scrivere il carattere prefisso speciale ('%3'). + +Puoi sempre eseguire qualsiasi comando con l'opzione'--help' per vedere l'aiuto per quel comando. E' una alternativa al dover scrivere: %1 <command>. + + + + command + CLI command syntax + comando + + + + No such command: %1 + Comando inesistente: %1 + + + + Type '%1' for list of available commands. + Digita '%1' per l'elenco dei comandi disponibili. + + + + Usage: %1%2 + Uso: %1%2 + + + + Aliases: %1 + Aliases: %1 + + + + CliCommandHistory + + + Current history limit is set to: %1 + Il limite di cronologia corrente è impostato a: %1 + + + + prints history or erases it + stampa la cronologia o la cancella + + + + When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. + +When the -c or --clear option is passed, then the history gets erased. +When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. +Use -ql or --querylimit option to see the current limit value. + Quando non è stato passato alcun argomento, questo comando stampa la cronologia della riga di comando. Ogni voce della cronologia è separata da una linea orizzontale, quindi le voci multilinea sono più facili da leggere. + +Quando viene passata l'opzione -c o --clear, la cronologia viene cancellata. +Quando l'opzione -l o --limit viene passata, imposta il limite delle nuove voci della cronologia. Richiede un ulteriore argomento che dice a quante voci vuoi che la cronologia sia limitata. +Usa l'opzione -ql o --querylimit per vedere il valore limite corrente. + + + + number + numero + + + + Console history erased. + Cronologia delle console cancellata. + + + + Invalid number: %1 + Numero non valido: %1 + + + + History limit set to %1 + Limite di cronologia impostato a %1 + + + + CliCommandMode + + + Current results printing mode: %1 + Modalità di stampa dei risultati attuali: %1 + + + + Invalid results printing mode: %1 + Modalità di stampa risultati non valida: %1 + + + + New results printing mode: %1 + Nuova modalità di stampa risultati: %1 + + + + tells or changes the query results format + dice o cambia il formato dei risultati della query + + + + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: +- CLASSIC - columns are separated by a comma, not aligned, +- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, +- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), +- ROW - each column from the row is displayed in new line, so the full data is displayed. + +The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. + +The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. + +The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. + +The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). + Quando viene chiamato senza argomento, indica il formato di output corrente per i risultati di una interrogazione. Quando il <mode> viene passato, la modalità viene cambiata in quella specificata. Le modalità supportate sono: +- CLASSIC - le colonne sono separate da una virgola, non allineate, +- FIXED - le colonne hanno larghezza uguale e fissa, si adattano sempre alla larghezza della finestra del terminale, ma i dati in colonne possono essere tagliati, +- COLUMNS - come FIXED, ma più intelligente (non usare con enormi set di risultati, vedere i dettagli qui sotto), +- ROW - ogni colonna della riga viene visualizzata in una nuova riga, quindi vengono visualizzati i dati completi. + +La modalità CLASSIC è consigliata se si desidera visualizzare tutti i dati, ma non si vuole sprecare le linee per ogni colonna. Ogni riga visualizzerà i dati completi per ogni colonna, ma ciò significa anche che le colonne non saranno allineate l'una all'altra nelle righe successive. La modalità CLASSIC inoltre non rispetta la larghezza della finestra terminale (console), quindi se i valori nelle colonne sono più larghi della finestra, la riga verrà continuata nelle righe successive. + +La modalità FIXED è consigliata se si desidera un output leggibile e se si ha cura dei valori di dati lunghi. Le colonne saranno allineate, rendendo l'output come bella tabella. La larghezza delle colonne è calcolata a partire dalla larghezza della finestra della console e da un numero di colonne. + +La modalità COLUMNS è simile alla modalità FIXED, ma cerca di essere intelligente e di rendere più strette le colonne con valori più corti, mentre le colonne con valori più lunghi avranno più spazio. Le prime ad essere rimpicciolite sono le colonne con le intestazioni più lunghe (quindi i nomi delle intestazioni vengono tagliati per primi), poi vengono rimpicciolite le colonne con i valori più lunghi, fino al momento in cui tutte le colonne entrano nella finestra del terminale. +ATTENZIONE! La modalità COLONNE legge tutti i risultati della query in una volta sola per valutare la larghezza delle colonne, quindi è pericoloso usarla quando si lavora con insiemi di risultati enormi. Tenere presente che questa modalità carica l'intero insieme di risultati in memoria. + +La modalità ROW è consigliata se si ha bisogno di vedere i valori interi e non ci si aspetta che vengano visualizzate molte righe, perché questa modalità visualizza una riga di output per ogni colonna, quindi si otterranno 10 righe per singola riga con 10 colonne, quindi se si hanno 10 righe di questo tipo, si otterranno 100 righe di output (+1 riga in più per ogni riga, per separare le righe l'una dall'altra). + + + + CliCommandNullValue + + + Current NULL representation string: %1 + Stringa attuale per la rappresentazione del NULL: %1 + + + + tells or changes the NULL representation string + mostra o cambia la stringa di rappresentazione NULL + + + + If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. + Se non è stato passato nessun argomento, indica quale è la rappresentazione attuale del valore NULL (cioè ciò che è stampato al posto dei valori NULL nei risultati della query). Se l'argomento è passato, allora viene usato come nuova stringa da usarsi per la rappresentazione NULL. + + + + CliCommandOpen + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Impossibile chiamare %1 quando nessun database è impostato per essere corrente. Specificare il database corrente con il comando %2 o passare il nome del database a %3. + + + + Could not add database %1 to list. + Impossibile aggiungere il database %1 all'elenco. + + + + File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. + Il file %1 non esiste in %2. Impossibile aprire il database inesistente con il comando %3. Per creare un nuovo database, usa il comando %4. + + + + Database %1 has been open and set as the current working database. + Il database %1 è stato aperto e impostato come database di lavoro corrente. + + + + opens database connection + apre la connessione al database + + + + Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. + Apre la connessione al database. Se non è stato passato alcun argomento aggiuntivo, allora la connessione è aperta al database predefinito corrente (vedi aiuto per %1 per i dettagli). Tuttavia, se un argomento è stato passato, può essere il <name> del database registrato da aprire, o può essere il <path> al file del database da aprire. Nel secondo caso, il <path> viene registrato nella lista con un nome generato, ma solo per il periodo della sessione attuale dell'applicazione. Dopo aver riavviato l'applicazione, tale database non viene ripristinato nell'elenco. + + + + name + CLI command syntax + nome + + + + path + CLI command syntax + percorso + + + + CliCommandPwd + + + prints the current working directory + stampa la directory di lavoro corrente + + + + This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. + Questo è lo stesso comando 'pwd' su sistemi Unix e 'cd' senza argomenti su Windows. Stampa la directory di lavoro corrente. È possibile modificare la directory di lavoro corrente con il comando %1 ed è anche possibile elencare i contenuti della directory di lavoro corrente con il comando %2. + + + + CliCommandRemove + + + No such database: %1 + Database inesistente: %1 + + + + Database removed: %1 + Database rimosso: %1 + + + + New current database set: + Nuovo database corrente impostato: + + + + removes database from the list + rimuove il database dalla lista + + + + Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. + Rimuove il database <name> dall'elenco dei database registrati. Se il database non era nella lista (vedere il comando %1), un messaggio di errore viene stampato e nessuna operazione verrà eseguita. + + + + name + CLI command syntax + nome + + + + CliCommandSql + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + Non è stato impostato alcun database funzionante. +Esegui il comando %1 per impostare il database di lavoro. +Esegui %2 per vedere l'elenco di tutti i database. + + + + Database is not open. + Il database non è aperto. + + + + executes SQL query + esegue query SQL + + + + This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. + Questo comando viene eseguito ogni volta che si inserisce la query SQL nel prompt dei comandi. Esegue la query nel database corrente di lavoro (consultare la guida per %1 per i dettagli). Non ha senso eseguire questo comando esplicitamente. Invece basta digitare la query SQL nel prompt dei comandi, senza alcun prefisso dei comandi. + + + + sql + CLI command syntax + sql + + + + + Too many columns to display in %1 mode. + Troppe colonne da visualizzare in modalità %1. + + + + Row %1 + Riga %1 + + + + Query execution error: %1 + Errore di esecuzione query: %1 + + + + CliCommandTables + + + No such database: %1. Use %2 to see list of known databases. + Database inesistente: %1. Usa %2 per vedere l'elenco dei database conosciuti. + + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Impossibile chiamare %1 quando nessun database è impostato per essere corrente. Specificare il database corrente con %2 comando o passare il nome del database a %3. + + + + Database %1 is closed. + Il database %1 è chiuso. + + + + + Database + Database + + + + Table + Tabella + + + + prints list of tables in the database + stampa l'elenco delle tabelle nel database + + + + Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. +When the -s option is given, then system tables are also listed. + Stampa l'elenco delle tabelle nel <database> specificato o nel database di lavoro corrente. Nota, che il <database> dovrebbe essere il nome del database registrato (vedi %1). L'elenco di output include tutte le tabelle di qualsiasi altro database allegato al database interrogato. +Quando viene fornita l'opzione -s, vengono elencate anche le tabelle di sistema. + + + + database + CLI command syntax + database + + + + CliCommandTree + + + No current working database is selected. Use %1 to define one and then run %2. + Non è stato selezionato alcun database di lavoro corrente. Utilizzare %1 per definirne uno e quindi eseguire %2. + + + + Tables + Tabelle + + + + Views + Viste + + + + Columns + Colonne + + + + Indexes + Indici + + + + + Triggers + Trigger + + + + prints all objects in the database as a tree + stampa tutti gli oggetti nel database ad albero + + + + Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. +When -c option is given, then also columns will be listed under each table. +When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). +The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. + Stampa tutti gli oggetti (tabelle, indici, trigger e viste) che si trovano nel database come albero. L'albero è molto simile a quello che si può vedere nel client GUI di SQLiteStudio. +Quando viene fornita l'opzione -c, anche le colonne saranno elencate sotto ogni tabella. +Quando viene fornita l'opzione -s, anche gli oggetti di sistema verranno stampati (tabelle sqlite_*, indici di incremento automatico, ecc). +L'argomento database è opzionale e, se fornito, verrà stampato solo il database specificato. Questo non è un nome di database registrato, ma invece è un nome di database SQLite interno, come 'main', 'temp' o qualsiasi nome allegato al database. Per stampare un albero per altri database registrati, chiama %1 prima per cambiare il database di lavoro e poi usa il comando %2. + + + + CliCommandUse + + + No current database selected. + Nessun database corrente selezionato. + + + + + Current database: %1 + Database attuale: %1 + + + + No such database: %1 + Database inesistente: %1 + + + + changes default working database + modifica il database di lavoro predefinito + + + + Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. + +What is current working database? +When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). + +The default database can be selected in various ways: +- using %1 command, +- by passing database file name to the application startup parameters, +- by passing registered database name to the application startup parameters, +- by restoring previously selected default database from saved configuration, +- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. + Cambia il database di lavoro corrente in <name>. Se il database <name> non è registrato nell'applicazione, il messaggio di errore viene stampato e non viene apportata alcuna modifica. + +Cos'è il database di lavoro attuale? +Quando digiti una query SQL da eseguire, viene eseguita nel database predefinito, che è noto anche come database di lavoro corrente. La maggior parte dei comandi correlati al database può funzionare anche usando il database predefinito, se non è stato fornito alcun database nei loro argomenti. Il database corrente è sempre identificato dal prompt a riga di comando. Il database predefinito è sempre definito (a meno che non ci sia alcun database nella lista). + +Il database predefinito può essere selezionato in vari modi: +- usando il comando %1, +- passando il nome del file di database ai parametri di avvio dell'applicazione, +- passando il nome del database registrato ai parametri di avvio dell'applicazione, +- ripristinando il database predefinito precedentemente selezionato dalla configurazione salvata, +- o quando il database predefinito non è stato selezionato da nessuno dei precedenti, allora il primo database dell'elenco dei database registrati diventa quello predefinito. + + + + name + CLI command syntax + nome + + + + QObject + + + Insufficient number of arguments. + Numero insufficiente di argomenti. + + + + Too many arguments. + Troppi argomenti. + + + + Invalid argument value: %1. +Expected one of: %2 + Valore argomento non valido: %1. +Atteso uno di: %2 + + + + Unknown option: %1 + CLI command syntax + Opzione sconosciuta: %1 + + + + Option %1 requires an argument. + CLI command syntax + L'opzione %1 richiede un argomento. + + + + string + CLI command syntax + stringa + + + + Command line interface to SQLiteStudio, a SQLite manager. + Interfaccia a riga di comando per SQLiteStudio, un gestore SQLite. + + + + Enables debug messages on standard error output. + Abilita i messaggi di debug sullo standard error output. + + + + Enables Lemon parser debug messages for SQL code assistant. + Abilita i messaggi di debug dell'analizzatore Lemon per l'assistente di codice SQL. + + + + Lists plugins installed in the SQLiteStudio and quits. + Elenca i plugin installati in SQLiteStudio ed esce. + + + + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + Esegue il file SQL fornito (incluse tutte le ricche caratteristiche dell'esecutore delle query di SQLiteStudio) sul file di database specificato e termina. Il parametro del database diventa obbligatorio se viene utilizzata questa opzione. + + + + SQL file + File SQL + + + + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. + Codifica dei caratteri da usare quando si legge il file SQL (opzione -e). Usare -cl per elencare le codifiche disponibili. Predefinito a %1. + + + + codec + codifica + + + + Lists available codecs to be used with -c option and quits. + Elenca le codifiche disponibili da utilizzare con l'opzione -c ed esce. + + + + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. + Quando utilizzato insieme all'opzione -e, l'esecuzione non si fermerà su un errore, ma piuttosto continuerà fino alla fine, ignorando gli errori. + + + + file + file + + + + Database file to open + File del database da aprire + + + + Invalid codec: %1. Use -cl option to list available codecs. + Codifica non valida: %1. Usa l'opzione -cl per elencare le codifiche disponibili. + + + + Database file argument is mandatory when executing SQL file. + L'argomento del file database è obbligatorio quando si esegue il file SQL. + + + + Could not open specified database for executing SQL file. You may try using -d option to find out more details. + Impossibile aprire il database specificato per eseguire il file SQL. Puoi provare a usare l'opzione -d per scoprire maggiori dettagli. + + + diff --git a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_ja_JP.ts b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_ja_JP.ts new file mode 100644 index 0000000..ccd02e7 --- /dev/null +++ b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_ja_JP.ts @@ -0,0 +1,876 @@ + + + + + CLI + + + Current database: %1 + 現在のデータベース: %1 + + + + No current working database is set. + 現在の作業データベースが設定されていません。 + + + + Type %1 for help + %1と入力してヘルプを表示 + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + コマンドラインパラメータ(%1) で渡されたデータベースは既に%2のリストにありました + + + + Could not add database %1 to list. + データベース %1 をリストに追加できませんでした。 + + + + closed + 閉じました + + + + CliCommand + + + Usage: %1%2 + 使用方法: %1%2 + + + + CliCommandAdd + + + Could not add database %1 to list. + データベース %1 をリストに追加できませんでした。 + + + + Database added: %1 + データベース%1を追加しました + + + + adds new database to the list + 新しいデータベースをリストに追加 + + + + Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. + <パス>が指す特定のデータベースを追加します。 与えられた<名前> のデータベースのリストを一覧表示します。<名前> は、後で参照できる単なる記号名です。 一意の名前を選択してください。 すでにリストにあるデータベースを表示するには、%1コマンドを使用してください。 + + + + name + CLI command syntax + 名前 + + + + path + CLI command syntax + パス + + + + CliCommandCd + + + Changed directory to: %1 + ディレクトリを %1に変更しました + + + + Could not change directory to: %1 + ディレクトリを%1に変更できませんでした + + + + changes current working directory + 現在の作業ディレクトリを変更 + + + + Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. + Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. + + + + path + CLI command syntax + path + + + + CliCommandClose + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + + Connection to database %1 closed. + Connection to database %1 closed. + + + + No such database: %1. Use %2 to see list of known databases. + No such database: %1. Use %2 to see list of known databases. + + + + closes given (or current) database + closes given (or current) database + + + + Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). + Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). + + + + name + CLI command syntax + name + + + + CliCommandDbList + + + No current working database defined. + No current working database defined. + + + + Databases: + Databases: + + + + + Name + CLI db name column + Name + + + + + Open + CLI connection state column + Open + + + + + Closed + CLI connection state column + Closed + + + + + Connection + CLI connection state column + Connection + + + + + Database file path + Database file path + + + + prints list of registered databases + prints list of registered databases + + + + Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. + Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. + + + + CliCommandDesc + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + + + + Database is not open. + Database is not open. + + + + Cannot find table named: %1 + Cannot find table named: %1 + + + + shows details about the table + shows details about the table + + + + table + table + + + + Table: %1 + Table: %1 + + + + Column name + Column name + + + + Data type + Data type + + + + Constraints + Constraints + + + + Virtual table: %1 + Virtual table: %1 + + + + Construction arguments: + Construction arguments: + + + + No construction arguments were passed for this virtual table. + No construction arguments were passed for this virtual table. + + + + CliCommandDir + + + lists directories and files in current working directory + lists directories and files in current working directory + + + + This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. + +You can pass <pattern> with wildcard characters to filter output. + This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. + +You can pass <pattern> with wildcard characters to filter output. + + + + pattern + pattern + + + + CliCommandExit + + + quits the application + quits the application + + + + Quits the application. Settings are stored in configuration file and will be restored on next startup. + Quits the application. Settings are stored in configuration file and will be restored on next startup. + + + + CliCommandHelp + + + shows this help message + shows this help message + + + + Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. +To see list of supported commands, type %2 without any arguments. + +When passing <command> name, you can skip special prefix character ('%3'). + +You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. + Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. +To see list of supported commands, type %2 without any arguments. + +When passing <command> name, you can skip special prefix character ('%3'). + +You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. + + + + command + CLI command syntax + command + + + + No such command: %1 + No such command: %1 + + + + Type '%1' for list of available commands. + Type '%1' for list of available commands. + + + + Usage: %1%2 + Usage: %1%2 + + + + Aliases: %1 + Aliases: %1 + + + + CliCommandHistory + + + Current history limit is set to: %1 + Current history limit is set to: %1 + + + + prints history or erases it + prints history or erases it + + + + When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. + +When the -c or --clear option is passed, then the history gets erased. +When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. +Use -ql or --querylimit option to see the current limit value. + When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. + +When the -c or --clear option is passed, then the history gets erased. +When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. +Use -ql or --querylimit option to see the current limit value. + + + + number + number + + + + Console history erased. + Console history erased. + + + + Invalid number: %1 + Invalid number: %1 + + + + History limit set to %1 + History limit set to %1 + + + + CliCommandMode + + + Current results printing mode: %1 + Current results printing mode: %1 + + + + Invalid results printing mode: %1 + Invalid results printing mode: %1 + + + + New results printing mode: %1 + New results printing mode: %1 + + + + tells or changes the query results format + tells or changes the query results format + + + + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: +- CLASSIC - columns are separated by a comma, not aligned, +- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, +- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), +- ROW - each column from the row is displayed in new line, so the full data is displayed. + +The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. + +The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. + +The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. + +The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: +- CLASSIC - columns are separated by a comma, not aligned, +- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, +- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), +- ROW - each column from the row is displayed in new line, so the full data is displayed. + +The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. + +The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. + +The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. + +The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). + + + + CliCommandNullValue + + + Current NULL representation string: %1 + Current NULL representation string: %1 + + + + tells or changes the NULL representation string + tells or changes the NULL representation string + + + + If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. + If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. + + + + CliCommandOpen + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. + File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. + + + + Database %1 has been open and set as the current working database. + Database %1 has been open and set as the current working database. + + + + opens database connection + opens database connection + + + + Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. + Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. + + + + name + CLI command syntax + name + + + + path + CLI command syntax + path + + + + CliCommandPwd + + + prints the current working directory + prints the current working directory + + + + This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. + This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. + + + + CliCommandRemove + + + No such database: %1 + No such database: %1 + + + + Database removed: %1 + Database removed: %1 + + + + New current database set: + New current database set: + + + + removes database from the list + removes database from the list + + + + Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. + Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. + + + + name + CLI command syntax + name + + + + CliCommandSql + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + + + + Database is not open. + Database is not open. + + + + executes SQL query + executes SQL query + + + + This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. + This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. + + + + sql + CLI command syntax + sql + + + + + Too many columns to display in %1 mode. + Too many columns to display in %1 mode. + + + + Row %1 + Row %1 + + + + Query execution error: %1 + Query execution error: %1 + + + + CliCommandTables + + + No such database: %1. Use %2 to see list of known databases. + No such database: %1. Use %2 to see list of known databases. + + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + Database %1 is closed. + Database %1 is closed. + + + + + Database + Database + + + + Table + Table + + + + prints list of tables in the database + prints list of tables in the database + + + + Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. +When the -s option is given, then system tables are also listed. + Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. +When the -s option is given, then system tables are also listed. + + + + database + CLI command syntax + database + + + + CliCommandTree + + + No current working database is selected. Use %1 to define one and then run %2. + No current working database is selected. Use %1 to define one and then run %2. + + + + Tables + Tables + + + + Views + Views + + + + Columns + Columns + + + + Indexes + Indexes + + + + + Triggers + Triggers + + + + prints all objects in the database as a tree + prints all objects in the database as a tree + + + + Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. +When -c option is given, then also columns will be listed under each table. +When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). +The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. + Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. +When -c option is given, then also columns will be listed under each table. +When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). +The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. + + + + CliCommandUse + + + No current database selected. + No current database selected. + + + + + Current database: %1 + Current database: %1 + + + + No such database: %1 + No such database: %1 + + + + changes default working database + changes default working database + + + + Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. + +What is current working database? +When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). + +The default database can be selected in various ways: +- using %1 command, +- by passing database file name to the application startup parameters, +- by passing registered database name to the application startup parameters, +- by restoring previously selected default database from saved configuration, +- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. + Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. + +What is current working database? +When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). + +The default database can be selected in various ways: +- using %1 command, +- by passing database file name to the application startup parameters, +- by passing registered database name to the application startup parameters, +- by restoring previously selected default database from saved configuration, +- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. + + + + name + CLI command syntax + name + + + + QObject + + + Insufficient number of arguments. + Insufficient number of arguments. + + + + Too many arguments. + Too many arguments. + + + + Invalid argument value: %1. +Expected one of: %2 + Invalid argument value: %1. +Expected one of: %2 + + + + Unknown option: %1 + CLI command syntax + Unknown option: %1 + + + + Option %1 requires an argument. + CLI command syntax + Option %1 requires an argument. + + + + string + CLI command syntax + string + + + + Command line interface to SQLiteStudio, a SQLite manager. + Command line interface to SQLiteStudio, a SQLite manager. + + + + Enables debug messages on standard error output. + Enables debug messages on standard error output. + + + + Enables Lemon parser debug messages for SQL code assistant. + Enables Lemon parser debug messages for SQL code assistant. + + + + Lists plugins installed in the SQLiteStudio and quits. + Lists plugins installed in the SQLiteStudio and quits. + + + + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + + + + SQL file + SQL file + + + + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. + + + + codec + codec + + + + Lists available codecs to be used with -c option and quits. + Lists available codecs to be used with -c option and quits. + + + + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. + + + + file + file + + + + Database file to open + Database file to open + + + + Invalid codec: %1. Use -cl option to list available codecs. + Invalid codec: %1. Use -cl option to list available codecs. + + + + Database file argument is mandatory when executing SQL file. + Database file argument is mandatory when executing SQL file. + + + + Could not open specified database for executing SQL file. You may try using -d option to find out more details. + Could not open specified database for executing SQL file. You may try using -d option to find out more details. + + + diff --git a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_kaa.ts b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_kaa.ts new file mode 100644 index 0000000..aace0aa --- /dev/null +++ b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_kaa.ts @@ -0,0 +1,876 @@ + + + + + CLI + + + Current database: %1 + Current database: %1 + + + + No current working database is set. + No current working database is set. + + + + Type %1 for help + Type %1 for help + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + Database passed in command line parameters (%1) was already on the list under name: %2 + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + closed + closed + + + + CliCommand + + + Usage: %1%2 + Usage: %1%2 + + + + CliCommandAdd + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + Database added: %1 + Database added: %1 + + + + adds new database to the list + adds new database to the list + + + + Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. + Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. + + + + name + CLI command syntax + name + + + + path + CLI command syntax + path + + + + CliCommandCd + + + Changed directory to: %1 + Changed directory to: %1 + + + + Could not change directory to: %1 + Could not change directory to: %1 + + + + changes current working directory + changes current working directory + + + + Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. + Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. + + + + path + CLI command syntax + path + + + + CliCommandClose + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + + Connection to database %1 closed. + Connection to database %1 closed. + + + + No such database: %1. Use %2 to see list of known databases. + No such database: %1. Use %2 to see list of known databases. + + + + closes given (or current) database + closes given (or current) database + + + + Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). + Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). + + + + name + CLI command syntax + name + + + + CliCommandDbList + + + No current working database defined. + No current working database defined. + + + + Databases: + Databases: + + + + + Name + CLI db name column + Name + + + + + Open + CLI connection state column + Open + + + + + Closed + CLI connection state column + Closed + + + + + Connection + CLI connection state column + Connection + + + + + Database file path + Database file path + + + + prints list of registered databases + prints list of registered databases + + + + Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. + Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. + + + + CliCommandDesc + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + + + + Database is not open. + Database is not open. + + + + Cannot find table named: %1 + Cannot find table named: %1 + + + + shows details about the table + shows details about the table + + + + table + table + + + + Table: %1 + Table: %1 + + + + Column name + Column name + + + + Data type + Data type + + + + Constraints + Constraints + + + + Virtual table: %1 + Virtual table: %1 + + + + Construction arguments: + Construction arguments: + + + + No construction arguments were passed for this virtual table. + No construction arguments were passed for this virtual table. + + + + CliCommandDir + + + lists directories and files in current working directory + lists directories and files in current working directory + + + + This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. + +You can pass <pattern> with wildcard characters to filter output. + This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. + +You can pass <pattern> with wildcard characters to filter output. + + + + pattern + pattern + + + + CliCommandExit + + + quits the application + quits the application + + + + Quits the application. Settings are stored in configuration file and will be restored on next startup. + Quits the application. Settings are stored in configuration file and will be restored on next startup. + + + + CliCommandHelp + + + shows this help message + shows this help message + + + + Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. +To see list of supported commands, type %2 without any arguments. + +When passing <command> name, you can skip special prefix character ('%3'). + +You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. + Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. +To see list of supported commands, type %2 without any arguments. + +When passing <command> name, you can skip special prefix character ('%3'). + +You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. + + + + command + CLI command syntax + command + + + + No such command: %1 + No such command: %1 + + + + Type '%1' for list of available commands. + Type '%1' for list of available commands. + + + + Usage: %1%2 + Usage: %1%2 + + + + Aliases: %1 + Aliases: %1 + + + + CliCommandHistory + + + Current history limit is set to: %1 + Current history limit is set to: %1 + + + + prints history or erases it + prints history or erases it + + + + When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. + +When the -c or --clear option is passed, then the history gets erased. +When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. +Use -ql or --querylimit option to see the current limit value. + When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. + +When the -c or --clear option is passed, then the history gets erased. +When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. +Use -ql or --querylimit option to see the current limit value. + + + + number + number + + + + Console history erased. + Console history erased. + + + + Invalid number: %1 + Invalid number: %1 + + + + History limit set to %1 + History limit set to %1 + + + + CliCommandMode + + + Current results printing mode: %1 + Current results printing mode: %1 + + + + Invalid results printing mode: %1 + Invalid results printing mode: %1 + + + + New results printing mode: %1 + New results printing mode: %1 + + + + tells or changes the query results format + tells or changes the query results format + + + + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: +- CLASSIC - columns are separated by a comma, not aligned, +- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, +- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), +- ROW - each column from the row is displayed in new line, so the full data is displayed. + +The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. + +The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. + +The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. + +The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: +- CLASSIC - columns are separated by a comma, not aligned, +- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, +- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), +- ROW - each column from the row is displayed in new line, so the full data is displayed. + +The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. + +The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. + +The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. + +The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). + + + + CliCommandNullValue + + + Current NULL representation string: %1 + Current NULL representation string: %1 + + + + tells or changes the NULL representation string + tells or changes the NULL representation string + + + + If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. + If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. + + + + CliCommandOpen + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. + File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. + + + + Database %1 has been open and set as the current working database. + Database %1 has been open and set as the current working database. + + + + opens database connection + opens database connection + + + + Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. + Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. + + + + name + CLI command syntax + name + + + + path + CLI command syntax + path + + + + CliCommandPwd + + + prints the current working directory + prints the current working directory + + + + This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. + This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. + + + + CliCommandRemove + + + No such database: %1 + No such database: %1 + + + + Database removed: %1 + Database removed: %1 + + + + New current database set: + New current database set: + + + + removes database from the list + removes database from the list + + + + Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. + Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. + + + + name + CLI command syntax + name + + + + CliCommandSql + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + + + + Database is not open. + Database is not open. + + + + executes SQL query + executes SQL query + + + + This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. + This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. + + + + sql + CLI command syntax + sql + + + + + Too many columns to display in %1 mode. + Too many columns to display in %1 mode. + + + + Row %1 + Row %1 + + + + Query execution error: %1 + Query execution error: %1 + + + + CliCommandTables + + + No such database: %1. Use %2 to see list of known databases. + No such database: %1. Use %2 to see list of known databases. + + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + Database %1 is closed. + Database %1 is closed. + + + + + Database + Database + + + + Table + Table + + + + prints list of tables in the database + prints list of tables in the database + + + + Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. +When the -s option is given, then system tables are also listed. + Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. +When the -s option is given, then system tables are also listed. + + + + database + CLI command syntax + database + + + + CliCommandTree + + + No current working database is selected. Use %1 to define one and then run %2. + No current working database is selected. Use %1 to define one and then run %2. + + + + Tables + Tables + + + + Views + Views + + + + Columns + Columns + + + + Indexes + Indexes + + + + + Triggers + Triggers + + + + prints all objects in the database as a tree + prints all objects in the database as a tree + + + + Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. +When -c option is given, then also columns will be listed under each table. +When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). +The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. + Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. +When -c option is given, then also columns will be listed under each table. +When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). +The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. + + + + CliCommandUse + + + No current database selected. + No current database selected. + + + + + Current database: %1 + Current database: %1 + + + + No such database: %1 + No such database: %1 + + + + changes default working database + changes default working database + + + + Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. + +What is current working database? +When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). + +The default database can be selected in various ways: +- using %1 command, +- by passing database file name to the application startup parameters, +- by passing registered database name to the application startup parameters, +- by restoring previously selected default database from saved configuration, +- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. + Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. + +What is current working database? +When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). + +The default database can be selected in various ways: +- using %1 command, +- by passing database file name to the application startup parameters, +- by passing registered database name to the application startup parameters, +- by restoring previously selected default database from saved configuration, +- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. + + + + name + CLI command syntax + name + + + + QObject + + + Insufficient number of arguments. + Insufficient number of arguments. + + + + Too many arguments. + Too many arguments. + + + + Invalid argument value: %1. +Expected one of: %2 + Invalid argument value: %1. +Expected one of: %2 + + + + Unknown option: %1 + CLI command syntax + Unknown option: %1 + + + + Option %1 requires an argument. + CLI command syntax + Option %1 requires an argument. + + + + string + CLI command syntax + string + + + + Command line interface to SQLiteStudio, a SQLite manager. + Command line interface to SQLiteStudio, a SQLite manager. + + + + Enables debug messages on standard error output. + Enables debug messages on standard error output. + + + + Enables Lemon parser debug messages for SQL code assistant. + Enables Lemon parser debug messages for SQL code assistant. + + + + Lists plugins installed in the SQLiteStudio and quits. + Lists plugins installed in the SQLiteStudio and quits. + + + + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + + + + SQL file + SQL file + + + + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. + + + + codec + codec + + + + Lists available codecs to be used with -c option and quits. + Lists available codecs to be used with -c option and quits. + + + + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. + + + + file + file + + + + Database file to open + Database file to open + + + + Invalid codec: %1. Use -cl option to list available codecs. + Invalid codec: %1. Use -cl option to list available codecs. + + + + Database file argument is mandatory when executing SQL file. + Database file argument is mandatory when executing SQL file. + + + + Could not open specified database for executing SQL file. You may try using -d option to find out more details. + Could not open specified database for executing SQL file. You may try using -d option to find out more details. + + + diff --git a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_ko_KR.ts b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_ko_KR.ts new file mode 100644 index 0000000..4eceff2 --- /dev/null +++ b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_ko_KR.ts @@ -0,0 +1,876 @@ + + + + + CLI + + + Current database: %1 + Current database: %1 + + + + No current working database is set. + No current working database is set. + + + + Type %1 for help + Type %1 for help + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + Database passed in command line parameters (%1) was already on the list under name: %2 + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + closed + closed + + + + CliCommand + + + Usage: %1%2 + Usage: %1%2 + + + + CliCommandAdd + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + Database added: %1 + Database added: %1 + + + + adds new database to the list + adds new database to the list + + + + Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. + Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. + + + + name + CLI command syntax + name + + + + path + CLI command syntax + path + + + + CliCommandCd + + + Changed directory to: %1 + Changed directory to: %1 + + + + Could not change directory to: %1 + Could not change directory to: %1 + + + + changes current working directory + changes current working directory + + + + Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. + Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. + + + + path + CLI command syntax + 경로 + + + + CliCommandClose + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + + Connection to database %1 closed. + Connection to database %1 closed. + + + + No such database: %1. Use %2 to see list of known databases. + No such database: %1. Use %2 to see list of known databases. + + + + closes given (or current) database + closes given (or current) database + + + + Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). + Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). + + + + name + CLI command syntax + name + + + + CliCommandDbList + + + No current working database defined. + No current working database defined. + + + + Databases: + Databases: + + + + + Name + CLI db name column + Name + + + + + Open + CLI connection state column + Open + + + + + Closed + CLI connection state column + Closed + + + + + Connection + CLI connection state column + Connection + + + + + Database file path + Database file path + + + + prints list of registered databases + prints list of registered databases + + + + Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. + Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. + + + + CliCommandDesc + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + + + + Database is not open. + Database is not open. + + + + Cannot find table named: %1 + Cannot find table named: %1 + + + + shows details about the table + shows details about the table + + + + table + table + + + + Table: %1 + Table: %1 + + + + Column name + Column name + + + + Data type + Data type + + + + Constraints + Constraints + + + + Virtual table: %1 + Virtual table: %1 + + + + Construction arguments: + Construction arguments: + + + + No construction arguments were passed for this virtual table. + No construction arguments were passed for this virtual table. + + + + CliCommandDir + + + lists directories and files in current working directory + lists directories and files in current working directory + + + + This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. + +You can pass <pattern> with wildcard characters to filter output. + This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. + +You can pass <pattern> with wildcard characters to filter output. + + + + pattern + pattern + + + + CliCommandExit + + + quits the application + quits the application + + + + Quits the application. Settings are stored in configuration file and will be restored on next startup. + Quits the application. Settings are stored in configuration file and will be restored on next startup. + + + + CliCommandHelp + + + shows this help message + shows this help message + + + + Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. +To see list of supported commands, type %2 without any arguments. + +When passing <command> name, you can skip special prefix character ('%3'). + +You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. + Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. +To see list of supported commands, type %2 without any arguments. + +When passing <command> name, you can skip special prefix character ('%3'). + +You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. + + + + command + CLI command syntax + command + + + + No such command: %1 + No such command: %1 + + + + Type '%1' for list of available commands. + Type '%1' for list of available commands. + + + + Usage: %1%2 + Usage: %1%2 + + + + Aliases: %1 + Aliases: %1 + + + + CliCommandHistory + + + Current history limit is set to: %1 + Current history limit is set to: %1 + + + + prints history or erases it + prints history or erases it + + + + When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. + +When the -c or --clear option is passed, then the history gets erased. +When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. +Use -ql or --querylimit option to see the current limit value. + When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. + +When the -c or --clear option is passed, then the history gets erased. +When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. +Use -ql or --querylimit option to see the current limit value. + + + + number + number + + + + Console history erased. + Console history erased. + + + + Invalid number: %1 + Invalid number: %1 + + + + History limit set to %1 + History limit set to %1 + + + + CliCommandMode + + + Current results printing mode: %1 + Current results printing mode: %1 + + + + Invalid results printing mode: %1 + Invalid results printing mode: %1 + + + + New results printing mode: %1 + New results printing mode: %1 + + + + tells or changes the query results format + tells or changes the query results format + + + + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: +- CLASSIC - columns are separated by a comma, not aligned, +- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, +- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), +- ROW - each column from the row is displayed in new line, so the full data is displayed. + +The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. + +The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. + +The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. + +The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: +- CLASSIC - columns are separated by a comma, not aligned, +- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, +- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), +- ROW - each column from the row is displayed in new line, so the full data is displayed. + +The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. + +The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. + +The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. + +The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). + + + + CliCommandNullValue + + + Current NULL representation string: %1 + Current NULL representation string: %1 + + + + tells or changes the NULL representation string + tells or changes the NULL representation string + + + + If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. + If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. + + + + CliCommandOpen + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. + File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. + + + + Database %1 has been open and set as the current working database. + Database %1 has been open and set as the current working database. + + + + opens database connection + opens database connection + + + + Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. + Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. + + + + name + CLI command syntax + name + + + + path + CLI command syntax + path + + + + CliCommandPwd + + + prints the current working directory + prints the current working directory + + + + This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. + This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. + + + + CliCommandRemove + + + No such database: %1 + No such database: %1 + + + + Database removed: %1 + Database removed: %1 + + + + New current database set: + New current database set: + + + + removes database from the list + removes database from the list + + + + Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. + Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. + + + + name + CLI command syntax + name + + + + CliCommandSql + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + + + + Database is not open. + Database is not open. + + + + executes SQL query + executes SQL query + + + + This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. + This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. + + + + sql + CLI command syntax + sql + + + + + Too many columns to display in %1 mode. + Too many columns to display in %1 mode. + + + + Row %1 + Row %1 + + + + Query execution error: %1 + Query execution error: %1 + + + + CliCommandTables + + + No such database: %1. Use %2 to see list of known databases. + No such database: %1. Use %2 to see list of known databases. + + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + Database %1 is closed. + Database %1 is closed. + + + + + Database + Database + + + + Table + Table + + + + prints list of tables in the database + prints list of tables in the database + + + + Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. +When the -s option is given, then system tables are also listed. + Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. +When the -s option is given, then system tables are also listed. + + + + database + CLI command syntax + database + + + + CliCommandTree + + + No current working database is selected. Use %1 to define one and then run %2. + No current working database is selected. Use %1 to define one and then run %2. + + + + Tables + Tables + + + + Views + Views + + + + Columns + Columns + + + + Indexes + Indexes + + + + + Triggers + Triggers + + + + prints all objects in the database as a tree + prints all objects in the database as a tree + + + + Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. +When -c option is given, then also columns will be listed under each table. +When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). +The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. + Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. +When -c option is given, then also columns will be listed under each table. +When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). +The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. + + + + CliCommandUse + + + No current database selected. + No current database selected. + + + + + Current database: %1 + Current database: %1 + + + + No such database: %1 + No such database: %1 + + + + changes default working database + changes default working database + + + + Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. + +What is current working database? +When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). + +The default database can be selected in various ways: +- using %1 command, +- by passing database file name to the application startup parameters, +- by passing registered database name to the application startup parameters, +- by restoring previously selected default database from saved configuration, +- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. + Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. + +What is current working database? +When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). + +The default database can be selected in various ways: +- using %1 command, +- by passing database file name to the application startup parameters, +- by passing registered database name to the application startup parameters, +- by restoring previously selected default database from saved configuration, +- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. + + + + name + CLI command syntax + name + + + + QObject + + + Insufficient number of arguments. + Insufficient number of arguments. + + + + Too many arguments. + Too many arguments. + + + + Invalid argument value: %1. +Expected one of: %2 + Invalid argument value: %1. +Expected one of: %2 + + + + Unknown option: %1 + CLI command syntax + Unknown option: %1 + + + + Option %1 requires an argument. + CLI command syntax + Option %1 requires an argument. + + + + string + CLI command syntax + string + + + + Command line interface to SQLiteStudio, a SQLite manager. + Command line interface to SQLiteStudio, a SQLite manager. + + + + Enables debug messages on standard error output. + Enables debug messages on standard error output. + + + + Enables Lemon parser debug messages for SQL code assistant. + Enables Lemon parser debug messages for SQL code assistant. + + + + Lists plugins installed in the SQLiteStudio and quits. + Lists plugins installed in the SQLiteStudio and quits. + + + + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + + + + SQL file + SQL file + + + + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. + + + + codec + codec + + + + Lists available codecs to be used with -c option and quits. + Lists available codecs to be used with -c option and quits. + + + + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. + + + + file + file + + + + Database file to open + Database file to open + + + + Invalid codec: %1. Use -cl option to list available codecs. + Invalid codec: %1. Use -cl option to list available codecs. + + + + Database file argument is mandatory when executing SQL file. + Database file argument is mandatory when executing SQL file. + + + + Could not open specified database for executing SQL file. You may try using -d option to find out more details. + Could not open specified database for executing SQL file. You may try using -d option to find out more details. + + + diff --git a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_nl_NL.ts b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_nl_NL.ts new file mode 100644 index 0000000..a141814 --- /dev/null +++ b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_nl_NL.ts @@ -0,0 +1,876 @@ + + + + + CLI + + + Current database: %1 + Current database: %1 + + + + No current working database is set. + No current working database is set. + + + + Type %1 for help + Type %1 for help + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + Database passed in command line parameters (%1) was already on the list under name: %2 + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + closed + closed + + + + CliCommand + + + Usage: %1%2 + Usage: %1%2 + + + + CliCommandAdd + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + Database added: %1 + Database added: %1 + + + + adds new database to the list + adds new database to the list + + + + Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. + Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. + + + + name + CLI command syntax + name + + + + path + CLI command syntax + path + + + + CliCommandCd + + + Changed directory to: %1 + Changed directory to: %1 + + + + Could not change directory to: %1 + Could not change directory to: %1 + + + + changes current working directory + changes current working directory + + + + Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. + Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. + + + + path + CLI command syntax + path + + + + CliCommandClose + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + + Connection to database %1 closed. + Connection to database %1 closed. + + + + No such database: %1. Use %2 to see list of known databases. + No such database: %1. Use %2 to see list of known databases. + + + + closes given (or current) database + closes given (or current) database + + + + Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). + Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). + + + + name + CLI command syntax + name + + + + CliCommandDbList + + + No current working database defined. + No current working database defined. + + + + Databases: + Databases: + + + + + Name + CLI db name column + Name + + + + + Open + CLI connection state column + Open + + + + + Closed + CLI connection state column + Closed + + + + + Connection + CLI connection state column + Connection + + + + + Database file path + Database file path + + + + prints list of registered databases + prints list of registered databases + + + + Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. + Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. + + + + CliCommandDesc + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + + + + Database is not open. + Database is not open. + + + + Cannot find table named: %1 + Cannot find table named: %1 + + + + shows details about the table + shows details about the table + + + + table + table + + + + Table: %1 + Table: %1 + + + + Column name + Column name + + + + Data type + Data type + + + + Constraints + Constraints + + + + Virtual table: %1 + Virtual table: %1 + + + + Construction arguments: + Construction arguments: + + + + No construction arguments were passed for this virtual table. + No construction arguments were passed for this virtual table. + + + + CliCommandDir + + + lists directories and files in current working directory + lists directories and files in current working directory + + + + This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. + +You can pass <pattern> with wildcard characters to filter output. + This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. + +You can pass <pattern> with wildcard characters to filter output. + + + + pattern + pattern + + + + CliCommandExit + + + quits the application + quits the application + + + + Quits the application. Settings are stored in configuration file and will be restored on next startup. + Quits the application. Settings are stored in configuration file and will be restored on next startup. + + + + CliCommandHelp + + + shows this help message + shows this help message + + + + Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. +To see list of supported commands, type %2 without any arguments. + +When passing <command> name, you can skip special prefix character ('%3'). + +You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. + Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. +To see list of supported commands, type %2 without any arguments. + +When passing <command> name, you can skip special prefix character ('%3'). + +You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. + + + + command + CLI command syntax + command + + + + No such command: %1 + No such command: %1 + + + + Type '%1' for list of available commands. + Type '%1' for list of available commands. + + + + Usage: %1%2 + Usage: %1%2 + + + + Aliases: %1 + Aliases: %1 + + + + CliCommandHistory + + + Current history limit is set to: %1 + Current history limit is set to: %1 + + + + prints history or erases it + prints history or erases it + + + + When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. + +When the -c or --clear option is passed, then the history gets erased. +When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. +Use -ql or --querylimit option to see the current limit value. + When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. + +When the -c or --clear option is passed, then the history gets erased. +When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. +Use -ql or --querylimit option to see the current limit value. + + + + number + number + + + + Console history erased. + Console history erased. + + + + Invalid number: %1 + Invalid number: %1 + + + + History limit set to %1 + History limit set to %1 + + + + CliCommandMode + + + Current results printing mode: %1 + Current results printing mode: %1 + + + + Invalid results printing mode: %1 + Invalid results printing mode: %1 + + + + New results printing mode: %1 + New results printing mode: %1 + + + + tells or changes the query results format + tells or changes the query results format + + + + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: +- CLASSIC - columns are separated by a comma, not aligned, +- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, +- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), +- ROW - each column from the row is displayed in new line, so the full data is displayed. + +The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. + +The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. + +The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. + +The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: +- CLASSIC - columns are separated by a comma, not aligned, +- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, +- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), +- ROW - each column from the row is displayed in new line, so the full data is displayed. + +The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. + +The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. + +The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. + +The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). + + + + CliCommandNullValue + + + Current NULL representation string: %1 + Current NULL representation string: %1 + + + + tells or changes the NULL representation string + tells or changes the NULL representation string + + + + If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. + If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. + + + + CliCommandOpen + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. + File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. + + + + Database %1 has been open and set as the current working database. + Database %1 has been open and set as the current working database. + + + + opens database connection + opens database connection + + + + Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. + Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. + + + + name + CLI command syntax + name + + + + path + CLI command syntax + path + + + + CliCommandPwd + + + prints the current working directory + prints the current working directory + + + + This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. + This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. + + + + CliCommandRemove + + + No such database: %1 + No such database: %1 + + + + Database removed: %1 + Database removed: %1 + + + + New current database set: + New current database set: + + + + removes database from the list + removes database from the list + + + + Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. + Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. + + + + name + CLI command syntax + name + + + + CliCommandSql + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + + + + Database is not open. + Database is not open. + + + + executes SQL query + executes SQL query + + + + This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. + This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. + + + + sql + CLI command syntax + sql + + + + + Too many columns to display in %1 mode. + Too many columns to display in %1 mode. + + + + Row %1 + Row %1 + + + + Query execution error: %1 + Query execution error: %1 + + + + CliCommandTables + + + No such database: %1. Use %2 to see list of known databases. + No such database: %1. Use %2 to see list of known databases. + + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + Database %1 is closed. + Database %1 is closed. + + + + + Database + Database + + + + Table + Table + + + + prints list of tables in the database + prints list of tables in the database + + + + Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. +When the -s option is given, then system tables are also listed. + Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. +When the -s option is given, then system tables are also listed. + + + + database + CLI command syntax + database + + + + CliCommandTree + + + No current working database is selected. Use %1 to define one and then run %2. + No current working database is selected. Use %1 to define one and then run %2. + + + + Tables + Tables + + + + Views + Views + + + + Columns + Columns + + + + Indexes + Indexes + + + + + Triggers + Triggers + + + + prints all objects in the database as a tree + prints all objects in the database as a tree + + + + Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. +When -c option is given, then also columns will be listed under each table. +When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). +The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. + Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. +When -c option is given, then also columns will be listed under each table. +When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). +The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. + + + + CliCommandUse + + + No current database selected. + No current database selected. + + + + + Current database: %1 + Current database: %1 + + + + No such database: %1 + No such database: %1 + + + + changes default working database + changes default working database + + + + Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. + +What is current working database? +When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). + +The default database can be selected in various ways: +- using %1 command, +- by passing database file name to the application startup parameters, +- by passing registered database name to the application startup parameters, +- by restoring previously selected default database from saved configuration, +- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. + Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. + +What is current working database? +When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). + +The default database can be selected in various ways: +- using %1 command, +- by passing database file name to the application startup parameters, +- by passing registered database name to the application startup parameters, +- by restoring previously selected default database from saved configuration, +- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. + + + + name + CLI command syntax + name + + + + QObject + + + Insufficient number of arguments. + Insufficient number of arguments. + + + + Too many arguments. + Too many arguments. + + + + Invalid argument value: %1. +Expected one of: %2 + Invalid argument value: %1. +Expected one of: %2 + + + + Unknown option: %1 + CLI command syntax + Unknown option: %1 + + + + Option %1 requires an argument. + CLI command syntax + Option %1 requires an argument. + + + + string + CLI command syntax + string + + + + Command line interface to SQLiteStudio, a SQLite manager. + Command line interface to SQLiteStudio, a SQLite manager. + + + + Enables debug messages on standard error output. + Enables debug messages on standard error output. + + + + Enables Lemon parser debug messages for SQL code assistant. + Enables Lemon parser debug messages for SQL code assistant. + + + + Lists plugins installed in the SQLiteStudio and quits. + Lists plugins installed in the SQLiteStudio and quits. + + + + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + + + + SQL file + SQL file + + + + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. + + + + codec + codec + + + + Lists available codecs to be used with -c option and quits. + Lists available codecs to be used with -c option and quits. + + + + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. + + + + file + file + + + + Database file to open + Database file to open + + + + Invalid codec: %1. Use -cl option to list available codecs. + Invalid codec: %1. Use -cl option to list available codecs. + + + + Database file argument is mandatory when executing SQL file. + Database file argument is mandatory when executing SQL file. + + + + Could not open specified database for executing SQL file. You may try using -d option to find out more details. + Could not open specified database for executing SQL file. You may try using -d option to find out more details. + + + diff --git a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_no_NO.ts b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_no_NO.ts new file mode 100644 index 0000000..1bd5353 --- /dev/null +++ b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_no_NO.ts @@ -0,0 +1,876 @@ + + + + + CLI + + + Current database: %1 + Current database: %1 + + + + No current working database is set. + No current working database is set. + + + + Type %1 for help + Type %1 for help + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + Database passed in command line parameters (%1) was already on the list under name: %2 + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + closed + closed + + + + CliCommand + + + Usage: %1%2 + Usage: %1%2 + + + + CliCommandAdd + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + Database added: %1 + Database added: %1 + + + + adds new database to the list + adds new database to the list + + + + Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. + Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. + + + + name + CLI command syntax + name + + + + path + CLI command syntax + path + + + + CliCommandCd + + + Changed directory to: %1 + Changed directory to: %1 + + + + Could not change directory to: %1 + Could not change directory to: %1 + + + + changes current working directory + changes current working directory + + + + Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. + Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. + + + + path + CLI command syntax + path + + + + CliCommandClose + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + + Connection to database %1 closed. + Connection to database %1 closed. + + + + No such database: %1. Use %2 to see list of known databases. + No such database: %1. Use %2 to see list of known databases. + + + + closes given (or current) database + closes given (or current) database + + + + Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). + Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). + + + + name + CLI command syntax + name + + + + CliCommandDbList + + + No current working database defined. + No current working database defined. + + + + Databases: + Databases: + + + + + Name + CLI db name column + Name + + + + + Open + CLI connection state column + Open + + + + + Closed + CLI connection state column + Closed + + + + + Connection + CLI connection state column + Connection + + + + + Database file path + Database file path + + + + prints list of registered databases + prints list of registered databases + + + + Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. + Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. + + + + CliCommandDesc + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + + + + Database is not open. + Database is not open. + + + + Cannot find table named: %1 + Cannot find table named: %1 + + + + shows details about the table + shows details about the table + + + + table + table + + + + Table: %1 + Table: %1 + + + + Column name + Column name + + + + Data type + Data type + + + + Constraints + Constraints + + + + Virtual table: %1 + Virtual table: %1 + + + + Construction arguments: + Construction arguments: + + + + No construction arguments were passed for this virtual table. + No construction arguments were passed for this virtual table. + + + + CliCommandDir + + + lists directories and files in current working directory + lists directories and files in current working directory + + + + This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. + +You can pass <pattern> with wildcard characters to filter output. + This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. + +You can pass <pattern> with wildcard characters to filter output. + + + + pattern + pattern + + + + CliCommandExit + + + quits the application + quits the application + + + + Quits the application. Settings are stored in configuration file and will be restored on next startup. + Quits the application. Settings are stored in configuration file and will be restored on next startup. + + + + CliCommandHelp + + + shows this help message + shows this help message + + + + Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. +To see list of supported commands, type %2 without any arguments. + +When passing <command> name, you can skip special prefix character ('%3'). + +You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. + Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. +To see list of supported commands, type %2 without any arguments. + +When passing <command> name, you can skip special prefix character ('%3'). + +You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. + + + + command + CLI command syntax + command + + + + No such command: %1 + No such command: %1 + + + + Type '%1' for list of available commands. + Type '%1' for list of available commands. + + + + Usage: %1%2 + Usage: %1%2 + + + + Aliases: %1 + Aliases: %1 + + + + CliCommandHistory + + + Current history limit is set to: %1 + Current history limit is set to: %1 + + + + prints history or erases it + prints history or erases it + + + + When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. + +When the -c or --clear option is passed, then the history gets erased. +When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. +Use -ql or --querylimit option to see the current limit value. + When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. + +When the -c or --clear option is passed, then the history gets erased. +When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. +Use -ql or --querylimit option to see the current limit value. + + + + number + number + + + + Console history erased. + Console history erased. + + + + Invalid number: %1 + Invalid number: %1 + + + + History limit set to %1 + History limit set to %1 + + + + CliCommandMode + + + Current results printing mode: %1 + Current results printing mode: %1 + + + + Invalid results printing mode: %1 + Invalid results printing mode: %1 + + + + New results printing mode: %1 + New results printing mode: %1 + + + + tells or changes the query results format + tells or changes the query results format + + + + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: +- CLASSIC - columns are separated by a comma, not aligned, +- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, +- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), +- ROW - each column from the row is displayed in new line, so the full data is displayed. + +The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. + +The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. + +The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. + +The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: +- CLASSIC - columns are separated by a comma, not aligned, +- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, +- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), +- ROW - each column from the row is displayed in new line, so the full data is displayed. + +The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. + +The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. + +The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. + +The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). + + + + CliCommandNullValue + + + Current NULL representation string: %1 + Current NULL representation string: %1 + + + + tells or changes the NULL representation string + tells or changes the NULL representation string + + + + If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. + If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. + + + + CliCommandOpen + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. + File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. + + + + Database %1 has been open and set as the current working database. + Database %1 has been open and set as the current working database. + + + + opens database connection + opens database connection + + + + Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. + Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. + + + + name + CLI command syntax + name + + + + path + CLI command syntax + path + + + + CliCommandPwd + + + prints the current working directory + prints the current working directory + + + + This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. + This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. + + + + CliCommandRemove + + + No such database: %1 + No such database: %1 + + + + Database removed: %1 + Database removed: %1 + + + + New current database set: + New current database set: + + + + removes database from the list + removes database from the list + + + + Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. + Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. + + + + name + CLI command syntax + name + + + + CliCommandSql + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + + + + Database is not open. + Database is not open. + + + + executes SQL query + executes SQL query + + + + This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. + This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. + + + + sql + CLI command syntax + sql + + + + + Too many columns to display in %1 mode. + Too many columns to display in %1 mode. + + + + Row %1 + Row %1 + + + + Query execution error: %1 + Query execution error: %1 + + + + CliCommandTables + + + No such database: %1. Use %2 to see list of known databases. + No such database: %1. Use %2 to see list of known databases. + + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + Database %1 is closed. + Database %1 is closed. + + + + + Database + Database + + + + Table + Table + + + + prints list of tables in the database + prints list of tables in the database + + + + Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. +When the -s option is given, then system tables are also listed. + Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. +When the -s option is given, then system tables are also listed. + + + + database + CLI command syntax + database + + + + CliCommandTree + + + No current working database is selected. Use %1 to define one and then run %2. + No current working database is selected. Use %1 to define one and then run %2. + + + + Tables + Tables + + + + Views + Views + + + + Columns + Columns + + + + Indexes + Indexes + + + + + Triggers + Triggers + + + + prints all objects in the database as a tree + prints all objects in the database as a tree + + + + Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. +When -c option is given, then also columns will be listed under each table. +When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). +The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. + Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. +When -c option is given, then also columns will be listed under each table. +When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). +The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. + + + + CliCommandUse + + + No current database selected. + No current database selected. + + + + + Current database: %1 + Current database: %1 + + + + No such database: %1 + No such database: %1 + + + + changes default working database + changes default working database + + + + Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. + +What is current working database? +When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). + +The default database can be selected in various ways: +- using %1 command, +- by passing database file name to the application startup parameters, +- by passing registered database name to the application startup parameters, +- by restoring previously selected default database from saved configuration, +- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. + Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. + +What is current working database? +When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). + +The default database can be selected in various ways: +- using %1 command, +- by passing database file name to the application startup parameters, +- by passing registered database name to the application startup parameters, +- by restoring previously selected default database from saved configuration, +- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. + + + + name + CLI command syntax + name + + + + QObject + + + Insufficient number of arguments. + Insufficient number of arguments. + + + + Too many arguments. + Too many arguments. + + + + Invalid argument value: %1. +Expected one of: %2 + Invalid argument value: %1. +Expected one of: %2 + + + + Unknown option: %1 + CLI command syntax + Unknown option: %1 + + + + Option %1 requires an argument. + CLI command syntax + Option %1 requires an argument. + + + + string + CLI command syntax + string + + + + Command line interface to SQLiteStudio, a SQLite manager. + Command line interface to SQLiteStudio, a SQLite manager. + + + + Enables debug messages on standard error output. + Enables debug messages on standard error output. + + + + Enables Lemon parser debug messages for SQL code assistant. + Enables Lemon parser debug messages for SQL code assistant. + + + + Lists plugins installed in the SQLiteStudio and quits. + Lists plugins installed in the SQLiteStudio and quits. + + + + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + + + + SQL file + SQL file + + + + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. + + + + codec + codec + + + + Lists available codecs to be used with -c option and quits. + Lists available codecs to be used with -c option and quits. + + + + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. + + + + file + file + + + + Database file to open + Database file to open + + + + Invalid codec: %1. Use -cl option to list available codecs. + Invalid codec: %1. Use -cl option to list available codecs. + + + + Database file argument is mandatory when executing SQL file. + Database file argument is mandatory when executing SQL file. + + + + Could not open specified database for executing SQL file. You may try using -d option to find out more details. + Could not open specified database for executing SQL file. You may try using -d option to find out more details. + + + diff --git a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_pl.qm b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_pl.qm deleted file mode 100644 index 5334188..0000000 Binary files a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_pl.qm and /dev/null differ diff --git a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_pl.ts b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_pl.ts deleted file mode 100644 index 5b4d6fb..0000000 --- a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_pl.ts +++ /dev/null @@ -1,690 +0,0 @@ - - - - - CLI - - Current database: %1 - Bieżąca baza danych: %1 - - - No current working database is set. - Nie ustawiono bieżącej bazy danych. - - - Type %1 for help - Wpisz %1, aby uzyskać pomoc. - - - Could not add database %1 to list. - Nie udało się dodać bazy danych %1 do listy. - - - closed - zamknięta - - - Database passed in command line parameters (%1) was already on the list under name: %2 - Baz danych przekazana w parametrach linii poleceń (%1) była już na liście pod nazwą: %2 - - - - CliCommand - - Usage: %1%2 - Sposób użycia: %1%2 - - - - CliCommandAdd - - Could not add database %1 to list. - Nie udało się dodać bazy danych %1 do listy. - - - Database added: %1 - Baza danych dodana: %1 - - - adds new database to the list - dodaje bazę danych do listy - - - Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. - Dodaje bazę danych wskazaną przez <ścieżkę> z daną <nazwą> do listy baz danych. <nazwa> jest tylko symboliczną nazwą, do której możesz się potem odwoływać. Po prostu wybierz dowolną, unikalną nazwę. Aby wypisać listę baz danych, które są już na liście, użyj polecenia %1. - - - name - CLI command syntax - nazwa - - - path - CLI command syntax - ścieżka - - - - CliCommandCd - - Changed directory to: %1 - Zmieniono katalog na: %1 - - - Could not change directory to: %1 - Nie udało się zmienić katalogu na: %1 - - - Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. - Bardzo podobne polecenie do 'cd' znanego z systemów Unixowych i Windowsa. Wymaga <ścieżki> jako argumentu, stąd wywołanie %1 zawsze spowoduje zmianę katalogu. Aby poznać jaki jest bieżący katalog, użyj polecenia %2, a żeby wypisać listę zawartości bieżącego katalogu użyj polecenia %3. - - - path - CLI command syntax - ścieżka - - - changes current working directory - zmienia bieżący katalog - - - - CliCommandClose - - Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. - Nie można wywołać %1, gdy żadna z baz nie jest ustawiona jako bieżąca. Okreś bieżącą bazę używając polecenia %2, lub podaj nazwę bazy do %3. - - - Connection to database %1 closed. - Połączenie z bazą %1 zostało zamknięte. - - - No such database: %1. Use %2 to see list of known databases. - Nie znaleziono bazy danych: %1. Użyj %2 aby zonaczyć listę znanych baz danych. - - - closes given (or current) database - zamyka daną (lub bieżącą) bazę danych - - - Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). - Zamyka połączenie z bazą danych. Jeśli baza danych była już zamknięta, nic się nie stanie. Jeśli <nazwa> jest podana, to powinna ona być nazwą bazy danych do zamknięcia (wg. tego jak wyświetla ją polecenie %1). Gdy <nazwa> nie jest podana, to bieżąca baza danych zostanie zamknięta (więcej szczegółów w pomocy dla %2). - - - name - CLI command syntax - nazwa - - - - CliCommandDbList - - No current working database defined. - Nie określono bieżącej bazy danych. - - - Databases: - Bazy danych: - - - Name - CLI db name column - Nazwa - - - Open - CLI connection state column - Otwarta - - - Closed - CLI connection state column - Zamknięta - - - Connection - CLI connection state column - Połączenie - - - Database file path - Ścieżka do pliku bazy danych - - - prints list of registered databases - wypisuje listę zarejestrowanych baz danych - - - Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. - Wypisuje listę zarejestrowanych w SQLiteStudio baz danych. Każda baza danych na liście może być otwarta, lub zamknięta i %1 o tym mówi. Bieżąca baza danych (nazywana również domyślną bazą danych) jest również zaznaczona na liście znakiem '*' na początku swojej nazwy. Zobacz pomoc dla polecenia %2, żeby dowiedzieć się więcej o domyślnej bazie danych. - - - - CliCommandDesc - - shows details about the table - pokazuje szczegóły o tabeli - - - table - tabela - - - No working database is set. -Call %1 command to set working database. -Call %2 to see list of all databases. - Nie wybrano domyślnej bazy danych. -Użyj polecenia %1, aby ustawić domyślną bazę danych. -Użyj polecenie %2, aby wypisać listę wszystkich baz. - - - Database is not open. - Baza danych nie jest otwarta. - - - Cannot find table named: %1 - Nie można znaleźć tabeli o nazwie: %1 - - - Table: %1 - Tabla: %1 - - - Column name - Nazwa kolumny - - - Data type - Typ danych - - - Constraints - Ograniczenia - - - Virtual table: %1 - Wirtualna tabela: %1 - - - Construction arguments: - Argumenty konstruujące: - - - No construction arguments were passed for this virtual table. - Nie podano argumentów konstruujących dla tej tabeli wirtualnej. - - - - CliCommandDir - - lists directories and files in current working directory - wypisuje listę katalogów i plików w bieżącym katalogu - - - This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. - -You can pass <pattern> with wildcard characters to filter output. - To jest polecenie bardzo podobne do 'dir' znanego z systemu Windows, oraz 'ls' znanego z systemów Unixowych. - -Możesz podać <wzorzec> ze znakami maskującymi, aby filtrować wynik. - - - pattern - wzorzec - - - - CliCommandExit - - quits the application - zamyka aplikację - - - Quits the application. Settings are stored in configuration file and will be restored on next startup. - Zamyka aplikację. Ustawienia są zapisywane w pliku konfiguracyjnym i zostaną przywrócone przy następnym starcie. - - - - CliCommandHelp - - shows this help message - pokazuje tą treść pomocy - - - Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. -To see list of supported commands, type %2 without any arguments. - -When passing <command> name, you can skip special prefix character ('%3'). - -You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. - Używaj %1 aby poznać poszczególne polecenia obsługiwane przez interfejs linii poleceń (CLI) SQLiteStudio. -Aby zobaczyć listę obsługiwanych poleceń, wpisz %2 bez żadnych argumentów. - -Kiedy podaje się nazwę <polecenia>, można pominąć specjalny znak przedrostka ('%3'). - -Zawsze możesz wywołać dowolne polecenie z dokładnie jedną opcją '--help', aby zobaczyć pomoc dla tego polecenia. Jest to alternatywa dla wpisywania: %1 <polecenie>. - - - command - CLI command syntax - polecenie - - - No such command: %1 - Nie ma takiego polecenia: %1 - - - Type '%1' for list of available commands. - Wpisz '%1' aby poznać listę dostępnych poleceń. - - - Usage: %1%2 - Sposób użycia: %1%2 - - - Aliases: %1 - Aliasy: %1 - - - - CliCommandHistory - - Current history limit is set to: %1 - Bieżący limit historii jest ustawiony na: %1 - - - prints history or erases it - wyświetla historię lub ją kasuje - - - number - liczba - - - Console history erased. - Historia konsoli skasowana. - - - Invalid number: %1 - Niepoprawna liczba: %1 - - - History limit set to %1 - Limit historii ustawiono na %1 - - - When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. - -When the -c or --clear option is passed, then the history gets erased. -When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. -Use -ql or --querylimit option to see the current limit value. - Gdy nie poda się żadnego argumentu, to polecenie wyświetla historię linii poleceń. Każdy wpis w historii jest oddzielony linią poziomą, żeby łatwiej było czytać więcej wpisów. - -Kiedy poda się opcję -c lub --clear, to historia jest kasowana. -Kiedy poda się opcję -l lub --limit, to ustawiany jest nowy limit na historii. Wymaga to podania dodatkowego argumentu, mówiącego o tym, ile ma być wpisów przechowywanych w historii. -Użyj opcji -ql lub --querylimit, aby poznać aktualną wartość limitu. - - - - CliCommandMode - - Current results printing mode: %1 - Aktualny tryb wyświetlania wyników: %1 - - - Invalid results printing mode: %1 - Niepoprawny tryb wyświetlania wyników: %1 - - - New results printing mode: %1 - Nowy tryb wyświetlania wyników: %1 - - - tells or changes the query results format - wyświetla lub zmienia format wyników zapytania - - - When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: -- CLASSIC - columns are separated by a comma, not aligned, -- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, -- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), -- ROW - each column from the row is displayed in new line, so the full data is displayed. - -The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. - -The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. - -The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. -ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widhts, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. - -The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). - Jeśli nie poda się argumentu, wyświetla aktualny format wyjściowy dla wyników zapytania. Kiedy poda się <tryb>, to jest on zmieniany na podany tryb. -Obsługiwane tryby to: -- CLASSIC - kolumny są oddzielone przecinkiem, bez wyrównania, -- FIXED - kolumny mają równą i ustaloną szerokość, zawsze mieszczą się w oknie terminala, ale dane w kolumnach mogą być ucięte, -- COLUMNS - taki jak FIXED, ale sprytniejszy (nie używać z ogromnymi wynikami zapytań, szczegóły poniżej), -- ROW - każda kolumna w wierszu jest wyświetlana w osobnej linii, więc pełne dane są wyświetlane. - -Tryb CLASSIC jest zalecane, jeśli chcesz widzieć wszystkie dane, ale nie chcesz marnować linii na każdą kolumnę. Każdy wiersz wyświetli całe dane dla każdej kolumny, ale oznacza to również, że kolumny nie będą wyrównane do siebie względem kolejnych wierszy. Tryb CLASSIC również nie patrzy na szerokość okna terminala (konsoli), więc jeśli wartości w kolumnach są szersze niż okno, to wiersz będzie kontynuowany w następnej linii. - -Tryb FIXED jest zalecany, jeśli chcesz czytelny wynik i nie przejmujesz się zbyt długimi danymi. Kolumny będą wyrównane, otrzymując ładną tabelę. Szerokość kolumn jest obliczana dzieląc szerokość okna konsoli przez liczbę kolumn. - -Tryb COLUMNS jest podobny do trybu FIXED, z tą różnicą, że póbuje być sprytny i szerokość kolumn zawierających krótsze dane jest mniejsza, niż kolumn z dłuższymi danymi. Pierwsze w kolejności odchudzane są kolumny z najdłuższymi nagłówkami (więc nazwy nagłówków są pierwsze w kolejce do obcięcia), następnie kolumny z najdłuższymi wartościami, aż do momentu, kiedy wszystkie kolumny mieszczą się w oknie terminala. -UWAGA! Tryb COLUMNS od razu odczytuje wszystkie dane z wyników zapytania, aby określić szerokość kolumn, więc jest to niebezpieczne, gdy pracuje się z ogromnymi zestawami danych w wynikach. Miej na uwadze, że ten tryb wczyta wszystkie dane do pamięci na raz. - -Tryb ROW jest zalecane, kiedy musisz widzieć całe wartości i nie spodziewasz się wielu wierszy do wyświetlenia, ponieważ ten tryb wyświetla linię dla każdej kolumny, więc dostaniesz 10 linii dla jednego wiersza z 10 kolumnami, następnie będziesz miał 10 takich wierszy, więc skończysz ze 100 liniami wyjścia (+1 dodatkowa dla każdego wiersza danych, aby oddzielić je od siebie). - - - - CliCommandNullValue - - Current NULL representation string: %1 - Aktualny łańcuch reprezentujący wartość NULL: %1 - - - tells or changes the NULL representation string - wyświetla lub zmienia łąńcuch reprezentujący wartość NULL - - - If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. - Jeśli nie poda się argumentu, to wyświetlana jest aktualna reprezentacja wartości NULL (to znaczy to, co jest wyświetlane zamiast wartości NULL w wynikach zapytań). Jeśli podano argument, to staje się on nową reprezentacją wartości NULL. - - - - CliCommandOpen - - Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. - Nie można wywołać %1, gdy żadna z baz nie jest ustawiona jako bieżąca. Okreś bieżącą bazę używając polecenia %2, lub podaj nazwę bazy do %3. - - - Could not add database %1 to list. - Nie udało się dodać bazy danych %1 do listy. - - - File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. - - - - Database %1 has been open and set as the current working database. - - - - opens database connection - otwiera połączenie z bazą - - - Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. - Otwiera połączenie do bazy. Jeśli nie podano dodatkowych argumentów, to połączenie jest nawiązywane z domyślną bazą (więcej szczegółów w pomocy dla polecenia %1). Natomiast gdy poda się argument, to może to być albo <nazwa> zarejestrowanej bazy danych do otwarcia, lub może to być <ścieżka> do pliku bazy danych do otwarcia. W drugim przypadku <ścieżka> zostanie zarejestrowana na liście baz danych z wygenerowaną nazwą, ale tylko na czas aktualnej sesji aplikacji. Po restarcie aplikacji taka baza danych nie jest przywracana na listę. - - - name - CLI command syntax - nazwa - - - path - CLI command syntax - ścieżka - - - - CliCommandPwd - - prints the current working directory - wypisuje bieżący katalog - - - This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. - Jest to polecenie podobne do 'pwd' znanego z sytemów Unixowych oraz polecenia 'cd' bez argumentów dla systemów Windows. Wypisuje bieżący katalog. Możesz zmienić bieżący katalog za pomocą polecenia %1, oraz możesz wypisać zawartość bieżącego katalogu za pomocą polecenia %2. - - - - CliCommandRemove - - No such database: %1 - Nie ma takiej bazy danych: %1 - - - Database removed: %1 - Baza danych usunięta: %1 - - - New current database set: - Nowa domyślna baza danych: - - - removes database from the list - usuwa bazę danych z listy - - - Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. - Usuwa <nazwaną> bazę danych z listy zarejestrowanych baz danych. Jeśli baza nie była na liście (patrz - polecenie %1), to zostanie wyświetlony komunikat błędu i nic się nie stanie. - - - name - CLI command syntax - nazwa - - - - CliCommandSql - - No working database is set. -Call %1 command to set working database. -Call %2 to see list of all databases. - Nie wybrano domyślnej bazy danych. -Użyj polecenia %1, aby ustawić domyślną bazę danych. -Użyj polecenie %2, aby wypisać listę wszystkich baz. - - - Database is not open. - Baz danych nie jest otwarta. - - - executes SQL query - wykonuje zapytanie SQL - - - This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. - To polecenie jest wywoływane za każdym razem, kiedy wpisujesz zapytanie SQL w linii poleceń. Wykonuje ono zapytanie na bieżącej bazie danych (więcej szczegółów w pomocy dla %1). Nie ma sensu wywoływanie tego polecenia bezpośrednio. Zamiast tego po prostu wpisuj zapytania SQL w linii poleceń, bez polecenia poprzedzającego. - - - sql - CLI command syntax - sql - - - Too many columns to display in %1 mode. - Zbyt wiele kolumn, aby wyświetlić w trybie %1. - - - Row %1 - Wiersz %1 - - - Query execution error: %1 - Błąd wykonywania zapytania: %1 - - - - CliCommandTables - - Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. - Nie można wywołać %1, gdy żadna z baz nie jest ustawiona jako bieżąca. Okreś bieżącą bazę używając polecenia %2, lub podaj nazwę bazy do %3. - - - Database %1 is closed. - Baza danych %1 jest zamknięta. - - - Database - Baza danych - - - Table - Tabela - - - prints list of tables in the database - wypisuje listę tabel w bazie danych - - - Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. -When the -s option is given, then system tables are also listed. - Wypisuje listę tabel w danej <bazie danych> lub w bieżącej bazie danych. <baza danych> powinna być nazwą zarejestrowanej bazy danych (patrz %1). List wyjściowa zawiera wszystkie tabele ze wszystkich baz dołączonych do odpytywanej bazy. Gdy podana jest opcja -s, to również systemowe tabele pojawią się na liście. - - - database - CLI command syntax - baza danych - - - No such database: %1. Use %2 to see list of known databases. - Nie znaleziono bazy danych: %1. Użyj %2 aby zonaczyć listę znanych baz danych. - - - - CliCommandTree - - No current working database is selected. Use %1 to define one and then run %2. - Nie wybrano bieżącej bazy danych. Użyj %1 aby taką zdefiniować i wtedy uruchom %2. - - - Tables - Tabele - - - Views - Widoki - - - Columns - Kolumny - - - Indexes - Indeksy - - - Triggers - Wyzwalacze - - - prints all objects in the database as a tree - wypisuje wszystkie obiekty w bazie danych w postaci drzewa - - - Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. -When -c option is given, then also columns will be listed under each table. -When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). -The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. - Wypisuje wszystkie obiekty (tabele, indeksy, wyzwalacze i widoki) znajdujące się w bazie danych w postaci drzewa. Drzewo to jest podobne do tego, które można zobaczyć w interfejsie graficznym SQLiteStudio. -Kiedy poda się opcję -c, to pod każdą tabelą wylistowane zostaną kolumny. -Kiedy poda się opcję -s, to również obiekty systemowe będą wypisane (tabele sqlite_*, indeksy autoinkrementacji, itp). -Argument bazy danych jest opcjonalny i gdy się go poda, to tylko ta baza zostanie wypisana. Nie jest to nazwa zarejestrowanej nazwy, ale nazwa wewnętrzna bazy SQLite, jak np 'main', 'temp', lub dowolna nazwa dołączonej bazy. Aby wypisać drzewo dla innej zarejestrowanej bazy, użyj najpierw %1, aby zmienić bieżącą bazę danych i wtedy użyj polecenia %2. - - - - CliCommandUse - - No current database selected. - Bieżąca baza danych nie jest wybrana. - - - Current database: %1 - Bieżąca baza danych: %1 - - - No such database: %1 - Nie ma takiej bazy danych: %1 - - - changes default working database - zmienia domyślną bazę danych - - - Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. - -What is current working database? -When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). - -The default database can be selected in various ways: -- using %1 command, -- by passing database file name to the application startup parameters, -- by passing registered database name to the application startup parameters, -- by restoring previously selected default database from saved configuration, -- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. - Zmienia domyślną bazę danych na <nazwaną>. Jeśli <nazwana> baza danych nie jest zarejestrowana w aplikacji, to wyświetlony zostanie komunikat błędu i żadne zmiany nie nastąpią. - -Czym jest domyślna baza danych? -Kiedy piszesz zapytanie SQL do wykonania, jest ono wykonywane na domyślnej bazie danych, która jest również nazywana bieżącą bazą danych. Większość poleceń związanych z bazą danych może pracować z użyciem domyślnej bazy danych, jeśli nie poda się bazy w ich argumentach. Bieżąca baza danych jest zawsze widoczna w wierszu poleceń. Domyślna baza danych jest zawsze zdefiniowana (z wyjątkiem, gdy nie ma żadnej bazy na liście). - -Domyślna baza danych może być wybrana na kilka sposobów: -- używając polecenia %1, -- podając plik bazy danych jako parametr do uruchomienia aplikacji, -- podając nazwę zarejestrowanej bazy danych jako parametr do uruchomienia aplikacji, -- lub gdy domyślna baza nie została wybrana przez żadne z powyższych, to pierwsza baza z listy zarejestrowanych baz stanie się domyślną. - - - name - CLI command syntax - nazwa - - - - QObject - - Insufficient number of arguments. - Niewystarająca liczba arugmentów. - - - Too many arguments. - Za dużo argumentów. - - - Invalid argument value: %1. -Expected one of: %2 - Niepoprawna wartość argumentu: %1. -Oczekiwano jednej z: %2 - - - Unknown option: %1 - CLI command syntax - Nieznana opcja: %1 - - - Option %1 requires an argument. - CLI command syntax - Opcja %1 wymaga argumentu. - - - string - CLI command syntax - łańcuch - - - Command line interface to SQLiteStudio, a SQLite manager. - Interfejs linii poleceń dla SQLiteStudio, menażera SQLite. - - - Enables debug messages on standard error output. - Włącza wiadomości debugujące na standardowym wyjściu błędów. - - - Enables Lemon parser debug messages for SQL code assistant. - Włącza wiadomości debugujące analizatora Lemon dla asystenta kodu SQL. - - - file - plik - - - Database file to open - Baza danych do otwarcia - - - Lists plugins installed in the SQLiteStudio and quits. - Wypisuje listę zainstalowanych w SQLiteStudio wtyczek i wychodzi. - - - diff --git a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_pl_PL.ts b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_pl_PL.ts new file mode 100644 index 0000000..680984e --- /dev/null +++ b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_pl_PL.ts @@ -0,0 +1,874 @@ + + + + + CLI + + + Current database: %1 + Bieżąca baza danych: %1 + + + + No current working database is set. + Nie ustawiono bieżącej bazy danych. + + + + Type %1 for help + Wpisz %1, aby uzyskać pomoc. + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + Baz danych przekazana w parametrach linii poleceń (%1) była już na liście pod nazwą: %2 + + + + Could not add database %1 to list. + Nie udało się dodać bazy danych %1 do listy. + + + + closed + zamknięta + + + + CliCommand + + + Usage: %1%2 + Sposób użycia: %1%2 + + + + CliCommandAdd + + + Could not add database %1 to list. + Nie udało się dodać bazy danych %1 do listy. + + + + Database added: %1 + Baza danych dodana: %1 + + + + adds new database to the list + dodaje bazę danych do listy + + + + Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. + Dodaje bazę danych wskazaną przez <ścieżkę> z daną <nazwą> do listy baz danych. <nazwa> jest tylko symboliczną nazwą, do której możesz się potem odwoływać. Po prostu wybierz dowolną, unikalną nazwę. Aby wypisać listę baz danych, które są już na liście, użyj polecenia %1. + + + + name + CLI command syntax + nazwa + + + + path + CLI command syntax + ścieżka + + + + CliCommandCd + + + Changed directory to: %1 + Zmieniono katalog na: %1 + + + + Could not change directory to: %1 + Nie udało się zmienić katalogu na: %1 + + + + changes current working directory + zmienia bieżący katalog + + + + Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. + Bardzo podobne polecenie do 'cd' znanego z systemów Unixowych i Windowsa. Wymaga <ścieżki> jako argumentu, stąd wywołanie %1 zawsze spowoduje zmianę katalogu. Aby poznać jaki jest bieżący katalog, użyj polecenia %2, a żeby wypisać listę zawartości bieżącego katalogu użyj polecenia %3. + + + + path + CLI command syntax + ścieżka + + + + CliCommandClose + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Nie można wywołać %1, gdy żadna z baz nie jest ustawiona jako bieżąca. Okreś bieżącą bazę używając polecenia %2, lub podaj nazwę bazy do %3. + + + + + Connection to database %1 closed. + Połączenie z bazą %1 zostało zamknięte. + + + + No such database: %1. Use %2 to see list of known databases. + Nie znaleziono bazy danych: %1. Użyj %2 aby zonaczyć listę znanych baz danych. + + + + closes given (or current) database + zamyka daną (lub bieżącą) bazę danych + + + + Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). + Zamyka połączenie z bazą danych. Jeśli baza danych była już zamknięta, nic się nie stanie. Jeśli <nazwa> jest podana, to powinna ona być nazwą bazy danych do zamknięcia (wg. tego jak wyświetla ją polecenie %1). Gdy <nazwa> nie jest podana, to bieżąca baza danych zostanie zamknięta (więcej szczegółów w pomocy dla %2). + + + + name + CLI command syntax + nazwa + + + + CliCommandDbList + + + No current working database defined. + Nie określono bieżącej bazy danych. + + + + Databases: + Bazy danych: + + + + + Name + CLI db name column + Nazwa + + + + + Open + CLI connection state column + Otwarta + + + + + Closed + CLI connection state column + Zamknięta + + + + + Connection + CLI connection state column + Połączenie + + + + + Database file path + Ścieżka do pliku bazy danych + + + + prints list of registered databases + wypisuje listę zarejestrowanych baz danych + + + + Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. + Wypisuje listę zarejestrowanych w SQLiteStudio baz danych. Każda baza danych na liście może być otwarta, lub zamknięta i %1 o tym mówi. Bieżąca baza danych (nazywana również domyślną bazą danych) jest również zaznaczona na liście znakiem '*' na początku swojej nazwy. Zobacz pomoc dla polecenia %2, żeby dowiedzieć się więcej o domyślnej bazie danych. + + + + CliCommandDesc + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + Nie wybrano domyślnej bazy danych. +Użyj polecenia %1, aby ustawić domyślną bazę danych. +Użyj polecenie %2, aby wypisać listę wszystkich baz. + + + + Database is not open. + Baza danych nie jest otwarta. + + + + Cannot find table named: %1 + Nie można znaleźć tabeli o nazwie: %1 + + + + shows details about the table + pokazuje szczegóły o tabeli + + + + table + tabela + + + + Table: %1 + Tabla: %1 + + + + Column name + Nazwa kolumny + + + + Data type + Typ danych + + + + Constraints + Ograniczenia + + + + Virtual table: %1 + Wirtualna tabela: %1 + + + + Construction arguments: + Argumenty konstruujące: + + + + No construction arguments were passed for this virtual table. + Nie podano argumentów konstruujących dla tej tabeli wirtualnej. + + + + CliCommandDir + + + lists directories and files in current working directory + wypisuje listę katalogów i plików w bieżącym katalogu + + + + This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. + +You can pass <pattern> with wildcard characters to filter output. + To jest polecenie bardzo podobne do 'dir' znanego z systemu Windows, oraz 'ls' znanego z systemów Unixowych. + +Możesz podać <wzorzec> ze znakami maskującymi, aby filtrować wynik. + + + + pattern + wzorzec + + + + CliCommandExit + + + quits the application + zamyka aplikację + + + + Quits the application. Settings are stored in configuration file and will be restored on next startup. + Zamyka aplikację. Ustawienia są zapisywane w pliku konfiguracyjnym i zostaną przywrócone przy następnym starcie. + + + + CliCommandHelp + + + shows this help message + pokazuje tą treść pomocy + + + + Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. +To see list of supported commands, type %2 without any arguments. + +When passing <command> name, you can skip special prefix character ('%3'). + +You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. + Używaj %1 aby poznać poszczególne polecenia obsługiwane przez interfejs linii poleceń (CLI) SQLiteStudio. +Aby zobaczyć listę obsługiwanych poleceń, wpisz %2 bez żadnych argumentów. + +Kiedy podaje się nazwę <polecenia>, można pominąć specjalny znak przedrostka ('%3'). + +Zawsze możesz wywołać dowolne polecenie z dokładnie jedną opcją '--help', aby zobaczyć pomoc dla tego polecenia. Jest to alternatywa dla wpisywania: %1 <polecenie>. + + + + command + CLI command syntax + polecenie + + + + No such command: %1 + Nie ma takiego polecenia: %1 + + + + Type '%1' for list of available commands. + Wpisz '%1' aby poznać listę dostępnych poleceń. + + + + Usage: %1%2 + Sposób użycia: %1%2 + + + + Aliases: %1 + Aliasy: %1 + + + + CliCommandHistory + + + Current history limit is set to: %1 + Bieżący limit historii jest ustawiony na: %1 + + + + prints history or erases it + wyświetla historię lub ją kasuje + + + + When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. + +When the -c or --clear option is passed, then the history gets erased. +When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. +Use -ql or --querylimit option to see the current limit value. + Gdy nie poda się żadnego argumentu, to polecenie wyświetla historię linii poleceń. Każdy wpis w historii jest oddzielony linią poziomą, żeby łatwiej było czytać więcej wpisów. + +Kiedy poda się opcję -c lub --clear, to historia jest kasowana. +Kiedy poda się opcję -l lub --limit, to ustawiany jest nowy limit na historii. Wymaga to podania dodatkowego argumentu, mówiącego o tym, ile ma być wpisów przechowywanych w historii. +Użyj opcji -ql lub --querylimit, aby poznać aktualną wartość limitu. + + + + number + liczba + + + + Console history erased. + Historia konsoli skasowana. + + + + Invalid number: %1 + Niepoprawna liczba: %1 + + + + History limit set to %1 + Limit historii ustawiono na %1 + + + + CliCommandMode + + + Current results printing mode: %1 + Aktualny tryb wyświetlania wyników: %1 + + + + Invalid results printing mode: %1 + Niepoprawny tryb wyświetlania wyników: %1 + + + + New results printing mode: %1 + Nowy tryb wyświetlania wyników: %1 + + + + tells or changes the query results format + wyświetla lub zmienia format wyników zapytania + + + + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: +- CLASSIC - columns are separated by a comma, not aligned, +- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, +- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), +- ROW - each column from the row is displayed in new line, so the full data is displayed. + +The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. + +The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. + +The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. + +The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). + Gdy wywołuje się bez argumentu, wyświetla bieżący format wyjścia dla wyników zapytania. Po podaniu <tryb>, zostaje on zmieniony na podany tryb. Obsługiwane tryby to: +- CLASSIC - kolumny są oddzielone przecinkiem, nie wyrównane, +- FIXED - kolumny mają taką samą i stałą szerokość, zawsze pasują do szerokości okna terminalu, ale dane w kolumnach mogą być obcięte, +- KOLUMNS - jak FIXED, ale mądrzejsze (nie używaj z dużymi zestawami wyników, zobacz szczegóły poniżej), +- ROW - każda kolumna z wiersza jest wyświetlana w nowej linii, więc wyświetlane są pełne dane. + +Tryb CLASSIC jest zalecany, jeśli chcesz zobaczyć wszystkie dane, ale nie chcesz marnować linii dla każdej kolumny. Każdy wiersz wyświetli pełne dane dla każdej kolumny, ale oznacza to również, że kolumny nie będą wyrównane do siebie w kolejnych wierszach. Tryb CLASSIC również nie respektuje nie szerokości okna terminala (konsoli), więc jeśli wartości w kolumnach są większe niż okno, wiersz będzie kontynuowany w kolejnych wierszach. + +Tryb FIXED jest zalecany, jeśli chcesz odczytać dane wyjściowe i nie troszczysz się o długie wartości danych. Kolumny będą wyrównywane, co sprawi, że wyjście będzie ładną tabelą. Szerokość kolumn jest obliczana na podstawie szerokości okna konsoli i liczby kolumn. + +Tryb COLUMNS jest podobny do trybu FIXED, z tą różnicą, że próbuje być inteligentny i sprawić, żeby kolumny o krótszych wartościach były węższe, podczas gdy kolumny o dłuższych wartościach będą miały więcej miejsca. W pierwszej kolejności zmniejszane są kolumny z najdłuższymi nagłówkami (nazwy w nagłówkach należy skrócić jako pierwsze), następnie kolumny z najdłuższymi wartościami są zmniejszane, aż do chwili, gdy wszystkie kolumny pasują do okna końcowego. +UWAGA! Tryb COLUMNS odczytuje wszystkie wyniki zapytania na raz, aby ocenić szerokość kolumny, w związku z tym korzystanie z tego trybu podczas pracy z ogromnymi zestawami wyników jest niebezpieczne. Pamiętaj, że ten tryb załaduje cały wynik do pamięci. + +Tryb ROW jest zalecany, jeśli chcesz zobaczyć całe wartości, a nie oczekujesz wyświetlania zbyt wielu wierszy, ponieważ ten tryb wyświetla linię wyjścia dla każdej kolumny, więc otrzymasz 10 linii dla pojedynczego wiersza z 10 kolumnami, a jeśli masz 10 takich wierszy, otrzymasz 100 linii wyjścia (+1 dodatkowy wiersz, aby oddzielić wiersze od siebie). + + + + CliCommandNullValue + + + Current NULL representation string: %1 + Aktualny łańcuch reprezentujący wartość NULL: %1 + + + + tells or changes the NULL representation string + wyświetla lub zmienia łąńcuch reprezentujący wartość NULL + + + + If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. + Jeśli nie poda się argumentu, to wyświetlana jest aktualna reprezentacja wartości NULL (to znaczy to, co jest wyświetlane zamiast wartości NULL w wynikach zapytań). Jeśli podano argument, to staje się on nową reprezentacją wartości NULL. + + + + CliCommandOpen + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Nie można wywołać %1, gdy żadna z baz nie jest ustawiona jako bieżąca. Okreś bieżącą bazę używając polecenia %2, lub podaj nazwę bazy do %3. + + + + Could not add database %1 to list. + Nie udało się dodać bazy danych %1 do listy. + + + + File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. + Plik %1 nie istnieje w %2. Nie można otworzyć nieistniejącej bazy poleceniem %3. Aby utworzyć nową bazę danych, użyj polecenia %4. + + + + Database %1 has been open and set as the current working database. + Baza %1 została otwarta i ustawiona jako bieżąca baza robocza. + + + + opens database connection + otwiera połączenie z bazą + + + + Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. + Otwiera połączenie do bazy. Jeśli nie podano dodatkowych argumentów, to połączenie jest nawiązywane z domyślną bazą (więcej szczegółów w pomocy dla polecenia %1). Natomiast gdy poda się argument, to może to być albo <nazwa> zarejestrowanej bazy danych do otwarcia, lub może to być <ścieżka> do pliku bazy danych do otwarcia. W drugim przypadku <ścieżka> zostanie zarejestrowana na liście baz danych z wygenerowaną nazwą, ale tylko na czas aktualnej sesji aplikacji. Po restarcie aplikacji taka baza danych nie jest przywracana na listę. + + + + name + CLI command syntax + nazwa + + + + path + CLI command syntax + ścieżka + + + + CliCommandPwd + + + prints the current working directory + wypisuje bieżący katalog + + + + This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. + Jest to polecenie podobne do 'pwd' znanego z sytemów Unixowych oraz polecenia 'cd' bez argumentów dla systemów Windows. Wypisuje bieżący katalog. Możesz zmienić bieżący katalog za pomocą polecenia %1, oraz możesz wypisać zawartość bieżącego katalogu za pomocą polecenia %2. + + + + CliCommandRemove + + + No such database: %1 + Nie ma takiej bazy danych: %1 + + + + Database removed: %1 + Baza danych usunięta: %1 + + + + New current database set: + Nowa domyślna baza danych: + + + + removes database from the list + usuwa bazę danych z listy + + + + Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. + Usuwa <nazwaną> bazę danych z listy zarejestrowanych baz danych. Jeśli baza nie była na liście (patrz - polecenie %1), to zostanie wyświetlony komunikat błędu i nic się nie stanie. + + + + name + CLI command syntax + nazwa + + + + CliCommandSql + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + Nie wybrano domyślnej bazy danych. +Użyj polecenia %1, aby ustawić domyślną bazę danych. +Użyj polecenie %2, aby wypisać listę wszystkich baz. + + + + Database is not open. + Baz danych nie jest otwarta. + + + + executes SQL query + wykonuje zapytanie SQL + + + + This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. + To polecenie jest wywoływane za każdym razem, kiedy wpisujesz zapytanie SQL w linii poleceń. Wykonuje ono zapytanie na bieżącej bazie danych (więcej szczegółów w pomocy dla %1). Nie ma sensu wywoływanie tego polecenia bezpośrednio. Zamiast tego po prostu wpisuj zapytania SQL w linii poleceń, bez polecenia poprzedzającego. + + + + sql + CLI command syntax + sql + + + + + Too many columns to display in %1 mode. + Zbyt wiele kolumn, aby wyświetlić w trybie %1. + + + + Row %1 + Wiersz %1 + + + + Query execution error: %1 + Błąd wykonywania zapytania: %1 + + + + CliCommandTables + + + No such database: %1. Use %2 to see list of known databases. + Nie znaleziono bazy danych: %1. Użyj %2 aby zonaczyć listę znanych baz danych. + + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Nie można wywołać %1, gdy żadna z baz nie jest ustawiona jako bieżąca. Okreś bieżącą bazę używając polecenia %2, lub podaj nazwę bazy do %3. + + + + Database %1 is closed. + Baza danych %1 jest zamknięta. + + + + + Database + Baza danych + + + + Table + Tabela + + + + prints list of tables in the database + wypisuje listę tabel w bazie danych + + + + Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. +When the -s option is given, then system tables are also listed. + Wypisuje listę tabel w danej <bazie danych> lub w bieżącej bazie danych. <baza danych> powinna być nazwą zarejestrowanej bazy danych (patrz %1). List wyjściowa zawiera wszystkie tabele ze wszystkich baz dołączonych do odpytywanej bazy. Gdy podana jest opcja -s, to również systemowe tabele pojawią się na liście. + + + + database + CLI command syntax + baza danych + + + + CliCommandTree + + + No current working database is selected. Use %1 to define one and then run %2. + Nie wybrano bieżącej bazy danych. Użyj %1 aby taką zdefiniować i wtedy uruchom %2. + + + + Tables + Tabele + + + + Views + Widoki + + + + Columns + Kolumny + + + + Indexes + Indeksy + + + + + Triggers + Wyzwalacze + + + + prints all objects in the database as a tree + wypisuje wszystkie obiekty w bazie danych w postaci drzewa + + + + Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. +When -c option is given, then also columns will be listed under each table. +When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). +The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. + Wypisuje wszystkie obiekty (tabele, indeksy, wyzwalacze i widoki) znajdujące się w bazie danych w postaci drzewa. Drzewo to jest podobne do tego, które można zobaczyć w interfejsie graficznym SQLiteStudio. +Kiedy poda się opcję -c, to pod każdą tabelą wylistowane zostaną kolumny. +Kiedy poda się opcję -s, to również obiekty systemowe będą wypisane (tabele sqlite_*, indeksy autoinkrementacji, itp). +Argument bazy danych jest opcjonalny i gdy się go poda, to tylko ta baza zostanie wypisana. Nie jest to nazwa zarejestrowanej nazwy, ale nazwa wewnętrzna bazy SQLite, jak np 'main', 'temp', lub dowolna nazwa dołączonej bazy. Aby wypisać drzewo dla innej zarejestrowanej bazy, użyj najpierw %1, aby zmienić bieżącą bazę danych i wtedy użyj polecenia %2. + + + + CliCommandUse + + + No current database selected. + Bieżąca baza danych nie jest wybrana. + + + + + Current database: %1 + Bieżąca baza danych: %1 + + + + No such database: %1 + Nie ma takiej bazy danych: %1 + + + + changes default working database + zmienia domyślną bazę danych + + + + Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. + +What is current working database? +When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). + +The default database can be selected in various ways: +- using %1 command, +- by passing database file name to the application startup parameters, +- by passing registered database name to the application startup parameters, +- by restoring previously selected default database from saved configuration, +- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. + Zmienia domyślną bazę danych na <nazwaną>. Jeśli <nazwana> baza danych nie jest zarejestrowana w aplikacji, to wyświetlony zostanie komunikat błędu i żadne zmiany nie nastąpią. + +Czym jest domyślna baza danych? +Kiedy piszesz zapytanie SQL do wykonania, jest ono wykonywane na domyślnej bazie danych, która jest również nazywana bieżącą bazą danych. Większość poleceń związanych z bazą danych może pracować z użyciem domyślnej bazy danych, jeśli nie poda się bazy w ich argumentach. Bieżąca baza danych jest zawsze widoczna w wierszu poleceń. Domyślna baza danych jest zawsze zdefiniowana (z wyjątkiem, gdy nie ma żadnej bazy na liście). + +Domyślna baza danych może być wybrana na kilka sposobów: +- używając polecenia %1, +- podając plik bazy danych jako parametr do uruchomienia aplikacji, +- podając nazwę zarejestrowanej bazy danych jako parametr do uruchomienia aplikacji, +- lub gdy domyślna baza nie została wybrana przez żadne z powyższych, to pierwsza baza z listy zarejestrowanych baz stanie się domyślną. + + + + name + CLI command syntax + nazwa + + + + QObject + + + Insufficient number of arguments. + Niewystarająca liczba arugmentów. + + + + Too many arguments. + Za dużo argumentów. + + + + Invalid argument value: %1. +Expected one of: %2 + Niepoprawna wartość argumentu: %1. +Oczekiwano jednej z: %2 + + + + Unknown option: %1 + CLI command syntax + Nieznana opcja: %1 + + + + Option %1 requires an argument. + CLI command syntax + Opcja %1 wymaga argumentu. + + + + string + CLI command syntax + łańcuch + + + + Command line interface to SQLiteStudio, a SQLite manager. + Interfejs linii poleceń dla SQLiteStudio, menażera SQLite. + + + + Enables debug messages on standard error output. + Włącza wiadomości debugujące na standardowym wyjściu błędów. + + + + Enables Lemon parser debug messages for SQL code assistant. + Włącza wiadomości debugujące analizatora Lemon dla asystenta kodu SQL. + + + + Lists plugins installed in the SQLiteStudio and quits. + Wypisuje listę zainstalowanych w SQLiteStudio wtyczek i wychodzi. + + + + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + Wykonuje podany plik SQL (w tym wszystkie bogate funkcje wykonywania zapytań w SQLiteStudio) na określonym pliku bazy danych i wychodzi z programu. Parametr bazy danych staje się obowiązkowy, jeśli ta opcja jest używana. + + + + SQL file + Plik SQL + + + + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. + Kodowanie znaków do użycia podczas czytania pliku SQL (opcja -e). Użyj -cl aby wyświetlić dostępne kodowania. Domyślnie %1. + + + + codec + kodek + + + + Lists available codecs to be used with -c option and quits. + Wyświetla dostępne kodowania do użycia z opcją -c i wychodzi z programu. + + + + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. + Gdy używany jest razem z opcją -e, wykonanie nie zatrzyma się na błędzie, ale będzie kontynuowane do końca, ignorując błędy. + + + + file + plik + + + + Database file to open + Baza danych do otwarcia + + + + Invalid codec: %1. Use -cl option to list available codecs. + Nieprawidłowe kodowanie: %1. Użyj opcji -cl, aby wyświetlić dostępne kodowania. + + + + Database file argument is mandatory when executing SQL file. + Argument pliku bazy danych jest obowiązkowy podczas wykonywania pliku SQL. + + + + Could not open specified database for executing SQL file. You may try using -d option to find out more details. + Nie można otworzyć określonej bazy danych do wykonania pliku SQL. Spróbuj użyć opcji -d, aby poznać więcej szczegółów. + + + diff --git a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_pt_BR.qm b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_pt_BR.qm deleted file mode 100644 index c02994c..0000000 Binary files a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_pt_BR.qm and /dev/null differ diff --git a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_pt_BR.ts b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_pt_BR.ts index 490addf..1b6bad9 100644 --- a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_pt_BR.ts +++ b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_pt_BR.ts @@ -1,412 +1,425 @@ - - + + CLI - - Current database: %1 - + + Current database: %1 + Banco de dados atual: %1 - - No current working database is set. - + + No current working database is set. + Nenhuma banco de dados de trabalho atual está definido. - - Type %1 for help - + + Type %1 for help + Digite %1 para ajuda - - Database passed in command line parameters (%1) was already on the list under name: %2 - + + Database passed in command line parameters (%1) was already on the list under name: %2 + Banco de dados passado nos parâmetros da linha de comando (%1) já estava na lista com o nome: %2 - - Could not add database %1 to list. - + + Could not add database %1 to list. + Não foi possível adicionar o banco de dados %1 à lista. - - closed - + + closed + fechado - - + + CliCommand - - Usage: %1%2 - + + Usage: %1%2 + Uso: %1%2 - - + + CliCommandAdd - - Could not add database %1 to list. - + + Could not add database %1 to list. + Não foi possível adicionar o banco de dados %1 à lista. - - Database added: %1 - + + Database added: %1 + Banco de dados adicionado: %1 - - adds new database to the list - + + adds new database to the list + adiciona novo banco de dados à lista - - Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. - + + Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. + Adiciona um banco de dados apontado por <path> com determinado <name> para listar a lista de bancos de dados. O <name> é apenas um nome simbólico que você pode referir mais tarde. Escolha qualquer nome exclusivo. Para lista de bancos de dados já estão na lista use o comando %1. - - name - CLI command syntax - + + name + CLI command syntax + nome - - path - CLI command syntax - + + path + CLI command syntax + caminho - - + + CliCommandCd - - Changed directory to: %1 - + + Changed directory to: %1 + Diretório alterado para: %1 - - Could not change directory to: %1 - + + Could not change directory to: %1 + Não foi possível mudar o diretório para: %1 - - changes current working directory - + + changes current working directory + muda o diretório atual de trabalho - - Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. - + + Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. + Um comando muito semelhante ao 'cd' conhecido do Unix system e Windows. É necessário que um argumento <path> seja aprovado, portanto chamar %1 sempre causará uma mudança do diretório. Para saber qual diretório de trabalho atual usa o comando %2 e para listar o conteúdo do diretório de trabalho atual use o comando %3. - - path - CLI command syntax - + + path + CLI command syntax + caminho - - + + CliCommandClose - - Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. - + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Não é possível chamar %1 quando nenhum banco de dados está definido como atual. Especifique o banco de dados atual com o comando %2 ou passe o nome do banco de dados para %3. - - - Connection to database %1 closed. - + + + Connection to database %1 closed. + Conexão ao banco de dados %1 fechado. - - No such database: %1. Use %2 to see list of known databases. - + + No such database: %1. Use %2 to see list of known databases. + Nenhum banco de dados: %1. Use %2 para ver a lista de bancos de dados conhecidos. - - closes given (or current) database - + + closes given (or current) database + fecha o banco de dados - - Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). - + + Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). + Fecha a conexão com a base de dados. Se o banco de dados já foi fechado, nada acontece. Se <name> for fornecido, deve ser o nome do banco de dados para fechar (como impresso pelo comando %1 ). O <name> não é fornecido, então a base de dados de trabalho atual está fechada (veja a ajuda %2 para detalhes). - - name - CLI command syntax - + + name + CLI command syntax + nome - - + + CliCommandDbList - - No current working database defined. - + + No current working database defined. + Nenhuma banco de dados de trabalho atual definido. - - Databases: - + + Databases: + Banco de dados: - - - Name - CLI db name column - + + + Name + CLI db name column + Nome - - - Open - CLI connection state column - + + + Open + CLI connection state column + Abrir - - - Closed - CLI connection state column - + + + Closed + CLI connection state column + Fechado - - - Connection - CLI connection state column - + + + Connection + CLI connection state column + Conexão - - - Database file path - + + + Database file path + Caminho do arquivo de banco de dados - - prints list of registered databases - + + prints list of registered databases + lista de bancos de dados registrados - - Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. - + + Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. + Mostra a lista de bancos de dados registrados no SQLiteStudio. Cada banco de dados da lista pode ser aberto ou fechado %1 avisa isso. O banco de dados de trabalho atual (conhecido como padrão de banco de dados) também está marcado na lista com '*' no início do seu nome. Consulte ajuda para usar o comando %2 para aprender sobre o banco de dados padrão. - - + + CliCommandDesc - - No working database is set. + + No working database is set. Call %1 command to set working database. Call %2 to see list of all databases. - + Nenhum banco de dados está definido. +Use %1 para definir o banco de dados ativo. +Use %2 para ver a lista de todos os bancos de dados. - - Database is not open. - + + Database is not open. + Banco de dados não está aberto. - - Cannot find table named: %1 - + + Cannot find table named: %1 + Não foi possível encontrar a tabela: %1 - - shows details about the table - + + shows details about the table + mostra detalhes sobre a tabela - - table - + + table + tabela - - Table: %1 - + + Table: %1 + Tabela: %1 - - Column name - + + Column name + Nome da coluna - - Data type - + + Data type + Tipo de dado - - Constraints - + + Constraints + Restrições - - Virtual table: %1 - + + Virtual table: %1 + Tabela virtual: %1 - - Construction arguments: - + + Construction arguments: + Argumentos de construção: - - No construction arguments were passed for this virtual table. - + + No construction arguments were passed for this virtual table. + Não foram apresentados argumentos de construção para esta tabela virtual. - - + + CliCommandDir - - lists directories and files in current working directory - + + lists directories and files in current working directory + lista diretórios e arquivos no diretório de trabalho atual - - This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. + + This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. You can pass <pattern> with wildcard characters to filter output. - + Isso é muito semelhante ao comando 'dir' do Windows e 'ls' do sistema Unix. + +Você pode passar <pattern> como caracteres curinga para filtrar a saída. - - pattern - + + pattern + padrão - - + + CliCommandExit - - quits the application - + + quits the application + sair da aplicação - - Quits the application. Settings are stored in configuration file and will be restored on next startup. - + + Quits the application. Settings are stored in configuration file and will be restored on next startup. + Encerra o aplicativo. As configurações são armazenadas no arquivo de configuração e serão restauradas na próxima inicialização. - - + + CliCommandHelp - - shows this help message - + + shows this help message + mostra mensagem de ajuda - - Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. + + Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. To see list of supported commands, type %2 without any arguments. When passing <command> name, you can skip special prefix character ('%3'). You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. - + Use %1 para aprender sobre certos comandos suportados pela interface de linha de comando (CLI) do SQLiteStudio. +Para ver a lista de comandos suportados, digite %2 sem quaisquer argumentos. + +Ao passar o nome <command> você pode pular o caractere de prefixo especial ('%3'). + +Você sempre pode executar qualquer comando com exatamente um único '--help' opção para ver a ajuda para esse comando. Uma alternativa para digitar: %1 <command>. - - command - CLI command syntax - + + command + CLI command syntax + comando - - No such command: %1 - + + No such command: %1 + Comando não encontrado: %1 - - Type '%1' for list of available commands. - + + Type '%1' for list of available commands. + Digite '%1' para a lista de comandos disponíveis. - - Usage: %1%2 - + + Usage: %1%2 + Uso: %1%2 - - Aliases: %1 - + + Aliases: %1 + Apelidos: %1 - - + + CliCommandHistory - - Current history limit is set to: %1 - + + Current history limit is set to: %1 + Limite do histórico atual está definido para: %1 - - prints history or erases it - + + prints history or erases it + mostrar ou apagar o histórico - - When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. + + When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. When the -c or --clear option is passed, then the history gets erased. When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. Use -ql or --querylimit option to see the current limit value. - + Quando nenhum argumento foi utilizado, este comando imprime o histórico da linha de comando. Cada entrada do histórico é separada por uma linha horizontal, então as entradas multilinha são mais fáceis de ler. + +Quando a opção -c ou --clear é aprovada, então o histórico é apagado. +Quando a opção -l ou --limit é aprovada, ele define o novo limite de histórico. Requer um argumento adicional dizendo a quantas entradas você quer que a história se limite a +Use a opção -ql ou --querylimit para ver o valor limite atual. - - number - + + number + número - - Console history erased. - + + Console history erased. + Histórico apagado do console. - - Invalid number: %1 - + + Invalid number: %1 + Número inválido: %1 - - History limit set to %1 - + + History limit set to %1 + Limite de histórico definido para %1 - - + + CliCommandMode - - Current results printing mode: %1 - + + Current results printing mode: %1 + Modo de impressão atual de resultados: %1 - - Invalid results printing mode: %1 - + + Invalid results printing mode: %1 + Modo de impressão de resultados inválido: %1 - - New results printing mode: %1 - + + New results printing mode: %1 + Modo de impressão de novos resultados: %1 - - tells or changes the query results format - + + tells or changes the query results format + chama ou muda o formato dos resultados da consulta - - When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: + + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: - CLASSIC - columns are separated by a comma, not aligned, - FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, - COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), @@ -417,288 +430,308 @@ The CLASSIC mode is recommended if you want to see all the data, but you don&apo The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. -ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widhts, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). - + Quando chamado sem argumento, informa o formato de saída atual para os resultados de uma consulta. Quando o <mode> é passado, o modo é alterado para o dado. Os modos suportados são: +- CLASSIC - as colunas são separadas por vírgula, não alinhadas, +- FIXED - as colunas têm largura igual e fixa, sempre cabem na largura da janela do terminal, mas os dados nas colunas podem ser cortados, +- COLUMNS - como FIXED, mas mais inteligente (não use com grandes conjuntos de resultados, veja os detalhes abaixo), +- ROW - cada coluna da linha é exibida em nova linha, portanto, os dados completos são exibidos. + +O modo CLASSIC é recomendado se você quiser ver todos os dados, mas não quer desperdiçar linhas para cada coluna. Cada linha exibirá dados completos para cada coluna, mas isso também significa que as colunas não serão alinhadas entre si nas próximas linhas. O modo CLASSIC também não respeita a largura da janela do seu terminal (console), portanto, se os valores nas colunas forem mais largos que a janela, a linha será continuada nas próximas linhas. + +O modo FIXED é recomendado se você deseja uma saída legível e não se preocupa com valores de dados longos. As colunas serão alinhadas, tornando a saída uma boa tabela. A largura das colunas é calculada a partir da largura da janela do console e um número de colunas. + +O modo COLUMNS é semelhante ao modo FIXED, exceto que tenta ser inteligente e tornar as colunas com valores mais curtos mais finas, enquanto as colunas com valores mais longos obtêm mais espaço. As primeiras a encolher são as colunas com cabeçalhos mais longos (portanto, os nomes dos cabeçalhos devem ser cortados primeiro), depois as colunas com os valores mais longos são reduzidas, até o momento em que todas as colunas cabem na janela do terminal. +ATENÇÃO! O modo COLUMNS lê todos os resultados da consulta de uma vez para avaliar as larguras das colunas, portanto, é perigoso usar esse modo ao trabalhar com grandes conjuntos de resultados. Lembre-se de que este modo carregará todo o conjunto de resultados na memória. + +O modo ROW é recomendado se você precisa ver valores inteiros e não espera que muitas linhas sejam exibidas, porque este modo exibe uma linha de saída por cada coluna, então você obterá 10 linhas para uma única linha com 10 colunas, então, se você tiver 10 dessas linhas, obterá 100 linhas de saída (+1 linha extra por cada linha, para separar as linhas umas das outras). - - + + CliCommandNullValue - - Current NULL representation string: %1 - + + Current NULL representation string: %1 + String de denominação NULL atual: %1 - - tells or changes the NULL representation string - + + tells or changes the NULL representation string + chama ou muda a cadeia de representação NULL - - If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. - + + If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. + Se nenhum argumento foi aprovado, utilizar a denominação de NULL atual (ou seja, o que é impresso no lugar de valores NULL nos resultados de consultas). Se o argumento é dado, então será usado como uma nova string a ser usada para denominação NULL. - - + + CliCommandOpen - - Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. - + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Não é possível chamar %1 quando nenhum banco de dados está definido como atual. Especifique o banco de dados atual com o comando %2 ou passe o nome do banco de dados para %3. - - Could not add database %1 to list. - + + Could not add database %1 to list. + Não foi possível adicionar o banco de dados %1 à lista. - - File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. - + + File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. + O arquivo %1 não existe em %2. Não é possível abrir banco de dados inexistente com o comando %3. Para criar um novo banco de dados, use o comando %4. + - - Database %1 has been open and set as the current working database. - + + Database %1 has been open and set as the current working database. + Banco de dados %1 foi aberto e definido como a base de dados atual de trabalho. - - opens database connection - + + opens database connection + abre conexão com base de dados - - Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. - + + Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. + Abrir conexão com a base de dados. Se nenhum argumento adicional foi aprovado, então a conexão está aberta para o banco de dados padrão atual (veja a ajuda para %1 para detalhes). No entanto, se um argumento foi aprovado, pode ser <name> da base de dados registrada para abrir. ou pode ser <path> para o arquivo de banco de dados para abrir. No segundo caso, o <path> é registrado na lista com um nome gerado, mas apenas para o período da sessão de aplicação atual. Depois de reiniciar o aplicativo, esse banco de dados não será restaurado na lista. - - name - CLI command syntax - + + name + CLI command syntax + nome - - path - CLI command syntax - + + path + CLI command syntax + caminho - - + + CliCommandPwd - - prints the current working directory - + + prints the current working directory + mostra o diretório de trabalho atual - - This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. - + + This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. + Isso é o mesmo que 'pwd' comando em sistemas Unix e 'cd' comando sem argumentos no Windows. Imprime o diretório de trabalho atual. Você pode alterar o diretório de trabalho atual com %1 comando e você também pode listar o conteúdo do diretório de trabalho atual com %2 comando. - - + + CliCommandRemove - - No such database: %1 - + + No such database: %1 + Banco de dados não existe: %1 - - Database removed: %1 - + + Database removed: %1 + Banco de dados removido: %1 - - New current database set: - + + New current database set: + Novo banco de dados definido: - - removes database from the list - + + removes database from the list + remove o banco de dados da lista - - Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. - + + Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. + Remove <name> do banco de dados da lista de bancos de dados registrados. Se o banco de dados não estava na lista (ver %1 comando), então a mensagem de erro é impressa e nada mais acontece. - - name - CLI command syntax - + + name + CLI command syntax + nome - - + + CliCommandSql - - No working database is set. + + No working database is set. Call %1 command to set working database. Call %2 to see list of all databases. - + Nenhum banco de dados está definido. +Execute %1 para definir o banco de dados ativo. +Execute %2 para ver a lista de todos os bancos de dados. - - Database is not open. - + + Database is not open. + Banco de dados não está aberto. - - executes SQL query - + + executes SQL query + executa consulta SQL - - This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. - + + This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. + Este comando é executado toda vez que você digitar a consulta SQL no prompt de comando. Executa a consulta no banco de dados de trabalho atual (veja ajuda para %1 para detalhes). Não faz sentido executar este comando explicitamente. Em vez disso, digite a consulta SQL no prompt de comando, sem qualquer comando prefixado. - - sql - CLI command syntax - + + sql + CLI command syntax + sql - - - Too many columns to display in %1 mode. - + + + Too many columns to display in %1 mode. + Muitas colunas para serem exibidas no modo %1. - - Row %1 - + + Row %1 + Linha %1 - - Query execution error: %1 - + + Query execution error: %1 + Erro na execução da consulta: %1 - - + + CliCommandTables - - No such database: %1. Use %2 to see list of known databases. - + + No such database: %1. Use %2 to see list of known databases. + Nenhum banco de dados: %1. Use %2 para ver a lista de bancos de dados existentes. - - Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. - + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Não é possível chamar %1 quando nenhum banco de dados está definido como atual. Especifique o banco de dados atual com o comando %2 ou passe o nome do banco de dados para %3. - - Database %1 is closed. - + + Database %1 is closed. + Banco de dados %1 está fechado. - - - Database - + + + Database + Banco de dados - - Table - + + Table + Tabela - - prints list of tables in the database - + + prints list of tables in the database + lista as tabelas do banco de dados - - Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. + + Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. When the -s option is given, then system tables are also listed. - + Mostra a lista das tabelas de acordo com <database> ou no atual banco de dados de trabalho. Note que o <database> deve ser o nome do banco de dados registrado (ver %1). A lista de saída inclui todas as tabelas de qualquer outro banco de dados anexado à base de dados solicitada. +Quando a opção -s é dada, então as tabelas do sistema também são listadas. - - database - CLI command syntax - + + database + CLI command syntax + banco de dados - - + + CliCommandTree - - No current working database is selected. Use %1 to define one and then run %2. - + + No current working database is selected. Use %1 to define one and then run %2. + Nenhum banco de dados selecionado. Use %1 para definir um banco de dados e depois execute %2. - - Tables - + + Tables + Tabelas - - Views - + + Views + Visualizações - - Columns - + + Columns + Colunas - - Indexes - + + Indexes + Índices - - - Triggers - + + + Triggers + Triggers - - prints all objects in the database as a tree - + + prints all objects in the database as a tree + mostra todos os objetos no banco do dados como uma árvore - - Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. + + Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. When -c option is given, then also columns will be listed under each table. When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. - + Imprime todos os objetos (tabelas, indexes, gatilhos e visualizações) que estão no banco de dados como uma árvore. A árvore é muito parecida com a que você pode ver no cliente GUI do SQLiteStudio. +Quando a opção -c é dada, então as colunas também serão listadas sob cada tabela. +Quando a opção -s é dada, então também objetos do sistema serão impressos (sqlite_* tabelas, índices de auto-incremento, etc). +O argumento do banco de dados é opcional e, se fornecido, apenas o banco de dados informado será impresso. Este não é um nome de banco de dados registrado, mas em vez disso é um nome de banco de dados SQLite interno, como 'main', 'temp', ou qualquer nome de banco de dados anexado. Para imprimir árvore para outro banco de dados registrado, chame %1 primeiro para mudar o banco de dados de trabalho e, em seguida, use o comando %2. - - + + CliCommandUse - - No current database selected. - + + No current database selected. + Nenhum banco de dados selecionado. - - - Current database: %1 - + + + Current database: %1 + Banco de dados atual: %1 - - No such database: %1 - + + No such database: %1 + Banco de dados não existe: %1 - - changes default working database - + + changes default working database + definir o banco de dados padrão - - Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. + + Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. What is current working database? When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). @@ -709,80 +742,136 @@ The default database can be selected in various ways: - by passing registered database name to the application startup parameters, - by restoring previously selected default database from saved configuration, - or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. - + Altera a base de dados atual de trabalho para <name>. Se o banco de dados <name> não estiver registrado, então a mensagem de erro é mostrada e nenhuma alteração é feita. + +O que é uma base de dados em funcionamento? +Quando você digita uma consulta SQL a ser executada, ela é executada no banco de dados padrão, que é também conhecida como a banco de dados de trabalho atual. A maioria dos comandos relacionados ao banco de dados também pode funcionar usando o banco de dados padrão, se nenhum banco de dados foi fornecido em seus argumentos. A base de dados atual é sempre identificada pela linha de comando. O banco de dados padrão é sempre definido (a menos que não haja nenhum banco de dados na lista). + +O banco de dados padrão pode ser selecionado de várias maneiras: +- usando o comando %1 +- passando o nome do arquivo de banco de dados para o aplicativo parâmetros de inicialização, +- passando o nome do banco de dados registrado para os parâmetros de inicialização do aplicativo, +- restaurando o banco de dados padrão selecionado anteriormente a partir da configuração salva, +- ou quando o banco de dados padrão não foi selecionado por nenhum dos itens acima então primeiro banco de dados da lista de bancos de dados registrados torna-se o padrão. - - name - CLI command syntax - + + name + CLI command syntax + nome - - + + QObject - - Insufficient number of arguments. - + + Insufficient number of arguments. + Número insuficiente de argumentos. - - Too many arguments. - + + Too many arguments. + Poucos argumentos. - - Invalid argument value: %1. + + Invalid argument value: %1. Expected one of: %2 - + Valor do argumento inválido: %1. +Espera-se um de: %2 + + + + Unknown option: %1 + CLI command syntax + Opção desconhecida: %1 + + + + Option %1 requires an argument. + CLI command syntax + A opção %1 requer um argumento. + + + + string + CLI command syntax + string + + + + Command line interface to SQLiteStudio, a SQLite manager. + Interface da linha de comando para SQLiteStudio, um gerenciador para SQLite. + + + + Enables debug messages on standard error output. + Habilita mensagens de depuração padrão na saída de erro. + + + + Enables Lemon parser debug messages for SQL code assistant. + Habilita mensagens de depuração do analisador Lemon no assistente de código SQL. + + + + Lists plugins installed in the SQLiteStudio and quits. + Lista os plugins instalados no SQLiteStudio e encerrados. + + + + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + Executa o arquivo SQL fornecido (incluindo todos os recursos avançados do executor de consulta SQLiteStudio 's) no arquivo de banco de dados especificado e fecha a rotina. O parâmetro do banco de dados torna-se obrigatório se esta opção for utilizada. + + + + SQL file + Arquivo SQL - - Unknown option: %1 - CLI command syntax - + + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. + Codificação de caracteres utilizada ao ler o arquivo SQL (-e option). Use -cl para listar os codecs disponíveis. O padrão é %1. - - Option %1 requires an argument. - CLI command syntax - + + codec + Codec - - string - CLI command syntax - + + Lists available codecs to be used with -c option and quits. + Lista de codecs disponíveis para serem usados com opção -c e encerramento. - - Command line interface to SQLiteStudio, a SQLite manager. - + + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. + Quando usado em conjunto com a opção -e, a execução não parará em um erro, mas sim continuará até o fim, ignorando erros. - - Enables debug messages on standard error output. - + + file + arquivo - - Enables Lemon parser debug messages for SQL code assistant. - + + Database file to open + Arquivo do banco de dados para abrir - - Lists plugins installed in the SQLiteStudio and quits. - + + Invalid codec: %1. Use -cl option to list available codecs. + Codec inválido: %1. Use a opção -cl para listar codecs disponíveis. - - file - + + Database file argument is mandatory when executing SQL file. + O argumento do arquivo de banco de dados é obrigatório para executar arquivo SQL. - - Database file to open - + + Could not open specified database for executing SQL file. You may try using -d option to find out more details. + Could not open specified database for executing SQL file. You may try using -d option to find out more details. - + diff --git a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_pt_PT.ts b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_pt_PT.ts new file mode 100644 index 0000000..91d4419 --- /dev/null +++ b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_pt_PT.ts @@ -0,0 +1,876 @@ + + + + + CLI + + + Current database: %1 + Current database: %1 + + + + No current working database is set. + No current working database is set. + + + + Type %1 for help + Type %1 for help + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + Database passed in command line parameters (%1) was already on the list under name: %2 + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + closed + closed + + + + CliCommand + + + Usage: %1%2 + Usage: %1%2 + + + + CliCommandAdd + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + Database added: %1 + Database added: %1 + + + + adds new database to the list + adds new database to the list + + + + Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. + Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. + + + + name + CLI command syntax + name + + + + path + CLI command syntax + path + + + + CliCommandCd + + + Changed directory to: %1 + Changed directory to: %1 + + + + Could not change directory to: %1 + Could not change directory to: %1 + + + + changes current working directory + changes current working directory + + + + Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. + Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. + + + + path + CLI command syntax + path + + + + CliCommandClose + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + + Connection to database %1 closed. + Connection to database %1 closed. + + + + No such database: %1. Use %2 to see list of known databases. + No such database: %1. Use %2 to see list of known databases. + + + + closes given (or current) database + closes given (or current) database + + + + Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). + Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). + + + + name + CLI command syntax + name + + + + CliCommandDbList + + + No current working database defined. + No current working database defined. + + + + Databases: + Databases: + + + + + Name + CLI db name column + Name + + + + + Open + CLI connection state column + Open + + + + + Closed + CLI connection state column + Closed + + + + + Connection + CLI connection state column + Connection + + + + + Database file path + Database file path + + + + prints list of registered databases + prints list of registered databases + + + + Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. + Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. + + + + CliCommandDesc + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + + + + Database is not open. + Database is not open. + + + + Cannot find table named: %1 + Cannot find table named: %1 + + + + shows details about the table + shows details about the table + + + + table + table + + + + Table: %1 + Table: %1 + + + + Column name + Column name + + + + Data type + Data type + + + + Constraints + Constraints + + + + Virtual table: %1 + Virtual table: %1 + + + + Construction arguments: + Construction arguments: + + + + No construction arguments were passed for this virtual table. + No construction arguments were passed for this virtual table. + + + + CliCommandDir + + + lists directories and files in current working directory + lists directories and files in current working directory + + + + This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. + +You can pass <pattern> with wildcard characters to filter output. + This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. + +You can pass <pattern> with wildcard characters to filter output. + + + + pattern + pattern + + + + CliCommandExit + + + quits the application + quits the application + + + + Quits the application. Settings are stored in configuration file and will be restored on next startup. + Quits the application. Settings are stored in configuration file and will be restored on next startup. + + + + CliCommandHelp + + + shows this help message + shows this help message + + + + Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. +To see list of supported commands, type %2 without any arguments. + +When passing <command> name, you can skip special prefix character ('%3'). + +You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. + Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. +To see list of supported commands, type %2 without any arguments. + +When passing <command> name, you can skip special prefix character ('%3'). + +You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. + + + + command + CLI command syntax + command + + + + No such command: %1 + No such command: %1 + + + + Type '%1' for list of available commands. + Type '%1' for list of available commands. + + + + Usage: %1%2 + Usage: %1%2 + + + + Aliases: %1 + Aliases: %1 + + + + CliCommandHistory + + + Current history limit is set to: %1 + Current history limit is set to: %1 + + + + prints history or erases it + prints history or erases it + + + + When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. + +When the -c or --clear option is passed, then the history gets erased. +When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. +Use -ql or --querylimit option to see the current limit value. + When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. + +When the -c or --clear option is passed, then the history gets erased. +When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. +Use -ql or --querylimit option to see the current limit value. + + + + number + number + + + + Console history erased. + Console history erased. + + + + Invalid number: %1 + Invalid number: %1 + + + + History limit set to %1 + History limit set to %1 + + + + CliCommandMode + + + Current results printing mode: %1 + Current results printing mode: %1 + + + + Invalid results printing mode: %1 + Invalid results printing mode: %1 + + + + New results printing mode: %1 + New results printing mode: %1 + + + + tells or changes the query results format + tells or changes the query results format + + + + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: +- CLASSIC - columns are separated by a comma, not aligned, +- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, +- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), +- ROW - each column from the row is displayed in new line, so the full data is displayed. + +The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. + +The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. + +The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. + +The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: +- CLASSIC - columns are separated by a comma, not aligned, +- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, +- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), +- ROW - each column from the row is displayed in new line, so the full data is displayed. + +The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. + +The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. + +The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. + +The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). + + + + CliCommandNullValue + + + Current NULL representation string: %1 + Current NULL representation string: %1 + + + + tells or changes the NULL representation string + tells or changes the NULL representation string + + + + If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. + If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. + + + + CliCommandOpen + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. + File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. + + + + Database %1 has been open and set as the current working database. + Database %1 has been open and set as the current working database. + + + + opens database connection + opens database connection + + + + Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. + Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. + + + + name + CLI command syntax + name + + + + path + CLI command syntax + path + + + + CliCommandPwd + + + prints the current working directory + prints the current working directory + + + + This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. + This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. + + + + CliCommandRemove + + + No such database: %1 + No such database: %1 + + + + Database removed: %1 + Database removed: %1 + + + + New current database set: + New current database set: + + + + removes database from the list + removes database from the list + + + + Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. + Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. + + + + name + CLI command syntax + name + + + + CliCommandSql + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + + + + Database is not open. + Database is not open. + + + + executes SQL query + executes SQL query + + + + This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. + This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. + + + + sql + CLI command syntax + sql + + + + + Too many columns to display in %1 mode. + Too many columns to display in %1 mode. + + + + Row %1 + Row %1 + + + + Query execution error: %1 + Query execution error: %1 + + + + CliCommandTables + + + No such database: %1. Use %2 to see list of known databases. + No such database: %1. Use %2 to see list of known databases. + + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + Database %1 is closed. + Database %1 is closed. + + + + + Database + Database + + + + Table + Table + + + + prints list of tables in the database + prints list of tables in the database + + + + Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. +When the -s option is given, then system tables are also listed. + Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. +When the -s option is given, then system tables are also listed. + + + + database + CLI command syntax + database + + + + CliCommandTree + + + No current working database is selected. Use %1 to define one and then run %2. + No current working database is selected. Use %1 to define one and then run %2. + + + + Tables + Tables + + + + Views + Views + + + + Columns + Columns + + + + Indexes + Indexes + + + + + Triggers + Triggers + + + + prints all objects in the database as a tree + prints all objects in the database as a tree + + + + Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. +When -c option is given, then also columns will be listed under each table. +When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). +The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. + Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. +When -c option is given, then also columns will be listed under each table. +When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). +The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. + + + + CliCommandUse + + + No current database selected. + No current database selected. + + + + + Current database: %1 + Current database: %1 + + + + No such database: %1 + No such database: %1 + + + + changes default working database + changes default working database + + + + Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. + +What is current working database? +When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). + +The default database can be selected in various ways: +- using %1 command, +- by passing database file name to the application startup parameters, +- by passing registered database name to the application startup parameters, +- by restoring previously selected default database from saved configuration, +- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. + Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. + +What is current working database? +When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). + +The default database can be selected in various ways: +- using %1 command, +- by passing database file name to the application startup parameters, +- by passing registered database name to the application startup parameters, +- by restoring previously selected default database from saved configuration, +- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. + + + + name + CLI command syntax + name + + + + QObject + + + Insufficient number of arguments. + Insufficient number of arguments. + + + + Too many arguments. + Too many arguments. + + + + Invalid argument value: %1. +Expected one of: %2 + Invalid argument value: %1. +Expected one of: %2 + + + + Unknown option: %1 + CLI command syntax + Unknown option: %1 + + + + Option %1 requires an argument. + CLI command syntax + Option %1 requires an argument. + + + + string + CLI command syntax + string + + + + Command line interface to SQLiteStudio, a SQLite manager. + Command line interface to SQLiteStudio, a SQLite manager. + + + + Enables debug messages on standard error output. + Enables debug messages on standard error output. + + + + Enables Lemon parser debug messages for SQL code assistant. + Enables Lemon parser debug messages for SQL code assistant. + + + + Lists plugins installed in the SQLiteStudio and quits. + Lists plugins installed in the SQLiteStudio and quits. + + + + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + + + + SQL file + SQL file + + + + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. + + + + codec + codec + + + + Lists available codecs to be used with -c option and quits. + Lists available codecs to be used with -c option and quits. + + + + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. + + + + file + file + + + + Database file to open + Database file to open + + + + Invalid codec: %1. Use -cl option to list available codecs. + Invalid codec: %1. Use -cl option to list available codecs. + + + + Database file argument is mandatory when executing SQL file. + Database file argument is mandatory when executing SQL file. + + + + Could not open specified database for executing SQL file. You may try using -d option to find out more details. + Could not open specified database for executing SQL file. You may try using -d option to find out more details. + + + diff --git a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_ro_RO.qm b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_ro_RO.qm deleted file mode 100644 index 2856eb9..0000000 Binary files a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_ro_RO.qm and /dev/null differ diff --git a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_ro_RO.ts b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_ro_RO.ts index e4821ef..2c3b290 100644 --- a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_ro_RO.ts +++ b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_ro_RO.ts @@ -1,412 +1,425 @@ - - + + CLI - - Current database: %1 - + + Current database: %1 + Current database: %1 - - No current working database is set. - + + No current working database is set. + No current working database is set. - - Type %1 for help - + + Type %1 for help + Type %1 for help - - Database passed in command line parameters (%1) was already on the list under name: %2 - + + Database passed in command line parameters (%1) was already on the list under name: %2 + Database passed in command line parameters (%1) was already on the list under name: %2 - - Could not add database %1 to list. - + + Could not add database %1 to list. + Could not add database %1 to list. - - closed - + + closed + closed - - + + CliCommand - - Usage: %1%2 - + + Usage: %1%2 + Usage: %1%2 - - + + CliCommandAdd - - Could not add database %1 to list. - + + Could not add database %1 to list. + Could not add database %1 to list. - - Database added: %1 - + + Database added: %1 + Database added: %1 - - adds new database to the list - + + adds new database to the list + adds new database to the list - - Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. - + + Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. + Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. - - name - CLI command syntax - + + name + CLI command syntax + name - - path - CLI command syntax - + + path + CLI command syntax + path - - + + CliCommandCd - - Changed directory to: %1 - + + Changed directory to: %1 + Changed directory to: %1 - - Could not change directory to: %1 - + + Could not change directory to: %1 + Could not change directory to: %1 - - changes current working directory - + + changes current working directory + changes current working directory - - Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. - + + Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. + Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. - - path - CLI command syntax - + + path + CLI command syntax + path - - + + CliCommandClose - - Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. - + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. - - - Connection to database %1 closed. - + + + Connection to database %1 closed. + Connection to database %1 closed. - - No such database: %1. Use %2 to see list of known databases. - + + No such database: %1. Use %2 to see list of known databases. + No such database: %1. Use %2 to see list of known databases. - - closes given (or current) database - + + closes given (or current) database + closes given (or current) database - - Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). - + + Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). + Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). - - name - CLI command syntax - + + name + CLI command syntax + name - - + + CliCommandDbList - - No current working database defined. - + + No current working database defined. + No current working database defined. - - Databases: - + + Databases: + Databases: - - - Name - CLI db name column - + + + Name + CLI db name column + Name - - - Open - CLI connection state column - + + + Open + CLI connection state column + Open - - - Closed - CLI connection state column - + + + Closed + CLI connection state column + Closed - - - Connection - CLI connection state column - + + + Connection + CLI connection state column + Connection - - - Database file path - + + + Database file path + Database file path - - prints list of registered databases - + + prints list of registered databases + prints list of registered databases - - Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. - + + Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. + Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. - - + + CliCommandDesc - - No working database is set. + + No working database is set. Call %1 command to set working database. Call %2 to see list of all databases. - + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. - - Database is not open. - + + Database is not open. + Database is not open. - - Cannot find table named: %1 - + + Cannot find table named: %1 + Cannot find table named: %1 - - shows details about the table - + + shows details about the table + shows details about the table - - table - + + table + table - - Table: %1 - + + Table: %1 + Table: %1 - - Column name - + + Column name + Column name - - Data type - + + Data type + Data type - - Constraints - + + Constraints + Constraints - - Virtual table: %1 - + + Virtual table: %1 + Virtual table: %1 - - Construction arguments: - + + Construction arguments: + Construction arguments: - - No construction arguments were passed for this virtual table. - + + No construction arguments were passed for this virtual table. + No construction arguments were passed for this virtual table. - - + + CliCommandDir - - lists directories and files in current working directory - + + lists directories and files in current working directory + lists directories and files in current working directory - - This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. + + This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. You can pass <pattern> with wildcard characters to filter output. - + This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. + +You can pass <pattern> with wildcard characters to filter output. - - pattern - + + pattern + pattern - - + + CliCommandExit - - quits the application - + + quits the application + quits the application - - Quits the application. Settings are stored in configuration file and will be restored on next startup. - + + Quits the application. Settings are stored in configuration file and will be restored on next startup. + Quits the application. Settings are stored in configuration file and will be restored on next startup. - - + + CliCommandHelp - - shows this help message - + + shows this help message + shows this help message - - Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. + + Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. To see list of supported commands, type %2 without any arguments. When passing <command> name, you can skip special prefix character ('%3'). You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. - + Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. +To see list of supported commands, type %2 without any arguments. + +When passing <command> name, you can skip special prefix character ('%3'). + +You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. - - command - CLI command syntax - + + command + CLI command syntax + command - - No such command: %1 - + + No such command: %1 + No such command: %1 - - Type '%1' for list of available commands. - + + Type '%1' for list of available commands. + Type '%1' for list of available commands. - - Usage: %1%2 - + + Usage: %1%2 + Usage: %1%2 - - Aliases: %1 - + + Aliases: %1 + Aliases: %1 - - + + CliCommandHistory - - Current history limit is set to: %1 - + + Current history limit is set to: %1 + Current history limit is set to: %1 - - prints history or erases it - + + prints history or erases it + prints history or erases it - - When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. + + When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. When the -c or --clear option is passed, then the history gets erased. When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. Use -ql or --querylimit option to see the current limit value. - + When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. + +When the -c or --clear option is passed, then the history gets erased. +When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. +Use -ql or --querylimit option to see the current limit value. - - number - + + number + number - - Console history erased. - + + Console history erased. + Console history erased. - - Invalid number: %1 - + + Invalid number: %1 + Invalid number: %1 - - History limit set to %1 - + + History limit set to %1 + History limit set to %1 - - + + CliCommandMode - - Current results printing mode: %1 - + + Current results printing mode: %1 + Current results printing mode: %1 - - Invalid results printing mode: %1 - + + Invalid results printing mode: %1 + Invalid results printing mode: %1 - - New results printing mode: %1 - + + New results printing mode: %1 + New results printing mode: %1 - - tells or changes the query results format - + + tells or changes the query results format + tells or changes the query results format - - When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: + + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: - CLASSIC - columns are separated by a comma, not aligned, - FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, - COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), @@ -417,288 +430,307 @@ The CLASSIC mode is recommended if you want to see all the data, but you don&apo The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. -ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widhts, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). - + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: +- CLASSIC - columns are separated by a comma, not aligned, +- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, +- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), +- ROW - each column from the row is displayed in new line, so the full data is displayed. + +The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. + +The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. + +The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. + +The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). - - + + CliCommandNullValue - - Current NULL representation string: %1 - + + Current NULL representation string: %1 + Current NULL representation string: %1 - - tells or changes the NULL representation string - + + tells or changes the NULL representation string + tells or changes the NULL representation string - - If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. - + + If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. + If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. - - + + CliCommandOpen - - Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. - + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. - - Could not add database %1 to list. - + + Could not add database %1 to list. + Could not add database %1 to list. - - File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. - + + File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. + File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. - - Database %1 has been open and set as the current working database. - + + Database %1 has been open and set as the current working database. + Database %1 has been open and set as the current working database. - - opens database connection - + + opens database connection + opens database connection - - Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. - + + Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. + Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. - - name - CLI command syntax - + + name + CLI command syntax + name - - path - CLI command syntax - + + path + CLI command syntax + path - - + + CliCommandPwd - - prints the current working directory - + + prints the current working directory + prints the current working directory - - This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. - + + This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. + This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. - - + + CliCommandRemove - - No such database: %1 - + + No such database: %1 + No such database: %1 - - Database removed: %1 - + + Database removed: %1 + Database removed: %1 - - New current database set: - + + New current database set: + New current database set: - - removes database from the list - + + removes database from the list + removes database from the list - - Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. - + + Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. + Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. - - name - CLI command syntax - + + name + CLI command syntax + name - - + + CliCommandSql - - No working database is set. + + No working database is set. Call %1 command to set working database. Call %2 to see list of all databases. - + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. - - Database is not open. - + + Database is not open. + Database is not open. - - executes SQL query - + + executes SQL query + executes SQL query - - This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. - + + This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. + This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. - - sql - CLI command syntax - + + sql + CLI command syntax + sql - - - Too many columns to display in %1 mode. - + + + Too many columns to display in %1 mode. + Too many columns to display in %1 mode. - - Row %1 - + + Row %1 + Row %1 - - Query execution error: %1 - + + Query execution error: %1 + Query execution error: %1 - - + + CliCommandTables - - No such database: %1. Use %2 to see list of known databases. - + + No such database: %1. Use %2 to see list of known databases. + No such database: %1. Use %2 to see list of known databases. - - Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. - + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. - - Database %1 is closed. - + + Database %1 is closed. + Database %1 is closed. - - - Database - + + + Database + Database - - Table - + + Table + Table - - prints list of tables in the database - + + prints list of tables in the database + prints list of tables in the database - - Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. + + Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. When the -s option is given, then system tables are also listed. - + Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. +When the -s option is given, then system tables are also listed. - - database - CLI command syntax - + + database + CLI command syntax + database - - + + CliCommandTree - - No current working database is selected. Use %1 to define one and then run %2. - + + No current working database is selected. Use %1 to define one and then run %2. + No current working database is selected. Use %1 to define one and then run %2. - - Tables - + + Tables + Tables - - Views - + + Views + Views - - Columns - + + Columns + Columns - - Indexes - + + Indexes + Indexes - - - Triggers - + + + Triggers + Triggers - - prints all objects in the database as a tree - + + prints all objects in the database as a tree + prints all objects in the database as a tree - - Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. + + Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. When -c option is given, then also columns will be listed under each table. When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. - + Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. +When -c option is given, then also columns will be listed under each table. +When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). +The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. - - + + CliCommandUse - - No current database selected. - + + No current database selected. + No current database selected. - - - Current database: %1 - + + + Current database: %1 + Current database: %1 - - No such database: %1 - + + No such database: %1 + No such database: %1 - - changes default working database - + + changes default working database + changes default working database - - Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. + + Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. What is current working database? When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). @@ -709,80 +741,136 @@ The default database can be selected in various ways: - by passing registered database name to the application startup parameters, - by restoring previously selected default database from saved configuration, - or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. - + Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. + +What is current working database? +When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). + +The default database can be selected in various ways: +- using %1 command, +- by passing database file name to the application startup parameters, +- by passing registered database name to the application startup parameters, +- by restoring previously selected default database from saved configuration, +- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. - - name - CLI command syntax - + + name + CLI command syntax + name - - + + QObject - - Insufficient number of arguments. - + + Insufficient number of arguments. + Insufficient number of arguments. - - Too many arguments. - + + Too many arguments. + Too many arguments. - - Invalid argument value: %1. + + Invalid argument value: %1. Expected one of: %2 - + Invalid argument value: %1. +Expected one of: %2 + + + + Unknown option: %1 + CLI command syntax + Unknown option: %1 + + + + Option %1 requires an argument. + CLI command syntax + Option %1 requires an argument. + + + + string + CLI command syntax + string + + + + Command line interface to SQLiteStudio, a SQLite manager. + Command line interface to SQLiteStudio, a SQLite manager. + + + + Enables debug messages on standard error output. + Enables debug messages on standard error output. + + + + Enables Lemon parser debug messages for SQL code assistant. + Enables Lemon parser debug messages for SQL code assistant. + + + + Lists plugins installed in the SQLiteStudio and quits. + Lists plugins installed in the SQLiteStudio and quits. + + + + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + + + + SQL file + SQL file - - Unknown option: %1 - CLI command syntax - + + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. - - Option %1 requires an argument. - CLI command syntax - + + codec + codec - - string - CLI command syntax - + + Lists available codecs to be used with -c option and quits. + Lists available codecs to be used with -c option and quits. - - Command line interface to SQLiteStudio, a SQLite manager. - + + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. - - Enables debug messages on standard error output. - + + file + file - - Enables Lemon parser debug messages for SQL code assistant. - + + Database file to open + Database file to open - - Lists plugins installed in the SQLiteStudio and quits. - + + Invalid codec: %1. Use -cl option to list available codecs. + Invalid codec: %1. Use -cl option to list available codecs. - - file - + + Database file argument is mandatory when executing SQL file. + Database file argument is mandatory when executing SQL file. - - Database file to open - + + Could not open specified database for executing SQL file. You may try using -d option to find out more details. + Could not open specified database for executing SQL file. You may try using -d option to find out more details. - + diff --git a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_ru.qm b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_ru.qm deleted file mode 100644 index 9943370..0000000 Binary files a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_ru.qm and /dev/null differ diff --git a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_ru.ts b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_ru.ts deleted file mode 100644 index 379b0e0..0000000 --- a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_ru.ts +++ /dev/null @@ -1,829 +0,0 @@ - - - - - CLI - - - Current database: %1 - Текущая база данных: %1 - - - - No current working database is set. - Текущая рабочая база данных не определена. - - - - Type %1 for help - Введите %1 для вызова справки - - - - Database passed in command line parameters (%1) was already on the list under name: %2 - База данных, переданная через аргументы командной строки (%1), уже находится в списке под именем %2 - - - - Could not add database %1 to list. - Невозможно добавить базу данных %1 в список. - - - - closed - закрыта - - - - CliCommand - - - Usage: %1%2 - Использование: %1%2 - - - - CliCommandAdd - - - Could not add database %1 to list. - Невозможно добавить базу данных %1 в список. - - - - Database added: %1 - Добавлена база данных: %1 - - - - adds new database to the list - добавляет новую базу данных в список - - - - Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. - Добавляет базу данных, расположенную по указанному <пути> под указанным <именем> в список баз данных. <имя> — это обычное символьное имя, которое в дальнейшем можно будет использовать. Выберите любое уникальное имя. Для получения текущего списка баз данных воспользуйтесь командой %1. - - - - name - CLI command syntax - имя - - - - path - CLI command syntax - путь - - - - CliCommandCd - - - Changed directory to: %1 - Изменён каталог на: %1 - - - - Could not change directory to: %1 - Невозможно сменить каталог на: %1 - - - - changes current working directory - изменение текущего рабочего каталога - - - - Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. - Аналог команды 'cd' из систем Unix и Windows. Требуется указание параметра <путь>, поэтому вызов %1 всегда приводит к изменению каталога. Для определения текущего рабочего каталога воспользуйтесь командой %2. Для вывода содержимого текущего рабочего каталога воспользуйтесь командой %3. - - - - path - CLI command syntax - путь - - - - CliCommandClose - - - Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. - Невозможно вызвать %1, если ни одна база данных не является текущей. Укажите текущую базу данных, используя команду %2 или укажите имя базы данных при вызове %3. - - - - - Connection to database %1 closed. - Соединение с базой данных %1 закрыто. - - - - No such database: %1. Use %2 to see list of known databases. - Не найдена база данных: %1. Для получения списка доступных баз данных воспользуйтесь командой %2. - - - - closes given (or current) database - закрывает указанную (или текущую) базу данных - - - - Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). - Закрывает соединение с базой данных. Если база данных уже закрыта, ничего не произойдёт. Если указано <имя>, оно должно соответствовать имени закрываемой базы данных (которое выводится командой %1). Если имя не указано, будет закрыта текущая рабочая база данных (смотрите справку по команде %2 для подробностей). - - - - name - CLI command syntax - имя - - - - CliCommandDbList - - - No current working database defined. - Не указана текущая рабочая база данных - - - - Databases: - Базы данных: - - - - - Name - CLI db name column - Имя - - - - - Open - CLI connection state column - Открыто - - - - - Closed - CLI connection state column - Закрыто - - - - - Connection - CLI connection state column - Соединение - - - - - Database file path - Путь к файлу базы данных - - - - prints list of registered databases - выводит список зарегистрированных баз данных - - - - Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. - Выводит список баз данных, зарегистрированных в SQLiteStudio. Каждая база данных может быть либо открыта, либо закрыта, %1 это также указывает. Текущая рабочая база данных (она же база данных по умолчанию) дополнительно отмечена символом '*' в начале имени. Смотрите справку по команде %2 для сведений о базе данных по умолчанию. - - - - CliCommandDesc - - - No working database is set. -Call %1 command to set working database. -Call %2 to see list of all databases. - Не указана рабочая база данных. -Укажите рабочую базу данных командой %1. -Для просмотра списка баз данных воспользуйтесь командой %2. - - - - Database is not open. - База данных не открыта. - - - - Cannot find table named: %1 - Не удалось найти таблицу с именем %1 - - - - shows details about the table - отображает сведения о таблице - - - - table - таблица - - - - Table: %1 - Таблица: %1 - - - - Column name - Имя столбца - - - - Data type - Тип данных - - - - Constraints - Ограничения - - - - Virtual table: %1 - Виртуальная таблица: %1 - - - - Construction arguments: - Параметры создания: - - - - No construction arguments were passed for this virtual table. - Не указаны параметры создания для этой виртуальной таблицы. - - - - CliCommandDir - - - lists directories and files in current working directory - выводит список каталогов и файлов в текущем рабочем каталоге - - - - This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. - -You can pass <pattern> with wildcard characters to filter output. - Аналог команды 'dir' в Windows и 'ls' в системах Unix. - -Вы можете указать <маску> c использованием подстановочных символов для фильтрации вывода. - - - - pattern - маска - - - - CliCommandExit - - - quits the application - выход из приложения - - - - Quits the application. Settings are stored in configuration file and will be restored on next startup. - Осуществляет выход из приложения. Настройки сохраняются в конфигурационном файле и восстановятся при следующем запуске. - - - - CliCommandHelp - - - shows this help message - вывод этого сообщения - - - - Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. -To see list of supported commands, type %2 without any arguments. - -When passing <command> name, you can skip special prefix character ('%3'). - -You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. - Используйте %1 для получения сведений о командах, поддерживаемых интерфейсом командной строки (CLI) SQLiteStudio. -Для просмотра списка доступных команд, введите %2 без указания аргументов. - -При указании имени <команды> можно не указывать префиксный символ ('%3'). - -Для получения справки по команде вы также можете выполнить команду с единственным ключом '--help'. Это альтернатива вводу: %1 <команда>. - - - - command - CLI command syntax - команда - - - - No such command: %1 - Не найдена команда: %1 - - - - Type '%1' for list of available commands. - Введите '%1' для получения списка доступных команд. - - - - Usage: %1%2 - Использование: %1%2 - - - - Aliases: %1 - Псевдонимы: %1 - - - - CliCommandHistory - - - Current history limit is set to: %1 - Текущий лимит истории: %1 - - - - prints history or erases it - выводит историю или очищает её - - - - When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. - -When the -c or --clear option is passed, then the history gets erased. -When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. -Use -ql or --querylimit option to see the current limit value. - При вызове без аргументов, данная команда выводит историю командной строки. Каждая запись истории отделена горизонтальной линией для облегчения чтения многострочных записей. - -При вызове с ключом -с или --clear история очищается. -При вызове с ключом -l или --limit устанавливается новый лимит на количество записей в истории. Необходим дополнительный аргумент, указывающий сколько записей необходимо хранить в истории. -Для просмотра текущего лимита записей вызовите команду с ключом -ql или --querylimit. - - - - number - количество - - - - Console history erased. - История командной строки очищена. - - - - Invalid number: %1 - Некорректное количество: %1 - - - - History limit set to %1 - Лимит истории установлен в количестве %1 - - - - CliCommandMode - - - Current results printing mode: %1 - Текущий режим вывода результатов: %1 - - - - Invalid results printing mode: %1 - Некорректный режим вывода результатов: %1 - - - - New results printing mode: %1 - Новый режим вывода результатов: %1 - - - - tells or changes the query results format - отображает или изменяет формат вывода результатов запроса - - - - When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: -- CLASSIC - columns are separated by a comma, not aligned, -- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, -- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), -- ROW - each column from the row is displayed in new line, so the full data is displayed. - -The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. - -The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. - -The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. -ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widhts, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. - -The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). - При вызове без аргументов отображает текущий формат вывода результатов запроса. Если указан <режим>, режим меняется на переданный. Поддерживаемые режимы: -- CLASSIC - столбцы разделяются запятой, не выравниваются, -- FIXED - ширина столбцов одинакова и зафиксирована, они всегда умещаются в ширину окна терминала, однако данные в столбцах могут быть обрезаны, -- COLUMNS - аналогичен FIXED, но более умный (не используйте при огромных размерах результатов, подробнее см. ниже), -- ROW - каждый столбец строки выводится с новой строчки, так что отображаются полные данные. - -Режим CLASSIC рекомендован если необходимо отобразить все данные, не затрачивая отдельные строчки на каждый столбец. Каждая строка будет содержать полные данные каждого столбца, что приведёт к отсутствию выравнивания столбцов в следующих строках. Также в режиме CLASSIC не учитывается ширина окна терминала (консоли), поэтому если столбцы шире окна, остаток строки будет выведен на новых строчках. - -Режим FIXED рекомендован если необходимо получить читабельный вывод, невзирая на длинные значения столбцов. Столбцы будут выровнены в аккуратную таблицу. Ширина столбцов будет рассчитана исходя из ширины окна консоли и числа столбцов. - -Режим COLUMNS аналогичен режиму FIXED с той разницей, что он умнее и сделает столбцы с короткими значениями поуже, оставляя больше места столбцам с длинными значениями. Первыми будут ужаты столбцы с самыми длинными заголовками (т.е. длинные заголовки будут обрезаны в первую очередь), затем будут ужиматься столбцы с самыми длинными значениями, пока таблица не впишется в окно терминала. -ВНИМАНИЕ! Для рассчёта ширины столбцов в режиме COLUMNS считывается сразу весь результат запроса, поэтому его опасно использовать при огромных размерах результатов. Учтите, что в этом режиме весь результат запроса загружается в оперативную память. - -Режим ROW рекомендован если необходимо отобразить все данные, при этом число выводимых строк невелико, так как в этом режиме каждый столбец выводится на отдельной строчке; например вывод единственной строки из 10 столбцов займёт 10 строчек, 10 таких строк займут 100 строчек вывода (+1 строчка на каждую строку для вывода разделителя строк). - - - - CliCommandNullValue - - - Current NULL representation string: %1 - Текущее представление значения NULL: %1 - - - - tells or changes the NULL representation string - отображает или устанавливает представление значения NULL - - - - If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. - При вызове без аргументов отображает текущее представление значения NULL (т.е. что выводится вместо значения NULL в результатах запроса). Если указан аргумент, он будет использован как строка для представления значения NULL. - - - - CliCommandOpen - - - Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. - Невозможно вызвать %1, если ни одна база данных не является текущей. Укажите текущую базу данных, используя команду %2 или укажите имя базы данных при вызове %3. - - - - Could not add database %1 to list. - Невозможно добавить базу данных %1 в список. - - - - File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. - Файл %1 не существует в %2. Невозможно открыть несуществующую базу данных командой %3. Для создания новой базы данных воспользуйтесь командой %4. - - - - Database %1 has been open and set as the current working database. - База данных %1 была открыта и установлена в качестве текущей рабочей базы данных. - - - - opens database connection - открывает соединение с базой данных - - - - Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. - Открывает соединение с базой данных. При вызове без аргументов, соединение открывается для текущей базы данных по умолчанию (см. справку по команде %1 для подробностей). Если же аргумент указан,он может быть <именем> зарегистрированной базы данных или <путём> к файлу базы данных. Во втором случае, база данных по указанному <пути> будет зарегистрирована в списке под сгенерированным именем, но только на время текущей сессии в приложении. После перезапуска приложения указанная база в списке восстановлена не будет. - - - - name - CLI command syntax - имя - - - - path - CLI command syntax - путь - - - - CliCommandPwd - - - prints the current working directory - отображение текущего рабочего каталога - - - - This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. - Аналог команды 'pwd' в системах Unix и команды 'cd' без аргументов в Windows. Команда отображает текущий рабочий каталог. Вы можете сменить текущий рабочий каталог командой %1, а также вывести содержимое текущего рабочего каталога командой %2. - - - - CliCommandRemove - - - No such database: %1 - Не найдена база данных: %1 - - - - Database removed: %1 - Удалена база данных: %1 - - - - New current database set: - Установлена новая текущая база данных: - - - - removes database from the list - удаление базы данных из списка - - - - Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. - Удаляет базу данных с указанным <именем> из списка зарегистрированных баз данных. Если указанной базы данных нет в списке (см. команду %1), отображается сообщение об ошибке и больше ничего не происходит. - - - - name - CLI command syntax - имя - - - - CliCommandSql - - - No working database is set. -Call %1 command to set working database. -Call %2 to see list of all databases. - Не указана рабочая база данных. Укажите рабочую базу данных командой %1. Для просмотра списка баз данных воспользуйтесь командой %2. - - - - Database is not open. - База данных не открыта. - - - - executes SQL query - выполнение запроса SQL - - - - This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. - Эта команда выполняется каждый раз, когда вы вводите запрос SQL в командную строку. Она выполняет запрос к текущей рабочей базе данных (см. справку к команде %1 для подробностей). Не нужно явно вызвать эту команду. Просто вводите запрос SQL в командную строку без указания команды. - - - - sql - CLI command syntax - sql - - - - - Too many columns to display in %1 mode. - Слишком много столбцов для отображения в режиме %1. - - - - Row %1 - Строка %1 - - - - Query execution error: %1 - Ошибка выполнения запроса: %1 - - - - CliCommandTables - - - No such database: %1. Use %2 to see list of known databases. - Не найдена база данных: %1. Для получения списка доступных баз данных воспользуйтесь командой %2. - - - - Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. - Невозможно вызвать %1, если ни одна база данных не является текущей. Укажите текущую базу данных, используя команду %2 или укажите имя базы данных при вызове %3. - - - - Database %1 is closed. - База данных %1 закрыта. - - - - - Database - База данных - - - - Table - Таблица - - - - prints list of tables in the database - отображает список таблиц в базе данных - - - - Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. -When the -s option is given, then system tables are also listed. - Отображает список таблиц в указанной <базе данных> или в текущей рабочей базе данных. Учтите, что <база данных> должна быть именем зарегистрированной базы данных (см. %1). В список тажк выводятся все таблицы из баз данных, присоединённых к запрашиваемой базе данных. -При указании ключа -s также выводятся системные таблицы. - - - - database - CLI command syntax - база данных - - - - CliCommandTree - - - No current working database is selected. Use %1 to define one and then run %2. - Не выбрана рабочая база данных. Укажите рабочую базу данных командой %1, затем выполните команду %2. - - - - Tables - Таблицы - - - - Views - Представления - - - - Columns - Столбцы - - - - Indexes - Индексы - - - - - Triggers - Триггеры - - - - prints all objects in the database as a tree - отображение всех объектов базы данных в виде дерева - - - - Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. -When -c option is given, then also columns will be listed under each table. -When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). -The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. - Отображает все объекты (таблицы, индексы, триггеры и представления) базы данных в виде дерева. Структура дерева аналогична тому, которое отображается в GUI клиенте SQLiteStudio. -При вызове с ключом -c также будут выведены столбцы под каждой таблицей. -При вызове с ключом -s также будут выведены системные объекты (таблицы sqlite_*, индексы автоинкремента и т.д.). -При вызове с необязательным аргументом 'база данных' будут выведены объекты только указнной базы данных. Под 'базой данных' подразумевается не зарегистрированное имя базы данных, а внутреннее имя базы данных SQLite, например 'main', 'temp' или имя присоединённной базы данных. Для отображения дерева другой зарегистрированной базы данных, сперва смените рабочую базу данных командой %1, а затем воспользуйтесь командой %2. - - - - CliCommandUse - - - No current database selected. - Не выбрана текущая база данных. - - - - - Current database: %1 - Текущая база данных: %1 - - - - No such database: %1 - Не найдена база данных: %1 - - - - changes default working database - изменение рабочей базы данных по умолчанию - - - - Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. - -What is current working database? -When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). - -The default database can be selected in various ways: -- using %1 command, -- by passing database file name to the application startup parameters, -- by passing registered database name to the application startup parameters, -- by restoring previously selected default database from saved configuration, -- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. - Изменяет текущую рабочую базы данных на базу данных с указанным <именем>. Если <имя> базы данных не зарегистрировано в приложении, отображается сообщение об ошибке и изменения не производсятся. - -Что такое текущая рабочая база данных? -Когда вы вводите запрос SQL для выполнения, он выполняется к базе данных по умолчанию, также известной как текущей рабочей базе данных. Большинство относящихся к базам данных команд могут выполняться к базе данных по умолчанию, если другая база данных не указана в качестве аргумента. Текущая база данных всегда отображается в приглашении командной строки. База данных по умолчанию всегда определена (если список баз данных не пуст). - -База данных по умолчанию может быть задана разными способами: -- используя команду %1, -- указав путь к файлу базы данных в аргументах при запуске приложения, -- указав имя зарегистрированной базы данных в аргументах при запуске приложения, -- восстановив предыдущую выбранную базу данных из сохранённой конфигурации, -- или если база данных по умолчанию не была выбрана любым их вышеуказанных способов, базой данных по умолчанию становится первая зарегистрированная база данных в списке. - - - - name - CLI command syntax - имя - - - - QObject - - - Insufficient number of arguments. - Недостаточное количество аргументов. - - - - Too many arguments. - Слишком много аргументов. - - - - Invalid argument value: %1. -Expected one of: %2 - Некорректное значение аргумента: %1. -Допустимые значения: %2 - - - - Unknown option: %1 - CLI command syntax - Неизвестный ключ: %1 - - - - Option %1 requires an argument. - CLI command syntax - Ключ %1 требует указания аргумента. - - - - string - CLI command syntax - строка - - - - Command line interface to SQLiteStudio, a SQLite manager. - Интерфейс командной строки для SQLiteStudio, менеджера баз данных SQLite. - - - - Enables debug messages on standard error output. - Включает вывод отладочных сообщений в стандартный поток ошибок. - - - - Enables Lemon parser debug messages for SQL code assistant. - Включает вывод отладочных сообщений анализатора Lemon для автодополнения SQL кода. - - - - Lists plugins installed in the SQLiteStudio and quits. - Выводит список установленных в SQLiteStudio модулей и осуществляет выход. - - - - file - файл - - - - Database file to open - Файл базы данных для открытия - - - diff --git a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_ru_RU.ts b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_ru_RU.ts new file mode 100644 index 0000000..0f84f9a --- /dev/null +++ b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_ru_RU.ts @@ -0,0 +1,874 @@ + + + + + CLI + + + Current database: %1 + Текущая база данных: %1 + + + + No current working database is set. + Текущая рабочая база данных не определена. + + + + Type %1 for help + Введите %1 для вызова справки + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + База данных, переданная через аргументы командной строки (%1), уже находится в списке под именем %2 + + + + Could not add database %1 to list. + Невозможно добавить базу данных %1 в список. + + + + closed + закрыта + + + + CliCommand + + + Usage: %1%2 + Использование: %1%2 + + + + CliCommandAdd + + + Could not add database %1 to list. + Невозможно добавить базу данных %1 в список. + + + + Database added: %1 + Добавлена база данных: %1 + + + + adds new database to the list + добавляет новую базу данных в список + + + + Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. + Добавляет базу данных, расположенную по указанному <пути> под указанным <именем> в список баз данных. <имя> — это обычное символьное имя, которое в дальнейшем можно будет использовать. Выберите любое уникальное имя. Для получения текущего списка баз данных воспользуйтесь командой %1. + + + + name + CLI command syntax + имя + + + + path + CLI command syntax + путь + + + + CliCommandCd + + + Changed directory to: %1 + Изменён каталог на: %1 + + + + Could not change directory to: %1 + Невозможно сменить каталог на: %1 + + + + changes current working directory + изменение текущего рабочего каталога + + + + Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. + Аналог команды 'cd' из систем Unix и Windows. Требуется указание параметра <путь>, поэтому вызов %1 всегда приводит к изменению каталога. Для определения текущего рабочего каталога воспользуйтесь командой %2. Для вывода содержимого текущего рабочего каталога воспользуйтесь командой %3. + + + + path + CLI command syntax + путь + + + + CliCommandClose + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Невозможно вызвать %1, если ни одна база данных не является текущей. Укажите текущую базу данных, используя команду %2 или укажите имя базы данных при вызове %3. + + + + + Connection to database %1 closed. + Соединение с базой данных %1 закрыто. + + + + No such database: %1. Use %2 to see list of known databases. + Не найдена база данных: %1. Для получения списка доступных баз данных воспользуйтесь командой %2. + + + + closes given (or current) database + закрывает указанную (или текущую) базу данных + + + + Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). + Закрывает соединение с базой данных. Если база данных уже закрыта, ничего не произойдёт. Если указано <имя>, оно должно соответствовать имени закрываемой базы данных (которое выводится командой %1). Если имя не указано, будет закрыта текущая рабочая база данных (смотрите справку по команде %2 для подробностей). + + + + name + CLI command syntax + имя + + + + CliCommandDbList + + + No current working database defined. + Не указана текущая рабочая база данных. + + + + Databases: + Базы данных: + + + + + Name + CLI db name column + Имя + + + + + Open + CLI connection state column + Открыто + + + + + Closed + CLI connection state column + Закрыто + + + + + Connection + CLI connection state column + Соединение + + + + + Database file path + Путь к файлу базы данных + + + + prints list of registered databases + выводит список зарегистрированных баз данных + + + + Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. + Выводит список баз данных, зарегистрированных в SQLiteStudio. Каждая база данных может быть либо открыта, либо закрыта, %1 это также указывает. Текущая рабочая база данных (она же база данных по умолчанию) дополнительно отмечена символом '*' в начале имени. Смотрите справку по команде %2 для сведений о базе данных по умолчанию. + + + + CliCommandDesc + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + Не указана рабочая база данных. +Укажите рабочую базу данных командой %1. +Для просмотра списка баз данных воспользуйтесь командой %2. + + + + Database is not open. + База данных не открыта. + + + + Cannot find table named: %1 + Не удалось найти таблицу с именем %1 + + + + shows details about the table + отображает сведения о таблице + + + + table + таблица + + + + Table: %1 + Таблица: %1 + + + + Column name + Имя столбца + + + + Data type + Тип данных + + + + Constraints + Ограничения + + + + Virtual table: %1 + Виртуальная таблица: %1 + + + + Construction arguments: + Параметры создания: + + + + No construction arguments were passed for this virtual table. + Не указаны параметры создания для этой виртуальной таблицы. + + + + CliCommandDir + + + lists directories and files in current working directory + выводит список каталогов и файлов в текущем рабочем каталоге + + + + This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. + +You can pass <pattern> with wildcard characters to filter output. + Аналог команды 'dir' в Windows и 'ls' в системах Unix. + +Вы можете указать <маску> c использованием подстановочных символов для фильтрации вывода. + + + + pattern + маска + + + + CliCommandExit + + + quits the application + выход из приложения + + + + Quits the application. Settings are stored in configuration file and will be restored on next startup. + Осуществляет выход из приложения. Настройки сохраняются в конфигурационном файле и восстановятся при следующем запуске. + + + + CliCommandHelp + + + shows this help message + вывод этого сообщения + + + + Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. +To see list of supported commands, type %2 without any arguments. + +When passing <command> name, you can skip special prefix character ('%3'). + +You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. + Используйте %1 для получения сведений о командах, поддерживаемых интерфейсом командной строки (CLI) SQLiteStudio. +Для просмотра списка доступных команд, введите %2 без указания аргументов. + +При указании имени <команды> можно не указывать префиксный символ ('%3'). + +Для получения справки по команде вы также можете выполнить команду с единственным ключом '--help'. Это альтернатива вводу: %1 <команда>. + + + + command + CLI command syntax + команда + + + + No such command: %1 + Не найдена команда: %1 + + + + Type '%1' for list of available commands. + Введите '%1' для получения списка доступных команд. + + + + Usage: %1%2 + Использование: %1%2 + + + + Aliases: %1 + Псевдонимы: %1 + + + + CliCommandHistory + + + Current history limit is set to: %1 + Текущий лимит истории: %1 + + + + prints history or erases it + выводит историю или очищает её + + + + When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. + +When the -c or --clear option is passed, then the history gets erased. +When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. +Use -ql or --querylimit option to see the current limit value. + При вызове без аргументов, данная команда выводит историю командной строки. Каждая запись истории отделена горизонтальной линией для облегчения чтения многострочных записей. + +При вызове с ключом -с или --clear история очищается. +При вызове с ключом -l или --limit устанавливается новый лимит на количество записей в истории. Необходим дополнительный аргумент, указывающий сколько записей необходимо хранить в истории. +Для просмотра текущего лимита записей вызовите команду с ключом -ql или --querylimit. + + + + number + количество + + + + Console history erased. + История командной строки очищена. + + + + Invalid number: %1 + Некорректное количество: %1 + + + + History limit set to %1 + Лимит истории установлен в количестве %1 + + + + CliCommandMode + + + Current results printing mode: %1 + Текущий режим вывода результатов: %1 + + + + Invalid results printing mode: %1 + Некорректный режим вывода результатов: %1 + + + + New results printing mode: %1 + Новый режим вывода результатов: %1 + + + + tells or changes the query results format + отображает или изменяет формат вывода результатов запроса + + + + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: +- CLASSIC - columns are separated by a comma, not aligned, +- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, +- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), +- ROW - each column from the row is displayed in new line, so the full data is displayed. + +The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. + +The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. + +The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. + +The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). + При вызове без аргумента, отображает текущий формат вывода для результатов запроса. При указании <mode> режим сменяется на выбранный. Поддерживаются следующие режимы: +- CLASSIC - столбцы разделяются запятой, без выравнивания, +- FIXED - у столбцов равная и фиксированная ширина, они всегда умещаются в окно терминала по ширине, но часть данных в столбцах может быть обрезана, +- COLUMNS - как FIXED, но умнее (не используйте при огромных размерах результата запроса, см. подробности ниже), +- ROW - каждый столбец каждой строки данных отображается на отдельной строке терминала, данные отображаются полностью. + +Режим CLASSIC рекомендован если вы хотите увидеть все данные, но не хотите тратить новую строку в терминале для каждого столбца. Каждая строка будет отображать все данные из всех столбцов, однако столбцы не будут выровнены между собой по строкам. Режим CLASSIC также не учитывает ширину окна терминала (консоли), поэтому если значения в столбцах шире окна, выводимая строка данных будет продолжена в следующих строках окна терминала. + +Режим FIXED рекомендован если вам нужен читабельный вывод и вас не беспокоят длинные значения в данных. Столбцы будут выровнены, образуя на выходе аккуратную таблицу. Ширина столбцов рассчитывается исходя из ширины окна консоли и числа столбцов. + +Режим COLUMNS похож на режим FIXED с тем исключением, что он старается поступать по-умному и делать столбцы с короткими значениями поуже, чтобы столбцам с длинными значениями досталось больше места. Сначала урезаются столбцы с самыми длинными заголовками (так что имена столбцов будут урезаны в первую очередь), затем урезаются столбцы с самыми длинными значениями, пока все столбцы не уместятся в окне терминала. +ВНИМАНИЕ! Режим COLUMNS сразу считывает все результаты запроса чтобы рассчитать ширину столбцов, поэтому опасно использовать этот режим при работе с результатами огромных размеров. Учтите, что этот режим загружает весь результат запроса в память. + +Режим ROW рекомендован если вам нужно видеть все данные, и вы не ожидаете большого числа строк данных в результате, поскольку в этом режиме каждый столбец выводится на отдельной строке терминала, поэтому вывод строки данных с 10 столбцами займёт 10 строк в терминале, и если таких строк с данными будет 10, то получится 100 строк вывода (+1 строка в терминале на каждую строку данных, для разделения). + + + + CliCommandNullValue + + + Current NULL representation string: %1 + Текущее представление значения NULL: %1 + + + + tells or changes the NULL representation string + отображает или устанавливает представление значения NULL + + + + If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. + При вызове без аргументов отображает текущее представление значения NULL (т.е. что выводится вместо значения NULL в результатах запроса). Если указан аргумент, он будет использован как строка для представления значения NULL. + + + + CliCommandOpen + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Невозможно вызвать %1, если ни одна база данных не является текущей. Укажите текущую базу данных, используя команду %2 или укажите имя базы данных при вызове %3. + + + + Could not add database %1 to list. + Невозможно добавить базу данных %1 в список. + + + + File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. + Файл %1 не существует в %2. Невозможно открыть несуществующую базу данных командой %3. Для создания новой базы данных воспользуйтесь командой %4. + + + + Database %1 has been open and set as the current working database. + База данных %1 была открыта и установлена в качестве текущей рабочей базы данных. + + + + opens database connection + открывает соединение с базой данных + + + + Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. + Открывает соединение с базой данных. При вызове без аргументов, соединение открывается для текущей базы данных по умолчанию (см. справку по команде %1 для подробностей). Если же аргумент указан,он может быть <именем> зарегистрированной базы данных или <путём> к файлу базы данных. Во втором случае, база данных по указанному <пути> будет зарегистрирована в списке под сгенерированным именем, но только на время текущей сессии в приложении. После перезапуска приложения указанная база в списке восстановлена не будет. + + + + name + CLI command syntax + имя + + + + path + CLI command syntax + путь + + + + CliCommandPwd + + + prints the current working directory + отображение текущего рабочего каталога + + + + This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. + Аналог команды 'pwd' в системах Unix и команды 'cd' без аргументов в Windows. Команда отображает текущий рабочий каталог. Вы можете сменить текущий рабочий каталог командой %1, а также вывести содержимое текущего рабочего каталога командой %2. + + + + CliCommandRemove + + + No such database: %1 + Не найдена база данных: %1 + + + + Database removed: %1 + Удалена база данных: %1 + + + + New current database set: + Установлена новая текущая база данных: + + + + removes database from the list + удаление базы данных из списка + + + + Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. + Удаляет базу данных с указанным <именем> из списка зарегистрированных баз данных. Если указанной базы данных нет в списке (см. команду %1), отображается сообщение об ошибке и больше ничего не происходит. + + + + name + CLI command syntax + имя + + + + CliCommandSql + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + Не указана рабочая база данных. Укажите рабочую базу данных командой %1. Для просмотра списка баз данных воспользуйтесь командой %2. + + + + Database is not open. + База данных не открыта. + + + + executes SQL query + выполнение запроса SQL + + + + This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. + Эта команда выполняется каждый раз, когда вы вводите запрос SQL в командную строку. Она выполняет запрос к текущей рабочей базе данных (см. справку к команде %1 для подробностей). Не нужно явно вызвать эту команду. Просто вводите запрос SQL в командную строку без указания команды. + + + + sql + CLI command syntax + sql + + + + + Too many columns to display in %1 mode. + Слишком много столбцов для отображения в режиме %1. + + + + Row %1 + Строка %1 + + + + Query execution error: %1 + Ошибка выполнения запроса: %1 + + + + CliCommandTables + + + No such database: %1. Use %2 to see list of known databases. + Не найдена база данных: %1. Для получения списка доступных баз данных воспользуйтесь командой %2. + + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Невозможно вызвать %1, если ни одна база данных не является текущей. Укажите текущую базу данных, используя команду %2 или укажите имя базы данных при вызове %3. + + + + Database %1 is closed. + База данных %1 закрыта. + + + + + Database + База данных + + + + Table + Таблица + + + + prints list of tables in the database + отображает список таблиц в базе данных + + + + Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. +When the -s option is given, then system tables are also listed. + Отображает список таблиц в указанной <базе данных> или в текущей рабочей базе данных. Учтите, что <база данных> должна быть именем зарегистрированной базы данных (см. %1). В список тажк выводятся все таблицы из баз данных, присоединённых к запрашиваемой базе данных. +При указании ключа -s также выводятся системные таблицы. + + + + database + CLI command syntax + база данных + + + + CliCommandTree + + + No current working database is selected. Use %1 to define one and then run %2. + Не выбрана рабочая база данных. Укажите рабочую базу данных командой %1, затем выполните команду %2. + + + + Tables + Таблицы + + + + Views + Представления + + + + Columns + Столбцы + + + + Indexes + Индексы + + + + + Triggers + Триггеры + + + + prints all objects in the database as a tree + отображение всех объектов базы данных в виде дерева + + + + Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. +When -c option is given, then also columns will be listed under each table. +When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). +The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. + Отображает все объекты (таблицы, индексы, триггеры и представления) базы данных в виде дерева. Структура дерева аналогична тому, которое отображается в GUI клиенте SQLiteStudio. +При вызове с ключом -c также будут выведены столбцы под каждой таблицей. +При вызове с ключом -s также будут выведены системные объекты (таблицы sqlite_*, индексы автоинкремента и т.д.). +При вызове с необязательным аргументом 'база данных' будут выведены объекты только указнной базы данных. Под 'базой данных' подразумевается не зарегистрированное имя базы данных, а внутреннее имя базы данных SQLite, например 'main', 'temp' или имя присоединённной базы данных. Для отображения дерева другой зарегистрированной базы данных, сперва смените рабочую базу данных командой %1, а затем воспользуйтесь командой %2. + + + + CliCommandUse + + + No current database selected. + Не выбрана текущая база данных. + + + + + Current database: %1 + Текущая база данных: %1 + + + + No such database: %1 + Не найдена база данных: %1 + + + + changes default working database + изменение рабочей базы данных по умолчанию + + + + Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. + +What is current working database? +When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). + +The default database can be selected in various ways: +- using %1 command, +- by passing database file name to the application startup parameters, +- by passing registered database name to the application startup parameters, +- by restoring previously selected default database from saved configuration, +- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. + Изменяет текущую рабочую базы данных на базу данных с указанным <именем>. Если <имя> базы данных не зарегистрировано в приложении, отображается сообщение об ошибке и изменения не производсятся. + +Что такое текущая рабочая база данных? +Когда вы вводите запрос SQL для выполнения, он выполняется к базе данных по умолчанию, также известной как текущей рабочей базе данных. Большинство относящихся к базам данных команд могут выполняться к базе данных по умолчанию, если другая база данных не указана в качестве аргумента. Текущая база данных всегда отображается в приглашении командной строки. База данных по умолчанию всегда определена (если список баз данных не пуст). + +База данных по умолчанию может быть задана разными способами: +- используя команду %1, +- указав путь к файлу базы данных в аргументах при запуске приложения, +- указав имя зарегистрированной базы данных в аргументах при запуске приложения, +- восстановив предыдущую выбранную базу данных из сохранённой конфигурации, +- или если база данных по умолчанию не была выбрана любым их вышеуказанных способов, базой данных по умолчанию становится первая зарегистрированная база данных в списке. + + + + name + CLI command syntax + имя + + + + QObject + + + Insufficient number of arguments. + Недостаточное количество аргументов. + + + + Too many arguments. + Слишком много аргументов. + + + + Invalid argument value: %1. +Expected one of: %2 + Некорректное значение аргумента: %1. +Допустимые значения: %2 + + + + Unknown option: %1 + CLI command syntax + Неизвестный ключ: %1 + + + + Option %1 requires an argument. + CLI command syntax + Ключ %1 требует указания аргумента. + + + + string + CLI command syntax + строка + + + + Command line interface to SQLiteStudio, a SQLite manager. + Интерфейс командной строки для SQLiteStudio, менеджера баз данных SQLite. + + + + Enables debug messages on standard error output. + Включает вывод отладочных сообщений в стандартный поток ошибок. + + + + Enables Lemon parser debug messages for SQL code assistant. + Включает вывод отладочных сообщений анализатора Lemon для автодополнения SQL кода. + + + + Lists plugins installed in the SQLiteStudio and quits. + Выводит список установленных в SQLiteStudio модулей и осуществляет выход. + + + + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + Выполняет предоставленный SQL-файл (используя все многочисленные функции исполнителя запросов SQLiteStudio) на указанном файле базы данных и выходит. При использовании этой опции обязательно указывать параметр database. + + + + SQL file + Файл SQL + + + + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. + Кодировка текста, используемая при чтении файла SQL (опция -e). Используйте -cl для получения списка доступных кодеков. По умолчанию используется %1. + + + + codec + кодек + + + + Lists available codecs to be used with -c option and quits. + Выводит список доступных кодеков для использования с опцией -c и выходит. + + + + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. + При использовании вместе с параметром -e выполнение не останавливается при возникновении ошибки, а продолжается до конца, игнорируя все ошибки. + + + + file + файл + + + + Database file to open + Файл базы данных для открытия + + + + Invalid codec: %1. Use -cl option to list available codecs. + Неверный кодек: %1. Используйте параметр -cl для получения списка доступных кодеков. + + + + Database file argument is mandatory when executing SQL file. + Аргумент с файлом базы данных является обязательным при выполнении SQL-файла. + + + + Could not open specified database for executing SQL file. You may try using -d option to find out more details. + Не удалось открыть указанную базу данных для выполнения файла SQL. Вы можете воспользоваться опцией -d, чтобы узнать больше деталей. + + + diff --git a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_sk.qm b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_sk.qm deleted file mode 100644 index 1776294..0000000 Binary files a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_sk.qm and /dev/null differ diff --git a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_sk.ts b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_sk.ts deleted file mode 100644 index e7e2933..0000000 --- a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_sk.ts +++ /dev/null @@ -1,788 +0,0 @@ - - - - - CLI - - - Current database: %1 - - - - - No current working database is set. - - - - - Type %1 for help - - - - - Database passed in command line parameters (%1) was already on the list under name: %2 - - - - - Could not add database %1 to list. - - - - - closed - - - - - CliCommand - - - Usage: %1%2 - - - - - CliCommandAdd - - - Could not add database %1 to list. - - - - - Database added: %1 - - - - - adds new database to the list - - - - - Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. - - - - - name - CLI command syntax - - - - - path - CLI command syntax - - - - - CliCommandCd - - - Changed directory to: %1 - - - - - Could not change directory to: %1 - - - - - changes current working directory - - - - - Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. - - - - - path - CLI command syntax - - - - - CliCommandClose - - - Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. - - - - - - Connection to database %1 closed. - - - - - No such database: %1. Use %2 to see list of known databases. - - - - - closes given (or current) database - - - - - Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). - - - - - name - CLI command syntax - - - - - CliCommandDbList - - - No current working database defined. - - - - - Databases: - - - - - - Name - CLI db name column - - - - - - Open - CLI connection state column - - - - - - Closed - CLI connection state column - - - - - - Connection - CLI connection state column - - - - - - Database file path - - - - - prints list of registered databases - - - - - Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. - - - - - CliCommandDesc - - - No working database is set. -Call %1 command to set working database. -Call %2 to see list of all databases. - - - - - Database is not open. - - - - - Cannot find table named: %1 - - - - - shows details about the table - - - - - table - - - - - Table: %1 - - - - - Column name - - - - - Data type - - - - - Constraints - - - - - Virtual table: %1 - - - - - Construction arguments: - - - - - No construction arguments were passed for this virtual table. - - - - - CliCommandDir - - - lists directories and files in current working directory - - - - - This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. - -You can pass <pattern> with wildcard characters to filter output. - - - - - pattern - - - - - CliCommandExit - - - quits the application - - - - - Quits the application. Settings are stored in configuration file and will be restored on next startup. - - - - - CliCommandHelp - - - shows this help message - - - - - Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. -To see list of supported commands, type %2 without any arguments. - -When passing <command> name, you can skip special prefix character ('%3'). - -You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. - - - - - command - CLI command syntax - - - - - No such command: %1 - - - - - Type '%1' for list of available commands. - - - - - Usage: %1%2 - - - - - Aliases: %1 - - - - - CliCommandHistory - - - Current history limit is set to: %1 - - - - - prints history or erases it - - - - - When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. - -When the -c or --clear option is passed, then the history gets erased. -When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. -Use -ql or --querylimit option to see the current limit value. - - - - - number - - - - - Console history erased. - - - - - Invalid number: %1 - - - - - History limit set to %1 - - - - - CliCommandMode - - - Current results printing mode: %1 - - - - - Invalid results printing mode: %1 - - - - - New results printing mode: %1 - - - - - tells or changes the query results format - - - - - When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: -- CLASSIC - columns are separated by a comma, not aligned, -- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, -- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), -- ROW - each column from the row is displayed in new line, so the full data is displayed. - -The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. - -The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. - -The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. -ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widhts, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. - -The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). - - - - - CliCommandNullValue - - - Current NULL representation string: %1 - - - - - tells or changes the NULL representation string - - - - - If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. - - - - - CliCommandOpen - - - Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. - - - - - Could not add database %1 to list. - - - - - File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. - - - - - Database %1 has been open and set as the current working database. - - - - - opens database connection - - - - - Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. - - - - - name - CLI command syntax - - - - - path - CLI command syntax - - - - - CliCommandPwd - - - prints the current working directory - - - - - This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. - - - - - CliCommandRemove - - - No such database: %1 - - - - - Database removed: %1 - - - - - New current database set: - - - - - removes database from the list - - - - - Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. - - - - - name - CLI command syntax - - - - - CliCommandSql - - - No working database is set. -Call %1 command to set working database. -Call %2 to see list of all databases. - - - - - Database is not open. - - - - - executes SQL query - - - - - This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. - - - - - sql - CLI command syntax - - - - - - Too many columns to display in %1 mode. - - - - - Row %1 - - - - - Query execution error: %1 - - - - - CliCommandTables - - - No such database: %1. Use %2 to see list of known databases. - - - - - Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. - - - - - Database %1 is closed. - - - - - - Database - - - - - Table - - - - - prints list of tables in the database - - - - - Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. -When the -s option is given, then system tables are also listed. - - - - - database - CLI command syntax - - - - - CliCommandTree - - - No current working database is selected. Use %1 to define one and then run %2. - - - - - Tables - - - - - Views - - - - - Columns - - - - - Indexes - - - - - - Triggers - - - - - prints all objects in the database as a tree - - - - - Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. -When -c option is given, then also columns will be listed under each table. -When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). -The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. - - - - - CliCommandUse - - - No current database selected. - - - - - - Current database: %1 - - - - - No such database: %1 - - - - - changes default working database - - - - - Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. - -What is current working database? -When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). - -The default database can be selected in various ways: -- using %1 command, -- by passing database file name to the application startup parameters, -- by passing registered database name to the application startup parameters, -- by restoring previously selected default database from saved configuration, -- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. - - - - - name - CLI command syntax - - - - - QObject - - - Insufficient number of arguments. - - - - - Too many arguments. - - - - - Invalid argument value: %1. -Expected one of: %2 - - - - - Unknown option: %1 - CLI command syntax - - - - - Option %1 requires an argument. - CLI command syntax - - - - - string - CLI command syntax - - - - - Command line interface to SQLiteStudio, a SQLite manager. - - - - - Enables debug messages on standard error output. - - - - - Enables Lemon parser debug messages for SQL code assistant. - - - - - Lists plugins installed in the SQLiteStudio and quits. - - - - - file - - - - - Database file to open - - - - diff --git a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_sk_SK.ts b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_sk_SK.ts new file mode 100644 index 0000000..264090c --- /dev/null +++ b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_sk_SK.ts @@ -0,0 +1,876 @@ + + + + + CLI + + + Current database: %1 + Current database: %1 + + + + No current working database is set. + No current working database is set. + + + + Type %1 for help + Type %1 for help + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + Database passed in command line parameters (%1) was already on the list under name: %2 + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + closed + closed + + + + CliCommand + + + Usage: %1%2 + Usage: %1%2 + + + + CliCommandAdd + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + Database added: %1 + Database added: %1 + + + + adds new database to the list + adds new database to the list + + + + Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. + Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. + + + + name + CLI command syntax + name + + + + path + CLI command syntax + path + + + + CliCommandCd + + + Changed directory to: %1 + Changed directory to: %1 + + + + Could not change directory to: %1 + Could not change directory to: %1 + + + + changes current working directory + changes current working directory + + + + Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. + Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. + + + + path + CLI command syntax + path + + + + CliCommandClose + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + + Connection to database %1 closed. + Connection to database %1 closed. + + + + No such database: %1. Use %2 to see list of known databases. + No such database: %1. Use %2 to see list of known databases. + + + + closes given (or current) database + closes given (or current) database + + + + Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). + Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). + + + + name + CLI command syntax + name + + + + CliCommandDbList + + + No current working database defined. + No current working database defined. + + + + Databases: + Databases: + + + + + Name + CLI db name column + Name + + + + + Open + CLI connection state column + Open + + + + + Closed + CLI connection state column + Closed + + + + + Connection + CLI connection state column + Connection + + + + + Database file path + Database file path + + + + prints list of registered databases + prints list of registered databases + + + + Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. + Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. + + + + CliCommandDesc + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + + + + Database is not open. + Database is not open. + + + + Cannot find table named: %1 + Cannot find table named: %1 + + + + shows details about the table + shows details about the table + + + + table + table + + + + Table: %1 + Table: %1 + + + + Column name + Column name + + + + Data type + Data type + + + + Constraints + Constraints + + + + Virtual table: %1 + Virtual table: %1 + + + + Construction arguments: + Construction arguments: + + + + No construction arguments were passed for this virtual table. + No construction arguments were passed for this virtual table. + + + + CliCommandDir + + + lists directories and files in current working directory + lists directories and files in current working directory + + + + This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. + +You can pass <pattern> with wildcard characters to filter output. + This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. + +You can pass <pattern> with wildcard characters to filter output. + + + + pattern + pattern + + + + CliCommandExit + + + quits the application + quits the application + + + + Quits the application. Settings are stored in configuration file and will be restored on next startup. + Quits the application. Settings are stored in configuration file and will be restored on next startup. + + + + CliCommandHelp + + + shows this help message + shows this help message + + + + Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. +To see list of supported commands, type %2 without any arguments. + +When passing <command> name, you can skip special prefix character ('%3'). + +You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. + Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. +To see list of supported commands, type %2 without any arguments. + +When passing <command> name, you can skip special prefix character ('%3'). + +You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. + + + + command + CLI command syntax + command + + + + No such command: %1 + No such command: %1 + + + + Type '%1' for list of available commands. + Type '%1' for list of available commands. + + + + Usage: %1%2 + Usage: %1%2 + + + + Aliases: %1 + Aliases: %1 + + + + CliCommandHistory + + + Current history limit is set to: %1 + Current history limit is set to: %1 + + + + prints history or erases it + prints history or erases it + + + + When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. + +When the -c or --clear option is passed, then the history gets erased. +When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. +Use -ql or --querylimit option to see the current limit value. + When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. + +When the -c or --clear option is passed, then the history gets erased. +When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. +Use -ql or --querylimit option to see the current limit value. + + + + number + number + + + + Console history erased. + Console history erased. + + + + Invalid number: %1 + Invalid number: %1 + + + + History limit set to %1 + History limit set to %1 + + + + CliCommandMode + + + Current results printing mode: %1 + Current results printing mode: %1 + + + + Invalid results printing mode: %1 + Invalid results printing mode: %1 + + + + New results printing mode: %1 + New results printing mode: %1 + + + + tells or changes the query results format + tells or changes the query results format + + + + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: +- CLASSIC - columns are separated by a comma, not aligned, +- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, +- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), +- ROW - each column from the row is displayed in new line, so the full data is displayed. + +The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. + +The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. + +The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. + +The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: +- CLASSIC - columns are separated by a comma, not aligned, +- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, +- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), +- ROW - each column from the row is displayed in new line, so the full data is displayed. + +The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. + +The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. + +The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. + +The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). + + + + CliCommandNullValue + + + Current NULL representation string: %1 + Current NULL representation string: %1 + + + + tells or changes the NULL representation string + tells or changes the NULL representation string + + + + If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. + If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. + + + + CliCommandOpen + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. + File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. + + + + Database %1 has been open and set as the current working database. + Database %1 has been open and set as the current working database. + + + + opens database connection + opens database connection + + + + Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. + Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. + + + + name + CLI command syntax + name + + + + path + CLI command syntax + path + + + + CliCommandPwd + + + prints the current working directory + prints the current working directory + + + + This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. + This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. + + + + CliCommandRemove + + + No such database: %1 + No such database: %1 + + + + Database removed: %1 + Database removed: %1 + + + + New current database set: + New current database set: + + + + removes database from the list + removes database from the list + + + + Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. + Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. + + + + name + CLI command syntax + name + + + + CliCommandSql + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + + + + Database is not open. + Database is not open. + + + + executes SQL query + executes SQL query + + + + This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. + This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. + + + + sql + CLI command syntax + sql + + + + + Too many columns to display in %1 mode. + Too many columns to display in %1 mode. + + + + Row %1 + Row %1 + + + + Query execution error: %1 + Query execution error: %1 + + + + CliCommandTables + + + No such database: %1. Use %2 to see list of known databases. + No such database: %1. Use %2 to see list of known databases. + + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + Database %1 is closed. + Database %1 is closed. + + + + + Database + Database + + + + Table + Table + + + + prints list of tables in the database + prints list of tables in the database + + + + Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. +When the -s option is given, then system tables are also listed. + Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. +When the -s option is given, then system tables are also listed. + + + + database + CLI command syntax + database + + + + CliCommandTree + + + No current working database is selected. Use %1 to define one and then run %2. + No current working database is selected. Use %1 to define one and then run %2. + + + + Tables + Tables + + + + Views + Views + + + + Columns + Columns + + + + Indexes + Indexes + + + + + Triggers + Triggers + + + + prints all objects in the database as a tree + prints all objects in the database as a tree + + + + Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. +When -c option is given, then also columns will be listed under each table. +When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). +The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. + Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. +When -c option is given, then also columns will be listed under each table. +When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). +The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. + + + + CliCommandUse + + + No current database selected. + No current database selected. + + + + + Current database: %1 + Current database: %1 + + + + No such database: %1 + No such database: %1 + + + + changes default working database + changes default working database + + + + Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. + +What is current working database? +When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). + +The default database can be selected in various ways: +- using %1 command, +- by passing database file name to the application startup parameters, +- by passing registered database name to the application startup parameters, +- by restoring previously selected default database from saved configuration, +- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. + Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. + +What is current working database? +When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). + +The default database can be selected in various ways: +- using %1 command, +- by passing database file name to the application startup parameters, +- by passing registered database name to the application startup parameters, +- by restoring previously selected default database from saved configuration, +- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. + + + + name + CLI command syntax + name + + + + QObject + + + Insufficient number of arguments. + Insufficient number of arguments. + + + + Too many arguments. + Too many arguments. + + + + Invalid argument value: %1. +Expected one of: %2 + Invalid argument value: %1. +Expected one of: %2 + + + + Unknown option: %1 + CLI command syntax + Unknown option: %1 + + + + Option %1 requires an argument. + CLI command syntax + Option %1 requires an argument. + + + + string + CLI command syntax + string + + + + Command line interface to SQLiteStudio, a SQLite manager. + Command line interface to SQLiteStudio, a SQLite manager. + + + + Enables debug messages on standard error output. + Enables debug messages on standard error output. + + + + Enables Lemon parser debug messages for SQL code assistant. + Enables Lemon parser debug messages for SQL code assistant. + + + + Lists plugins installed in the SQLiteStudio and quits. + Lists plugins installed in the SQLiteStudio and quits. + + + + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + + + + SQL file + SQL file + + + + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. + + + + codec + codec + + + + Lists available codecs to be used with -c option and quits. + Lists available codecs to be used with -c option and quits. + + + + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. + + + + file + file + + + + Database file to open + Database file to open + + + + Invalid codec: %1. Use -cl option to list available codecs. + Invalid codec: %1. Use -cl option to list available codecs. + + + + Database file argument is mandatory when executing SQL file. + Database file argument is mandatory when executing SQL file. + + + + Could not open specified database for executing SQL file. You may try using -d option to find out more details. + Could not open specified database for executing SQL file. You may try using -d option to find out more details. + + + diff --git a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_sr_SP.ts b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_sr_SP.ts new file mode 100644 index 0000000..aa4e66f --- /dev/null +++ b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_sr_SP.ts @@ -0,0 +1,876 @@ + + + + + CLI + + + Current database: %1 + Current database: %1 + + + + No current working database is set. + No current working database is set. + + + + Type %1 for help + Type %1 for help + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + Database passed in command line parameters (%1) was already on the list under name: %2 + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + closed + closed + + + + CliCommand + + + Usage: %1%2 + Usage: %1%2 + + + + CliCommandAdd + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + Database added: %1 + Database added: %1 + + + + adds new database to the list + adds new database to the list + + + + Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. + Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. + + + + name + CLI command syntax + name + + + + path + CLI command syntax + path + + + + CliCommandCd + + + Changed directory to: %1 + Changed directory to: %1 + + + + Could not change directory to: %1 + Could not change directory to: %1 + + + + changes current working directory + changes current working directory + + + + Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. + Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. + + + + path + CLI command syntax + path + + + + CliCommandClose + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + + Connection to database %1 closed. + Connection to database %1 closed. + + + + No such database: %1. Use %2 to see list of known databases. + No such database: %1. Use %2 to see list of known databases. + + + + closes given (or current) database + closes given (or current) database + + + + Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). + Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). + + + + name + CLI command syntax + name + + + + CliCommandDbList + + + No current working database defined. + No current working database defined. + + + + Databases: + Databases: + + + + + Name + CLI db name column + Name + + + + + Open + CLI connection state column + Open + + + + + Closed + CLI connection state column + Closed + + + + + Connection + CLI connection state column + Connection + + + + + Database file path + Database file path + + + + prints list of registered databases + prints list of registered databases + + + + Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. + Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. + + + + CliCommandDesc + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + + + + Database is not open. + Database is not open. + + + + Cannot find table named: %1 + Cannot find table named: %1 + + + + shows details about the table + shows details about the table + + + + table + table + + + + Table: %1 + Table: %1 + + + + Column name + Column name + + + + Data type + Data type + + + + Constraints + Constraints + + + + Virtual table: %1 + Virtual table: %1 + + + + Construction arguments: + Construction arguments: + + + + No construction arguments were passed for this virtual table. + No construction arguments were passed for this virtual table. + + + + CliCommandDir + + + lists directories and files in current working directory + lists directories and files in current working directory + + + + This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. + +You can pass <pattern> with wildcard characters to filter output. + This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. + +You can pass <pattern> with wildcard characters to filter output. + + + + pattern + pattern + + + + CliCommandExit + + + quits the application + quits the application + + + + Quits the application. Settings are stored in configuration file and will be restored on next startup. + Quits the application. Settings are stored in configuration file and will be restored on next startup. + + + + CliCommandHelp + + + shows this help message + shows this help message + + + + Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. +To see list of supported commands, type %2 without any arguments. + +When passing <command> name, you can skip special prefix character ('%3'). + +You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. + Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. +To see list of supported commands, type %2 without any arguments. + +When passing <command> name, you can skip special prefix character ('%3'). + +You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. + + + + command + CLI command syntax + command + + + + No such command: %1 + No such command: %1 + + + + Type '%1' for list of available commands. + Type '%1' for list of available commands. + + + + Usage: %1%2 + Usage: %1%2 + + + + Aliases: %1 + Aliases: %1 + + + + CliCommandHistory + + + Current history limit is set to: %1 + Current history limit is set to: %1 + + + + prints history or erases it + prints history or erases it + + + + When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. + +When the -c or --clear option is passed, then the history gets erased. +When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. +Use -ql or --querylimit option to see the current limit value. + When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. + +When the -c or --clear option is passed, then the history gets erased. +When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. +Use -ql or --querylimit option to see the current limit value. + + + + number + number + + + + Console history erased. + Console history erased. + + + + Invalid number: %1 + Invalid number: %1 + + + + History limit set to %1 + History limit set to %1 + + + + CliCommandMode + + + Current results printing mode: %1 + Current results printing mode: %1 + + + + Invalid results printing mode: %1 + Invalid results printing mode: %1 + + + + New results printing mode: %1 + New results printing mode: %1 + + + + tells or changes the query results format + tells or changes the query results format + + + + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: +- CLASSIC - columns are separated by a comma, not aligned, +- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, +- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), +- ROW - each column from the row is displayed in new line, so the full data is displayed. + +The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. + +The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. + +The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. + +The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: +- CLASSIC - columns are separated by a comma, not aligned, +- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, +- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), +- ROW - each column from the row is displayed in new line, so the full data is displayed. + +The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. + +The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. + +The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. + +The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). + + + + CliCommandNullValue + + + Current NULL representation string: %1 + Current NULL representation string: %1 + + + + tells or changes the NULL representation string + tells or changes the NULL representation string + + + + If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. + If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. + + + + CliCommandOpen + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. + File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. + + + + Database %1 has been open and set as the current working database. + Database %1 has been open and set as the current working database. + + + + opens database connection + opens database connection + + + + Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. + Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. + + + + name + CLI command syntax + name + + + + path + CLI command syntax + path + + + + CliCommandPwd + + + prints the current working directory + prints the current working directory + + + + This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. + This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. + + + + CliCommandRemove + + + No such database: %1 + No such database: %1 + + + + Database removed: %1 + Database removed: %1 + + + + New current database set: + New current database set: + + + + removes database from the list + removes database from the list + + + + Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. + Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. + + + + name + CLI command syntax + name + + + + CliCommandSql + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + + + + Database is not open. + Database is not open. + + + + executes SQL query + executes SQL query + + + + This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. + This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. + + + + sql + CLI command syntax + sql + + + + + Too many columns to display in %1 mode. + Too many columns to display in %1 mode. + + + + Row %1 + Row %1 + + + + Query execution error: %1 + Query execution error: %1 + + + + CliCommandTables + + + No such database: %1. Use %2 to see list of known databases. + No such database: %1. Use %2 to see list of known databases. + + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + Database %1 is closed. + Database %1 is closed. + + + + + Database + Database + + + + Table + Table + + + + prints list of tables in the database + prints list of tables in the database + + + + Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. +When the -s option is given, then system tables are also listed. + Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. +When the -s option is given, then system tables are also listed. + + + + database + CLI command syntax + database + + + + CliCommandTree + + + No current working database is selected. Use %1 to define one and then run %2. + No current working database is selected. Use %1 to define one and then run %2. + + + + Tables + Tables + + + + Views + Views + + + + Columns + Columns + + + + Indexes + Indexes + + + + + Triggers + Triggers + + + + prints all objects in the database as a tree + prints all objects in the database as a tree + + + + Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. +When -c option is given, then also columns will be listed under each table. +When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). +The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. + Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. +When -c option is given, then also columns will be listed under each table. +When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). +The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. + + + + CliCommandUse + + + No current database selected. + No current database selected. + + + + + Current database: %1 + Current database: %1 + + + + No such database: %1 + No such database: %1 + + + + changes default working database + changes default working database + + + + Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. + +What is current working database? +When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). + +The default database can be selected in various ways: +- using %1 command, +- by passing database file name to the application startup parameters, +- by passing registered database name to the application startup parameters, +- by restoring previously selected default database from saved configuration, +- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. + Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. + +What is current working database? +When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). + +The default database can be selected in various ways: +- using %1 command, +- by passing database file name to the application startup parameters, +- by passing registered database name to the application startup parameters, +- by restoring previously selected default database from saved configuration, +- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. + + + + name + CLI command syntax + name + + + + QObject + + + Insufficient number of arguments. + Insufficient number of arguments. + + + + Too many arguments. + Too many arguments. + + + + Invalid argument value: %1. +Expected one of: %2 + Invalid argument value: %1. +Expected one of: %2 + + + + Unknown option: %1 + CLI command syntax + Unknown option: %1 + + + + Option %1 requires an argument. + CLI command syntax + Option %1 requires an argument. + + + + string + CLI command syntax + string + + + + Command line interface to SQLiteStudio, a SQLite manager. + Command line interface to SQLiteStudio, a SQLite manager. + + + + Enables debug messages on standard error output. + Enables debug messages on standard error output. + + + + Enables Lemon parser debug messages for SQL code assistant. + Enables Lemon parser debug messages for SQL code assistant. + + + + Lists plugins installed in the SQLiteStudio and quits. + Lists plugins installed in the SQLiteStudio and quits. + + + + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + + + + SQL file + SQL file + + + + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. + + + + codec + codec + + + + Lists available codecs to be used with -c option and quits. + Lists available codecs to be used with -c option and quits. + + + + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. + + + + file + file + + + + Database file to open + Database file to open + + + + Invalid codec: %1. Use -cl option to list available codecs. + Invalid codec: %1. Use -cl option to list available codecs. + + + + Database file argument is mandatory when executing SQL file. + Database file argument is mandatory when executing SQL file. + + + + Could not open specified database for executing SQL file. You may try using -d option to find out more details. + Could not open specified database for executing SQL file. You may try using -d option to find out more details. + + + diff --git a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_sv_SE.ts b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_sv_SE.ts new file mode 100644 index 0000000..e88d260 --- /dev/null +++ b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_sv_SE.ts @@ -0,0 +1,876 @@ + + + + + CLI + + + Current database: %1 + Current database: %1 + + + + No current working database is set. + No current working database is set. + + + + Type %1 for help + Type %1 for help + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + Database passed in command line parameters (%1) was already on the list under name: %2 + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + closed + closed + + + + CliCommand + + + Usage: %1%2 + Usage: %1%2 + + + + CliCommandAdd + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + Database added: %1 + Database added: %1 + + + + adds new database to the list + adds new database to the list + + + + Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. + Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. + + + + name + CLI command syntax + name + + + + path + CLI command syntax + path + + + + CliCommandCd + + + Changed directory to: %1 + Changed directory to: %1 + + + + Could not change directory to: %1 + Could not change directory to: %1 + + + + changes current working directory + changes current working directory + + + + Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. + Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. + + + + path + CLI command syntax + path + + + + CliCommandClose + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + + Connection to database %1 closed. + Connection to database %1 closed. + + + + No such database: %1. Use %2 to see list of known databases. + No such database: %1. Use %2 to see list of known databases. + + + + closes given (or current) database + closes given (or current) database + + + + Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). + Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). + + + + name + CLI command syntax + name + + + + CliCommandDbList + + + No current working database defined. + No current working database defined. + + + + Databases: + Databases: + + + + + Name + CLI db name column + Name + + + + + Open + CLI connection state column + Open + + + + + Closed + CLI connection state column + Closed + + + + + Connection + CLI connection state column + Connection + + + + + Database file path + Database file path + + + + prints list of registered databases + prints list of registered databases + + + + Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. + Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. + + + + CliCommandDesc + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + + + + Database is not open. + Database is not open. + + + + Cannot find table named: %1 + Cannot find table named: %1 + + + + shows details about the table + shows details about the table + + + + table + table + + + + Table: %1 + Table: %1 + + + + Column name + Column name + + + + Data type + Data type + + + + Constraints + Constraints + + + + Virtual table: %1 + Virtual table: %1 + + + + Construction arguments: + Construction arguments: + + + + No construction arguments were passed for this virtual table. + No construction arguments were passed for this virtual table. + + + + CliCommandDir + + + lists directories and files in current working directory + lists directories and files in current working directory + + + + This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. + +You can pass <pattern> with wildcard characters to filter output. + This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. + +You can pass <pattern> with wildcard characters to filter output. + + + + pattern + pattern + + + + CliCommandExit + + + quits the application + quits the application + + + + Quits the application. Settings are stored in configuration file and will be restored on next startup. + Quits the application. Settings are stored in configuration file and will be restored on next startup. + + + + CliCommandHelp + + + shows this help message + shows this help message + + + + Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. +To see list of supported commands, type %2 without any arguments. + +When passing <command> name, you can skip special prefix character ('%3'). + +You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. + Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. +To see list of supported commands, type %2 without any arguments. + +When passing <command> name, you can skip special prefix character ('%3'). + +You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. + + + + command + CLI command syntax + command + + + + No such command: %1 + No such command: %1 + + + + Type '%1' for list of available commands. + Type '%1' for list of available commands. + + + + Usage: %1%2 + Usage: %1%2 + + + + Aliases: %1 + Aliases: %1 + + + + CliCommandHistory + + + Current history limit is set to: %1 + Current history limit is set to: %1 + + + + prints history or erases it + prints history or erases it + + + + When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. + +When the -c or --clear option is passed, then the history gets erased. +When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. +Use -ql or --querylimit option to see the current limit value. + When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. + +When the -c or --clear option is passed, then the history gets erased. +When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. +Use -ql or --querylimit option to see the current limit value. + + + + number + number + + + + Console history erased. + Console history erased. + + + + Invalid number: %1 + Invalid number: %1 + + + + History limit set to %1 + History limit set to %1 + + + + CliCommandMode + + + Current results printing mode: %1 + Current results printing mode: %1 + + + + Invalid results printing mode: %1 + Invalid results printing mode: %1 + + + + New results printing mode: %1 + New results printing mode: %1 + + + + tells or changes the query results format + tells or changes the query results format + + + + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: +- CLASSIC - columns are separated by a comma, not aligned, +- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, +- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), +- ROW - each column from the row is displayed in new line, so the full data is displayed. + +The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. + +The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. + +The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. + +The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: +- CLASSIC - columns are separated by a comma, not aligned, +- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, +- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), +- ROW - each column from the row is displayed in new line, so the full data is displayed. + +The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. + +The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. + +The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. + +The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). + + + + CliCommandNullValue + + + Current NULL representation string: %1 + Current NULL representation string: %1 + + + + tells or changes the NULL representation string + tells or changes the NULL representation string + + + + If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. + If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. + + + + CliCommandOpen + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. + File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. + + + + Database %1 has been open and set as the current working database. + Database %1 has been open and set as the current working database. + + + + opens database connection + opens database connection + + + + Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. + Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. + + + + name + CLI command syntax + name + + + + path + CLI command syntax + path + + + + CliCommandPwd + + + prints the current working directory + prints the current working directory + + + + This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. + This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. + + + + CliCommandRemove + + + No such database: %1 + No such database: %1 + + + + Database removed: %1 + Database removed: %1 + + + + New current database set: + New current database set: + + + + removes database from the list + removes database from the list + + + + Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. + Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. + + + + name + CLI command syntax + name + + + + CliCommandSql + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + + + + Database is not open. + Database is not open. + + + + executes SQL query + executes SQL query + + + + This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. + This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. + + + + sql + CLI command syntax + sql + + + + + Too many columns to display in %1 mode. + Too many columns to display in %1 mode. + + + + Row %1 + Row %1 + + + + Query execution error: %1 + Query execution error: %1 + + + + CliCommandTables + + + No such database: %1. Use %2 to see list of known databases. + No such database: %1. Use %2 to see list of known databases. + + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + Database %1 is closed. + Database %1 is closed. + + + + + Database + Database + + + + Table + Table + + + + prints list of tables in the database + prints list of tables in the database + + + + Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. +When the -s option is given, then system tables are also listed. + Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. +When the -s option is given, then system tables are also listed. + + + + database + CLI command syntax + database + + + + CliCommandTree + + + No current working database is selected. Use %1 to define one and then run %2. + No current working database is selected. Use %1 to define one and then run %2. + + + + Tables + Tables + + + + Views + Views + + + + Columns + Columns + + + + Indexes + Indexes + + + + + Triggers + Triggers + + + + prints all objects in the database as a tree + prints all objects in the database as a tree + + + + Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. +When -c option is given, then also columns will be listed under each table. +When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). +The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. + Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. +When -c option is given, then also columns will be listed under each table. +When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). +The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. + + + + CliCommandUse + + + No current database selected. + No current database selected. + + + + + Current database: %1 + Current database: %1 + + + + No such database: %1 + No such database: %1 + + + + changes default working database + changes default working database + + + + Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. + +What is current working database? +When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). + +The default database can be selected in various ways: +- using %1 command, +- by passing database file name to the application startup parameters, +- by passing registered database name to the application startup parameters, +- by restoring previously selected default database from saved configuration, +- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. + Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. + +What is current working database? +When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). + +The default database can be selected in various ways: +- using %1 command, +- by passing database file name to the application startup parameters, +- by passing registered database name to the application startup parameters, +- by restoring previously selected default database from saved configuration, +- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. + + + + name + CLI command syntax + name + + + + QObject + + + Insufficient number of arguments. + Insufficient number of arguments. + + + + Too many arguments. + Too many arguments. + + + + Invalid argument value: %1. +Expected one of: %2 + Invalid argument value: %1. +Expected one of: %2 + + + + Unknown option: %1 + CLI command syntax + Unknown option: %1 + + + + Option %1 requires an argument. + CLI command syntax + Option %1 requires an argument. + + + + string + CLI command syntax + string + + + + Command line interface to SQLiteStudio, a SQLite manager. + Command line interface to SQLiteStudio, a SQLite manager. + + + + Enables debug messages on standard error output. + Enables debug messages on standard error output. + + + + Enables Lemon parser debug messages for SQL code assistant. + Enables Lemon parser debug messages for SQL code assistant. + + + + Lists plugins installed in the SQLiteStudio and quits. + Lists plugins installed in the SQLiteStudio and quits. + + + + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + + + + SQL file + SQL file + + + + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. + + + + codec + codec + + + + Lists available codecs to be used with -c option and quits. + Lists available codecs to be used with -c option and quits. + + + + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. + + + + file + file + + + + Database file to open + Database file to open + + + + Invalid codec: %1. Use -cl option to list available codecs. + Invalid codec: %1. Use -cl option to list available codecs. + + + + Database file argument is mandatory when executing SQL file. + Database file argument is mandatory when executing SQL file. + + + + Could not open specified database for executing SQL file. You may try using -d option to find out more details. + Could not open specified database for executing SQL file. You may try using -d option to find out more details. + + + diff --git a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_tr_TR.ts b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_tr_TR.ts new file mode 100644 index 0000000..fe14c9c --- /dev/null +++ b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_tr_TR.ts @@ -0,0 +1,876 @@ + + + + + CLI + + + Current database: %1 + Geçerli veritabanı: %1 + + + + No current working database is set. + Geçerli bir çalışma veritabanı ayarlanmamış. + + + + Type %1 for help + Yardım için %1'e basın + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + Database passed in command line parameters (%1) was already on the list under name: %2 + + + + Could not add database %1 to list. + %1 veritabanı listeye eklenemedi. + + + + closed + kapalı + + + + CliCommand + + + Usage: %1%2 + Kullanım: %1%2 + + + + CliCommandAdd + + + Could not add database %1 to list. + %1 veritabanı listeye eklenemedi. + + + + Database added: %1 + Veritabanı eklendi: %1 + + + + adds new database to the list + yeni veritabanını listeye ekler + + + + Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. + Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. + + + + name + CLI command syntax + adı + + + + path + CLI command syntax + dizin + + + + CliCommandCd + + + Changed directory to: %1 + Dizin %1'e değiştirildi + + + + Could not change directory to: %1 + Çalışma dizini %1 olarak değiştirilemedi + + + + changes current working directory + çalışma dizinini değiştirir + + + + Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. + Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. + + + + path + CLI command syntax + dizin + + + + CliCommandClose + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + + Connection to database %1 closed. + %1 veritabanına bağlantı kapatıldı. + + + + No such database: %1. Use %2 to see list of known databases. + Böyle bir veritabanı bulunamadı: %1. Bilinen veritabanları için: %2. + + + + closes given (or current) database + verilen (ya da güncel) veritabanını kapatır + + + + Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). + Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). + + + + name + CLI command syntax + adı + + + + CliCommandDbList + + + No current working database defined. + Geçerli bir çalışma veritabanı ayarlanmamış. + + + + Databases: + Veritabanları: + + + + + Name + CLI db name column + Adı + + + + + Open + CLI connection state column + Açık + + + + + Closed + CLI connection state column + Kapalı + + + + + Connection + CLI connection state column + Bağlantı + + + + + Database file path + Veritabanı dosyası dizini + + + + prints list of registered databases + kayıtlı veritabanlarının listesini yazdırır + + + + Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. + Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. + + + + CliCommandDesc + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + + + + Database is not open. + Veritabanı açık değil. + + + + Cannot find table named: %1 + %1 isimli tablo bulunamadı + + + + shows details about the table + tablo hakkında detayları gösterir + + + + table + tablo + + + + Table: %1 + Tablo: %1 + + + + Column name + Kolon adı + + + + Data type + Veri tipi + + + + Constraints + Constraints + + + + Virtual table: %1 + Virtual table: %1 + + + + Construction arguments: + Construction arguments: + + + + No construction arguments were passed for this virtual table. + No construction arguments were passed for this virtual table. + + + + CliCommandDir + + + lists directories and files in current working directory + lists directories and files in current working directory + + + + This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. + +You can pass <pattern> with wildcard characters to filter output. + This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. + +You can pass <pattern> with wildcard characters to filter output. + + + + pattern + desen + + + + CliCommandExit + + + quits the application + uygulamadan çıkar + + + + Quits the application. Settings are stored in configuration file and will be restored on next startup. + Uygulamadan çıkar. Konfigurasyon dosyasında kayıtlı olan ayarlar bir sonraki açılışta onarılacak. + + + + CliCommandHelp + + + shows this help message + bu yardım mesajını gösterir + + + + Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. +To see list of supported commands, type %2 without any arguments. + +When passing <command> name, you can skip special prefix character ('%3'). + +You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. + Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. +To see list of supported commands, type %2 without any arguments. + +When passing <command> name, you can skip special prefix character ('%3'). + +You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. + + + + command + CLI command syntax + komut + + + + No such command: %1 + Böyle bir komut yok: %1 + + + + Type '%1' for list of available commands. + Type '%1' for list of available commands. + + + + Usage: %1%2 + Kullanım: %1%2 + + + + Aliases: %1 + Diğer Adlar: %1 + + + + CliCommandHistory + + + Current history limit is set to: %1 + Güncel geçmiş limiti %1'e ayarlandı + + + + prints history or erases it + geçmişi yazdırır ya da siler + + + + When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. + +When the -c or --clear option is passed, then the history gets erased. +When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. +Use -ql or --querylimit option to see the current limit value. + When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. + +When the -c or --clear option is passed, then the history gets erased. +When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. +Use -ql or --querylimit option to see the current limit value. + + + + number + sayı + + + + Console history erased. + Konsol geçmişi silindi. + + + + Invalid number: %1 + Geçersiz sayı: %1 + + + + History limit set to %1 + Geçmiş limiti %1'e ayarlandı + + + + CliCommandMode + + + Current results printing mode: %1 + Current results printing mode: %1 + + + + Invalid results printing mode: %1 + Invalid results printing mode: %1 + + + + New results printing mode: %1 + New results printing mode: %1 + + + + tells or changes the query results format + tells or changes the query results format + + + + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: +- CLASSIC - columns are separated by a comma, not aligned, +- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, +- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), +- ROW - each column from the row is displayed in new line, so the full data is displayed. + +The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. + +The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. + +The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. + +The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: +- CLASSIC - columns are separated by a comma, not aligned, +- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, +- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), +- ROW - each column from the row is displayed in new line, so the full data is displayed. + +The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. + +The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. + +The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. + +The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). + + + + CliCommandNullValue + + + Current NULL representation string: %1 + Current NULL representation string: %1 + + + + tells or changes the NULL representation string + tells or changes the NULL representation string + + + + If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. + If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. + + + + CliCommandOpen + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. + File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. + + + + Database %1 has been open and set as the current working database. + Database %1 has been open and set as the current working database. + + + + opens database connection + opens database connection + + + + Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. + Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. + + + + name + CLI command syntax + name + + + + path + CLI command syntax + path + + + + CliCommandPwd + + + prints the current working directory + prints the current working directory + + + + This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. + This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. + + + + CliCommandRemove + + + No such database: %1 + No such database: %1 + + + + Database removed: %1 + Database removed: %1 + + + + New current database set: + New current database set: + + + + removes database from the list + removes database from the list + + + + Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. + Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. + + + + name + CLI command syntax + name + + + + CliCommandSql + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + + + + Database is not open. + Database is not open. + + + + executes SQL query + executes SQL query + + + + This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. + This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. + + + + sql + CLI command syntax + sql + + + + + Too many columns to display in %1 mode. + Too many columns to display in %1 mode. + + + + Row %1 + Row %1 + + + + Query execution error: %1 + Query execution error: %1 + + + + CliCommandTables + + + No such database: %1. Use %2 to see list of known databases. + No such database: %1. Use %2 to see list of known databases. + + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + Database %1 is closed. + Database %1 is closed. + + + + + Database + Database + + + + Table + Table + + + + prints list of tables in the database + prints list of tables in the database + + + + Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. +When the -s option is given, then system tables are also listed. + Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. +When the -s option is given, then system tables are also listed. + + + + database + CLI command syntax + database + + + + CliCommandTree + + + No current working database is selected. Use %1 to define one and then run %2. + No current working database is selected. Use %1 to define one and then run %2. + + + + Tables + Tables + + + + Views + Views + + + + Columns + Columns + + + + Indexes + Indexes + + + + + Triggers + Triggers + + + + prints all objects in the database as a tree + prints all objects in the database as a tree + + + + Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. +When -c option is given, then also columns will be listed under each table. +When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). +The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. + Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. +When -c option is given, then also columns will be listed under each table. +When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). +The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. + + + + CliCommandUse + + + No current database selected. + No current database selected. + + + + + Current database: %1 + Current database: %1 + + + + No such database: %1 + No such database: %1 + + + + changes default working database + changes default working database + + + + Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. + +What is current working database? +When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). + +The default database can be selected in various ways: +- using %1 command, +- by passing database file name to the application startup parameters, +- by passing registered database name to the application startup parameters, +- by restoring previously selected default database from saved configuration, +- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. + Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. + +What is current working database? +When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). + +The default database can be selected in various ways: +- using %1 command, +- by passing database file name to the application startup parameters, +- by passing registered database name to the application startup parameters, +- by restoring previously selected default database from saved configuration, +- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. + + + + name + CLI command syntax + name + + + + QObject + + + Insufficient number of arguments. + Insufficient number of arguments. + + + + Too many arguments. + Too many arguments. + + + + Invalid argument value: %1. +Expected one of: %2 + Invalid argument value: %1. +Expected one of: %2 + + + + Unknown option: %1 + CLI command syntax + Unknown option: %1 + + + + Option %1 requires an argument. + CLI command syntax + Option %1 requires an argument. + + + + string + CLI command syntax + string + + + + Command line interface to SQLiteStudio, a SQLite manager. + Command line interface to SQLiteStudio, a SQLite manager. + + + + Enables debug messages on standard error output. + Enables debug messages on standard error output. + + + + Enables Lemon parser debug messages for SQL code assistant. + Enables Lemon parser debug messages for SQL code assistant. + + + + Lists plugins installed in the SQLiteStudio and quits. + Lists plugins installed in the SQLiteStudio and quits. + + + + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + + + + SQL file + SQL file + + + + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. + + + + codec + codec + + + + Lists available codecs to be used with -c option and quits. + Lists available codecs to be used with -c option and quits. + + + + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. + + + + file + file + + + + Database file to open + Database file to open + + + + Invalid codec: %1. Use -cl option to list available codecs. + Invalid codec: %1. Use -cl option to list available codecs. + + + + Database file argument is mandatory when executing SQL file. + Database file argument is mandatory when executing SQL file. + + + + Could not open specified database for executing SQL file. You may try using -d option to find out more details. + Could not open specified database for executing SQL file. You may try using -d option to find out more details. + + + diff --git a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_uk_UA.ts b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_uk_UA.ts new file mode 100644 index 0000000..20e35fd --- /dev/null +++ b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_uk_UA.ts @@ -0,0 +1,876 @@ + + + + + CLI + + + Current database: %1 + Поточна база даних: %1 + + + + No current working database is set. + Поточна робоча база даних не визначена. + + + + Type %1 for help + Введіть %1 для виклику довідки + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + База даних, передана через аргументи командного рядка (%1), вже знаходиться в списку під назвою %2 + + + + Could not add database %1 to list. + Не вдалося додати базу даних %1 до списку. + + + + closed + закрито + + + + CliCommand + + + Usage: %1%2 + Використання: %1%2 + + + + CliCommandAdd + + + Could not add database %1 to list. + Не вдалося додати базу даних %1 до списку. + + + + Database added: %1 + База даних додана: %1 + + + + adds new database to the list + додати нову базу даних до списку + + + + Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. + Додає базу даних, розташовану за вказаним <шляхом> під вказаним ім'ям <ім'ям> в список баз даних. <ім'я> - це звичайне символьне ім'я, яке в подальшому можна буде використовувати. Виберіть будь-який унікальне ім'я. Для отримання поточного списку баз даних за допомогою команди %1. + + + + name + CLI command syntax + ім’я + + + + path + CLI command syntax + шлях + + + + CliCommandCd + + + Changed directory to: %1 + Теку змінено на: %1 + + + + Could not change directory to: %1 + Не вдалося змінити директорію на: %1 + + + + changes current working directory + змінює поточну робочу директорію + + + + Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. + Дуже схожа команда до 'cd' відомої від Unix систем і Windows. Для проходження цього аргументу <path> необхідно перенести аргумент, тому виклик %1 завжди може викликати зміну каталогу. Щоб дізнатися те, що використовує поточну робочу папку, використовуйте %2 команду і щоб перерахувати вміст поточної робочої директорії використовуйте %3. + + + + path + CLI command syntax + шлях + + + + CliCommandClose + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Неможливо викликати %1, коли база даних не налаштована на поточну. Вкажіть поточну базу даних з командою %2, або передайте ім'я бази даних на %3. + + + + + Connection to database %1 closed. + Підключення до бази даних %1 закрито. + + + + No such database: %1. Use %2 to see list of known databases. + Немає такої бази даних: %1. Використовуйте %2, щоб переглянути перелік відомих баз даних. + + + + closes given (or current) database + закривається за вказаною (або поточною) базою даних + + + + Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). + Закриває зв'язок з базою даних. Якщо база даних вже закрита, нічого не відбувається. Якщо <name> буде передбачено, то назва бази даних має бути закрита (як надруковано командою %1). <name> не передбачено, поточна робоча база даних закрита (детальніше дивіться довідку %2). + + + + name + CLI command syntax + назва + + + + CliCommandDbList + + + No current working database defined. + Поточна робоча база даних не визначена. + + + + Databases: + База даних: + + + + + Name + CLI db name column + Назва + + + + + Open + CLI connection state column + Відкрити + + + + + Closed + CLI connection state column + Закрити + + + + + Connection + CLI connection state column + Підключення + + + + + Database file path + Шлях до бази даних + + + + prints list of registered databases + друкує список зареєстрованих баз даних + + + + Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. + Друкує перелік баз даних, зареєстрованих у SQLiteStudio. Кожна база даних в списку може бути у відкритому або закритому стані і %1 повідомляє вам це. Поточна робоча база даних (база даних за замовчуванням) також позначена в списку з '*' на початку назви. Дивись довідку для %2 команди щоб дізнатися про типову базу даних. + + + + CliCommandDesc + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + Робоча база даних не встановлена. +Набрати %1 для встановлення робочої бази даних. +Набрати %2 для перегляду списку всіх баз даних. + + + + Database is not open. + База даних не відкрита. + + + + Cannot find table named: %1 + Не вдалося знайти таблицю з назвою: %1 + + + + shows details about the table + показати деталі про таблицю + + + + table + таблиця + + + + Table: %1 + Таблиця: %1 + + + + Column name + Назва стовпця + + + + Data type + Тип даних + + + + Constraints + Обмеження + + + + Virtual table: %1 + Віртуальна таблиця: %1 + + + + Construction arguments: + Параметри створення: + + + + No construction arguments were passed for this virtual table. + Не вказані параметри створення для цієї віртуальної таблиці. + + + + CliCommandDir + + + lists directories and files in current working directory + перелічує каталоги та файли в поточній робочій каталозі + + + + This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. + +You can pass <pattern> with wildcard characters to filter output. + Це дуже схоже на команду 'dir' з Windows та 'ls' на команду з Unix систем. + +Ви можете передати <pattern> символами, які містять шаблони, щоб відфільтрувати вивід. + + + + pattern + шаблон + + + + CliCommandExit + + + quits the application + вийти з додатку + + + + Quits the application. Settings are stored in configuration file and will be restored on next startup. + Вийти з додатку. Налаштування зберігаються у файлі конфігурації і будуть відновлені при наступному запуску. + + + + CliCommandHelp + + + shows this help message + показати це довідкове повідомлення + + + + Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. +To see list of supported commands, type %2 without any arguments. + +When passing <command> name, you can skip special prefix character ('%3'). + +You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. + Використовуйте %1, щоб дізнатися про деякі команди, які підтримуються інтерфейсом командного рядка (CLI) з SQLiteStudio. +Щоб переглянути список підтримуваних команд, введіть %2 без будь-яких аргументів. + +У назві <command> можна не вказувати префіксний символ ('%3'). + +Для отримання довідки по команді ви також можете виконати команду з єдиним ключем '--help'. Це альтернатива введенню: %1 <command>. + + + + command + CLI command syntax + команда + + + + No such command: %1 + Немає такої команди: %1 + + + + Type '%1' for list of available commands. + Введіть '%1' для отримання списку доступних команд. + + + + Usage: %1%2 + Використання: %1%2 + + + + Aliases: %1 + Псевдоніми: %1 + + + + CliCommandHistory + + + Current history limit is set to: %1 + Поточний ліміт історії встановлено на: %1 + + + + prints history or erases it + друкувати історію або видалити + + + + When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. + +When the -c or --clear option is passed, then the history gets erased. +When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. +Use -ql or --querylimit option to see the current limit value. + Коли аргумент не був прийнятий, ця команда друкує історію командного рядка. Кожен запис в історії розділений по горизонтальній прямій, тож багаторічні записи легше зчитувати. + +Коли параметр -c або --clear, історія стирається. +при проходженні параметра -l або --limitвстановлюється новий ліміт на кількість записів в історії. Необхідний додатковий аргумент, який вказує скільки записів необхідно зберігати в історії. +Для перегляду поточного ліміту записів викличте команду з ключем -ql або --querylimit. + + + + number + номер + + + + Console history erased. + Історію консолі стерто. + + + + Invalid number: %1 + Неприпустиме число: %1 + + + + History limit set to %1 + Ліміт історії встановлено на %1 + + + + CliCommandMode + + + Current results printing mode: %1 + Поточний режим друку результатів: %1 + + + + Invalid results printing mode: %1 + Недійсний режим друку результатів: %1 + + + + New results printing mode: %1 + Поточний режим друку результатів: %1 + + + + tells or changes the query results format + повідомляє або змінює формат результатів запиту + + + + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: +- CLASSIC - columns are separated by a comma, not aligned, +- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, +- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), +- ROW - each column from the row is displayed in new line, so the full data is displayed. + +The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. + +The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. + +The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. + +The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: +- CLASSIC - columns are separated by a comma, not aligned, +- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, +- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), +- ROW - each column from the row is displayed in new line, so the full data is displayed. + +The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. + +The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. + +The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. + +The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). + + + + CliCommandNullValue + + + Current NULL representation string: %1 + Поточний рядок репрезентації NULL: %1 + + + + tells or changes the NULL representation string + повідомляє або змінює рядок представлення NULL + + + + If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. + При виклику без аргументів відображає поточне представлення значення NULL (тобто що виводиться замість значення NULL у результатах запиту). Якщо вказано аргумент, його буде використано як рядок для представлення значення NULL. + + + + CliCommandOpen + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Неможливо викликати %1, коли база даних не вибрана. Виберіть поточну базу даних командою %2, або передайте ім'я бази даних на %3. + + + + Could not add database %1 to list. + Не вдалося додати базу даних %1 до списку. + + + + File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. + Файл %1 не існує в %2. Неможливо відкрити наявну базу даних з командою %3. Щоб створити нову базу даних, використовуйте команду %4. + + + + Database %1 has been open and set as the current working database. + База даних %1 була відкрита та встановлена як поточна робоча база даних. + + + + opens database connection + відкриває підключення до бази даних + + + + Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. + Відкриває підключення до бази даних. Якщо жодного додаткового аргументу не було передано, то підключення відкрите до поточної бази даних за замовчуванням (див. довідку %1 для деталей). Однак, якщо аргумент був прийнятий, відкривати може бути або <name> з бази даних зареєстрованої або ж це може бути <path> в базі даних, щоб відкрити. В другому випадку, <path> реєструється зі списком зі згенерованою назвою, але тільки за період поточного сеансу додатків. Після перезапуску такої бази даних не відновлено в списку. + + + + name + CLI command syntax + ім’я + + + + path + CLI command syntax + шлях + + + + CliCommandPwd + + + prints the current working directory + друкує поточну робочу директорію + + + + This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. + Це те саме, що команда 'pwd' в системах Unix та команда 'cd' без аргументів у Windows. Він друкує поточний робочий каталог. Ви можете змінити поточний робочий каталог за допомогою команди %1, а також можете перерахувати вміст поточного робочого каталогу за допомогою команди %2. + + + + CliCommandRemove + + + No such database: %1 + Немає такої бази даних: %1 + + + + Database removed: %1 + База даних видалена: %1 + + + + New current database set: + Нову поточну базу даних встановлено: + + + + removes database from the list + видаляє базу даних зі списку + + + + Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. + Видаляє з списку зареєстрованих баз даних <name> баз даних. Якщо бази даних немає в списку (див. команду %1), то повідомлення про помилку надруковано і більше нічого не відбувається. + + + + name + CLI command syntax + ім’я + + + + CliCommandSql + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + Робоча база даних не встановлена. +Набрати %1 для встановлення робочої бази даних. +Набрати %2 для перегляду списку всіх баз даних. + + + + Database is not open. + База даних не відкрита. + + + + executes SQL query + виконується запит SQL + + + + This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. + Ця команда виконується щоразу, коли ви вводите SQL запит у командному рядку. Він виконує запит на поточну робочу базу даних (перегляньте допомогу для %1 для докладної інформації). Існує'не має сенсу виконувати цю команду явно. Замість цього, просто введіть SQL запит у командний рядок без жодного префіксу команди. + + + + sql + CLI command syntax + sql + + + + + Too many columns to display in %1 mode. + Занадто багато стовпців для відображення в режимі %1. + + + + Row %1 + Рядок %1 + + + + Query execution error: %1 + Помилка виконання запиту: %1 + + + + CliCommandTables + + + No such database: %1. Use %2 to see list of known databases. + Немає такої бази даних: %1. Використовуйте %2, щоб переглянути перелік відомих баз даних. + + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Неможливо викликати %1, коли база даних не налаштована на поточну. Вкажіть поточну базу даних з командою %2, або передайте ім'я бази даних на %3. + + + + Database %1 is closed. + База даних %1 закрита. + + + + + Database + База даних + + + + Table + Таблиця + + + + prints list of tables in the database + надрукує список таблиць в базі даних + + + + Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. +When the -s option is given, then system tables are also listed. + Друкує перелік таблиць у даній <database> або в поточній базі даних. Зверніть увагу, що <database> має бути ім'я зареєстрованої бази даних (див. %1). Вихідний список включає в себе всі таблиці з будь-яких інших баз даних, прикріплених до запитаної бази даних. +Якщо параметр -s вказано, то системні таблиці також списані. + + + + database + CLI command syntax + база даних + + + + CliCommandTree + + + No current working database is selected. Use %1 to define one and then run %2. + Не вибрано жодної робочої бази даних. Використовуйте %1, щоб визначити одне, а потім запустити %2. + + + + Tables + Таблиці + + + + Views + Розріз даних + + + + Columns + Стовпці + + + + Indexes + Індекси + + + + + Triggers + Тригери + + + + prints all objects in the database as a tree + друкує всі об'єкти в базі даних як дерево + + + + Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. +When -c option is given, then also columns will be listed under each table. +When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). +The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. + Відображає всі об'єкти (таблиці, індекси, тригери та розріз даних) бази даних у вигляді дерева. Структура дерева подібна до того, що відображається в GUI клієнта SQLiteStudio. +При виклику з -c також будуть виведені стовпці під кожною таблицею. +При виклику з ключем -s також буде виведено системні об'єкти (таблиці sqlite_*, індекси автоінкремента тощо). +При виклику з необов'язковим аргументом 'база даних' будуть виведені об'єкти лише вказаної бази даних. Під 'базою даних' мається на увазі не зареєстроване ім'я бази даних, а внутрішнє ім'я бази даних SQLite, наприклад 'main', 'temp' або ім'я приєднаної бази даних. Для відображення дерева іншої зареєстрованої бази даних спочатку змініть робочу базу даних командою %1, а потім скористайтеся командою %2. + + + + CliCommandUse + + + No current database selected. + Не обрано поточної бази даних. + + + + + Current database: %1 + Поточна база даних: %1 + + + + No such database: %1 + Немає такої бази даних: %1 + + + + changes default working database + змінити типову робочу базу даних + + + + Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. + +What is current working database? +When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). + +The default database can be selected in various ways: +- using %1 command, +- by passing database file name to the application startup parameters, +- by passing registered database name to the application startup parameters, +- by restoring previously selected default database from saved configuration, +- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. + Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. + +What is current working database? +When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). + +The default database can be selected in various ways: +- using %1 command, +- by passing database file name to the application startup parameters, +- by passing registered database name to the application startup parameters, +- by restoring previously selected default database from saved configuration, +- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. + + + + name + CLI command syntax + ім’я + + + + QObject + + + Insufficient number of arguments. + Недостатньо кількості аргументів. + + + + Too many arguments. + Забагато аргументів. + + + + Invalid argument value: %1. +Expected one of: %2 + Неприпустиме значення аргументу: %1. +очікувався: %2 + + + + Unknown option: %1 + CLI command syntax + Невідомий параметр: %1 + + + + Option %1 requires an argument. + CLI command syntax + Опція %1 потребує аргументу. + + + + string + CLI command syntax + рядок + + + + Command line interface to SQLiteStudio, a SQLite manager. + Інтерфейс командного рядка для SQLiteStudio, менеджера баз даних SQLite. + + + + Enables debug messages on standard error output. + Вмикає повідомлення налагодження при звичайному виході помилки. + + + + Enables Lemon parser debug messages for SQL code assistant. + Включає вивід налагоджувальних повідомлень аналізатора Lemon для автодоповнення SQL коду. + + + + Lists plugins installed in the SQLiteStudio and quits. + Виводить список встановлених в SQLiteStudio модулів і здійснює вихід. + + + + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + + + + SQL file + SQL file + + + + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. + + + + codec + codec + + + + Lists available codecs to be used with -c option and quits. + Lists available codecs to be used with -c option and quits. + + + + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. + + + + file + файл + + + + Database file to open + Файл бази даних для відкриття + + + + Invalid codec: %1. Use -cl option to list available codecs. + Invalid codec: %1. Use -cl option to list available codecs. + + + + Database file argument is mandatory when executing SQL file. + Database file argument is mandatory when executing SQL file. + + + + Could not open specified database for executing SQL file. You may try using -d option to find out more details. + Could not open specified database for executing SQL file. You may try using -d option to find out more details. + + + diff --git a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_vi_VN.ts b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_vi_VN.ts new file mode 100644 index 0000000..0890eba --- /dev/null +++ b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_vi_VN.ts @@ -0,0 +1,876 @@ + + + + + CLI + + + Current database: %1 + Current database: %1 + + + + No current working database is set. + No current working database is set. + + + + Type %1 for help + Type %1 for help + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + Database passed in command line parameters (%1) was already on the list under name: %2 + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + closed + closed + + + + CliCommand + + + Usage: %1%2 + Usage: %1%2 + + + + CliCommandAdd + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + Database added: %1 + Database added: %1 + + + + adds new database to the list + adds new database to the list + + + + Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. + Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. + + + + name + CLI command syntax + name + + + + path + CLI command syntax + path + + + + CliCommandCd + + + Changed directory to: %1 + Changed directory to: %1 + + + + Could not change directory to: %1 + Could not change directory to: %1 + + + + changes current working directory + changes current working directory + + + + Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. + Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. + + + + path + CLI command syntax + path + + + + CliCommandClose + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + + Connection to database %1 closed. + Connection to database %1 closed. + + + + No such database: %1. Use %2 to see list of known databases. + No such database: %1. Use %2 to see list of known databases. + + + + closes given (or current) database + closes given (or current) database + + + + Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). + Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). + + + + name + CLI command syntax + name + + + + CliCommandDbList + + + No current working database defined. + No current working database defined. + + + + Databases: + Databases: + + + + + Name + CLI db name column + Name + + + + + Open + CLI connection state column + Open + + + + + Closed + CLI connection state column + Closed + + + + + Connection + CLI connection state column + Connection + + + + + Database file path + Database file path + + + + prints list of registered databases + prints list of registered databases + + + + Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. + Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. + + + + CliCommandDesc + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + + + + Database is not open. + Database is not open. + + + + Cannot find table named: %1 + Cannot find table named: %1 + + + + shows details about the table + shows details about the table + + + + table + table + + + + Table: %1 + Table: %1 + + + + Column name + Column name + + + + Data type + Data type + + + + Constraints + Constraints + + + + Virtual table: %1 + Virtual table: %1 + + + + Construction arguments: + Construction arguments: + + + + No construction arguments were passed for this virtual table. + No construction arguments were passed for this virtual table. + + + + CliCommandDir + + + lists directories and files in current working directory + lists directories and files in current working directory + + + + This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. + +You can pass <pattern> with wildcard characters to filter output. + This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. + +You can pass <pattern> with wildcard characters to filter output. + + + + pattern + pattern + + + + CliCommandExit + + + quits the application + quits the application + + + + Quits the application. Settings are stored in configuration file and will be restored on next startup. + Quits the application. Settings are stored in configuration file and will be restored on next startup. + + + + CliCommandHelp + + + shows this help message + shows this help message + + + + Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. +To see list of supported commands, type %2 without any arguments. + +When passing <command> name, you can skip special prefix character ('%3'). + +You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. + Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. +To see list of supported commands, type %2 without any arguments. + +When passing <command> name, you can skip special prefix character ('%3'). + +You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. + + + + command + CLI command syntax + command + + + + No such command: %1 + No such command: %1 + + + + Type '%1' for list of available commands. + Type '%1' for list of available commands. + + + + Usage: %1%2 + Usage: %1%2 + + + + Aliases: %1 + Aliases: %1 + + + + CliCommandHistory + + + Current history limit is set to: %1 + Current history limit is set to: %1 + + + + prints history or erases it + prints history or erases it + + + + When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. + +When the -c or --clear option is passed, then the history gets erased. +When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. +Use -ql or --querylimit option to see the current limit value. + When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. + +When the -c or --clear option is passed, then the history gets erased. +When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. +Use -ql or --querylimit option to see the current limit value. + + + + number + number + + + + Console history erased. + Console history erased. + + + + Invalid number: %1 + Invalid number: %1 + + + + History limit set to %1 + History limit set to %1 + + + + CliCommandMode + + + Current results printing mode: %1 + Current results printing mode: %1 + + + + Invalid results printing mode: %1 + Invalid results printing mode: %1 + + + + New results printing mode: %1 + New results printing mode: %1 + + + + tells or changes the query results format + tells or changes the query results format + + + + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: +- CLASSIC - columns are separated by a comma, not aligned, +- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, +- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), +- ROW - each column from the row is displayed in new line, so the full data is displayed. + +The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. + +The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. + +The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. + +The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: +- CLASSIC - columns are separated by a comma, not aligned, +- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, +- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), +- ROW - each column from the row is displayed in new line, so the full data is displayed. + +The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. + +The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. + +The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. + +The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). + + + + CliCommandNullValue + + + Current NULL representation string: %1 + Current NULL representation string: %1 + + + + tells or changes the NULL representation string + tells or changes the NULL representation string + + + + If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. + If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. + + + + CliCommandOpen + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + Could not add database %1 to list. + Could not add database %1 to list. + + + + File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. + File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. + + + + Database %1 has been open and set as the current working database. + Database %1 has been open and set as the current working database. + + + + opens database connection + opens database connection + + + + Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. + Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. + + + + name + CLI command syntax + name + + + + path + CLI command syntax + path + + + + CliCommandPwd + + + prints the current working directory + prints the current working directory + + + + This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. + This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. + + + + CliCommandRemove + + + No such database: %1 + No such database: %1 + + + + Database removed: %1 + Database removed: %1 + + + + New current database set: + New current database set: + + + + removes database from the list + removes database from the list + + + + Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. + Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. + + + + name + CLI command syntax + name + + + + CliCommandSql + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + + + + Database is not open. + Database is not open. + + + + executes SQL query + executes SQL query + + + + This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. + This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. + + + + sql + CLI command syntax + sql + + + + + Too many columns to display in %1 mode. + Too many columns to display in %1 mode. + + + + Row %1 + Row %1 + + + + Query execution error: %1 + Query execution error: %1 + + + + CliCommandTables + + + No such database: %1. Use %2 to see list of known databases. + No such database: %1. Use %2 to see list of known databases. + + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + + + + Database %1 is closed. + Database %1 is closed. + + + + + Database + Database + + + + Table + Table + + + + prints list of tables in the database + prints list of tables in the database + + + + Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. +When the -s option is given, then system tables are also listed. + Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. +When the -s option is given, then system tables are also listed. + + + + database + CLI command syntax + database + + + + CliCommandTree + + + No current working database is selected. Use %1 to define one and then run %2. + No current working database is selected. Use %1 to define one and then run %2. + + + + Tables + Tables + + + + Views + Views + + + + Columns + Columns + + + + Indexes + Indexes + + + + + Triggers + Triggers + + + + prints all objects in the database as a tree + prints all objects in the database as a tree + + + + Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. +When -c option is given, then also columns will be listed under each table. +When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). +The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. + Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. +When -c option is given, then also columns will be listed under each table. +When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). +The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. + + + + CliCommandUse + + + No current database selected. + No current database selected. + + + + + Current database: %1 + Current database: %1 + + + + No such database: %1 + No such database: %1 + + + + changes default working database + changes default working database + + + + Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. + +What is current working database? +When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). + +The default database can be selected in various ways: +- using %1 command, +- by passing database file name to the application startup parameters, +- by passing registered database name to the application startup parameters, +- by restoring previously selected default database from saved configuration, +- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. + Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. + +What is current working database? +When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). + +The default database can be selected in various ways: +- using %1 command, +- by passing database file name to the application startup parameters, +- by passing registered database name to the application startup parameters, +- by restoring previously selected default database from saved configuration, +- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. + + + + name + CLI command syntax + name + + + + QObject + + + Insufficient number of arguments. + Insufficient number of arguments. + + + + Too many arguments. + Too many arguments. + + + + Invalid argument value: %1. +Expected one of: %2 + Invalid argument value: %1. +Expected one of: %2 + + + + Unknown option: %1 + CLI command syntax + Unknown option: %1 + + + + Option %1 requires an argument. + CLI command syntax + Option %1 requires an argument. + + + + string + CLI command syntax + string + + + + Command line interface to SQLiteStudio, a SQLite manager. + Command line interface to SQLiteStudio, a SQLite manager. + + + + Enables debug messages on standard error output. + Enables debug messages on standard error output. + + + + Enables Lemon parser debug messages for SQL code assistant. + Enables Lemon parser debug messages for SQL code assistant. + + + + Lists plugins installed in the SQLiteStudio and quits. + Lists plugins installed in the SQLiteStudio and quits. + + + + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + + + + SQL file + SQL file + + + + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. + + + + codec + codec + + + + Lists available codecs to be used with -c option and quits. + Lists available codecs to be used with -c option and quits. + + + + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. + + + + file + file + + + + Database file to open + Database file to open + + + + Invalid codec: %1. Use -cl option to list available codecs. + Invalid codec: %1. Use -cl option to list available codecs. + + + + Database file argument is mandatory when executing SQL file. + Database file argument is mandatory when executing SQL file. + + + + Could not open specified database for executing SQL file. You may try using -d option to find out more details. + Could not open specified database for executing SQL file. You may try using -d option to find out more details. + + + diff --git a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_zh_CN.qm b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_zh_CN.qm deleted file mode 100644 index 1de3b17..0000000 Binary files a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_zh_CN.qm and /dev/null differ diff --git a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_zh_CN.ts b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_zh_CN.ts index ab95a5d..b1fce37 100644 --- a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_zh_CN.ts +++ b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_zh_CN.ts @@ -1,412 +1,425 @@ - - + + CLI - - Current database: %1 - 当前数据库:%1 + + Current database: %1 + 当前数据库:%1 - - No current working database is set. - 当前没有选定工作数据库。 + + No current working database is set. + 目前未设定操作的数据库。 - - Type %1 for help - 输入 %1 获取帮助 + + Type %1 for help + 输入 %1 获取帮助 - - Database passed in command line parameters (%1) was already on the list under name: %2 - + + Database passed in command line parameters (%1) was already on the list under name: %2 + 通过命令行参数传入的数据库(%1)已在列表中,名为:%2 - - Could not add database %1 to list. - 未能将数据库“%1”添加到列表。 + + Could not add database %1 to list. + 未将数据库“%1”添加到列表。 - - closed - 已关闭 + + closed + 已关闭 - - + + CliCommand - - Usage: %1%2 - 用法: %1%2 + + Usage: %1%2 + 用法:%1%2 - - + + CliCommandAdd - - Could not add database %1 to list. - 未能将数据库“%1”添加到列表。 + + Could not add database %1 to list. + 未将数据库“%1”添加到列表。 - - Database added: %1 - 已添加数据库:%1 + + Database added: %1 + 已添加数据库:%1 - - adds new database to the list - 添加新的数据库到列表 + + adds new database to the list + 添加新的数据库到列表 - - Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. - + + Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. + 添加指定 <路径> 的数据库到数据库列表,用指定的 <名称>。<名称> 是您之后可以用来引用它的名称。选择一个不重复的名称。查阅已在数据库列表中的数据库,请用 %1 命令。 - - name - CLI command syntax - + + name + CLI command syntax + 名称 - - path - CLI command syntax - 路径 + + path + CLI command syntax + 路径 - - + + CliCommandCd - - Changed directory to: %1 - 已切换到:%1 + + Changed directory to: %1 + 目录已改为:%1 - - Could not change directory to: %1 - 未能切换到:%1 + + Could not change directory to: %1 + 未能切换到目录:%1 - - changes current working directory - 更改当前工作目录 + + changes current working directory + 更改当前的工作目录 - - Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. - + + Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. + 非常类似 Unix 和 Windows 系统中的 'cd' 命令。需要传入一个 <路径> 参数,然后调用 %1 将始终 cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. - - path - CLI command syntax - 路径 + + path + CLI command syntax + 路径 - - + + CliCommandClose - - Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. - + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + 没有设定当前数据库时无法调用 %1。使用 %2 命令指定当前数据库,或者传递数据库名称到 %3。 - - - Connection to database %1 closed. - 数据库 %1 的连接已关闭。 + + + Connection to database %1 closed. + 数据库 %1 的连接已关闭。 - - No such database: %1. Use %2 to see list of known databases. - 没有这样的数据库:%1。使用 %2 去查看已知数据库列表。 + + No such database: %1. Use %2 to see list of known databases. + 没有这样的数据库:%1。使用 %2 查看已知数据库列表。 - - closes given (or current) database - 关闭给定的(或当前)数据库 + + closes given (or current) database + 关闭指定的或当前的数据库 - - Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). - + + Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). + 关闭数据库连接。如果数据库已关闭,什么也不做。如果提供了 <名称>,则表示需要关闭的数据库的名称(见 %1 命令的结果)。如果没有提供 <名称>。则关闭当前操作的数据库(详见 %2 帮助)。 - - name - CLI command syntax - 名称 + + name + CLI command syntax + 名称 - - + + CliCommandDbList - - No current working database defined. - + + No current working database defined. + 目前未定义操作的数据库。 - - Databases: - 数据库: + + Databases: + 数据库: - - - Name - CLI db name column - 名称 + + + Name + CLI db name column + 名称 - - - Open - CLI connection state column - 打开 + + + Open + CLI connection state column + 打开 - - - Closed - CLI connection state column - 关闭 + + + Closed + CLI connection state column + 关闭 - - - Connection - CLI connection state column - 连接 + + + Connection + CLI connection state column + 连接 - - - Database file path - 数据库文件路径 + + + Database file path + 数据库文件路径 - - prints list of registered databases - 打印已注册数据库列表 + + prints list of registered databases + 打印已注册数据库列表 - - Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. - + + Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. + 列出在 SQLiteStudio 中注册的数据库的列表。. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. - - + + CliCommandDesc - - No working database is set. + + No working database is set. Call %1 command to set working database. Call %2 to see list of all databases. - + 没有设定操作的数据库。 +调用 %1 命令操作的数据库。 +调用 %2 查阅数据库列表。 - - Database is not open. - 数据库未被打开。 + + Database is not open. + 数据库未被打开。 - - Cannot find table named: %1 - 无法找到名为 %1 的表 + + Cannot find table named: %1 + 无法找到名为 %1 的表 - - shows details about the table - 显示表的详情 + + shows details about the table + 显示一个表的详细信息 - - table - + + table + - - Table: %1 - 表:%1 + + Table: %1 + 表:%1 - - Column name - 字段名 + + Column name + 字段名 - - Data type - 数据类型 + + Data type + 数据类型 - - Constraints - 约束条件 + + Constraints + 约束条件 - - Virtual table: %1 - + + Virtual table: %1 + 虚拟表:%1 - - Construction arguments: - + + Construction arguments: + 构造参数: - - No construction arguments were passed for this virtual table. - + + No construction arguments were passed for this virtual table. + 没有为此虚拟表传递结构参数。 - - + + CliCommandDir - - lists directories and files in current working directory - 列出当前工作目录中的目录与文件 + + lists directories and files in current working directory + 列出当前工作目录中的目录与文件 - - This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. + + This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. You can pass <pattern> with wildcard characters to filter output. - + 这非常类似 Windows 中的 'dir' 命令与 Unix 中的 'ls' 命令。 + +可以传入一个带有通配符的 <模式> 来过滤输出内容。 - - pattern - + + pattern + 模式 - - + + CliCommandExit - - quits the application - 退出本程序 + + quits the application + 退出本程序 - - Quits the application. Settings are stored in configuration file and will be restored on next startup. - 退出本程序。设置已被存储在配置文件并且会在下一次启动时恢复。 + + Quits the application. Settings are stored in configuration file and will be restored on next startup. + 退出本程序。设置已被存储在配置文件并且会在下一次启动时恢复。 - - + + CliCommandHelp - - shows this help message - 显示这个帮助信息 + + shows this help message + 显示这个帮助信息 - - Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. + + Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. To see list of supported commands, type %2 without any arguments. When passing <command> name, you can skip special prefix character ('%3'). You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. - + 使用 %1 了解 SQLiteStudio 的命令行接口(CLI)所支持的特定命令。 +输入 %2 不带任何参数来查看支持的命令列表。 + +传入 <名称> 名称时,您可以跳过特殊的前缀字符('%3')。 + +您可以为任何命令指定 '--help' 选项并执行来查看特定命令的帮助。另一种方法:%1 <命令>。 - - command - CLI command syntax - 命令 + + command + CLI command syntax + 命令 - - No such command: %1 - 没有这个命令:%1 + + No such command: %1 + 没有这个命令:%1 - - Type '%1' for list of available commands. - 输入 '%1' 列出所有可用的命令。 + + Type '%1' for list of available commands. + 输入 '%1' 列出所有可用的命令。 - - Usage: %1%2 - 用法: %1%2 + + Usage: %1%2 + 用法: %1%2 - - Aliases: %1 - 别名:%1 + + Aliases: %1 + 别名:%1 - - + + CliCommandHistory - - Current history limit is set to: %1 - + + Current history limit is set to: %1 + 当前历史记录限制为:%1 - - prints history or erases it - 打印历史或擦除它 + + prints history or erases it + 列出历史或擦除 - - When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. + + When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. When the -c or --clear option is passed, then the history gets erased. When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. Use -ql or --querylimit option to see the current limit value. - + 没有传入参数时,此命令列出命令行历史。每条历史以水平线隔开,以使多行单条更易阅读。 + +传入 -c 或 --clear 选项,历史记录将被清空擦除。 +传入 -l 或 --limit 选项,设置历史记录条数限制。需要附上额外参数,指明将历史记录限制为最多多少条。 +使用 -ql 或 --querylimit 选项,可查看当前的限制值。 - - number - + + number + 数值 - - Console history erased. - 控制台历史已擦除。 + + Console history erased. + 控制台历史已擦除。 - - Invalid number: %1 - 无效的数字:%1 + + Invalid number: %1 + 无效数值:%1 - - History limit set to %1 - + + History limit set to %1 + 历史记录限制已设为 %1 - - + + CliCommandMode - - Current results printing mode: %1 - 当前结果打印模式:%1 + + Current results printing mode: %1 + 当前结果打印模式:%1 - - Invalid results printing mode: %1 - 无效结果打印模式:%1 + + Invalid results printing mode: %1 + 无效结果打印模式:%1 - - New results printing mode: %1 - 新结果打印模式:%1 + + New results printing mode: %1 + 新结果打印模式:%1 - - tells or changes the query results format - + + tells or changes the query results format + 询问或更改查询结果的格式 - - When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: + + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: - CLASSIC - columns are separated by a comma, not aligned, - FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, - COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), @@ -417,290 +430,306 @@ The CLASSIC mode is recommended if you want to see all the data, but you don&apo The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. -ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widhts, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). - + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: +- CLASSIC - columns are separated by a comma, not aligned, +- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, +- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), +- ROW - each column from the row is displayed in new line, so the full data is displayed. + +The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. + +The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. + +The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. + +The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). - - + + CliCommandNullValue - - Current NULL representation string: %1 - + + Current NULL representation string: %1 + 当前表示 NULL 的字符串:%1 - - tells or changes the NULL representation string - + + tells or changes the NULL representation string + 询问或更改表示 NULL 的字符串 - - If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. - + + If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. + 如果不传入任何参数,则会告知当前的 NULL 值表示方法(即查询结果中以什么代表 NULL 值)。如果提供了参数,则参数将作为新的代表 NULL 值的字符串。 - - + + CliCommandOpen - - Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. - + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + 没有设定当前数据库时无法调用 %1。使用 %2 命令指定当前数据库,或者传递数据库名称到 %3。 - - Could not add database %1 to list. - 未能将数据库“%1”添加到列表。 + + Could not add database %1 to list. + 未能将数据库“%1”添加到列表。 - - File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. - 文件 %1 不存在于 %2。无法使用 %3 命令打开不存在的数据库。使用 %4 命令创建一个新数据库。 + + File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. + 文件 %1 不存在于 %2。无法使用 %3 命令打开不存在的数据库。使用 %4 命令创建一个新数据库。 - - Database %1 has been open and set as the current working database. - 数据库 %1 已被打开并设为当前工作数据库。 + + Database %1 has been open and set as the current working database. + 已打开数据库 %1 并将其设为当前操作的数据库。 - - opens database connection - 打开数据库连接 + + opens database connection + 打开数据库连接 - - Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. - + + Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. + 打开到数据库的连接。如果不提供额外的参数,则打开到当前的默认数据库(详见 %1)的连接。如果提供一个参数,它可以是已注册的数据库的 <name>,也可以是要打开的数据库文件的 <path>。第二种情况下,<path> 将使用自动生成的名称临时注册到数据库列表,并在应用程序退出时从列表中消失。 - - name - CLI command syntax - 名称 + + name + CLI command syntax + 名称 - - path - CLI command syntax - 路径 + + path + CLI command syntax + 路径 - - + + CliCommandPwd - - prints the current working directory - 打印当前工作目录 + + prints the current working directory + 列出当前的工作目录 - - This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. - + + This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. + 这与 Unix 系统上的 'pwd' 命令以及 Windows 系统上没有参数的 'cd' 命令作用相同。将列出当前的工作目录。使用 %1 命令可以更改当前的工作目录,您也可以用 %2 命令列出当前工作目录的内容。 - - + + CliCommandRemove - - No such database: %1 - 没有这样一个数据库:%1 + + No such database: %1 + 没有这样一个数据库:%1 - - Database removed: %1 - + + Database removed: %1 + 数据库已移除:%1 - - New current database set: - + + New current database set: + 新的当前数据库设为: - - removes database from the list - 从列表中移除数据库 + + removes database from the list + 从列表中移除数据库 - - Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. - + + Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. + 从已注册数据库列表中移除名为 <名称> 的数据库。如果列表(见 %1 命令)中没有所指定的数据库 ,会给出错误消息。 - - name - CLI command syntax - 名称 + + name + CLI command syntax + 名称 - - + + CliCommandSql - - No working database is set. + + No working database is set. Call %1 command to set working database. Call %2 to see list of all databases. - 没有设置工作数据库。 -调用 %1 命令去设置工作数据库。 -调用 %2 去浏览所有数据库列表。 + 没有设定操作的数据库。 +调用 %1 命令操作的数据库。 +调用 %2 查阅数据库列表。 - - Database is not open. - 数据库没有打开。 + + Database is not open. + 数据库没有打开。 - - executes SQL query - 执行 SQL 查询 + + executes SQL query + 执行 SQL 查询 - - This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. - + + This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. + 您每次在命令行提示符中输入 SQL 查询时会执行此命令。它负责在当前操作的数据库(详见 %1)上执行查询。专门执行此命令没有任何意义。您可以在命令行提示符中直接输入 SQL 查询,无需添加命令前缀。 - - sql - CLI command syntax - sql + + sql + CLI command syntax + sql - - - Too many columns to display in %1 mode. - + + + Too many columns to display in %1 mode. + 在 %1 模式下有太多列需要显示。 - - Row %1 - 行 %1 + + Row %1 + 行 %1 - - Query execution error: %1 - 查询执行错误:%1 + + Query execution error: %1 + 查询执行错误:%1 - - + + CliCommandTables - - No such database: %1. Use %2 to see list of known databases. - 没有这样一个数据库:%1。使用 %2 去查看已知的数据库列表。 + + No such database: %1. Use %2 to see list of known databases. + 没有这样一个数据库:%1。使用 %2 去查看已知的数据库列表。 - - Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. - + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + 没有设置当前数据库时无法调用 %1。用 %2 命令指定当前数据库,或者传递数据库名称到 %3。 - - Database %1 is closed. - 数据库已被关闭 + + Database %1 is closed. + 数据库 %1 已关闭。 - - - Database - 数据库 + + + Database + 数据库 - - Table - + + Table + - - prints list of tables in the database - 列出数据库中的所有表 + + prints list of tables in the database + 列出数据库中的所有表 - - Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. + + Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. When the -s option is given, then system tables are also listed. - + 列出指定的 <database> 或当前操作的数据库的表。注意,<database> 应是已注册的数据库的名称(见 %1)。输出的列表同时包含已附加到被查询数据库的其他数据库的所有表。提供 -s 选项时,将同时列出系统表。 - - database - CLI command syntax - 数据库 + + database + CLI command syntax + 数据库 - - + + CliCommandTree - - No current working database is selected. Use %1 to define one and then run %2. - + + No current working database is selected. Use %1 to define one and then run %2. + 目前没有选择要操作的数据库。使用 %1 定义一个,然后运行 %2。 - - Tables - + + Tables + - - Views - 视图 + + Views + 视图 - - Columns - 字段 + + Columns + - - Indexes - 索引 + + Indexes + 索引 - - - Triggers - 触发器 + + + Triggers + 触发器 - - prints all objects in the database as a tree - + + prints all objects in the database as a tree + 将数据库中的所有对象列为一个树 - - Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. + + Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. When -c option is given, then also columns will be listed under each table. When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. - + 列出数据库中的所有对象(表、索引、触发器和视图)为一个树。此树非常类似您在 SQLiteStudio 的图形用户界面(GUI)版本中看到的效果。 +提供 -c 选项时,会同时在每个表下列出它的列。 +提供 -s 选项时,会同时列出系统对象(sqlite_* 表、自动增量索引等)。 +数据库参数为可选,如果提供则仅列出所给出的数据库。这不是数据库在列表中注册的名称,而是其在 SQLIte 数据库内部的名称,例如 'main'、'temp' 等。如果要列出列表中注册的其他数据库,先调用 %1 切换当前操作的数据库,然后再使用 %2 命令。 - - + + CliCommandUse - - No current database selected. - + + No current database selected. + 目前没有选择数据库。 - - - Current database: %1 - 当前数据库:%1 + + + Current database: %1 + 当前数据库:%1 - - No such database: %1 - 没有这样一个数据库:%1 + + No such database: %1 + 没有这样一个数据库:%1 - - changes default working database - 更改默认工作数据库 + + changes default working database + 更改默认操作的数据库 - - Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. + + Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. What is current working database? When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). @@ -711,80 +740,136 @@ The default database can be selected in various ways: - by passing registered database name to the application startup parameters, - by restoring previously selected default database from saved configuration, - or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. - + 更改当前操作的数据库至 <name>。如果 <name> 数据库没有在本程序中注册,将给出错误消息并且什么也不做。 + +什么是当前操作的数据库。 +当您输入一条 SQL 查询以期执行时,它会在默认数据库上执行,这也被称为当前操作(或称作业)的数据库。大多数与数据库相关的命令也在没有额外指明时使用默认数据库。当前的数据库会始终在命令行中标明。会始终有一个默认数据库,除非数据库列表为空。 + +有多种方式选择默认数据库。 +- 使用 %1 命令; +- 本程序启动时将数据库的文件名作为启动参数传入; +- 本程序启动时将已注册的数据库名称; +- 从已保存的配置文件还原之前选择的默认数据库; +- 未通过以上任何方式选择默认数据库时,注册的数据库列表中的第一个数据库将作为默认数据库。 - - name - CLI command syntax - 名称 + + name + CLI command syntax + 名称 - - + + QObject - - Insufficient number of arguments. - + + Insufficient number of arguments. + 参数数量不足。 - - Too many arguments. - 参数过多。 + + Too many arguments. + 参数过多。 - - Invalid argument value: %1. + + Invalid argument value: %1. Expected one of: %2 - + 无效参数值:%1。 +预期可能是:%2 + + + + Unknown option: %1 + CLI command syntax + 未知选项:%1 + + + + Option %1 requires an argument. + CLI command syntax + 选项 %1 要求一个参数。 + + + + string + CLI command syntax + 字符串 + + + + Command line interface to SQLiteStudio, a SQLite manager. + SQLite 管理工具 SQLiteStudio 的命令行接口。 + + + + Enables debug messages on standard error output. + 启用调试消息输出到标准错误输出。 + + + + Enables Lemon parser debug messages for SQL code assistant. + 启用 SQL 代码助手的 Lemon 解析器调试消息。 + + + + Lists plugins installed in the SQLiteStudio and quits. + 列出 SQLiteStudio 中已安装的插件然后退出。 + + + + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + + + + SQL file + SQL 文件 - - Unknown option: %1 - CLI command syntax - + + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. - - Option %1 requires an argument. - CLI command syntax - + + codec + codec - - string - CLI command syntax - + + Lists available codecs to be used with -c option and quits. + Lists available codecs to be used with -c option and quits. - - Command line interface to SQLiteStudio, a SQLite manager. - + + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. - - Enables debug messages on standard error output. - + + file + 文件 - - Enables Lemon parser debug messages for SQL code assistant. - + + Database file to open + 要打开的数据库文件 - - Lists plugins installed in the SQLiteStudio and quits. - + + Invalid codec: %1. Use -cl option to list available codecs. + Invalid codec: %1. Use -cl option to list available codecs. - - file - 文件 + + Database file argument is mandatory when executing SQL file. + Database file argument is mandatory when executing SQL file. - - Database file to open - + + Could not open specified database for executing SQL file. You may try using -d option to find out more details. + Could not open specified database for executing SQL file. You may try using -d option to find out more details. - + diff --git a/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_zh_TW.ts b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_zh_TW.ts new file mode 100644 index 0000000..5f96eca --- /dev/null +++ b/SQLiteStudio3/sqlitestudiocli/translations/sqlitestudiocli_zh_TW.ts @@ -0,0 +1,876 @@ + + + + + CLI + + + Current database: %1 + 當前資料庫:%1 + + + + No current working database is set. + 目前未設定操作的資料庫。 + + + + Type %1 for help + 輸入 %1 獲取幫助 + + + + Database passed in command line parameters (%1) was already on the list under name: %2 + 透過命令列引數傳入的資料庫(%1)已在清單中,名為:%2 + + + + Could not add database %1 to list. + 未將資料庫“%1”新增到清單。 + + + + closed + 已關閉 + + + + CliCommand + + + Usage: %1%2 + 用法:%1%2 + + + + CliCommandAdd + + + Could not add database %1 to list. + 未將資料庫“%1”新增到清單。 + + + + Database added: %1 + 已新增資料庫:%1 + + + + adds new database to the list + 新增新的資料庫到清單 + + + + Adds given database pointed by <path> with given <name> to list the databases list. The <name> is just a symbolic name that you can later refer to. Just pick any unique name. For list of databases already on the list use %1 command. + 新增指定<路徑>的資料庫到資料庫清單,用指定的<名稱>。<名稱>是您之後可以用來引用它的名稱。選擇一個不重複的名稱。查閱已在資料庫清單中的資料庫,請用 %1 命令。 + + + + name + CLI command syntax + 名稱 + + + + path + CLI command syntax + 路徑 + + + + CliCommandCd + + + Changed directory to: %1 + 目錄已改為:%1 + + + + Could not change directory to: %1 + 未能切換到目錄:%1 + + + + changes current working directory + 更改當前的工作目錄 + + + + Very similar command to 'cd' known from Unix systems and Windows. It requires a <path> argument to be passed, therefore calling %1 will always cause a change of the directory. To learn what's the current working directory use %2 command and to list contents of the current working directory use %3 command. + 非常類似 Unix 和 Windows 系統中的 'cd' 命令。需要傳入一個<路徑>引數,因此呼叫 %1 將始終導致目錄的更改。 要了解當前工作目錄,請使用 %2 命令並使用 %3 命令列出當前工作目錄的內容。 + + + + path + CLI command syntax + 路徑 + + + + CliCommandClose + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + 沒有設定當前資料庫時無法呼叫 %1。使用 %2 命令指定當前資料庫,或者傳遞資料庫名稱到 %3。 + + + + + Connection to database %1 closed. + 資料庫 %1 的連線已關閉。 + + + + No such database: %1. Use %2 to see list of known databases. + 沒有這樣的資料庫:%1。使用 %2 檢視已知資料庫清單。 + + + + closes given (or current) database + 關閉指定的或當前的資料庫 + + + + Closes database connection. If the database was already closed, nothing happens. If <name> is provided, it should be name of the database to close (as printed by %1 command). The the <name> is not provided, then current working database is closed (see help for %2 for details). + 關閉資料庫連線。如果資料庫已關閉,什麼也不做。如果提供了<名稱>,則表示需要關閉的資料庫的名稱(見 %1 命令的結果)。如果沒有提供<名稱>。則關閉當前操作的資料庫(詳見 %2 的幫助)。 + + + + name + CLI command syntax + 名稱 + + + + CliCommandDbList + + + No current working database defined. + 目前未定義操作的資料庫。 + + + + Databases: + 資料庫: + + + + + Name + CLI db name column + 名稱 + + + + + Open + CLI connection state column + 開啟 + + + + + Closed + CLI connection state column + 關閉 + + + + + Connection + CLI connection state column + 連線 + + + + + Database file path + 資料庫檔案路徑 + + + + prints list of registered databases + 列印已註冊資料庫清單 + + + + Prints list of databases registered in the SQLiteStudio. Each database on the list can be in open or closed state and %1 tells you that. The current working database (aka default database) is also marked on the list with '*' at the start of its name. See help for %2 command to learn about the default database. + 列出在 SQLiteStudio 中註冊的資料庫的清單。清單中的每個資料庫都可以處於開啟或關閉狀態,用 %1 檢視狀態。 當前工作資料庫(又名預設資料庫)也在清單中,在它名字的開頭用'*'標記。請參閱 %2 命令的幫助以瞭解預設資料庫。 + + + + CliCommandDesc + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + 沒有設定操作的資料庫。 +呼叫 %1 命令操作的資料庫。 +呼叫 %2 查閱資料庫清單。 + + + + Database is not open. + 資料庫未被開啟。 + + + + Cannot find table named: %1 + 無法找到名為 %1 的表 + + + + shows details about the table + 顯示一個表的詳細資訊 + + + + table + + + + + Table: %1 + 表:%1 + + + + Column name + 欄位名 + + + + Data type + 資料型別 + + + + Constraints + 約束條件 + + + + Virtual table: %1 + 虛擬表:%1 + + + + Construction arguments: + 構造引數: + + + + No construction arguments were passed for this virtual table. + 沒有為此虛擬表傳遞結構引數。 + + + + CliCommandDir + + + lists directories and files in current working directory + 列出當前工作目錄中的目錄與檔案 + + + + This is very similar to 'dir' command known from Windows and 'ls' command from Unix systems. + +You can pass <pattern> with wildcard characters to filter output. + 這非常類似 Windows 中的 'dir' 命令與 Unix 中的 'ls' 命令。 + +可以傳入一個帶有萬用字元的<模式>來過濾輸出內容。 + + + + pattern + 模式 + + + + CliCommandExit + + + quits the application + 退出本程式 + + + + Quits the application. Settings are stored in configuration file and will be restored on next startup. + 退出本程式。設定已儲存在設定檔檔案,將在下一次啟動時恢復。 + + + + CliCommandHelp + + + shows this help message + 顯示這個幫助資訊 + + + + Use %1 to learn about certain commands supported by the command line interface (CLI) of the SQLiteStudio. +To see list of supported commands, type %2 without any arguments. + +When passing <command> name, you can skip special prefix character ('%3'). + +You can always execute any command with exactly single '--help' option to see help for that command. It's an alternative for typing: %1 <command>. + 使用 %1 瞭解 SQLiteStudio 的命令列介面(CLI)所支援的特定命令。 +輸入 %2 不帶任何引數來檢視支援的命令清單。 + +傳入<命令>名稱時,您可以跳過特殊的字首字元('%3')。 + +您可以為任何命令指定 '--help' 選項並執行來檢視特定命令的幫助。另一種方法:%1 <命令>。 + + + + command + CLI command syntax + 命令 + + + + No such command: %1 + 沒有這個命令:%1 + + + + Type '%1' for list of available commands. + 輸入 '%1' 列出所有可用的命令。 + + + + Usage: %1%2 + 用法:%1%2 + + + + Aliases: %1 + 別名:%1 + + + + CliCommandHistory + + + Current history limit is set to: %1 + 當前歷史記錄限制為:%1 + + + + prints history or erases it + 列出歷史或擦除 + + + + When no argument was passed, this command prints command line history. Every history entry is separated with a horizontal line, so multiline entries are easier to read. + +When the -c or --clear option is passed, then the history gets erased. +When the -l or --limit option is passed, it sets the new history entries limit. It requires an additional argument saying how many entries do you want the history to be limited to. +Use -ql or --querylimit option to see the current limit value. + 沒有傳入引數時,此命令列出命令列歷史。每條歷史以水平線隔開,以使多行單條更易閱讀。 + +傳入 -c 或 --clear 選項,歷史記錄將被清空擦除。 +傳入 -l 或 --limit 選項,設定歷史記錄條數限制。需要附上額外引數,指明將歷史記錄限制為最多多少條。 +使用 -ql 或 --querylimit 選項,可檢視當前的限制值。 + + + + number + 數值 + + + + Console history erased. + 控制檯歷史已擦除。 + + + + Invalid number: %1 + 無效數值:%1 + + + + History limit set to %1 + 歷史記錄限制已設為 %1 + + + + CliCommandMode + + + Current results printing mode: %1 + 當前結果列印模式:%1 + + + + Invalid results printing mode: %1 + 無效結果列印模式:%1 + + + + New results printing mode: %1 + 新結果列印模式:%1 + + + + tells or changes the query results format + 詢問或更改查詢結果的格式 + + + + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: +- CLASSIC - columns are separated by a comma, not aligned, +- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, +- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), +- ROW - each column from the row is displayed in new line, so the full data is displayed. + +The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. + +The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. + +The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. + +The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). + When called without argument, tells the current output format for a query results. When the <mode> is passed, the mode is changed to the given one. Supported modes are: +- CLASSIC - columns are separated by a comma, not aligned, +- FIXED - columns have equal and fixed width, they always fit into terminal window width, but the data in columns can be cut off, +- COLUMNS - like FIXED, but smarter (do not use with huge result sets, see details below), +- ROW - each column from the row is displayed in new line, so the full data is displayed. + +The CLASSIC mode is recommended if you want to see all the data, but you don't want to waste lines for each column. Each row will display full data for every column, but this also means, that columns will not be aligned to each other in next rows. The CLASSIC mode also doesn't respect the width of your terminal (console) window, so if values in columns are wider than the window, the row will be continued in next lines. + +The FIXED mode is recommended if you want a readable output and you don't care about long data values. Columns will be aligned, making the output a nice table. The width of columns is calculated from width of the console window and a number of columns. + +The COLUMNS mode is similar to FIXED mode, except it tries to be smart and make columns with shorter values more thin, while columns with longer values get more space. First to shrink are columns with longest headers (so the header names are to be cut off as first), then columns with the longest values are shrinked, up to the moment when all columns fit into terminal window. +ATTENTION! The COLUMNS mode reads all the results from the query at once in order to evaluate column widths, therefore it is dangerous to use this mode when working with huge result sets. Keep in mind that this mode will load entire result set into memory. + +The ROW mode is recommended if you need to see whole values and you don't expect many rows to be displayed, because this mode displays a line of output per each column, so you'll get 10 lines for single row with 10 columns, then if you have 10 of such rows, you will get 100 lines of output (+1 extra line per each row, to separate rows from each other). + + + + CliCommandNullValue + + + Current NULL representation string: %1 + 當前表示 NULL 的字串:%1 + + + + tells or changes the NULL representation string + 詢問或更改表示 NULL 的字串 + + + + If no argument was passed, it tells what's the current NULL value representation (that is - what is printed in place of NULL values in query results). If the argument is given, then it's used as a new string to be used for NULL representation. + 如果不傳入任何引數,則會告知當前的 NULL 值表示方法(即查詢結果中以什麼代表 NULL 值)。如果提供了引數,則引數將作為新的代表 NULL 值的字串。 + + + + CliCommandOpen + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + 沒有設定當前資料庫時無法呼叫 %1。使用 %2 命令指定當前資料庫,或者傳遞資料庫名稱到 %3。 + + + + Could not add database %1 to list. + 未能將資料庫“%1”新增到清單。 + + + + File %1 doesn't exist in %2. Cannot open inexisting database with %3 command. To create a new database, use %4 command. + 檔案 %1 不存在於 %2。無法使用 %3 命令開啟不存在的資料庫。使用 %4 命令建立一個新資料庫。 + + + + Database %1 has been open and set as the current working database. + 已開啟資料庫 %1 並將其設為當前操作的資料庫。 + + + + opens database connection + 開啟資料庫連線 + + + + Opens connection to the database. If no additional argument was passed, then the connection is open to the current default database (see help for %1 for details). However if an argument was passed, it can be either <name> of the registered database to open, or it can be <path> to the database file to open. In the second case, the <path> gets registered on the list with a generated name, but only for the period of current application session. After restarting application such database is not restored on the list. + 開啟到資料庫的連線。如果不提供額外的引數,則開啟到當前的預設資料庫(詳見 %1)的連線。如果提供一個引數,它可以是已註冊的資料庫的<名稱>,也可以是要開啟的資料庫檔案的<路徑>。第二種情況下,<路徑>將使用自動生成的名稱臨時註冊到資料庫清單,並在應用程式退出時從清單中消失。 + + + + name + CLI command syntax + 名稱 + + + + path + CLI command syntax + 路徑 + + + + CliCommandPwd + + + prints the current working directory + 列出當前的工作目錄 + + + + This is the same as 'pwd' command on Unix systems and 'cd' command without arguments on Windows. It prints current working directory. You can change the current working directory with %1 command and you can also list contents of the current working directory with %2 command. + 這與 Unix 系統上的 'pwd' 命令以及 Windows 系統上沒有引數的 'cd' 命令作用相同。將列出當前的工作目錄。使用 %1 命令可以更改當前的工作目錄,您也可以用 %2 命令列出當前工作目錄的內容。 + + + + CliCommandRemove + + + No such database: %1 + 沒有這樣一個數據庫:%1 + + + + Database removed: %1 + 資料庫已移除:%1 + + + + New current database set: + 新的當前資料庫設為: + + + + removes database from the list + 從清單中移除資料庫 + + + + Removes <name> database from the list of registered databases. If the database was not on the list (see %1 command), then error message is printed and nothing more happens. + 從已註冊資料庫清單中移除名為<名稱>的資料庫。如果清單(見 %1 命令)中沒有所指定的資料庫 ,會給出錯誤訊息。 + + + + name + CLI command syntax + 名稱 + + + + CliCommandSql + + + No working database is set. +Call %1 command to set working database. +Call %2 to see list of all databases. + 沒有設定操作的資料庫。 +呼叫 %1 命令操作的資料庫。 +呼叫 %2 查閱資料庫清單。 + + + + Database is not open. + 資料庫沒有開啟。 + + + + executes SQL query + 執行 SQL 查詢 + + + + This command is executed every time you enter SQL query in command prompt. It executes the query on the current working database (see help for %1 for details). There's no sense in executing this command explicitly. Instead just type the SQL query in the command prompt, without any command prefixed. + 您每次在命令列提示符中輸入 SQL 查詢時會執行此命令。它負責在當前操作的資料庫(詳見 %1)上執行查詢。專門執行此命令沒有任何意義。您可以在命令列提示符中直接輸入 SQL 查詢,無需新增命令字首。 + + + + sql + CLI command syntax + sql + + + + + Too many columns to display in %1 mode. + 在 %1 模式下有太多列需要顯示。 + + + + Row %1 + 行 %1 + + + + Query execution error: %1 + 查詢執行錯誤:%1 + + + + CliCommandTables + + + No such database: %1. Use %2 to see list of known databases. + 沒有這樣一個數據庫:%1。使用 %2 檢視已知的資料庫清單。 + + + + Cannot call %1 when no database is set to be current. Specify current database with %2 command or pass database name to %3. + 沒有設定當前資料庫時無法呼叫 %1。用 %2 命令指定當前資料庫,或者傳遞資料庫名稱到 %3。 + + + + Database %1 is closed. + 資料庫 %1 已關閉。 + + + + + Database + 資料庫 + + + + Table + + + + + prints list of tables in the database + 列出資料庫中的所有表 + + + + Prints list of tables in given <database> or in the current working database. Note, that the <database> should be the name of the registered database (see %1). The output list includes all tables from any other databases attached to the queried database. +When the -s option is given, then system tables are also listed. + 列出指定的<資料庫>或當前操作的資料庫的表。注意,<資料庫>應是已註冊的資料庫的名稱(見 %1)。輸出的清單同時包含已附加到被查詢資料庫的其他資料庫的所有表。 +提供 -s 選項時,將同時列出系統表。 + + + + database + CLI command syntax + 資料庫 + + + + CliCommandTree + + + No current working database is selected. Use %1 to define one and then run %2. + 目前沒有選擇要操作的資料庫。使用 %1 定義一個,然後執行 %2。 + + + + Tables + + + + + Views + 檢視 + + + + Columns + + + + + Indexes + 索引 + + + + + Triggers + 觸發器 + + + + prints all objects in the database as a tree + 將資料庫中的所有物件列為一個樹 + + + + Prints all objects (tables, indexes, triggers and views) that are in the database as a tree. The tree is very similar to the one that you can see in GUI client of the SQLiteStudio. +When -c option is given, then also columns will be listed under each table. +When -s option is given, then also system objects will be printed (sqlite_* tables, autoincrement indexes, etc). +The database argument is optional and if provided, then only given database will be printed. This is not a registered database name, but instead it's an internal SQLite database name, like 'main', 'temp', or any attached database name. To print tree for other registered database, call %1 first to switch the working database, and then use %2 command. + 列出資料庫中的所有物件(表、索引、觸發器和檢視)為一個樹。此樹非常類似您在 SQLiteStudio 的圖形使用者介面(GUI)版本中看到的效果。 +提供 -c 選項時,會同時在每個表下列出它的列。 +提供 -s 選項時,會同時列出系統物件(sqlite_* 表、自動增量索引等)。 +資料庫引數為可選,如果提供則僅列出所給出的資料庫。這不是資料庫在清單中註冊的名稱,而是其在 SQLIte 資料庫內部的名稱,例如 'main'、'temp' 等。如果要列出清單中註冊的其他資料庫,先呼叫 %1 切換當前操作的資料庫,然後再使用 %2 命令。 + + + + CliCommandUse + + + No current database selected. + 目前沒有選擇資料庫。 + + + + + Current database: %1 + 當前資料庫:%1 + + + + No such database: %1 + 沒有這樣一個數據庫:%1 + + + + changes default working database + 更改預設操作的資料庫 + + + + Changes current working database to <name>. If the <name> database is not registered in the application, then the error message is printed and no change is made. + +What is current working database? +When you type a SQL query to be executed, it is executed on the default database, which is also known as the current working database. Most of database-related commands can also work using default database, if no database was provided in their arguments. The current database is always identified by command line prompt. The default database is always defined (unless there is no database on the list at all). + +The default database can be selected in various ways: +- using %1 command, +- by passing database file name to the application startup parameters, +- by passing registered database name to the application startup parameters, +- by restoring previously selected default database from saved configuration, +- or when default database was not selected by any of the above, then first database from the registered databases list becomes the default one. + 更改當前操作的資料庫至<名稱>。如果<名稱>資料庫沒有在本程式中註冊,將給出錯誤訊息並且什麼也不做。 + +什麼是當前操作的資料庫? +當您輸入一條 SQL 查詢以期執行時,它會在預設資料庫上執行,這也被稱為當前操作(或稱作業)的資料庫。大多數與資料庫相關的命令也在沒有額外指明時使用預設資料庫。當前的資料庫會始終在命令列中標明。會始終有一個預設資料庫,除非資料庫清單為空。 + +有多種方式選擇預設資料庫。 +- 使用 %1 命令; +- 本程式啟動時將資料庫的檔名作為啟動引數傳入; +- 本程式啟動時將已註冊的資料庫名稱; +- 從已儲存的設定檔檔案還原之前選擇的預設資料庫; +- 未透過以上任何方式選擇預設資料庫時,註冊的資料庫清單中的第一個資料庫將作為預設資料庫。 + + + + name + CLI command syntax + 名稱 + + + + QObject + + + Insufficient number of arguments. + 引數數量不足。 + + + + Too many arguments. + 引數過多。 + + + + Invalid argument value: %1. +Expected one of: %2 + 無效引數值:%1。 +預期可能是:%2 + + + + Unknown option: %1 + CLI command syntax + 未知選項:%1 + + + + Option %1 requires an argument. + CLI command syntax + 選項 %1 要求一個引數。 + + + + string + CLI command syntax + 字串 + + + + Command line interface to SQLiteStudio, a SQLite manager. + SQLite 管理工具 SQLiteStudio 的命令列介面。 + + + + Enables debug messages on standard error output. + 啟用除錯訊息輸出到標準錯誤輸出。 + + + + Enables Lemon parser debug messages for SQL code assistant. + 啟用 SQL 程式碼助手的 Lemon 解析器除錯訊息。 + + + + Lists plugins installed in the SQLiteStudio and quits. + 列出 SQLiteStudio 中已安裝的外掛然後退出。 + + + + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + Executes provided SQL file (including all rich features of SQLiteStudio's query executor) on the specified database file and quits. The database parameter becomes mandatory if this option is used. + + + + SQL file + SQL file + + + + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. + Character encoding to use when reading SQL file (-e option). Use -cl to list available codecs. Defaults to %1. + + + + codec + codec + + + + Lists available codecs to be used with -c option and quits. + Lists available codecs to be used with -c option and quits. + + + + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. + When used together with -e option, the execution will not stop on an error, but rather continue until the end, ignoring errors. + + + + file + 檔案 + + + + Database file to open + 要開啟的資料庫檔案 + + + + Invalid codec: %1. Use -cl option to list available codecs. + Invalid codec: %1. Use -cl option to list available codecs. + + + + Database file argument is mandatory when executing SQL file. + Database file argument is mandatory when executing SQL file. + + + + Could not open specified database for executing SQL file. You may try using -d option to find out more details. + Could not open specified database for executing SQL file. You may try using -d option to find out more details. + + + diff --git a/SQLiteStudio3/ts.xsd b/SQLiteStudio3/ts.xsd new file mode 100644 index 0000000..8627b6b --- /dev/null +++ b/SQLiteStudio3/ts.xsd @@ -0,0 +1,189 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file -- cgit v1.2.3